computer vision/object detection

OverFeat: Integrated Recognition, Localization and Detection using Convoutional Networks

loosiu 2023. 5. 26. 15:14

Abstract

classification, localization and detection을 위해 convolutional network를 사용하는 integrated framework를 제시한다

multiscale과 sliding window 접근은 convnet에 효율적으로 작동할 수 있는지 보여준다.

object boundary를 예측하기 위해 학습함으로써 localization에 새로운 deep learning 접근법을 소개한다.

bounding box들은 detection 확률을 증가시키기 위해 억제하지않고 누적해나갔다.

다른 task들은 single shared network를 사용해서 동시에 학습하는 것을 보여준다.

integrated framework는 ILSVRC2013의 localization task에서 우승했고 detection과 classification task에서 경쟁력있는 결과를 얻었다. 

대회 후에 detection task에서 sota를 차지했다.

마침내, best model인 OverFeat으로부터 feature extractor을 발표했다.

 

 

 

Introduction

convnet

장점: 전체 시스템이 적절한 feature extractor를 design하기 위해  필요조건을 완화함으로써 raw pixel에서부터 category로 end to end로 학습되어졌다.

단점 : labeled training data에 대한 탐욕스러운 욕구다.

 

이 논문에서 주요 point는 image에서 classify, locate and detect object를 convolutional network에 동시에 학습하는 것은 모든 task의 classification 정확도와 detection and localization 정확도를 향상할 수 있다는 것이다.

논문은 single convnet으로 object detection, recognition, localization 하기 위해 새로운 integrated 접근을 제안한다.

그리고 예측된 bounding box를 누적함으로써 localization과 detection을 위해 새로운 방법을 소개한다.

 

많은 localization prediction, detection을 결합하는 것은 background sample의 학습없이 수행될 수 있고 시간소모가 크고 복잡한 bootstrapping 학습 과정을 피할 수 있다.

background로 학습하지 않으면 network가 높은 정확도를 위해 positive class에 집중하게 된다.

실험은 ImageNet ILSVRC 2012, 2013 dataset으로 했고, ILSVRC 2013 localization and detection task에서 sota를 차지했다.

 

imagenet classification dataset의 image는 image 대부분을 채우는 center에 있는 object를 포함하도록 선택되지만 object의 interest가 image의 size와 position에 따라 다르다.

 

 

- object의 interest가 image의 size, position에 따라 달라지는 것에 대한 idea

  1. sliding window 방식과 multiple scale에 있는 multiple location에 convnet 적용

   많은 window에 object를 인식할 수 있는 부분이 포함될지 모르지만 전체 object나 object의 center를 포함하지 않을 수  있다.  →   classification 성능은 괜찮지만 localization과 detection 성능은 별로다.

   

  2. 각 window에 대한 category의 분포를 생성할 뿐만 아니라 window에 관련된 object를 포함하는 bounding box의 size와 location의 예측을 하는 시스템으로 학습  

 

  3. 각 location과 size에서 각 category에 대한 증거를 모으는 것

 

 

Many author: sliding window로 detection과 localizaion을 위해 convnet을 사용하는 것이 목적

 

최근에 convnet은 natural image에서 text detection, face detection, pedestrian detection에서 sota를 보였다.

 

several author: window에 상대적인 position이나 object의 pose와 같이 위치된 object의 instantiation parameter들을 예측하기 위해 convnet으로 학습하는 것을 제안

 

Other author: segmentation에 기반한 convnet으로 object localization을 수행하는 것을 제안

 

가장 simple한 접근은 영역 사이에 있는 boundary로 window의 중앙 pixel을 분류하기 위해 convnet으로 학습하는 것이다. 하지만 영역을 분류하는 경우, semantic segmentation을 수행하는 것이 좋다.

주요 idea는 window를 사용해서 window의 중심 pixel을 object의 category로 분류하도록 convnet으로 학습하는 것이다.

응용은 생물학적 image 분석, 이동 로봇용 장애물 태깅, 사진 태깅까지 다양하다.

 

- other author의 방법

장점: bounding 윤곽은 직사각형이 아니여도 되고, 영역이 잘 국한된 object일 필요가 없다.

단점: 학습을 위해 dense한 pixel level label이 필요하다는 것

 

