Object recognition을 위한 선택적 검색

Summarize

  • Segmentation과 Exhaustive Search 방법을 조합하여 Selective Search를 수행한다.

Segmentation은 이미지의 구조적인 특징(색상, 무늬, 크기, 모양)을 사용하여 후보 영역을 추출하는 것을 말하며, Exhaustive Search는 모든 가능한 후보 영역을 검색하는 것이다.

Image

  1. Efficient Graph-Based Image Segmentation(Felzenszwalb)을 사용하여 초기 후보 영역을 다양한 크기와 비율로 생성한다.
  2. 그리디 알고리즘을 통해 비슷한 영역을 반복적으로 통합한다.
    • 처음에 모든 영역에 대해 유사도를 계산하여 similarity set S를 생성한다.
    • S에서 가장 큰 유사도 값을 가진 ri, rj에 대해 통합한다.
    • ri, rj의 유사도 값은 S로부터 제거한다.
    • 통합된 새로운 영역(rt)과 인접한 영역들에 대해 유사도(St)를 계산한다.
    • S와 R에 유사도(St)와 통합된 새로운 영역(rt)을 추가한다.
  3. 최종적으로 하나의 영역이 만들어질 때까지 2번을 반복한다.

Selective Search는 후보 영역 추출 과정에서 CNN과 별도로 동작해서 bottleneck 현상이 발생한다. 이것은 실시간 처리에 어려움을 갖는다.

Exhaustive search는 후보가 될만한 모든 영역을 샅샅이 조사하는 것이다. 후보가 될만한 대상의 크기가 일정하지도 않고, 가로 세로 비율도 일정하지 않은 상황에서 모두 찾는 것은 사실상 불가능하다.

Segmentation 방법은 Exhaustive search와 같이 영상의 특성을 고려하지 않고 찾는것이 아니라 영상 데이터의 특성에 기반하는 방식이다. 색상, 모양, 무늬 등 다양한 기준에 따라 segmentation이 가능하지만, 모든 경우에 동일하게 적용할 수 있는 segmentation 방식을 찾는 것은 불가능하다.

data-driven Selective Search: segmentation에 가능한 방법을 활용하여 seed를 설정하고, 그 seed에 대해 exhaustive한 방식으로 찾는것을 목표로 한다.


Abstract

