성장通

[Paper Review] Learning Deconvolution Network for Semantic Segmentation (H Noh, S Hong, B Han, 2015) 본문

리뷰/논문 리뷰

[Paper Review] Learning Deconvolution Network for Semantic Segmentation (H Noh, S Hong, B Han, 2015)

백악기작은펭귄 2022. 7. 19. 17:23

Learning Deconvolution Network for Semantic Segmentation

Hyeonwoo Noh, Seunghoon Hong, Bohyung Han; Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2015, pp. 1520-1528


Abstract

이번 논문은 FCN에 이어 등장한 Semantic Segmentation 분야 논문으로, Max Unpooling 개념을 활용해 기존 FCN이 Upsampling에 과도하게 의존한 탓에 큰 Object와 작은 Object에 대해서 Segmentation을 제대로 하지 못하는 문제를 해결한 논문이다.

해당 논문은 FCN의 문제가 고정된 Receptive Field를 가지는 Convolution과 너무 단순한 Deconvolution 구조가 원인이라고 주장하며, 이를 해결하기 위해 Encoder-Decoder 구조를 활용하여 해결하고자 하였다. 이 논문에서 제안된 구조인 Deconvolution Networks는 PASCAL VOC 2012 데이터셋에서 72.5%의 Accuracy를 보이며 높은 성능을 달성하였다.

 

FCN의 한계

CNN은 이미지 도메인에서 다방면에서 널리 사용되는 구조이다. CNN의 Representation power의 강력함은 이미 입증된 바가 많고, CNN의 feature descriptor와의 결합으로 안정적이고 성공적인 성과를 낸 바가 많다. 이에 따라 연구자들은 Semantic Segmentation 분야에서의 성능을 높이기 위한 방법으로 CNN을 활용하기 시작했고, 실제로도 좋은 성능을 냈다. 대표적인 방법이 이전에 리뷰한 논문인 FCN으로, 각 local region에서 classification을 수행해 coarse label map을 추출하여 Bilinear interpolation을 이용한 간단한 deconvolution을 거쳐 성공적으로 Semantic Segmentation을 수행하였다.

 

다만 FCN에는 두 가지 치명적인 문제점이 존재한다.

 

먼저, FCN은 pre-defined fixed-size receptive field를 가지는데, 이로 인해 이보다 크거나 작은 객체에 대해 정상적인 segmentation이 어렵다. 이로 인해 큰 물체 하나 내에 여러 레이블이 생성되거나, 작은 물체를 배경으로 취급하여 레이블을 무시해버리는 문제가 발생했다. 물론 FCN 논문에서는 이러한 문제를 Skip architecture라는 방법으로 우회하고자 하였으나 이는 boundary detail과 semantic 사이 trade-off가 존재하기 때문에 궁극적인 해결 방법이 되지는 못한다.

 

 

다음으로, label map이 너무 coarse 하고 deconvolution 과정이 과하게 단순하여 물체의 세밀한 구조가 종종 소실되거나 smoothing 되어버린다는 문제가 발생했다. 기존 FCN에서는 16X16 label map이 single bilinear interpolation 층에 의해 원본 사이즈로 deconvolution 된다. 이 때문에 higly non-linear 한 물체 경계를 reconstruct 함에 있어 어려움이 발생한 것이다.

 

Deconvolutional Networks

이러한 문제점을 해결하기 위해, 저자들은 Deconvolutional Networks라는 새로운 구조를 제시하였다. 해당 구조는 다음 그림과 같이, Convolutional Networks를 Encoder로 취급하여 이에 대응하는 Decoder 역할을 하는 네트워크 구조이다.

 

 

해당 논문의 저자들이 핵심적으로 제시한 Contribution points는 다음과 같다.

 

  1. Deconvolution, Unpooling, ReLU 층으로 이루어진 Deep deconvolution network를 학습시킴으로써 Semantic Segmentation에서의 Deconvolution 과정을 trainable 하게 만들었다.
  2. Instance-wise segmentation을 얻기 위해 개별 object proposal에 대해 학습된 네트워크를 적용시켜 segmentation을 수행하였다.

해당 논문의 저자들은 논문에서 제안한 Deep 한 layer로 이루어진 Deconvolutional Network를 별도로 학습시킨 후 FCN의 Convolution 파트와 결합하여 더 높은 성능을 기록하게 되었다.

 

1. Unpooling & Deconvolution

Convolution에서 Pooling은 feature map의 개수를 유지하면서 크기를 줄이기 위해 사용하는 방법으로, 합성곱 층에서 stride를 크게 하여 줄이는 것보다 높은 성능을 내기 때문에 사용된다. Pooling 덕에 noisy activation을 필터링하여 성능을 높일 수 있지만, spatial 정보가 소실될 수 있기 때문에 Semantic Segmentation에 핵심적인 Precise localization에 있어 단점을 보인다.

 

이러한 Pooling을 반대로 진행하여 원래 크기로 복원하는 것을 Unpooling이라고 한다. Unpooling을 수행하기 위해, Convolution의 Max Pooling 과정에서 어떤 position의 value가 유지되는지 기억할 필요가 있다. 이를 기억하였다가, 해당 부분을 복원하고 나머지는 0으로 채우는 것이다. 이는 다시, 앞서 학습된 Deconvolution 층에 의해 Sparse activation map에서 Dense activation map으로 변환된다.

 

 

위 사진은 논문에서 제시한 예시 그림이다. a는 입력 이미지이며, b부터 j까지는 Max Unpooling층과 Deconvolution 층을 거친 결과를 번갈아가며 표현한 것이다. 이를 통해, '학습된 필터'가 class-specific 한 구조 정보를 잘 잡아낼 수 있음을 알 수 있다.

 

