논문 읽기/Object Detection

[논문 읽기] RON(2017) 리뷰, Reverse Connection with Objectness Prior Networks for Object Detection

AI 꿈나무 2021. 4. 9. 18:28
반응형

 안녕하세요! 이번에 읽어볼 논문은 RON, Reverse Connection with Objectness Prior Networks for Object Detection 입니다.

 

 RON은 (1) multi-scale object localization을 위해 reverse connection과 (2) object와 non-object 사이의 불균형을 개선하기 위한 objectness prior을 제안합니다. 즉, object detection의 고질적인 문제인 작은 객체를 탐지하는 것의 어려움을 reverse connection을 통해 해결하고, 소수의 anchor box에만 object가 할당되어 발생하는 positive, negative sample의 불균형 문제를 objectness prior로 해결합니다.  또한 multi-task loss function을 사용하여 1-stage detection을 수행합니다.

 

 논문을 읽어보니 reverse connection은 FPN의 top-down, lateral connection과 비슷한 개념이고, objectness prior은 Faster R-CNN의 RPN과 비슷한 역할을 하네요.

 

Network Architecture

 RON의 전체 구조입니다. backbone network는 VGG16을 사용했고, 마지막 2개의 fc layer를 stride=2인 convolution layer로 대체하여 down-sampling을 수행합니다. 그림에서 conv6과 conv7이 대체된 convolution layer 입니다.

 

 

Reverse Connection

 Reverse Connection은 FPN과 작동 방식이 유사합니다. 차이점은 두 가지 입니다. (1) FPN의 top-donw layer에서 수행하는 upsampling 방법을 bilinear에서 deconvolution 으로 사용합니다. (2) FPN의 lateral connection은 차원 감소 목적으로 1x1 conv를 사용했습니다. Reverse Connection은 3x3 conv를 사용합니다.  

 

 논문에서 FPN에 대한 언급이 없는 것으로 보아, 비슷한 시기에 아이디어가 탄생한 것 같네요. 아래 그림은 Reverse Connection을 시각화한 그림입니다.

 

 convn은 backbone layer의 출력값입니다. rf-map n+1은 reverse fusion map을 의미하며, conv7의 출력값입니다. convn의 피쳐맵에 3x3 conv를 적용한 출력값과 reverse fusion map에 deconvolution layer를 사용하여 up-sampling을 수행한 출력값을 element-wise addition 합니다. 이 과정으로 새로운 rf-map n을 생성합니다.

 

 Reverse Connection을 통해 앞단의 feature map은 풍부한 semantic 정보를 갖게 되어 다양한 scale에서 객체를 효과적으로 탐색할 수 있습니다.

 

Anchor box

 YOLOv3에서 Anchor box는 k-mean clustering으로 생성했습니다. RON은 다음과 같은 식으로 Anchor box를 생성합니다.

 $s_{min}$은 입력 사이즈의 1/10 입니다. 예를 들어, 입력 이미지 크기가 320x320이면 $s_{min}$은 32입니다. k는 k번째 feature map을 의미합니다.  aspect ratio는 {1/3, 1/2, 1, 2, 3}을 사용합니다. 최종적으로 2개의 scacle과 5개의 aspect ratio를 지닌 anchor box를 4개의 feature map 각각에서 사용합니다.

Objectness Prior

 앞서 설명한 anchor box는 ground truth와의 IoU에 따라 극 소수의 box만 object가 할당됩니다. 소수의 anchor box가 positive sample이 되고, 대부분이 negative sample이 되는 것입니다. 이는 학습에 악영향을 미칩니다. 이 문제는 object detection에서 중요한 문제이며, 이 문제를 개선하여 성능을 향상시킨 논문은 OHEM, RetinaNet 등이 있습니다. RON 저자는 이 문제를 Objectness Prior 방법으로 해결을 시도합니다.

 

 Faster R-CNN에서 RPN으로 proposals를 생성했듯이, RON은 Objectness Prior로 proposals를 생성한다고 이해하면 될 것 같습니다. 

 

 위 그림은 Objectness Prior을 시각화한 그림입니다. (a)와 (b)는 쇼파를 잘 찾아내었고, (c)와 (d)는 강아지를 지정하고 있네요. 저자는 이 정보를 활용하면 object search space를 감소할 수 있다고 말합니다.

 

 Objectness Prior의 생성 과정입니다. Objectness Prior은 back-propagation에서 생성됩니다. 순전파로 각 박스의 objectness score를 예측하고, 역전파 과정에서 박스의 objectness score가 일정 값 이상인 박스들을 sample합니다. objectness score은 ground truth box와의 IoU를 의미합니다. sampling된 박스들만 detection branch를 갱신하는데에 사용합니다. 따라서 역전파 연산량을 상당히 감소시킬 수 있다고 하네요.

 

 Objectness prior을 사용하니 4.6%의 성능이 향상되었다고 합니다.

 

Loss function

 $L_{obj}는 객체(1), 배경(0)에 대한 손실입니다. softmax를 사용합니다.

 $L_{loc}는 바운딩 박스 좌표에 대한 손실입니다. Faster R-CNN과 동일한 수식인 Smooth L1 loss를 사용합니다.

 $L_{cls \mid obj}$는 클래스에 대한 손실입니다. softmax를 사용합니다.

 알파와 베타는 위 세가지 Loss의 균형을 조절합니다 논문에서 알파와 베타 값을 1/3을 사용합니다.

 

Performance


참고자료

[1] arxiv.org/abs/1707.01691

반응형