Scalable Object Detection using Deep Neural Networks笔记

来源:互联网 发布:淘宝宝贝被隐形降权 编辑:程序博客网 时间:2024/05/24 01:07
解决的问题:

将深度网络应用到多object,并且object未知的情况。

整体思路:

用CNN(DNN(AlexNet))预测一系列的bounding box,每一个bounding box都会有对应的一个分数,这个分数就是box里有没有物体的置信度。
创新点:

本文主打的就是scalable,可扩展性,具体是指物体类别增多的情况下,bounding box的数目不会成线性增加。这样就很容易扩展到其他更大的数据集上。

怎么做:

作者采用“定位”+“识别”两步走的方法。先用CNN对图中预测出可能的bounding box并打分(此时并不知道每个box中具体是什么?每个box的置信度只代表了box包含物体的可能性大小),接着再利用CNN分类器对每个box进行识别(分类)。

可以理解为:

第一步:将基础网络(作者采用AlexNet)改为回归网络,对图像做region proposal。
第二步:将得到的region proposal 进行分类,也就是识别。

延伸:Faster RCNN的思想也是如此,其RPN就是做region proposal ,然后利用Fast RCNN进行分类。

CNN的回归模型:
  • Model:将AlexNet的输出层修改为回归,其实就是输出包含K个bounding box的坐标(左上和右下)和这K个box对应的置信度。
  • Loss Function:min{预bbox和真实bbox的匹配误差(平方误差) - 预测bbox 的置信度(条件熵)}

其中,
            
        
  • Optimization(优化):BP
  • 训练细节:prior,将先验知识应用到匹配过程中。具体来书,将训练样本中的Ground Truth进行聚类,得到物体的几个典型位置,利用他们来进行辅助匹配。这样学习算法就可以只要学习每个prior box的和Ground Truth的残差即可。
    延伸:这个prior也就是SSD(Single Shot Multibox Detector)的思想的来源之一,另外论文的总结部分就是想要做个SSD出来啊。将两个步骤(定位网络和分类网络)合二为一  不就成了SSD了吗!


                                                               

由于这是一篇2014年的CVPR,实验部分就不贴出来了。
重读这篇文章的目的也在于更好的理解SSD算法。


这样读下来,这篇文章可以看成Faster RCNN和SSD的思想来源!Faster中的Anchor也是类似于prior的存在,只是使用的方法不同。这也能理解Faster为什么给出{1:1,1:2,2:1}的比例出来的原因之一是不是也对Ground Truth进行了聚类等操作。SSD中的aspect ratio也是{1,2,3,1/2,1/3}也有异曲同工之妙。











阅读全文
0 0
原创粉丝点击