프로젝트 개요
목록 | 내용 |
---|---|
프로젝트명 | 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
- 검사자 원본 CT 이미지 + ROI (Annotation)부분 Overlay Image
- (1) 이미지, 원본 CT 이미지 + Inference 부분 Overlay Image (분할화면)
- 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 모델 평가 시스템 구축
- 최적화 기술: 대용량 의료 영상 처리 최적화 기법 습득
비즈니스 가치
- 협력 강화: 외부 개발사와의 원활한 협업 체계 구축
- 품질 보장: 일관되고 신뢰할 수 있는 성능 평가 체계