1. v2와 차이점
2. Performance
1. v2와 차이점
1.1 Going Deeper


DeepLab v3에서는 v2와 마찬가지로 ResNet-101을 사용하였지만, 마지막 Block4와 동일한 블럭을 3개(Block 5, 6, 7) 이어붙여 더 깊은 네트워크를 구성했다. Block마다 3x3 convolution layer를 3개 포함하고 있는데, Block4 ~ 7에서는 3x3 convolution lyaer에 atrous 알고리즘을 적용했다. 이로써 특징맵의 사이즈를 원본의 1/16으로 유지하면서도 Receptive Field 사이즈를 키울 수 있다.
1.2 Fully Connected CRF 삭제

DeepLab v1, v2에서는 DCNN을 통과한 다운 샘플링된 스코어맵을 bilinear interpolation으로 원본 이미지 사이즈와 같게 만들어준다. 이때 테두리를 섬세하게 세그멘테이션하기 위해 long-range information을 반영하는 Fully-Connected CRF를 이용한다. 하지만 DeepLab v3에서는 Fully-Connected CRF 모듈을 사용하지 않는다.
이는 이미지당 약 0.5초 정도 소요되는 계산 비용을 절감하기 위해 시도한 결과라고 본다. Fully-Connected CRF를 없애면서 v2에서 DCNN과 Fully-Connected CRF를 두 단계로 학습했던 흐름이 바뀌게 된다. v2에서는 1/8로 다운 샘플링되었던 DCNN 특징맵과 비교하는 참값도 1/8 다운샘플링했으나, v3에서는 참값은 그대로 두고 다운샘플링 되었던 DCNN 특징맵을 원본 이미지 사이즈와 동일하도록 다시 업샘플링해준다.
또한 long-range information을 반영해 테두리를 정확하게 세그멘테이션하게 해주는 역할을 deeplab v3에서는 image-level feature를 도입하면서 어느정도 해결하는 듯하다.(내피셜)
1.3 image-level feature 도입

ASPP를 사용하면 multi-scale 객체를 처리할 수 있지만, rate가 너무 커지면 atrous convolution에 사용되는 유효한 필터값의 수가 적어진다는 한계가 있다. 여기서 유효한 값이라 함은 입력으로 받은 특징맵 영역과 연산되는 값이고, 유효하지 않은 값은 0 패딩된 영역과 곱해지는 값을 말한다. 예를 들어, 특징맵의 크기가 65x65, 필터의 크기가 3x3, rate가 33일 때 실제 합성곱에 적용되는 윈도우의 크기는 70x70 [ (3-1) * (33-1) + 3 ] 이 된다. 다시 말해 윈도우의 크기가 특징맵의 크기보다 커져 필터의 가운데 값만 65x65 특징맵 안에 들어가는 경우가 발생한다. 이 경우 나머지 8개 값은 0 패딩된 영역과 연산될 것이기 때문에, 실제 합성곱 결과에 유효한 값은 가운데 값 1개 뿐이다. 그림 9를 보면 앞선 예시와 동일한 65x65 특징맵과 3x3 필터를 사용했을때 atrous rate별로 9개의 필터값 중 유효한 값이 1개, 4개, 9개인 연산 횟수를 나타냈다. atrous rate가 커지면 커질 수록 9개 필터값이 모두 유효한 연산은 적어지고, 33 rate를 기점으로 9개 필터값이 유효한 연산은 없어지고, 1개 필터값만 유효한 연산이 발생한다.
유효 필터값이 1개인 것이 문제가 되는 이유는 1x1 합성곱 연산한 결과와 다름이 없기 때문이다. 유효 필터값이 4개인 경우도 동일한 rate를 적용한 2x2 합성곱 연산과 같다. 따라서 원래의 목적인 global context information을 얻지 못할 수 있다는 것이다. 항상 최적의 rate를 설정할 수 없기에 이러한 불안정성을 해결하려 image-level feature를 도입한다.

image-level feature는 이전 특징맵을 global average pooling으로 압축한 다음 1x1x256 합성곱과 배치 정규화, bilinear interpolation을 거친다. output stride(원본 이미지와 특징맵의 크기 비율)가 16일 때 ASPP 결과로 1x1 합성곱 하나, rate를 6, 12, 18로 달리 적용한 3x3 합성곱 세 개와 image-level feature가 나온다. output stride가 8이면 rate를 두배로 키워준다. 총 5개의 특징맵은 서로 이어붙여(concatenation) 1x1x256 합성곱층, 배치정규화층에 통과시켜 채널 수를 조정해준다.
1.4 multi-grid
multi-grid는 본문 설명이 구체적이지 않고, 참조 논문의 분량이 많아 본문 인용글로 대체합니다.
Multi-grid Method Motivated by multi-grid methods which employ a hierarchy of grids of different sizes [4, 81, 5, 67] and following [84, 18], we adopt different atrous rates within block4 to block7 in the proposed model. In particular, we define as Multi Grid = (r1, r2, r3) the unit rates for the three convolutional layers within block4 to block7. The final atrous rate for the convolutional layer is equal to the multiplication of the unit rate and the corresponding rate. For example, when output stride = 16 and Multi Grid = (1, 2, 4), the three convolutions will have rates = 2 · (1, 2, 4) = (2, 4, 8) in the block4, respectively.
We apply the multi-grid method to ResNet101 with several cascadedly added blocks in Tab. 3. The unit rates, Multi Grid = (r1, r2, r3), are applied to block4 and all the other added blocks. As shown in the table, we observe that (a) applying multi-grid method is generally better than the vanilla version where (r1, r2, r3) = (1, 1, 1), (b) simply doubling the unit rates (i.e., (r1, r2, r3) = (2, 2, 2)) is not effective, and (c) going deeper with multi-grid improves the performance. Our best model is the case where block7 and (r1, r2, r3) = (1, 2, 1) are employed.

2. Training Details
학습률

학습률은 poly 학습률 업데이트 방법을 사용했다. 이는 초기 학습률에 오른쪽 값을 매 iteration마다 곱한다.
Crop Size


Q. DeepLab에서 Training, evaluation 시 이미지를 Crop하는 이유
Data Augmentation

픽셀값에 랜덤값을 곱해준다.
4. Performance




추가로 ResNet-101을 사용한 DeepLab v3 모델을 ImageNet과 JFT300M 데이터셋으로 학습해 PASCAL VOC 2012 테스트셋으로 테스트한 결과(DeepLabv3-JFT) 기존 모델보다 1.2% 정도의 성능 개선이 이뤄졌다.
Failure

Reference
[1] Liang-Chieh Chen, George Papandreou, Iasonas Kokkinos, Kevin Murphy, Alan L. Yuille. DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs. In IEEE, 2016
[2] Liang-Chieh Chen, George Papandreou, Florian Schroff, Hartwig Adam. Rethinking Atrous Convolution for Semantic Image Segmentation. in arXiv, 2017