1 设置多个先验框
1 YOLO的先验框是正方形,实际物体是比较多变的。
2 多目标中心位置位于同一个栅格内(一个栅格要侦测多个物体)
PS:
yolo都是方格,比较傻,一个栅格只能识别一个物体
里面可能多个物体,最后只会给到一个物体
这种情况ssd可以,yolo不可以
3 SSD包含了背景类 PS: N类加上背景一共N+1类
4 给出预测 y = [p, bx, by, bw, bh, c1, c2, ..., cn]
one-hot法:属于哪一类置一,比如属于第二类
c1, c2, ..., c10 = 0 1 0 0 0 0 0 0 0 0
5 特征图m*n大小,则是给出m*n*(N+5)*k 个预测值
ps:
检测需要(N+5)*k 个卷积核: 每个先验框对每个类都要有卷积核
N类物体
k个预测框
2 例子
狗适合2,给出预测值Y=[0, x,x,x,x,x,x,1,bx,by,bw,bh,0,1] ???????
3 先验框的大小
前面特征图的先验框比较大,后面特征图的先验框适当调小
38*38, 最后3x3,1x1, 三个特征图的每个栅格
只对应4个先验框,
分别为宽高比1:1两种,
1:2,2:1两种
其他特征图的栅格对应6个先验框,
分别为宽高比1:1两种,
1:2,2:1两种,
1:3, 3:1两种
因此总共有38x38x4+19x19x6+10x10x6+5x5x6+3x3x4+1x1x4 = 8732
先验框随着特征图的大小而降低
训练的目的就是 回归各个先验框 对应的 类别和位置 ps: 得到 cx, p,x,y,w,h
4 anchor 细节
位置:假设当前feature map cell位于i 行 j 列,
anchor的中心为(i+0.5, j+0.5)
PS:注意这个值需要缩放到0-1之间作为相对位置
缩放因子:
s_min为0.2
s_max为0.9
m为添加的feature map的层数,5, k属于[1,5], 一般k=1是自己设定的, 一般是从2开始
缩放因子就是为不同的feature map选择不同大小的anchor
要求:小的feature map对应的anchor尽量大,因为越小的feature map,他的cell感受野越大
ar 取值 {1, 2, 3, 1/2, 1/3}
可以理解为在缩放因子选择好anchor尺寸之后,用ar控制anchor形状
当ar=1时候,增加一种s_k = sqrt( s_{k-1} * s_{k+1} )
通常每个feature map对应6种anchor