Image processing/Real-time

[2018] BiseNet : Bilateral Segmentation Network for Real-time Semantic Segmenatation

유니디니 2020. 7. 23. 12:51
728x90
반응형

Written by Changqian Yu, Jingbo Wang, Chao Peng, Changxin Gao, Gang Yu and Nong Sang


Semantic segmentation 분야에서는 Spatial 정보와 상당한 Receptive field를 요구한다. 그러나, 현대의 방법들은 공간적인 해상도(performance)와 real-time inference speed 간의 trade-off를 고려하게 된다. 이러한 문제를 해결하고자, Spatial 정보들을 유지하면서 고 해상도 특징들을 추출하고 fast down-sampling 전략을 통해 속도가 빠르며 충분한 receptive field를 유지하는 방법을 소개하고자 한다. 또한, Spatial과 Context path를 통해 나온 정보들을 효율적으로 결합하기 위한 새로운 FFM(Feature Fusion Module)을 제안하였다. Cityscapes, Camvid, COCO-Stuff 데이터 세트들에서 좋은 성능을 보였으며, 특히, Cityscapes에서 2048 x 1024를 입력으로 68.4% mean IOU, 105fps를 달성하였다.



현대의 Real-time segmentation 알고리즘들은 3가지 특성을 가진다.


1. 계산 복잡도를 줄이기 위해, 입력 이미지에 대해 Cropping이나 Resizing을 수행한다. 단순하고 효율적인 방법이지만 Spatial details 정보들이 손실되며, Crop의 경우 경계부분에서 정보가 손실되어 Accuracy가 감소하게 된다.


2. Network 모델의 prunning을 수행한다. 이미지 channels를 prunning 함으로써 추론 속도를 높일수 있지만 이미지의 Spatial capacity가 약해지는 단점이 존재한다. 


3. E-Net은 마지막 단계에서 Down-sampling 단계를 포기하기 때문에, 모델의 Receptive field가 이미지안의 큰 물체를 구분하기에 충분하지 않아 차별적인 능력이 저하된다. 


전반적으로 모든 방법들은 스피드와 정확도간의 성능 문제를 타협하고 있다. 본 논문에서는 Spatial, Context path 두가지 부분에 대해 제안하고 있으며, Spatial 정보와 줄어드는 Receptive Field의 손실에 대해 다루고자 한다. 먼저, Spatial path에서는 Three Convolution을 쌓아서 풍부한 공간적 특징들을 가진 1/8 맵을 얻는다. 별개의 Context Path에선는 xception 네트워크의 마지막 부분에 Global average pooling을 더하여 receptive field 값을 백본 네트워크의 최대 값으로 설정하였다.


Network Design




1. Spatial Path 


Spatial path에서는 기존 이미지에서 공간정보를 유지하면서 인코딩하기 위한 방법을 제안한다. Spatial path에는 세개의 레이어가 있으며 각 계층에서는 stride=2인 컨볼루션이 포함되어 있으며, 배치 정규화 및 ReLU가 이어진다. 따라서 이 경로에서는 출력 기능은 원본 이미지의 1/8로 매핑된다. 특징 맵의 공간 크기가 커서 풍부한 공간정보를 인코딩하며, 자세한 구조는 그림 2와 같다.


2. Context Path


Context Path에서는 충분한 receptive field를 제공하도록 설계되어 있다. Receptive Field는 성능에 큰 영향을 미치지만 큰 메모리를 소비하므로 속도가 느려지는 단점을 가집니다. 따라서, 경량화된 모델과 Global average Pooling을 사용하여 큰 Receptive Field를 제공하였다. 이 방법에서는 xception 경량모델을 사용하였으며 피처맵을 빠르게 다운 샘플링하여 큰 Receptive Field를 얻을 수 있으며, 높은 수준의 컨텍스트 정보를 인코딩하였다. 그런 다음 마지막 부분이 Global average Pooling을 추가하여 global context 정보를 최대 Receptive Field에 제공 할 수 있게 되었다. 마지막 부분에서는 Global pooling의 업 샘플링 된 출력특징과 경량 모델의 특징을 결합하였다. 


Attention Refinement Module : Context path에서 각 단계의 특징을 고려하기 위한 ARM 모듈을 제안한다. 그림 2에서 볼수 있듯이, ARM은 Global average Pooling을 사용하여 Global Context를 캡쳐하고 특징 학습을 가이드 해주는 Attention Refinement 벡터를 계산한다. 이 디자인은 Context 경로에서 각 단계의 출력 특징을 사용할 수 있으며, 업 샘플링 작업 없이 Global Context 정보를 쉽게 결합합니다.


3. Feature Fusion Module


앞서 생성된 두개의 특징들은 서로 다른 특징을 가지고 있기 때문에, 간단히 결합할 수 없다. 즉, 공간 경로는 Low-level의 특징을 포함하고 있으며, 컨텍스트 경로는 High-level의 특징을 가지고 있다. 이러한 정보들을 결합하기 위해, 먼저 두개의 특징들을 연결합니다. 그런다음 배치 정규화를 사용하여 특징의 스케일을 조정합니다. 다음으로, 연결된 특징을 특징 벡터에 Pooling하고, SENet과 같은 가중치 벡터를 구합니다. 이 가중치 벡터는 특징 선택 및 조합에 의해 다시 할당하게 되고 세부 사항은 그림 2(c)와 같다.


4. Loss Function



모든 손실함수 부분은 수식 1과 같은 SoftMax를 사용하였다. 또한, 수식 2와 같이 주요 손실과 Auxiliary 손실의 가중치를 조절하기 위해, 매개변수 a를 사용하였다. 본 논문에서는 a를 1로 설정하였으며 joint 손실은 옵티마이저가 모델을 보다 안전하게 최적화 할 수 있게 한다.



X는 Xception 모델의 i단계 출력을 의미하고, 논문에서 K는 3과 같습니다. 


Result









  

반응형