You Only Look Once: Unified, Real-Time Object Detection
I. Motivation
之前的目标检测如R-CNN系列模型一般分为3个步骤:
(1) 通过region proposal methods产生bbox;
(2) 通过分类器对这些bbox进行分类;
(3) post-processing:refine bbox, eliminate duplicate detections, and rescore the box based on other objects in the scene
复杂的pipeline,加上模型的不同部分需要分开单独训练,使得模型的优化速度很慢。YOLO提出的解决方法是,将目标检测视作回归任务,bbox坐标及分类结果都通过回归求得。如下图所示,CNN既预测bbox坐标,又预测bbox属于某一类的概率。
II.YOLO具体细节
YOLO将输入图像划分为S*S的栅格,每个栅格负责检测中心落在该栅格中的物体,每一个栅格预测B个bounding boxes,以及这些bounding boxes的confidence scores。这个 confidence scores反映了模型对于这个栅格的预测:该栅格是否含有物体,以及这个box的坐标预测的有多准,即 confidence=Pr(Object)*IOU pred truth \text{confidence=Pr(Object)*IOU}_{\text {pred}}^{\text {truth}} confidence=Pr(Object)*IOUpredtruth . 如果这个栅格中不存在目标,则confidence score应该为0;否则的话,confidence score为predicted bbox与 ground truth box之间的 IoU。
YOLO对每个bounding box有5个预测值:x, y, w, h,和confidence:
坐标x,y代表了预测的bounding box的中心与栅格边界的相对值。
坐标w,h代表了预测的bounding box的width、height相对于整幅图像width,height的比例。
confidence就是预测的bounding box和ground truth box的IOU值。
每一个栅格还要预测C个 conditional class probability(条件类别概率): Pr(Class i |Object) \text {Pr(Class}_i\text{|Object)} Pr(Classi|Object)。即在一个栅格包含一个Object的前提下,它属于某个类的概率。我们只为每个栅格预测一组(C个)类概率,而不考虑框B的数量。
注意:conditional class probabi