2022. 4. 5. 14:54ㆍComputer Vision
Feature Pyramid Networks for Object Detection
Tsung-Yi Lin, Piotr Doll´ar, Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie
Abstract
피처 피라미드는 다양한 스케일의 객체를 검출하기 위한 인식 시스템의 기본 컴포넌트입니다.
그러나 최근 딥러닝 객체 검출기는 컴퓨팅과 메모리 부하가 높기 때문에 피라미드 표현을 피하고 있습니다.
이 논문에서는 심층 컨볼루션 네트워크의 고유한 멀티 스케일 피라미드 계층을 이용하여 한계 추가 비용으로 피쳐 피라미드를 구축한다.
횡방향 접속이 있는 탑다운 아키텍처는 모든 척도에서 높은 수준의 시맨틱 피쳐 맵을 구축하기 위해 개발된다.
Feature Pyramid Network(FPN)라고 불리는 이 아키텍처는 여러 애플리케이션에서 범용 피쳐 추출기로서 대폭 개선되었습니다.
기본 Faster R-CNN 시스템에서 FPN을 사용하여 벨과 휘파람 없이 COCO 검출 벤치마크에서 SOTA 단일 모델 결과를 달성하여 COCO 2016 챌린지 우승자를 포함한 기존의 모든 단일 모델 엔트리를 능가합니다.
또한 GPU에서 6FPS로 실행할 수 있으므로 멀티스케일 물체 검출을 위한 실용적이고 정확한 솔루션입니다.
1. Introduction
매우 다른 스케일의 물체를 인식하는 것은 컴퓨터 비전의 근본적인 과제입니다.
이미지 피라미드 위에 구축된 특징 피라미드(이러한 특징을 가진 이미지 피라미드)는 표준 솔루션의 기초를 형성한다[1](그림 1(a)).
이러한 피라미드는 피라미드 내 레벨을 이동함으로써 물체의 스케일 변화가 상쇄된다는 점에서 스케일 불변입니다.
직관적으로 이 속성을 사용하면 모델이 위치와 피라미드 수준에서 모델을 스캔하여 광범위한 범위의 객체를 감지할 수 있습니다.
피처라이즈된 이미지 피라미드는 수공학적 피쳐의 시대에 많이 사용되었습니다[5, 25].
DPM[7]과 같은 물체 검출기는 매우 중요했기 때문에 좋은 결과를 얻기 위해 조밀한 척도 표본 추출이 필요했다(예: 옥타브당 10 척도).
인식 작업의 경우, 엔지니어링된 피쳐는 심층 컨볼루션 네트워크 (ConvNets)에 의해 계산된 피쳐로 대체되었습니다 [19, 20].
ConvNets는 더 높은 수준의 의미론을 나타낼 수 있을 뿐만 아니라 규모의 분산에도 더 강력하며, 따라서 단일 입력 척도로 계산된 피쳐에서 쉽게 인식할 수 있다 [15, 11, 29]. (그림 1(b)).
그러나 이러한 견고함에도 불구하고 피라미드는 여전히 가장 정확한 결과를 얻기 위해 필요합니다.
ImageNet [33] 및 COCO [21] 검출 과제에서 최근 상위 항목은 모두 피처화 이미지 피라미드에 대한 멀티 스케일 테스트(예: [16, 35])를 사용합니다.
이미지 피라미드의 각 레벨을 특징짓는 주요 장점은 고해상도 레벨을 포함한 모든 레벨이 의미적으로 강력한 다중 스케일 피쳐 표현을 생성한다는 것입니다.
그럼에도 불구하고 이미지 피라미드의 각 레벨을 특징짓는 데는 분명한 한계가 있다.
추론 시간이 상당히 증가하므로(예: 4배 [11]), 이 접근 방식은 실제 애플리케이션에 실용적이지 않습니다.
더욱이, 이미지 피라미드에서 엔드 투 엔드로 심층 네트워크를 학습하는 것은 메모리 측면에서 실현 불가능하며, 따라서, 이미지 피라미드는 테스트 시간에만 사용되므로 [15, 11, 16, 35] 학습/테스트 시간 추론이 일관되지 않습니다.
이러한 이유로 Fast 및 Faster R-CNN [11, 29]에서는 기본 설정에서는 피처라이즈된 이미지 피라미드를 사용하지 않습니다.
그러나 이미지 피라미드가 다중 스케일 피쳐 표현을 계산하는 유일한 방법은 아닙니다.
심층 ConvNet은 계층별로 피쳐 계층을 계산하고 하위 샘플링 계층을 사용하여 피쳐 계층은 고유한 멀티스케일, 피라미드 모양을 가집니다.
이 네트워크 내 피쳐 계층은 다양한 공간 해상도의 피쳐 맵을 생성하지만 다른 깊이로 인해 발생하는 큰 의미적 갭을 초래합니다.
고해상도 맵에는 객체 인식에 대한 표현 능력을 해치는 낮은 수준의 피쳐가 있습니다.
Single Shot Detector (SSD)[22]는 ConvNet의 피라미드 피쳐 계층을 마치 피처라이즈된 이미지 피라미드인 것처럼 사용하기 위한 첫 번째 시도 중 하나이다(그림 1(c)).
SSD 스타일의 피라미드는 포워드 패스에서 계산된 여러 계층의 멀티스케일 피쳐 맵을 재사용하여 무료로 제공하는 것이 이상적입니다.
그러나 낮은 수준의 피쳐를 사용하지 않기 위해 SSD는 이미 계산된 계층을 재사용하지 않고 네트워크의 높은 곳(예: VGG nets의 conv4_3[36])부터 시작하여 여러 개의 새로운 계층을 추가하여 피라미드를 구축합니다.
따라서 피쳐 계층의 고해상도 맵을 재사용할 기회를 놓칩니다.
우리는 이것들이 작은 물체를 감지하는 데 중요하다는 것을 보여준다.
이 논문의 목표는 ConvNet의 피쳐 계층 구조의 피라미드 형상을 자연스럽게 활용하는 동시에 모든 규모의 강력한 의미를 갖는 피쳐 피라미드를 만드는 것이다.
이 목표를 달성하기 위해 하향 경로와 측면 연결을 통해 저해상도, 의미론적으로 강한 피쳐와 고해상도, 의미론적으로 약한 피쳐를 결합한 아키텍처에 의존한다(그림 1(d)).
그 결과, 모든 레벨에서 풍부한 의미를 가지며, 단일 입력 이미지 스케일로 신속하게 구축되는 피쳐 피라미드가 실현됩니다.
즉, 피처라이즈된 이미지 피라미드를 대체하기 위해 사용할 수 있는 네트워크 내 피처 피라미드를 작성하는 방법에 대해 설명합니다, 이 피라미드는 표현력, 속도 또는 메모리를 희생하지 않습니다.
하향식 연결과 건너뛰기 연결을 채택한 유사한 아키텍처가 최근 연구에서 인기를 끌고 있습니다 [28, 17, 8, 26].
이들의 목표는 예측이 이루어지는 고해상도의 단일 개략적 피쳐 지도를 만드는 것이다(그림 2 위).
반대로 우리의 방법은 각 수준에서 독립적으로 예측(예: 객체 탐지)이 이루어지는 피쳐 피라미드로서 아키텍처를 활용한다(그림 2 하단).
우리의 모델은 이 작품들에서는 탐험되지 않은 특징적인 이미지 피라미드를 반영하고 있다.
검출 및 분할을 위해 다양한 시스템에서 피쳐 피라미드 네트워크(FPN)라고 불리는 방법을 평가합니다 [11, 29, 27].
벨과 휘파람 없이, 단순히 FPN과 기본 Faster R-CNN 검출기[29]를 기반으로 한 까다로운 COCO 검출 벤치마크[21]에 대한 SOTA 단일 모델 결과를 보고한다, 이는 기존의 모든 중공학적 단일 모델 입상자를 능가한다.
Ablation 실험에서 우리는 바운딩 박스 제안의 경우 FPN이 평균 회수(AR)를 8.0 포인트 크게 증가시키고, 물체 탐지의 경우 COCO 스타일의 평균 정밀도(AP)를 2.3 포인트 향상시키고, PASCAL 스타일의 AP를 3.8 포인트 향상시켜 ResNets의 Faster R-CNN의 강력한 단일 스케일 기준선에 비해 개선한다는 것을 발견했다.
또한 우리의 방법은 마스크 제안으로 쉽게 확장되며 이미지 피라미드에 크게 의존하는 SOTA 방법보다 인스턴스 분할 AR과 속도를 향상시킨다.
또한 피라미드 구조는 모든 스케일로 엔드 투 엔드로 학습할 수 있으며 학습/테스트 시 일관되게 사용되므로 이미지 피라미드를 사용하면 메모리 사용이 불가능합니다.
그 결과, FPN은 기존의 모든 SOTA 방식보다 높은 정확도를 달성할 수 있습니다.
또한 이 개선은 단일 스케일 기준선에 비해 테스트 시간을 늘리지 않고 달성할 수 있습니다.
이러한 진보는 향후의 연구 및 응용에 도움이 될 것으로 생각됩니다.
2. Related Work
Hand-engineered features and early neural networks.
SIFT 피쳐[25]는 원래 축척 공간 극단에서 추출되어 피쳐 포인트 매칭에 사용되었다.
HOG 피쳐[5]와 이후 SIFT 피쳐도 전체 이미지 피라미드에 걸쳐 조밀하게 계산되었다.
이러한 HOG와 SIFT 피라미드는 이미지 분류, 물체 감지, 인체 자세 추정 등을 위한 수많은 작업에 사용되고 있습니다.
또한, 형상화된 이미지 피라미드를 신속하게 계산하는 데 상당한 관심이 있었습니다.
Dolla'r et al. [6]은 희박하게 샘플링된 (규모로) 피라미드를 먼저 계산한 다음 누락된 레벨을 보간함으로써 빠른 피라미드 계산을 보여주었다
HOG와 SIFT에 앞서 ConvNets[38, 32]로 얼굴 검출에 관한 초기 작업을 통해 여러 척도에 걸쳐 얼굴을 검출하기 위해 이미지 피라미드 상의 얕은 네트워크를 계산했다.
Deep ConvNet object detectors.
현대의 심층 ConvNets[19]의 개발로, OverFeat[34]와 R-CNN[12]과 같은 물체 검출기는 정확도가 극적으로 향상되었다.
OverFeat는 이미지 피라미드에 슬라이딩 윈도우 검출기로 ConvNet을 적용하여 초기 뉴럴 네트워크 얼굴 검출기와 유사한 전략을 채택했다.
R-CNN은 ConvNet으로 분류하기 전에 각 제안이 스케일 정규화된 지역 제안 기반 전략[37]을 채택했다.
SPPnet[15]은 단일 이미지 척도로 추출된 피쳐 지도에 그러한 지역 기반 검출기를 훨씬 더 효율적으로 적용할 수 있음을 입증했다.
Fast R-CNN [11] 및 Faster R-CNN [29]와 같은 최근 보다 정확한 검출 방법은 정확도와 속도 간의 균형을 잘 맞추기 때문에 단일 척도에서 계산된 피쳐를 사용하는 것을 지지한다.
그러나 멀티스케일 검출은 특히 작은 물체의 경우 여전히 더 나은 성능을 발휘합니다.
Methods using multiple layers.
ConvNet의 여러 레이어를 사용함으로써 검출과 분할이 향상됩니다.
FCN[24]은 의미 세분화를 계산하기 위해 여러 척도에 걸쳐 각 범주의 부분 점수를 집계한다.
Hypercolumns [13]에서는 오브젝트 인스턴스 분할에도 유사한 방법을 사용합니다.
예측을 계산하기 전에 여러 가지 다른 접근법(HyperNet [18], ParseNet [23] 및 ION [2])이 여러 계층의 피쳐를 연결합니다, 이것은 변환된 피쳐를 합한 것과 같습니다.
SSD[22] 및 MS-CNN[3]는 피쳐 또는 점수를 결합하지 않고도 피쳐 계층의 여러 계층에서 개체를 예측합니다.
분할을 위한 U-Net [31] 및 SharpMask [28], 얼굴 검출을 위한 재조합 네트워크 [17], 키포인트 추정을 위한 누적 모래시계 네트워크 [26] 등 해상도와 의미 수준에 걸쳐 낮은 수준의 피쳐 맵을 연결하는 최근 방법이 있다.
Ghiasi et al. [8]은 분할을 점진적으로 개선하기 위해 FCN을 위한 라플라시안 피라미드 프레젠테이션을 제시한다.
이러한 방법은 피라미드 형태의 아키텍처를 채택하고 있지만, 모든 수준에서 독립적으로 예측이 이루어지는 피처화 이미지 피라미드[5, 7, 34]와는 다르다.
실제로 그림 2(위)의 피라미드 구조의 경우, 이미지 피라미드는 여러 척도의 물체를 인식하기 위해 여전히 필요합니다[28].
3. Feature Pyramid Networks
우리의 목표는 ConvNet의 피라미드 피쳐 계층을 활용하여 낮은 레벨에서 높은 레벨의 시멘틱스를 가진 피쳐 피라미드를 구축하는 것이다.
결과적인 피쳐 피라미드 네트워크는 범용적이며, 본 논문에서는 슬라이딩 창 제안자(Region Proposal Network, 줄여서 RPN)와 지역 기반 검출기(Fast R-CNN)[11]에 초점을 맞추고 있다.
또한 섹션 6의 인스턴스 분할 제안으로 FPN을 일반화한다.
우리의 방법은 임의의 크기의 단일 스케일 이미지를 입력으로 받아들이고, 다양한 수준에서 비례적으로 크기가 조정된 피쳐 맵을 완전한 컨볼루션 방식으로 출력한다.
이 프로세스는 백본 컨볼루션 아키텍처 (예를 들어, [19, 36, 16])와 독립적이며, 본 논문에서는 ResNets [16]를 사용하여 결과를 제시합니다.
피라미드의 건설은 아래에서 소개한 바와 같이 상향식 경로, 하향식 경로 및 측면 연결을 포함한다.
Bottom-up pathway.
상향식 패스는 백본 ConvNet의 피드포워드 계산으로 스케일링 스텝2의 여러 스케일에서의 피쳐 맵으로 구성된 피쳐 계층을 계산합니다.
대부분의 경우 같은 크기의 출력 맵을 생성하는 레이어가 있으며, 이러한 레이어는 같은 네트워크 스테이지에 있다고 합니다.
피처 피라미드에서는 각 스테이지마다 1개의 피라미드 레벨을 정의합니다.
각 스테이지의 마지막 레이어의 출력을 피처 맵의 레퍼런스 세트로 선택하고, 이것을 풍부하게 해 피라미드를 작성합니다.
각 스테이지의 가장 깊은 레이어에는 가장 강한 피쳐가 있기 때문에 이 선택은 자연스러운 것입니다.
특히 ResNets [16]의 경우 각 단계의 마지막 잔여 블록에 의한 피쳐 활성화 출력을 사용합니다.
conv2, conv3, conv4 및 conv5 출력에 대해 이러한 마지막 잔차 블록의 출력을 {C_2, C_3, C_4, C_5}로 나타내며 입력 이미지에 대해 {4, 8, 16, 32}픽셀의 진보를 보입니다.
conv1은 메모리 용량이 크기 때문에 피라미드에 포함하지 않습니다.
Top-down pathway and lateral connections.
하향식 경로는 공간적으로 coarse하지만 의미적으로는 더 강한 피라미드 수준의 피쳐 맵을 상향 샘플링하여 고해상도 특징을 환각시킨다.
그런 다음 이러한 피쳐는 측면 연결을 통한 상향 경로에서 피쳐로 강화됩니다.
각 횡방향 연결은 상향 경로와 하향 경로에서 동일한 공간 크기의 피쳐 맵을 병합한다.
상향식 피쳐 맵은 하위 수준의 의미론이지만 서브샘플링 횟수가 적기 때문에 액티베이션이 보다 정확하게 로컬화됩니다.
그림 3은 하향식 피쳐 맵을 구성하는 구성 요소를 보여줍니다.
coarse한 해상도의 피쳐 맵에서는 공간 해상도를 2배로 업샘플링합니다(간단함을 위해 가장 가까운 인접 업샘플링 사용).
그런 다음 업샘플링된 맵은 요소별 추가에 의해 대응하는 상향식 맵(채널 치수를 줄이기 위해 1x1 컨볼루션레이어를 거친다)과 병합됩니다.
이 프로세스는 최적의 해상도 맵이 생성될 때까지 반복됩니다.
반복을 시작하기 위해 C_5에 1x1 컨볼루션 레이어를 부착하여 가장 coarse한 해상도 맵을 생성한다.
마지막으로 각 병합된 맵에 3x3 컨볼루션(convolution)을 추가하여 최종 피쳐 맵을 생성합니다, 이는 업샘플링의 앨리어싱 효과를 감소시키는 것입니다.
이 기능 맵의 마지막 세트를 각각 공간 크기가 동일한 {C_2, C_3, C_4, C_5}에 대응하는 {P_2, P_3, P_4, P_5}라고 합니다.
피라미드의 모든 레벨은 기존의 피쳐 이미지 피라미드와 같이 공유 classifiers/regressors를 사용하기 때문에 모든 피쳐맵에서 피쳐 치수(채널 수, d로 표시)를 고정합니다.
이 논문에서는 d = 256으로 설정했으며, 따라서 모든 추가 컨볼루션 계층은 256 채널 출력을 가집니다.
이러한 추가 레이어에는 비선형성이 없습니다, 이러한 레이어에는 경미한 영향이 있는 것이 실증적으로 판명되었습니다.
심플함은 설계의 핵심이며, 우리의 모델은 많은 디자인 선택에 강하다는 것을 알 수 있었습니다.
우리는 보다 정교한 블록(예: 다층 잔여 블록[16]을 연결로 사용)을 실험했고 약간 더 나은 결과를 관찰했습니다.
이 논문에서는 보다 나은 연결 모듈을 설계하는 데 중점을 두지 않기 때문에 위에서 설명한 단순한 설계를 선택합니다.
4. Applications
5. Experiments on Object Detection
6. Extensions: Segmentation Proposals
7. Conclusion
ConvNets 내부에 피쳐 피라미드를 구축하기 위한 깨끗하고 단순한 프레임워크를 제시했습니다.
우리의 방법은, 복수의 강력한 베이스 라인과 경쟁 우위자에 비해 큰폭으로 개선되고 있습니다.
따라서 이미지 피라미드를 계산할 필요 없이 피처 피라미드의 연구와 적용을 위한 실용적인 솔루션을 제공합니다.
마지막으로, 우리의 연구는 심층 ConvNets의 강력한 표현력과 변화를 확장하기 위한 암묵적인 견고성에도 불구하고 피라미드 표현을 사용하여 멀티스케일 문제를 명시적으로 해결하는 것이 여전히 중요하다는 것을 시사한다.