Post

CT 영상 기반 암 예측 및 세분화 모델 개발 프로젝트

CT 영상 기반 암 예측 및 세분화 모델 개발 프로젝트

CT 영상 기반 암 예측 및 세분화 모델 개발 프로젝트

프로젝트 개요

3D 의료 영상(CT)을 활용하여 암 진단(분류) 및 병변 위치(세분화)를 예측하는 모델 개발 프로젝트를 진행했습니다.

이 프로젝트의 주요 목표는 다음과 같습니다.

  1. 암 유무 분류 (3D CNN): CT 영상을 분석하여 해당 장기에 암이 있는지 없는지 예측합니다.
  2. 병변 위치 분할 (3D U-Net): 암이 있는 경우, CT 영상 내에서 정확한 암 병변의 위치와 영역을 분할합니다.
  3. 3D 시각화: 모델의 예측 결과를 3D 형태로 시각화하여 직관적인 이해를 돕습니다.

사용 데이터 소개

  • 데이터 출처: Medical Segmentation Decathlon (MSD) 데이터셋 중 간(Liver) 및 췌장(Pancreas) 데이터 활용
  • 데이터 종류:
    • 정상 CT & 라벨 (간, 췌장)
    • 암 CT & 라벨 (간암, 췌장암)
    • 라벨 정보: 0 (배경), 1 (장기), 2 (암 병변)

데이터 전처리

  • 데이터 수량:
    • 정상 간 CT: 13개
    • 간암 CT: 133개
    • 정상 췌장 CT: 385개
    • 췌장암 CT: 281개
  • 주요 전처리 과정:
    1. 데이터 불균형 보정: 상대적으로 수가 적은 정상 간 CT 데이터에 대해 회전, 뒤집기, 노이즈 추가 등 데이터 증강(Augmentation) 기법을 적용하여 데이터 양을 늘렸습니다.
    2. 공통 전처리:
      • 모든 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 AUC0.85330.9350민감도/특이도 균형 및 분류 성능 우수
Accuracy0.66070.7500실제 라벨과의 일치 비율
Loss0.63370.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. 결과

image image image image

결론

이번 프로젝트를 통해 3D CT 영상을 활용한 암 예측 및 세분화 모델 개발의 전 과정을 경험하고 의미 있는 결과를 얻을 수 있었습니다. 데이터 전처리부터 모델 학습, 결과 분석, 시각화에 이르기까지 팀원들과 협력하여 딥러닝 기반 의료 영상 분석의 가능성을 확인했습니다. 향후 개선 방안을 통해 모델 성능을 더욱 고도화할 수 있을 것으로 기대합니다.


This post is licensed under CC BY 4.0 by the author.