2. Instance-wise Segmentation을 위한 Two-Stage Training

위 그림에서 볼 수 있듯이, FCN에서는 receptive field보다 크거나 작은 이미지가 입력으로 들어오면, 레이블이 파편화되거나 무시되는 경우가 발생했다. 따라서 해당 논문의 저자들은 이러한 문제를 해결하기 위해 Instance-wise Segmentation으로 접근하였다. 이들은 먼저 2,000개의 region proposal b-box 중 상위 50개를 선택해 crop 한 후 각각에 대해 DeconvNet을 적용하고 그 결과를 aggregate 하여 최종 결과를 산출하는 방식을 사용했다. 이를 통해, 다양한 크기의 이미지에 대해 Segmentation을 성공적으로 수행할 수 있었다.

 

저자들은 이를 Two-Stage Training이라는 용어로 표현했는데, 각 스테이지는 다음과 같이 구성된다.

 

  1. Fisrt-Stage Training: Ground-truth로 annotation 된 물체가 가운데 오도록 bounding box를 crop 한다. 이후 해당 이미지를 이용해 학습을 수행시킴으로써 Object의 location과 size가 성능에 미치는 영향을 줄일 수 있었다.
  2. Second-Stage Training: 실제 정답 값뿐만 아니라 Object proposal 알고리즘에 의해 예측된 label(Ground-truth에 대해 IoU가 0.5 이상인 경우)에 대해서도 학습을 진행하였다. 이를 통해 misalignment 된 값에 대해 더욱 강건한 네트워크를 만들 수 있었다.

 

Results

해당 논문에서는 PASCAL VOC 2012 segmentation 데이터셋을 학습 및 검증에 이용하였다. 학습에는 augmentation 된 이미지를 이용하였고, 검증에는 validation set을 활용하였다.

 

 

먼저 위 사진은 기존 FCN에서 문제가 되었던, '물체 크기가 레이블링 성능에 영향을 주는 문제'를 해결한 것이다. 각 사진의 순서는 왼쪽부터 입력 이미지, Ground-truth, FCN, DeconvNet, EDeconvNet, EDeconvNet + CRF이다. (CRF가 무엇인지는 다음 리뷰에서 다뤄보도록 하겠다.)

 

위쪽 열에 있는 말 사진의 경우, 이미지 내에서 물체가 차지하는 비율이 큰 탓에 기존 방법인 FCN에서는 한 물체 내에 여러 종류의 레이블이 중복된 것을 확인할 수 있다. 그러나 해당 논문에서 제시한 Deconvolutional Network를 적용한 다른 모델들의 경우 큰 물체에 대해서도 정상적으로 레이블링 하는 것을 확인할 수 있다.

 

아래쪽 열에 있는 비행기 사진의 경우, 이미지 내에서 물체가 차지하는 비율이 작아 배경으로 간주되어 레이블 소실이 발생하는 문제가 있었는데, 이 또한 성공적으로 해결하였음을 알 수 있다.

 

 

위 사진은 Instance-wise Segmentation의 효과를 보여준다. 저자들은 크기 순으로 proposal에 대한 segmentation 결과를 aggregate 하였고, proposal의 개수가 늘어날수록 Ground-truth 레이블에 가까워지는 것을 확인할 수 있다.

 

다음은 다른 관련 모델들과 해당 논문에서 제안한 구조를 비교한 결과이다.

 

 

FCN-8s는 평균 IoU가 64.4%인 반면 DeconvNet은 69.6%를 달성했다. 여기에 기존에 object boundary accuracy를 높이는 방법론으로 제안되었던 CRF를 추가한 경우 70.5%로 성능이 좋아졌고, FCN-8s와 DeconvNet을 합친 EDeconvNet은 71.5%를 달성했다. 여기에 CRF를 접목시킨 결과 72.5%까지 성능을 높였다.

 

Conclusion & Opinion

해당 논문은 기존 방법론인 FCN이 단순한 Deconvolution 탓에 세부적인 특징을 잡아내지 못하던 문제나 Object size에 따른 레이블링 오류를 해결하기 위해 Deconvolution 단계에 좀 더 집중한 논문이다. Deep 한 레이어 구조를 통해 세부적인 특징을 잡아낼 수 있도록 했으며, proposal을 활용해 object size에 크게 구애받지 않고 좋은 성능을 내는 데에 성공했다. 또한 학습 가능한 구조를 활용해 지속적으로 발전할 수 있는 가능성을 만든 것도 주목할만하다.

 

다만, 수행하고자 하는 Task에 비해 너무 많은 cost가 소요되고, Unpooling과 Deconvolution 과정에서 boundary 내부 정보를 너무 적게 활용한 것이 아닐까 하는 의문도 든다.

 

다음 논문으로는 CRF를 좀 더 적극적으로 활용한 논문인 DeepLab을 리뷰해보도록 하겠다.


Reference

[1] H Noh, S Hong, B Han, Learning Deconvolution Network for Semantic Segmentation, 2015, ICCV
https://openaccess.thecvf.com/content_iccv_2015/papers/Noh_Learning_Deconvolution_Network_ICCV_2015_paper.pdf

 

[2] Jong Chul Ye, Woon Kyoung Sung, Understanding Geometry of Encoder-Decoder CNNs, 2019, ICML
https://arxiv.org/pdf/1901.07647.pdf

 

[3] 'Simple Introduction about Hourglass-like Model', Sunner Li
https://medium.com/@sunnerli/simple-introduction-about-hourglass-like-model-11ee7c30138