3D 의료영상 진단 모델 성능 실증 평가 자동화 시스템

kikiru328 | Apr 15, 2024 min read

Python PyTorch OpenCV PyDicom Multiprocessing

한 장 요약본

프로젝트 개요

목록내용
프로젝트명3D 의료영상 진단 모델 성능 실증 평가 자동화 시스템
개발기간2023년 3월 - 2024년 4월 (1년 1개월)
역할과제 연구원
기여도90% (시스템 단독 개발)
개발환경Linux 18.04, GPU rtx 3070

비즈니스 배경 및 문제 정의

핵심과제

닥터앤서 국가과제 중 외부 개발사 3D 갑상선암 진단 모델의 성능 평가 프로세스 자동화

기존 문제점:

  • 수작업 평가 비효율성: 검사자 300명 3D 이미지 슬라이스별 평가시 검사자당 2~40분 이상 소요
  • GPU 메모리 한계: 연속 처리 시 GPU 메모리 부족(OOM) 문제로 시스템 중단
  • 짧은 실증 기간: 의료 인공지능 디바이스 설치 유지 기간으로 빠른 실증 검사 필요
  • 과제 평가 지표: 실증 기간 내 정해진 평가 지표에 따른 보고서 제출 필요

비즈니스 요구사항:

  • 대규모 국가과제 진행 중 개발 유효성 평가 확보
  • 외부 개발사와의 원활한 협력 체계 구축
  • 신뢰성 있는 성능 평가 시스템 구축
  • 연구원 업무 부담 경감 및 생산성 향상

핵심 성과 지표

지표달성값측정 방법
평가 시간 단축75%120분 → 30분으로 대폭 단축
처리 규모검사자 300명고해상도 3D 이미지 자동 평가
시스템 안정성OOM 완전 해소병렬처리 + 메모리 관리로 안정성 확보
업무 효율성4배 향상연구원 수작업 부담 완전 해소

기술 스택 및 아키텍처

핵심 기술 스택

# 주요 기술 구성
Image Processing    : SimpleITK, pydicom
Model Inference     : PyTorch (외부 개발사 3D 모델), Numpy
Parallel Processing : Multiprocessing
Performance Metrics : Dice Coefficient, IoU
Visualization       : Matplotlib, Confusion Matrix
Report Generation   : Pandas, Excel 자동 생성

시스템 아키텍처

  graph TD
    A[검사자별 분석]
    A --> X[실증모듈]
    X --> B[슬라이스별 분석]
    B --> C[Confusion Matrix]
    C --> D[Excel 리포트 생성]

    subgraph 실증모듈
        E[3D 의료영상 데이터] --> F[이미지 전처리]
        F --> G[SimpleITK HU 조정]
        G --> H[슬라이스별 분할]
        I[외부 개발사 3D 모델] --> J
        H --> J[추론 결과 수집]
        J --> K[성능 지표 계산]
        K --> L[Dice Coefficient]
        K --> N[IoU 계산]
    end

    L --> X
    N --> X

주요 기술적 도전과 해결책

1. GPU 메모리 부족 (OOM) 문제 해결

도전과제

  • 문제: 300명 3D 이미지 연속 처리 시 GPU 메모리 부족으로 시스템 중단
  • 복잡성: 대용량 의료 영상 데이터의 메모리 효율적 처리 필요
  • 영향: 평가 프로세스 중단으로 업무 지연 및 연구 효율성 저하

문제 해결 과정

1단계: 메모리 사용 패턴 분석

  • 3D 이미지 처리 시 메모리 누수 지점 파악
  • 슬라이스별 처리 과정에서 중간 결과물 축적 확인
  • GPU 메모리 사용량 모니터링을 통한 병목 구간 식별

2단계: 병렬처리 아키텍처 설계

  • multiprocessing 4개 프로세스로 작업 분산
  • 각 프로세스별 독립적 GPU 메모리 관리
  • 프로세스 간 메모리 공유 최소화로 안정성 확보

3단계: 메모리 관리 최적화

  • 검사자별 처리 완료 후 즉시 중간 캐시 삭제
  • 슬라이스별 처리 후 불필요한 텐서 해제
  • 가비지 컬렉션 강제 실행으로 메모리 정리
성과
  • 완전한 OOM 해소: 300명 연속 처리 가능.
  • 오류 처리: Logging 활용 검사자 데이터 오류 여부 확인
  • 처리 효율성: 병렬처리로 전체 평가 시간 단축

2. 평가 프로세스 완전 자동화

