YOLO는 객체 검출의 개별 요소를 단일 신경망(single neural network)로 통합한 모델이다
입력 이미지를 S x S grid로 나눈다
만약 어떤 객체의 중심이 특정 grid cell 안에 위치한다면 해당 grid cell이 객체를 검출해야한다
각 grid cell은 B개의 bounding box와 그에 대한 confidence score를 예측한다
confidence score : 객체를 포함하고 있다고 확신하는 정도와
예측한 bounding box가 얼마나 정확한지
IOU
mAP@0.5 = 정답과 예측의 IOU가 50%이상일 때 정답으로 판정하겠다는 의미
Pr(object) = 0 : grid cell에 아무 객체가 없다, 어떤 객체가 확실히 있다고 예측했을 때 = 1
각각의 bounding box는 5개의 예측치로 구성된다
각각의 grid cell은 conditional class probabilities(C) 를 예측한다
테스트 단계에서는 grid cell의 C와 개별 bounding box에 confidence값을 곱한 class-specific confidence socre를 사용한다
논문에서 최종 예측 텐서의 차원은 (S x S x (B5 + C)) = 7 7 * 20
ImageNet dataset으로 앞 단의 20개의 Conv계층을 사전 훈련시킨다
사전 훈련된 20개의 Conv계층 뒤에 4개의 Conv계층과 2개의 전결합 계층을 추가한다
마지막 계층에는 Linear activation funtion을 적용하고, 나머지 모든 계층에는 leaky ReLu를 적용
YOLO의 loss는 SSE(sum-squared error)를 기반으로 한다
SSE를 최적화하는 것이 YOLO의 최종 목적인 mPA를 높히는 것과 완전히 일치하지는 않는다
배경 영역이 더 크기 때문에 대부분의 grid cell에 confidence score=0이 되어 모델의 불균형이 생긴다
이를 개선하기 위해 객체가 존재하는 bounding box 좌표에 대한 loss의 가중치를 증가 시키고, 객체가 존재하지 않는 box에 대해서는 감소시킨다
SSE는 큰 bounding box와 작은 bounding box를 모두 동일한 가중치로 loss를 계산한다
YOLO는 하나의 grid cell이 여러 개의 bounding box를 예측하는데, 결국엔 객체 하나당 하나의 bounding box가 선택되어야 한다
훈련 단계에서 사용하는 loss function
overfitting을 막기 위해 dropout과 dat augmentation(random scaling, random translation)을 적용
DPM (Deformable Parts Models)
R-CNN
Other Fast Detectors
그 외 Deep MultiBox, OverFeat, MultiGrasp 와의 비교