기억의 기록(나의 기기)

[Computer Vision] EfficientNetB0 cum FPN Based Semantic Segmentation of Gastrointestinal Tract Organs in MRI Scans 논문 리뷰 + 이해를 돕기 위한 추가 자료 본문

논문 리뷰

[Computer Vision] EfficientNetB0 cum FPN Based Semantic Segmentation of Gastrointestinal Tract Organs in MRI Scans 논문 리뷰 + 이해를 돕기 위한 추가 자료

황경하 2024. 11. 18. 21:14
반응형

[Segmantic Segmentation] EfficientNetB0 cum FPN Based Semantic Segmentation of Gastrointestinal Tract Organs in MRI Scans

안녕하세요, 데이터 과학 전공하고 있는 황경하입니다.

오늘은 컴퓨터 비전 영역에서 많은 연구가 이루어지고 있는 의미론적 분할 (Semantic Segmentation) 논문에 대해 리뷰해보려 합니다. 최근에 위암 조기 진단에 관한 논문들을 찾아보고 있는데, 종류가 너무 많더라고요. 저번에는 Attention 모듈을 사용한 논문을 리뷰했는데, 이번에는 EfficientNet과 FPN 구조를 적용하여 Segmentation을 수행한 논문을 리뷰해보려 합니다. 

 

* 리뷰할 논문: https://www.mdpi.com/2075-4418/13/14/2399

 

EfficientNetB0 cum FPN Based Semantic Segmentation of Gastrointestinal Tract Organs in MRI Scans

The segmentation of gastrointestinal (GI) organs is crucial in radiation therapy for treating GI cancer. It allows for developing a targeted radiation therapy plan while minimizing radiation exposure to healthy tissue, improving treatment success, and decr

www.mdpi.com

 

* 해당 글에 첨부된 사진들은 모두 위 논문에서 발췌한 것임을 미리 밝힙니다.

* 해당 글에 설명은 논문을 기반으로 한 주관적 해석이므로 틀린 부분이 있다면, 댓글로 지적 부탁드립니다!


# Abstract

위장(GI) 기관의 영역 분할은 GI 암 치료를 위한 방사선 치료에 매우 중요합니다. 암환자는 방사선으로 치료를 하게 되는데, 이 방사선이 건강한 기관을 건들면 오히려 악영향을 미치므로, 정상 기관과 병변 기관을 잘 구분하는 것이 매우 중요합니다. 이 연구는 이 타겟 기관 (병변 기관)을 분할하기 위해 하이브리드 인코더-디코더 기반 모델을 제안합니다. 제안된 모델은 EfficientNet B0를 이용하여 입력 이미지에서 의미 있고 차별적인 특징을 추출하고, 맥락 정보를 캡처합니다. 이는 다운샘플링을 위한 바텀-업 인코더 아키텍처로 사용되며, 기존의 ResNet 50, MobileNet V2, Timm Gernet의 세 가지 인코더와 비교하여 성능을 체크합니다. 반대로, 디코더로 Feature Pyramid Network (FPN)을 공간 정보를 복원하기 위한 업샘플링에 사용합니다. 이는 탑-다운 디코더 아키텍처이며, PAN, Linknet, Manet의 세 가지 디코더와 비교하여 성능을 체크합니다. 평가 지표는 Jaccard Dice 계수, 모델 손실 값, 처리 시간을 사용하며 제안된 모델은 각각 0.8975 0.8832 Dice 계수 및 Jaccard 지수 값을 달성했습니다.


# Introduction

GI 암을 치료하는 방식으로는 다른 약물과 함께 고강도 방사선을 사용하여 암세포를 죽이는 것이 효과적인 치료법으로 입증되었습니다. 그러나, GI 기관은 모양이 복잡하고 불규칙하기 때문에 암세포를 정확하고 정밀하게 조준하는 것이 필수적입니다. 이에 딥러닝 기술을 이용하여 암세포 영역과 정상 영역을 분할하고자 했습니다. (이를 논문에서는 의미론적 분할로 표현). 이 태스크의 방법으로 논문에서는 인코더로는 EfficientNet B0, 디코더로는 FPN 구조를 사용하여 하이브리드 인코더-디코더 모델을 제안합니다. 데이터셋은 UW Madison GI 데이터셋을 사용하였습니다.


# Dataset