도전과제

  • 문제: 기존 슬라이스별 수작업 평가로 20분 이상 소요
  • 비효율성: 연구원의 반복적 수작업으로 인한 생산성 저하
  • 휴먼 에러: 수작업 과정에서 발생하는 평가 오류 가능성

문제 해결 과정

1단계: 전체 워크플로우 분석

  • 기존 수작업 평가 프로세스 단계별 분석
  • 각 단계별 소요 시간 측정 및 병목 구간 파악
  • 자동화 가능 영역과 필수 수작업 영역 구분

2단계: 자동화 파이프라인 구축

  • 이미지 전처리 자동화: SimpleITK, pydicom 활용한 HU 조정 및 슬라이스별 분할
  • 모델 추론 자동화: 외부 개발사 3D 모델 배치 처리
  • 성능 지표 자동 계산: Dice Coefficient, IoU 자동 산출
  • 리포트 자동 생성: Excel 표 + Confusion Matrix 시각화

3단계: 에러 핸들링 시스템

  • try/except 구조로 실패 케이스 자동 로깅
  • 처리 실패 시 해당 검사자 정보 별도 기록
  • 오류 발생 시 자동 복구 메커니즘 구현
성과
  • 75% 시간 단축: 120분 → 30분으로 평가 시간 대폭 단축
  • 완전 자동화: 수작업 개입 없는 end-to-end 평가 시스템
  • 일관성 확보: 휴먼 에러 제거로 평가 결과 신뢰성 향상

3. 포괄적 성능 평가 시스템 구축

도전과제

  • 문제: 과제 평가 지표 이외 평가 요소가 필요
  • 요구사항: 의료 영상 분야에 특화된 다차원 평가 필요
  • 복잡성: 검사자별, 슬라이스별 세부 분석 체계 구축

문제 해결 과정

1단계: 과제 평가 지표 체계

  • Dice Coefficient: 분할 정확도 측정을 위한 핵심 지표
  • IoU (Intersection over Union): 객체 탐지 성능 보완 평가

2단계: 다차원 분석 체계

  • 환자별 분석: 전체 환자 단위 성능 평가
검사자별 분석

검사자별 Dice, IoU
검사자별 환자/정상 분류 Accuracy

  • 슬라이스별 분석: 검사자 영상 내 개별 슬라이스 단위 세부 성능 측정
슬라이스별 분석

슬라이스 별 Dice, IoU
슬라이스 Index별 Accuracy
(슬라이스 index와 Inference 이미지 index 비교)

3단계: 시각화 및 리포팅

  • Confusion Matrix: 분류 성능 시각적 표현
  • Overlay Image: 시각적 평가를 위한 overlay 이미지 생성
Overlay Image
  1. 검사자 원본 CT 이미지 + ROI (Annotation)부분 Overlay Image
  2. (1) 이미지, 원본 CT 이미지 + Inference 부분 Overlay Image (분할화면)
  3. ROI (Annotation)부분과 Inference 부분 Overlay Image
  • Excel 리포트: 상세 수치 데이터 자동 생성
  • 차트 생성: 성능 분포 및 트렌드 시각화
성과
  • 다차원 평가: Dice + IoU 이중 평가로 신뢰성 있는 성능 측정
  • 세부 분석: 검사자별/슬라이스별 상세 성능 분석 체계
  • 시각화: 직관적인 성능 결과 표현으로 의사결정 지원

기술적 구현 세부사항

자동화 파이프라인 구조

1. 이미지 전처리 모듈

  • SimpleITK 활용: DICOM 형식 의료 영상 처리
  • HU 조정: 의료 영상 표준화를 위한 Hounsfield Unit 조정
  • 슬라이스 분할: 3D 볼륨을 2D 슬라이스로 분할 처리

2. 병렬처리 시스템

  • 프로세스 수: 4개 프로세스 (CPU 코어 수 내에서 GPU 메모리 병목 방지)
  • 메모리 관리: 각 프로세스별 독립적 메모리 공간 할당
  • 작업 분산: 검사자별 배치 처리로 부하 분산

3. 성능 평가 모듈

  • Dice Coefficient 계산: 분할 정확도 측정
  • IoU 계산: 객체 탐지 성능 측정
  • 통계 분석: 평균, 표준편차, 분포 분석

4. 리포트 생성 시스템

  • Excel 자동 생성: 상세 수치 데이터 표 형태 출력
  • Confusion Matrix: 분류 성능 시각적 표현
  • 차트 생성: 성능 분포 및 트렌드 시각화

에러 핸들링 및 안정성

