본문 바로가기
논문/object_detection

Feature Pyramid Networks for Object Detection

by dohunNewte 2024. 1. 2.
반응형

Abstract

Feature Pyramid는 다른 scale에서 detection object를 위한 recognition에서 가장 기본적인 구성요소입니다.

그러나 현재 딥러닝 object detector는 계산과 메모리를 많이 요구하기 때문에 pyramid 표현을 피합니다. 

이 논문에서 저자들은 깊은 convoutional netowrk의 본질적인 multi-scale, pyramid 계층 구조를 활용하여 추가 비용이 거의 없는 feature pyramid를 구축합니다. 

측면 연결이있는 top-down 아키텍쳐 연결은 high-level semantic feature map을 모든 sclae에서 구축했습니다.

이 아키텍쳐를 FPN이라고 부르며 여러 어플리케이션에서 일반적은 feature 추출에서 상당한 향상을 보여주었습니다.

 

Introduce

 

(a) Featurized image pyramid

입력 이미지 크기를 resize하여 다양한 scale의 이미지를 네트워크에 입력하는 방법입니다.

Overfeat 모델 학습 시 해당 방법을 사용했습니다.

다양한 크기의 객체를 포착하는데 좋은 결과를 보여줍니다.

하지만 이미지 한 장을 독립적으로 모델에 입력하여 feature map을 생성하기 때문에 추론속도가 매우 느리며, 메모리를 지나치게 많이 사용한다는 문제가 있습니다.

 

(b) Single feature map

단일 scale의 입력 이미지를 네트워크에 입력하여 단일 scale이 feature map을 통해 object detection을 수행하는 방법입니다.

YOLOv1 모델 학습 시 해당 방법을 사용했습니다.

학습 및 추론 속도가 매우 빠르다는 장점이 있지만 성능이 떨어진다는 단점이 있습니다.

 

(c) Pyramidal feature hierarchy

네트워크에서 미리 지정한 conv layer마다 feature map을 추출하여 detect하는 방법입니다.

SSD 모델 학습시 해당 방법을 사용했습니다.

multi-scale feature map을 사용하기 때문에 성능이 높다는 장점이 있지만 feature map 간 해상도 차이로 인해 학습하는 representation에서 차이인 semantic gap이 발생한다는 문제가 있습니다. 모델이 얕은 layer에서 추출한 feature map에서 low-level feature까지 학습하면 representational capacity를 손상시켜 객체 인식률이 낮아진다고 합니다.

 

SSD는 위에서 언급한 문제를 해결하기 위해 low-level feature를 사용하지 않고, 전체 convolutional network 중간 지점부터 feature map을 추출합니다. 하지만 FPN 논문의 저자는 높은 해상도의 feature map은 작은 객체를 detect할 때 유용하지 않기 때문에 이를 사용하지 않는 것은 적절하지 않다고 지적합니다.

 

(d) Feature Pyramid Network

저자들이 제안한 feature pyramid network는 b와 c 처럼 빠르지만 더 정확하다고합니다. 이 그럼에서 feature map은 파란색 테두리로 표시되며 더 두꺼운 테두리는 더 강한 의미적 특징을 나타냅니다.

 

Feature Pyramid Networks

이 저자들의 목표는 convnet이 pyramid feature 계층 구조를 활용하는것이며 low 에서 high level로부터 semantics을 가지고 high-level semantics feature pyramid를 만드는것입니다.

결과적으로 Feature Pyramid Network는 일반적인 목적을 가지고 있으며 이 논무네서는 sliding window에 초점을 맞추고있다고합니다.

저자들의 방법은 input에서 임의의 size의 single-scale image를 가져오고 output은 fully convolution fashion에서 multiple level의 feature map 크기에 비례합니다.

이러한 처리는 backbone convolution 아키텍쳐와 독립적이며 이 논문은 resnet을 사용하여 결과를 만들었습니다.

이 구조는 bottom-up pathway, top-down passway, lateral connection으로 이루어져있습니다.

 