위스콘신-매디슨 카본 암 센터에서 MRI 유도 방사선 치료를 받은 환자로부터 수집된 자기 공명 영상(MRI) 데이터를 사용했습니다. 수집된 이미지는 흑백 이미지이며, RLE 인코더를 이용해 GT (Ground Truth) 이미지의 마스크가 생성됩니다. 대장은 14,085, 소장은 11,201, 위장은 8627개의 마스크가 있으며 GT는 이 대장, 소장, 위장의 마스크가 결합된 이미지입니다. 그리고, 33,913개의 빈 마스크가 포함되어 있는데, 이는 타겟 영역이 없는 정상 상태의 이미지로 모델 학습 시 사용됩니다. 아래는 이미지의 마스크를 보여줍니다.

(a): Input Image, (b): 대장 마스크, (c): 소장 마스크, (d): 위장 마스크로 마스크들을 모두 합해 e가 만들어지며 GT로 사용된다.

 

여기서, GT인 (e)는 대장, 소장, 위장을 구분한 이미지임을 알 수 있습니다. 이는 논문에서 하고자 하는 태스크가 대장, 소장, 위장을 구분하는 것임을 알 수 있습니다. 저는 이 부분에서 좀 의아했습니다. 왜냐하면, 대부분의 논문은 대장, 소장, 위장을 분리하는 것이 아닌 병변 영역과 정상 영역을 분리하거든요. 그래서, 찾아보니 목적성이 다른 것이었습니다. 암을 진단하는 것은 그리 쉬운 태스크가 아닐뿐더러, 모델이 잘못 판단할 시 굉장히 큰 리스크가 있습니다. 따라서, 본 논문에서 제안하는 것은 사전 검사를 통해 위암인지 아닌지를 판단하고, 위암인 사람을 치료하는 데에 이 모델을 사용해 위장만을 정확히 탐지하고, 다른 영역에는 방사선을 조준하지 말자는 것입니다. 따라서, 대장, 위장, 소장을 분리하고자 했던 것이죠.


# Proposed Methodology

훈련 시에는 Input으로는 MRI로 촬영한 이미지가 주어지며 레이블은 위에서 생성한 GT 이미지가 주어집니다. 그러면 훈련된 모델은 MRI 이미지에서 대장, 소장, 위장 영역이 레이블별(=색깔별)로 표현하는 것이죠. 이에 논문에서는 아래와 같은 아키텍처를 제안합니다.

 

1) Best Encoder Evaluation for Downsampling: Input Image가 훈련시에 들어오면 인코더들을 통해서 특성을 추출하는데, 어떤 인코더가 가장 Input Image에서 잘 특성을 추출하는지를 비교하기 위해 4가지 모델의 성능을 비교합니다.

 

2) Best Decoder Evaluation for Upsampling: 인코더 과정에서 특성을 추출하는 것이 Convolution 연산으로 이루어지기 때문에 이미지가 축소됩니다. 따라서, 이를 다시 복원하기 위해서 디코더를 사용합니다. 이 역시 4가지 디코더와 성능을 비교하여 최적의 모델을 선정합니다.

 

3) Best Optimizer Evaluation for Hyperparameter Tuning: 인코더와 디코더를 모두 거치고 난 모델의 아웃풋과 실제 GT 이미지와의 Loss값을 줄이는 방향으로 모델을 학습합니다. 이때, 어떠한 방식으로 Loss를 줄일 것인지를 결정하는 것이 Optimizer입니다. 이 Optimizer 또한 4가지를 비교하여 최적의 Optimizer를 선정합니다.

 

이렇게 최종적으로 선정된 인코더, 디코더, Optimizer를 이용해 모델을 훈련시킵니다. 훈련된 모델은 MRI 이미지만 입력하여도 대장, 소장, 위장의 위치를 예측하여 분리된 이미지를 아웃풋으로 반환하게 됩니다.


# Results and Discussions

성능 비교 지표로는 Dice, Jaccard Index, Loss, Processing Time을 사용했습니다. Loss는 Loss Function을 논문에서 공개해주지 않아 저희가 알 수는 없구요. Dice와 Jaccrad Index는 이 블로그에 정리해 두었으니, 모르시는 분들은 들어가서 확인해 주시면 이해가 더 빠를 것 같습니다.

## Best Encoder—EfficientNet B0

