publication 탭에서 리뷰를 살펴보니, NIPS 2015에 제출된(아마도 rejected) 논문인 듯 하다.
Darknet이라는 묘한 C++기반의 deep learning framework를 사용한다.

논문의 요지--
기존의 deep learning을 사용하는 object detection 방법들(R-CNN 등)은 기존의 object proposal 방법들(EdgeBoxes와 같은)을 사용하여 물체일 가능성이 높은 patch들을 가지고, deep network에 input으로 사용하여 object classification task로 문제를 풀었다.
이러한 방법은 object proposal의 높은 recall 성능과 DNN의 높은 classification 성능과 맞물려서 전체적으로 outperforming하는 결과를 낸다.
물론 object proposal 방식의 속도가 빠르고 (edgeboxes: < 1 sec),  DNN의 feedforward 과정 또한 꽤 빠르다고는 하나, 
object proposal을 생성하는 과정과 후보 image patch들을 여러번 deep network에 돌려야 하는 과정은 꽤나 redundant해 보인다.

제안하는 논문은, input image를 CNN 모델에 한번 feed forward 과정을 거치는 통합된 object detection알고리즘을 제안한다.
Main contribuion: 
     1) 간단한 framework으로 한번에 이미지 전체에 해당하는 detection을 매우 빠르게 수행. (real-time)
     2) Global reasoning: 각각 patch들의 classification결과로서의 detection이 아닌, 전체 이미지를 고려한(global view) 탐지 결과를 얻을 수 있다.
실험 결과로는, PASCAL VOC 데이터셋에서는 DPM보다는 높은 성능, R-CNN 보다는 낮은 성능을 보인다.
이러한 단점을 보완?하기 위해 그림이나, natural 이미지들의 데이터셋에서의 탐지 결과를 보여주는데, 이러한 natural dataset에서 성능이 더 좋은 이유를 YOLO의 global reasoning을 그 이유로 들고 있다.  


논문 내용 --


입력 이미지를 제안하는 CNN 모델에 통과시킨 후 output으로 (S * S) grid의 결과값을 얻는다. (S=7)
각 grid는 
1) C(=20)개의 class에 대한 label과
2) 이 grid가 가르기는 object의 confidence와
2) B(=2)개의 bounding box를 predict한다.
즉, 이미지당 output으로 7*7*(20+(4+1)*2)짜리 tensor를 얻게 된다.

CNN 모델은 GoogLeNet을 변형시켜, 24 conv. layer + 2 fully connected layer로 구성된다.

논문에서 정의하고 있는 Loss function은 다음과 같다.

논문에는 loss function에 대해 설명이 자세히 안되어 있고 notation에 대한 설명 또한 없어서 대략 추측해본 바는 다음과 같다.

첫 번째 term 은 predicted box 와 ground truth의 center 거리, 즉, bounding box location error.
두 번째는, predicted box 와 ground truth box의 aspect ratio error.
세 번째와 네 번째는 grid의 detection의 confidence에 따른 loss term인 듯 하다. 각각 ground truth object가 있을 경우 (C=1), 없을 경우 (C=0)로 나누어서 다른 weight를 적용하는 식으로 보인다.
마지막 term은 grid에서 predicted ‘class label’에 따른 probability에 의한 error term이다.  YOLO는 각 grid에서 물체가 탐지되었다고 할 때의 20개의 class에 대한 확률 값을 prediction한다. 이 값을 ground truth (true class=1, else =0) 와 비교하여 error를 계산한다.






Posted by 헬벨