2017.11.29arXiv에 발표된

Detection-aided liver lesion segmentation using deep learning에 대해 리뷰하도록 하겠습니다.

(Github : liverseg-2017-nipsws / Slideshare)




Abstract


- CNN을 이용하여 CT scan에서 간(liver)과 간에 위치한 장애(lesion)를 segment하는 방법을 제시합니다.

- Positive(Lesion)인지 negative(non-lesion)인지를 분류하는 bounding box detection을 통해 더욱 성능을 높였씁니다.

- Segmentation 구조는 DRIU를 기반으로 합니다.



1. Introduction


- 이 논문에서는 CT scan에서 간과 장애를 segment하기 위해 DRIU를 사용합니다. DRIU는 다양한 convolutional stages에서 side outputs를 갖고 있는 FCN (Fully Convolutional Network)입니다. 저자가 제시하는 네트워크의 핵심은 장애를 localize하는 detection network를 추가하여 segmentation network의 성능을 더욱 높였다는 것입니다. 이 논문에서는 131개의 training image와 70개의 testing image로 구성된 LiTS 데이터셋을 학습에 사용합니다.



2. Detection-aided Liver and its lesions segmentation using deep learning


Figure 1 : Detection-aided liver와 lesions segmentation를 위한 모델의 구조. 첫번째 단계에서는 간(liver)를 segment합니다. 이후에 예측된 간을 통해, 간 주변에 3D bounding box를 위치시키고 bounding box로 인해 잘라진 slices(노란색 2번 박스에서 빨간색 박스에 해당)는 lesion segmentation network에서 segment됩니다.


- 우선 장애(lesion)을 segment하기 위한 RoI(Region of Interest)에 초점을 맞추기 위해 간(liver)를 segment합니다. 



2.1 Segmentation network

: Lesion and liver segmentation network는 모두 DRIU를 기반으로 합니다. 이 모델은 뒷단의 FC layers는 모두 제거한 VGG-16을 base network로 합니다. Convolution 연산을 거치면 거칠수록 점점 디테일한 정보는 사라지고 추상적인 데이터만 남게 되는 문제가 발생하기 때문에 DRIU는 이를 보완하고자 convolution의 중간 결과를 끌어와 resize한 다음에 linearly combine하여 최종 결과를 도출합니다. 이를 통해 디테일한 정보와 추상적인 정보를 모두 이용하여 task에 응용할 수 있습니다.


- 2.1.1 Loss objective

  : Positive와 negative lesion 픽셀의 불균형(imbalance)를 보완하기 위해 weighted binary cross entropy (weighted BCE)를 사용합니다.

    일반적인 binary cross entropy와 다른 점은 weights 가 추가된 것입니다. Weights는 각 클래스별 loss에 가중치를 주어 클래스 간 불균형을 보완하고자 하는 목적을 갖고 있습니다.

    예시를 통해 설명을 드리자면, 클래스가 0인 데이터가 1인 데이터에 비해 월등히 많은 양이라면 모델은 클래스가 1인 데이터를 정확하게 예측하는 것이 중요하므로 정답 클래스가 1인 데이터를 0으로 예측했을 때의 loss에 높은 가중치를 주게 됩니다.


- 2.1.2 Suppressing the loss outside the region of the liver

   : 간의 안쪽에만 장애(lesions)이 존재하기 때문에 간이 아닌 픽셀에는 gradients를 back-propagation하지 않는 것이 더욱 효율적입니다. 이러한 방법을 이용할 경우 얻을 수 있는 장점은 아래의 두 가지가 있습니다.

 1) 네트워크가 실제 target class에 속하는 픽셀으로부터만 학습할 수 있다.

 2) Negative 픽셀의 수가 확연히 줄어들기 때문에 positive와 negative 픽셀의 균형을 맞출 수 있다.


- 2.1.3 Using context slices to exploit 3D information

   : channel이 1인 단면(slice)를 사용하여 학습할 경우 실제로 같은 volume에 속한 단면끼리는 서로 상관관계가 있지만 네트워크는 이를 반영하지 못합니다. 따라서 이 논문에서는 3개의 단면을 동시에 사용하여 channel이 3인 인풋 이미지를 네트워크에 넣어줍니다. Channel이 3인 인풋 이미지를 이용하면 Imagenet에 pre-trained되어 있는 weights를 사용할 수 있는 장점이 있습니다.



2.2 Lesion detection network

-  Figure 1.의 2번에 사용하는 bounding box sampling을 하는 네트워크를 detector라 하고 3번에서 사용하는 lesion segmentation 네트워크를 segmentation network라고 하겠습니다. Segmentation network는 간의 정상 여부를 판단하는 넓은 시각(global view)을 갖지 못하기 때문에 많은 이미지에서 false positives가 생기는 문제가 있습니다. 즉, 장애(lesion)가 아닌 부분을 장애로 인식하는 문제가 있습니다.

   이를 극복하기 위해 detector를 사용합니다. Detector는 lesion이 있는 box를 예측하는 bounding box detection을 하여 더욱 넓은 시각으로 간의 정상 여부를 판단할 수 있습니다. 최종적으로 논문에서 제시하는 모델은 detector와 segmentation network가 모두 lesion으로 예측한 부분만 lesion으로 결정합니다.



Figure 2: Lesion detection network의 결과. 파란색 선과 빨간색 선은 간과 장애(lesion)의 ground truth입니다.

노란색 선과 초록색 선은 간과 장애에 대한 segmentation 결과입니다.

연한 파란색 박스는 장애를 갖고 있다고 예측된 window입니다.

Segmentation network의 모든 positive 픽셀 중에 detection의 결과와 동일하지 않은 픽셀은 모두 제거됩니다.



- Bounding boxes를 만든는 방법은 다음과 같습니다. 우선, bounding box는 간(liver) 주변 영역에만 만들어지기 때문에 box의 25% 이상이 간과 겹치는 box만 사용합니다. 50 x 50 픽셀의 window를 사용하고 이 윈도우 안에 50픽셀 이상의 장애(lesion)가 존재하면 positive box로 처리합니다. Sliding window는 50 픽셀의 stride를 갖고 부가적인 정보를 window에 제공하기 위해 각 변에 15 픽셀을 추가하여 결국 각각의 window는 80x80 사이즈를 갖습니다.


- 논문에서 사용한 모델은 ImageNet에 pre-trained된 ResNet-50을 사용합니다. 이때, 마지막 classification layer를 간 조직의 정상 여부를 판단하는 뉴런 하나로 대체합니다.


- Batch size는 64로 하였고 positive and negative patches를 동일한 비율을 갖게 학습합니다.


- 뒤집기(flipping)와 회전(rotation)을 통해 데이터를 8배 augment하였습니다.





2.3 Postprocessing

- 후처리(postprocessing)으로 3D Fully Connected CRF (Conditional Random Field)를 사용합니다. CRF는 생략하고 넘어가도록 하겠습니다.






3. Experimental validation

- 전처리 과정에서는 우선 (-150, 250) 범위 밖의 픽셀값은 minimum/maximum 값으로 대체하였습니다. 이는 간과 장애가 이러한 한정된 범위에 속해있기 때문입니다.

- 각각의 volume에 대해 min-max normalization을 합니다.



LiTS의 test data에 대해 예측한 결과를 LiTS 홈페이지에 제출한 결과입니다.


3-i/o은 연속된 3개의 단면을 네트워크에 한번에 넣어준 것이고

BP in liver는 간의 예측한 부분만 학습(Back propagation)해준 것입니다.


Detector와 3D-CRF를 추가한 것이 더욱 좋은 결론을 보임을 알 수 있습니다.