관리 메뉴

ComputerVision Jack

You Only Look Once: Unified, Real-Time Object Detection 본문

Reading Paper/Object Detection

You Only Look Once: Unified, Real-Time Object Detection

JackYoon 2022. 3. 30. 10:27
반응형

You Only Look Once: Unified, Real-Time Object Detection

Abstract

  • YOLO 새로운 object detection 방법을 제시한다. 이전 방법들은 classifier 재구성하여 detection 수행한다. 하지만 저자는 object detection 대해 공간적으로 분리된 bounding boxclass probabilities 예측하는 Regression 문제로 바라본다.
  • single neural network는 bounding box와 class probabilities 전체 이미지에 대해 직접적으로 한번에 평가한다. detection pipeline이 single network 구성되어 있기 때문에 end-to-end 방식으로 최적화 될 수 있다.
  • 통합된 구조는 매우 빠르다. YOLO 경우 많은 localization error가 발생하지만 background error(false positive) 강인하다. YOLO는 object의 대표되는 특징을 학습한다.

Figure 1

  • R-CNN과 같은 최근 연구는 region proposal methods 사용하여 image에서 잠재적 bounding box 발생 시킨다. 그리고 제안한 box에 대해 classifier 작동한다.
  • classification 끝나면, post-processing 사용하여 bounding box 재 정의 하고, 다른 객체에 대해 박스에 대한 평가를 진행한다. 이러한 복잡한 pipelines은 각각의 구성 요소가 분리되어 학습되기 때문에 느리고 최적화 하기 힘들다.
  • YOLO 사용하면 image에서 객체를 찾고 위치까지 찾는다. Figure 1 참고하면 single convolutional network는 다중 bounding box 예측하고 이 box에 대해 class probabilities까지 예측한다. YOLO는 전체 image 학습하기 때문에 detection 성능이 직접적으로 최적화 된다.
  • YOLO 매우 빠르다. 왜냐하면 regression problem에 대해 복잡한 pipeline 필요 없기 때문이다. 게다가 다른 real-time 시스템 보다 2배 더 많은 mean average precision (mAP) 갖는다.
  • YOLO는 predict 진행할 때, image 전체적인 부분을 합리화 한다. Fast R-CNN 경우 큰 맥락을 보지 못하기 때문에 이미지 안에서 객체를 background 부터 분리 시키지 못한다. YOLO는 이와 비교해서 적은 background error 만든다.
  • YOLO는 객체의 특징을 일반화 하여 학습한다. 따라서 예상하지 못한 input이나 domain에 대해 적용 시킬 때 망가지는 경우가 적다.
  • YOLO는 여전히 정확도 측면에서 state-of-the-art detection 시스템이다. image에서 객체를 빠르게 탐지하는 반면 특히 작은 몇몇 객체의 위치 정보를 얻기는 살짝 힘들다.

Unified Detection

Figure 2

  • Network는 각각의 bounding box 예측하기 위해 전체의 이미지에서 얻은 feature 사용한다. 또한 모든 class에 대해 동시에 모든 bounding box 예측한다.
  • 해당 시스템은 input image 대해 S x S grid 나눈다. 객체의 중심은 grid cell에 위치하고, grid cell은 object 검출을 책임진다.
  • 각 grid cell은 B개의 bounding box 예측하고 해당 box의 confidence score 또한 예측한다. 이러한 confidence score는 box가 객체를 포함한 정도를 반영하고 box가 얼마나 잘 예측 했는지 정확도도 반영한다.
  • $Pr(Object) * IOU^{truth-pred}$ 식으로 confidence score 정의한다. 그리고 이 값이 예측된 box와 ground truth 간의 intersection over union (IOU)와 같아 지길 원한다.
  • 각 bounding box는 5개의 prediction 제공한다. [x, y, w, h, confidence]
  • 각 grid cell은 C class의 probability 예측한다. 이는 grid cell이 객체를 포함하는 것을 나타낸다. 따라서 grid cell에 대해 하나의 class set만 예측한다. box의 개수와는 상관이 없다.

$Pr(Class_i | Object) * Pr(Object) * IOU = Pr(Class_i) * IOU$

Network Design

Figure 3

  • network의 초기 convolution layer는 image에서 feature 추출하는 역할을 한다. 반면 fully connected layer는 output probability와 coordinate 예측한다.
  • network 구조는 image classfication에서 사용했던 GoogLeNet에서 영감을 받았다. 24개의 convolutional layer와 2개의 fully connected layer 구성되어 있다.
  • Fast YOLO의 경우 9개의 convolutional layer와 2개의 fully connected layer 구성된다.
  • 최종 output은 7 x 7 x 30 tensor 예측된다.

Training

  • classfication 모델을 pretrain 하고 detection 수행에 맞게 모델을 변화하였다. 이 과정에서 4개의 convolution layer와 2개의 fully connected layer 추가하고 무작위로 weights 초기화 하였다.
  • detection 종종 잘 정제된 이미지 정보를 원하기 때문에 resolution 448 x 448 변경하여 진행하였다.
  • 마지막 layer는 class probability와 bounding box coordinate 예측한다. 여기서 해당 bounding box 정보를 normalize 하여 0~1 사이의 값으로 나오도록 했다.
  • 활성화 함수로 leaky rectified linear activation(leaky-relu) 사용하였다.
  • output에 대해 sum-squared error 사용하였는데 이 error가 쉽게 최적화 되기 때문이다. 하지만 저자들이 원하는 정확도를 달성하기엔 완벽하진 않다.
  • bounding box가 잘 예측한 경우 loss 증가 시키고 객체를 포함하지 않은 경우 loss 감소 시켰다. 이를 2개의 parameter 통해 관리하는데 $λ{coord} = 5$ 이고 $λ{noobj} = 0.5$ 이다.
  • 또한 큰 box와 작은 box의 error 동등하게 할 경우 오류가 적용되지 않기 때문에 width와 height에 대해 루트를 적용 시킨다.

YOLOv1 Loss Function

  • loss function 경우 객체가 있는 경우에만 classification error 처리한다. 또한 ground thruth box 책임지는 경우 bounding box coordinate error만 처리한다.

Inference

  • YOLO는 단일 network 평가만 진행하기 때문에 classifier-based 방식보다 test 시간이 빠르다.
  • grid 설계는 bounding box 예측할 경우 공간적 다양성을 보강한다. 어떤 grid cell에 객체가 있는지 분명하기 때문에 각 객체에 대해서 하나의 box 예측한다.
  • 그러나 큰 객체나 다중 cell의 경계에 위치한 객체에 대해선 다중 객체가 담당한다.

Limitation of YOLO

  • YOLO는 강한 공간적 제약이 bounding box 예측할 때 동반된다. 왜냐하면 각 grid cell이 한 객체에 대해서 2개의 box만 예측하기 때문이다.

Conclusion

  • YOLO 소개한다. 이는 통합된 object detection 모델이다. 해당 모델은 간단하게 설계가 가능하며 전체 이미지를 직접적으로 학습할 수 있다.
  • classifier-based 접근과 다르게 YOLO는 detection 성능과 상응하는 loss function 학습하고 전체 모델은 자연스럽게 학습된다.

Figure 6

반응형
Comments