Bottom-up pathway

bottom-up path way는 backbone convnet의 feed-forward 계산방법이며 이것은 scaling 단계가 2인 여러 스케일의 feature map으로 구성된 feature hierarchy 구조를 계산합니다.

feature pyramid에서 저자들은 각각의 stage에 pyramid level을 정의합니다.

저자들은 feature map들의 reference인 각각 stage의 마지막 layer의 output을 선택하면 표현이 풍부한 pyramid를 만들 수 있습니다.

이러한 선택은 자연스럽게 한 stage의 깊은 레이어에서 강력한 feature을 가질 수 있게 해주었습니다.

구체적으로 ResNet에서 저자들은 각 단계의 마지막 residual block에 의해 출력되는 activation function을 사용했습니다.

저자들은 마지막의 residual block을 conv2, conv3, conv4 그리고 conv5 출력에 대해 (c2, c3, c4, c5)로 표시하고 그들은 입력 이미지에 대해 4, 8, 16, 32 픽셀의 스트라이드를 가지고있는 것을 주목했다고합니다.

저자들은 그것의 큰 메모리 사용량 때문에 conv1을 피라미드에 포함시키지 않았다고합니다.

 

Top-down pathway and lateral connections

top-down pathway는 공간적으로 더 거치지만 의미론적으로 더 강한 feature map을 higher pyramid level에서 upsampling을 하여 더 높은 해상도의 feature를 생성합니다. 하지만 의미론적이고 더 강한 feature map은 higher pyramid level에서 추출됩니다. 이러한 feature들은 다음으로 bottom-up pathway를 통해 얻은 faeture들로 향상 시키는 lateral connection을 통해 강화됩니다.

각각의 lateral connection은 bottom-up경로와 top-down 경로에서 동일한 공간 크기의 feature map을 병합합니다.

bottom-up feature map은 lower-level semantics를 가지지만 적은 횟수의 subsampling으로 인해 그 활성화는 더 정확하게 위치 지정됩니다.

 

figure 3은 top-down feature map을 구성하는 building block을 보여줍니다.

더 거친 해상도(low 해상도 high부분)의 feature map으로 저자들은 공간 해상도를 2배 upsampling합니다.

upsampling된 map은 bottom-up map과 상응하게 merge 됩니다.

 

저자들은 모든 피처맵에서 차원을 고정합니다.

이 논문에서는 차원을 256으로 설정하였으며, 모든 추가적인 합성곱 계층은 256채널의 출력을 가집니다.

이 추가 계층에는 비선형성이 없으며 이는 경험적으로 미미한 영향을 끼친다고 합니다.

 

feature pyramid는 object detection을 위한것과 동일한 구조로 구성됩니다.

저자들은 5x5 window에 작은 MLP를 적용하여 14X14의 출력 차원을 가진 dense object segment를 생성했습니다.

주황색으로 표시된 부분은 각 피라미드 레벨에 대해 마스크가 해당하는 이미지 영역 크기입니다.

 

옥타브는 이미지 처리와 컴퓨터 비전 분야에서 사용되는 용어로, 이미지의 크기나 해상도를 변경하는 단계를 의미합니다. 한 옥타브는 이미지 크기를 절반이나 두 배로 변경하는 것을 의미하며, "반 옥타브"는 이미지 크기를 √2배로 변경하는 것을 의미합니다. 이렇게 이미지의 크기를 변경함으로써 다양한 스케일에서의 특징을 추출할 수 있게 됩니다. 이는 객체의 크기가 다양할 때 객체를 잘 인식하고 위치를 파악하는 데 도움을 줍니다.

 

그림4는 이미지 피라미드에서 한 옥타브당 2개의 스케일을 사용하는 것에 영감을 받아 반 옥타브를 처리하기 위해 입력 크기 7x7의 두번째 MLP를 사용합니다. 이 두 MLP는 RPN에서 앵커와 유사한 역할을 합니다.

이 구조는 end to end 로 훈련된다고 합니다.

728x90

댓글