공부 기록장

YOLO(You Only Look Once)v3 : An Incremental Improvement 본문

스터디/인공지능

YOLO(You Only Look Once)v3 : An Incremental Improvement

빛나무 2021. 6. 23. 14:30

IoU (Intersection Of Union) -> (Area of Overlap) / (Area of Union)

mAP(Mean Average Precision) -> 정확성

FPS(Frame Per Seconds) -> 속도

 


YOLO 이전의 RCNN 계열의 모델들은 일정 수준의 정확성은 있으나, 실제 적용하기에 신속성이 떨어지는 문제가 있었다.

YOLO v2에 비해서 v3가 네트워크가 커짐으로 인해 빨라진 건 아니지만, 성능은 더 좋아졌다고 한다.

 

YOLO의 핵심 내용

1) Bounding box prediction

YOLOv3는 logistic regression를 이용해 각각의 예측된 bbox마다 objectness에 대한 점수를 구한다. 

만약 예측된 어떤 bbox가 다른 bbox들보다 IoU가 높다면 그 값은 1이 되어야 한다.

YOLOv3는 IoU threshold 값은 0.5를 사용하고, faster R-CNN과는 다르게 하나의 box에 하나의 GTbox를 할당한다.

 

2) Class Prediction

각각의 bbox는 multi-label classification을 수행한다. Softmax 함수를 사용해 클래스를 예측할 경우 성능 면에서 좋지 않기 때문에 binary cross-entropy를 사용한다. 이러한 방식은 데이터셋이 복잡할 때에 유의미한 결과를 보여준다고 한다.

 

3) Prediction across scales

scale이 2배씩 차이나는 3개의 scale을 사용해 최종 결과를 예측한다. 각 scale에 대해 3개의 박스를 생성한다. 

()

 

4) Feature Extractor

YOLOv3는 backbone network로 shorcut connection이 추가되어 53개의 layer를 가지는 Darknet-53을 사용한다. YOLOv2에서 사용했던 Darknet19, 그리고 ResNet-101과 ResNet-152보다 정확도가 높고, FPS도 합리적이다.

 

YOLO training

1) feature map by Darknet-53

- input : 416x416 사이즈의 이미지

- process : feature maps 추출

- output : 52x52, 26x26, 13x13 사이즈의 feature map

 

2) Building feature pyramid by FCN

앞서 얻은 서로 다른 scale의 feature map을 1x1, 3x3 conv으로 구성된 FCN에 입력해 feature pyramid를 설계한다. 위에서 언급된 순서대로 진행.

- input : 52x52, 26x26, 13x13 사이즈의 feature map

- process : building feature pyramid by FCN

- output : 52x52(x255), 26x26(x255), 13x13(x255) 사이즈의 feature map

 

3) Training YOLOv3  by loss function

앞 단계에서 얻은 multi-scale feature map을 loss function을 통해 학습시킨다.