system: [SYSTEM]

user: 2. 本文方法 2.1. 整体结构 本文是基于候选区域的目标检测方法，总体结构模型如图1所示，首先主干特征提取网络采用的是残差网络ResNet-101 [ 13 ] 的卷积层和深度可分离卷积层，用于提取输入图片的特征图，ResNet各卷积层具体情况如表1所示。ResNet-101的最后一层共享卷积层(Conv4)生成的特征图输入到区域提取网络RPN (Region Proposal Network)中，得到带有分类标签和回归框的候选区域的特征图，再将RPN网络输出的特征图和由深度可分离卷积层得到的特征图，输入到PS-RoI Align层，进一步做池化操作。这时网络将会分成两部分，一部分用于判断目标物体的类别，一部分用于确定目标物体的位置。 图1. 本文框架 2.1.1. 残差网络结构 残差网络是由何凯明等人于2015年提出的一种卷积神经网络模型，曾在ILSVRC2015 [ 14 ] 大赛上获得了图像分类的第一名。与传统的卷积神经网络相比，残差网络在增加了网络深度的同时，有效避免了梯度消失和梯度爆炸、网络泛化的问题，有着更强的泛化能力。在目标识别领域，随着网络深度的增加。深层网络会更加难以训练，模型准确率会受到影响。为了解决这个问题，残差网络模型引入了残差结构和短路连接，如图2所示。 残差网络的特点如图2所示，每两层增加一个跳跃连接。记输出为H(x)的话，H(x) = F(x) + x。x为恒等映射，F(x)为残差映射，这两种映射提供了两种选择方式，用于解决随着网络程度加深导致的模型准确率下降的问题。当模型的准确率已经达到最优的值时，残差映射F(x)将被置0，这时网络的输出只有恒等映射x，此后网络将保持最优状态，从而保证了网络的准确率不会因为网络深度的增加而降低。采用ResNet-101可以利用其网络深度高，提取丰富的特征信息。而深度可分离卷积层可以大幅度地降低特征图的维度，极大地减少计算量，降低内存占用，从而提高计算速度，同时又能保证准确性。 图2. 残差块示意图 Table 1 Layers of ResNet-10 Layer name Output size 101-layer Conv1 112 × 112 7 × 7， 64， stride = 2 Conv2_x 56 × 56 3 × 3 max pool， stride = 2 [ 1 × 1 ， 64 3 × 3 ， 64 1 × 1 ， 256 ] × 3 Conv3_x 28 × 28 [ 1 × 1 ，     128 3 × 3 ， 128 1 × 1 ， 512 ] × 4 Conv4_x 14 × 14 [ 1 × 1 ， 256 3 × 3 ， 256 1 × 1 ， 1024 ] × 23 Conv5_x 7 × 7 [ 1 × 1 ， 512 3 × 3 ， 512 1 × 1 ， 2048 ] × 3 表1. ResNet-101各个卷积层 2.1.2. 深度可分离卷积层 深度可分离卷积是A G Howard等人在MobileNet [ 15 ] 中提出的，它可以大幅度减少计算量，降低内存占用，提高计算速度，同时又能保证准确性。深度可分离卷积将标准卷积分解成深度卷积和逐点卷积(即1 × 1的卷积)两部分。其中深度卷积指的是对输入图像的单个通道应用单个滤波器进行卷积，然后逐点卷积再应用一个简单的1 × 1卷积对深度卷积中的输出进行线性结合，从而生成新的更加精简的特征图。由于深度可分离卷积将卷积过程分成了两步，第一步是对单个通道进行卷积，然后再将其结合，这种分解能够极大地减少计算量以及模型的大小。假设标准卷积的输入为一个特征图F，维度为D F × D F × M，与N个维度为D K × D K × M的滤波器进行卷积操作，生成一个特征图G，维度为D G × D G × N，那么这个过程的计算量为D K × D K × M × N × D F × D F ，参数量为D K × D K × M × N，由滤波器大小和个数决定，滤波器的通道个数与输入特征图的通道数相同，输出特征图的通道数与滤波器的个数相同。 而如果将上述的特征图输入深度可分离卷积层，它首先会使用一组通道数为1的滤波器，每次只与输入特征的一个通道进行卷积，所以这个过程中，滤波器的数量和输入特征图的通道数是相同的，由此输出的特征图，再使用1 × 1卷积核进行卷积，将最终输出的通道数变成一个指定的数量。深度卷积和逐点卷积的计算量分别为D K × D K × 1 × M × D F × D F 和1 × 1 × N × M × D F × D F ，所以深度可分离卷积的计算量为D K × D K × M × D F × D F + N × M × D F × D F ，参数量为D K × D K × M + N × M，而标准卷积的计算量为D K × D K × M × N × D F × D F ，参数量为D K × D K × M × N，所以标准卷积的计算量和深度可分离卷积的计算量对比为 D K ⋅ D K ⋅ M ⋅ D F ⋅ D F + N ⋅ M ⋅ D F ⋅ D F D K ⋅ D K ⋅ M ⋅ N ⋅ D F ⋅ D F = 1 N + 1 D K ⋅ D K (1) 参数量对比为 D K ⋅ D K ⋅ M + N ⋅ M D K ⋅ D K ⋅ M ⋅ N = 1 N + 1 D K ⋅ D K (2) 由此可知，相比于标准卷积过程，深度可分离卷积大大地减少了计算量和参数量，因此提高了整个系统的检测速度。 2.2. 区域提取网络RPN (Region Proposal Network) 区域提取网络(RPN)的输入是主干网络Conv4 (见表1)输出的特征图，其输出是一系列目标物体的可能存在的区域(region proposals)和目标分类的概率得分值，此时并不输出目标的具体类别，而是输出目标物体分别属于前景和背景的概率值。为了生成候选区域(region proposals)，我们在卷积得到的特征图(feature map)上滑动一个小的网络，这个特征图也就是RPN的输入，是最后一个共享卷积层的输出，也就是本文中Conv4的输出。本文中，使用的是3 × 3的卷积层，然后加上两个1 × 1的卷积层，得到的特征图分别输入两个平行的全连接层，分别进行分类和回归。 图3. 锚点示意图 锚点(图3)：在每个滑动窗口位置，我们需要同时预测多个候选区域(region proposals)，其中每个位置最大可能建议的数量表示为k，回归层的一个回归框需要的数据为(x，y)，w，h，它们分别为回归框的角点的坐标，回归框的宽度和高度，那么总共需要4 k个输出。同理，分类层需要2 k个输出，因为需要估计每个区域(proposals)是否是目标物体的概率。锚点的位置是在滑动窗口中的，和候选框面积大小和纵横比相关。本文中，我们使用的纵横比有三种{1:2，1:1，2:1}，面积种类有五种，分别是{32 2 ，64 2 ，128 2 ，256 2 ，512 2 }，因此每个滑动窗口每次滑动产生15个锚点。对于W × H大小的特征图，锚点个数为W × H × 15。 2.3. PS-RoI Align (位置敏感的候选区域对齐) 本文中，使用PS-RoI Align来对齐特征图，而不用传统的池化方法。PS-RoI Pooling是RFCN中提出的，一般情况下，网络越深，其具有的平移不变性越强，这个性质对保证分类模型的鲁棒性具有积极意义。然而在检测问题中，对物体的定位任务要求模型对位置信息具有良好的感知能力，过度的平移旋转不变性会削弱这一性能。研究表明，对于较深的卷积神经网络(Inception [ 16 ] 、ResNet等)，Faster R-CNN检测框架存在一个明显的缺陷：检测器对物体的位置信息的敏感度下降，检测准确度降低。所以一般会采取将RPN的位置向浅层移动，本文中是将RPN嵌入到Conv4_x的位置，但是这样的话，也明显增加了后续的计算量，使得检测速度明显变得很慢。所以本文中采用PS-RoI Align。也就是将RoI Align移植到PS-RoI Pooling中，主要的改进就是两次量化的取消：ROI的边界坐标值和每个ROI中所有矩形单元的边界值保持浮点数形式，在每个矩形单元中计算出固定数量的采样点的像素值作平均池化。PS-ROI Align对模型的检测性能有提升，对小物体的感知能力有明显改善。 2.4. 基于关键点的目标定位和分类 本文方法的整体框架如图1所示。在R-CNN之后出现的目标检测方法，都是在R-CNN上进行改进的。比如，在COCO数据集上检测精度非常高的Faster R-CNN网络，它的R-CNN子网络采用的是两个非常大的全连接层，来作为分类器，这样一来，当候选区域的数量比较庞大的时候，该网络的计算量也是巨大的。当Faster，Zeming Li等人提出的Light-Head R-CNN [ 17 ] 方法，是一种基于Faster R-CNN的改进方法。Faster R-CNN基于候选区域的方式由一个CNN主干网络得到相应的特征图，然后从这些特征图中提取出每一个ROI的特征。随后我们就可以利用这些特征对相应的候选区域进行分类和定位。和Faster R-CNN相比，受到Grid R-CNN的启发，我们采用了一种关键点机制取代传统的边框回归来定位，并利用了其中的一些方法，如点的预测定位机制、点与点之间进行特征融合使得点的定位更加精准、以及如何定位不在目标物体上的点。关键点的预测采用了一个全卷积网络。它能够输出一个概率热图(heatmap)，从中我们可以获取与目标物体对应的候选框的网格点的位置。最后，对于这些网格点，我们通过一个特征图级的信息融合方法来得到精确的物体的候选框。 2.4.1. 基于关键点的候选框定位 传统的基于深度学习的目标检测方法中，通常使用一些全连接层作为一个回归器，得到左上角点的坐标(x，y)和width (宽度)，height (高度)四个值，来进一步预测出目标物体位置的边框。然而，我们采用的是一个全卷积网络来预测一些关键点的位置，然后利用这些点来确定精确的目标物体的候选框。我们设计了一种3×3的网格形式，与目标物体的候选框相对应。如图4所示是一个3 × 3的网格的例子，总共9个点，分别是四个角点，四条边的中点和中心点。将由RPN提取到的候选区域ROI的特征，输入到PS-ROI Align中，PS-RoI Align大小固定为14 × 14，生成分辨率为14 × 14的特征图，对生成的特征图进行连续的八个3 × 3膨胀卷积(针对大接收野的)。然后连接两个连续的2 × 反卷积层，所以每个候选区域(region proposal)生成分辨率为56 × 56的热图(heatmap)。在每个heatmap上，我们使用了像素级的sigmoid函数，以便得到最终的输出概率图。每一个heatmap都有一个相应的监督图，以每5个十字交叉形状的像素点都会标记为目标点的位置。本文使用了二进制交叉熵损失函数来对结果进行优化，在检测中选取每个heatmap中最大值点作为相应的关键点。 图4. 3 × 3关键点定位示例 由于生成的9个关键点都位于heatmap之中，所以为了对目标进行定位，就必须将这些点映射回原图像中，如图5所示： 图5. 关键点映射图 图5中最大的矩形框表示输入图像，蓝色的框表示候选区域，下边的矩形框表示相应的heatmap，heatmap中的红色的点表示heatmap中值最大的点(H x ，H y )，点(I x ，I y )表示该最大值点映射回原图像中的原始点，(P x ， P y )表示候选区域的左上角坐标点。将heatmap中的最大值点映射回原图中，公式如式(3)所示。 I x = P x + H x ω o ω p I y = P y + Hy h o h p (3) 其中(P x ，P y )是输入图片中候选区域的左上角的点的位置，ω p 和h p 分别是候选区域的宽度和高度，ω o 和h o 分别是输出的heatmap的宽度和高度。通过式(3)，将这9个关键点从heatmap映射回了原图中，接下来就要根据这些点确定目标物体的坐标框。将物体候选框四条边的坐标记为B = (x l ，y u ，x r ，y b )，分别表示左、上、右、下四条边。将第j个点的坐标记为g j = (x j ，y j )，该点在heatmap中的概率值记为p j 。定义E i 为第i条边上的点的索引集合，如点g j = (x j ，y j )位于候选框的第i条边上，那么j∈E i 。如图6所示。 图6. 回归框的预测 根据图6，我们采用了加权求和的方式，来求坐标B。例如，以最左边的边界x l 为例，选择最左边的三个点的坐标，并计算它们三个点的x坐标的加权和，权重就是相应的各点在heatmap中的概率值p j 。计算公式如式(4)所示。 x l = 1 N ∑ j ∈ E 1 x j p j ，   y u = 1 N ∑ j ∈ E 2 y j p j x r = 1 N ∑ j ∈ E 3 x j p j ， y b = 1 N ∑ j ∈ E 4 y j p j (4) 2.4.2. 点的特征融合 特征融合：如果仅仅按照上文所描述的方法对目标物体进行定位的话，还存在一定的问题。由于上文的方法只利用了一个heatmap来生成一个点，在这种情况下，如果某个点存在背景区域，那么该区域获得的信息是不足以精确地定位目标物体的边界位置的，这样就需要融合周边的点对应的heatmap来对其进行校正。融合方法如图7所示。 图7. 关键点之间的特征融合 如图7所示，以左上角的点为例，假设其对应的heatmap为F i ，和左上角的点距离为一个单位的点称为源点，源点构成的集合设为S i ，假设某个源点的heatmap为F j ，对F j 进行连续三次的卷积运算，卷积核大小为5 × 5，得到 F ′ j ，然后将源点集合中，所有的源点对应的heatmap进行上述运算之后，与F i 相加得到融合后的 F ′ j ，如图7(a)所示，有两个点与目标点进行了特征融合，这是距离为一个单位长度的特征融合情况，称为一阶融合。进行完一阶融合后，还需要进行二阶融合，如图7(b)所示，对距离目标点两个单位长度的点进行特征融合。融合的公式如式3所示。 F ′ j = F i + ∑ j ∈ S i T j → i ( F j ) (5) T j→i 是表示将源点的heatmap进行三次5 × 5卷积操作的函数。这样一来，经过两次融合之后得到的heatmap，再通过上述的点的定位方法，确定关键点的精确位置，生成对应的边界框，从而提高边界框的定位精度。 区域拓展：上文的方法还不能完全实现对点的准确定位，因为上文没有考虑到一种情况，就是有一些候选区域覆盖的区域比较小，其可能存在和ground truth (真值框)的重合度较小的情况。如图8所示。 图8. 扩展区域映射图 如图8所示，白色框为候选区域，绿色框为ground truth区域，这种情况下，只有左边的中点和中心点是在proposal中的，这会导致在这些关键点的训练中，会缺少这些点的标签，难以对其进行有效地监督训练，导致训练样本的利用率降低。而在预测阶段，如果只是简单地选择heatmap中的最大值点，出现如图8的情况，将不能预测位于候选区域之外的那些点的正确位置。为了解决这个问题，采用了以下的解决方案。本文采用了扩展heatmap区域的方法，具体来说，即不改变候选区域的范围，仍然从原来的proposal提取特征，但是在将输出的heatmap的区域映射回到原始图像时，映射到一个更大的区域，如图8的虚线部分。映射公式如式(6)所示。 I ′ x = P x + H x ω o ω p + ( H x ω o − 1 2 ) ω p I ′ y = P y + H y h o h p + ( H y h o − 1 2 ) h p (6) 新的映射关系是在原来的映射关系上添加了一个修正项，这样一来，当heatmap中选择的点在左侧时，映射回原始图像的点会向左移动，在右侧是向右移动，在y方向也是同样的映射关系。通过映射的修正，就解决了proposal与ground truth重合过少难以训练的问题，又避免了因扩大proposal带来的背景特征混入的问题。这样的话，proposal中所有的关键点(与ground truth的重叠IoU大于0.5的区域)都将被相应区域的heatmap覆盖。