안녕하세요. 오늘 리뷰할 논문은 ECCV2018에 나왔던 Receptive Field Block Net for Accurate and Fast Object Detection이라는 논문입니다. 이번 논문도 역시 Object Detection을 위한 논문이기는 하나 본 논문에서 제안하는 RFB는 현재 다양한 Segmentation task에서도 활용되고 있기 때문에 충분히 읽어볼만한 가치가 있는 논문입니다.
본 논문이 제시하는 기본적인 목표는 Object Detection의 성능과 효율을 동시에 잡고 싶어하는 것입니다. 지난 포스팅의 EfficientDet 역시 마찬가지로 효율적이지만 좋은 성능을 가지는 모델을 개발하는 것이였습니다. 본 논문을 줄여서 RFBNet이라고 부르도록 하겠습니다. 해당 모델의 장점을 요약하면 다음과 같습니다.
1. 본 논문에서 제안하는 RFB 모듈은 인간의 시각인지능력을 모방하여 제안되었으며 이를 통해 경량화된 CNN 구조를 제안
2. RFB 모듈의 추상화 능력은 기존의 Single-Stage 네트워크에 쉽게 이식 가능
3. 2개의 공개 데이터셋 (PASCAL VOC / MS COCO)에서 SOTA 성능을 달성하였으며 기존 모델에 비해 적은 연산량을 가지고 높은 성능을 유지
1. Receptive Field Block
본 논문에서 중점적으로 내세우는 RFB 모듈의 동기는 인간의 시각인지능력과 관련있습니다. 인간의 시각 피질에서는 population Receptive Field의 크기에 따라서 eccentricity가 달라진다고 하였습니다. 이를 쉽게 딥러닝의 언어로 바꾸어 이야기하면 대부분의 모델에서 동일하게 정해지는 RF와는 달리 인간은 조금씩 다르다는 것입니다.
그렇다면 RF를 다르게 하여 모듈을 제안한 논문이 지금까지 없었을까요? 아니요!! 다양한 접근 방식이 존재해왔습니다. 위 그림에서 Inception은 합성곱의 커널 크기를 변경해가면서 multi-scale 정보를 포함하고자 하엿습니다. ASPP에서는 다양한 dilation rate를 이용하였습니다. Deformable Convolution에서는 복잡한 transformation에 강건한 모델을 만들기 위해 제안된 합성곱 계층입니다. 마지막으로 RFB는 방금 설명드린 Inception과 ASPP를 적절하게 조합한 것을 그림으로 볼 수 있습니다. 즉, 기존의 ASPP는 합성곱의 dilation rate를 다르게 하여 원하는 정보를 추출하였지만, branch에서의 해상도가 동일하다는 것을 문제라는 점을 인식하여 RFB에서 dilation rate를 다르게 하기 전에 커널 크기가 서로 다른 합성곱을 적용한 것을 볼 수 있습니다.
위 그림은 본 논문에서 제안하는 RFB 모듈의 상세 구조입니다. 잘 보시면 InceptionNet과 크게 다르지 않다는 것을 관찰할 수 있습니다. 실제로 해당 논문에서는 ResNet 구조와 Inception-ResNet V2 구조를 활용한다고 언급하였습니다.
(a) 구조에서는 이전 계층의 특징맵은 1 x 1, 3 x 3, 5 x 5 합성곱을 통해 각각 입력되고 있습니다. 그리고 서로 다른 dilation rate(1, 3, 5)를 가지는 3 x 3 합성곱에 입력되어 하나로 concat됩니다. 다음으로 residual learning을 위해 concat된 결과와 더해지게 되죠. 이때, 그림에서는 나오지 않았지만 scale이라는 파라미터를 통해 shortcut과 concat된 결과 사이의 합산 비율이 결정되죠. 실제 구현 상으로는 5 x 5 합성곱을 사용하지는 않습니다. VGG 논문을 읽어보셨다면 5 x 5 합성곱 대신 3 x 3 합성곱을 2개 쌓아서 사용했다는 이야기를 들어보셨을 겁니다. 이는 파라미터의 개수와 함께 receptive field를 더욱 넓게 가져갈 수 있기 때문이죠. 따라서, 실질적으로는 3 x 3 합성곱 2번을 쌓으니 혼란이 없으셨으면 좋겠습니다.
(b) 구조에서는 branch가 한 개가 더 추가 되 었습니다. 차이점은 2번째와 3번째 branch에서 1 x 3와 3 x 1을 사용하고 있음을 볼 수 있습니다. 이러한 구조는 기존 네트워크에서 연산량의 향상을 위해 추가한다는 것을 InceptionNet에서 언급하고 있습니다. 이를 제외하고는 (a) 구조와 동일합니다.
2. RFBNet Detection Architecture
본 논문에서는 다양한 백본 네트워크에 RFB 모듈을 이식할 수 있음을 언급하고 있습니다. 위 그림은 그 예시로 VGG16을 이용한 것 입니다.
3. 실험결과
본 논문에서는 PASCAL VOC 2007 데이터셋과 MS COCO 2014 데이터셋을 이용해서 실험을 진행하였습니다. 위 표는 PASCAL VOC 2007 데이터셋을 학습했을 때 실험결과입니다. 보시면 mAP(%)가 RFB 모듈을 이식하기 전 (SSD300, SSD512)보다 각각 3.3%, 2.4%의 성능향상을 얻을 수 있었습니다. 당연하지만, RFB 모듈을 이식하기 전보다는 FPS가 약간 감소한 것을 볼 수 있습니다만, 그럼에도 불구하고 초당 약 40장과 80장을 처리할 수 있는 속도는 빠르다고 할 수 있습니다.