• 回答数

    3

  • 浏览数

    154

silvia147852
首页 > 职称论文 > 目标检测注意力机制相关论文

3个回答 默认排序
  • 默认排序
  • 按时间排序

爆米花也是花

已采纳

(该分享持续更新中...) 这篇论文主要有三个贡献点: 目前,物体检测、语义分割等技术都是集中在如何在图片上检测出物体,但是忽略了物体与物体之间的关系。一项最近的工作提出了用图(场景图)来代表一个场景。场景图是图像的可解释的结构化表示,可以支持更高级别的视觉智能任务,如captioning。 将每一对节点(对象)视为潜在的边(关系)的自然方法本质上是对全连通图的推理,这种方法在建模上下文关系时通常是有效的,但对对象数量的缩放效果很差(二次),很快就变得不切实际。嘴朴素的修正方法是采用随机采样,虽然它是efficient,但不是effective,因为对象之间的相互作用的分布远远不是随机的。 作者的解决办法: 图1.给一张图片,模型从图片中抽取出objects(a), 所有节点考虑可能存在的边(b),通过一个医学系的方法‘relatedness’裁去不可能发关系,从而产生更稀疏的候选图结构(c)。最后,利用aGCN去集成全局信息并且更新物体节点和关系的标签(d) 在这项工作中,我们提出了一个新的框架,Graph R-CNN,它通过两种机制有效地利用对象关系规则来智能地稀疏化和推理候选场景图。我们的模型可以分解为三个逻辑阶段:1)对象节点提取,2)关系边缘剪枝,3)图上下文集成,如图1所示。 在对象节点提取阶段,我们使用了一个标准的对象检测的pipeline(faster rcnn)。这就产生了一组localized object regions,如图1b所示。我们将在剩下的pipeline中引入两个重要的新特性,以合并上面讨论的对象关系中的真实世界的规则性。首先,我们介绍了一个关系建议网络(RePN),该网络能够有效地计算对象对之间的关联分数,这些分数被用来智能地修剪不太可能的场景图连接(与之前工作中的随机修剪不同),剪枝后的稀疏图如图1c所示。其次,给出了稀疏连接的候选场景图,我们应用了一个注意图卷积网络(aGCN)来在整个图中传播higher-order上下文——更新每个对象及其基于其邻居的关系表示。与现有的工作相比,我们预测每个节点的边attention,使我们的方法能够学习调节不可靠或不太可能的边缘之间的信息流。我们在图1d中显示了细化的图形标签和边缘attention(与边缘宽度成比例)。 现有对于场景图生成的指标是基于召回⟨主题、谓词、对象⟩三元组或给定ground truth的object localizations的对象和谓词。为了揭示这些度量标准存在的问题,考虑一个方法,该方法将图1a中的boy误认为是man,但在其他方面识别出他是1)站在消防栓后面,2)靠近一辆汽车,3)穿着一件毛衣。在基于三元组的度量标准下,这个小错误(boy vs man)将被严重惩罚,尽管大多数boy的关系被正确识别。尽管提供ground-truth区域的度量方法通过严格关注关系预测来回避这个问题,但是它不能准确地反映整个场景图生成系统的测试时性能。 为了解决这种不匹配,我们引入了一种新的评估度量(SGGen+),它更全面地评估场景图生成的性能,包括对象、属性(如果有的话)和关系。我们提出了度量SGGen +计算总的recall对于独立实体(对象和谓词),pair 实体⟨对象,属性⟩(如果有的话),和三元组实体⟨主题、谓词、对象⟩。我们在这个新的度量下报告现有方法的结果,发现我们的方法也显著地优于最先进的方法。更重要的是,这个新的度量为生成的场景图和真实场景图之间的相似性提供了一个更鲁棒、更全面的度量。 具体来说,本工作通过引入一种新的模型(graph R-CNN)来解决场景图生成问题,该模型可以利用对象关系的规律性,并提出了一种更全面的场景图生成评价指标(SGGen+)。我们将我们的模型与现有的标准度量方法进行基准测试,而这个新度量方法的性能优于现有方法。 利用上下文来提高场景理解的想法在计算机视觉中有着悠久的历史[16,27,28,30]。最近,Johnson等人受到图形界研究的表示方法的启发,提出了从图像中提取场景图的问题,这将对象检测的任务[6,7,22,31,32]概括为也检测对象的关系和属性。 已经提出了许多方法来检测对象及其关系。尽管这些工作中的大多数指出,对场景图中二次关系的推理是棘手的,但每个都采用了启发式方法,如随机抽样来解决这个问题。我们的工作是第一个引入一个可训练的关系建议网络(RePN),它学会了在不牺牲efficacy的情况下从图中删除不可能的关系边缘。RePN提供了高质量的候选关系,我们发现它提高了场景图生成的整体性能。 大多数场景图生成方法还包括上下文传播和对候选场景图进行推理的机制,以细化最终的标记。在[40]中,Xu等人将问题分解为两个子图,一个用于对象,另一个用于关系,并执行消息传递。类似地,在[17]中,作者提出了两种消息传递策略(并行顺序),用于在对象和关系之间传播信息。Dai等人将场景图生成过程建模为条件随机场(CRF)的推理。Newell等人提出直接从图像像素中生成场景图,而不需要使用基于关联图嵌入的对象检测器。在我们的工作中,我们开发了一种新的注意图卷积网络(aGCN)来更新节点和关系表示,通过在候选场景图的节点之间传播上下文来操作视觉和语义特征。虽然在功能上类似于上述基于消息传递的方法,但aGCN是高效的,可以学习将注意力放在可靠的边缘,并减弱不太可能的影响。 以往的许多方法都注意到在场景图生成过程中具有很强的规律性,从而激发了我们的方法。在[23]中,Lu等人整合了语言中的语义先验,以改进对对象之间有意义关系的检测。同样,Li等人[18]证明了region caption也可以为场景图生成提供有用的上下文。与我们的动机最相关的是,Zeller等人将motifs的概念(即经常出现的图结构)形式化。并在VG数据集[14]中检测它们的出现的概率。作者还提出了一个令人惊讶的强基线,它直接使用频率先验来明确地综合图结构中的规律来预测关系。 我们的关系建议网络(Relationship Proposal Network, RePN)受到了RPN的启发,与用于对象检测的faster R-CNN[32]的区域建议网络(region Proposal Network, RPN)紧密相关。我们的RePN在本质上也类似于最近提出的关系建议网络(Rel-PN)[45]。这些方法之间有许多细微的差别。Rel-PN模型独立地预测主题、对象和谓词的建议,然后重新对所有有效的三元组进行评分,而我们的RePN根据对象生成关系,允许它学习对象对关系的偏差。此外,他们的方法是类无关的,并没有用于场景图生成。 GCNs最初是在[13]的半监督学习环境中提出的。GCNs将图数据上的复杂计算分解为一系列局部化操作(通常只涉及相邻节点),用于每个节点的每个时间步。在计算之前,结构和边缘强度通常是固定的。为了完整起见,我们注意到即将出版的出版物[36]同时独立地开发了一个类似的GCN注意机制(如aGCN),并在其他(非计算机视觉)上下文中显示了它的有效性。 在这项工作中,我们将场景图建模为包含图像区域、关系及其标签的图。 代表image, 代表nodes集合(一个node对应一个localized object region), 代表物体间的关系, 分别代表object和relationship的labels。因此,我们的目标是为 建模,在我们的工作中,我们把场景图的生成分解为三部分: 将图的构造(节点和边)与图的标注分离开来。这个因式分解背后的直觉很简单。首先,object region proposal 通常使用现成的对象检测系统(如faster rcnn[32])进行建模,以生成候选区域。值得注意的是,现有的方法通常将第二个关系建议项 建模为顶点 之间潜在边的均匀随机抽样。相反,我们提出了一个关系建议网络(RePN)来直接建模 ——使我们的方法成为第一个允许学习整个生成过程端到端。最后,图标记过程 通常被视为迭代求精过程。模型的pipeline如图2所示:每一个object proposal 都与一个空间区域 , 一个合并的特征向量 , 一个初始化估计标签分布 over 相关联。我们将对于所有n个proposals的向量集合表示为矩阵 以及 Relation Proposal Network 给定上一步提出的n个对象节点,它们之间可能有 个连接;然而,正如前面所讨论的,由于真实对象交互中的规则性,大多数对象对不太可能有关系。为了对这些规律进行建模,我们引入了一个关系建议网络(RePN),该网络能够有效地估计对象对之间的关联性。通过对不太可能关系的边缘进行剪枝,可以有效地稀疏化候选场景图,保留可能的边缘,抑制不太可能的边缘带来的噪声。 在这篇论文中,我们利用估计的类别分布( )来推断关联性——本质上是学习软类别关系的先验。这种选择与我们的直觉一致,即与其他类相比,某些类相对不太可能交互。具体,给定初始对象分类分布 ,我们给所有的 有向对 评分, 计算 时的相关性,其中 是一个习得的相关性对函数。 的一个直接实现可以将连接[p^o_i, p^o_j]作为输入传递给一个多层感知器,该感知器输出分数。然而,考虑到对象对的平方数,这种方法将消耗大量的内存和计算。为了避免这种情况,我们考虑一个非对称的内核函数: 分别代表在关系中主语和宾语对映射函数。这个分解使得,仅使用 的两个投影过程,然后执行一次矩阵乘法就能获得分数矩阵 。对于 和 ,我们使用两个多层感知器(mlp)与相同的架构(但不同的参数)。我们还对分数矩阵S进行了sigmoid操作,使得每一个元素都为0~1之间。 在获得分数矩阵后,我们将其降序排序,然后选择前K对。然后,我们使用非最大抑制(NMS)来过滤出与其他对象有明显重叠的对象对。每个关系都有一对边界框,组合顺序很重要。我们计算两个对象对 and 之间对重叠: 计算两个box交集的区域, 计算并集区域。剩余的m个对象对被认为是具有意义关系E的候选对象。利用E,我们得到了一个图 ,它比原来的全连通图稀疏得多。随着图的边的提出,我们还通过从每个对象对的联合框中提取特征,得到所有m个关系的可视化表示 。 为了整合由图结构提供的上下文信息,我们提出了一个注意图卷积网络(aGCN)。在描述我们提出的aGCN之前,让我们简要回顾一下“普通的”GCN,其中每个节点 都有一个表示 如在[13]中提出的那样。简单,目标节点图中,相邻节点的表示 首先通过学习改变线性变换矩阵 .然后,这些转换表示与预先确定的权值α聚集,紧随其后的是一个非线性函数σ(ReLU [25])。这种分层传播可以写成: 或者我们可以把节点整合进一个矩阵中,就可以得到:与i不相邻的节点设定为0,并且设定αii为1。在传统的GCN中,图中的连接是已知并且系数向量αi是基于对称规范化邻接矩阵的特性预设的。 在这篇论文中,我们将传统的GCN拓展了attention版本,通过调节α。为了能够从节点features预测attention,我们通过一个拼接的节点feature学习了一个两层的MLP,并且对得到的分数进行一次softmax。对于节点i的attention是:and 是习得参数,[·, ·] 是拼接操作。通过定义,我们设定 and 。由于注意力机制是节点特征的函数,每次迭代都会导致注意力的改变,从而影响后续的迭代。 回想一下,在前面的小节中,我们有一组N个对象区域和m个关系。在此基础上,我们构造了一个图G,其中节点对应于对象和关系建议。我们在关系节点及其关联对象之间插入边。我们还在所有对象节点之间直接添加了跳转连接边。这些连接允许信息直接在对象节点之间流动。最近的研究表明,对目标相关性进行推理可以提高检测的性能。我们将aGCN应用于此图,基于全局上下文更新对象和关系表示。 注意到我们的图捕获到不同类型到连接( ↔ relationship, relationship ↔ subject and object ↔ object)。此外,每个连接之间的信息流可能是不对称的(the 信息量 of subject on relationship might be quite different from relationship to subject)。我们学习了每种类型和顺序的不同转换——将节点类型a到节点类型b的线性转换表示为 ,其中s=subject、o=objects和r=relationships。Object node的representation的更新公式如下(object features为 , relationship features为 ):with and similarly for relationship nodes as: 一个开放的选择是如何初始化object and relationship node represenstions ,它可能被设置为任何intermediate feature representations,甚至是对应类标签的pre-softmax输出。在实践中,我们同时运行可视化的和语义化的aGCN计算——一个具有可视化的特性,另一个使用pre-softmax输出。通过这种方式,我们既可以推断出较低层的视觉细节,也可以推断出较高级别的语义共现(即汽车轮子)。进一步地,我们把语义aGCN的注意力放在视觉aGCN上——基于视觉线索有效地调节语义信息流。这也加强了两个图中表示的真实对象和关系以相同的方式与其他对象交互。 Loss Function 在Graph R-CNN,我们把场景图生成过程分解成三个子过程: 。在训练阶段,这些子过程都是使用监督训练。对于 ,我们用RPN相同的损失(binary cross entropy loss on proposals,regression loss for anchors)。对于 ,我们使用另一个binary cross entropy loss on the relation proposals。对于最后的场景图生成 ,两个muti-class cross entropy losses是被用于object classification and predicate classification。 场景图生成是一个结构化的图上预测问题,如何正确、有效地对预测进行评价是当前场景图生成研究中尚未解决的问题。我们注意到图论[5]对基于最小图编辑距离的图相似度进行了深入的研究;然而,计算准确的解决方案是np完全和ap近似的APX-hard[20]。 以前的工作通过在[40]中引入一个简单的基于三元组回归的度量来评估场景图的生成,从而绕过了这些问题。根据这个指标,我们将称之为SGGen, the ground truth of 场景图表示为一组通过精确匹配计算。也就是说,在生成的场景图中,如果三个元素都被正确地标记,并且object和subject nodes都被正确地定位(例如,边界框IoU > )。虽然计算简单,但这种度量导致了一些不直观的相似度概念,如图3所示。 SGGen+的计算公式: 是一个计数操作, 是正确被定位和识别的物体节点数; 是正确谓词的数目。由于谓词的定位取决于subject和object的正确定位,所以只有在主语和宾语都正确定位并且正确识别谓词的情况下,我们才会将其算作一个。 是针对三元组的,和SGGen一样。N是ground真值图中的条目数(对象、谓词和关系的总数)。

