介绍
如上图,每个像素点有5个 anchors box(橙色框),红色框是真实框,输出的格式如下:
(tx,ty,tw,th,c,分类) * 5
- tx、ty:相当于真实框 中心点 坐标的偏移量,下面有计算公式
- tw、th:相当于真实框 中心点 宽高的偏移量
- c: confidence,anchors box 与 真实框 重合率。iou算法
- 分类:onehot编码,也就是说20个分类(voc2007有20个分类),就有20个
0或1
组成 - 5:有5个anchors box,所以要乘5
优点
每一个anchors box都能预测一个类别
例子
假设有20个分类,那么维度是:
(25,30,35,50,0.8,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)*5
即:
(4+1+20)*5=125
计算方法(YOLOv2)
预测边界框 中心点 相对于对应 grid cell 左上角位置的相对 偏移值,为了将边界框中心点约束在当前cell中,使用sigmoid
函数处理偏移值,这样预测的偏移值在(0,1)范围内。
关于
sigmoid
函数 参见:
https://www.malaoshi.top/show_1EF4IWSucFTE.html
默认YOLOv2,最终得到的特征图大小为 13x13
,所以grid cell是13x13
个格子,cell宽、高是1:
假设 cell的左上角坐标(cx,cy)
,预测边界框的4个偏移值 tx,ty,tw,th
,anchor box 的宽高pw,ph
,实际边界框为:bx,by,bw,bh(要预测的值),如下图:
计算公式为:
注意:
a()
是sigmoid激活函数,结果在0 ~ 1
之间- 计算的是中心点坐标
由于sigmoid函数的处理,边界框的中心位置会约束在当前cell内部,防止偏移过多。