본문 바로가기

개발/딥러닝

[논문 리뷰] Encoder-Decoder with Atrous SeparableConvolution for Semantic Image Segmentation(DeepLabV3Plus)

일반적인 segmentation에 대해 잘 동작하는 논문입니다. U-net과 비슷한 계열이라고 할 수 있습니다. U-net 비교했을 때 무엇이 달라졌는지 알아보겠습니다.

목표

U-net은 의료 데이터에서 시작을 했고 해당 데이터 특성에 맞는 로스 function을 사용했습니다. 하지만 이 논문은 네트워크 구조를 향상하는 것에 목표를 두었습니다. 그러기 위해 독특한 convolution을 제안합니다.

 

일반적인 conv 연산은 이전 레이어의 피쳐가 10개, 필터의 너비와 높이가 3*3이라 하면 10*3*3 크기의 필터 하나가 하나의 피쳐 맵을 형성 합니다. 하지만 이거는 연산이 너무 많습니다. 그래서 아래 구조의 convolution을 제안합니다.

 

(b)는 필터의 너비와 높이를 1*1로 만든 것으로 기존의 conv와 같습니다. (a)는 입력 피쳐 1개 당 1개의 필터를 사용해 출력 필터 1개를 만들어 냅니다. 색깔 별로 다른 필터를 만들고 있다고 볼 수 있습니다. 즉, 이전 예시에서는 10*3*3 필터 1개가 10개의 피쳐를 만듭니다. (c)는 (a)와 같지만 필터 사이에 간격이 있습니다. 

구조

U-net과 상당히 유사한 구조를 띄고 있습니다.

왼쪽이 인코딩, 오른쪽이 디코딩입니다. convolution을 통해 이미지를 2배씩 줄인 다음 다시 4배씩 늘리는 방식이고 중간에 skpi connection처럼 이전 데이터를 가져오는 부분이 있습니다. U-net과 다른 점은 인코딩 마지막에 spatial pyramid pooling이 있다는 것입니다. 입력 피쳐를 다양한 크기의 conv에 통과시킨 다음 하나로 concatenate를 하는 것입니다. 전체적인 구조는 다음과 같습니다.