274 评论

壹只头俩只脑

写在前面的话:本文来自于本人的一次课程作业综述,当时还是写了很久的,不想交上去就完了,所以发上来留个纪念。 将注意力机制用在计算机视觉任务上,可以有效捕捉图片中有用的区域,从而提升整体网络性能。计算机视觉领域的注意力机制主要分为两类:(1) self-attention;(2) scale attention。这两类注意力从不同的角度进行图片内容理。本文将分别就这两种注意力机制进行说明,并列举相关的文献。 注意力是人类大脑固有的一种信号处理机制。人类大脑通过快速从视觉信号中选择出需要重点关注的区域,也就是通常所说的注意力焦点,然后重点处理这些区域的细节信息。通过注意力机制可以利用有限的大脑资源从大量的信息中筛选出有价值的信息。注意力机制最初被用在深度学习任务上是在机器语言翻译领域,将源语言翻译成目标语言,目标语言中的词并非与源语言的所有词都同等相关,而是仅与特定的几个词有相关性。因此,注意力机制可以将这个词的注意力分配到这些最相关的词上。之后,[1]中提出自注意力机制 (self-attention),并将其用于Transformer模块中,极大提升了翻译模型的精度和并行性。与传统的注意力机制不同,self-attention的查询(query)和键(key)属于同一个域,计算的是同一条语句(或同一张图片)中不同位置之间的注意力分配,从而提取该语句(或图片)的特征。 [2]首先将self-attention用于视觉任务中,提出了non-local network,来捕获图片(或视频)中的长程依赖(long-range dependency)。Self-attention机制在视觉任务,如语义分割[3],生成对抗网络[4]中取得了巨大的成功。它解决了卷积神经网络的局部视野域问题,使得每个位置都可以获得全局的视野域。不过,由于在视觉任务中,像素数极多,利用所有位置来计算每个位置的attention会导致巨大的计算和显存开销;另一方面,由于self-attention简单将图像当成一个序列进行处理,没有考虑不同位置之间的相对位置关系,使得所得到的attention丧失了图像的结构信息。之后对于self-attention的一个改进方向就是,在self-attention中加入相对位置信息或绝对位置信息编码。 除了self-attention,视觉任务中另一类注意力机制为scale attention。与self-attention不同,scale attention基于每个位置本身的响应。就分类任务而言,每个位置的响应越大,则其对于最终的分类结果影响越大,那么这个位置本身的重要性就越强。根据响应大小有选择地对特征图进行强化或抑制,就可以在空间(或其他维度)上达到分配attention的目的。[5]所提出的SENet,就相当于channel-wise的attention。类似的还有GENet[6],CBAM[7]等,GENet将SENet中的channel-wise attention扩展到了spatial上,CBAM设计了串行的两个模块,分别进行channel-wise attention和spatial-wise attention的计算。另一篇工作residual attention network[8]也属于这一类attention,与SENet系列不同之处在于,本文采用bottom-up top-down形式得到spatial attention,再将其以残差的形式作用回原来的特征。这一类注意力机制仅仅基于图像中每个位置本身,对显著区域进行增强,非显著区域进行抑制,比self-attention机制更接近与人类视觉系统的注意力机制。 普通卷积将特征图的每个位置作为中心点,对该位置及其周围的位置进行加权求和,得到新的特征图上该位置对应的滤波结果,对于边缘,必要时可以用0进行填充。这一操作可以有效提取图片的局部信息。随着网络加深,卷积层不断堆叠,每个位置的视野域也越来越大,网络提取到的特征也逐渐由一些low-level的特征,如颜色、纹理,转变到一些high-level的结构信息。但是,简单通过加深网络来获取全局视野域,所带来的计算开销是很大的,并且,更深的网络会带来更大的优化难度。 Self-attention操作[2]可以有效地捕获不同位置之间的long-range dependency,每个位置的特征都由所有位置的加权求和得到,这里的权重就是attention weight。由此,每个位置都可以获取全局的视野域,并且不会造成特征图的退化(分辨率降低),这对于一些密集的预测任务,如语义分割、目标检测等,具有很大的优势。 图1展示了self-attention的网络结构。给定输入X,将两个1x1卷积分别作用于X上,得到的两个特征利用f(⋅)得到相关性矩阵,图中展示的f(⋅)为矩阵乘法。最后将相关性矩阵作用在原特征经过1x1卷积变换后的特征上。 公式(1)展示了第i个位置的相应的计算方法,其中f(⋅)为相关性函数,g(⋅)为变换函数,x_i为输入第i个位置的特征,y_i为第i个位置的输出特征,C(x)为归一化因子,一般采用总位置的个数。 由于self-attention可以有效捕获图片(或视频)中的长距离依赖,从而在不影响特征分辨率的同时获取全局的视野域,在视觉任务上引入self-attention,可以带来较大的性能提升。 论文[2]将self-attention用在视频动作识别任务上,如图2,对于视频中动作的识别,可能会跨越多帧,需要建立多帧视频之间的联系,self-attention的这种长距离依赖的特征就能有效建立多帧不同位置之间的联系。 论文[2]将self-attention用在分割任务上。由于孤立预测每个位置的类别很容易导致分错,分割任务需要结合每个位置的上下文对该位置进行分类。文章定义了所谓物体上下文(object context),即每个位置所属于的类别构成的集合,即为这个位置所属于的object context。 Object context是由不同位置的特征相似度来定义的,也就是self-attention过程中的相似度矩阵,将相似度矩阵与原特征进行相乘,即可将object context作用于该特征图。由此,文章提出了Object Context Network(OCNet),如图3。其中,base-OC为基本的self-attention模块,pyramid-OC和ASP-OC分别将self-attention与PSP模块和ASPP模块结合,在提取object context的同时,利用不同倍率的pooling操作或不同ratio的dilated convolution获取多尺度的特征,最大程度的利用context信息对原图进行分割。不过,本文虽然提出object context为每个像素及所有其他与其属于同一类的像素构成的集合,在实际操作的时候却并不是这样计算每个位置的object context的,特征上的相似性并不一定代表属于同一位置。因此,用object context来给self-attention新的解释,在说服力上还是存在一定问题的。 Scale attention是另一种注意力机制,与self-attention不同,scale attention是只基于key context的,对图像中的显著性区域进行增强,其他区域相应的进行抑制,从而使得输出的特征具有更强的区分性。这一类注意力机制的代表工作包括,residual attention network[8],squeeze-and-excite network[5],gather-and-excite network[6]以及CBAM[7]。 [8]提出,在分类网络中,网络深层比浅层更关注于被分类的物体,也就是图片的主体内容,这是因为,深层网络具有更大的视野域,可以看到更广的范围;而浅层网络只能看到每个位置及其邻域。因此,如果将网络较深层的信息作为一种mask,作用在较浅层的特征上,就能更好的增强浅层特征中对于最终分类结果有帮助的特征,抑制不相关的特征。如图5所示,将attention作为mask作用在原来特征上,得到的输出就会更加集中在对分类有帮助的区域上。 因此,文章提出一种bottom-up top-down的前向传播方法来得到图片的attention map,并且将其作用在原来的特征上,使得输出的特征有更强的区分度。图6展示了这种attention的计算方式。由于更大的视野域可以看到更多的内容,从而获得更多的attention信息,因此,作者设计了一条支路,通过快速下采样和上采样来提前获得更大的视野域,将输出的特征进行归一化后作用在原有的特征上,将作用后的特征以残差的形式加到原来的特征上,就完成了一次对原有特征的注意力增强。文章还提出了一个堆叠的网络结构,即residual attention network,中间多次采用这种attention模块进行快速下采样和上采样。 这篇文章在视觉领域开前向传播的注意力机制的先河,之后的注意力机制都是采用这种前向传播过程中得到的attention进行增强,并且一般为了优化方便,都会以残差的方式进行。 Squeeze-and-excite是另一类scale attention。与residual attention不同,squeeze-and-excite通过global pooling来获得全局的视野域,并将其作为一种指导的信息,也就是attention信息,作用到原来的特征上。 [5]提出了squeeze-and-excite network(SENet),提出了channel-wise的scale attention。特征图的每个通道对应一种滤波器的滤波结果,即图片的某种特定模式的特征。对于最终的分类结果,这些模式的重要性是不同的,有些模式更重要,因此其全局的响应更大;有些模式不相关,其全局的响应较小。通过对不同通道的特征根据其全局响应值,进行响应的增强或抑制,就可以起到在channel上进行注意力分配的作用。其网络结构如图7所示,首先对输入特征进行global pooling,即为squeeze阶段,对得到的特征进行线性变换,即为excite阶段,最后将变换后的向量通过广播,乘到原来的特征图上,就完成了对不同通道的增强或抑制。SENet在2017年的ImageNet2017的分类比赛上获得了冠军,比之前的工作有了较大的性能提升。 [6]进一步探索了squeeze-and-excite在更细的粒度上的表现,提出了gather-excite操作。SENet将每个通道的特征图通过global pooling得到一个值,本文采用了不同步长的pooling(2x,4x,8x,global),然后利用上采样将pooling后的特征插值恢复到原来大小,最后作用在原来特征图上,具体操作如图8所示。不过,实验结果显示,global pooling的性能最好,将特征区间划分得更细致虽然增加了参数,但是反而会带来性能的下降。 [1] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008. [2] Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 7794-7803. [3] Yuan Y, Wang J. Ocnet: Object context network for scene parsing[J]. arXiv preprint arXiv:, 2018. [4] Zhang H, Goodfellow I, Metaxas D, et al. Self-attention generative adversarial networks[J]. arXiv preprint arXiv:, 2018. [5] Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7132-7141. [6] Hu J, Shen L, Albanie S, et al. Gather-Excite: Exploiting feature context in convolutional neural networks[C]//Advances in Neural Information Processing Systems. 2018: 9401-9411. [7] Woo S, Park J, Lee J Y, et al. Cbam: Convolutional block attention module[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 3-19. [8] Wang F, Jiang M, Qian C, et al. Residual attention network for image classification[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 3156-3164.

