基于上下文注意的强化学习目标检测

时间:2024-03-07 13:21:04 来源:网友投稿

曹立春 智 敏

(内蒙古师范大学计算机科学技术学院 内蒙古 呼和浩特 010022)

计算机视觉领域的技术发展迅速,利用计算机视觉来减少对人力资源的消耗,具有重要的现实意义,其中,目标检测是近年来的研究热点,它不仅在智能视频监控领域有着重要作用,而且在机器人导航、医疗领域工业检测、航天航空等诸多领域也有着举足轻重的地位。然而,即使目标检测技术发展较为先进,但其中仍存在许多难题,例如图像中的小目标相比背景,所占的像素较少、目标重叠或者遮挡导致的漏检等,这些问题无法有效解决从而导致最终的检测精度不高、效果不完善。

卷积神经网络[1]的提出是计算机视觉领域一个质的飞跃,改变了传统的使用手工标记特征方法,利用卷积神经网络自适应地提取图像特征极大地减少了计算的复杂度,并且提高了算法执行速度。此后,研究者们陆续地在其基础上构建更加完善的神经网络,例如基于RCNN系列[2-3],利用边界框来选择性搜索得到感兴趣区域,并为每个区域提取特征,随后进行分类与回归。后来的研究又提出通过RPN[4]来提取候选框,对目标位置做出预测,来提高目标检测效果。随着科研人员的不断完善,如今已经发展到PV-RCNN[5]。另外,U型网络[6]使用特征融合的方式,将网络中的高层特征与底层特征融合,极大地提高了特征提取能力,达到对特征的高效利用。但尽管如此,在目标检测领域中的小目标漏检以及算法无法自主调整搜索路径上依旧存在难题。

研究发现[7-8],特征质量越好,越有助于小目标的检测;检测框对目标的包围程度也会影响目标检测的精度。由此,本文提出将深度学习与强化学习相结合进行目标检测,其创新点主要有以下两个方面:(1) 改进特征提取部分。在改进的U-net上引入上下文模型,联系上下文,增强对小目标的预测能力。(2) 引入强化学习辅助候选框调整,以达到精确定位的目的,从而提升目标检测精度。实验表明,通过上述改进达到了提升小目标检测精度的效果。

目标检测是计算机视觉中的核心问题,其方法可分为两类:一阶段检测方法,例如SSD、YOLO等;二阶段检测方法,如R-FCN等。一阶段法中,直接使用锚框对整个图像的区域进行预测、解码,生成最终边界框。而二阶段法包含两部分,使用第一部分生成候选对象提议集,第二部分进行进一步的分类和回归,确定相应的类别标签和准确的对象区域。一阶段法由于结构相对简单,所以检测的速度快,但是由于只有一阶段的检测,丢掉了许多特征信息,因此在检测精度上逊于二阶段检测,尤其在小目标较多的场景。

强化学习是一种与环境的不断试错过程,通过环境反馈的奖励学会选择可能会使奖励最大化的动作,得到解决问题的最优策略。在计算机视觉中,将其与深度学习相结合,能够让agent通过数据来掌握运动感知技能,从而达到奖励最大化。二者相结合的深度强化学习已经成功应用到计算机视觉[9]、自然语言处理[10]等诸多领域[11-12]。

Actor-Critic(AC)算法是强化学习中较为完善的框架。它由策略函数与值函数构成,策略结构即Actor,值函数的计算即Critic。Actor网络根据当前的环境,选择一个动作,而Critic网络根据当前环境与刚选出的动作给出的反馈,利用时间差分(Temporal Difference,TD)误差项对Actor网络进行反馈打分,Actor网络再根据反馈调整策略。在这个过程中,Actor不断地迭代更新,得到每一个状态下选择每一动作的合理概率,Critic也同样迭代更新,不断完善每个状态下选择每一个动作的奖惩值。由于这样的结构设置,使得AC模型相比其他模型来说具有较高的学习速率。在其基础上改进的Soft Actor-Critic(SAC)[13]模型将策略熵放入反馈中,共同最大化,鼓励agent在反馈区域内增加探索。在机器人任务中,改进后的算法明显地提高了实验效率。

