Computer Vision/Semantic Segmentation

DeepLab V3+

진성01 2022. 8. 1. 11:09

이전 글에서 DeepLab V3+를 이해하기 위해 필요한 Atrous Convolution, ASPP에 대해 소개하였다. 이를 이용하여 이번 글에서는 DeepLab V3+에 대해 소개한다.

 

DeepLab V3+의 전체 구조

위의 그림은 전체적인 DeepLab V3+의 구조이다. DeepLab V3+는 Encoder - Decoder 구조로 이루어져 있다.

 

Encoder에서는 먼저 Atrous Conv를 이용하여 feature map을 형성한다. 그 후 ASPP를 이용하여 최종 feature map을 형성한다(ASPP를 이용하면 다양한 receptive field를 이용하여 feature map을 형성할 수 있다).

 

Decoder의 시작은 Encoder에서 생성한 Low-Level Features로부터 시작한다. Encoder의 feature map을 추출하는 과정 중에 생성되었던 특정 size의 feature map을 그대로 가져와 Decoder의 시작 feature map으로 선정한다.  여기에 ASPP결과 생성된 feature map을 size가 일치하도록 upsampling한 뒤 Decoder의 시작 feature map과 concatnation하여 새로운 feature map을 형성한다. 그 후 이를 3 * 3 Conv를 이용하여 convolution 연산을 진행한 후 input size와 일치하게 upsampling하여 Prediction을 산출한다.

 

Encoder에서 feature map을 뽑아내는 BackBone model은 Resnet, DeepLab V3(VGGnet을 이용)을 주로 사용한다.

 

이전 버전인 DeepLab V3에서는 Encoder Feature map을 단순히 16배 upsampling하여 Prediction을 산출했다. 하지만 이는 segmentation 해상도가 크게 떨어지는 단점이 있다. 따라서 DeepLab V3+에서는 Skip architecture를 도입하여 Encoder와 Decoder를 연결하여 점층적으로 upsampling하여 해상도 문제를 보완하였다.

 

DeepLab V3+논문에서는 DeepLab V3를 BackBone으로 사용한 모델과 Xception을 BackBone으로 사용한 모델을 함께 공개하였다. 다음 글 부터는 DeepLab V3 Xception에 사용되는 개념들에 대해 리뷰한다.