231 评论

李利李利5

论文: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

目标检测网络大多依靠 区域生成 (region proposal)算法来假设目标的位置。 R-CNN 是采用 Selective Search 算法来提取(propose)可能的 RoIs(regions of interest) 区域,然后对每个提取区域采用标准 CNN 进行分类。选择性搜索(Selective Search )方法就是在目标对象周围设定2000个形状大小位置不一的候选区域,目标物体在候选区域的可能性还是比较大的。然后对这些区域卷积,找到目标物体,虽然大多数区域都是无用的。与寻找几乎个区域比起来,这种方法要高效的多。

Fast R-CNN ,不在原始图像生成备选区域,而是先整张图片通过卷积网络得到特征图,然后在特征图上使用备选区域算法得到感兴趣的区域在特征图的映射,之后使用 Rol Pool将所有区域变成同样尺寸,大大减少了这些目标检测网络的运行时间,但是区域生成的计算成为整个检测网络的瓶颈。

Faster R-CNN 引入了一个 区域生成网络(Region Proposal Network,RPN) ,该网络与检测网络共享输入图像的卷积特征,从而使接近零时间成本的区域生成成为可能。 RPN是一个全卷积网络,可以同时在每个位置预测目标边界和目标分数。RPN经过端到端的训练,可以生成高质量的区域候选框,然后提供给Fast R-CNN用于检测。