目标检测中增强特征提取的方法之一就是利用上下文模型。上下文模型有两种方法:(1) 捕捉对象与对象[14]之间的关系;(2) 包含对象与场景[15]的上下文信息,利用目标的上下文对目标进行预测,相当于放大了目标,在一定程度上对目标检测效果有了明显的提升。文献[16]提出了对抗性的学习框架,利用视频中时域上下文信息改进3D人体姿态估计,提出一种几何描述符来编码身体关节之间的两两相关位置和距离,以弥合来自两个域的预测位置和地面真值位置之间的差距,提高了三维人体位姿数据集的位姿估计精度。文献[17]提出使用更密集的方式连接一组扩张卷积从而获得更大范围的扩张率,在Cityscapes上取得了最佳性能。文献[18]提出一个包含位置注意力模块和通道注意力模块的双注意力网络用于场景分割。通过建立与注意力机制的特征之间的关联来探索全局上下文信息,解决了类内差异对识别准确性的影响。文献[19]使用上下文信息进行行人检测,提出上下文实例扩展模块,用来搜索过滤场景中有用的上下文信息。并构建了一个图学习框架,以有效地使用上下文来更新目标相似性,将两个模块建立在检测和实例特征学习框架上,提高了学习特征的辨别力,实现了最先进的性能。

本文主要在二阶段检测框架的基础上进行改进,以提升对图像中小目标的检测率,首先,本文在U型特征提取网络的基础上加入上下文信息模块,此模块由语义池、知识图谱与注意力机制构成,用来生成新的特征。其次,在边框回归部分引入强化学习,使用SAC强化学习模型辅助边框更加紧密地包围目标。

本文算法由两部分构成,首先通过改进的U型网络对输入图片进行特征提取,其步骤为:经RPN(区域生成网络)、ROI Align得到基本特征;由上下文网络生成上下文特征;最后将这两部分特征进行融合,得到增强的特征。其次,强化学习网络中,本文的强化学习部分选用SAC框架,输入为带有感兴趣区域的特征图,输出为候选框移动的动作,本文对候选框设置了10种变形类别以及1种终止类别,即采用马尔可夫策略对检测框进行迭代调整,从而提升精度。整体算法结构如图1所示。

图1 网络结构

2.1 特征提取网络

2.1.1U型网络

本文采用的U型网络如图 2所示,利用U型网络自上而下的下采样层与对应的自下而上的上采样层进行特征融合,得到较好的特征,将注意力机制MDA-Net[20]嵌入到不同特征的横向连接处,利用通道注意力与像素注意力机制,减弱噪声,对有用信息增强,无用信息减弱,进而提高特征的利用能力。此外,U型网络的输出为多级输出,这样使得预测在每一层级别上独立进行,分别进入对应的RPN网络,最后再将不同RPN层的目标框以向量拼接的方式融合得到较完善的带有目标框的特征图。

图2 U型网络结构

2.1.2上下文模型

由于图像中不可避免地会有小目标存在,其特征不明显和背景差异较小,因此本文在初步特征提取后的网络中加入上下文模型[21],上下文模型由三部分组成:

第一部分生成一个全局推理模块。从感兴趣区域网络(ROI Align)中获取分类器的权重,生成一个覆盖所有类别的全局语义池M∈RC×D,集成所有高级语义表示,在所有的种类中进行全局信息传递。在训练阶段,分类器在每一次迭代中进行更新,这样得到的M越来越准确。然后,通过根据知识图谱在语义池中传播所有语义表示来执行全局推理。

第二部分引入知识图谱。根据某种类型的知识图谱在语义池中传播所有的语义表示来进行全局推理。知识图谱中所有类别对应的边矩阵为ε∈RC×C,ε为无向图,因此经过知识图谱后,所有的类别特征即可表示为εM。但是,由于全局图推理是在所有类别上进行的,因此可能会夹杂一些噪音干扰。这部分噪音由第三部分注意力机制解决。增强有用信息抑制无用信息,来减少噪音干扰。

