공부 기록장
YOLO(You Only Look Once)v3 : An Incremental Improvement 본문
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을 통해 학습시킨다.