Faster R-CNN 由两个模块组成:第一个模块是区域生成的深度全卷积网络,第二个模块是使用备选区域的Fast R-CNN检测器。整个系统是一个单个的,统一的目标检测网络。使用最近流行的“注意力”机制的神经网络术语,RPN模块告诉Fast R-CNN模块在哪里寻找目标。

针对一张图片,需要获得的输出有:

Faster R-CNN 第一步是采用基于分类任务(如ImageNet)的 CNN 模型作为特征提取器。输入图片表示为 H × W × D 的形式,经过预训练 CNN 模型的处理,得到卷积特征图(conv feature map)。

Faster R-CNN 最早是采用在 ImageNet 训练的 ZF 和 VGG ,其后出现了很多其它权重不同的网络.。如 MobileNet 是一种小型效率高的网络结构,仅有 参数;而ResNet-152 的参数量达到了 60M;新网络结构,如 DenseNet 在提高了结果的同时,降低了参数数量。

以 VGG16 为例:

VGG16 图片分类时,输入为 224×224×3 的张量(即,一张 224×224 像素的 RGB 图片)。网络结构最后采用 FC 层(而不是 Conv 层)得到固定长度的向量,以进行图片分类.。对最后一个卷积层的输出拉伸为1维的向量,然后送入 FC 层。官方实现中是采用的卷积层 conv5/conv5_1 的输出。

