1. Introduction
- Medical image classification
- Image Segmentation
- Classification의 확장 형태
- Pixel level로 image classification을 수행
- 물체(혹은 병변)의 경계를 분할하는 방식
2. Medical image Segmentation
Previous Segmentation (고전적 방식)
- Image의 feature 활용
- 다양한 위치의 다중 필터를 통해 feature 추출
- Edge detection(에지 검출)을 통해 영상 분할
- Pixel 간 gradient 활용
- 고전적인 Graph 이론 활용
- Interactive segmentation (label을 통한 GraphCut 등)
- GrabCut 등 iterated graph cuts 기법으로 전경/배경 분리
Image segmentation problem (Localization 문제)
- 기존 ML 모델(분류용)은 위치 정보가 소실됨
- 의미 있는 영역(병변 등)의 특징 추출이 어려움
- 1×1 conv만으로 input=output 형태를 만들면 파라미터 수가 방대
Image Segmentation Challenge
- Image level Classification 구조로는 위치·채널 정보가 사라짐
- Fully Connected Layer를 거치면 공간적 정보 손실
- 예: ResNet에서 avg pooling + FCL로 인해 위치가 소멸
3. Medical image Segmentation (의료 영상 세그멘테이션)
- 병변(lesion)이나 ROI(Region of interest)를 분할하여:
- Tumor size, 병변 위치 정확 측정
- 특정 조직의 구조 분석
- 진단 효율성·정확성 향상
Medical Image Segmentation Problem
- 다양한 영상 획득 방식 + 생물학적 변이 → Noise 많음
- 완벽한 annotation 어려움, 전문 Annotator 부족
- 사람마다 다른 주관으로 인해 Label 불일치
- 일반 이미지(Cat, Dog)에 비해 훨씬 난이도 높음
Medical Image Segmentation Solution (고전방법)
- Thresholding segmentation
- Histogram 기반 영역 분할
- Edge base Segmentation
- edge 검출 기반 분할
- Interactive/Manual 성격이 강해 자동화가 어렵거나 많은 보조 필요
4. Modern Medical Image Segmentation
전처리(Preprocessing), 다양한 아키텍처, Inference
- Preprocessing
- Pretrained model, Patching, Resampling
- Augmentation (기하학 변환 등)
- Architecture
- UNet, DeepLabv3, UNETR 등
- Inference
- Test time Augmentation (TTA)
Pretrained model 활용
- 적은 데이터 문제를 해결
- 일반적인 Natural image로 학습된 대규모 모델(예: ImageNet)
- 또는 Self-supervised로 학습된 시각 표현(Representation)을 전이(Transfer Learning)
Patching & Oversampling
- 특정 영역을 Random Patch로 잘라내 학습
- 3D 의료 영상이 매우 클 경우, Patch 단위로 나누어 학습
- 크기가 큰 스캔의 경우 전체를 한 번에 GPU 메모리에 올리기 어렵기 때문에 Patch 방식 사용
Augmentation
- Overfitting 방지 위해 Flip, Crop, Rotate, Color Jitter 등 활용
Hard Augmentation
- Cutout: 영상 일부를 Masking
- Mixup: 두 영상 합성
- Cutmix: 특정 부위를 다른 영상으로 교체
5. 대표 Segmentation 아키텍처
1) U-Net
- Encoder + Decoder + Skip connection 구조
- Encoder(Contracting Path): 이미지에서 context 추출
- Decoder(Expansive Path): Upsample 후, Encoder feature와 concatenate
- Skip connection: Localization 정보 손실 방지
- 간단·효율적 구조로 의료영상 분야에 널리 사용
2) DeepLab
- Atrous convolution(또는 dilated convolution) 사용
- Receptive field 확장 → 한 픽셀이 넓은 영역을 볼 수 있음
- ASPP(Atrous Spatial Pyramid Pooling) 통해 Multi-scale feature 획득
- 공간적 정보를 풍부하게 유지하며 세그멘테이션 성능 향상
3) UNETR
- Transformer를 Encoder에 도입한 3D 세그멘테이션 기법
- Long-range spatial dependency를 Transformer로 처리
- 3D 의료 영상에서 U-Net + Transformer 조합으로 강력한 성능 가능
6. 추가 Trick
Test Time Augmentation (TTA)
- Inference 시, 이미지를 Augmentation(Flip, Scale 등)한 뒤 모델 예측들을 앙상블
- 예측 결과를 평균 또는 다수결 등으로 합쳐서 좀 더 안정적 결과 획득
Post Processing
- Edge Enhancement: Boundary 영역 보정, Noise 제거
- 생긴 구멍(hole)을 동일한 mask로 채우기
- 예: Morphological 연산, OpenCV-based hole filling 등
7. Segmentation Loss & Evaluation
Segmentation Loss
- Cross Entropy(CE) Loss
- Pixel-wise로 class 분류
- Class imbalance 시 weight 적용 가능
- Dice coefficient Loss
- 세트 A(예측)와 B(정답)의 겹치는 정도를 직접 측정
- Dice = 2|A∩B| / (|A|+|B|)
- Dice Loss = 1 - Dice
- Jaccard/Intersection over Union(IoU) Loss
- IOU = |A∩B| / |A∪B|
- Jaccard Loss = 1 - IOU
- Dice와 유사한 면이 많으나 계산 방식 약간 다름
확장된 IoU 기반 Loss(GIoU, DIoU)
- 기존 IoU $$\text{IoU} = \frac{|A \cap B|}{|A \cup B|}$$
- 두 영역(또는 박스)이 거의 겹치지 않을 때 $\text{IoU} \approx 0$이 되어 학습에 어려움이 생김
GIoU (Generalized IoU)
- 추가 개념: 두 박스를 모두 감싸는 최소 외접 박스 C를 정의
- $$\text{GIoU} = \text{IoU} \;-\; \frac{|\,C \setminus (A \cup B)\,|}{|\,C\,|}$$
- 겹치지 않더라도, 외부 박스와 실제 영역 차이를 고려해 벌점 부여 → 학습 수렴 가속
DIoU (Distance IoU)
- 추가 개념: 박스(또는 마스크)의 중심점 거리 반영
- $$\text{IoU} \;-\; \frac{d^2(\text{center}(A), \text{center}(B))}{D^2_\text{max}}$$
- $d$: 두 중심점 사이의 거리
- $D_\text{max}$: 감싸는 범위 내 최대 거리
- 영역 겹침이 적어도 중심점이 서로 가까워지도록 학습 → 좀 더 빠르게 두 박스가 유효하게 겹침
기타 평가 지표
- Precision / Recall / F1 score / Specificity / Accuracy
- Pixel 단위의 TP, FP, FN, TN을 계산 가능
- F1 = 2 × (Precision×Recall)/(Precision+Recall)
- Hausdorff Distance
- 예측된 경계와 실제 경계가 얼마나 떨어져 있는지(양 방향) 측정
- 꼭짓점(match) 관점에서 가장 최악 거리 측정
전반적 평가 방법
- 세그멘테이션 결과 마스크와 정답 마스크 간 차이
- Mean-Intersection Over Union (mIOU) 등으로 평균 측정
- Annotator마다 편차가 큰 의료 영역이므로 정확한 기준 선정이 중요
8. 요약
- 의료 영상 세그멘테이션은 Pixel 단위 분류로써, 정확한 병변 분할에 큰 역할을 함
- 적은 데이터 해결을 위해 Pretrained 또는 Self-supervised 활용, Patch 분할, Augmentation 기법을 활발히 사용
- 대표 모델: U-Net, DeepLab(Atrous Conv), UNETR(Transformer) 등
- Inference 시 TTA, 후처리(Edge/Hole 보정)
- 평가 시 Dice/IoU/F1/Hausdorff 등 다양한 지표 적용
- 의료 영상 특수성(Noise, Annotator 편차 등)으로 정확한 전처리·후처리·평가 전략이 필수
9. 논문: Resource Optimized Neural Architecture Search for 3D Medical Image Segmentation
[딥러닝을 활용한 의료 영상 처리 & 모델 개발] Part 2-4. Resource Optimized Neural Architecture Search for 3D Med
논문 링크: https://arxiv.org/pdf/1909.005481909.005481. Introduction & AbstractNetwork Architecture Search(NAS)Neural Networks의 최적 구조를 자동으로 탐색하는 방법론Natural image 분야에서 활발히 사용연구 배경3D Medical Ima
ahxlzjt.tistory.com
10. Medical image 3d segmentation 실습
[딥러닝을 활용한 의료 영상 처리 & 모델 개발] Part2-4. Brain tumor Semantic segmentation(Brats 2020) EDA(탐색
코드 링크: https://drive.google.com/file/d/1BWygf40czY9c2FkDnP0tmHiE3eMJO0c-/view?usp=sharing ch05-05-3d-brain-tumor-segmentation-eda.ipynbColab notebookdrive.google.com0. 설치 및 라이브러리 로드!pip install monai, !pip install natsort로
ahxlzjt.tistory.com
[딥러닝을 활용한 의료 영상 처리 & 모델 개발] Part2-4. Brain tumor Semantic segmentation(Brats 2020)을 SegResNe
코드 링크:https://github.com/ahxlzjt/MedImagingDL/blob/55edfd5ed184027a708c9aa1fdf732680390de3f/ch05_06_3d_brain_tumor_segmentation_infe.ipynb MedImagingDL/ch05_06_3d_brain_tumor_segmentation_infe.ipynb at 55edfd5ed184027a708c9aa1fdf732680390de3f · a
ahxlzjt.tistory.com
11. 결론
이번 학습을 통해 의료 영상 세그멘테이션의 이론과 다양한 최신 기법들을 심도 있게 배울 수 있었다. 특히, 의료 영상 처리에서 Pixel 단위의 정밀한 분할이 진단 정확도를 향상시키고 병변 분석에 중요한 역할을 한다는 점을 이해하게 되었다.
1. 세그멘테이션의 중요성:
- 의료 영상 세그멘테이션은 병변의 정확한 위치와 크기를 파악할 수 있도록 하여 진단과 치료 계획 수립에 필수적인 도구임을 확인했다.
- 고전적인 방식의 한계를 극복하고 딥러닝 기반의 모델들이 어떻게 세그멘테이션 문제를 해결하는지 알게 되었다.
2. 데이터 준비와 전처리:
- Pretrained 모델 활용, Patch 기반 학습, Augmentation 기법 등 데이터의 품질을 높이고 효율적으로 학습하는 전략을 배웠다.
- 특히, 3D 데이터에서의 Patch 분할은 GPU 메모리의 효율적 사용과 모델 학습 최적화를 동시에 가능하게 한다는 점을 체감할 수 있었다.
3. 대표 모델 이해:
- U-Net, DeepLab, UNETR 등의 주요 세그멘테이션 모델 구조와 작동 원리를 학습하며, 각 모델의 장단점과 적합한 사용 사례를 파악했다.
- Transformer 기반의 UNETR처럼 최신 아키텍처들이 3D 의료 영상에 강력한 성능을 발휘한다는 점이 인상 깊었다.
4. 평가와 후처리:
- Dice Loss, IoU Loss 등 세그멘테이션에서 사용되는 다양한 손실 함수와 평가 지표를 이해하며, 성능 평가와 모델 개선의 중요성을 느꼈다.
- Test Time Augmentation(TTA), Edge Enhancement 등 후처리 기법들이 결과의 정밀도를 어떻게 높이는지 실습을 통해 확인했다.
5. 의료 영상의 특수성:
- 의료 영상에서 발생하는 Noise, Annotation 편차 등 특수성을 반영한 전처리 및 후처리 과정이 필수적임을 배웠다.
- 이를 통해 실제 데이터에서 발생할 수 있는 문제를 예측하고 대응하는 법을 익혔다.
주요 포인트:
- 의료 영상 세그멘테이션의 필요성: 병변 분할을 통해 진단 효율성과 정확도를 높이는 핵심 기술.
- Pretrained 모델과 데이터 증강: 적은 데이터 문제를 해결하며 모델 성능을 극대화할 수 있는 방법.
- Patch 기반 학습: 3D 영상 처리에서 GPU 메모리 효율성을 극대화.
- 주요 아키텍처의 활용: U-Net, DeepLab, UNETR 등 모델을 적합한 데이터와 문제에 맞게 활용.
- 평가와 후처리: 다양한 손실 함수와 후처리 기법으로 모델 성능을 정밀히 개선.
이번 학습을 통해 의료 영상 세그멘테이션의 기초부터 최신 기술까지 폭넓게 경험했다. 앞으로도 더 다양한 데이터셋과 기법을 탐구하여 의료 AI 분야에서의 전문성을 지속적으로 발전시킬 계획이다.