近期在学习目标检测,此前对于Bounding Box一直心存疑惑:
a.Bounding Box是怎么被神经网络预测出来的?
b.卷积神经网络除了能够对图像分类,还可以预测出图像中物体的边界吗?
c.如果可以预测边界,为什么这个边界不是物体的轮廓,而是一个矩形呢?
带着这些问题,阅读了R-CNN[1],R-CNN的步骤如下:
1.训练阶段:
1.1 预训练AlexNet
使用ILSVRC-2012预训练AlexNet,将1000路分类层改为21路分类层,再用PASCAL-VOC2007(算上背景是21类)进行SGD微调训练,得到微调后的网络模型,记为XNet(XNet是为了便于大家理解上下文才这么写的,原文中没有这个名词);
1.2 微调
训练集中的每张图片已经含有人工标记的ground-truth(GD),对每张图片,使用Selective search(SS)[2]方法提取出2000个region proposal(RP),将每个RP的边框向四周扩张16个像素后,resize为227*227,得到新RP,将含有待分类物体且与GD之间的IOU大于0.5的新RP作为可分类数据、IOU小于0.5的作为第21类即背景数据,使用SGD方法,继续训练XNet神经网络;
1.3 针对每类物体训练一个SVM:
将每类图片的GD作为正样本,该图片所有与GD之间的IOU小于0.3的RP以及与该图片不同类别的所有其他图片的GD作为负样本,训练该类别的SVM;
SVM训练方法:将GD直接送入XNet,RP先resize再送入XNet,计算fc7的结果(尺度为4096*1的向量),作为送入SVM的特征向量。
1.4 针对每类物体训练一个bounding-box regressor(BBR):
将训练集中的每张图片的所有RP的fc7使用SVM进行分类,采用非极大值抑制(NMS)方法获取无冗余的RP,(如果RP与GD的IOU大于0.6,则记录RP的四个参数以及与之对应的GD的四个参数,否则放弃该组数据)将GD和RP按照前文的方式resize之后送入XNet,计算pool5作为特征向量(尺度为6*6*256=9216的向量),使用岭回归的方法训练出BBR。
BBR这部分建议阅读两篇博客:
http://caffecn.cn/?/question/160
https://blog.csdn.net/zijin0802034/article/details/77685438
2.测试阶段:
给定一个图片,使用SS方法提取2000个RP,按照前文的方式resize后,送入XNet,获取fc7和pool5;
将fc7送入SVM得到RP的分类标签,如果得到的分类结果是背景,则直接输出结论;否则,对同一张图片的RP采用NMS方法获取无冗余的区域;
将上述NMS之后的RP的四个参数及其对应的pool5送入指定类别的BBR,得到更接近于实际GD的边框参数。
说明:
Selective search使用了文献[3]中的方法用于初始化候选区域集合,然后每次合并两个相似度最大的相邻区域(文献[3]中详细说明了相似度的定义和计算方法),合并过程中将所有候选区域及合并后的区域加入区域集合中,直到图片中仅剩一个区域时合并结束(在这个阶段,这些候选区域是不规则的形状,类似于PhotoShop的抠图)。然后对候选区域集合中的每个区域执行这样的操作:获取区域中x坐标的最小值、最大值,y坐标的最小值、最大值,以此作为矩形框四条边的信息,将候选区域转换为规则的矩形。需要注意的是,以这个矩形为边界的小图片除了之前提取出的候选区域,还包含了大图中除了小区域以外的少量信息。所以,在RP生成的时候就已经是矩形了。
回过头看看之前的疑问:
a.Bounding Box是怎么被神经网络预测出来的?
答:在RCNN中,Bounding Box不是单纯的通过神经网络预测出来的,而是在已知一个方框中含有指定类别的物体后,通过神经网络计算其特征向量,结合回归的方法,将该方框进行修正后得到的。
b.卷积神经网络除了能够对图像分类,还可以预测出图像中物体的边界吗?
答:传统的目标检测方法是在原始图像中遍历固定大小的方框,送入CNN进行检测。通过RCNN可以看出,该方法是先已知某个边框中存在某类物体后,再使用回归的方法将方框进行修正。所以无论传统方法还是RCNN,物体的边界都不是直接使用卷积神经网络就能预测出来的。
c.如果可以预测边界,为什么这个边界不是物体的轮廓,而是一个矩形呢?
答:传统目标检测中,送入神经网络的图像是在原图中截取的一个方框,所以最后的结果也必然是一个方框;在RCNN中,同样如此,所以结果只能是一个矩形。在RCNN中,RP通过文献[3]中的方法获取之后就被绘制成了方框,然后再resize送入CNN,如果将RP被绘制成方框之前的边界信息保存下来并与resize之后进行对应,则完全可以在最终显示出使用文献[3]中的方法获取的最初轮廓。
参考文献:
[1] Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik, Rich feature hierarchies for accurate object detection and semantic segmentation, https://arxiv.org/abs/1311.2524v3
[2] Uijlings, Jasper RR, et al. Selective search for object recognition, International journal of computer vision, 104(2) (2013): 154-171.
[3] Felzenszwalb, P. F., & Huttenlocher, D. P. (2004). Efficient graph-based image segmentation. International Journal of Computer Vision, 59, 167–181.