本文主要是介绍论文笔记 G-CNN: an Iterative Grid Based Object Detector,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
为了目标检测精度和速度的进一步提高,在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的回归还是非常成功的。
这篇关于论文笔记 G-CNN: an Iterative Grid Based Object Detector的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!