作者:来自读者投稿
来源:Python数据之道
Faster RCNN 目标检测算法解析
随着大数据时代的到来和计算机视觉的发展,近几年来目标检测领域取得了突破性的进展。
目标检测的问题就是分类和定位一张图片中的多个物体,早期的算法有RCNN、Fast R-CNN等,但这些算法在产生区域建议的问题上时间消耗都很大。因此对于目标检测问题推荐采用Faster R-CNN算法,它是从提高区域建议的速度出发,引入了区域建议网络(RPN)去推测目标位置,解决了区域建议计算的瓶颈问题。
文章的最后会以检测汽车为例说明Faster R-CNN检测的全过程。
传统的物体识别方法是直接使用卷积神经网络,通过分类或者回归的方法进行物体的识别。
回归是用来判定目标的具体位置,但由于卷积神经网络是需要固定输出的值(由于全连接层的存在),对于多目标的情况就无法通过回归进行;分类是用于确定目标的种类,通过滑动窗口对图像进行滑动,确定每一个窗口是否属于目标,但这个方法非常费时,根本无法达到实时检测。
于是后来就提出了Region Proposal(区域建议)的方法,用于改进直接使用CNN的缺点,即事先给定一些候选窗口,在这些候选框中进行检测。Region Proposal是一类算法的统称,它们都是在卷积神经网络的基础上进行的。
在目标检测领域中,基于区域建议的卷积神经网络的发展是非常迅速的。Faster R-CNN算法在2015年COCO(常见物体图像识别)检测大赛一举夺冠,并且在PASCAL VOC 2007和PASCAL VOC 2012上实现了目前最高的目标检测准确率。
现如今,Faster R-CNN不仅用于物体的检测,还可以用于许多商业的领域,如服装检测,人脸识别等,已经成为了通用的检测框架。
上图是Faster R-CNN的整体网络结构,它将特征抽取,区域建议,边界回归和分类都整合在一个网络中