bbox回归预测时所采用公式思路讨论(1)

在深度学习框架中,从faster rcnn开始,中间的预测模型,不如ssd,yolo,yolov2等,一直在用如下公式对bbox的位置进行回归,
tx=(x-xa)/wa
ty=(y-ya)/ha
tw=log(w/wa)

th=log(h/ha)

这里,其实很多人看到这里时,会有个疑问,为什么不用如下公式来做回归呢?
tx=x-xa
ty=y-ya
tw=w/wa

th=h/ha

这样不是更加直观,简洁么?

其实,采用上面的公式,原因如下。

这里 x,y,w,h,分别代表当前的bbox的左上角点的横轴,左上角点的纵轴,宽和高。

xa,ya,wa,ha 分别代表ground truth的相应参数。

这里,要从x回归得出xa,与两个bbox中心点的位移和宽度的变化倍数有关,两者关系如下:

假设两个矩形中心点位移为d

xa +0.5*wa = x+0.5*w+d.

这里w 和wa肯定也是有个函数关系的,定为wa = tw*w,那么上式就变为:

xa+0.5wa = x+0.5*wa/tw+d,

从上式上看,xa 与x的位置关系,由wa和d共同决定,换算如下公式为:

(x-xa)/wa = 0.5-0.5/tw-d.

这样就可以把上式右边的部分等价为一个未知量tx,来回归得到。

同理ty。


那么来看tw=log(w/wa)的道理。

这个我感觉主要因为计算机在数值计算上精度不够,才采用指数来运算的,就好像我们采用softmax一样。

利用了指数函数把无限小的数据映射为0,把0映射为1的特性,避免了计算机的精度粒度,在处理过小数据时,不够用的问题。

同理th=log(h/ha),也一样。

不知道我说的对不对,大家有没有补充、纠正的,请不吝赐教啊,

注:在bbox回归预测时所采用公式思路讨论(2)中,我打算讨论下yolov2在这上面的改进工作,说说原理,这样做的好处,以及实际实验结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值