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

2022. 3. 31. 16:47

You Only Look Once

Unified, Real-Time Object Dectection


Object detection = object * (localization + classification)

YOLO는 이미지 내 bounding box와 class probability를 하나의 regression방법으로 해석하여 해결한다.

즉, 이미지를 한 번 보는 것만으로 이미지 내에 위치한 객체의 종류와 위치 정보를 추측할 수 있는 모델!

YOLOv1 preview

Pros

  • 간단한 처리과정으로 인해 빠른 속도 + 기존 Real-Time Dectection 시스템들과 비교해 2배 가량 높은 mAP
  • 이미지 전체를 한 번에 바라보기 때문에 Class에 대한 맥락 이해가 높고, 이 덕분에 Background error가 낮음
  • 이미지 전체를 보며 객체의 일반화된 특징을 학습 (ex. 사진 속 의자의 모습을 학습한 후, 정물화 속 의자 추측 가능)

Cons

  • 다른 객체 인식 모델에 비해 상대적으로 낮은 정확도, 특히 크기가 작은 객체 검출 시

 

Unified Detection

  1. Input Image를 SxS개의 Grid로 나눔 (in the paper, S=7)
  2. 각각의 Grid cell은 B개의 Bounding box와 각 bounding box에 대한 confidence score를 가짐 (Confidence Score: $Pr(object)$*$IOU_{truthpred}$) (in the paper, B=2)
  3. 각각의 Grid cell은 C개의 Conditional Class Probability를 가짐 (Conditional Class Probaility: $Pr(Class_i|Object)$) (in the paper, C=20)
  4. 각각의 Bounding box는 (x, y), (w, h) 그리고 confidence를 지님
    • x, y = (bbox의 중심 x, y - grid cell의 좌상단 x, y) / grid cell의 좌상단 x, y
    • → bbox의 좌상단을 0,0으로 맞추고 normalize한 것
    • w, h = bbox의 w, h / 전체 이미지의 w, h
    • → 전체 이미지에 대한 bbox의 비율(상대 값)

 

용어 정리

  • Confidence Score: bbox에 Object가 있을 확률* IOU
  • Conditional Class Probability: 각 grid cell이 어떤 class의 속할 확률이 놆은지
  • Class-Specific Confidence Score: Object가 있고 어떤 class에 속할 확률이 높은지

 

Network

  • YOLO는 GoogLeNet을 기반으로 함
  • 24개의 Conv-layer + 2개의 fc-layer를 사용

  • Pretrain Network: pretrained GoogLeNet을 사용
  • Train Network: 4개의 Conv-layer, 2개의 fc-layer를 사용

 

Inference Process

  • output의 1x1xdepth는 처음 이미지를 SxS로 나눈 grid cell 한 개의 의미를 가진다.
  • 이때 depth에서는 bbox*(x, y, w, h, c) + class의 수 만큼의 길이를 갖는다.

 

  • output을 prediction으로 변환하기위해 각 grid cell마다 confidence score값과 class probability를 곱하여 Class specific confidence score를 구한다.

 

  • 논문에서는 B=2, S=7을 사용했기 때문에 7x7x2=98개의 Class specific confidence score값이 나오게 된다.
  • 이 98개의 Class specific confidence score값들에 대해서 NMS를 수행하여 탐지된 object의 prediction 결과를 얻는다.

 

Training Process

  1. Grid cell의 여러 bbox들중, Ground-truth box와의 IOU가 가장 높은 bbox를 predictior로 결정(in the paper, 각 grid cell마다 2개의 bbox가 존재하고 그 중 Ground-thruth box와 IOU가 가장 높은 bbox를 선택)
  2. 3개의 Loss function사용
    • Obejct가 존재하는 grid cell i의 predictor bbox j
    • Obejct가 존재하지 않는 grid cell i의 bbox j
    • Object가 존재하는 grid cell i

 

Loss function

  1. Object가 존재하는 grid cell i의 predictor bbox j에 대해, x와 y의 loss를 계산 (x, y loss)
  2. Object가 존재하는 grid cell i의 predictor bbox j에 대해, w와 h의 loss를 계산 (큰 box에 대해서는 small deviation을 반영하기 위해 제곱근을 취한 후 sum-squared error를 사용, 같은 error라도 large box의 경우 상대적으로 IOU에 영향을 적게 줌) (w, h loss)

→ bbox가 크면 클수록 loss가 더 크게 발생함, 따라서 다른 loss들에 비해 큰 영향을 주는 것을 방지, 즉 단순 scaling과정

  1. Object가 존재하는 grid cell i의 predictor bbox j에 대해, confidence score의 loss를 계산 ($C_i$=1) (confidence loss)
  2. Object가 존재하지 않는 grid cell i의 bbox j에 대해, confidence score의 loss를 계산 ($C_i$=0) (confidence loss)

→ confidence loss를 2개로 나눠서 구하는 이유는 object가 존재하는 bbox의 loss와 존재하지 않는 bbox의 loss를 둘다 구해 object가 존재하지 않을 때는 얼마만큼의 loss차이가 나는지 알기 위해서

  1. Object가 존재하는 grid cell i에 대해, conditional class probability의 loss를 계산 (class probablity loss)

→ 과정들을 보면 단순히 위에서 구한 각 grid cell의 한 부분에 대해서 각각 loss를 계산한 것

 

Balancing parameter

  • $\lambda_{coord}$: coordinates(x, y, w, h)에 대한 loss와 다른 loss들과의 균형을 위한 balancing parameter
  • $\lambda_{noobj}$: object가 있느 box와 없는 box간의 균형을 위한 balancing parameter. (일반적으로 image내에는 object가 있는 cell보다는 object가 없는 cell이 훨씬 많으므로)

 

Limitation of YOLOv1

  1. 각각의 Grid cell이 하나의 Class만을 예측할 수 있으므로, 작은 객체 여러개가 존재하는 이미지에 대해서는 학습이 어려움
  2. Bounding box의 형태가 학습 데이터를 통해서만 학습되기 때문에, 새로운 input으로 이전에 학습되지 않은 형태의 Bouncing box를 예측해야 할 경우, 제대로 된 예측을 할 수 없음
  3. 몇 단계의 Convolution Layer를 거쳐 나온 Feature map을 대상으로 Bounding box를 예측하기 때문에 객체의 위치를 정확히 파악하는 Localization이 다소 부정확해 지는 경우가 발생

 

Experiments

  • 다른 Real-Time Detection 시스템들보다 월등히 높은 mAP를 기록함
  • Fast R-CNN과 비교해보았을 때, 훨씬 낮은 Background error를 보이며, 이는 이미지 전체를 보고 학습하기 때문에 배경에 대한 학습이 잘 되었다는 반증이되기도 함

 

  • 일반 이미지들로 Pre-train 후, 예술 작품에서 Object를 검출한 결과, 다른 모델들보다 훨씬 더 좋은 성능을 보였고, 이는 일반화가 아주 잘 되고 있다는 결과를 보여준다.

 

Conclusion

  • YOLO모델은 간단하게 구현이 가능하며, 전체 이미지를 바로 학습시킬 수 있음
  • Classified-based 접근 방식과는 다르게 Detection 성능과 직접적인 관계를 맺고 있는 loss function을 통해 학습
  • YOLO는 Real-Time Object Detection의 성능 지표를 올렸으며, 일반화가 잘 되기 때문에 새로운 도메인에도 쉽게 적용 가능한 모델이다.

Reference

youtube

blog

'Paper-Review > object detection' 카테고리의 다른 글

YOLO9000: Bettter, Faster, Stronger review  (0) 2022.04.06

BELATED ARTICLES

more