인코더부터 성능 비교 결과를 살펴보면 아래 그림과 같습니다. 

 

Dice 지표와 Jaccard Index 모두 EfficientNet B0가 가장 좋은 성능을 보여주며, Processing Time은 가장 낮습니다. 이는 모델의 추론 속도도 매우 빠른데, 그 정확도 또한 매우 높다는 것을 의미합니다.

## BestDecoder—FPN

디코더의 성능을 비교하는데, 논문에 제대로 된 비교 이미지나 지표가 없습니다. FPNPAN, Linknet, MAnet과 같은 디코더보다 성능이 뛰어났다고는 하는데, 증명하는 자료가 없어서 아쉽습니다.

 

## Optimizer Evaluation for Hyperparameter Tuning

4가지의 Otimizer(Ada Delta, SGD, RMS Prop, Adam)를 비교하였다. 결과는 아래와 같습니다.

 

결과를 보면, Adam Dice, Jaccard, Loss, Processing Time 모두 가장 좋은 성능을 보였습니다. 이에 논문에서는 종합하여 인코더로 EfficientNet B0, 디코더로 FPN, Optimizer Adam을 사용했다고 합니다.

 

이 논문에서 가장 아쉬운 점은, Loss Function을 정의하지 않았으며 동시에 어떤 방식으로 성능을 체크하였는지를 알 수 없다는 것입니다. 일부러 공개를 안 해주는 것인지는 모르겠으나, 이 논문을 처음 읽는 저에게는 잘 이해가 되지 않더라구요. 아시는 분은 댓글로 알려주시면 감사하겠습니다!


# Visualization of Results for the Best Optimized Model

아래는 논문에서 제안한 하이브리드 인코더-디코더 모델로 추론한 결과입니다. Ground Truth Mask와 비교하였을 때 매우 유사한 결과를 보여줌으로써 좋은 성능을 달성한 것을 알 수 있습니다


# State-of-the-Art Comparison of UW Madison GI Tract Dataset

SOTA 모델들과 성능을 비교한 결과입니다. 맨 아래에 제안된 모델이 있는데, 결과를 보니 가장 높은 점수를 기록한 것을 알 수 있습니다.


# Conclusions

정리하면, 논문에서는 대장, 소장, 위장을 분리하는 것이 매우 중요하다고 주장합니다. 그 이유는 위 암을 치료하는 데에 방사선을 이용한 치료 방법을 많이 사용하기 때문에 다른 정상 기관들에 방사선이 닿을 시 건강에 해롭기 때문입니다. 이에 논문에서는 하이브리드 인코더-디코더 모델을 제안하였으며 성능 비교를 통해 인코더로 EfficientNet B0, 디코더로 FPN, Optimizer Adam을 채택했습니다. 제안된 모델은 다른 SOTA 모델보다 Dice, Jaccard 지표에서 더 높은 성능을 보였으며, 최적의 성능을 보여줍니다. 이는 암 치료 성능 향상에 도움을 줄 수 있다고 주장합니다.


# 모델의 사용 방안

이 논문을 읽으며 어떻게 이 모델을 사용할 수 있을까? 를 생각해봤습니다. 제가 생각한 워크 플로우는 아래와 같습니다.

 

1) 사전 점검을 통해 암 환자와 정상 환자를 구분.

2) 암 환자에게만 MRI를 촬영.

3) 촬영된 MRI 이미지를 훈련된 모델에 입력.

4) 훈련된 모델은 대장, 소장, 위장의 위치를 정학히 구분해야 함.

5) 의사는 병변 영역만을 정확히 조준하여 방사선을 발사해 치료함.

 

그럼, 빈 마스크는 어디에 활용될까요? 아마도, 대장, 소장, 위장이 아닌 다른 기관을 표시하기 위함이 아닐까 싶습니다. 즉, 이를 만약 내시경 카메라에 장착한다고 했을 때, 처음부터 대장, 소장, 위장의 영역에서 시작하는 것이 아니기 때문에 소화 기관으로 이동해주어야 합니다. 이 길을 안내해 주려면, 대장, 소장, 위장만이 색깔로 표시되어야 합니다. 따라서, 타깃 영역과 그렇지 않은 영역을 분리해 주는 기능이 필요합니다. 이에 빈 마스크 이미지가 필요했던 것이죠.

 