在深度上,卷积特征图对图片的所有信息进行了编码,同时保持相对于原始图片所编码 “things” 的位置。例如,如果在图片的左上角存在一个红色正方形,而且卷积层有激活响应,那么该红色正方形的信息被卷积层编码后,仍在卷积特征图的左上角。因此利用特征图检测目标所在的位置是可行的。

ResNet 结构逐渐取代 VGG 作为基础网络,用于提取特征。ResNet 相对于 VGG 的明显优势是,网络更大,因此具有更强的学习能力.。这对于分类任务是重要的,在目标检测中也应该如此。另外,ResNet 采用残差连接(residual connection) 和 BN (batch normalization) 使得深度模型的训练比较容易。

然后,RPN(Region Propose Network) 对提取的卷积特征图进行处理,寻找可能包含 目标的 预定义数量的区域(regions,边界框) 。为了生成候选区域,在最后的共享卷积层输出的卷积特征图上做 3x3 卷积,卷积核共有512个(VGG),后面是ReLU,这样每个 3x3 区域会得到一个512维的特征向量。然后这个特征向量被输入到两个全连接层——一个边界框回归层(reg)和一个边界框分类层(cls)。

下面解释 k, 2k, 4k 的含义。

基于深度学习的目标检测中,可能最难的问题就是生成长度不定(variable-length)的边界框列表(bounding-boxes),边界框是具有不同尺寸(sizes)和长宽比(aspect ratios )的矩形。在构建深度神经网络时,最后的网络输出一般是固定尺寸的张量输出(采用RNN的除外)。例如,在图片分类中,网络输出是 (C, ) 的张量,C是类别标签数,张量的每个位置的标量值表示图片是类别的概率值。