이 방법은 잠재적인 false positive를 줄이므로 가능성이 없는 object 영역을 급격하게 감소시켜서 정확도를 향상한다. 그러나 dense한 sliding window 방법은 ILSVRC13 detection dataset으로 object proposal 방법으로 더 나은 결과를 낼 수 있다.

 

이 논문은 convnet이 imagenet data로 localization과 detection에 어떻게 사용할 수 있는지 최초로 설명한다.

 

 

 

Vision Tasks

ILSVRC2013의 classification task에서 각 image는 image에서 main object에 상응하는 single label이 할당되어졌다.

5개 예측은 맞는 답을 찾기 위해 허용되어졌다. localization task는 이미지당 허용되는 예측이 5번인 것이 비슷하지만 예측된 object에 대한 bounding box가 각 예측과 함께 반환되어야 한다. 맞다고 간주되기 위해서 예측된 box가 groundtruth와 적어도 50%는 되야한다. detection task는 각 image에 많은 object가 있는 localization과 다르고, false positive는 mAP값에 의해서 결정되어진다. localization task는 classification과 detection 사이에 편리한 중간 단계이고, detection에 구체적인 문제의 independent적인 localization 방법을 평가할 수 있다.

 

top) Localization task,  bottom) detection task

 

groundtruth에 상응할 뿐만 아니라 localization/detection 예측을 하는 image 예시다.

왼쪽 그림들은 예측한 것이고 오른쪽 그림은 groundtruth label이다.

classification과 localization은 같은 dataset을 사용하고, detection은 object가 더 작은 data를 사용한다.

detection data는 object가 없는 image도 포함되어 있다.

이런 data에는 bootstrapping을 사용할 수 있지만 사용하지 않았다.

 

 

 

Classification

- Model Design and Training

각 image는 가장 작은 차원인 256 pixel을 사용하기 위해 downsampling했다.

221x221 pixel 크기의 random crop 5개를 추출했다.

  • mini-batch: 128 
  • network의 weight: $ (\mu, \sigma) $ = (0.1 x $ 10^{-2} $ )로 random하게 초기화
  • L2 weight decay: 1 X $10^-5 $
  • momentum term: 0.6
  • optimization: stochastic gradient descent(sgd)
  • learning rate: 5 x $ 10^{-2} $ and (30,50,60,70,80) 후에 0.5만큼 감소 
  • dropout(0.5): FC layer에 6,7번째에 적용

 

Architecture specifics for fast model

 

Architecture specifics for accurate model

 

layer1~5는 대비 정규화가 사용되지 않고 pooling 영역은 겹치지않는다. 그리고 더 작은 stride때문에 더 큰 첫번째, 두번째feature map을 가진다.

stride가 클수록 속도는 빠르지만 정확도가 떨어진다.

 

layer 1 filter(top), layer 2 filter(bottom)

 

1st layer filter: 방향이 지정된 edge, pattern, blob을 캡처함

2nd layer filter: 다양한 형태, 확산, 강한 선 구조나 방향이 있는 edge를 가짐

 

 

- Feature Extractor

Number of parameters and connections for different models

 

accurate model은 fast model보다 더 정확했다 그리고 fast model보다 connection이 약 2배정도 더 필요하다.

 

 

- Multi-Scale Classification

muti view voting은 성능을 증가시킨다. 

그러나 이 방법은 image의 많은 영역을 무시할 수 있고 view가 겹칠 때 계산적으로 중복됩니다.

추가로, convnet은 최적의 confidence가 아닐지도 모르는 scale인 single scale에 적용했다.

 

대신에 우리는 각 location과 multiple scale에 network를 dense하게 실행함으로써 전체 image를 분석한다.

sliding window 방식은 model의 특정한 type에 대해 계산적으로 엄두를 못내는 반면에 ConvNet의 경우에 선천적으로 효율적이다. 이 방식은 효율적인 robust가 증가하는 voting을 위해 더 많은 view를 만든다.

임의적인 size의 image에 convoving하는 ConvNet의 결과는 각 scale에 C차원 vector의 공간 map이다.

 

그러나  output의 coarse한 분포는 10 view 방식과 비교하여 성능이 감소한다. 왜냐하면 network window는 image에 object에 맞춰 잘 조정 안하기 때문이다. 그리고 더 좋게 조정된 network window와 object는 network의 confidence가 더 좋아졌다.

 

 

 