오류 처리 메커니즘

  • try/except 구조: 모든 처리 단계에서 예외 상황 처리
  • 로깅 시스템: 상세한 오류 내역 기록 및 추적
  • 자동 복구: 일시적 오류 시 자동 재시도 메커니즘

시스템 안정성

  • 메모리 모니터링: 실시간 메모리 사용량 추적
  • 데이터 무결성: 처리 결과 검증 및 백업

성능 최적화 및 검증

최적화 전략

1. 메모리 효율성

  • 즉시 해제: 불필요한 텐서 및 변수 즉시 메모리 해제
  • 가비지 컬렉션: 정기적 메모리 정리로 누수 방지
  • 배치 크기 조정: GPU 메모리 용량에 맞춘 최적 배치 크기

2. 처리 속도 최적화

  • 병렬처리: 4개 프로세스 동시 실행으로 처리 속도 향상
  • I/O 최적화: 파일 읽기/쓰기 효율화
  • 캐시 활용: 반복 계산 최소화를 위한 결과 캐싱

3. 품질 보장

  • 검증 체계: 각 단계별 결과 검증 로직
  • 비교 분석: 기존 수작업 결과와 자동화 결과 비교
  • 재현성: 동일 조건에서 일관된 결과 보장

성능 검증 결과

정량적 성과

  • 평가 시간: 120분 → 30분 (75% 단축)
  • 처리 규모: 300명 고해상도 3D 이미지 무중단 처리

정성적 성과

  • 업무 효율성: 연구원 수작업 부담 완전 해소
  • 신뢰성: 일관된 평가 결과로 신뢰도 향상

비즈니스 임팩트 및 성과

프로젝트 성과

연구 효율성 향상

  • 개발 속도: 외부 개발사와의 피드백 사이클 대폭 단축
  • 품질 관리: 실시간 성능 검증으로 모델 품질 체계적 관리
  • 생산성: 연구원 120분 → 30분 업무로 4배 생산성 향상

기술적 가치

  • 자동화 노하우: 의료 AI 모델 평가 자동화 경험 축적
  • 최적화 기법: 대용량 의료 영상 처리 최적화 기술 습득

확장 가능성

다른 질병 모델 적용

  • 12개 질병: 갑상선암 외 다른 질병 모델 평가로 확장 가능
  • 범용성: 3D 의료 영상 기반 모든 진단 모델에 적용 가능
  • 모듈화: 컴포넌트별 독립적 구조로 유연한 확장

평가 지표 확장

  • 다양한 메트릭: 추가 성능 지표 쉽게 통합 가능
  • 시각화 강화: 더 다양한 분석 차트 및 리포트 생성
  • 실시간 모니터링: 실시간 성능 추적 대시보드 구축

기술적 학습 및 성장

의료 영상 처리

  • DICOM 표준: 의료 영상 표준 형식 처리 기술
  • 3D 이미지 처리: 고차원 의료 영상 데이터 다루기
  • HU 조정: 의료 영상 표준화 기법

성능 평가 방법론

  • Dice Coefficient: 의료 영상 분할 성능 측정 표준
  • IoU: 객체 탐지 및 분할 성능 평가
  • 통계적 분석: 의료 AI 성능 평가를 위한 통계 기법

메모리 관리

  • GPU 메모리 최적화: 대용량 데이터 처리를 위한 메모리 효율성
  • 병렬처리: multiprocessing 활용한 성능 최적화
  • 리소스 관리: 시스템 리소스 효율적 활용

자동화 시스템 구축

  • End-to-End 자동화: 전체 워크플로우 자동화 설계
  • 에러 핸들링: robust한 시스템 구축을 위한 예외 처리
  • 모니터링: 시스템 상태 실시간 추적 및 관리

협업 및 프로젝트 관리

외부 협력

  • 개발사 협업: 외부 개발팀과의 기술적 소통 경험
  • 요구사항 분석: 실제 업무 환경의 의료진에게 사용자 유효성 평가 진행
  • 피드백 수용: 사용자 피드백 기반 지속적 개선

국가과제 참여

  • 대규모 프로젝트: 12개 질병 × 2개 서비스 규모의 프로젝트 경험
  • 연구 환경: 학술 연구와 실용적 개발의 균형
  • 성과 관리: 정량적 성과 측정 및 보고

결론

기술적 가치

  • 자동화 시스템: 완전 자동화된 의료 AI 모델 평가 시스템 구축
  • 최적화 기술: 대용량 의료 영상 처리 최적화 기법 습득

비즈니스 가치

  • 협력 강화: 외부 개발사와의 원활한 협업 체계 구축
  • 품질 보장: 일관되고 신뢰할 수 있는 성능 평가 체계