深度学习目标检测之SSD网络(超级详细)_BigHao688的博客-CSDN博客_深度学习ssd
1,对于锚框的选取
①高和宽:通过scale和aspect获得锚框的高宽,举例第一个特征图每个网格所获得的锚框数:scale大小为21的有三种比例(1:1,2:1,1:2),scale为根号下(21*45)有一种比例1:1,共四种。
② 中心点x,y: 网格中心是在原图img上生成的,而不是在特征层上生成。
首先认识下感受野这个东西,卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。我们设定步长step_x =原图的w/特征图的w,step_y等类似。我的理解为step_x是感受野的宽,就是特征图上的一个网格(一个像素1*1)在原图上映射的宽。
linx = np.linspace(0.5 * step_x, img_width - 0.5 * step_x,layer_width)
#通过linspace函数从0.5*step_x到img_width-0.5*step_x,总共layer_width个数据,这就得到了中心点的x,同理可得y。
因为①中生成的宽高是对应特征图上每个网格锚框的宽高,当映射到原图上时,需要将 锚框宽高/原图的宽高
至此,我们就得到该特征图在原图上的锚框。
2,通过位置回归调整锚框的位置
loc位置回归的输出为 num_anchor * 4 ,这里4是(x,y,w,h)是坐标偏移量,并不是实际上坐标。
通过以上公式,位置回归偏移量和锚框的数据都是已知,反解求出真实预测锚框g的xyhw.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。