G-CNN理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012905422/article/details/52664918

为了目标检测精度和速度的进一步提高,在CVPR2016上各种算法可谓各显神通。今天要说的G-CNN就和YOLO算法类似,着重于速度的提升进行检测算子的改进。而与YOLO不同的是,改算法着眼于初始化proposal数量的减少,使得数以万计的proposal变成极少的初始格网,通过后面不停迭代获得最终较为准确的bbox。

其简要流程示意图:

proposal技术一直是高效的目标检测算子的一个计算量的瓶颈,巨大的proposal数量使得后续检测效率降低,因此,本文受迭代优化启发,介绍了一种起始于网格的迭代算法,通过更新来使得网格box包含目标并且为目标分类。一步的回归无法处理网格向目标靠近的非线性问题,因此,本文采用分段回归模型多次迭代。
这里写图片描述

通过示意图可以看出,在训练阶段,首先在图像中获取叠加的多尺度的规则网格(实际网格相互叠加,示意图中显示平铺以视觉化),然后通过ground truth与每一个网格的IoU进行每一个网格ground truth的分配,并完成训练过程,使得网格在回归过程中渐渐接近ground truth。在检测阶段,对于每一个box针对每一类获得置信分数,用最可能类别的回归器来更新box的位置。

网络结构:

这里写图片描述
从网络结构可以看出,G-CNN主要定义检测问题:所有可能bbox的迭代搜索问题。因此,其目标是训练网络使得网格最后可以将初始的网格向着目标ground truth移动。这和Faster R-CNN有较大区别。

损失函数:

G-CNN是一个迭代方法,它将bounding box在尽可能少的步骤下朝着目标位置移动。所以,其loss函数包含:(1)每个训练样本训练时的loss,(2)每个迭代时间步iterative step的loss。
在每一步迭代中,bounding box将要移动的目标定义函数如下:

这里写图片描述

其中:Strain 第几次迭代 这里写图片描述
这里写图片描述

其整体loss函数如下:
这里写图片描述
这里Bi 代表第i步迭代时候的bounding box位置,Bbg 代表所有的背景bounding box(负样本)。
因此可以看出,整体loss函数主要分为2大块:(1)候选bounding box是否不属于负样本的指示函数,(2)候选bbox与ground truth之间的loss。前部分主要判断该bbox是否满足条件,后部分则计算bbox的相对变化与ground truth直接的loss,loss函数通过每一iterative step进行更新。

实验结果:

文章展示大量优秀和不好的实验结果,这里仅仅展示优秀结果,可以看出,一步步下bbox向ground truth的回归还是非常成功的。
这里写图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值