您的位置:首页 > Web前端

目标检测第一篇:R-cnn 《Rich feature hierarchies for accurate object detection and semantic segmentation 》解析

2019-04-16 18:30 696 查看
研究生的生活已经过去了快一年,自己依然一无所成,之前对目标检测有些许的感兴趣,看过一点点的目标检测方向的论文,但是边看边忘,回过头一想什么脑子一片空白,曾经觉得写博客会浪费掉很多的时间,不值得做,但是现在才发现这对知识的梳理有很大的帮助,所以从此开始在这里总结一下学习上的收获和心得,如有不对的地方希望各位同学能帮忙指出来。

好了,下面开始切入正题,在深度学习火起来之前就有人研究目标检测的东西,但是由于长时间没有突破所以一直停滞不前,直到深度学习风靡全球,有人提出了利用神经网络来进行解决目标检测问题。在此,需要向初学者普及目标检测,语义识别,实体分割这几者之间的关系。 图a是简单的进行识别(就是分类),,图b就是目标检测(本文所要做的事情,对图中可以识别的物体进行分类并确定一个目标框,使其恰好包含物体),图c是语义分割,得到每一类物体的像素点但不能区分同类个体,如图中羊的颜色都一样,图d是实例分割,在c的基础之上能分别出同一类物体。
rcnn 进行识别的过程:

  1. 输入一张多目标图像,采用selective search算法提取约2000个建议框;
  2. 先在每个建议框周围加上16个像素值为建议框像素平均值的边框,再直接变形为227×227的大小;
  3. 先将所有建议框像素减去该建议框像素平均值后【预处理操作】,再依次将每个227×227的建议框输入AlexNet CNN网络获取4096维的特征【比以前的人工经验特征低两个数量级】,2000个建议框的CNN特征组合成2000×4096维矩阵;
  4. 将2000×4096维特征与20个SVM组成的权值矩阵4096×20相乘【20种分类,SVM是二分类器,则有20个SVM】,获得2000×20维矩阵表示每个建议框是某个物体类别的得分;
  5. 分别对上述2000×20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框;
  6. 分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box。
    详解:
    1 在本文中作者使用selective search的方法进行候选框的提取,具体的做法看这里
    2 因为本实验中使用的网络是AlexNet,详细讲解如图2,该网络的的输入是2272273大小的图片,每一层的输入输出在图中讲解的很详细。

    3 请注意这一点,在第1步中得到了大约2000个候选框,然后在第2步中将每一个候选框都扩大成2272273的图片,然后在这里需要将每一个候选框分别放入AlexNet网络结构中,然后每个候选框都会得到一个类别标签,也就是说进行预测一张图片需要运行AlexNet网络大约2000次,这个消耗是相当巨大的,导致利用rcnn进行目标检测耗时很多,后来的很多算法都对这一步进行了改进。
    4 将得到的2000个4096大小的向量进行分类,在本实验中有20个分类,所以最后会得到2000*20的向量,这里的20维度的向量的每个维度的值是该候选框属于该类别的得分。然后需要对每一类的候选框进行非极大抑制,剔除重复的候选框。在这里讲一下什么是非极大值抑制。
    非极大值抑制的目的就是去除一些冗余的候选框,看图三就可以大致理解了,左侧的图是原始的具有很多候选框的图片,选出得分最高的一个候选框,如果其他的候选框和其的重叠度大于伐值则删除 ,关于非极大值抑制的详细讲解请看这里
    6 推荐边框的回归操作:
    推荐一篇写的特别好的文章,链接在这里
    参考 https://www.geek-share.com/detail/2681409436.html
    (https://www.geek-share.com/detail/2715190285.html)
    https://blog.csdn.net/guoyunfei20
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