1D illustratuon of output map computation for classification, using y-dimension from scale 2
Spatial dimensions of our multi-scale approach

 

- How the resolution augmentation is performed

(a) single image 경우, unpool된 layer 5의 feature map으로 시작한다.

(b) unpool된 map {0,1,2}의 픽셀에 대해 3x3번 반복되는 3x3 max pooling 연산을 겪는다.

(c) 다른 조합에 대해 3x3번 복제된 pooled feature map의 set를 만든다

(d) 분류기(layer 6,7,8)는 pooled map 안에 각 location에 대한 C차원 output vector를 만들고,5x5의 고정된 input size를 가진다.

(e) 다른 조합에 대한 output map은 single 3D output map(두 공간 차원 x C classes)으로 변형된다.

 

이 연산은 다음 layer에 skip kernel 사용하는 것과  subsampling하는 것 없이 pooling layer 통해 1픽셀씩 classifier의 viewing window를 이동시키는 것으로 간주할 수 있다. 또는 동등하게 가능한  모든 offset에 마지막 pooling layer와 fully connected stack을 적용하고, output을 interleaving해서 결과를 조합한다.

 

위의 절차는 각 image의 수평으로 뒤집힌 version에 대해서 반복했다.

그 후 아래 3단계를 진행한다.

  1. 각 class, scale과 flip에 대한 공간적인 최대 값으로 마지막 classification을 만들었다.
  2. 다른 scale과 flip으로부터 c차원의 vector 결과를 평균화한다.
  3. 평균 class vector로부터 top1이나 top5 요소를 가져온다.

 

- ConvNets and Sliding Window Efficiency

많은 sliding window는 input 하나의 각 window를 위해 전체 pipeline을 계산하는데 사용한다. ConvNet은 sliding 방식에 적용될 때 효율적이다. 왜냐하면 겹쳐지는 영역에 일반적으로 계산을 공유하기 때문이다. test할때 더 큰 image를 network에 적용할 때 full image의 크기를 넘어서 각 convolution에 적용한다. input의 각 window에 대한 하나의 공간적 위치에 output class 예측의 map을 만드는  새로운 image size를 다루는 각 layer의 output을 확장한다.

 

The efficiency of ConvNets for detection

 

Convolution들은 이웃하는 window에 일반적인 계산이 되는 것이 필요하기 떄문에 bottom up으로 적용되어졌다.

model architecture의 마지막 layer는 fully connected linear layer이다. test할 때, fc layer는 1x1 공간의 크기의 kernel로 convolution 연산을 효율적으로 대체했다.  전체 ConvNet은 convolution의 연속, max pooling, thresholding 연산이다.

 

 

 

Localization

classification network를 먼저 썻지만 classifier layer 대신에 regression network를 사용했다. 그리고 각 공간의 위치와 크기에 object bounding box를 예측하기 위해 학습했다. 각 위치의 classification 결과와 함께 regression 예측을 결합했다.

 

- Generating Predictions

object bounding box 예측을 하기 위해 classifier와 regressor network를 동시에 돌렸다. 같은 feature extraction layer를 쓰기 때문에 마지막 regression layer는 classification network를 계산한 후에 다시 계산이 필요하다. 각 위치의 class c에 대한 마지막 softmax layer의 output은 confidence score를 제공한다.

 

 

- Regressor Training

regression network는 layer5로부터 나온 pooling된 feature map을 input으로 넣는다. 각각에 크기가 4096과 1024 채널인 2개의 fully connected hidden layer를 가진다. 마지막 output layer는 bounding box edge에 대한 좌표를 명시하는 4개 unit을 가진다.

Application of the regression network to layer 5 features at scale 2

 

classification같이 $ \Delta_x, \Delta_y $ 이동에 의해서 3x3 사본이 있습니다.

classification network에 있는 feature extraction layer를 수정하고 각 예제에 대해 예측된 bounding box와 진짜 bounding box 사이에서 L2 loss를 사용하는 regression layer를 학습한다.

그리고 bounding box에서 regressor가  input에 50%보다 덜 겹치면 학습하지 않는다. object 대부분은 겹치지 않고 밖에 있기 때문에 object를 포함하는 regression window가 더 잘 작동한다.

