神经网络-RCNN

r-cnn

       cnn对于图片分类的效果已经经过检验,各种利用cnn对图片分类的例子,lenet,cifir10,,,但是对于计算机视觉的另一个问题“目标检测”(从一幅图片中检测出各种物体,标注位置)卷积神经能否解决?

       基于这个问题有人提出了R-cnn是将CNN方法引入目标检测领域, 大大提高了目标检测效果,可以说改变了目标检测领域的主要研究思路!

 

网络架构简介:

  在经典的CNN网络后接svm分类器,使用cnn提取特征,使用svm对图片特征分类(有经验数据表示,svm比cnn全链接层分类的效果更好)!

 

 主要步骤:

训练阶段:

  1、标注图片(自己对这个工作已经很熟了!)

  2、使用Selective Search算法生成候选区,Selective Search算法基于曾经使用过的“图论分割算法”,对每幅图片生成大概2k个候选区域(以外围矩形表示)

  使用精度评价公式:IOU对每个候选框判断候选区的类别(目标物体N or 背景)。

  一张照片我们得到了2000个候选框。然而人工标注的数据一张图片中就只标注了正确的bounding box,2000个矩形框也不可能会出现一个与人工标注完全匹配的候选框。因此在CNN阶段我们需要用IOU为2000个bounding box打标签。如果用selective search挑选出来的候选框与物体的人工标注矩形框(PASCAL VOC的图片都有人工标注)的重叠区域IoU大于0.5,那么我们就把这个候选框标注成物体类别(正样本),否则我们就把它当做背景类别(负样本)。

  3、使用CNN网络训练,并提取(存储)特征。

  直接用Alexnet的网络,然后连参数也是直接采用它的参数,作为初始的参数值,然后再fine-tuning训练。

 

大概意思就是,又一个已经训练好的用于别的分类功能的CNN网络,各种参数当然训练好的,在此基础上,将最后一层换N+1个类别输出,继续训练。

 

在最后一层输出前一层隐藏层分两部分的前一部分,乘以权重后的生成的1*4096的“特征向量”提取处理来,用于svm的训练。

  4、  使用IOU对2000个框重新标注,标准限制更严一点,作为labels与特征(4096)一起送入SVM训练,训练是分开的,每一类训练一个线性svm参数二分类器,这些训练好的svm参数可以组成一个4096*(n+1)的矩阵,在预测的时候可以直接对前面CNN提到的特征做分类打分!

   

 

预测阶段:对于输入图片,使用Selective Search算法生成候选框,使用CNN对各个框提取特征,直接做最后一步的SVM分类!

参考:

 

http://blog.csdn.net/mao_kun/article/details/50576003

( Selective Search)

https://zhuanlan.zhihu.com/p/23006190?refer=xiaoleimlnote

(总体介绍)

http://www.genshuixue.com/i-cxy/p/7646835

(有关svm的说明)

 

posted @ 2017-04-24 15:48  kanuore  阅读(736)  评论(0编辑  收藏  举报