관리 메뉴

ComputerVision Jack

YOLOv3: An Incremental Improvement 본문

Reading Paper/Object Detection

YOLOv3: An Incremental Improvement

JackYoon 2022. 4. 14. 10:38
반응형

YOLOv3: An Incremental Improvement

Abstract

  • YOLO에 대해 더 좋은 성능을 할 수 있게 설계를 약간 변경하여 단단하게 만들었다. 또한 이 새로운 network 훈련 시켰다. 지난 YOLO 보다 약간 커졌지만 더 정확해졌다.
  • YOLOv3 여전히 빠르다. 320 x 320 resolution에서 22 ms 나온다. SSD 만큼 정확하면서 3배 빠르다.

YOLO: Real-Time Object Detection

 

YOLO: Real-Time Object Detection

YOLO: Real-Time Object Detection You only look once (YOLO) is a state-of-the-art, real-time object detection system. On a Pascal Titan X it processes images at 30 FPS and has a mAP of 57.9% on COCO test-dev. Comparison to Other Detectors YOLOv3 is extremel

pjreddie.com

Introduction

  • YOLO의 성능 향상을 위해 준비하였다. 그러나 정직하게 엄청나게 뭔가 변화한 것은 아니다. 단지 약간의 변화를 통해 성능을 높였다.

The Deal

Figure 1

Bounding Box Prediction

  • YOLO 9000과 마찬가지로 해당 시스템은 anchor boxesdimension cluster 사용하여 bounding boxes 예측한다. 만약 cell이 image(cx, cy)의 왼쪽 상단에서 offset 갖거나 이전 bounding box가 pw, ph width와 height 갖는다면 prediction은 아래와 같다.$b_y = σ(t_y) + c_y$$b_h = p_h{e^{t_h}}$
  • $b_w = p_w{e^{t_w}}$
  • $b_x = σ(t_x) + c_x$
  • 학습 기간엔 squared error loss 사용한다. YOLOv3 경우 logistic regression 사용하여 각 bounding box의 objectness score 예측한다. 만약 이전의 bounding box가 최적이 아니라 overlap 관점에서 threshold 보다 높다면 해당 prediction 무시한다. 해당 threshold = 0.5
  • 시스템은 ground truth 객체에 대해서 하나의 bounding box만 배정한다. 만약 bounding box가 ground truth에 대해 할당되지 않으면 coordinateclass prediction에선 loss 발생 시키지 않고 objectness만 관여한다.

Class Prediction

  • 저자는 softmax 사용하지 않는다. 이는 좋은 성능에 반드시 필요하진 않기 때문이다. 대신 간단하게 독립적인 logistic classifiers 사용한다. 따라서 학습 과정에서 class prediction에 대해 binary cross-entropy loss 사용한다.
  • softmax 사용하는 것은 각 박스가 하나의 class 갖는다는 가정을 하기 때문에 취지에 맞지 않다. multi-label 접근은 데이터에 대해 모델을 더 좋게 만든다.

Predictions Across Scales

  • YOLOv3는 3개의 크기에 대해서 box 예측한다. 이 시스템은 feature pyramids network 개념을 토대로 feature 추출한다. 3개의 box 지칭하는 tensor는 N x N x [3 x(4 + 1 + class)]의 shape 갖고 4개의 box 정보, 1개의 objectness, class 개수 만큼을 나타낸다.
  • 다음 2개의 이전 layer에 upsample=2x 적용하여 feature map 얻는다. 이후 이 다음 feature map에 concatenation 하여 사용한다. 이러한 방법은 upsample feature에 대해 더 의미 있는 feature map 얻게 하고 잘 정제된 feature map 사용할 수 있게 한다.
  • 여전히 k-means cluster 방식을 사용한다. 3개의 크기에 대해 9개의 cluster 정렬하여 진행한다.

Feature Extractor

Darknet53 backbone

  • feature 추출을 위한 새로운 network 사용한다. 새로운 network는 기존 YOLO(YOLO 9000, Darknet-19)와 ResNet에서 사용된 shortcut connection 기반으로 하는 hybrid 접근이다.

backbone test

Training

  • 여전히 hard negative mining 없는 전체의 이미지를 사용하여 학습을 진행한다.

How we do

result

  • YOLOv3는 객체에 대한 box 감소 시키는데 뛰어난 detector이다. 그러나 IOU가 증가하면 정확히 객체에 box 연결하는 부분에 있어서 성능이 조금 떨어진다.
  • 과거의 YOLOv3는 small object에 대해 투쟁해왔다. 그러나 multi-scale predictor 사용하면서 상대적으로 YOLOv3가 높은 APs 수행을 보이는 것을 확인했다.

Things We Tried That Didn't Work

Anchor box x, y offset predictions.

  • 일반적인 anchor box 사용하여 x, y offset 예측하는 방식을 linear function 기반으로 진행한다. 하지만 이는 모델 안정성을 감소 시키고 효과가 없다.

Linear x, y predictions instead of logistic.

  • logistic activation 대신 linear activation 직접적으로 x, y offset 예측하려고 했다. 왜냐하면 mAP 2배 감소 시키기 때문이다.

Focal loss.

  • Focal loss 사용하면 mAP가 2 point 낮아진다. YOLOv3는 focal loss가 등장한 배경 문제에 강인하기 때문이다. object ness predictionsconditional class predictions 독립하여 진행하는 것이 그 이유다.

Dual IOU thresholds and truth assignment.

  • Faster R-CNN과 같이 두 개의 IOU 사용하는 방법으로 접근 했지만 좋은 결과를 얻지 못했다.

What This All Means

figure 3

  • YOLOv3 매우 좋은 detector 이다. 빠르고 정확하다.
  • 많은 사람들이 이러한 vision 기술을 전쟁에 사용하고 사람을 죽인다. 하지만 저자는 vision 기술을 행복하고 좋은 일에 사용하길 희망한다. (얼룩말 숫자 세고, 집 고양이 추적하고)
반응형
Comments