2021. 2. 26. 14:03ㆍComputer Vision
Spatial Pyramid Pooling in Deep Convolutional
Networks for Visual Recognition
Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun
Abstract
기존 심층 컨볼루션 신경망(CNN)에는 고정 크기(예 : 224x224) 입력 이미지가 필요합니다.
이 요구사항은 "인공적"이며 임의의 크기/스케일의 이미지 또는 하위 이미지에 대한 인식 정확도를 떨어뜨릴 수 있습니다.
이 작업에서는 위의 요구사항을 제거하기 위해 네트워크에 또 다른 풀링 전략인 "공간 피라미드 풀링"을 장착합니다.
SPP-net이라고 하는 새로운 네트워크 구조는 이미지 크기/스케일에 관계없이 고정 길이 표현을 생성할 수 있습니다.
피라미드 풀링은 또한 개체 변형에 강합니다.
이러한 장점으로 인해 SPP-net은 일반적으로 모든 CNN 기반 이미지 분류 방법을 개선해야 합니다.
ImageNet 2012 데이터 세트에서 우리는 SPP-net이 다양한 디자인에도 불구하고 다양한 CNN 아키텍처의 정확도를 향상 시킨다는 것을 보여줍니다.
Pascal VOC 2007 및 Caltech101 데이터 세트에서 SPP-net은 미세 조정 없이 단일 전체 이미지 표현을 사용하여 최첨단 분류 결과를 얻습니다.
SPP-net의 힘은 객체 탐지에서도 중요합니다.
SPP-net을 사용하여 전체 이미지에서 특성 맵을 한 번만 계산한 다음 임의 영역 (서브 이미지)에 특성을 풀링하여 탐지기 훈련을 위한 고정 길이 표현을 생성합니다.
이 방법은 컨볼루션 기능을 반복적으로 계산하지 않습니다.
테스트 이미지 처리에서 우리의 방법은 R-CNN 방법보다 24-102배 빠르며 Pascal VOC 2007에서 더 우수하거나 비슷한 정확도를 달성합니다.
ImageNet 대규모 시각 인식 챌린지(ILSVRC)2014에서 우리의 방법은 38개 팀 모두에서 물체 감지 부문 2위, 이미지 분류 부문 3위를 차지했습니다.
이 원고는 또한 이 대회를 위한 개선 사항을 소개합니다.
1. Introduction
우리는 주로 딥 컨볼루션 신경망 (CNN)[1]과 대규모 훈련 데이터의 가용성[2]으로 인해 비전 커뮤니티에서 급속하고 혁신적인 변화를 목격하고 있습니다.
딥 네트워크 기반 접근 방식은 최근 이미지 분류, 물체 감지, 기타 많은 인식 작업, 심지어 비 인식 작업에서 최첨단 기술을 크게 개선하고 있습니다.
그러나 CNN의 훈련 및 테스트에는 기술적인 문제가 있습니다: 널리 사용되는 CNN에는 고정된 입력 이미지 크기 (예 : 224x224)가 필요하므로 입력 이미지의 종횡비와 배율을 모두 제한합니다.
임의의 크기의 이미지에 적용 할 때 현재 방법은 그림 1 (위)에 표시된대로 자르기 [3], [4] 또는 뒤틀기 [13], [7]을 통해 대부분 입력 이미지를 고정된 크기에 맞 춥니 다.
그러나 잘린 영역에는 전체 개체가 포함되지 않을 수 있으며 뒤틀린 내용은 원하지 않는 기하학적 왜곡이 발생할 수 있습니다.
콘텐츠 손실 또는 왜곡으로 인해 인식 정확도가 떨어질 수 있습니다.
게다가, 미리 정의된 스케일은 객체 스케일이 다양할 때 적합하지 않을 수 있습니다.
입력 크기를 수정하면 배율과 관련된 문제가 간과됩니다.
그렇다면 CNN에 고정된 입력 크기가 필요한 이유는 무엇입니까?
CNN은 주로 컨볼루션 레이어와 그 뒤를 따르는 완전 연결 레이어의 두 부분으로 구성됩니다.
컨볼루션 레이어는 슬라이딩 윈도우 방식으로 작동하며 활성화의 공간적 배열을 나타내는 특성 맵을 출력합니다 (그림 2).
실제로 컨볼루션 레이어는 고정된 이미지 크기가 필요하지 않으며 모든 크기의 피처 맵을 생성할 수 있습니다.
반면에 완전 연결 레이어는 정의에 따라 고정된 크기/길이 입력을 가져야합니다.
따라서 고정 크기 제약은 네트워크의 더 깊은 단계에 존재하는 완전히 연결된 계층에서만 발생합니다.
이 논문에서는 네트워크의 고정 크기 제약을 제거하기 위해 SPP (Spatial Pyramid Pooling) [14], [15] 계층을 소개합니다.
특히 마지막 컨볼루션 레이어 위에 SPP 레이어를 추가합니다.
SPP 계층은 특성을 풀링하고 고정 길이 출력을 생성한 다음 완전히 연결된 계층 (또는 다른 분류자)에 공급됩니다.
즉, 처음에 자르기 또는 뒤틀기의 필요성을 피하기 위해 네트워크 계층의 더 깊은 단계 (컨볼루션 레이어와 완전 연결 레이어 사이)에서 일부 정보 "집계"를 수행합니다.
그림 1 (아래)은 SPP 계층을 도입하여 네트워크 아키텍처의 변화를 보여줍니다.
새로운 네트워크 구조를 SPP-net이라고합니다.
Bag-of-Words (BoW) 모델의 확장인 공간 피라미드 풀링 [14], [15] (일반적으로 공간 피라미드 매칭 또는 SPM [15])은 다음 컴퓨터 시각 인식 분야에서 가장 성공적인 방법 중 하나입니다.
이미지를 더 미세한 수준에서 더 거친 수준으로 분할하고 그 안에 로컬 기능을 집계합니다.
SPP는 최근 CNN이 보급되기 전에 분류 (예 : [17], [18], [19]) 및 탐지 (예 : [20])를 위한 선도적이고 경쟁에서 이기는 시스템의 핵심 구성 요소였습니다.
그럼에도 불구하고 SPP는 CNN의 맥락에서 고려되지 않았습니다.
SPP는 딥 CNN에 대해 몇 가지 주목할만한 속성을 가지고 있습니다:
1) SPP는 입력 크기에 관계없이 고정 길이 출력을 생성할 수 있지만 이전 딥 네트워크에서 사용된 슬라이딩 윈도우 풀링 [3]은 그렇지 않습니다.
2) SPP는 다단계 공간 빈을 사용하는 반면 슬라이딩 창 풀링은 단일 창 크기만 사용합니다.
다단계 풀링은 물체 변형에 강인한 것으로 나타났습니다 [15];
3) SPP는 입력 스케일의 유연성 덕분에 가변 스케일에서 추출된 특성을 풀링할 수 있습니다.
실험을 통해 우리는 이러한 모든 요소가 딥 네트워크의 인식 정확도를 높이는 것을 보여줍니다.
SPP-net을 사용하면 테스트를 위해 임의 크기의 이미지/창에서 표현을 생성할 수 있을 뿐만 아니라 훈련 중에 다양한 크기 또는 배율로 이미지를 공급할 수 있습니다.
가변 크기 이미지를 사용한 훈련은 척도 불변성을 높이고 과적합을 줄입니다.
우리는 간단한 다중 크기 훈련 방법을 개발합니다.
단일 네트워크가 가변 입력 크기를 허용하려면 모든 매개 변수를 공유하는 여러 네트워크로 근사하는 반면, 이러한 각 네트워크는 고정된 입력 크기를 사용하여 훈련됩니다.
각 에폭에서 주어진 입력 크기로 네트워크를 훈련시키고 다음 에폭을 위해 다른 입력 크기로 전환합니다.
실험에 따르면 이 다중 크기 훈련은 기존의 단일 크기 훈련과 마찬가지로 수렴되어 더 나은 테스트 정확도로 이어집니다.
SPP의 장점은 특정 CNN 설계와 직교합니다.
ImageNet 2012 데이터 세트에 대한 일련의 통제된 실험에서 SPP는 SPP가 없는 대응물에 비해 기존 출판물 [3], [4], [5] (또는 수정 사항)에서 네 가지 CNN 아키텍처를 개선한다는 것을 보여줍니다.
이러한 아키텍처에는 다양한 필터 수/크기, stride, 깊이 또는 기타 디자인이 있습니다.
따라서 SPP가 더 정교한 (더 깊고 더 큰) 컨볼루션 아키텍처를 개선해야 한다고 추측하는 것이 합리적입니다.
SPP-net은 또한 Caltech101 [21] 및 Pascal VOC 2007 [22]에서 단일 전체 이미지 표현만 사용하고 미세 조정없이 최신 분류 결과를 보여줍니다.
SPP-net은 또한 물체 감지에 큰 강점을 보여줍니다.
주요 객체 탐지 방법 R-CNN[7]에서 후보 창의 특징은 심층 컨볼루션 네트워크를 통해 추출됩니다.
이 방법은 VOC 및 ImageNet 데이터 세트 모두에서 놀라운 탐지 정확도를 보여줍니다.
그러나 R-CNN의 특징 계산은 이미지 당 수천 개의 뒤틀린 영역의 원시 픽셀에 심층 컨볼루션 네트워크를 반복적으로 적용하기 때문에 시간이 많이 걸립니다.
이 논문에서는 전체 이미지 (창 수에 관계없이)에서 한 번만 convolutional layer를 실행한 다음 feature map에서 SPP-net으로 feature를 추출할 수 있음을 보여줍니다.
이 방법은 R-CNN에 비해 100배 이상의 속도 향상을 가져옵니다.
(이미지 영역이 아닌) 특성 맵에서 감지기를 훈련/실행하는 것이 실제로 더 인기있는 아이디어입니다 [23], [24], [20], [5].
그러나 SPP-net은 딥 CNN 특성 맵의 힘과 임의의 창 크기에 대한 SPP의 유연성을 상속하여 뛰어난 정확성과 효율성을 제공합니다.
우리의 실험에서 SPP-net 기반 시스템 (R-CNN 파이프 라인을 기반으로 구축)은 R-CNN보다 24~102배 빠르게 특성을 계산하는 동시에 정확도가 더 우수하거나 비슷합니다.
EdgeBoxes[25]의 최근 빠른 제안 방법을 사용하면 시스템에서 이미지를 처리하는 데 0.5초가 걸립니다(모든 단계 포함).
이것은 우리의 방법을 실제 응용 프로그램에 실용적으로 만듭니다.
이 원고의 예비 버전은 ECCV 2014에 게시되었습니다.
이 작업을 바탕으로 ILSVRC 2014 [26] 대회에 참가하여 38개 팀 전체 중 물체 감지 부문 2위, 이미지 분류 부문 3위 (둘 다 데이터 전용 트랙임)를 기록했습니다.
ILSVRC 2014에는 몇 가지 수정 사항이 있습니다.
SPP-net은 SPP가없는 네트워크에 비해 더 깊고 더 큰 다양한 네트워크 (3.1.2-3.1.4)를 강화할 수 있음을 보여줍니다.
또한 감지 프레임 워크에 따라 유연하게 위치/크기가 조정된 창 (3.1.5 절)을 사용하여 피처 맵에 대한 멀티뷰 테스트가 분류 정확도를 높일 수 있음을 발견했습니다.
이 원고는 또한 이러한 수정 사항에 대한 세부 정보를 제공합니다.
2. Deep Networks with Spatial Pyramid Pooling
2.1. Convolutional Layers and Feature Maps
인기 있는 7계층 아키텍처 [3], [4]를 고려하십시오.
처음 5개 레이어는 컨벌루션이며, 그 중 일부는 풀링 레이어가 뒤 따릅니다.
이러한 풀링 레이어는 슬라이딩 윈도우를 사용한다는 점에서 "컨볼루션"으로 간주될 수도 있습니다.
마지막 두 레이어는 출력으로 N-way 소프트 맥스를 사용하여 완전히 연결됩니다, 여기서 N은 범주 수입니다.
위에서 설명한 심층 네트워크에는 고정된 이미지 크기가 필요합니다.
그러나 고정 크기의 요구 사항은 고정 길이 벡터를 입력으로 요구하는 완전히 연결된 레이어 때문이라는 것을 알 수 있습니다.
반면에 컨벌루션 계층은 임의 크기의 입력을 허용합니다.
컨벌루션 레이어는 슬라이딩 필터를 사용하며 출력은 입력과 거의 동일한 종횡비를 갖습니다.
이러한 출력은 특성 맵 [1]으로 알려져 있습니다 - 응답의 강도뿐만 아니라 공간 위치도 포함합니다.
그림 2에서는 일부 특성 맵을 시각화합니다.
conv5 레이어의 일부 필터에 의해 생성됩니다.
그림 2 (c)는 ImageNet 데이터 세트에서 이러한 필터의 가장 강력하게 활성화된 이미지를 보여줍니다.
일부 시맨틱 콘텐츠에 의해 필터가 활성화될 수 있음을 알 수 있습니다.
예를 들어, 55번째 필터 (그림 2, 왼쪽 하단)는 원 모양으로 가장 많이 활성화됩니다, 66번째 필터 (그림 2, 오른쪽 상단)는 ^자 모양으로 가장 많이 활성화됩니다, 118번째 필터 (그림 2, 오른쪽 하단)는 V자 모양으로 가장 많이 활성화됩니다.
입력 이미지의 이러한 모양 (그림 2 (a))은 해당 위치에서 특성 맵을 활성화합니다 (그림 2의 화살표).
입력 크기를 수정하지 않고 그림 2의 특성 맵을 생성한다는 점은 주목할 가치가 있습니다.
딥 컨볼루션 레이어에 의해 생성된 이러한 특성 맵은 기존 방법의 특성 맵과 유사합니다 [27], [28].
이러한 방법에서 SIFT 벡터 또는 이미지 패치는 조밀하게 추출된 다음 벡터 양자화, 희소 코딩 또는 Fisher 커널에 의해 인코딩됩니다.
이러한 인코딩된 특성은 특성 맵으로 구성되며 Bag-of-Words (BoW)[16] 또는 공간 피라미드[14], [15]에 의해 풀링됩니다.
유사하게, 딥 컨볼루션 특성은 유사한 방식으로 풀링될 수 있습니다.
2.2. The Spatial Pyramid Pooling Layer
컨벌루션 계층은 임의의 입력 크기를 허용하지만 가변 크기의 출력을 생성합니다.
분류기 (SVM / softmax) 또는 완전 연결 계층에는 고정 길이 벡터가 필요합니다.
이러한 벡터는 특성을 함께 모으는 BoW (Bag-of-Words) 접근 방식[16]에 의해 생성될 수 있습니다.
공간 피라미드 풀링 [14], [15]는 로컬 공간 빈에 풀링하여 공간 정보를 유지할 수 있다는 점에서 BoW를 향상시킵니다.
이러한 공간 빈에는 이미지 크기에 비례하는 크기가 있으므로 빈 수는 이미지 크기에 관계없이 고정됩니다.
이것은 슬라이딩 윈도우의 수가 입력 크기에 따라 달라지는 이전 딥 네트워크 [3]의 슬라이딩 윈도우 풀링과는 대조적입니다.
임의 크기의 이미지에 대해 심층 네트워크를 채택하기 위해 마지막 풀링 계층 (예 : 마지막 컨볼 루션 계층 이후의 pool5)을 공간 피라미드 풀링 계층으로 대체합니다.
그림 3은 우리의 방법을 보여줍니다.
각 공간 빈에서 각 필터의 응답을 풀링합니다 (이 문서에서는 최대 풀링을 사용함).
공간 피라미드 풀링의 출력은 빈 수가 M으로 표시된 kM-차원 벡터입니다 (k는 마지막 컨벌루션 계층의 필터 수).
고정 차원 벡터는 완전 연결 계층에 대한 입력입니다.
공간 피라미드 풀링을 사용하면 입력 이미지의 크기를 제한할 수 있습니다.
이것은 임의의 종횡비를 허용할 뿐만 아니라 임의의 배율도 허용합니다.
입력 이미지의 크기를 임의의 스케일 (예 : min (w; h) = 180, 224, ...)로 조정하고 동일한 심층 네트워크를 적용할 수 있습니다.
입력 이미지가 다른 스케일에 있을 때 네트워크(동일한 필터 크기)는 다른 스케일로 특징을 추출합니다.
스케일은 전통적인 방법에서 중요한 역할을합니다, 예를 들어 SIFT 벡터는 종종 여러 스케일에서 추출됩니다 [29, [27] (패치 및 가우스 필터의 크기에 의해 결정됨).
우리는 스케일이 딥 네트워크의 정확성에도 중요하다는 것을 보여줄 것입니다.
흥미롭게도 가장 거친 피라미드 수준에는 전체 이미지를 덮는 단일 빈이 있습니다.
이것은 사실 "글로벌 풀링"작업이며 여러 동시 작업에서도 조사됩니다.
[31], [32]에서는 모델 크기를 줄이고 과적합을 줄이기 위해 글로벌 평균 풀링이 사용됩니다; [33]에서는 정확도를 향상시키기 위해 모든 fc 레이어 이후 테스트 단계에서 글로벌 평균 풀링이 사용됩니다; [34]에서는 약하게 감독되는 객체 인식에 전역 최대 풀링이 사용됩니다.
글로벌 풀링 작업은 전통적인 Bag-of-Words 방법에 해당합니다.
2.3. Training the Network
이론적으로 위의 네트워크 구조는 입력 이미지 크기에 관계없이 표준 역 전파[1]로 훈련될 수 있습니다.
그러나 실제로 GPU 구현 (예 : cuda-convnet[3] 및 Caffe[35])은 고정 입력 이미지에서 실행되는 것이 바람직합니다.
다음으로 공간 피라미드 풀링 동작을 유지하면서 이러한 GPU 구현을 활용하는 훈련 솔루션에 대해 설명합니다.
Single-size training
이전 작업에서와 같이 먼저 이미지에서 잘라낸 고정 크기 입력 (224x224)을 받는 네트워크를 고려합니다.
자르기는 데이터 증가를 위한 것입니다.
주어진 크기의 이미지에 대해 공간 피라미드 풀링에 필요한 빈 크기를 미리 계산할 수 있습니다.
크기가 axa (예 : 13x13) 인 conv5 이후의 특성 맵을 고려하십시오.
피라미드 수준의 nxn 빈을 사용하여 이 풀링 수준을 슬라이딩 창 풀링으로 구현합니다, 여기서 창 크기는 win = [a / n]이고 stride str = [a / n] with [·] 및 [·]는 천장과 바닥 작업이다.
l 레벨 피라미드를 사용하여 이러한 레이어를 구현합니다.
다음 완전 연결 계층 (fc6)은 l 개의 출력을 연결합니다.
그림 4는 cuda-convnet 스타일에서 3단계 피라미드 풀링 (3x3, 2x2, 1x1)의 구성 예를 보여줍니다 [3].
단일 크기 학습의 주요 목적은 다단계 풀링 동작을 활성화하는 것입니다.
실험에 따르면 이것이 정확성을 얻는 이유 중 하나입니다.
Multi-size training
SPP를 사용하는 네트워크는 모든 크기의 이미지에 적용될 것으로 예상됩니다.
학습에서 다양한 이미지 크기 문제를 해결하기 위해 사전 정의된 크기 집합을 고려합니다.
224x224외에 180x180의 두 가지 크기를 고려합니다.
더 작은 180x180 영역을 자르는 대신 앞서 언급한 224x224 영역의 크기를 180x180으로 조정합니다.
따라서 두 스케일의 영역은 해상도만 다르지만 콘텐츠/레이아웃은 다릅니다.
네트워크가 180x180 입력을 허용하려면 또 다른 고정 크기 입력 (180x180) 네트워크를 구현합니다.
이 경우 conv5 이후의 기능 맵 크기는 axa = 10x10입니다.
그런 다음 여전히 win=[a/n] 및 str=[a/n]을 사용하여 각 피라미드 풀링 수준을 구현합니다.
이 180개 네트워크의 공간 피라미드 풀링 레이어의 출력은 224개 네트워크와 동일한 고정 길이를 갖습니다.
따라서 이 180개 네트워크는 각 계층의 224개 네트워크와 정확히 동일한 매개 변수를 갖습니다.
즉, 훈련 중에 매개 변수를 공유하는 두 개의 고정 크기 네트워크에 의해 다양한 입력 크기의 SPP-net을 구현합니다.
한 네트워크(예 : 224)에서 다른 네트워크(예 : 180)로 전환하는 오버 헤드를 줄이기 위해 한 네트워크에서 각 전체 에포크를 훈련한 다음 다음 전체 에포크를 위해 다른 네트워크로 전환(모든 가중치 유지)합니다.
이것은 반복됩니다.
실험에서 우리는 이 다중 크기 훈련의 수렴률이 위의 단일 크기 훈련과 유사하다는 것을 발견했습니다.
다중 크기 학습의 주요 목적은 기존의 잘 최적화된 고정 크기 구현을 계속 활용하면서 다양한 입력 크기를 시뮬레이션하는 것입니다.
위의 2단계 구현 외에도 sxs를 입력으로 사용하는 변형을 테스트했습니다, 여기서 s는 각 세대에서 [180, 224]에서 무작위로 균일하게 샘플링됩니다.
실험 섹션에서 두 변형의 결과를 보고합니다.
위의 단일/다중 크기 솔루션은 학습 전용입니다.
테스트 단계에서 모든 크기의 이미지에 SPP-net을 적용하는 것은 간단합니다.
3. SPP-net for Image Classification
3.1. Experiments on ImageNet 2012 Classification
ImageNet 2012의 1000개 범주 학습 세트에서 네트워크를 교육합니다.
우리의 훈련 알고리즘은 이전 작업 [3], [4], [36]의 관행을 따릅니다.
더 작은 크기가 256이 되도록 이미지의 크기가 조정되고 전체 이미지의 중앙 또는 네 모서리에서 224x224 자르기가 선택됩니다.
데이터는 수평 뒤집기와 색상 변경에 의해 증가됩니다 [3].
드롭 아웃[3]은 완전히 연결된 두 개의 레이어에 사용됩니다.
학습률은 0.01부터 시작하여 오류가 정체되면 10(두 번)으로 나뉩니다.
우리의 구현은 cuda-convnet[3] 및 Caffe[35]의 공개적으로 사용 가능한 코드를 기반으로합니다.
이 논문의 모든 네트워크는 2~4 주 이내에 단일 GeForce GTX Titan GPU (6GB 메모리)에서 훈련될 수 있습니다.
3.1.1. Baseline Network Architectures
SPP의 장점은 사용되는 컨볼루션 네트워크 아키텍처와 무관합니다.
우리는 기존 간행물 [3], [4], [5] (또는 그 수정 사항)에서 네 가지 네트워크 아키텍처를 조사하고 SPP가 이러한 모든 아키텍처의 정확도를 향상시키는 것을 보여줍니다.
이러한 기본 아키텍처는 표 1에 있으며 아래에 간략하게 소개되어 있습니다:
- ZF-5 : 이 아키텍처는 Zeiler 및 Fergus (ZF)의 "빠른"(작은) 모델[4]을 기반으로 합니다.
숫자는 5개의 컨벌루션 레이어를 나타냅니다.
- Convnet*-5 : 이것은 Krizhevsky 등의 네트워크에 대한 수정입니다 [3].
conv1 및 conv2 대신 conv2 및 conv3 뒤에 두 개의 풀링 레이어를 배치합니다.
결과적으로 각 레이어 이후의 피처 맵은 ZF-5와 동일한 크기를 갖습니다.
- Overfeat-5/7 : 이 아키텍처는 Overfeat 논문[5]을 기반으로하며 [6]에서와 같이 약간 수정되었습니다.
ZF-5 / Convnet*-5와 달리 이 아키텍처는 마지막 풀링 레이어 전에 더 큰 특성 맵 (13x13 대신 18x18)을 생성합니다.
더 큰 필터 번호 (512)는 conv3 및 다음 컨벌루션 계층에서 사용됩니다.
또한 conv3에서 conv7까지의 구조가 동일한 7개의 컨볼루션 레이어가 있는 더 깊은 아키텍처를 조사합니다.
기준 모델에서 마지막 컨볼루션 계층 이후의 풀링 계층은 2개의 4096-d fc 계층과 1000-way softmax 계층이 뒤 따르는 6x6 특성 맵을 생성합니다.
이러한 기준 네트워크의 복제는 표 2 (a)에 나와 있습니다.
우리는 ZF-5에 대해 70 에포크를 훈련하고 나머지에 대해 90 에포크를 훈련합니다.
ZF-5의 복제는 [4]에 보고된 것보다 낫습니다.
이 이득은 [36]에서도 보고된 것처럼 모서리 자르기가 전체 이미지에서 발생하기 때문입니다.
3.1.2. Multi-level Pooling Improves Accuracy
표 2 (b)에서는 단일 크기 훈련을 사용한 결과를 보여줍니다.
학습 및 테스트 크기는 모두 224x224입니다.
이러한 네트워크에서 컨볼루션 계층은 해당 기준 모델과 동일한 구조를 갖는 반면 최종 컨볼루션 계층 이후의 풀링 계층은 SPP 계층으로 대체됩니다.
표 2의 결과를 위해 4단계 피라미드를 사용합니다.
피라미드는 {6x6, 3x3, 2x2, 1x1} (총 50 개의 빈)입니다.
공정한 비교를 위해 우리는 여전히 각보기가 224x224 자르기에 표준 10개 보기 예측을 사용합니다.
표 2 (b)의 결과는 표 2 (a)의 비 SPP 기준선에 비해 상당한 개선을 보여줍니다.
흥미롭게도 최상위 1 오류 (1.65%)의 가장 큰 이득은 가장 정확한 아키텍처에서 제공됩니다.
우리는 여전히 (a)에서와 동일한 10개의 잘린 뷰를 사용하고 있기 때문에 이러한 이득은 오로지 다단계 풀링 때문입니다.
다단계 풀링의 이득은 단순히 더 많은 매개 변수 때문이 아니라는 점에 주목할 가치가 있습니다; 오히려 다단계 풀링이 객체 변형 및 공간 레이아웃의 분산에 강건하기 때문입니다 [15].
이를 보여주기 위해 다른 4단계 피라미드 {4x4, 3x3, 2x2, 1x1} (총 30개 구간)로 다른 ZF-5 네트워크를 훈련시킵니다.
이 네트워크는 fc6 레이어에 36x256-d 대신 30x256-d 입력이 있기 때문에 SPP가 없는 네트워크보다 매개 변수가 적습니다.
이 네트워크의 top-1/top-5 오류는 35.06/14.04입니다.
이 결과는 위의 50-bin 피라미드 (34.98 / 14.14)와 유사하지만 SPP가 없는 대응 (35.99 / 14.76)보다 훨씬 좋습니다.
3.1.3. Multi-size Training Improves Accuracy
표 2 (c)는 다중 크기 훈련을 사용한 결과를 보여줍니다.
훈련 크기는 224 및 180이지만 테스트 크기는 여전히 224입니다.
우리는 여전히 표준 10-view 예측을 사용합니다.
모든 아키텍처의 top-1 / top-5 오류는 더욱 감소합니다.
SPP-net (Overfeat-7)의 top-1 오류는 29.68%로 감소하여 SPP가 없는 경우보다 2.33% 더 우수하고 단일 크기로 훈련된 상대보다 0.68% 더 우수합니다.
180과 224의 두 가지 개별 크기를 사용하는 것 외에도 [180; 224], SPP-net (Overfeat-7)의 상위 1/5 오류는 30.06%/10.96% 입니다.
상위 1개 오류는 테스트에 사용되는 224 크기가 방문 횟수가 적기 때문에 2가지 크기 버전보다 약간 더 나쁩니다.
그러나 결과는 여전히 단일 크기 버전이 더 좋습니다.
다양한 스케일/크기를 다루는 이전 CNN 솔루션 [5], [36]이 있지만 대부분 테스트를 기반으로합니다.
Overfeat[5]와 Howard의 방법[36]에서는 테스트 단계에서 단일 네트워크가 여러 척도로 적용되고 점수가 평균화됩니다.
Howard는 저해상도/고해상도 이미지 영역에서 두 개의 서로 다른 네트워크를 추가로 훈련시키고 점수를 평균화합니다.
우리가 아는 한, 우리의 방법은 여러 크기의 입력 이미지로 단일 네트워크를 훈련시키는 첫 번째 방법입니다.
3.1.4. Full-image Representations Improves Accuracy
다음으로 전체 이미지 보기의 정확성을 조사합니다.
가로 세로 비율을 유지하면서 min(w, h)=256이 되도록 이미지 크기를 조정합니다.
SPP-net은 이 전체 이미지에 적용되어 전체보기의 점수를 계산합니다.
공정한 비교를 위해 중앙 224x224 자르기 (위 평가에서 사용됨)에서 단일 보기의 정확도도 평가합니다.
단일 뷰 테스트 정확도의 비교는 표 3에 나와 있습니다.
여기서 우리는 ZF-5/Overfeat-7을 평가합니다.
top-1 오류율은 모두 전체보기 표현에 의해 감소됩니다.
이것은 완전한 콘텐츠를 유지하는 것의 중요성을 보여줍니다.
네트워크가 정사각형 이미지만 사용하여 훈련되었지만 다른 종횡비로 잘 일반화됩니다.
표 2와 표 3을 비교하면 여러 보기의 조합이 단일 전체 이미지 보기보다 훨씬 낫다는 것을 알 수 있습니다.
그러나 전체 이미지 표현은 여전히 좋은 장점입니다.
첫째, 경험적으로 (다음 하위 섹션에서 논의 됨) 수십 개의 뷰 조합의 경우에도 추가로 두 개의 전체 이미지 뷰 (뒤집기 포함)가 정확도를 약 0.2%까지 높일 수 있음을 발견했습니다.
둘째, 전체 이미지 보기는 전체 이미지의 인코딩된 SIFT 벡터가 함께 풀링되는 전통적인 방법[15], [17], [19]와 방법론적으로 일치합니다.
셋째, 이미지 검색[37]과 같은 다른 애플리케이션에서는 유사성 순위를 매기기 위해 분류 점수가 아닌 이미지 표현이 필요합니다.
전체 이미지 표현이 선호될 수 있습니다.
3.1.5. Multi-view Testing on Feature Maps
감지 알고리즘 (다음 섹션에서 설명)에서 영감을 받아 특성 맵에 대한 멀티 뷰 테스트 방법을 추가로 제안합니다.
SPP의 유연성 덕분에 컨볼루션 특성 맵에서 임의 크기의 창(뷰)에서 기능을 쉽게 추출할 수 있습니다.
테스트 단계에서 min(w, h)=s가 되도록 이미지 크기를 조정합니다, 여기서 s는 미리 정의된 배율(예 : 256)을 나타냅니다.
그런 다음 전체 이미지에서 컨볼루션 특성 맵을 계산합니다.
뒤집힌 뷰의 사용을 위해 뒤집힌 이미지의 특성 맵도 계산합니다.
이미지의 뷰(창)가 주어지면 이 창을 특성 맵에 매핑한 다음 (매핑 방법은 부록에 있음) SPP를 사용하여 이 창에서 특성을 풀링합니다 (그림 5 참조).
풀링된 특성은 이 창의 소프트 맥스 점수를 계산하기 위해 fc 레이어에 입력됩니다.
이 점수는 최종 예측에 대한 평균입니다.
표준 10개 뷰의 경우 s=256을 사용하고 뷰는 모서리 또는 중앙에있는 224x224 창입니다.
실험에 따르면 피처 맵에 대한 10개 뷰 예측의 상위 5개 오류는 이미지 자르기에 대한 원래 10개 뷰 예측에서 0.1% 이내입니다.
또한이 방법을 적용하여 여러 스케일에서 여러 뷰를 추출합니다.
이미지의 크기를 6개의 축척 s∈{224, 256, 300, 360, 448, 560}으로 조정하고 각 축척에 대한 전체 이미지의 특성 맵을 계산합니다.
모든 배율의 보기 크기로 224x224를 사용하므로 이러한 보기는 배율에 따라 원본 이미지에서 상대적인 크기가 다릅니다.
우리는 각 축척에 대해 18개의 뷰를 사용합니다, 하나는 중앙에, 4개는 모서리에, 4개는 각 측면의 중앙에 있으며 뒤집기 (s=224 일 때 6개의 다른 뷰가 있음)입니다.
이러한 96개의 보기를 조합하면 상위 5개 오류가 10.95%에서 9.36%로 감소합니다.
두 개의 전체 이미지 보기 (뒤집기 포함)를 결합하면 상위 5개 오류가 9.14%로 더 줄어 듭니다.
Overfeat 논문[5]에서 뷰는 이미지 자르기 대신 convolutional feature map에서 추출됩니다.
그러나 그들의 뷰는 임의의 크기를 가질 수 없습니다; 오히려 창은 풀링된 기능이 원하는 차원과 일치하는 창입니다.
우리는 이러한 제한된 창문이 유연한 위치 / 크기의 창문보다 덜 유익하다는 것을 경험적으로 발견했습니다.
3.1.6. Summary and Results for ILSVRC 2014
표 4에서 우리는 이전의 최첨단 방법과 비교합니다.
Krizhevsky 등의 [3]은 ILSVRC 2012에서 우승한 방법입니다; Overfeat [5], Howard의 [36], Zeiler와 Fergus의 [4]는 ILSVRC 2013의 주요 방법입니다.
관리 가능한 비교를 위해 단일 네트워크 성능만 고려합니다.
우리의 최고의 단일 네트워크는 검증 세트에서 9.14% top-5 오류를 달성합니다.
이것은 ILSVRC 2014[26]에 제출한 단일 모델 항목입니다.
상위 5개 오류는 테스트 세트에서 9.08%입니다 (ILSVRC 2014에는 ILSVRC 2012와 동일한 교육/검증/테스트 데이터가 있음).
11개의 모델을 결합한 결과 (8.06%) ILSVRC 2014에 참석한 38개 팀 중 3위를 차지했습니다 (표 5).
SPPnet의 장점은 일반적으로 아키텍처와 독립적이어야 하므로 더 깊고 더 큰 컨볼루션 아키텍처를 더욱 향상 시킬수
있을 것으로 기대합니다 [33], [32].
3.2. Experiments on VOC 2007 Classfication
우리의 방법은 전체 보기 이미지 표현을 생성할 수 있습니다.
ImageNet에서 사전 훈련된 위의 네트워크를 사용하여 대상 데이터 세트의 이미지에서 이러한 표현을 추출하고 SVM 분류기를 다시 훈련시킵니다 [38].
SVM 훈련에서는 의도적으로 데이터 증가 (플립 / 멀티 뷰)를 사용하지 않습니다.
SVM 훈련을 위한 기능을 l2 정규화합니다.
Pascal VOC 2007[22]의 분류 작업에는 20개 범주의 9,963개 이미지가 포함됩니다.
5,011개의 이미지는 학습용이고 나머지는 테스트 용입니다.
성능은 mAP로 평가됩니다.
결과는 표 6에 요약되어 있습니다.
표 6 (a)의 기준선에서 시작합니다.
모델은 SPP가 없는 ZF-5입니다.
이 모델을 적용하기 위해 더 작은 크기가 224가 되도록 이미지 크기를 조정하고 중앙 224x224 영역을 자릅니다.
SVM은 계층의 특성을 통해 훈련됩니다.
이 데이터 세트에서 레이어가 깊을수록 결과가 더 좋습니다.
표 6 (b)에서는 비 SPP 네트를 SPP 네트로 대체합니다.
첫 번째 단계 비교로 여전히 중앙 224x224 크롭에 SPP-net을 적용합니다.
fc 레이어의 결과가 향상됩니다.
이 이득은 주로 다단계 풀링 때문입니다.
표 6 (c)는 전체 이미지에 대한 결과를 보여 주며, 짧은 면이 224가 되도록 이미지 크기를 조정했습니다.
결과가 상당히 개선된 것으로 나타났습니다 (78.39% vs. 76.45%).
이는 전체 콘텐츠를 유지하는 전체 이미지 표현 때문입니다.
네트워크 사용량이 규모에 의존하지 않기 때문에 더 작은 차원이 s가 되도록 이미지 크기를 조정하고 동일한 네트워크를 사용하여 특징을 추출합니다.
검증 세트를 기반으로 s=392가 최상의 결과 (표 6 (d))를 제공함을 발견했습니다.
이는 주로 객체가 VOC 2007에서는 더 작은 영역을 차지하지만 ImageNet에서는 더 큰 영역을 차지하기 때문에 두 세트간에 상대적인 객체 배율이 다릅니다.
이러한 결과는 분류 작업의 규모 문제를 나타내며 SPP-net은이 "크기 불일치"문제를 부분적으로 해결할 수 있습니다.
표 6 (e)에서 네트워크 아키텍처는 최상의 모델 (Overfeat-7, 다중 크기 학습)로 대체되고 mAP는 82.44%로 증가합니다.
표 8은 우리의 결과와 최첨단 방법과의 비교를 요약한 것입니다.
이 중 VQ [15], LCC [18], FK [19]는 모두 공간 피라미드 매칭을 기반으로 하며 [13], [4], [34], [6]은 딥 네트워크를 기반으로합니다.
이 결과에서 Oquab et al. (77.7%) 및 Chatfield et al. (82.42%)은 네트워크 미세 조정 및 멀티 뷰 테스트를 통해 얻은 것입니다.
우리의 결과는 미세 조정 없이 하나의 전체 이미지 표현만 사용하여 최신 기술과 비교할 수 있습니다.
3.3. Experiments on Caltech101
Caltech101 데이터 세트[21]에는 102개 범주 (하나의 배경)에 9,144개의 이미지가 포함되어 있습니다.
학습을 위해 카테고리 당 30개의 이미지를 무작위로 샘플링하고 테스트를 위해 카테고리 당 최대 50개의 이미지를 무작위로 샘플링합니다.
10번의 무작위 분할을 반복하고 정확도를 평균합니다.
표 7에는 결과가 요약되어 있습니다.
Pascal VOC 2007 및 Caltech101 결과에는 몇 가지 일반적인 관찰이 있습니다: SPP-net은 no-SPP net보다 낫고 (표 7 (b) 대 (a)) 전체보기 표현이 작물보다 낫습니다 ((c ) vs. (b)).
그러나 Caltech101의 결과는 Pascal VOC와 약간의 차이가 있습니다.
완전히 연결된 레이어는 정확도가 떨어지고 SPP 레이어가 더 좋습니다.
Caltech101의 개체 범주가 ImageNet의 개체 범주와 관련이 적고 더 깊은 계층이 범주에 특화되어 있기 때문일 수 있습니다.
또한 스케일 224가 이 데이터 세트에서 테스트한 스케일 중에서 최고의 성능을 가지고 있음을 발견했습니다.
이것은 주로 Caltech101의 개체가 ImageNet의 경우와 같이 이미지의 넓은 영역을 차지하기 때문입니다.
자르기 외에도 우리는 뒤틀림을 평가합니다.
이미지를 224x224 크기에 맞춥니다.
이 솔루션은 완전한 콘텐츠를 유지하지만 왜곡을 유발합니다.
SPP (ZF-5) 모델에서 정확도는 SPP 레이어를 피처로 사용하여 89.91%로 왜곡되지 않은 전체 이미지에서 동일한 모델을 사용하는 91.44%보다 낮습니다.
표 8은 Caltech101의 최첨단 방법과 비교한 결과를 요약한 것입니다.
우리의 결과 (93.42%)는 이전 기록 (88.54%)보다 상당한 마진 (4.88%)을 초과했습니다.
4. SPP-net for Object Detection
물체 감지를 위해 딥 네트워크가 사용되었습니다.
우리는 최근의 최첨단 R-CNN 방법 [7]을 간략히 검토합니다.
R-CNN은 먼저 선택적 검색을 통해 각 이미지에서 약 2,000개의 후보 창을 추출합니다 [20].
그런 다음 각 창의 이미지 영역이 고정된 크기(227x227)로 뒤틀립니다.
사전 훈련된 심층 네트워크는 각 창의 기능을 추출하는 데 사용됩니다.
그런 다음 이진 SVM 분류기는 탐지를 위해 이러한 기능에 대해 학습됩니다.
R-CNN은 뛰어난 품질의 결과를 생성하고 이전 방법을 훨씬 능가합니다.
그러나 R-CNN은 심층 컨볼루션 네트워크를 이미지 당 약 2,000개의 창에 반복적으로 적용하기 때문에 시간이 많이 걸립니다.
특성 추출은 테스트의 주요 타이밍 병목 현상입니다.
당사의 SPP-net은 물체 감지에도 사용할 수 있습니다.
전체 이미지에서 특성 맵을 한 번만 추출합니다 (여러 축척에서 가능).
그런 다음 특성 맵의 각 후보 창에 공간 피라미드 풀링을 적용하여 이 창의 고정 길이 표현을 풀링합니다 (그림 5 참조).
시간이 많이 걸리는 컨볼루션은 한 번만 적용되기 때문에 우리의 방법은 훨씬 더 빠르게 실행할 수 있습니다.
우리의 방법은 특성 맵의 영역에서 창 방향 기능을 추출하는 반면 R-CNN은 이미지 영역에서 직접 추출합니다.
이전 작업에서 Deformable Part Model (DPM) [23]은 HOG [24] 피처 맵의 창에서 피처를 추출하고 SS (Selective Search) 방법[20]은 인코딩된 SIFT 피처 맵의 창에서 추출합니다.
OverFeat 탐지 방법[5]은 또한 deep convolutional feature map의 창에서 추출하지만 창 크기를 미리 정의해야합니다.
반대로, 우리의 방법은 깊은 컨볼루션 특징 맵에서 임의의 창에서 특징 추출을 가능하게합니다.
4.1. Detection Algorithm
우리는 이미지 당 약 2,000개의 후보 창을 생성하기 위해 "빠른"모드의 선택적 검색[20]을 사용합니다.
그런 다음 min(w, h)=s가 되도록 이미지 크기를 조정하고 전체 이미지에서 특징 맵을 추출합니다.
우리는 당분간 ZF-5 (단일 크기 훈련)의 SPP-net 모델을 사용합니다.
각 후보 창에서 4단계 공간 피라미드 (1x1, 2x2, 3x3, 6x6, 완전히 50개의 빈)를 사용하여 특성을 풀링합니다.
이렇게하면 각 창에 대해 12,800-d (256x50) 표현이 생성됩니다.
이러한 표현은 네트워크의 완전히 연결된 계층에 제공됩니다.
그런 다음 이러한 특성의 각 범주에 대해 이진 선형 SVM 분류기를 훈련합니다.
SVM 교육의 구현은 다음과 같습니다 [20], [7].
우리는 긍정적인 샘플을 생성하기 위해 실측 창을 사용합니다.
네거티브 샘플은 긍정 창과 최대 30% 중첩되는 샘플입니다 (IoU (교차 조합) 비율로 측정 됨).
다른 음성 샘플과 70% 이상 겹치면 모든 음성 샘플이 제거됩니다.
SVM을 훈련하기 위해 표준 하드 네거티브 마이닝[23]을 적용합니다.
이 단계는 한 번 반복됩니다.
20개 범주 모두에 대해 SVM을 교육하는 데 1시간도 채 걸리지 않습니다.
테스트에서 분류자는 후보 창에 점수를 매기는 데 사용됩니다.
그런 다음 점수가 매겨진 창에서 비 최대 억제 [23] (임계 값 30%)를 사용합니다.
우리의 방법은 다중 스케일 특징 추출로 개선될 수 있습니다.
min (w, h) = s ∈ S = {480, 576, 688, 864, 1200}이 되도록 이미지 크기를 조정하고 각 축척에 대한 conv5의 특성 맵을 계산합니다.
이러한 스케일의 기능을 결합하는 한 가지 전략은 채널별로 풀링하는 것입니다.
그러나 우리는 다른 전략이 더 나은 결과를 제공한다는 것을 경험적으로 발견합니다.
각 후보 창에 대해 단일 배율 s ∈ S를 선택하여 배율이 지정된 후보 창이 224x224에 가장 가까운 픽셀 수를 갖도록합니다.
그런 다음 이 스케일에서 추출된 피쳐 맵만이 창의 피쳐를 계산하는 데 사용합니다.
미리 정의된 배율이 충분히 조밀하고 창이 대략 정사각형인 경우 우리의 방법은 창 크기를 224x224로 조정한 다음 여기에서 특징을 추출하는 것과 거의 동일합니다.
그럼에도 불구하고 우리의 방법은 후보 창 수에 관계없이 전체 이미지에서 한 번 (각 축척에서) 피쳐 맵을 계산하면 됩니다.
또한 [7]에 따라 사전 훈련된 네트워크를 미세 조정합니다.
특성은 모든 크기의 창에서 conv5 특성 맵에서 풀링되기 때문에 단순성을 위해 완전히 연결된 레이어만 미세 조정합니다.
이 경우 데이터 계층은 conv5 이후 고정 길이 풀링된 특성을 받아들이고 fc6,7 계층과 새로운 21-way (하나의 추가 음수 범주) fc8 계층이 이어집니다.
fc8 가중치는 σ=0.01의 가우스 분포로 초기화됩니다.
모든 학습률을 1e-4로 고정한 다음 세 계층 모두에 대해 1e-5로 조정합니다.
미세 조정 중 포지티브 샘플은 Ground-Truth 창과 [0.5, 1]만큼 겹치는 샘플이고 네거티브 샘플은 [0.1, 0.5)만큼 겹칩니다.
각 미니 배치에서 샘플의 25%가 양성입니다.
학습률 1e-4를 사용하여 250k 미니 배치를 훈련한 다음 1e-5를 사용하여 50k 미니 배치를 훈련합니다.
fc 레이어만 미세 조정하기 때문에 훈련이 매우 빠르고 GPU에서 약 2시간이 걸립니다 (약 1시간이 걸리는 사전 캐싱 특성 맵 제외).
또한 [7]에 이어 경계 상자 회귀를 사용하여 예측 창을 후처리합니다.
회귀에 사용되는 특성은 conv5에서 풀링된 특성입니다 ([7]에서 사용된 pool5 특성의 대응물).
회귀 훈련에 사용되는 창은 실측 창과 50% 이상 겹치는 창입니다.
5. Conclusion
SPP는 다양한 스케일, 크기 및 종횡비를 처리하기 위한 유연한 솔루션입니다.
이러한 문제는 시각적 인식에서 중요하지만 딥 네트워크의 맥락에서는 거의 고려되지 않았습니다.
우리는 공간 피라미드 풀링 레이어로 심층 네트워크를 훈련하는 솔루션을 제안했습니다.
그 결과 SPP-net은 분류/감지 작업에서 뛰어난 정확도를 보여주고 DNN 기반 탐지를 크게 가속화합니다.
우리의 연구는 또한 컴퓨터 비전에서 많은 시간이 입증된 기술/통찰이 딥 네트워크 기반 인식에서 여전히 중요한 역할을 할 수 있음을 보여줍니다.
'Computer Vision' 카테고리의 다른 글
GAN : Generative Adversarial Nets (번역) (0) | 2021.03.02 |
---|---|
Mask R-CNN (번역) (0) | 2021.03.02 |
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks (번역) (0) | 2021.02.25 |
Fast R-CNN (번역) (0) | 2021.02.24 |
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks (번역) (0) | 2021.02.23 |