目标检测SSD个人食用版

深度学习目标检测之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.

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...