文章目录
Abstract
要解决的问题:
由于遮挡和不准确的区域推荐,导致目标CNN特征的分辨率很低,导致检测精度被降级。
作者的方法:
作者提出一种区域分解和装配检测器(R-DAD)来进行更精准的目标检测。
作者方法简介:
- 首先,为了能得到更精准地区域提案,作者还提出了多尺度推荐层(multi-scale proposal layer)来生成多种尺寸的目标提案
- 然后,将整个object区域分解成多个小区域。为了同时获取object的整个外观和部分细节,提取全部的目标区域和被分解的区域的CNN特征。
- 最后,逐步地结合多区域的特征(用RAB),来学习object和它的part之间的语义关系,并且用组合的、高等级的语义特征来做目标分类和定位。
Introduction
R-DAD依赖于:
- 基于多尺度的区域提案,来提高RPN的区域提案精准度。
- 基于多区域的外观模型,来共同描述一个对象的全局和局部外观。
Related works
前人探索:
为了提高检测和分割能力,在利用不同分辨率和区域提取多个特征图方面的一些探索:
- (Gidaris and Komodakis 2015) 通过结合多个区域特征来提高特征分辨率和多样性。
- (Zeng et al. 2016) 通过信息传递来学习不同的分辨率的特征图之间的关系和依赖。
- (Lin et al. 2017a) 从自底向上和自顶向下的路径连接卷积和反卷积(或上采样)特征mas,实现多尺度特征表示。
- HyperNet (Kong et al. 2016) and ION (Bellet al. 2016) 连接不同层的特征图,然后用转换的含有更多上下文和语义信息的特征图来预测目标
探索总结:
总的来说,都集中在了两个点:
- 用多区域表示来提高特征分辨率和多样性。
- 用多尺度表示来检测无图像金字塔的小尺寸目标。
Region Decomposition and Assembly Detector
分类网络使用ImageNet训练的,图中的base network用的是ResNet。
RDA
在RDA中学习整个图片和被拆解的图片的外观,主要过程是:
- 先将一个完成的对象区域产分成多个小区域,并且提取多个区域的特征。
- 然后在学习被拆解的部分之间的强的语义依赖的时候,把这几个部分的模型整合到一起。
- 结合全部的外观模型和部分外观模型之间的特征图,用这个来做目标回归和分类。
MRP network
该网络的目标:
- 增加区域提案的多样性平衡前景和背景样本的数量
- 平衡前景和背景样本的数量,选择合适的框来进行训练和推理。
输入:
- RPN生成的区域推荐
使用的方法:
-
缩放:用RPN生成区域提案 ,然后使用缩放因子 对区域提案进行缩放 ,作者分别设置了 ,如图二左侧,这里的缩放并不是将一个图变大或变小,而是获得一个相对于原来的推荐框的扩大,框中的内容会随之变化。
利用多尺度检测能进一步增加区域提案的多样性。- 使用更大的 ,能够获得对象的上下文信息(背景或互相遮挡的物体)。
- 使用更小的
能够在高分辨率中研究局部细节,而且对识别因被遮挡而导致无法获取全部物体细节的物体有好处。
-
过滤:当使用9个anchor和5个缩放因子的时候,在"conv4"层的大小为 的特征图中会生成 个提案,从中挑取一些低置信度和低IoU(与gt)的提案删除掉,最后将留适当数量的提案(例如256)(方法和SSD中相同)。
之后,在mini-batch中保持有物体和没物体的采样比例相等,并且用mini-batch来微调Figure 1中的检测器。
输出:
- 缩放过且过滤后适当数量的区域提案
RDA network
一般来说,特征的强烈反应是识别物体最重要的线索之一。
该网络目标:
对于来自MRP网络的每个提案,通过逐步的结合多区域的特征(RAB)来推出强线索,如图1 ORA所示。为了实现这个目的,需要学习能表示不同part的特征之间的语义关系的权重,并且利用这个权重来控制在下一层中传播的特征的数量。
输入:
- conv4的特征图
- MRP生成的ROI
使用的方法:
来自RPN的区域提案通常假定是覆盖了物体的全部区域。作者通过将
分割成多个part区域来生成更小的被拆解区域,让这些part区域覆盖不同的对象部分,如Figure 2右侧所示。
- 整体目标区域提取特征:RDA中处理whole目标区域的OD层(Whole Object Region)接在conv4之后,首先利用RoI pooling提取整个目标区域的大小为 的变形特征 , 是特征图的高和宽(对于ResNet来说,conv4的大小就是14和14,每层大小可见下图)。
- 部分目标区域提取特征:RDA处理part目标区域的WOR层(Object Decomposition)也接在conv4之后,但在提取每个part的特征之前,先通过双线性插值来上采样特征图的空间分辨率到2倍。然后执行RoIpooling,提取尺度是 的弯曲的特征图,并且定义为 , 。
1中为什么变形?因为要统一size,方便RAB操作;怎么变形的?就是普通的缩放吗?
2中为什么是放大到2倍,而不是其他倍数?2中提取的尺度是 (就是7x7),是因为 还会经过conv5再向前传播,如图所示output size是7x7,所以这里是为了Whole和Part能对应上。
使用该方法的原因:
作者发现,更好的分辨率的特征图能使物体细节能被更精准的获取,从而能提高检测率,正如Table 1所示。
RDA 前向传播流程
-
得到特征图:在前向传播的过程中,在大小是 的 层用不同的卷积核(大小是 )卷积,得到part特征 。然后用一个非线性的激活函数 (ReLU)来传递被卷积的特征,获得一个的大小为 的特征图,重复该过程三次,得到的就是要用来合并的特征图。
代表每个part或者是被结合的part,如Figure 1 RDA所示。
是偏置因子。
是核的数量。
是卷积操作。
-
Part特征结合:使用逐元素的ReLU函数来缩放线性输入,将不同区域的双向输出 和 进行合并(如 ),在每个通道上使用一个逐元素的max处理,得到组合后的特征 (如 ):
代表每个Part或结合的Part,如Figure 2所示。逐元素的聚合操作不影响size。因此,自底向上的特征图通过比较不同区域的特征逐级精炼,只保留了较强的语义特征。 -
Part特征和Whole特征比较:物体的整体特征通过基本网络的几个层(ResNet “conv5 block”)传播,得到最后一层的表现物体全部外观的特征 ,将该Whole特征也和Part模型的特征 比较,之后将精炼的特征 和目标分类[cls + 1]和框回归[ ]层连接,cls是类别的数量+1(背景)。
如Figure 3,展示了一些从R-DAD中学到的语义特征,可以看出来其中有很强的特征响应(???)。
输出:
- 精炼的
R-DAD Training
- 参数初始化:
作者利用来自ImageNet数据集的一个特征提取器的预训练和共享参数(例如ResNet的conv1-5)来初始化R-DAD。 - 微调参数:
- 微调R-DAD的高层参数(“conv3-5”),同时保留低层参数(如“conv1-2”)。
- 冻结批量归一化的参数,这些参数是在ImageNet的预训练中习得的;利用高斯分布初始化MRP和RDA网络的参数。
- 正负样本标定:
对于每个框 ,用IoU来找最佳匹配的真实框 。
将IoU超过0.5的标记为正样本 ,而且用一个向量来表示 的坐标。
将IoU是0.1-0.5的分为负样本。 - Loss计算:
最后在R-DAD的输出中,对每个box预测了四个参数化的坐标轴和类标签 ,然后用回归出来的四个参数生成调整后的框 :
其中 是被预测出来的框, 是anchor box。
能评估 和 的差距。然后通过最小化分类和回归的loss来训练:
思考
- (未解决)为什么逐步结合多区域特征就能推出强线索?
作者把图片分成了四部分,然后将四个部分的特征图都用 整合到了一块,这样的话本来每个Part都是长方形,拉伸成正方形又重叠到一起取 ,车头和车尾重叠在一块取 就能获得更强的特征响应???不清楚为什么这个聚合能获得更强的语义关系。 - (未解决)后来又把Whole和聚合的Part放在一起比较,就相当于只关注Whole和Part特征图中的最大值,难道这个最大值能表示出什么信息?这里我先写下我自己的理解,可能根本不对:
- 数值大应该是说明对这个部位反应强烈,更为敏感,而如果一个区域内是一个完整的object,那么整个区域就会充斥着反应强烈的特征,那么这个object毋庸置疑会被识别出来,但这个拆解操作显然不是为了处理这种情况;
- 如果一个区域内某一object大部分都被另一object遮挡只有少部分没有被遮挡,而这一小部分恰好在某个part中占很大比例,例如途中 的车尾,只用一个图的话可能就会将图中”人“左侧的部分识别为摩托车,而漏掉右侧的车尾部分。拆分操作可以将局部的某一object的特征放大(会将 扩大到7x7大小,更为突出该object的孤单部位),让检测器重视这个区域,但是放大之后又如何对应会原来的右侧位置(right part)呢???合并之后原来part的位置信息消失了啊,怎么搞???难道说靠Whole这个未切分的来主导边框的回归?还是说我的RAB理解错了,并不是重叠求max?(这个理解错的可能性很小)
- 这篇论文提到的方法可以应用到目前这个在做的项目上,这个项目的一个难点就在遮挡,“手”和“商品”的相互遮挡,当所持商品体积较大时,会挡住手以至于第一阶段的检测手的预测失败;当所持商品体积较小时,第二阶段的检测有无商品的判断就会失败,如果将该论文的方法应用到收款机项目中,可能会提高一些精度。