의료 AI(딥러닝) 공부 일기

CH 03-2. TCGA_Weakly Supervised Learning for segementation

ignuy 2024. 7. 8.

TCGA project

TCGA는 대규모 게놈 시퀀싱을 비롯한 게놈 분석 기술을 적용하여 암의 분자 기반에 대한 이해를 가속화하기 위한 프로젝트이다. 프로젝트에서 생성된 데이터는 20,000개 이상의 주요 암을 분자화하고 33가지 서로 다른 암 유형을 조사하여 데이터화 해두었습니다. 우리는 이 데이터 셋을 이용하여 Rectal cancer(직장암) 데이터를 활용해서 Rectal cancer의 subtype을 구분하도록 학습시킬것이다. 보통 CMS1, 2, 3, 4 type 이렇게 총 네가지로 나뉘는데 오늘 Segmentation을 통해 검사할 subtype은 CMS4이다. 가장 생존률이 낮은 subtype으로 알려져있다.

데이터 준비

TCGA데이터는 WSI(Whole Slide Image)로 데이터 사이즈가 상당히 큰 편이다. 전부 분석하기에는 현실적으로 어렵고 이미지를 쪼개서 분석하는 방법을 취할 것이다.

사진 이미지를 (patch X patch)로 나누어 image_split_list에 저장한 후에 활용한다.

overfiiting을 방지하기 위해서 image에 대해서는 augmentation과 Normalization을 해주자.

모델 준비

이번 sementation(weakly supervised learning)에 resnet50을 이용했다. 또한 미리 학습시켜놓은 파라미터를 사용한다.

따로 label을 두지않고 image segmentation을 들어간다. 이미지에 학습된 결과를 주어진 색상으로 overlay하기 위해서 미리 색상을 선정해두었다. 8개의 색상을 정해두었다.

Test result 확인

흠... 확실히 어색하다. (patch X patch) size로 이미지 조각 별로 훈련된 결과를 붙여두었기 때문에 하나의 셀에서도 여러개의 색성이 함꼐 overlay되어 있는 것을 볼 수 있다. 따라서 우리는 미리 공부했던 Dense CRF를 사용하여 test 결과를 자연스럽게 이어붙여 볼 것이다.

Result 재계산

Grad-CAM

D-CRF를 적용하기 전에 model의 훈련 결과를 Grad-CAM으로 전처리해주어야 한다. Grad-CAM을 이용해서 pixel 별 class를 할당해주고 픽셀 별로 masking 하는 작업을 거쳤다. 또한 Masking한 패치 이미지를 하나로 병합한다. 자세한 과정은 github 소스코드에 적어두었다.

DenseCRF

이제 D-CRF를 통해서 주어진 segmentation 결과를 매끄럽게 연결해보자. D-CRF는 가까운 픽셀끼리 같은 class로, 비슷한 색끼리 같은 class로 만들어 주어 batch 단위로 이미지 결과를 확인했던 단점을 극복할 수 있게 해준다.

댓글