在 RPN 中,通过采用 anchors(锚) 来解决边界框列表长度不定的问题,即在原始图像中统一放置固定大小的参考边界框。上面说到RPN对特征图做3x3的卷积,假设每一次卷积需要预测 k 个候选区域,因此,reg层具有 4k 个输出,编码 k 个边界框的坐标,cls层输出 2k 个分数,估计每个区域是目标或是背景的概率。这 k 个区域就是 被 k 个参考边界框初始化, k 个参考框就是 k 个锚点,作为第一次预测目标位置的参考 boxes。锚点的中心位于卷积核滑动窗口的中心。默认情况下每个滑动位置使用3个不同尺度(128 2 , 256 2 , 512 2 )3个不同长宽比(1:2, 1:1, 2:1)的锚点,k=9。对于大小为W×H(通常约为2400)的卷积特征图,总共有 W×H×k 个锚点。对于RPN的最后两个全连接层,参数的个数为 512×(4+2)×k.

不同于直接检测目标的位置,这里将问题转化为两部分。对每一个 anchor 而言:

有一种简单的方法来预测目标的边界框,即学习相对于参考边界框的偏移量。假设参考 box:( ),待预测量:( ),一般都是很小的值,以调整参考 box 更好的拟合所需要的。

虽然 anchors 是基于卷积特征图定义的,但最终的 anchos 是相对于原始图片的.

