ML study > Object Detection > One stage detection

YOLOv3

  • YOLOv3에서는 YOLOv2 보다 YOLOv2보다 network는 deep해졌지만 mAP 성능을 개선시켰다.

1. YOLOv3 동작

1.1 Bounding Box Prediction

Source

  • BBox prediction 부분은 위 그림과 같이 YOLOv2와 거의 동일하다. center 범위에 제약을 준 상태에서 regression 하게 하였으며 ground truth 하나에 가장 높은 IoU를 가지는 box 하나만 mapping 시켜 training 하였다.

1.2 Class Prediction

  • YOLOv3에서는 class prediction시 softmax함수를 사용하지 않고 각각의 class에 대해서 sigmoid를 적용시켜 training 하였으며 이렇게 하면 Open Images Dataset과 같이 하나의 object에 대해 여러개의 label 이 붙는 경우 (Woman and Person) 더 유용하게 사용될 수 있다.

1.3 Predictions Across Scales

  • YOLOv3는 이전 방식과 다르게 3가지 scale에 대해서 prediction을 진행하며 FPN (feature pyramid networks) 과 비슷한 concept을 적용하였다.

Source

  • COCO dataset에서 각 scale의 cell 마다 3개의 box를 예측하였으며 tensor 크기는 N x N [3 * (4+1+80)] 이 된다.

Source

  • 이렇게 나온 scale feature map을 2배로 upsampling 하고 이전 layer와 concat한 뒤 동일한 예측을 수행하게 하였다.

  • 똑같은 과정을 한 번 더 걸쳐 3개의 scale에 대해 prediction이 일어나게 하였으며 하나의 layer에서 prediction한 SSD 보다 조금 더 높은 성능을 얻을 수 있을 것으로 보인다.

  • YOLOv2에서와 마찬가지로 anchor box size를 구할 때 k-means clustering을 통해 결정하였다.

1.4 Feature Extractor

Source

  • Feature extractor로는 YOLOv2 에서 사용한 Darknet-19 를 조금 더 deep하게 만든 Darknet-53 을 사용하였다. 기존 model들과 비교해서 가장 높은 floating point opreations per second (BFLOP/s) 를 기록하였으며 accuracy는 ResNet과 비슷한 수준을 유지하면서 FPS 는 2배 높은 속도를 얻었다.

2. YOLOv3 결과

MS COCO dataset에서 실험결과 YOLOv3는 SSD, DSSD와 비슷한 mAP를 얻었고 RetinaNet 보다는 다소 낮지만 inference time 측면에서는 RetinaNet, SSD 방식 보다 훨씬 빠른 결과를 얻었다.

Source

Source

  • 추가로 저자는 MS COCO에서 AP 측정이 IoU threshold level을 0.5 ~ 0.95 까지 다양하게 측정한 것을 평균내어 사용하는데 실제 사람이 IoU threshold 에 따른 차이를 별로 인지하지 못하기 때문에 0.5에 대해서만 결과값을 보는 것이 더 의미있을 수 있다고 말한다.

  • 또한 기존 mAP 측정 방식 자체에 대해서도 극단적인 경우, 아래 그림과 같이 detector1 과 detector2 를 보았을 때 detector 1이 훨씬 잘예측한 결과라고 할 수 있지만 현재 계산에 따르면 recall이 100일 때 precision이 100이면 mAP역시 100이 되므로 아래 두 결과모두 mAP 100이라는 결과를 얻게 된다. 따라서 성능을 판가름하는 mAP 역시 개선의 여지가 있다고 주장하고 있다.

Source

Reference

[1]: YOLOv3

[2]: YOLOv3 설명 블로그

[3]: YOLOv3 설명 블로그2



댓글남기기