Post

CT 분류 모델 학습에서 마스크 활용의 중요성 및 학습 과정

CT 분류 모델 학습에서 마스크 활용의 중요성 및 학습 과정

CT 분류 모델 학습에서 마스크 활용의 중요성 및 학습 과정

단순히 ResNet과 같은 기존 모델로 전이 학습을 수행하는 것 외에도, CT 영상 분류에 분할 마스크(segmentation mask)를 활용하는 것은 모델 성능을 크게 향상시킬 수 있는 다양한 이점을 제공합니다. 이 글에서는 마스크 사용의 의의와 장점, 그리고 마스크가 없는 원본 데이터로부터 학습을 진행하는 과정에 대해 설명합니다.


1. CT 분류 모델 학습에 마스크를 사용하는 것의 의의와 장점

CT 영상 분류 모델 학습에 분할 마스크를 활용하는 것은 다음과 같은 중요한 의의와 장점을 가집니다.

관심 영역(ROI) 집중 및 노이즈 감소

  • 핵심 영역 강조: TotalSegmentator와 같은 도구를 통해 생성된 마스크는 CT 영상에서 주요 장기나 해부학적 구조를 정확히 식별합니다. 이 마스크를 원본 영상에 적용하면, 모델은 분류에 결정적인 영향을 미치는 핵심 영역(예: 특정 장기, 종양 의심 부위)에 더욱 집중할 수 있게 됩니다.
  • 노이즈 제거: 관심 영역 이외의 불필요한 배경이나 주변 조직 정보가 제거되거나 줄어들어, 노이즈로 인한 혼란을 최소화합니다. 이를 통해 모델은 보다 안정적으로 관련 특징을 학습하고 분류 정확도를 높일 수 있습니다.

모델 학습 효율성 증대

  • 학습 복잡도 감소: 분류와 직접적인 관련이 없는 정보가 줄어들면, 모델이 학습해야 할 특징 공간의 복잡도가 낮아집니다. 이는 더 적은 양의 데이터로도 효과적인 학습을 가능하게 하거나, 동일한 양의 데이터로 더 빠르게 모델이 수렴하도록 돕습니다.
  • 자원 배분 최적화: 모델이 특정 장기의 상태를 분류해야 할 때, 마스크는 이미 해당 장기의 위치 정보를 명확히 제공합니다. 따라서 모델은 “어디를 봐야 하는가”를 찾는 데 소모되는 자원을 줄이고, “무엇을 봐야 하는가(즉, 병변의 특징)”에 더욱 집중하여 학습할 수 있습니다.

일반화 성능 향상

  • 본질적 특징 학습: 모델이 관심 영역(ROI) 내의 본질적인 특징에 기반하여 학습하게 되므로, 촬영 각도, 환자의 체형, 주변 장기의 미세한 변화 등 분류 작업과 직접적인 관련이 적은 외부 요인에 대한 민감도를 줄일 수 있습니다.
  • 과적합 방지: 이는 학습 데이터에 과도하게 적합(overfitting)되는 현상을 방지하고, 이전에 보지 못한 새로운 데이터에 대한 모델의 일반화 성능을 크게 향상시키는 데 기여합니다.

해석 가능성 증진 (간접적)

  • 판단 근거 명확화: 마스크를 통해 특정 영역에 집중하여 학습된 모델의 판단은, 추후 XAI(Explainable AI) 기법(예: Grad-CAM)을 적용했을 때 더욱 명확한 해석을 가능하게 합니다. 즉, 모델이 실제로 관심 영역 내의 어떤 부분을 근거로 결정을 내렸는지 시각적으로 이해하는 데 도움을 줄 수 있습니다. 마스크가 없다면, CAM(Class Activation Map)이 영상 전체의 광범위한 영역에 걸쳐 활성화되어 해석이 어려울 수 있습니다.

2. 원본 CT에 마스크가 없는 경우의 학습 가능 여부

실제 임상 환경에서는 CT 데이터 원본에 분할 마스크가 없는 경우가 대부분입니다. 하지만 저희가 구축하고 논의해온 preprocess_dicom_to_nifti.py 스크립트의 핵심적인 역할 중 하나가 바로 이러한 상황을 해결하는 것입니다. 즉, 원본 데이터에 마스크가 없더라도 학습이 가능하도록 전처리 파이프라인이 설계되어 있습니다.

전체적인 작업 흐름은 다음과 같습니다:

  1. 원본 데이터 준비:
    • 마스크가 없는 원본 DICOM 또는 NIfTI 형식의 CT 영상 데이터를 준비합니다.
  2. 전처리 및 마스크 생성 (preprocess_dicom_to_nifti.py 실행):
    • NIfTI 변환 및 정규화: DICOM 파일을 NIfTI 형식으로 변환하고, 방향(orientation) 및 해상도(resolution) 등 기본적인 공간 정규화를 수행하여 “원본 NIfTI” 파일을 생성합니다.
    • 세그멘테이션 마스크 생성: 생성된 “원본 NIfTI” 파일에 대해 TotalSegmentator를 실행하여 해부학적 구조에 대한 “세그멘테이션 마스크” NIfTI 파일을 생성합니다. (이때 CT 영상이므로 TOTALSEG_TASK = "total" 설정이 사용됩니다. 입력 데이터 종류에 맞는 태스크 선택이 중요합니다.)
    • 마스크 적용: 생성된 “세그멘테이션 마스크”를 “원본 NIfTI”에 적용합니다. 예를 들어, 마스크에서 분할된 주요 장기 영역의 원본 CT 값은 유지하고, 그 외 배경 영역의 값은 0으로 처리하는 방식으로 “마스크 적용 NIfTI” 파일을 최종 생성합니다.
  3. 모델 학습 (ct_classification_train_with_xai_using_nifti.py 실행):
    • 위 2단계에서 생성된 “마스크 적용 NIfTI” 파일들이 실제 모델 학습의 입력으로 사용됩니다. Manifest 파일에는 이 “마스크 적용 NIfTI” 파일의 경로가 기록되어 모델이 해당 데이터를 불러와 학습을 진행합니다.

따라서, 원본 CT 데이터에 마스크가 존재하지 않더라도, 구축된 전처리 파이프라인을 통해 TotalSegmentator가 자동으로 마스크를 생성하고 이를 원본 영상에 적용합니다. 그 결과물을 가지고 모델 학습을 진행하게 되므로, 학습 단계에서는 항상 마스크가 적용된 영상 데이터를 사용하게 되는 것입니다.


결론적으로, CT 분류 모델 학습에 마스크를 사용하는 것은 모델이 더 의미 있는 정보에 집중하여 학습하도록 유도함으로써 분류 성능과 일반화 능력을 향상시키는 데 매우 중요한 역할을 합니다. 현재 제안된 파이프라인은 원본 데이터에 마스크가 없는 일반적인 상황을 가정하고, TotalSegmentator를 통해 이러한 문제를 효과적으로 해결하도록 설계되어 있습니다. 이를 통해 보다 정확하고 신뢰성 높은 의료 영상 분석 모델 개발을 기대할 수 있습니다.

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