Deep Learning study

U-Net : Convolutional Networks for Biomedical Image Segmentation 본문

AI/papers

U-Net : Convolutional Networks for Biomedical Image Segmentation

HwaniL.choi 2019. 4. 6. 20:04
반응형

오늘 정리 할 논문은 FCN에 이어서 U-Net. 이미지 segmentation하면 항상 나오는 논문인것같다. 

 

이 논문을 제일 처음 접한것은 다른 이유가 있었지만 생략.. ㅎ 좋은일은 아니었기때문에 .. 

 

여튼 그럼 논문으로 들어가 보도록 하자.

 

이 논문에서 소개할 것은 크게는 두가지 이다. 하나는 network(모델의 구조)이고, 다른 하나는 data augmentation을 활용했다는 것이다. 

 

언제나 그렇듯이 이맘때쯤 나온 논문들의 introduction의 도입부는 항상 비슷한것 같다. '최근 몇년간 deep convolutional netowrks는 이미지 인식 분야에서 뛰어난 성능을 보여왔다' ... 등등의 말.. 여기도 비슷말들이 주욱 있다.

 

classification분야에서는 네트워크의 출력으로 단지 1차원적인 class label만을 가지면 됐다. 하지만 의료 이미지처리에서 주로 할 작업에서는 이미지의 각 픽셀마다의 class label이 주어져 분류해야된다는 것이다. 

 

이 연구 이전에 sliding-window방식을 사용해 각 필셀마다의 class label을 주어 patch(이미지의 한 부분, 쉽게 말하자면 조각낸 이미지) 단위로 학습한 것이 있었는데, 그것은 두가지의 결함이 있다고 말한다. 
첫 째로, 이 방식은 매우 느리다. sliding-window방식 자체가 각 patch마다의 overlap되는 부분이 매우 많고, 그것을 네트워크가 가각 따로 처리하게 되기 때문이다.

 

두번째로, context(말하자면 문장과 문장사이의 문맥이 맞아야 하듯이, 이미지에서 픽셀들 간의 자연스러운 조합? 정도로 설명할 수 있을것 같다.)와 localization의 정확도 사이에 tradeoff가 생긴다는 것이다. 큰 patch를 사용하게되면 더 많은 pooling layer가 필요로하게 되는데 이것은 localization의 정확도를 감소시키고, 작은 patch를 사용하게되면 네트워크가 작은 부분의 context만을 보게되어 전체적인 context에대한 이해도가 떨어진다는 것 이다.

 

 

Network Architecture 

 

 

먼저 위의 그림을 보면 왜 논문의 제목이 U-Net인지 알 수 있다. contract되는 layer과 upsampling layer 들이 반복되면서 생긴 구조가 U자 모양처럼 생겼기 때문이다.

방금 말했듯이 U-Net의 특징은 contract와 upsampling 이다. contract 과정에서 image의 크기를 줄여나가면서 많은 수의 feature들을 가지게 된다. 그리고 다시 segmentation된 image를 얻기 위해서 upsampling과정을 거치게 된다.

또 한가지의 특징을 보자면 위의 그림에서 회색 화살표 부분이다. localize를 위해서 contract부분에서의 고해상도 feature들을 upsampling과정에서의 대응되는 layer에 copy and crop을 통해서 concatenation(레이어를 이어 붙이는 것 이다. Residual 구조와는 다르다)해 준다. 이런 방법으로인해 더 정확한 출력을 낼 수 있다고한다.

 

입력 이미지에서도 다른 전략을 보여준다. 기본적으로 0 padding 대신에 mirroring기법을 사용해서 image의 경계부분의 context를 더 잘 매끄럽게 예측할 수있게 해주었다. mirroring은 왼쪽 그림의 파란색 둘레와 노란둘레 사이 부분을 보면 쉽게 이해 할 수 있을것이다. 노란네모 부분의 이미지들이 mirroring되어 그대로 복사 되어있는 것을 볼 수있다. 

 

또한 이쪽 biomedical 특성상 많은 training data를 구하는 것이 어렵기 때문에, elastic deformation 을 활요한 data augmentation을 사용했다고한다. 

 

 

Training

 

픽셀마다의 class를 분류하기위해서 pixel-wise softmax 를 사용한다. 

ak(x)는 x의 k 번째 channel 의 활성화 함수이다. x는 해당 픽셀의 위치를 나타내는 좌표이다. K는 클래스의 수이고 pk(x)는 확률값이다. 

이것을 이용한 Loss function은 cross entropy를 사용하게 되는데 

수식으로 표현하면 이렇게 된다. pl(x)에서 l 은 각 픽셀의 true label로의 mapping이고 , w 는 필셀과 real number(실수)로의 mapping으로 각 픽셀의 가중치를 나타낸다. w에대한 수식은 다음과 같이 표현하게 된다.

wc는 class frequency의 균형을 맞추기위한 weight map이다. d1(x)는 x에서 가장 가까운 cell의 경계까지의 거리이고, d2(x)는 x에서 두번째로 가ㅑ까운 cell의 경계까지가의 거리이다. 

그럼 수식을 잘 살펴보면 d1과 d2의 합이 커지면 커 질수록 x에 해당하는 pixel에대한 가중치가 작아진다는 것 이다. 그러므로 여기서 하고자하는 바는, 각 cell 들이 만나는 경계부분에서의 가중치를 더 높게 주어서 경계부분을 확실하게 구분 해 내겠다는 것이다.

즉 경계도 background로 인식하여 cell과 더 잘 구분 될 수 있도록 한 것이다. 

 

 

오늘은 시간이 없어 이만하고 물러가야겠따.

아뇽

 

 

Reference

[1] U-Net : Convolutional Networks for Biomedical Image Segmentation

반응형
Comments