Abstract
Feature pyramid는 다양한 scale에서 object를 detect하기 위한 recognition system에서 기본적인 요소이다.
하지만 연산과 memory가 집약적이기 때문에 최근 deep learning object detector는 pyramid representation을 피한다.
이 논문에서, 우리는 미미한 extra cost로 feature pyramid를 만들기 위해서 deep convolutional network의 pyramid식 계층인 고유의 multi scale을 실행한다.
수평적인 연결을 가지는 top down architecture는 모든 scale에 높은 수준의 semanctic feature map을 만들기 위해 개발됐다.
Feature Pyramid Network(FPN)은 몇몇의 적용에서 일반적인 feature extractor로 상당한 향상을 보였다.
추가적으로, 6 FPS로 돌아가고 multi scale object detetion에 실용적이고 정확한 해결책이다.
Introduction
엄청나게 다양한 scale에 있는 recognize하는 object는 computer vision에서 근본적인 challenge이다.
image pyramid에 만들어진 feature pyramid는 표준 해결책의 기반을 형성한다.
pyramid는 object scale 변화가 pyramid에서 level을 이동함으로써 상쇄된다는 점에서 scale 불변입니다
직관적으로, 이 특성은 position과 pyramid level 둘 다 model로 scan함으로써 큰 범위의 scale로 object를 detect하기 위해 model을 사용한다.
특징적인 image pyramid는 수작업으로 얻은 feature의 시대에서 힘들게 사용됐다.
object detector는 좋은 결과를 달성하기 위해 dense한 scale sampling이 필요하다는 것이 중요하다.
recognition task에서, 가공된 feature는 convnet에 의해 계산된 feature를 대체했다.
더 높은 성능 semantic을 나타낼 수 있는 것 외에, convnet은 scale에서 분산이 더 robust하고 single input scale에서 계산된 feauture로부터 recognition을 가능하게 한다.
robust함에도 불구하고, pyramid는 가장 정확한 결과를 얻기 위해 필요하다.
image pyramid의 각 level을 특징화하는 주된 장점은 고해상도 level을 포함하여 모든 level이 의미적으로 강력한 multi scale feature representation을 생성한다는 것입니다.
그럼에도 불구하고, image pyramid의 각 level을 특징화하는 것은 명백한 한계이다.
image pyramid에서 end to end로 deep network를 training하는 것은 memory 면에서 실행불가능하다.
그러나 image pyramid는 multi scale feature representation을 계산하기 위한 유일한 방법이 아니다.
deep convnet은 layer 별로 feature hierarchy를 계산하고 subsampling layer를 가지는 feature hierarchy는 고유의 multi scale, pyramid의 모양을 가진다.
network에 있는 feature hierarchy는 다양한 공간적 해상도의 feature map을 만들지만 다양한 깊이로 원인이 되는 큰 semantic 차이를 소개한다.
고해상도 map은 object recognition에 대해 representational 능력을 해치는 low level feature를 가진다.
SSD 스타일의 pyramid는 forward pass에서 계산된 다른 layer로부터 multi scale feature map을 재사용하고 무료로 제공된다.
low level feature을 사용하는 것을 피하기 위해 SSD는 계산된 layer를 재사용하는 것을 포기하고 대신에 network의 높은 곳에서부터 pyramid를 구축하고 새로운 layer를 추가한다.
그러므로 feature hierarchy의 더 높은 해상도 map을 재사용하는 기회를 잃는다.
이게 small object 탐지하는데 중요함
논문의 목표는 모든 scale에서 강력한 semantic을 가지는 feature pyramid를 만드는 동안에 convnet의 feature hierarchy의 pyramid 모양에 영향력이 있다는 것이다.
목표를 달성하기 위해, 우리는 낮은 해상도, 고해상도를 가지는 강력한 feature, top down 경로와 수평적 연결을 거치는 수평적 weak feature을 결합한 architecture에 의존한다.
결과는 모든 level에서 질 좋은 semantic을 가지고 single input image scale로부터 빨리 만들어지는 feature pyramid이다.
다시 말해서, 우리는 대표적인 힘, 속도, memory 희생없이 featurized image pyramid를 대체하는 feature pyramid를 network에 만드는 법을 보여준다.
top down과 skip connection의 목표는 prediction이 만들어지는 정밀한 해상도의 single high level feature map을 만드는 것이다.
대조적으로, FPN은 prediction이 각 level에 만들어지는 feature pyramid로써 architecture에 영향력이 있다.
FPN은 detection과 segmentation에 대한 다양한 system에서 평가된다.
부가기능없이, COCO detection benchmark에 sota single model은 FPN과 Faster R-CNN detector을 기반했다.
bounding box proposal에 대해, FPN은 Average Recall(AR)을 8% 올렸다.
Resnet으로 Faster R-CNN의 강력한 single scale baseline을 넘어서 COCO style Average Precision(AP)가 2.3% 오르고, PASCAL style AP가 3.8% 올랐다.
FPN은 mask proposal을 쉽게 확장했고 image pyramid에 의존하는 sota방법을 넘는 instance segmentation의 AR과 속도 둘 다 증가했다.
추가적으로, pyramid structure는 모든 scale에서 end to end로 학습할 수 있고 지속적으로 train/test에서 사용됐다.
결과적으로, FPN은 현재 sota보다 더 높은 정확도를 달성할 수 있었다.
게다가, single scale baseline보다 test time을 늘리지 않고 향상됐다.
Feature Pyramid Networks
FPN은 임의의 size의 single scale image를 input으로 받고 output은 fully convolutional 방식에서 multiple level로 feature map을 비례해서 크기를 정한다.
이 논문에서는 Resnet을 사용해서 결과를 낸다.
pyramid의 구조는 bottom up pathway, top down pathway, lateral connection을 포함한다.
- Bottom up pathway
bottom up pathway는 backbone convnet의 feed forward 연산이다.
같은 network stage에서 같은 크기의 output map을 만드는 많은 layer가 있다.
feature pyramid의 경우, 각 stage마다 한 pyramid level로 정의했다.
각 stage의 deepest layer는 가장 강력한 feature를 가지기때문에 우리는 각 stage의 마지막 layer의 output을 고른다.
특히, Resnet에 대해, 우리는 각 stage의 마지막 residual block로 feature activation output을 사용한다.
{$C_2,C_3,C_4,C_5$}: 마지막 residual block의 output(conv2, conv3, conv4, conv5 output)
input image에 관해서 {4,8,16,32} pixel의 stride를 가진다.
conv1은 memory 사용량이 많기 때문에 pyramid에 안 쓴다.
- Top down pathway and lateral connections
top down pathway는 공간적으로 더 coarser upsampling으로써 더 높은 해상도 feature에 환각을 느끼지만 더 높은 pyramid level로부터 더 강력한 feature map이다.
이 feature는 lateral connection을 통해 bottom up pathway로부터 feature가 향상됐다.
각 lateral connection은 bottom up path way와 top down pathway로부터 같은 공간의 크기의 feature map을 합친다.
bottom up feature map은 더 낮은 level semantic이지만 activation은 더 적은 횟수로 subsample함으로써 더 정확한 위치해있다.
upsample된 map은 요소별 덧셈으로 해당하는 bottom up map과 병합했다.
이 과정은 가장 훌륭한 resolution map이 만들어질 때까지 반복됐다.
반복을 시작하기 위해, 우리는 coarsest resolution map을 만들기위해 $C_5$에 1x1 convolutional을 붙인다.
우리는 upsampling의 aliasing 효과를 줄이는 마지막 feature map을 만들기 위해 upsampling의 각 병합된 map에 3x3 convolution을 추가한다.
feature map의 final set은 같은 공간 크기 {$C_2,C_3,C_4,C_5$}에 해당하는 {$P_2,P_3,P_4,P_5$}이다.
pyramid의 모든 level은 전통적인 featurized image pyramid에서 공유된 classifier/regressor를 사용하기 때문에 모든 feature map에 있는 feature 차원을 수정한다.
우리는 d를 256으로 설정하고, 모든 추가의 convolutional layer는 256 channel output을 가진다.
미미한 영향을 미치는 추가 layer에서 비선형이 없다.
Applications
FPN은 deep convnet에 feature pyramid를 만드는 일반적인 해결책이다.
RPN과 Fast R-CNN에도 FPN을 채택해서 기존 system을 약간 수정해서 사용한다.
* Feature Pyramid Networks for RPN
RPN은 sliding window class에 상관없이 적용가능한 object detector이다.
기존 RPN에서 small subnetwork는 object/non object binary classification과 bounding box regression을 하는 single scale convolutional feature map의 top에 있는 3x3 sliding window로 평가한다.
우리가 classification과 regression에 대한 network head인 두개의 slibing 1x1 convolution과 3x3 convolutional layer를 실현한다.
object/non object 기준과 bounding box regression target은 anchor라고 불리는 box의 set으로 정의했다.
anchor는 다른 모양의 object를 다루기 위해 많은 미리 정의된 scale과 aspect ratio이다.
같은 design의 head(3x3 conv, 두 sibling 1x1 conv)를 feature pyramid에서 각 level에 추가한다.
head가 모든 pyramid level에서 모든 location에 안 좋게 작용하기 떄문에 특정한 level에 있는 multi scale anchor를 가지는 것이 필수적이지 않다.
대신에, 우리는 각 level에 single scale의 anchor을 할당한다.
각각 {$P_2, P_3, P_4, P_5, P_6$}에 {$32^2, 64^2, 128^2, 256^2, 512^2$} pixel의 영역을 가지기 위해 anchor을 정의한다.
그리고 각 level에 많은 aspect ratio {1:2,1:1, 2:1}의 anchor를 사용한다.
ground truth bounding box에 IOU ratio가 기반된 anchor로 training label을 할당한다.
ground truth box에서 IOU가 0.7 넘으면 positive label, 모든 ground truth box에서 IOU가 0.3보다 낮으면 negative label로 anchor에 할당한다.
ground truth box의 scale은 pyramid의 level에 할당되기 위해 사용되지 않고, ground truth box는 pyramid level에 할당되는 anchor에 연관되어있다.
head의 parameter는 모든 feature pyramid level에 공유되어졌고, 공유하는 parameter없는 대안을 평가했을 때 비슷한 정확도를 보였다.
parameter를 공유하는 것의 좋은 성능은 pyramid의 모든 level이 비슷한 semantic level을 공유하는 것이다.
장점은 일반적인 head classifier가 image scale에 연산되는 feature에 적용될 수 있는 featurized image pyramid을 사용하는 것과 유사하다
* Feature Pyramid Networks for Fast R-CNN
Fast R-CNN은 ROI가 feature를 추출하기 위해 사용되는 region에 기반된 object detector이다.
Fast R-CNN은 single scale feature map에 일반적으로 실행된다.
FPN을 사용하기 위해서, 우리는 pyramid level에 다른 scale의 ROI를 할당해야한다.
그러므로 image pyramid를 사용할 때, 우리는 region에 기반된 detector의 할당 전략을 채택한다.
feature pyramid의 level $P_k$에 ROI의 폭 w, 높이 h를 할당한다.
224: 표준 imagenet pretraining 크기
$k_0$: wxh = $224^2$를 가지는 ROI가 map되는 target level
ROI의 scale이 더 작게 되면 finer resolution level로 map된다.
우리는 모든 level의 모든 ROI에 predictor head(class별 classifier와 bounding box regressor)를 추가한다.
모든 head에 level 상관없이 parameter를 공유한다.
Resnet의 conv5 layer는 conv4 feature의 top에서 head를 채택했지만 FPN은 feature pyramid를 하기 위해 conv5를 이미 사용했다.
그래서 우리는 7x7 feature를 추출하기 위해 ROI pooling을 채택했고 마지막 classificaiton과 bounding box regression layer 전에 두개의 1024차원 hidden fc layer를 추가했다.
resnet에서는 pretrain된 fc layer가 없으므로 무작위로 초기화된다.
conv5 head와 비교하니 2개의 fc MLP head가 더 경량화되고 빠르다.
Experiments on Object Detection
우리는 80개의 category COCO detection dataset으로 실험을 했다.
data split: 80k train image, 35k val image image
모든 network bckbone은 imagenet 1k classification set에 pretrain되고 detection dataset에서 fine tuning됐다.
Extensions: Segmentaton Proposals
Conclusion
우리는 convnet에 있는 feature pyramid를 만들기 위해 깔끔하고 간단한 framework를 소개한다.
FPN은 몇몇 강력한 baseline과 대회 우승자를 넘는 상당한 향상을 보인다.
그러므로, image pyramid 연산의 필요없이 feature pyramid의 연구와 적용으로 실질적인 해결책을 제공한다.
우리 연구는 deep convnet의 강력한 representational power와 scale variation으로 절대적인 robustness에도 불구하고, pyramid representation을 사용하는 multiscale 문제를 다루는 것이 여전히 중요하다.
'computer vision > object detection' 카테고리의 다른 글
R-FCN: Object Detection viaRegion-based Fully Convolutional Networks (0) | 2024.03.04 |
---|---|
Training Region-based Object Detectors with Online Hard Example Mining (0) | 2024.02.23 |
SSD: Single Shot MultiBox Detector (1) | 2024.02.08 |
YOLO9000: Better, Faster, Stronger (1) | 2024.01.15 |
You Only Look Once: Unified, Real-Time Object Detection (1) | 2023.12.15 |