基于区域的卷积神经网络 (Region-based Convolutional Neural Network) 通常运用于图像物体检测的任务中,是对多种基于区域的深度学习方法的统称。 目标检测 (object detection) 指的是在给定的图像中精确找到某种或者某些物体的位置,并且标注出该位置的物体的类别。该任务最主要的流程就是找到某个物体在哪里,然而,这个任务通常情况下非常难解决。我们需要找到一个方框(Bounding box) 覆盖住该物体。那么更多的问题就衍生出来了,这个方框多大,该出现在哪个位置,这个方框是否包含了整个物体,等等问题。并且,物体尺寸,摆放角度,姿态等等因素都是变化的。以上所述问题加大了目标检测的难度。总的来说,目标检测可以分为两步: 图像识别 + 定位 (Image classification + localization)。下图概述了目标检测的主要方案:
近年来,许多论文已经证实神经网络是解决图像识别的很好的工作,例如AlexNet, ResNet, GoogLeNet 等等。对于目标检测,我们所需做的是微调图像识别的神经网络再额外加上定位的任务,主要的思想可以概括为下图:
那么基于区域的卷积神经网络顾名思义就是将一张图像拆分成多张小图,然后分别在小图上做特定的任务,如目标检测,神经网络在小图上需要做分类任务。那么怎么确定小图?我们可以用比较简单的方法来确定方框例如:滑窗(sliding window)。但这种方法有很大的缺陷,因为我们不知道给定的图里面物体的个数,大小等等。我们需要将每个可能出现物体的bounding box都做一遍分类。下图显示了这种方法的弊端:
如上图所示,如果运用滑窗的方法,不同的图片将会有不同数量的损失函数,而且不太符合神经网络的训练。所以通常情况下,我们会对图片进行预处理,用非机器学习的算法来算出大量的候选区域(Region of proposal)。通常情况下,这种预处理算法会给出上千个候选区域,每个候选区域代表这可能出现的某个物体,如下图所示:
例如Selective search [Uijlings, J. R et.al, 2013] 只需两秒CPU运行时间,大约会给出2000个候选区域。 虽然很多候选区域并没有包含有效的物体,但是这种方法实际上有很高的recall。 如果有特定物体在图片中出现,这种方法有很大的几率将其框出来。这种方法大大减少了运算量。接下来,我们要做的就是用神经网络在各个候选区域上面做分类任务。 R-CNN[Girshick, Ross, et al, 2014] 是典型的基于区域的卷积神经网络。这篇paper 将上述方法结合了起来并成功运用到物体检测任务中。这篇论文的中心思想可用下图来概括:
首先,作者运用传统方法预选出候选区域(Region of interest, 简称ROI),当然每个ROI的尺寸不一样,在输入神经网络之前,作者将这些ROI规划到统一尺寸,在经过神经网络的计算,然后通过SVM做分类,另外又对Bounding box做了回归。这样就能标出途中某个物体。主要的训练步骤分为以下几点:
- 用soft max classifier 来微调分类神经网络(log loss)
- 训练线性SMVs(hinge loss)
- 训练bounding box回归(lease squares)
这种方法的主要缺点表现为:
- 训练缓慢(大约84小时)
- 需要大量磁盘空间(因为大量的ROI)
- 需要很长的测试时间(大约47秒/图片 基于VGG16 网络 [Simonyan & Zisserman 2015])
Fast R-CNN [Girshick, Ross 2015] 的提出加快了R-CNN 的训练时间。 此方法先将图片输入到神经网络,然后在某一层feature map上来运行Selective Search 等算法来计算出ROI。下图是对于运算时间的对比:
我们可以看到最主要的时间是用在了选出ROI这一步上。 Faster R-CNN [Ren, Shaoqing, et al. 2015] 的提出解决了这一问题。 该论文的主要贡献是将ROI的预选交给神经网络,让神经网络自己选出ROI。
图标出处:Standord CS231N video: https://www.youtube.com/watch?v=nDPWywWRIRo&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk&index=11
发展历史
2014年Ross Girshick等人提出R-CNN (一种基于区域的卷积神经网络),次论文运用CNN去取代原来的特征提取和分类器。这个方法简单有效,原因在于:1. 把检测问题分解为候选区域搜索和分类两个子任务,可以分别去优化求解,简化了检测任务的学习难度。2.后面的分类可以使用在ImageNet等更大数据集上预训练的模型,提供非常丰富的图像特征和强大的分类器。但是此方法速度太慢,从而严重限制了它的实用性。
2015年 同作者改善了R-CNN的速度太慢的弊端,提出了Faster R-CNN论文,因为在同一张图里提取许多的候选区域,他们重叠的几率非常的大,并且需要缩放到固定的大小才可以输送到神经网络。Faster R-CNN的主要贡献是直接在特征图上提取ROI。特征计算可以被不同的候选区域共享,从而避免了对相同区域的特征重复提取。然而运行时间还是被提取ROI这一步骤限制。
2016年Ren, Shaoqing等人提除了Region Proposal Network(RPN)的结构。所谓RPN就是一个CNN,用来预测哪些地方可能有物体,并回归出物体的位置。RPN 与分类网络共享了图像特征,从而避免了重复的计算。这一方法实现了端对端(End to end mapping)的训练方法,从而加速了训练过程。
主要事件
年份 | 事件 | 相关论文/Reference |
2014 | Ross Girshick等人提出R-CNN,让CNN去加原来的特征提取和分类器 | Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 580-587). |
2015 | Ross Girshick等人提出Fast R-CNN, 通过在图像特征上提取ROI来加速运算 | Girshick, R. (2015). Fast r-cnn. In Proceedings of the IEEE international conference on computer vision (pp. 1440-1448). |
2015 | Ren, Shaoqing等人用CNN来取代提取ROI的传统图像处理方法,是实现更快网络训练与测试 | Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: Towards real-time object detection with region proposal networks. In Advances in neural information processing systems (pp. 91-99). |
发展分析
瓶颈
基于区域的卷积神经网络最大的瓶颈还是运算时间,将来不能的算法和网络结构会很大的改善这一点。另外,更大的数据集会提升现实中的实用性。
未来发展方向
物体识别在AI领域扮演者十分重要的角色,很多应用是基于物体识别的前提,例如一个机器人需要识别出手上拿的物体是什么。基于区域的神经网络能大大提高物体识别的性能,在未来会是个火热的应用方向。
Contributor: Zhixiang Chi