第三部分在RPN网络得到的特征图中计算自适应注意,自适应注意部分借鉴Squeeze-and-Excitation网络[22]的思想来自动发现目标的大部分相关类别,进行自适应推理。在squeeze阶段,将整幅图像的特征作为输入,并“挤压”为一半大小。Excitation阶段是一个全连接层,使用Softmax函数得到每一个种类的注意力,最后由自适应推理得到增强的特征。增强的特征可由式(1)得到:

f′=P(α⊗εM)WG

(1)

式中:f′表示为增强特征;P为类别映射概率;α表示每个种类的注意力;WG表示知识图谱中共享的权重矩阵。

最后,将得到特征与原感兴趣区域生成的特征进行特征拼接,得到最终增强的特征。本文的上下文推理网络如图 3所示。

图3 上下文信息模块

2.2 基于强化学习的目标检测框架

为了在深度学习框架的基础上进一步提升检测精度,本文引入强化学习,利用马尔可夫的系列决策辅助目标框调整,进而提升检测框的精确度。

本文的强化学习框架使用上述SAC模型,与深度学习共同完成目标检测任务,具体过程如下:首先,算法将增强后的特征向量作为强化学习网络的输入,这时,算法将整幅图像看作是一个环境并将当前检测框定义为agent,SAC网络根据输入信息选择agent将执行的动作并对动作进行打分,利用Critic网络给出的反馈再指导agent,不断循环使得agent逐渐学会选取动作集合中能使结果更好的动作,来对检测框进行变形移位等,直至检测框紧紧地将目标包围住为止。为了构建一个完整的强化学习系统,本文的马尔可夫建模如下。

2.2.1MDP建模

马尔可夫决策过程(Markov Decision Process,MDP)由四元组(S,A,R,P)组成:

1)S表示状态集合,状态集合由网络当前的特征向量与所agent采取的历史动作向量组成,st∈S表示t时刻的状态。

2)A是一个集合,代表agent可以采取的动作集合,at∈A表示t时刻执行的动作,动作集合定义:A={左移,右移,上移,下移,变大,变小,变宽,变窄,变高,变矮,终止},每个动作根据当前检测框的大小,以比例0.2对检测框进行变形,变形动作是一组离散的变化,终止动作表示当agent能够确定当前的检测框已经紧密地将目标包围住时执行终止动作,代表搜索截止。

3)R表示agent采取动作a后环境反馈的奖励函数,rt表示Agent在状态st下执行动作at获得的立即奖励,奖励函数定义如下:

rπ(st,at)=r(st,at)+Est+1~p

[H(π(·|st+1))]

(2)

式中:π表示强化学习的随机策略;H是期望的最小预期熵。在标准的奖励函数上增加熵函数项,将熵也作为奖励R的一部分,共同最大化,鼓励agent在反馈大区域内增加探索,熵越高,策略的随机性就越高,因此,加入熵的强化学习倾向于选择能获得高回报并且随机性高的策略。

4)P表示当前任务状态间的转移概率,当状态概率的真实理论分布未知的情况下,如果样本容量足够大,可以使用样本分布来近似地描述状态概率的真实理论分布,所以利用状态转移频率近似地估计状态转移概率。p(st+1|st,at)表示在状态st下采用动作at转移到状态st+1的概率值。

此外,目标函数如下:

αH(π(·|st))]

(3)

在原始的目标函数基础上增加了熵的部分,超参数α控制熵项的相对重要性。这样设置目标函数可以激励policy更广阔地探索,放弃无意义没前途的行为,提高学习速度,同时也有利于防止策略过早地收敛到局部最优。

2.2.2模型训练

对于一幅图像,首先修改至224×224大小作为U-Net的输入,经特征提取后在RPN层得到具有不同尺度的特征图;此时,再由上下文网络对特征图进行提取上下文信息;然后,通过软映射机制,将推理模块的输出结果映射回区域建议,得到增强的特征;最后,将带有检测框的特征图输入到强化学习SAC模型中,由agent辅助检测框的调整,达到提升检测精度的效果。

