作者: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,对于成群出现的目标检测效果并不好。
对新的长宽比的目标泛化性不好。
对待大框和小框的错误相同,对小框不友好。