在上一篇文章中,我开始了解两阶段的对象检测模型,并讨论了最基本的模型,因此,第一个模型是R-CNN。今天,我们看看这个系列的其他模型:Fast R-CNN和Faster R-CNN。走!快速r-cnn
由于R-CNN是一个缓慢且效率不高的网络,因此同一作者很快提出了快速R-CNN网络形式的改进。图像处理过程已更改,如下所示:- 提取图像属性图(不是针对每个假设,而是针对整个图像);
- 假设搜索(类似于基于选择性搜索的R-CNN);
- – .. ( );
- ( , SVM-).
RoI layer
在最初的R-CNN概念中,每个提出的假设都使用CNN进行了单独处理-这种方法已成为瓶颈。为了解决该问题,开发了感兴趣区域(RoI)层。该层允许您使用神经网络一次处理整个图像,在输出处接收特征图,然后将其用于处理每个假设。RoI层的主要任务是将假设的坐标(边界框的坐标)与特征图的相应坐标进行比较。 RoI图层是要素地图的“切片”,将其馈入完全连接的图层的输入中,以用于随后的类别确定和坐标校正(请参见以下部分)。出现一个逻辑问题-如何将不同大小和纵横比的假设应用于完全连接的层的输入?为此,需要一个RoI层,该层可将图像转换为尺寸 在尺寸方面 。为此,您需要将原始图像划分为大小 (单元格大小大约 ),然后从每个单元格中选择最大数量。假设有一个5×5特征图,并且该图上的所需假设具有坐标(1,1,4,5)(前两个坐标是左上角,后两个坐标是右下角)。随后的完全连接层的尺寸为4×1(即拉长的2×2矩阵)。然后,将假设分为不同维度的不等块(合并阶段),并在每个假设中取最大数目(合并阶段,结果是输出阶段)。因此,可以处理整个图像,然后根据特征图处理每个假设。总:- 输入:假设的坐标和原始图像的特征图;
- 输出:假设的向量表示。
全连接层及其输出
在以前的R-CNN版本中,使用了单独的SVM分类器,在同一实现中,它们被一个SoftMax维输出替代 。注意,精度损失小于1%。回归器的输出使用NMS(非最大抑制)进行处理。总:- 输入:假设的向量表示;
- 输出:属于类的假设概率和对边界框坐标的更正。
多任务丢失
在网络的同时训练中,特殊的损失函数用于回归边界框和分类的任务:
这里:训练
为了更好地收敛,作者使用以下方法来形成批处理:- 选择批次中的假设数量 。
- 随机选择 图片。
- 对于每个 拍摄的图像 假设(即均匀分布在每个图像上)。
同时,R中既包含正假设(占整个批次的25%),也包含负样本(占整个批次的75%)。与对象的正确位置重叠的假说大于0.5(IoU)被认为是肯定的。负数是根据“硬负数挖掘”规则进行的-最错误的实例(IoU在[0.1,0.5范围内]的实例)。而且,作者认为带有参数 和 网络学习的速度比 和 (即每个图片的一个假设)。更快的r-cnn
进一步的逻辑改进是一种消除对选择性搜索算法的依赖的方法。为此,我们将整个系统表示为两个模块的组成部分-假设的定义及其处理。第一个模块将使用区域提议网络(RPN)实施,第二个模块类似于Fast R-CNN(从RoI层开始)。因此,这次处理图像的过程已更改,现在以这种方式发生:- 使用神经网络删除图像特征图;
- 根据获得的假设符号图生成-确定近似坐标和任何类别的对象的存在;
- 使用RoI将假设坐标与第一步中获得的特征图进行比较;
- 假设的分类(已经为特定类别定义)和坐标的其他细化(实际上,可能不适用)。
主要的改进恰好发生在产生假设的地方-为此,现在有了一个单独的小型神经网络,称为区域提议网络。区域提案网
该模块的最终目标是完全取代选择性搜索算法。为了更快地操作,需要网络来提取必要的属性以使用通用权重。因此,RPN输入是此网络之后获得的功能图。原始文章的作者使用VGG16网络提取特征,这些特征的输出被视为最后一个卷积层-conv5_3。这样的网络具有以下接收领域的特征:- 有效压缩(有效步幅, ):十六岁
- 接收场大小 ):196
这意味着特征图将比原始图像大小小16倍(通道数为512),并且其单元格中的每个值都受原始图像的196×196矩形像素的影响。因此,事实证明,如果使用标准输入VGG16 224×224,则几乎整个图像都会影响特征图中心单元格值的形成(14.14)!根据接收到的特征图,每个像元的RPN会生成 假设(在原始实现中 )不同的尺寸和长宽比。因此,对于标准尺寸,这是14×14×9 = 1764个假设!根据下图,我们更详细地考虑RPN模块的算法(可点击图片):
- .
- 3×3 ( – ). , (, ).
- 1×1 ( ):
- (cls) – - ( 2 ).
- (reg) – .
请注意,获得的向量可以转换为矩阵 和 。因此,我们得到矩阵,其中 该线对应于特定假设的值。
出现一个逻辑问题:如何从进入reg层的向量确定假设的绝对坐标?答案很简单-没办法。为了正确地确定坐标,必须使用所谓的锚点及其坐标的校正。锚点是具有不同长宽比(1:1、2:1、1:2)和大小(128×128、256×256、512×512)的四边形。锚点的中心是单元格的中心()卡标牌。因此,例如,取像元(7,7),其中心是值(7.5,7.5),它对应于原始图像(16×7.5)的坐标(120,120)。将这些纵横比与三个纵横比和三个大小的矩形(总计3×3 = 9)进行比较。将来,reg层将对这些坐标进行适当的编辑,从而调整边界框的位置和形状。总:损失函数
对于RPN培训,使用以下类符号:- 所有具有大于0.7的相交(IoU)或具有所有锚之间的最大相交的锚(如果不存在大于0.7的相交,则适用)为正。
- 所有交点小于0.3的锚均为负。
- 所有其他主播均不参加培训(实际上,他们是中立的)。
所以上课 锚是根据以下规则授予的:
使用这种表示法,可以最大程度地减少以下功能:
这里:- -锚号码;
- -在其中找到对象的概率 锚;
- -正确的班级编号(如上所述);
- -4个预测的坐标更正;
- -对坐标的预期(基本事实)更正;
- -二进制对数损失;
- -SmoothL1损失。仅在以下情况下激活,即 如果假设至少包含某些对象;
- 和 -分类和回归模型的输出;
- -用于调整分类和回归之间平衡的系数。
合并损失的两个部分均标准化为 和 分别。作者用 等于小批量的大小(256),并且 等于锚点的数量。要将校正回归到边界框,请按以下方式初始化和计算值:
这里 , , 和 指示边界框的中心,宽度和高度。变数, 和 表示预测,地面真相和锚点的含义(对于 , 和 类似地)。对全部锚点进行培训将对否定类产生偏见(该类还有更多的假设)。就这一点而言,迷你批以正锚与负锚的1:1比例形成。如果找不到合适数量的正锚,则在负批次的帮助下对微型批次进行补充。通用网络培训
主要目的是在两个模块之间联合使用秤-这将提高工作速度。由于不可能(或相当困难)同时训练两个独立的模块,因此本文的作者使用了一种迭代方法:- 培训RPN网络。卷积层使用在ImageNet训练期间先前获得的权重进行初始化。我们将重新培训定义任何类别的区域的任务(该类别的规范是Fast R-CNN的一部分)。
- 训练快速R-CNN网络。与步骤1一样,我们使用先前在ImageNet上训练时获得的权重来初始化Fast R-CNN。我们使用第1项中训练的RPN网络,使用关于物体的假设进行再训练。这次,训练的任务是弄清楚坐标并确定对象的特定类别。
- 使用第2页的权重,我们仅训练RPN部分(去往属于特征提取器的RPN网络的图层将被冻结,并且完全不会发生变化)。
- 使用来自第3页的权重(即,经过微调的RPN),我们训练了用于快速R-CNN的层(其余权重-早于RPN或与RPN相关的权重已冻结)。
借助于这样的迭代训练,事实证明整个网络都建立在相同的规模上。您可以继续按照此原理训练网络,但是作者注意到度量标准没有重大变化。预测过程
当使用神经网络进行预测时,图像传播看起来像这样:- 图像进入神经网络的输入,生成特征图。
- 使用RPN处理特征图的每个像元,作为对锚点位置进行校正的结果以及存在任何类别的对象的概率。
- 然后,相应的预测帧进一步基于特征图和RoI层,以进一步处理Fast R-CNN部分。
- 在输出中,我们获得一类特定的对象及其在图像中的确切位置。
摘要差异
以下是模型之间的简要概述(基本思想是从年轻到老年人的继承):R-CNN:- 使用选择性搜索作为假设生成器。
- 使用SVM + Ridge对假设进行分类和回归(此外,它们的并行操作是不可能的)。
- 运行神经网络以分别处理每个假设。
- 低速。
快速R-CNN:- 每个图像仅启动一次神经网络-所有假设均基于单个特征图进行测试。
- RoI层可对不同大小的假设进行智能处理。
- 用SoftMax层替换SVN。
- 并行工作分类和回归的可能性。
更快的R-CNN:- 使用特殊的可独立区分模块生成假设。
- 与RPN模块的出现相关的图像处理方面的变化。
- 这三个模型中最快的一个。
- 这是迄今为止最准确的一种。
结论
总而言之,我们可以说R-CNN的发展已从解决一个问题的不同算法转向了单个端到端解决方案。这种组合使您几乎可以使任何方法都更加准确和最有效,对象检测也不例外。参考书目
- R. Girshick, J. Donahue, T. Darrell, and J. Malik. «Rich feature hierarchies for accurate object detection and semantic segmentation.» In CVPR, 2014. arXiv:1311.2524
- R. Girshick, J. Donahue, T. Darrell, and J. Malik. «Region-based convolutional networks for accurate object detection and segmentation.» TPAMI, 2015
- R. Girshick, «Fast R-CNN,» in IEEE International Conference on Computer Vision (ICCV), 2015.
- S. Ren, K. He, R. Girshick, and J. Sun, «Faster R-CNN: Towards real-time object detection with region proposal networks,» in Neural Information Processing Systems (NIPS), 2015.