由于只有卷积层和 pooling 层,特征图的维度是与原始图片的尺寸成比例关系的. 即,数学地表述,如果图片尺寸 w×h,特征图的尺寸则是w/r×h/r. 其中,r 是下采样率(subsampling ratio). 如果在卷积特征图空间位置定义 anchor,则最终的图片会是由 r 像素划分的 anchors 集。在 VGG 中, r=16。

RPN 利用所有的参考边界框(anchors),输出一系列目标的良好的 proposals。针对每个 anchor,都有两个不同的输出:

RPN是全卷积网络。

对于分类层,每个 anchor 输出两个预测值:anchor 是背景(background,非object)的 score 和 anchor 是前景(foreground,object) 的 score.

对于回归层,也可以叫边界框调整层,每个 anchor 输出 4 个预测值: (Δxcenter,Δycenter,Δwidth,Δheight),用于 anchors 来得到最终的 proposals。根据最终的 proposal 坐标和其对应的 objectness score,即可得到良好的 objects proposals.

RPN 有两种类型的预测值输出:二值分类和边界框回归调整。

为了训练RPN,我们为每个锚点分配一个二值类别标签(是目标或不是目标)。我们给两种锚点分配一个正标签:(i)具有与实际边界框的重叠最高交并比(IoU)的锚点,或者(ii)具有与实际边界框的重叠超过 IoU的锚点。注意,单个真实边界框可以为多个锚点分配正标签。通常第二个条件足以确定正样本;但我们仍然采用第一个条件,因为在一些极少数情况下,第二个条件可能找不到正样本。对于所有的真实边界框,如果一个锚点的IoU比率低于,我们给非正面的锚点分配一个负标签。既不正面也不负面的锚点不会有助于训练目标函数。

然后,随机采样 anchors 来生成batchsize=256 的 mini-batch,尽可能的保持 foreground 和 background anchors 的比例平衡。

RPN 对 mini-batch 内的所有 anchors 采用二分类交叉熵来计算分类 loss。然后,只对 mini-batch 内标记为 foreground 的 anchros 计算回归 loss。为了计算回归的目标targets,根据 foreground anchor 和其最接近的 groundtruth object,计算将 anchor 变换到 object groundtruth 的偏移值 Δ。

Faster R-CNN没有采用简单的 L1 或 L2 loss 用于回归误差,而是采用 Smooth L1 loss. Smooth L1 和 L1 基本相同,但是,当 L1 误差值非常小时,表示为一个确定值即认为是接近正确的,loss 就会以更快的速度消失.

由于 Anchors 一般是有重叠,因此,相同目标的候选区域也存在重叠。

为了解决重叠 proposals 问题,采用 NMS 算法处理,丢弃与一个 score 更高的 proposal 间 IoU 大于预设阈值的 proposals.

虽然 NMS 看起来比较简单,但 IoU 阈值的预设需要谨慎处理. 如果 IoU 值太小,可能丢失 objetcs 的一些 proposals;如果 IoU 值过大,可能会导致 objects 出现很多 proposals。IoU 典型值为 。

NMS 处理后,根据 sore 对topN 个 proposals 排序. 在 Faster R-CNN 论文中 N=2000,其值也可以小一点,如 50,仍然能的高好的结果.

当获得了可能的相关目标和其在原始图像中的对应位置之后,问题就更加直接了,采用 CNN 提取的特征和包含相关目标的边界框,采用 RoI Pooling 处理,并提取相关目标的特征,得到一个新的向量。

RPN 处理后,可以得到一堆没有分类得分的目标 proposals。待处理问题为,如何利用这些边界框并分类。

一种最简单的方法是,对每个 porposal,裁剪,并送入pre-trained base 网络,提取特征;然后,将提取特征来训练分类器. 但这就需要对所有的 2000 个 proposals 进行计算,效率低,速度慢。Faster R-CNN通过重用卷积特征图来加快计算效率,即采用 RoI(region of interest) Pooling 对每个 proposal 提取固定尺寸的特征图。然后 R-CNN 对固定尺寸的特征图分类。

