前言:
RCNN全称是Regions with CNN Features,是将深度学习应用到物体检测领域的经典之作,并凭借卷积网络出色的特征提取能力,大幅度提高了物体检测的效果。虽然RCNN显著地提高了物体检测的效果,但仍存在一下三大问题:1、RCNN需要多步训练,训练步骤繁琐且训练速度较慢;2、在涉及分类的全连接网络的输入尺寸是固定的,无法输入任意尺寸大小图片,这降低了算法的精度;3候选区域需要提前进行特征提取并保存,繁琐且占用空间。
随后基于RCNN的Fast-RCNN和Faster-RCNN将以上存在的问题进一步优化,在实现方式、速度、精度上均有较大的提升。因此,要想学习物体检测,RCNN、Fast-RCNN和Faster-RCNN等RCNN系列算法是需要全面掌握的算法。本文将从以下几个方面进行探讨:
RCNN系列算法的流程总览;
准备工作
Faster RCNN
RPN的理解
ROI Polling层
RCNN的全连接网络
Faster RCNN后续的改进算法一、RCNN系列算法的流程总览开山之作:RCNN
RCNN的算法流程如图1所示,其仍然延续了传统物体检测的思想,将物体检测当做分类问题处理,即先提取一系列的候选区域,然后对候选区域进行分类。在PASCAL VOC数据集的准确率从35.1%提升到53.7%。
图1 RCNN算法流程图[1]
具体流程包括以下四步:
(1)候选区域生成。采用Region Proposal提取候选区域,如Selective Search算法,先将图像划分成多个小区域,合并包含同一物体可能性高的区域并输出。在这一笔需要提取约2000个候选区域,且提取完后需要将每一个区域进行归一化处理,得到固定大小尺寸的图像。
(2)CNN特征提取。使用CNN来提取出每个候选区域的Feature map,得到固定维数的特征图。