yolo_v1 2016
特点
45FPS
448*448
63.4mAP
思想
- 输入的图片,物体提前会被人为标注好。真实框
- 经过yolo处理后把图像分成s*s个grid cell
- 每个gridcell会有二个bounding box,bounding box的大小是人为根据经验设定的
- 每个bound ing box会计算得到5个参数,4个位置参数(回归调整预测框大小),和一个confidence值(置信度)
- 二个bounding box会分别计算与真实框的iou(交并比),选择iou大的作预测框
- 在所有cell中,置信度值高表示是该grid cell内是物体留下,否则就舍弃
- 这样预测框会选择大iou的,置信度低的gridcell的预测框会被舍弃,调整之后就得到了正确的预测框
每个grid cell要预测B个bounding box(这里是2),每个bounding box除了要预测位置之外,还要预测一个confidence值(置信度,表示该cell内是不是物体),每个网格还要预测C个类别的分数(每个bounding box要预测5个值,4个位置参数x,y,w,h和一个confidence值)
不清楚bounding box的看什么是Bounding Box、anchor box?-CSDN博客这个链接
参数分析
例如:PASCAL VOC数据集,我们设定划分成S=7,bounding box数量B=2,分成20类,PASCAL VOC数据集所以C=20。所以预测的参数个数有7*7*30个参数。
Q:30怎么来的?
参数个数分析如下
位置参数 x,y,w,h和confidence
(x,y)是代表grid cell物体的中心坐标,范围在0~1内,因为是相对于当前grid cell
(w,h)是预测目标cell相对于整个图片的宽和高,所以范围也是0~1
confidence 是P(obejct)*IOU^truth^,如果网格有检测物体就是IOU,否则就是0
yolo_v1网络结构
Tips:
标注了s-2,表示步距=2,否则步距=1
经过若干卷积之后,得到4096的特征向量
然后经过全连接层4096个,
在经过全连接层1470个,再把这1470维特征向量reshape成7*7*30的特征矩阵
损失函数
损失分为三部分。基本都是采用误差平方和,就是预测-真实,再平方求和
obj是正样本
nobj是负样本
存在的问题
1.群体检测效果差,太多了。因为每个grid cell 只预测二个bounding box
2.目标出现新的尺寸和配置,就效果差
3.主要的错误来自定位不准确