그러나 이렇게 되려면, 실시간 추론이 가능해야 합니다. 하지만, EfficientNet B0 만 해도 Processing Time이 2.41초입니다. 이는 실시간 추론으로는 적절하지 않습니다. 따라서, 더 경량화를 진행하는 방향의 연구가 필요할 것 같습니다.

 


추가 자료

# Model

 

## EfficientNet B0

 

기존의 CNN 모델들은 ResNet처럼 성능을 높이기 위해 층을 깊게 쌓거나, 혹은 width를 늘리거나 Resolution 방식으로 해상도를 높이는 방법으로 Model Scale을 키웠습니다. 여기서, EfficientNetDepth, Width Resolution 간의 균형(Balance)이 중요하다고 보았으며, 가중치(반영 비율)를 주어 조절해야 한다고 주장했습니다. 이에 가중치를 알파, 베타, 감마 파라미터로 지정했습니다. 이를 통해 세 가지 방식을 모두 Compound 하여 사용해 모델의 Scale을 키웠습니다.

모델의 Scale을 키우는 방법들과 Compound 방식

 

위 방식에서 (e)가 바로 Compound 방식으로 논문에서 주장한 방식입니다.

 

 

위 그림에서 보면, d는 깊이를 r Resolution을 이야기하는데, r이 커지면, Depth가 커져야 하고, Width 조정도 필요함을 알 수 있습니다. 즉, 이 세 개는 복합적으로 조정이 필요하다는 것을 이야기합니다. 이 파라미터는 Grid Search 방법을 통해 찾습니다.

 

EfficientNet B0의 아키텍처

 

여기서 MBConvCon 1*1, Conv 3*3, Conv 1*1로 하여 입력의 채널을 확 키웠다가 다시 작게 했다가로 원래 크기로 돌아오게 하는 Convolution을 이야기합니다. 이를 통해 다양한 피처를 추출할 수 있습니다. 또한, Depthwise Separable Convolution (MobileNet에서 구현한 채널별 특성 추출과 합치는 것을 따로 진행하여 파라미터를 줄인 것)을 사용합니다. 결과적으로, EfficientNet은 다른 모델들보다 파라미터 수는 적되, 특성은 더 많이 추출하여 더 좋은 성능을 보입니다. 이는 다른 모델들에도 적용할 수 있는 굉장한 발견입니다.

## FPN

논문에서 말하는'Pyramid'라는 단어는 서로 다른 Resolution Feature를 쌓아 올린 형태를 뜻하며, 입력 이미지에서 Feature를 뽑아내면, Spatial Size는 작아지게 됩니다. 초반 Feature Map Spatial Size는 크지만, Low-Level Feature를 가지게 됩니다. 이렇게 단계별로 서로 다른 Resolution을 가지는 Feature를 추출하고, Decoder의 최상위부터 거꾸로 내려오면서 같은 Resolution을 가지는 Encoder Output Feature와 합쳐준 뒤 Prediction을 합니다. 그림에서 보면, 오른쪽에 올라가는 것이 Encoder, 내려가는 것이 Decoder입니다.

 

마치며...

오늘은 Semantic Segmentation 태스크 논문을 찾아봤습니다. 생각보다 어려웠고, 처음 보는 개념이 많았습니다. 마지막으로, 제가 생각한 인사이트 공유하며, 마치겠습니다. 제 글이 이 논문을 읽으시려는 분들에게 조금이나마 도움이 되었으면 합니다. 감사합니다 :)


Insight

논문에서는 EfficientNet을 인코더로 이용해 Feature를 추출하고, 디코더로 FPN을 이용했다. 왜 그럴까?

→  EfficientNet에는 MBConv를 통해서 이미지의 채널을 늘렸다가 다시 압축하는 방식으로 특성을 많이 추출할 수 있으므로 인코더로써 다른 모델보다 유리함.

→  FPN은 다양한 스케일의 물체를 정확하게 분할하기 위해, 인코더에서 추출된 특징을 다양한 해상도로 결합한다. 이를 통해 작은 물체부터 큰 물체까지 정확하게 분할할 수 있다.

 

그런데, EfficientB0를 사용했을까?

데이터셋 크기, 컴퓨팅 자원, B0로도 충분한 성능 등이 이유가 되겠다.

 

반응형