본문 바로가기
Computer Vision

YOLO v3 (2018) 논문 리뷰

by 아르카눔 2025. 4. 8.

YOLO v3의 논문 이름은 YOLOv3: An Incremental Improvement다. (링크)

 

저자는 Joseph Redmon, Ali Farhadi다. 

 

 

Abstract

YOLOv3는 YOLOv2에서 약간의 모델 디자인 변경으로 성능의 개선을 이루었다.

 

Bounding Box Prediction

 

YOLOv2와 같은 방식으로 Bbox들을 예측한다.

 

Class Prediction

Softmax를 사용하는 대신에 각 class 별로 독립적인 logstic classifier를 두어서 분류를 수행한다.

그리고 loss로는 SSE가 아닌 binary cross-entropy를 사용한다.

 

개별적인 로지스틱 분류기를 사용하는 이유는 multilabel classification에 있어서 좋은 성능을 내기 위함이라고 한다.

이 블로그 (링크)에 보면 그 이유가 자세하게 나와있다.

 

Bbox가 서로 겹치거나 사람이 강아지가 그려진 옷을 입고 있을 때 강아지를 검출하는 박스가 사람을 검출하는 박스의 안에 들어가는 경우 softmax로만 예측하면 성능이 떨어지게 된다. 하지만 로지스틱으로 개별적으로 라벨을 예측하게 되면 이런 문제가 없다. 

 

 

 

Predictions Across Scales

YOLO v3는 3가지 다른 스케일의 박스를 예측한다.

이는 Pyramid networks와 유사하다.

 

COCO 데이터에 대해서 최종 레이어 단계에서 스케일 별로 3개의 박스를 예측하는데 이는 텐서로 표현하면 다음과 같다.

 

N x N x [3 * (4 + 1 + 80)] 

 

이는 4개의 bbox offesets와 1개의 objectness 예측, 그리고 80개의 class predictions이다.

 

다음으로는 2개의 이전 레이어에서 feature map을 선택한 다음 2배로 upsample을 수행한다.

 

이 방법을 통해 뒷단계에서의 유의미한 semantic information과 더 이전 단계에서의 finer-grained information을 함께 활용할 수 있다.

 

여기에다가 몇개의 컨볼루션 레이어를 추가해서 이러한 혼합된 피쳐 맵을 처리한다.

 

같은 디자인의 작업을 박스를 예측하기 위해서 한 번 더 수행한다. 그래서 최종적으로 3개의 스케일을 가지게 된다.

 

YOLO v3에서도 k-mean 클러스터링을 수행해서 box의 priors를 결정한다.

9개의 클러스터와 3개의 스케일을 랜덤하게 선택한 다음 클러스터별로 균등하게 분배한다.

 

COCO에 대한 9개의 클러스터는 다음과 같다.

(10 × 13), (16 × 30), (33 × 23), (30 × 61), (62 × 45), (59 × 119), (116 × 90), (156 × 198), (373 × 326).

 

Feature Extractor

 

YOLO v2는 Darknet-19를 사용했지만 v3에서는 연속적인 3 x 3와 1 x 1 컨볼루션을 사용한다.

또한 shortcut connections도 사용해서 총 53개의 컨볼루션 레이어를 갖게 되어

Table 1에 나온 구조를 갖게 된다.

 

 

Darknet-53을 Darknet-19와 RestNet 2가지랑 비교한 결과가 Table 2에 나와있다.

 

 

 

Darknet-53이 Darknet-19 보다 성능이 좋다는걸 알 수 있다.

 

 

 

Table 3에서는 two-stage와 one-stage object detection 지표를 비교한다. 

YOLO v3의 성능이 YOLO v2에 비해서는 좋지만 RetinaNet 등에 비교하면 부족함을 알 수 있다.

 

특이한 점은 RetinaNet의 Focal loss를 사용했음에로 mAP가 오히려 2 포인트 하락했다는 대목이다.

 

 

 

YOLO v3의 경우 추론 시간에서 다른 알고리즘들 보다 굉장히 유리함을 알 수 있다.

 

 

 

 

 

References:

https://velog.io/@tbvjvsladla/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EA%B3%A0%EA%B8%89%EC%8B%9C%EA%B0%81-%EA%B0%95%EC%9D%98-%EC%98%88%EC%8A%B5-22.-1-Yolo-v3-%EA%B3%BC-v2-v1-%EC%9E%91%EC%84%B1%EC%A4%91