CT 영상 기반 암 예측 및 세분화 모델 개발 프로젝트
CT 영상 기반 암 예측 및 세분화 모델 개발 프로젝트
CT 영상 기반 암 예측 및 세분화 모델 개발 프로젝트
프로젝트 개요
3D 의료 영상(CT)을 활용하여 암 진단(분류) 및 병변 위치(세분화)를 예측하는 모델 개발 프로젝트를 진행했습니다.
이 프로젝트의 주요 목표는 다음과 같습니다.
- 암 유무 분류 (3D CNN): CT 영상을 분석하여 해당 장기에 암이 있는지 없는지 예측합니다.
- 병변 위치 분할 (3D U-Net): 암이 있는 경우, CT 영상 내에서 정확한 암 병변의 위치와 영역을 분할합니다.
- 3D 시각화: 모델의 예측 결과를 3D 형태로 시각화하여 직관적인 이해를 돕습니다.
사용 데이터 소개
- 데이터 출처: Medical Segmentation Decathlon (MSD) 데이터셋 중 간(Liver) 및 췌장(Pancreas) 데이터 활용
- 데이터 종류:
- 정상 CT & 라벨 (간, 췌장)
- 암 CT & 라벨 (간암, 췌장암)
- 라벨 정보: 0 (배경), 1 (장기), 2 (암 병변)
데이터 전처리
- 데이터 수량:
- 정상 간 CT: 13개
- 간암 CT: 133개
- 정상 췌장 CT: 385개
- 췌장암 CT: 281개
- 주요 전처리 과정:
- 데이터 불균형 보정: 상대적으로 수가 적은 정상 간 CT 데이터에 대해 회전, 뒤집기, 노이즈 추가 등 데이터 증강(Augmentation) 기법을 적용하여 데이터 양을 늘렸습니다.
- 공통 전처리:
- 모든 CT 데이터 크기를 동일하게 리사이즈 (예: 96x96x96)
.nii.gz포맷을 모델 입력에 적합한 NumPy 배열 형태로 변환- 필요시 Intensity Normalization (픽셀 값 범위 정규화) 수행
사용 모델 소개
1. 3D CNN (Convolutional Neural Network)
- 목적: CT 영상을 입력받아 암 유무 (정상/암)를 이진 분류합니다.
- 평가 지표:
- Accuracy: 전체 샘플 중 모델이 올바르게 분류한 비율.
- AUC (Area Under the ROC Curve): 모델의 판별 성능 (민감도와 특이도의 균형)을 나타내는 지표. 1에 가까울수록 우수합니다.
- Loss: 모델의 예측값과 실제값 사이의 차이를 나타내는 손실 함수 값. 낮을수록 좋습니다.
- Validation: 학습 중 과적합을 방지하고 최적 모델을 선택하기 위해 검증 데이터셋(Validation Set)을 사용하여 성능을 평가합니다.
2. 3D U-Net
- 목적: 3D CT 이미지에서 암이 존재하는 정확한 위치와 영역을 분할(Segmentation)합니다. U-Net 구조는 인코더-디코더 형태로 의료 영상 분할에 효과적입니다.
- 평가 지표:
- Dice Score: 예측된 마스크와 실제 정답 마스크 간의 겹치는 정도를 측정하는 지표. 클래스 불균형 문제에 강하며, 1에 가까울수록 분할 정확도가 높습니다.
- IoU (Intersection over Union): Dice Score와 유사하게 두 영역 간의 겹침 정도를 측정하는 지표.
- Loss: Dice Loss와 CrossEntropy Loss 등을 조합하여 사용. 낮을수록 좋습니다.
- Validation: 학습 과정 중 검증 데이터셋에서의 성능(주로 Dice Score)을 모니터링하고, 가장 좋은 성능을 보인 시점의 모델 가중치를 저장합니다.
결과 분석
췌장암 (Pancreas Cancer)
1. 3D CNN (분류) 결과
- Validation AUC: 1.0000 (Epoch 1)
- Validation Accuracy: 1.0000 (Epoch 1)
- Validation Loss: 최소 0.0064 수준으로 안정적인 학습 추세 확인
- Training Loss: 약 0.035까지 빠르게 수렴
분류 결과 예시 (암 예측):
Input Image Shape: torch.Size([1, 96, 96, 96]) True Label: Cancer (1) Predicted Logit: 3.9369 Predicted Probability (Cancer): 0.9809 Predicted Label: Cancer (1) 2. 3D U-Net (분할) 결과
- 최고 Dice Score: 0.7062 (Epoch 96) - 우수한 병변 분할 정확도
- Validation IoU: 0.6310
- Validation Loss: 0.4416 (최소값)
- 총 학습 Epoch: 100
3. 3D 시각화 (췌장암)
- 파란색: 췌장 전체 영역
- 빨간색: 모델이 예측한 췌장암 병변 영역
간암 (Liver Cancer)
1. 3D CNN (분류) 결과
| 항목 | Validation Set (Epoch 36) | Test Set | 설명 |
|---|---|---|---|
| ROC AUC | 0.8533 | 0.9350 | 민감도/특이도 균형 및 분류 성능 우수 |
| Accuracy | 0.6607 | 0.7500 | 실제 라벨과의 일치 비율 |
| Loss | 0.6337 | 0.5109 | 안정적인 학습 상태 (낮을수록 좋음) |
분류 결과 예시 (정상 예측):
Input Image Shape: torch.Size([1, 96, 96, 96]) True Label: Normal (0) Predicted Logit: -1.3837 Predicted Probability (Cancer): 0.2004 Predicted Label: Normal (0) 2. 3D U-Net (분할) 결과
- 최고 Dice Score: 0.8734 (Epoch 98) - 매우 우수한 병변 분할 정확도
- Validation IoU: 0.8331
- Validation Loss: 0.3290 (최소값)
- 총 학습 Epoch: 100
3. 3D 시각화 (간암)
- 파란색: 간 전체 영역
- 빨간색: 모델이 예측한 간암 병변 영역
4. 결과
결론
이번 프로젝트를 통해 3D CT 영상을 활용한 암 예측 및 세분화 모델 개발의 전 과정을 경험하고 의미 있는 결과를 얻을 수 있었습니다. 데이터 전처리부터 모델 학습, 결과 분석, 시각화에 이르기까지 팀원들과 협력하여 딥러닝 기반 의료 영상 분석의 가능성을 확인했습니다. 향후 개선 방안을 통해 모델 성능을 더욱 고도화할 수 있을 것으로 기대합니다.
This post is licensed under CC BY 4.0 by the author.