multi scale 방식으로 regressor를 학습하는 것은 크기 예측 결합에 중요하다. single 크기로 학습하는 것은 해당 크기에 잘 학습할 것이고 다른 크기에서는 여전히 합리적인 성능을 보일 것이다. 그러나 multi scale로 학습하는 것은 scale에 따라 올바르게 예측을 맞게 할것이고 병합된 예측의 확률을 기하급수적으로 증가시킨다. 결과적으로 detection의 경우에서 많은 scale보다 적은 scale로 더 좋은 성능을 보인다. 

 

 

- Combining Predictions

 

(a) 각 scale $ \in $ 1...6에 대한 상위 k에 있는 class 집합을 $C_s$를 할당한다.

(b) 척도s의 모든 공간 위치에서 $C_s$의 각 class에 대한 regressor network에 의해 예측되는 bounding box의 집합 $B_s$에 할당한다.

(c) $ B \leftarrow \bigcup_s B_s $ 할당한다

(d) 끝날때까지 병합을 반복

(e) $ (b^*_1,b^*_2)= argmin_{b_1 \neq b_2 \in B}$ match_score$(b_1,b_2)$

(f) match_score$(b^*_1,b^*_2)$ > t이면 중지

(g) 그렇지 않으면, 집합 B $\leftarrow$ B $\setminus${$b^*_1,b^*_2$} $\cup$ box_merge$(b^*_1,b^*_2)$

 

match_score는 두개의 bounding box의 중앙 간에 거리의 합을 사용해서 계산한다.

box_merge는 bounding box의 좌표의 평균을 계산한다.

마지막 예측은 최대 class 점수를 가지고 병합된 bounding box에 가져옴으로 얻어진다. 마지막 예측은 각각의 bounding box가 예측되는 input window와 관련된 detection class output에 점증적으로 더해지므로써 계산된다.

 

Localization/Detection pipeline

 

  • 1st diagram: raw classifier/detector은 각 위치에 대한 class와 confidence를 출력한다.
  • 2st diagram: 예측의 해상도는 section 3.3에서 말한 방법으로 증가시킬 수 있다.
  • 3rd diagram: regression은 각 window에 대하여 object의 위치 척도를 예측한다.
  • 4th diagram: bounding box는 병합되고 작은 개수의 object이 축적된다.

 

이 분석은 우리의 접근법이 bounding box의 일관성을 보상함으로써 전통적인 non maximum suppression보다 순수한 classiciation 모델에서 만들어진 false positive가 더 robust하다고 말한다.

 

 

 

Detection

detection 학습은 classification 학습과 비슷하지만 공간적인 방식이다. image의 여러 위치는 동시에 훈련될 수 있다. 모델이 convolutional이므로 모든 가중치가 모든 위치에서 공유되어진다. localization task와 주된 다른점은 object가 존재하지 않을 때 background class를 예측해야한다는 것이다. 

 

이 기술은 추론 속도를 높이고 잠재적인 false positive의 수를 줄인다.

false positive를 줄이는 이유로 object 위치에 버리는 selective search와 대조적으로 dense한 sliding window를 사용할 때 detection 정확도를 떨어트린다.

우리의 방법을 결합하면 전통적인 dense한 방법과 segmentation에 기반한 방법에서 향상될지도 모른다.

detection validation set에 fine tunning 하지 않았다.

위 그림에서 두개의 Overfeat result의 향상은 더 긴 학습시간과 문맥의 사용때문이다.

 

 

 

Discussion

classification,localization, detection에 사용할 수 있는 multi scale, sliding window 방법에 대해서 제시했다.

ILSVRC 2013 competition: classification부문  4등, localization 부문 1등, detection부문 1등

두번째로 기여한 것은 어떻게 ConvNet이 detection과 localization task에 효율적으로 사용할 수 있었는지 설명한 것이다.

픽셀로부터 직접적으로 학습한 일반적인 특징 추출 기반을 공유할 때 다른 task을 향상하는 통합된 pipeline을 제안했다.

 

How to improve our approach

  1. localization을 위해서 전체 network를 통해 back propagation을 하지 않아도 성능이 향상되었다.
  2. 성능이 측정될 때 IOU(intersection-over-union) 기준을 최적화하기보다는 L2 loss를 사용한다.                                      
  3. bounding box의 대체 매개변수화는 network 학습을 하는데 도움을 주는 output에 역상관하는데 도움을 준다