YOLOv1

作者:Joseph Redmon

CVPR'16

paper:YOLOv1

亮点

  • 将目标检测当作是一个回归任务,使用一个网络预测类别和bounding box

网络结构

传统的目标检测方法先生成候选框,然后在候选框的基础上进行分类,修正边框,去重复框等操作,速度慢。

本文将目标检测视为回归任务,通过一次处理图片,即得到分类和位置结果。

看到的是整个图像,对背景误检测效果更好。

accuracy比SOTA方法差,对小目标物体检测效果并不好。

效果:V100,45fps(448*448),63.4mAP(PASCAL VOC 2007)

实现部分

首先将图像分为s * s个网格,如果目标的中心落在了网格的中心,那么这个网格就负责检测这个目标。

每个网格预测B个bounding Box,并且为每个Bounding Box 预测一个置信度分数。(置信度分数表示box包含物体以及预测框的精度):\(Pr(Object)*IOU^{gt}_{pred}\);如果网格中不存在目标,置信度分数为0/有目标的时候\(Pr(Object)=1\).

每个bounding Box预测了5个值,x,y,w,h,confidence;其中x,y是相对于网格的外置(0 ~ 1),w,h是相对与整张图片的位置(0 ~ 1)

每个网格(包含目标)预测了C个类别的条件概率\(Pr(C_j|Object)\)。测试的时候和Bounding Box预测的置信度联合起来,得到\(Pr(C_j)*IOU^{gt}_{pred}\),表示类别的概率和box的精确度。

对于Pascal VOC数据集来说,\(S=7,B=2,C=20,tensor:7*7*(2*5+20)\)

每个格子会预测多个bounding box,训练阶段,取IOU最大的box。

原论文网络结构图有点问题。

缺点

每个单元格只有很少的bounding box,对于成群出现的目标检测效果并不好。

对新的长宽比的目标泛化性不好。

对待大框和小框的错误相同,对小框不友好。