이 논문은 물체 인식에 사용할 수 있는 물체 위치를 생성하는 문제를 다룬다. 철저한 검색과 세분화의 장점을 결합한 Selective Search를 소개한다. 세분화와 마찬가지로, 샘플 프로세스를 guide하기 위해 이미지 구조를 사용한다. 철저한 검색과 마찬가지로 모든 가능한 객체 위치를 캡처하는 것을 목표로 한다. 가능한 객체 위치를 생성하는 단일 기술 대신, 우리는 검색을 다양화하고 가능한 많은 이미지 조건을 처리하기 위해 다양한 상호보완적인 이미지 파티셔닝을 사용한다. 우리의 Selective Search는 10,097개의 위치에서 99%의 Recall과 Mean Average Best Overlap 0.879의 성과를 내는 데이터 기반, 클래스 독립적, 고품질 위치의 작은 셋을 생성한다. 철저한 검색에 비해 위치 수가 줄어들어 대상 인식에 보다 강한 외형 모델을 사용할 수 있다. 이 논문에서는 Selective Search를 통해 강력한 Bag of Word 모델을 인식에 사용할 수 있음을 보여준다. Selective Search Software는 공개적으로 사용할 수 있다. (ttp://disi.unitn.it/~uijlings/MyHomepage/index.php)


2. Related Work

우리는 관련 작업을 물체 인식 영역으로 한정하고 이를 세가지 범주로 나눈다. Exhaustive search, segmentation, 두가지 범주에 속하지 않는 다른 샘플링 전략이다.

2.1 Exhaustive Search

물체는 이미지에서 어떤 위치에도 존재할 수 있고, 크기도 다양하다. 그렇기 때문에 모든 곳을 검색하는 것이 당연하다.[8, 16, 36] 그러나 시각적인 검색 공간은 엄청나므로 ESearch 계산 비용이 크다. 이것은 위치당 평가비용 and/or 고려되는 위치의 수에 제약을 만든다. 따라서 이런 슬라이딩 윈도우 기술의 대부분은 weak 분류기와 HOG와 같은 경제적인 이미지 feature를 사용하여 coarse search grid와 고정된 종횡비를 사용한다[8, 16, 36]. 이 방법은 종종 분류기의 cascade에서 사전 선택 단계로 사용된다.

슬라이딩 윈도우 기술과 관련하여 Felzenszwalb의 매우 성공적인 부분 기반 객체 위치 파악 방법이 있다.[12] 또한 이 방법은 선형 SVM 및 HOG 기능을 사용하여 ESearch를 수행한다. 그러나 객체와 객체의 부분을 검색하며 그 조합은 인상적인 객체 탐지 성능을 제공한다.

Lampert[17]는 검색을 guide 하기 위해 appearance model 사용을 제안했다. 이는 regular grid, 고정된 비율, 고정된 종횡비를 사용하는 제약을 완화하는 동시에 방문한 위치의 수를 줄인다. 이는 branch 및 bound 기술을 사용하여 이미지 내에서 최적의 윈도우를 직접 검색하여 수행한다. 선형 분류기에 대한 인상적인 결과를 얻는 동안 비선형 분류기의 경우 실제로 이 방법은 이미지당 100,000개의 창을 방문하는 것으로 나타났다.

blind Exhaustive S 또는 branch와 bound 검색 대신 Selective S를 제안한다. 객체 위치를 생성하기 위해 기본 이미지 구조를 사용한다. 논의된 방법과 달리, 이것은 완전히 클래스 독립적인 위치 집합을 산출한다. 게다가 우리는 고정된 종횡비를 사용하지 않기 때문에 우리의 방법은 물체에만 국한되지 않고 잔디와 모래같은 것을 찾을 수 있어야한다([17]에서도 마찬가지이다). 마지막으로 샘플의 가변성이 낮아짐에 따라 문제를 더 쉽게 만들어야하는 위치를 더 적게 생성하기를 바란다. 더 중요한 것은 강력한 머신 러닝 기술과 강력한 appearance model에 사용할 수 있는 계산 능력을 확보할 수 있다는 것이다.

2.2 Segmentation

정확한 개체 탐지 및 Semantic segmentation을 위한 Rich feature 계층 구조

Summarize

  • Figure 1의 (1)에서 region proposal 2000개를 만든다.
  • region proposal의 사이즈가 랜덤해서, 입력 이미지의 크기가 고정되어있는 CNN에 쓰려면 transformation 해줘야한다.
  • 이 논문에서는 tightest square with context, warp 방법
  • 2000개 region proposal 각각에 대해 CNN feature vector 추출(N images * 2000)한다.
  1. CNN을 통한 feature vector 추출
  2. SVM Classfier를 통한 Image Classification
  3. Bounding Box Regression
  1. 이미지 분류 작업에 대한 CNN 네트워크 Pre-training: 예를 들어 ImageNet Dataset에서 교육된 VGG또는 ResNet, Classification task엔 N개의 Class가 포함된다.

    참고: Caffe Model Zoo에서 pre-trained AlexNet을 찾을 수 있다. Tensorflow에서 찾을수 없지만 Tensorflow-slim model library는 pre-trained RestNet, VGG 등을 제공한다.

  2. Selective search(이미지당 2k 후보)로 카테고리 독립적인 관심 영역을 제안한다. 이런 영역들엔 대상 객체가 포함될 수 있으며 크기가 다르다.

  3. 지역 후보들은 CNN이 요하는 고정 크기로 변형된다.

  4. K+1 클래스의 warped proposal region에서 CNN fine-tuning을 한다. 추가한 한 클래스는 배경(관심 있는 대상이 없음)을 의미한다. Fine-tuing 단계에서 훨씬 더 작은 학습률을 사용해야 한다. 대부분의 proposal region이 배경이기 때문에 mini-batch가 positive case들을 과도하게 오버샘플링 한다.

  5. 주어진 모든 이미지 영역에서, CNN을 통한 하나의 forward propagation는 feature vector를 생성한다. 이 feature vector는 각 class에 대해 독립적으로 훈련된 SVM에 의해 소비된다.
    Positive 표본은 IoU 중복 임계값이 0.3 이상인 proposed region이며 negative 표본은 다른 표본과 관련이 없다.

  6. Localization 오류를 줄이기 위해, regression 모델은 CNN feature를 사용하여 Bounding box correction offset의 예측된 detection window를 올바르게 잡기 위해 훈련된다.


Abstract

Canonical PASCAL VOC 데이터셋에서 측정한 바와 같이 Object Detection 성능이 지난 몇년동안 정체기에 있다. 가장 좋은 방법은 일반적으로 여러개의 low-level 이미지 feature와 high-level context를 결합하는 복잡한 emsemble 시스템이다. 이 논문에서는 평균 정확도(mAP)를 30% 이상 향상시켜 53.3% mAP를 달성하는 간단하고 확장 가능한 detection 알고리즘을 제안한다. 우리의 접근 방식은 두가지 key insight를 결합한다. 하나는 물체를 localize하고 분할하기 위해 bottom-up region proposal을 high-capacity CNN에 적용할 수 있는 것이고, 다른 하나는 label 되어있는 training data가 부족할때, 보조 작업을 위해 pre-training된 모델을 해당 도메인에 맞게 fine-tuning을 적용하는 것은 상당한 성능 향상을 가져온다는 것이다. Region proposal을 CNN과 합치기 때문에 우리는 이 방법을 R-CNN(Region-CNN)이라고 부른다. 우리는 R-CNN을 CNN 아키텍쳐를 기반으로 최근에 제안된 sliding-window detector인 OverFeat과 비교한다. 우리는 R-CNN이 OverFeat보다 200-class ILSVRC2013 detection 데이터셋에서 큰 차이를 보이는 성능을 가짐을 발견했다. 소스 코드는 http://www.cs.berkeley.edu/˜rbg/rcnn 에 있다.


목차

1. Introduction

Feature는 중요하다. 다양한 시각적 인식 작업에 대한 지난 10년간의 연구는 SIFT[29]와 HOG[7]의 사용에 상당히 의존했다. 그러나 canonical 시각 인식 작업인 PASCAL VOC object detection[15]에서 성능을 살펴보면, 일반적으로 ensemble 시스템을 구축하고 성공적인 방법으로 얻은 작은 variant들을 사용함으로써 얻어지는 작은 이득은 2010-2012년 동안 진행 속도가 느린 것으로 알려져있다.

SIFT와 HOG는 블록 단위 방향 히스토그램으로, 영장류 시각 경로의 첫번째 피질 영역인 V1에서 복잡한 세포와 대략적으로 연관시킬 수 있는 표현이다. 그러나 우리는 인식이 여러 단계의 downstream에서 발생한다는 것을 알고 있다. 시각적 인식을 위해 더 유익한 기능을 계산하기 위한 다단계 프로세스가 계층적으로 있다는 것을 의미한다.

생물학적으로 영감을 받은 패턴 인식을 위한 계층적이고 shift-invariant 모델인 후쿠시마의 "neocognitron"[19]은 그러한 과정을 위한 초기 시도였다. 그러나 neocognitron에는 supervised training 알고리즘이 없었다. Rumelhart[33], LeCun[26]을 바탕으로 역전파(back propagation)를 활용한 확률적인 Gradient descent는 neocognitrond을 확장하는 모델인 CNN을 훈련하는데 효과적이었음을 보여줬다. CNN은 1990년대에 과도하게 사용되었다(e.g.[27]). 하지만 support vector machine의 등장으로 유행에서 벗어났다. 2012년에 Krizhevsky[25]는 ImageNet Large Scale Visual Recognition Challenge(ILSVRC)[9, 10]에 비해 훨씬 더 높은 이미지 classification 정확도를 가짐으로써 다시 CNN에 관심을 가졌다. 그들의 성공은 대형 CNN을 120만개의 label된 이미지와 함께 LeCun의 CNN(e.g.max(x, 0) 정류 비선형성 및 dropout 정규화)와 함께 몇가지 twists와 함께 교육한 결과이다.

Image

  • Figure 1. Object detion system overview
    • (1) input image.
    • (2) bottom-up region proposal 2000건 추출.
    • (3) 대형 CNN을 사용하여 각각의 proposal에 대한 feature 계산.
    • (4) class-specific 선형 SVM을 사용하여 각 region을 분류한다.

R-CNN은 PASCAL VOC 2010에서 53.7%의 mAP를 가진다. 비교를 위해 [39]는 동일한 region proposal을 사용하면서 35.1% mAP를 갖지만, 공간 피라미드와 시각적 단어 접근법을 사용한다. 인기 있는 변형 가능한 부품 모델은 33.4%로 수행한다. 200-클래스 ILSVRC2013 detection 데이터셋에서 R-CNN의 mAP는 31.4%로 OverFeat[34]보다 큰 개선이며 이전의 best는 24.3%이다.

ImageNet 결과의 중요성은 ILSVRC 2012 워크샵에서 활발하게 논의됐다. 중심 이슈는 다음과 같다. ImageNet에서의 CNN 분류 결과는 Pascal VOC Challenge에서 object detection 결과에 대해어느정도까지 일반화되는가? 우리는 이미지 분류와 물체 감지 사이의 간격을 메워 이 질문에 답한다. 이 논문은 CNN이 단순한 HOG와 유사한 특징을 기반으로 하는 시스템에 비해 Pascal VOC에서 훨씬 더 높은 Object detection 성능을 이끌 수 있다는 것을 보여주는 첫번째 논문이다. 이 결과를 달성하기 위해 우리는 두가지 문제에 초점을 맞춘다. 깊은 네트워크를 개체로 localizing하고 소량의 주석처리된 탐지 데이터로 대용량 모델을 교육한다. 이미지 분류와 달리, 이미지 내에서(많은 경우) 객체의 위치를 파악해야한다. 하나의 접근법은 Regression 문제로 localization frame을 씌우는 것이다. 그러나 Szegedy[38]의 연구 결과는 이 전략이 실제로 실행되지 않을수도 있음을 나타낸다. VOC 2007의 경우 우리의 방법은 58.5%를 가지지만 그것은 30.5%의 mAP를 가진다. 또 다른 방법은 sliding window detector를 만드는 것이다. CNN은 적어도 20년동안 얼굴과 보행자와 같이 제한된 개체 카테고리에서 일반적으로 사용됐다. 높은 공간 해상도를 유지하기 위해, 이 CNN들은 전형적으로 단지 2개의 Conv 및 Pooling 계층만을 갖는다. 우리는 sliding window 방식을 채택하는 것도 고려했다. 그러나 우리의 네트워크에서 5개의 Conv를 가지는 high unit은 입력 이미지에서 매우 많은 receptive field(195x195 픽셀)와 stride(32x32 픽셀)을 가지고 있다. 이것은 sliding window 패러다임 내에서 정확한 위치파악을 기술적인 도전이 된다.

대신 우리는 CNN 지역화 문제를 객체 인식과 의미론적 세분화에 성공적이었던 "인식을 사용하는 영역" 패러다임[21] 안에서 작동시킴으로써 해결한다. 테스트 시간에 우리의 방법은 입력 이미지에 대해 약 2000개의 카테고리 독립적인 region proposal을 생성하고 CNN을 사용하여 각 제안에서 고정 길이의 특징 벡터를 추출한 다음 각 영역을 카테고리별 선형 SVM으로 분류한다. 지역의 모양에 관계 없이 각 지역 제안에서 고정된 크기의 CNN 입력을 계산하는 간단한 기술을 사용한다. 그림 1은 우리의 방법에 대한 개요를 제시하고 일부 결과를 강조 표시한다. Google 시스템은 Region Proposal을 CNN과 결합하므로 R-CNN 이라는 제목을 붙였다.

OverFeat은 탐지를 위해 Sliding WindowCNN을 사용하며 지그까지 ILSVRC2013 탐지에서 가장 좋은 수행방법이었다. 우리는 R-CNN이 OverFeat을 능가하는 것으로 나타났으며 mAP는 31.4%였다. OverFeat은 24.3%이다.

Detection에 있어 두번째 과제는 labeled 데이터가부족하고 현재 사용가능한 양이 CNN을 교육하기에는 충분하지 않다는 것이다.
이 문제에 대한 해결책은 unsupervised pre-training을 사용하고 supervised fine-tuning을 사용하는 것이다[35]. 이 논문의 두번째 원칙은 데이터가 부족할 때 대규모 보조 데이터 세트(ILSVRC)에 대한 supervised pre-training과 작은 데이터 세트(Pascal)에 대해 도메인 특유의 미세 조정은 대용량 CNN을 학습하는 효과적인 패러다임을 보여준다. 우리의 실험에서 탐지를 위한 미세 조정은 mAP 성능을 8% 햐상시킨다. 미세 조정 후, 우리 시스템은 고도로 조율된 HOG 기반 변형 가능 부품 모델의 경우 33%와 비교하여 54%의 mAP를 달성한다(VOC 2010)[17,20]. 우리는 또한 Krizhevsky의 CNN이 블랙박스 feature 추출기로 사용될 수 있음을 보여주는 Donahue[12]의 동시 작업을 독자들에게 알려줌으로써 장면 분류, 세분화된 하위 카테고리화 및 도메인 적응을 포함한 여러 인식 작업에서 탁월한 성능을 제공한다.

우리 시스템은 또한 매우 효율적이다. Class별 계산은 합리적으로 작은 행렬-벡터 곱과 greedy non-maximum suppression이다. 이 계산 특성은 모든 범주에서 공유되고 이전에 사용된 영역 features보다 2차원 크기가 더 작은 피쳐에서 따른다([39]).

우리의 접근 방식의 실패 모드를 이해하는 것은 그것을 개선하는데 중요하다. 그래서 Hoiem[23]의 탐지 분석 도구의 결과를 쓴다. 이 분석의 즉각적인 결과로 간단한 경계 상자 회귀 방법이 우세한 오류 모드인 mis-localization을 상당히 감소시키는 것으로 나타났다.

기술적 세부사항을 개발하기 전에 R-CNN이 지역에서 운영되기 때문에 의미론적 세분화 작업으로 확장하는 것이 당연하다. 사소한 수정을 통해 VOC 2011 테스트 세트에서 평균 세분화 정확도가 47.9%인 파스칼 VOC 세분화 작업에 대한 경쟁력 있는 결과도 얻는다.

5. Semantic segmentation

지역 분류는 Semantic segmentation을 위한 표준 기법으로 Pascal VOC segmentation challenge에 R-CNN을 손쉽게 적용할 수 있다. 현재의 Semantic segmentation 시스템(O2P: second-order pooling이라고 불린다)[4]과 직접적인 비교를 돕기 위해 우리는 오픈 소스 framework 내에서 작업한다. O2P는 CPMC(Constrained Parametric Min-cuts)를 사용하여 이미지당 150개의 Region proposal을 생성한 다음 Support Vector Regression을 사용하여 각 클래스에 대해 각 지역의 품질을 예측한다. 그들의 접근 방식의 높은 성능은 CPMC 영역의 품질과 여러 feature 유형(SIFT와 LBP의 풍부한 변종)의 강력한 2차 순서 풀링으로 인한 것이다. 또한 Farabet[16]은 CNN을 다중 픽셀 단위의 분류 기준으로 사용하여 여러 조밀한 장면 labeling dataset(PASCAL을 포함하지 않은)에서 좋은 결과를 나타냈다.

##

스마트폰에서 효율적인 눈 깜박임 탐지

Copyright © 2018 Young-Joo Han et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Young-Joo Han, Wooseong Kim , and Joon-Sang Park

Vieworks Co., Ltd., Gyeonggi, Republic of Korea

Department of Computer Engineering, Gachon University, Gyeonggi, Republic of Korea

Department of Computer Engineering, Hongik University, Seoul, Republic of Korea

Correspondence should be addressed to Wooseong Kim; wooseong@gachon.ac.kr and Joon-Sang Park; jsp@hongik.ac.kr

Received 15 December 2017; Accepted 26 March 2018; Published 21 May 2018

Academic Editor: Andrea Gaglione


본 논문에서는 스마트폰 플랫폼에서 눈 깜박임 탐지 또는 눈 추적에 사용할 수 있는 효율적인 방법을 제안한다. 눈 깜박임 탐지 또는 눈 추적 알고리즘은 모바일 환경에서 다양한 응용 프로그램을 사용한다. 예를 들어, 얼굴 인식 시스템 스푸핑 방지가 있다. 리소스가 제한된 스마트폰 환경에서 눈 깜박임 검출의 핵심 문제는 계산 효율 문제이다. 문제를 해결하기 위해 두 가지 머신 러닝 기술을 이용한다. SVM과 CNN을 사용하여 눈 깜박임 검출을 리소스가 제한된 스마트폰에서 효율적이고 안정적으로 수행할 수 있다. 실험 결과 스마트폰은 우리의 접근 방식이 FPS 22의 처리속도를 가지고 94.4%의 정밀도를 달성한다.

목차

1. Introduction

2. Related Works

3. Propsed Algorithm

4. Evaluation (미완입니다.)

5. Conclusion

1. Introduction

Eye-tracking이나 깜빡임 검출 알고리즘은 스마트폰 플랫폼에 다양한 응용 프로그램이 있습니다. 예를 들어 얼굴 인식 시스템에서 스푸핑에 대한 대책으로 사용될 수 있다[1]. 또한 많은 스마트폰 사용자들이 겪고 있는 컴퓨터 비전 증후군[2]은 눈 깜빡임 검출 시스템이 그들의 눈 깜빡임 습관에 관해 사용자들에게 조언을 제공할 때 완화될 수 있다.

비디오 입력에 기반한 Eye-tracking 및 눈 깜빡임 검출 알고리즘에는 많은 연구가 있다. 예를 들어[3-8], 그러나 데스크톱 환경을 위해 개발된 기법은 스마트폰의 계산 자원의 한계와 사용자 움직임으로 입력된 비디오 프레임 내의 눈의 위치의 빈번한 변화로 인해 모바일/스마트폰 환경에서 제대로 작동하지 않을 수 있다. 이런 문제를 해결하는 한가지 방법은 관심 영역(ROI, Region of Interest)을 이용하는 것이다. 예를 들어[7], 각 비디오 프레임의 전체 영역에서 눈을 검색하는 대신에, ROI라는 작은 영역을 검사한다. 모든 비디오 프레임의 전체 영역에서 눈을 위치시키는 것은 시간과 에너지를 소비하므로 스마트폰에서 실시간 처리하기에는 적합하지 않다. ROI 기반 솔루션에서 ROI를 설정하는 방법은 시스템 성능의 핵심이며 모바일 환경에서 문제가 더 어려워진다. 예를 들어[7], 일부 구성표는 가속도계와 같은 내장형 센서를 사용하여 입력 비디오 프레임에서 눈의 위치를 효과적으로 예측하여 동적 모바일 환경에서 실시간으로 Eye-tracking을 구현한다.

최근에 스마트폰을 위한 eye-tracking 알고리즘에 기반한 몇가지 깊은 CNN이 제안됐다. 지난 몇년동안 다양한 컴퓨터 비전 문제를 해결하기 위해 깊은 CNN 모델이 성공적으로 적용되었지만 스마트폰에서 깊은 CNN 모델을 실행하는 것은 계산 복잡성으로 인해 여전히 어려운 것으로 간주된다. 특히 눈 깜빡임 검출에 관해서는 눈 깜박임 검출 문제가 보다 엄격한 실시간 요구 사항, 즉 FPS가 10 이상의 처리속도를 요하기 때문에 eye-tracking보다 더 계산적으로 효율적이어야한다. 이 문제를 해결하기 위해, 우리는 두가지 머신 러닝 기술을 결합한 하이브리드 접근법인 HOG(Histogram of Oriented Gradients) 특징[9]의 막대 그래프가 있는 SVM 분류기와 LeNet-5[10]라는 깊은 CNN 모델을 사용하여 눈 깜빡임 검출이 가능하다. 리소스가 제한된 스마트폰에서 효율적이고 안정적으로 수행된다. SVM 분류기는 빠르지만 덜 정확하다. 깊은 CNN 모델은 정확하지만 느리다. 따라서 우리의 계획에서 두개는 눈 깜빡임 검출에서 효율성과 정확성을 달성하기 위해 결합된다. 다시 말해 우리는 물체 감지에서 지역 제안 방법으로 SVM 탐지기를 사용한다. 눈 깜빡임 탐지 알고리즘에서 눈 깜빡임 감지 보고가 실제 깜빡임이 없었음에도 보고가 되는 False-Negative 탐지가 문제가 된다는 것을 알 수 있다. 예를 들어, 눈 깜빡임 탐지를 기반으로 하는 CVS 자문 시스템은 시스템이 F-N 탐지에 깜빡임 횟수를 포함해서 과대 평가할 경우 적절한 조언을 제공할 수 없다. 또한 F-N 탐지는 얼굴 인식 시스템에서 권고가 안티 스푸핑 매커니즘에 기반한 깜빡임 검출을 우회하도록 한다. 우리의 알고리즘은 F-N 탐지를 가능한 최소화하도록 설계됐다.

또한 모바일 환경에 적합한 새로운 ROI 선택 기법을 제안한다. 우리의 설계에서 ROI는 방향 센서의 판독값을 기반으로 동적으로 결정되고 ROI 위치와 방향 센서 판독값을 상호 연관시키기 위해 실시간 회귀 분석(Real-Time Regression Analysis)을 수행한다. 상용 스마트폰에 대한 실험 결과에 따르면 우리의 접근 방식은 기존 솔루션을 구현하는 것보다 약 25% 향상됐다.

이 논문은 다음과 같이 구성됐다. Section 2에서 관련 연구에 대해 논의한다. Section 3에서는 눈 추적 및 눈 깜빡임 탐지 시스템의 맥락에서 우리의 제안을 소개한다. Section 4에서는 제안된 알고리즘의 성능을 논의하고 기존의 솔루션과 비교한다. 마지막으로 Section 5에서 결론을 도출한다.

2. Related Works

이 섹션에서는 관련된 작업에 대해 설명한다. 눈 추적 및 탐지는 인간 행동, 인간-컴퓨터 상호 작용(HCI), 장애인 및 의학적 목적을 이해하기 위해 광범위하게 연구되었다. 간섭적 방법과는 달리, 적외선 조명[11, 12], 추가 하드 웨어가 필요 없는 nonintrusive 방식 및 물리적 접촉은 컴퓨터 비전 및 이미지/비디오 연구 분야에서 많은 주목을 받았다. [13-16]에 따르면, nonintrusive한 방법은 템플릿 기반 [13-19], 외형 기반[13,15,20,21], 피처 기반 방법[22,23] 등 여러가지 방법으로 분류할 수 있다. 그리고 그 중 일부는 하이브리드 방식으로 섞여 있다.

템플릿 기반 방법은 눈 모양으로 디자인된 일반적인 눈 모델의 템플릿과 일치하는 눈 이미지를 검색한다. 이미지에서 눈의 가장 좋은 표현에 맞게 변형될 수 있는 변형 가능한 템플릿은 주로 탐지 정밀도에 사용되지만, 초기 단계에서 적절하게 캡쳐된 눈 모델이 필요하다[13-16, 23]. 외형 기반 방법에서 눈 모델 및 특징 없이 원본 이미지의 학습된 세트를 기반으로 눈을 감지한다. 뉴런 네트워크나 SVM 머신과 같은 학습된 분류기는 다양한 얼굴 방향 및 조명 조건에서 눈을 탐지하는데 사용된다[24].
Zhu와 Ji는 eye glasses와 일광과 같은 잘 알려진 문제가 있는 적외선(IR) 기반의 눈 탐지 방식에서 학습된 분류기를 선택했다. 피처 기반의 방법은 눈 주변의 독특한 특징, 예를 들어 눈 자체의 경계 대신에 눈꺼풀 가장자리와 홍채의 강도 또는 색을 사용한다.
Kawato와 Ohya[22]는 두 눈 사이의 특징점(즉, 두개의 어두운 부분의 중간 점)을 눈 탐지 및 추적에 사용하여 보다 안정적이었다.
Tian[25]은 머리 방향에 따라 사용할 수 없더라도 Kanade-Lucas Tracking(KLT) 알고리즘의 수정된 버전을 사용하여 눈 안쪽 구석과 눈꺼풀의 특징 검출을 제안했다.
Viloa-Jones 알고리즘[26]은 Haar 피처 기반의 계단식 분류기를 사용하여 Haar 피처(눈의 두 부분이 어두운 2 또는 3개의 직사각형)를 사용하여 효과적으로 눈 이미지를 검색할 수 있다. Cascading(연속적인) 연산은 계산 오버헤드를 줄이고 눈 이미지를 포함할 가능성이 높은 서브 윈도우 중 하나에서 감지 계산에 초점을 맞출 수 있다. 처음에 슬라이딩하는 첫번째 윈도우는 2 피처 분류자를 사용하여 서브 윈도우를 잡아내고, 서브 윈도우 내의 분류자에 대해 더 많은 피처를 고려한다. Viola-Jones 알고리즘은 OpenCV에 구현이 되어있어 널리 사용된다[27].
눈 탐지 외에 눈 깜빡임 검출을 위해, Grauman[28]은 온라인으로 생성된 open-eye 템플릿을 사용해 템플릿 기반 방법을 제안한 후 깜빡임 탐지를 위해 실제 이미지와 매칭시켰다. 그들은 실제 깜빡이는 눈과 눈 템플릿 사이의 유사성을 측정하는 상관 관계 점수를 도입했으며, 눈 깜빡임 기간동안 상관 계수가 감소했다.
Chau와 Betke[22]는 온라인 템플릿과 실제 눈 이미지의 상관 관계 점수를 기반으로 깜빡임과 그것의 지속시간을 발견했다.

PC의 USB 카메라로 촬영된 320x240 해상도 비디오를 사용한 실험에서 2.8 GHz 펜티엄 4 및 1GB 메모리 PC를 사용하는 실시간 눈 깜빡임 검출은 자연스럽게 깜빡일 경우 약 95%의 정확도를 보였으나 의도적인 깜빡임은 15% 정도의 오차를 보였다.

Polastek[20]은 눈의 깜빡임 검출에 대한 두가지 방법을 제안했다. 제시된 알고리즘 중 첫번째는 1D 채도와 2D 채도의 히스토그램으로부터 역 투영을 계산하는 것이다. 두번째 방법은 KLT 알고리즘을 사용하여 안쪽 움직임 감지를 통해 눈꺼풀 움직임을 감지하는 것이다. Malik과 Smolka[30]는 눈 깜빡임 탐지를 위해 원본 로컬 바이너리 패턴을 향상시켰다. bin 히스토그램에 대한 균일한 패턴만을 사용하고 KLD(Kullback-Leibler Divergence)를 사용하여 감은 눈과 뜬 눈의 히스토그램 차이를 유도하여 탐지 정확도를 거의 10% 향상시킬 수 있다. Jennifer와 Sharmila[31]은 눈 깜빡임 검출을 위해 여러 알고리즘(즉 픽셀 수, 캐니 필터, 그래디언트 크기 및 LoG(Laplace of Gaussian))의 성능을 비교했다. 그들은 처음에 Viola-Jones 알고리즘에 의해 눈의 영역을 감지하고 그 알고리즘을 사용하여 눈을 감았는지 확인했다. 실험에 따르면 알고리즘은 픽셀 카운팅을 제외하고는 정확도면에서 비교가 가능하다. 거의 90%의 검출 정확도가 있다. 이 알고리즘에서는 상안과 하안의 차이를 고려하면 5% 이상 향상될 수 있다.

스마트폰이 컴퓨터 비전 증후군의 주요 원인이 됨에 따라 스마트폰에서 눈 깜빡임 검출에 대한 여러개의 연구가 소개 되었다. EyePhone[4]은 스마트폰의 전면 카메라를 컴퓨터-폰 인터페이스로 사용하여 눈 깜빡임을 검출하기 위해 제안됐다. 여기서 스마트폰 카메라 방향이 손의 움직임에 따라 다양하기 때문에 눈에 대한 각도에 따라 서로 다른 상관 관계 값을 사용하여 [18]에서 상관 관계 계수를 골랐다. 또한 저자는 계산 복잡도를 줄이기 위해 더 큰 ROI 윈도우를 제안했다. 400MHz 프로세서 코어 및 128MB RAM을 갖춘 Nokia N810을 사용한 실험에서 깜빡임 감지의 거의 75%가 달성되었으며 프로세스 지연은 CPU 및 RAM의 리소스 소비량을 65%, 56%으로 하며 약 100ms가 걸렸다. 여기서 스마트폰과 얼굴 사이의 거리가 20cm 이상이면 정확도가 떨어지고 40cm 이상은 작동하지 않는다. EyeGuardian[7]은 스마트 장치의 가속장치 모션 센서를 사용하여 연속적인 비디오 프레임에서 눈의 위치를 추적하는 기술을 소개했다. 눈 탐지 단계에서 EyeGuardian은 Viola-Jones 알고리즘을 사용하여 눈 영역을 검색하고 눈 주위에 작은 ROI를 유지하여 다음 비디오 프레임에서 계산 및 에너지를 줄인다. 손의 움직임으로 인해 ROI에서 눈을 잃은 추적 단계에서 가속장치의 감지 정보를 기반으로 새로운 위치를 추적한다. EyeGuardian은 추적 단계에서 높은 성공률을 보였고, 추적하지 않은 경우 80%를 보인것과 비교하면 90% 전후의 기록을 보여준다.

우리의 탐지 알고리즘은 HOG 특징[9]와 함께 선형 SVM을 사용한다. HOG 특징을 갖는 선형 SVM은 요즘 컴퓨터 비전 분야에서 가장 널리 사용되는 객체 검출기 중 하나이다. SVM+HOG는 여러가지 안구 감지 시스템에서 사용되어 왔다[17]. [17]에서 HOG 기반의 새로운 기술 "주요 지향성 그래디언트의 멀티 스케일 히스토그램"(multiscale histograms of principal-oriented gradients)이 제안됐다. 이 기술은 Viola-Jones 알고리즘과 같은 다른 특징 기술자(descriptor)와 결합하여 눈을 위치시키고 근접성을 감지한다. 그러나 선형 SVM은 기본적으로 이진 분류자이므로 직관적인 SVM+HOG 구현은 눈 깜빡임 감지 시스템으로 사용할 수 없다. 이 문제를 해결하기 위해 SVM+HOG와 LeNet-5 CNN 모델을 결합한 하이브리드 방식을 택했다. 우리의 접근법에서 우리는 눈을 찾기 위해 SVM+HOG 기술을 사용하고 탐지된 눈이 열렸는지 아니면 닫혔는지를 식별하기 위해 LeNet-5라고 하는 Deep CNN 모델을 사용한다.

최근에 눈 추적을 위해 Deep CNN을 사용하여 몇가지 연구가 수행됐다[8, 32]. 지난 몇 년 동안 다양한 CNN 모델을 성공적으로 적용하여 컴퓨터 비전 문제를 해결했지만 스마트폰에서 CNN 모델을 실행하는 것은 계산상의 복잡성으로 인해 여전히 어려움을 겪고 있다. 특히 눈 깜빡임 검출에 관해서는, 눈 깜빡임 검출 문제가 엄격한 실시간 요구 사항, 즉 초당 10프레임 이상의 처리 속도를 요하기 때문에 Deep CNN 기술의 적용 가능성이 보다 제한적이다. Eye-tracking 문제보다 계산적으로 더 효율적이어야한다. [32]의 저자는 뜬 눈과 감은 눈의 분류를 위한 ResNet-50[33]이라 불리는 CNN 모델을 사용하여 조사했지만, Geforce GTX 1070과 같은 완전히 갖춰진 데스크톱 PC가 필요하다. 우리의 계획은 스마트폰에서 10 FPS 이상의 처리속도를 달성할 수 있도록 LeNet-5[10]라고 하는 Deep CNN 모델을 사용한다. 상용 스마트폰은 계산 능력이 제한적이다. 예를 들어 삼성의 Galaxy Note 5 스마트폰에는 그래픽/쉐이더 코어가 16개가 있지만, Geforce GTX 1070 GPU에는 1920개가 있다. 따라서 스마트폰을 대상으로 하는 CNN 모델은 눈 깜빡임 감지 문제로 인한 실시간 요구사항을 달성하기 위해 계산 효율이 뛰어나야 한다. LeNet-5는 작은 메모리 공간과 계산 효율성으로 인해 선택됐다. LeNet-5 CNN 모델은 AlexNet[34], VGG-16/19[35], GoogLeNet[36], ResNet-50과 같은 이미지 분류 목적을 위해 개발된 최근의 Deep CNN 모델에 비해 훨씬 적은 수의 매개변수를 유지한다.(훨씬 높은 추론/처리 속도를 의미한다.) LeNet-5는 32x32의 흑백 이미지를 입력으로 받아들이는 반면 AlexNet, ResNet-50의 입력은 224x224의 컬러(RGB) 이미지다. 실제 숫자를 비교해보면 AlexNet에는 약 6천만개의 매개변수가 있고, ResNet-50에는 약 2천 5백만개의 매개변수가 있다. Lenet-5의 경우 100K개의 매개변수를 갖는다. AlexNet의 많은 양의 매개변수 때문에 AlexNet 또는 ResNet-50을 스마트폰에서 실시간으로 눈 깜빡임 탐지에 사용하는 것은 매우 어려운 일이다. LeNet-5는 3개의 Conv층과 2개의 Pooling층을 포함하여 7개의 층으로 구성된다. LeNet-5 구현에서 [10]에서처럼 Activation 함수로 tanh 함수 대신 ReLU Activation 함수가 사용된다.

3. Propsed Algorithm

이 섹션에서는 스마트폰에서 효율적이고 안정적인 눈 깜빡임 감지 알고리즘을 설명한다.

3.1. ROI에서 눈을 감지하고 눈 깜박임 횟수 세기.
우리의 탐지 알고리즘은 영역 제안 단계와 검증 및 분류 단계 두 단계로 구성된다. 스마트폰의 내장 카메라에서 오는 비디오/사진 프레임이 연속적으로 있는 경우 각 프레임이 하나씩 처리된다. 영역 제안 단계에서 주어진 ROI에서 후보 영역을 추출하기 위해 HOG 특징을 갖는 선형 SVM 분류자를 이용한다.(ROI 설정 방법은 나중에 설명한다.) SVM 기반 탐지기는 스케일링 문제를 처리하기 위해 25x25, 28x28 및 31x31 크기의 세가지 슬라이딩 윈도우를 사용하여 ROI를 스캔한다. 즉, 눈의 크기는 카메라와 눈 사이의 거리에 따라 달라질 수 있다. Nonmaximum suppression 기술을 사용하여 최상의 점수를 가진 28x28 픽셀 영역이 후보 영역으로 선택된다.

Image

그림 1은 Nonmaximum suppression 기술의 시각화된 예를 보여준다. 그림에서 붉은 영역은 가장 점수가 높고 후보 영역으로 선택된 영역이다. 검출된 눈이 떴는지 감겼는지 확인하고 False-Positive를 억제하기 위해 후보 지역을 LeNet-5 CNN 모델에 전달한다. 우리의 LeNet-5 CNN 모델 구현은 입력 이미지를 뜬 눈, 감은 눈, 배경의 세가지 범주로 구별한다. LeNet-5가 입력을 배경으로 분류하면 SVM이 눈을 찾을 수 없는 잘못된 영역을 선택했을 가능성이 크다. 이전에 언급했듯이, 눈 깜빡임 감지 알고리즘에서는 눈 깜빡임이 없을 때 눈을 깜빡였다고 감지하는 오류가 많이 발생하므로 하이브리드 알고리즘은 F-N 탐지를 최소화하는데 초점을 맞춘다. 또한 선형 SVM은 기본적으로 이진 분류자이므로 SVM을 눈과 배경을 구별하게 하고, LeNet-5 모델이 감지된 눈이 감겼는지를 체크하게 한다. SVM과 CNN을 결합하는 방법에 대한 직접적인 대안은 멀티 클래스 SVM을 사용하는 것이다. 평가 섹션의 실험 결과를 사용하여 정확도 측면에서 멀티 클래스 SVM에 대한 하이브리드 접근 방식을 비교한다.


3.2. 학습 과정.

SVM과 LeNet-5 두가지 탐지기/분류기 구성요소가 있다. 우리는 배경 클래스에 대한 이미지 클립의 무작위 컬렉션과 CEW의 조합인 LIBSVM[37]과 Caffe[38]를 사용하여 두 클래스를 개별적으로 학습할 것이다. CEW 데이터 세트는 뜬 눈과 감은 눈의 이미지 클립으로 구성된다. SVM 교육 프로세스에서 사용되는 데이터 세트에서 뜬 눈과 감은 눈의 이미지(총 9692개의 이미지)는 Positivie 클래스를 구성하고 9810개의 배경 이미지는 Negative 클래스를 구성한다. LeNet-5 Classifer 학습에는 뜬 눈, 감은 눈, 배경의 세가지 레이블이 있는 이미지가 사용된다. 4924개의 이미지는 뜬 눈, 4870 이미지는 감긴 눈으로, 4905개의 배경 이미지가 있다. Caffe를 사용하여 LeNet-5를 학습시킬때 우리는 Adam solver, 50000번의 반복, Learning rate 0.001, L2 Regularization을 사용했다.


3.3. ROI 선택.

Image

그림 2에 보여지듯이, 탐지 시스템은 탐지 단계와 추적 단계 두가지 단계로 이루어지며, ROI 선택 매커니즘은 단계에 따라 다르다. 시스템의 초기 상태는 탐지 단계이다. 탐지 단계에서 ROI는 각 비디오 프레임의 전체 영역으로 설정된다. 우리는 240x360의 비디오 입력 해상도를 사용한다. 감지 단계에서 하이브리드 감지 방법을 사용하여 눈이 감지되면 ROI는 눈의 위치를 중심으로 79x106 영역(전체 프레임의 1/9)으로 설정된다. 작은 ROI 영역은 효율적인 탐지를 가능하게 한다. ROI가 설정되면, 추적 단계로 전환된다. 추적 단계에서는 ROI에서만 눈을 검색한다. 눈의 궤적을 놓친 경우, 즉 감지 알고리즘에서 눈을 찾지 못했다면, 방향 센서의 값을 기반으로 한 예측에 따라 눈의 위치를 예측하고 ROI를 재배치한다.


3.4. 회귀 분석을 이용한 눈의 위치 예측.

추적 단계에 ROI에서 눈을 찾지 못하면 눈의 위치를 예측하기 위해 방향 센서에서 판독값을 사용한다.(방향 센서를 내장된 하드웨어 가속도계 및 지자기장 센서의 판독값을 사용하여 장치의 방향을 계산하는 Java 코드의 부분으로 구현된 가상(소프트웨어 기반) 센서라고 부른다.) 그러나 방향 센서의 판독값은 스마트폰에서 스마트폰으로 다양하며 각 사용자마다 다른 폰 사용 습관이 있다. 따라서 우리는 실시간 회귀 분석을 사용하여 방향 센서와 눈 위치에서 입력 값을 상호 연관 시킨다[40]. 눈이 감지되면(어떤 단계에서든), 그 위치는 방향 센서의 판독값과 함께 저장된다. 저장된 데이터는 실시간 회귀 분석에 사용된다. 우리는 눈의 수평(수직) 위치가 방향 센서의 Y축(X축) 값과 관련이 있음을 발견했다. 눈의 위치를 예측하기 위한 회귀 분석을 사용하기 위해 (실시간으로) 저장된 튜플 데이터로부터 선형 회귀 방정식을 유도한 다음 가장 최근의 센서 값을 회귀 방정식에 적용하여 눈의 예상 위치를 알아낸다. 예상되는 눈의 위치를 기반으로 ROI를 재설정한다. ROI를 재설정한 후에는 새로운 ROI에서 눈을 찾아본다. 눈이 발견되면 추적 단계에 남아있고, 감지되지 않는다면 탐지 단계로 다시 전환한다. 즉 입력 비디오 프레임 전체 영역에서 눈을 감지한다.

4. Evaluation

향후 할 계획..

5. Conclusion

본 논문에서는 머신러닝 기술 HOG 기능을 가진 선형 SVM 분류기와 Lenet-5 CNN 모델을 결합한 하이브리드 방식을 제안하여 리소스가 제한된 스마트폰에서 눈 깜빡임 검출을 효율적이고 안정적으로 수행할 수 있도록 했다. 또한 스마트폰의 Eye-tracking 응용 프로그램에서 효과적인 ROI 선택을 위한 회귀 기반 센서 활용 전략을 도입했다. 실험 결과를 통해 우리의 방법이 눈 깜빡임 검출을 기존의 방법보다 효율적이고 효과적으로 수행한다는 것을 볼 수 있었다. 시스템 성능으로 인해 크고 다양한 학습 데이터 셋으로 성능을 향상시키고 알고리즘의 정확성을 검증이 남았는데, 이것은 다른 학습 및 테스트 데이터 셋, 더 높은 처리 속도를 위한 안드로이드 구현의 최적화에 따라 크게 달라질 수 있다.

이 페이지를 번역했습니다

Single Shot Detectors

Faster R-CNN은 전용 Region Proposal 네트워크에 이어 Classifier가 있다.

Region-based Detector는 정확하지만 Cost가 있다.

Faster R-CNN은 PASCAL VOC 2007 테스트 세트를 7 FPS로 처리한다.

R-FCN과 같이 연구자들은 각 ROI의 작업량을 줄여 프로세스를 간소화하고 있다.

feature_maps = process(image)
ROIs = region_proposal(feature_maps)
for ROI in ROIs
    patch = roi_align(feature_maps, ROI)
    results = detector2(patch)    
    # Reduce the amount of work here!

대안으로 우리는 별도의 Region Proposal 단계가 필요한가? Boundary boxes 및 Classes를 Feature Map에서 한번에 직접 추출할 수 있습니까?

feature_maps = process(image)
results = detector3(feature_maps) 
# No more separate step for ROIs

슬라이딩 윈도우 감지기를 다시 살펴보겠습니다.

Feature Map 위로 윈도우를 밀어 물체를 감지할 수 있다.

서로 다른 개체 유형에 대해 서로 다른 윈도우 모양을 사용한다.

이전 슬라이딩 윈도우의 치명적인 오점은 창을 최종 Boundary box로 사용한다는 것이다.

그 부분에서 대부분의 물체를 cover하기 위해 너무 많은 모양이 필요하다.

좀 더 효과적인 해결책은 윈도우를 초기 추측으로 정하는 것이다.

그러면 현재 슬라이딩 윈도우로부터 class와 boundary box를 동시에 예측하는 탐지기를 갖는다.

Image

  • 슬라이딩 윈도우에 상대적인 예측을 한다.

이 개념은 R-CNN의 anchor와 매우 유사하다.

단, Single Shot Detector는 Boundary box와 class를 동시에 예측한다.

간단히 요약해보자. 예를 들어 8x8 Feature Map이 있으며 각 위치에서 K 예측을 한다. 즉 8x8xK 예측을 한다.

Image

각각의 위치마다 K개의 anchors(anchor: 고정된 초기의 추측 boundary box)가 있다. 우리는 anchors를 신중히 결정하고 모든 장소에 같은 anchor 모양들을 사용한다.

Image

  • location마다 4개의 예측을 하기 위해 4개의 anchor를 사용한다.

여기에 각각 하나의 특정한 anchor와 관련된 4개의 예측(파란색)과 4개의 anchor(초록색)가 있다.

Image

  • anchor에 관련된 4개의 예측.

Faster R-CNN에서 우리는 5개의 매개변수를 예측하기 위해 하나의 Convolution filter를 사용한다.(anchor와 관련된 예측된 box에 대한 4개의 매개변수와 objectness confidence에 대한 1개의 매개변수)

따라서 3x3xDx5 Conv fitler는 8x8xD에서 8x8x5까지 Feature map을 변환한다.

Single Shot Detector에서 Conv filter는 분류에 대한 C 클래스의 확률도 예측한다.(클래스당 1개)

따라서 Feature map을 3x3xDx25 Conv filter를 적용하여 C=20일때 8x8xD에서 8x8x25으로 변환한다.

Image

  • 각 위치에서 k개의 예측에 각각 25개의 매개변수가 있다.

Single Shot Detector는 보통 실시간 처리 속도로 정확성을 교환한다.

또한 너무 가깝거나 너무 작은 물체를 감지하는데 문제가 있는 경향이 있다.

아래 그림의 경우 왼쪽 하단에 9개의 산타가 있지만 SSD는 5개만 감지합니다.

Image

SSD

SSD는 VGG19 네트워크를 Feature 추출기로 사용하는 Single Shot Detector이다.(Faster R-CNN의 CNN과 동일)

그런 다음 나중에 사용자 정의 Conv Layer(청색)를 나중에 추가하고 Conv filter(녹색)을 사용하여 예측한다.

Image

  • 분류와 위치 모두에 대한 Single Shot 예측

그러나 Conv Layer는 공간 차원과 해상도를 줄인다.

따라서 위의 모델은 대형 객체만 탐지할 수 있다.

이를 해결하기 위해 우리는 Multiple Feature map에서 독립적인 개체 탐지를 한다.

Image

  • 탐지를 위해 multi-scale Feature map을 사용한다.

다음은 Feature map의 크기를 보여주는 다이어그램이다.

Image

SSD는 개체를 감지하기 위해 Conv 네트워크에 이미 있는 레이어를 사용한다.

다이어그램을 scale에 가깝게 다시 그리면 공간 해상도가 크게 떨어졌고, 저해상도에서 감지하기에는 너무 어려운 작은 물체를 찾는 기회를 놓치고 있다는 것을 알아야 한다.

이런 문제가 있으면 입력 이미지의 해상도를 높여야 한다.

Image

YOLO

YOLO는 DarkNet을 사용하여 Feature 감지를 수행한 다음 Conv Layer를 만든다.

Image

그러나 Multi-scale feature map을 사용하여 독립적으로 탐지하지는 않는다.

대신 부분적으로 평평하게 만들고(flatten) 다른 저해상도 map과 연결한다.

예를 들어 YOLO는 28x28x512 Layer를 14x14x2048로 reshape한다.

그런 다음 14x14x1024 Feature map과 연결된다.

그 후에 YOLO는 새로운 14x14x3072 Layer에 Conv filter를 적용하여 예측한다.

YOLO(v2)는 첫번째 release의 경우 mAP를 63.4에서 78.6까지 구현을 향상시켜줬다.

YOLO9000은 9000개의 다른 범주의 개체를 탐지할 수 있다.

Image

다음은 YOLO 논문에서 보고한 다양한 detector에 대한 mAP와 FPS 비교이다.

YOLOv2는 다른 입력 이미지 해상도를 가질 수 있다.

해상도가 낮은 입력 이미지는 더 높은 FPS를 갖지만 mAP는 더 낮다.

Image

YOLOv3

YOLOv3는 Feature 추출을 위해 더 복잡한 백본으로 변경된다.

Darknet-53은 주로 ResNet의 잔여 네트워크와 같이 건너뛰는 연결을 사용하는 3x31x1 필터로 구성된다.

Darknet-53은 ResNet-152보다 BFLOP(Billion Floating Point OPerations)이 적지만 2배 빠른 속도로 같은 분류 정확도를 갖는다.

Image

YOLOv3는 작은 피사체를 더 잘 감지하기 위해 Feature Pyramid를 추가했다.

서로 다른 감지기에 대한 정확도와 속도간의 tradeoff가 있다.

Image

FPN(Feature Pyramid Networks)

특히 작은 Object에서 다른 scale일때 object를 탐지하는 것이 어렵다.

FPN은 정확성과 속도를 향상시키기 위해 피라미드 개념으로 설계된 Feature 추출기이다.

Faster R-CNN과 같은 감지기의 Feature 추출기를 대체하고 고품질 Feature map pyramid를 생성한다.

Data Flow

Image

FPN은 Bottom-up과 Top-down 경로로 구성된다. Bottom-up은 Feature 추출을 위한 일반적인 Conv Network이다. 올라갈수록 공간 해상도는 떨어진다. 더 높은 수준의 구조가 감지되면 각 계층의 semantic value가 증가한다.

Image

SSD는 여러 Feature map에서 탐지한다.

그러나 Object detection에 대해서는 bottom layers는 선택되지 않는다.

그것들은 해상도가 높지만 속도가 느려지기 때문에 의미적 가치가 높지 않다.

따라서 SSD는 상위 계층만 감지하기 때문에 작은 개체에 대해서는 성능이 훨씬 떨어진다.

Image

FPN은 Semantic rich layer로부터 더 높은 해상도를 생성하는 Top-down 방식을 제공한다.

Image

재구성된 레이어는 큰 의미가 있지만 Object의 위치는 모든 다운샘플링 및 업샘플링 후에 정확하지 않다.

재구성된 레이어와 해당 feature map 사이에 측면 연결을 추가하여 detector가 위치를 더 잘 예측할수 있게 도와준다.

Image

다음은 bottom-up 및 top-down 경로에 대한 세부 다이어그램이다. P2, P3, P4, P5는 물체 감지를 위한 feature map의 피라미드이다.

Image

FPN with RPN

FPN은 자체적으로 Object Detector가 아니다.

+ Recent posts