从RCNN到Faster RCNN的原理剖析

来源:互联网 发布:安卓高清电视直播软件 编辑:程序博客网 时间:2024/05/22 09:42

Faster rcnn是用来解决计算机视觉(CV)领域中目标检测(Object Detection)的问题的。

区别目标分类、定位、检测

一、传统的目标检测方法

其实目标检测对于人类来说并不困难,通过对图片中不同颜色模块的感知很容易定位并分类出其中目标物体,但对于计算机来说,面对的是RGB像素矩阵,很难从图像中直接得到狗和猫这样的抽象概念并定位其位置,再加上有时候多个物体和杂乱的背景混杂在一起,目标检测更加困难。但这难不倒科学家们,在传统视觉领域,目标检测就是一个非常热门的研究方向,一些特定目标的检测,比如人脸检测和行人检测已经有非常成熟的技术了。普通的目标检测也有过很多的尝试,但是效果总是差强人意。

传统的目标检测一般使用滑动窗口的框架,主要包括三个步骤:

  • 利用不同尺寸的滑动窗口框住图中的某一部分作为候选区域;
  • 提取候选区域相关的视觉特征。比如人脸检测常用的Harr特征;行人检测和普通目标检测常用的HOG特征;
  • 利用分类器进行识别,比如常用的SVM模型。

传统的目标检测中,多尺度形变部件模型DPM(Deformable Part Model)是出类拔萃的,感兴趣的同学可以去了解以下DPM的相关知识(本质是HOG+SVM的扩展)。

二、基于深度学习的RCNN目标检测算法的出现

正当传统的目标检测方法遇到瓶颈时,基于深度学习的目标检测发展了起来,但真正起到变革作用的是RCNN算法的出现。R-CNN是Region-based Convolutional Neural Networks的缩写,中文翻译是基于区域的卷积神经网络,是一种结合区域提名(Region Proposal)和卷积神经网络(CNN)的目标检测方法。

RCNN算法的基本步骤

  • 用SS(Selective Search)方法提取图像中可能是物体的区域作为候选区域(1K-2K个)
  • 对每个候选区域,使用深度网络提取特征
  • 特征送入每一类的SVM 分类器,判别是否属于该类
  • 使用回归器精细修正候选框位置

三、从RCNN到Fast RCNN再到Faster RCNN

(1)RCNN 解决的是 ,“为什么不用CNN做classification呢?” 用SS去选框,CNN提特征,SVM分类。BB盒回归。

(2)Fast-RCNN 解决的是,“为什么不一起输出bounding box和label呢?”

(3)Faster-RCNN 解决的是,“为什么还要用selective search呢?为什么不用CNN做特征提取呢?” 鉴于神经网络的强大的feature extraction能力,可以将目标检测的任务放到NN上面来做,于是出现了RPN(region proposal network)

原创粉丝点击