目标检测中,包括 Faster R-CNN,常用一种更简单的方法,即:采用每个 proposal 来对卷积特征图裁剪crop,然后利用插值算法(一般为双线性插值 bilinear)将每个 crop resize 到固定尺寸14×14×ConvDepth. 裁剪后,利用 2×2 kernel 的 Max Pooling 得到每个 proposal 的最终7×7×ConvDepth 特征图.

之所以选择该精确形状,与其在下面的模块(R-CNN)中的应用有关。

R-CNN利用RoI Pooling提取的特征进行分类,采用全连接层来输出每个可能的 目标类别的分类得分,是Faster R-CNN框架中的最后一个步骤。

R-CNN 有两个不同的输出:

R-CNN 对每个 proposal 的特征图,拉平后采用 ReLU 和两个大小为 4096 维的全连接层进行处理。然后,对每个不同目标采用两个不同的全连接层处理:一个全连接层有 N+1 个神经单元,其中 N 是类别 class 的总数,包括 background class;一个全连接层有 4N 个神经单元,是回归预测输出,得到 N 个可能的类别分别预测 Δcenterx,Δcentery,Δwidth,Δheight。

R-CNN 的目标基本上是与 RPN 目标的计算是一致的,但需要考虑不同的可能的 object 类别 classes.

根据 proposals 和 ground-truth boxes,计算其 IoU。与任何一个 ground-truth box 的 IoU 大于 的 proposals 被设为正确的 boxes。IoU 在 到 之间时设为 background。这里忽略没有任何交叉的 proposals。这是因为,在此阶段,假设已经获得良好的 proposals。当然,所有的这些超参数都是可以用于调整以更好的拟合 objects。

边界框回归的目标计算的是 proposal 与其对应的 ground-truth间的偏移量,只对基于 IoU 阈值设定类别后的 proposals 进行计算。随机采用一个平衡化的 mini-batch=64,其中,25% 的 foreground proposals(具有类别class) 和 75% 的background proposals.

类似于 RPNs 的 losses,对于选定的 proposals,分类 loss 采用 multiclass entropy loss;对于 25% 的 foreground proposals 采用 SmoothL1 loss 计算其与 groundtruth box 的匹配。

由于 R-CNN全连接网络对每个类别仅输出一个预测值,当计算边框回归loss 时需谨慎,只需考虑正确的类别。

类似于 RPN,R-CNN 最终输出一堆带有类别分类的objects,在返回结果前,再进一步进行处理。

为了调整边界框,需要考虑概率最大的类别的 proposals. 忽略概率最大值为 background class 的proposals.

当得到最终的 objects 时,并忽略被预测为 background 的结果,采用 class-based NMS. 主要是通过对 objects 根据类别class 分组,然后根据概率排序,并对每个独立的分组采用 NMS 处理,最后再放在一起.

最终得到的 objects 列表,仍可继续通过设定概率阈值的方式,来限制每个类的 objects 数量.

Faster R-CNN在论文中是采用分步方法,对每个模块分别训练再合并训练的权重. 自此,End-to-end 的联合训练被发现能够得到更好的结果.

当将完整的模型合并后,得到 4 个不同的 losses,2 个用于 RPN,2 个用于 R-CNN。4 种不同的 losses 以加权和的形式组织. 可以根据需要对分类 loss 和回归 loss 设置权重,或者对 R-CNN 和 RPNs 设置不同权重.

采用 SGD 训练,momentum=. 学习率初始值为 ,50K 次迭代后衰减为 . 这是一组常用参数设置。

90 评论

相关问答

  • 机械制造相关的论文题目

    工程机械论文题目 机械工程是一门涉及利用物理定律为机械系统作分析、设计、制造及维修的工程学科。机械工程是以有关的自然科学和技术科学为理论基础,结合生产实践中的技

    大果果就是我 3人参与回答 2023-12-05
  • 论文检测需要注意

    第一,检查论文格式,避免论文查重率变高。一篇论文包括很多内容,但是论文查重系统并不会每一部分内容都检测。同学们所要注意的是论文参考文献、目录等部分内容的格式,很

    皇后镇Z 9人参与回答 2023-12-07
  • 药学制药用水检测相关论文

    随着我国医药行业的快速发展,技术水平也得到了快速的提高,为人民做出了很大的贡献。下面是我为大家整理的中药制药专业论文,供大家参考。 《 现代中药制药工艺学的

    lovexuzheng8 2人参与回答 2023-12-11
  • 图像注意力机制研究现状论文

    自注意力机制是注意力机制的一种,有关注意力机制的介绍可以参考我的前一篇博客: Seq2Seq中的Attention机制 。 Attention机制最早是在视觉图

    pingping28 3人参与回答 2023-12-12
  • 论文相似检测需要注意什么

    对于大学毕业生来说,论文查重是一件非常重要的事,为了顺利完成这件事大家需要注意哪些方面?今天paperfree小编来给大家讲解一下。 1、论文的内容和格式应加以

    狮子猫的吃路 8人参与回答 2023-12-09