Joseph Redmon -University of Washington
Santosh Divvala - University of Washington, Allen Institute for AIy
Ross Girshick - Facebook AI Research
Ali Farhadi - University of Washington, Allen Institute for AIy
Arxiv
https://arxiv.org/abs/1506.02640
속도를 높이는 것이 목적 YOLO v1
단일 네트워크로 한 번에 처리하는 것이 목적
기존 R-CNN 기준에서 ROI를 통해 무작위 bounding box를 생성한 후 후처리를 진행하지만 YOLO에서는 한 번에 처리 가능하도록 구성함.
DPM이나 R-CNN은 localization과 detection을 따로 학습시키지만 YOLO에서는 한번의 regression으로 학습.
VOC 7x7 grid / B=2 / C= 20
Class probability map을 통한 해당 구역의 class 확률을 정의
각 grid cell은 하나의 class를 가진다고 가정
기본 모델은 GoogLeNet (Inception v1) 바탕
Pretrain된 extracter를 기반으로 obejct classifierㄹ ㅗ활용
input size는 2배 448x448
마지막 모듈의 dimension (depth)은 30. (7x7x30)
5(bounding box 1) + 5(bounding box 2) + 20(20개의 클래스 확률)
2개의 bounding box 중 더 좋은 것을 선정
bounding box가 위치한 곳
w,h는 0~1 값
위 이미지에서 w= 3/7, h=4/7
Loss Function
MSE보다 SSE를 활용
learning rate를 작게 했다 크게 작게 크게 사용
NMS : 5(bounding box N th) 중 마지막에 위치한 1(bounding box confidence)과 20(20개의 클래스 확률)을 곱하여 해당 bounding box에 대한 class score를 구한다.
7x7 gird에 대해 위 class score를 모두 진행하면 7*7*2(bounding box 개수) = 98
confidence score가 threshold보다 작으면 0으로 만들고 sort.
특정 클래스에 대해 가장 높은 확률을 가지는 bounding box를 기준으로 옆의 bbox를 살핌.
만약 bbox의 IoU가 0.5보다 크면 작은 부분을 0으로 만듬. 이 과정을 모든 bbox에 대해 수행.
모든 클래스에 대해 이 과정을 수행하고 bbox를 그릴지 말지를 결정하는 과정을 가지게 됨.
bounding box가 grid에 의존하기 때문에 grid보다 작은 사이즈에서는 인식불가.
background error 개선
당시의 Leader board에서도 상당한 수준
다른 Data에서도 일반화가 잘 작동함을 보여줌.
https://pjreddie.com/darknet/yolo/