在模型训练过程中,使用ε-greedy训练强化学习网络,并设置当IoU大于0.6时算法强制agent选择终止动作,提升检测速度。使用Adam优化器以1E-6的学习率来避免梯度爆炸,并设置折现系数γ=0.9,学习率η=0.001。

实验中的使用配置为:GPU为NVIDIA-GTX GPU,CPU为Intel i7-5500U,内存为8 GB,主频为2.4 Hz。Windows 10操作系统,使用TensorFlow深度学习框架,结合Python 3.6对目标进行检测。

3.1 实验设置

本文实验中使用的是目标检测标准数据集Pascal VOC数据集,在目标检测、分割、分类中有广泛应用,该数据集中共有20个分类,包含11 530幅图像,共标记出27 450个感兴趣区域。本文实验在VOC2007与VOC2012的训练集上训练网络,并在VOC2007的测试集上对网络进行测试,实验显示,本文网络框架取得了良好的实验结果。数据集示例如图4所示。

图4 数据集样本示例

3.2 实验结果分析

本文对数据集图像进行测试,并与文献[20]网络作对比,如图 5所示,其中实线表示检测成功,虚线表示漏检、误检等检测失败。可以看出,相较于文献[20]算法,本文算法的检测结果有了明显的提升,原因在于本文既考虑了高底层不同特征又考虑了特征的上下文关系,并利用强化学习辅助检测框回归,在提升特征利用率的基础上加快检测速度,从而得到了较好的检测结果。

图5 在VOC2007数据集上的实验结果

此外,为了更清晰地了解两处改进的效果,本文做了消融实验对比,并罗列出了几种较小的物体检测结果,使用的评价指标为均值平均检测精度(mean Average Precision,mAP),如表1所示。将U-Net作为基准,mAP达到76.5%。U-Net与上下文信息结合将mAP提升至77.3%。U-Net+SAC表示将U-Net与强化学习SAC框架结合,mAP提升至76.9%。本文算法结合上下文与强化学习两部分,得到实验结果为79.4%,可以看到本文算法对检测结果有了明显的提升。

表1 算法各部分改进对比实验(%)

最后,为了验证本文算法的有效性,本文与文献[20]和文献[23]在单一类别目标数据中做了实验比较,如表 2所示,相比文献[20],本文算法精度提升的原因在于引入强化学习调整包围框,使得检测结果更精确。相比于文献[23],本文算法提升的原因在于对深度学习部分的改进,引入上下文网络,增强了提取特征的能力。可以看出,本文无论在单一目标上还是在整体的平均检测精度上,都有一定的提升,表明本文算法在提升目标检测精度上的促进能力。

表2 各算法在Pascal VOC2007数据集上的检测准确率(%)

本文针对提升小目标的检测率,提出一种基于深度强化学习算法。算法在U-Net的基础上添加上下文信息模块,来捕获目标周围可能存在的信息,有效地减少了漏检和误检的概率。最后将融合后的特征送入强化学习网络,利用SAC模型调整检测框,使其紧紧包围住目标,从而提升检测精度。本文在一定程度上提高了目标检测的结果,证明了算法的可靠性。但是,由于增加了网络结构的复杂度,因此提高了整体的计算量,接下来的工作将考虑解决此问题。

猜你喜欢精度动作特征如何表达“特征”疯狂英语·新策略(2019年10期)2019-12-13不忠诚的四个特征当代陕西(2019年10期)2019-06-03基于DSPIC33F微处理器的采集精度的提高电子制作(2018年11期)2018-08-04动作描写要具体小学生作文(低年级适用)(2018年3期)2018-04-17抓住特征巧观察数学小灵通·3-4年级(2017年9期)2017-10-13GPS/GLONASS/BDS组合PPP精度分析测绘科学与工程(2016年5期)2016-04-17非同一般的吃饭动作少儿科学周刊·少年版(2015年4期)2015-07-07改进的Goldschmidt双精度浮点除法器电子设计工程(2015年3期)2015-02-27线性代数的应用特征河南科技(2014年23期)2014-02-27巧用磨耗提高机械加工精度河南科技(2014年14期)2014-02-27

推荐访问:上下文 强化 检测