基于改进U型网络的注意强化学习目标检测
2022-07-12曹立春
曹 立 春
(内蒙古师范大学计算机科学技术学院 内蒙古 呼和浩特 010022)
0 引 言
目标检测指的是在给定的图像或视频帧中找到被检测目标的位置并判断目标的相应类别。目前,基于深度学习的目标检测日益成熟,其算法在各个大型数据集(如Image-Net、Pascal VOC、MS COCO等)上的准确率突飞猛进,但“检测框”位置不精确及“小物体”容易漏检等问题依旧比较严重,相比于大物体,小物体由于像素较低,且相对于整幅图片来说所占的比例较少,受图像背景干扰大容易被遮挡等原因,使得小目标检测一直是图像处理领域的一大难题。
传统方法通过手工设计的特征来进行目标检测,此类方法在性能上基本取决于人为设定的手工特征质量,因此很难将其泛化到其他类别。卷积神经网络(Convolutional Neural Networks, CNN)的提出使得目标检测迈进了一个新阶段[1]。近年来,研究者们不断在这个领域进行探索创新,基于R-CNN系列[2-3,7]框架逐渐完善,是目标检测领域较成熟的框架之一,此外,U-Net[4]通过对称式的结构融合了网络中低维和高维的特征,对特征的提取能力有了很大的提升。但是目前在针对小目标的漏检及计算机无法自主地调整搜索路径等问题上仍然存在许多困难。
研究发现[5-6],算法提取的特征质量越好,越有助于小目标的检测;检测框对目标的包围程度也会影响目标检测的精度。基于此,本文提出将深度学习与强化学习相结合应用于目标检测任务,并主要对特征提取部分的网络框架进行改进。本文的创新点如下:(1) 改进U型网络结构,加入注意力模块,对特征进行增强;(2) 提取候选框结合深度强化学习,利用强化学习技术对预测的检测框调整以达到精确定位的目的。本文通过以上两个方面达到改善小目标检测精度的目的。
1 相关工作
目标检测方法分为一阶段法与两阶段法两种。一阶段法[7]主要使用锚框对整个图像的区域进行预测,然后对预测进行解码,生成对象的最终边界框。而两阶段法[8]使用第一部分,如区域生成网络[9](Region Proposal Network,RPN),生成一个稀疏的候选对象提议集,第二部分进行进一步的分类和回归,使用卷积网络确定准确的对象区域和相应的类别标签。单级网络虽然比两级网络快,但由于只使用了一阶段的检测,丢掉了许多的目标信息,因此在检测精度上通常落后于两阶段方法,特别是对于包含小目标的场景。
强化学习是一种试错过程,其思想是通过agent不断地与环境交互,利用奖励与惩罚的机制使agent学习到解决问题的最优策略。其与深度学习结合的深度强化学习能够让agent通过数据来掌握运动感知的技能,从而达到奖励最大化。已经成功应用到了计算机视觉[10]、自然语言处理[11]等方面。
在目标检测领域,强化学习也有着很重要的作用,Caicedo等[12]将强化学习与CNN相结合,通过一系列简单的动作变换来定位候选区域中目标的正确位置,完成了目标定位的任务。接着,此种方法被用于美学的图像裁剪问题[13]。Bellver等[14]采用嵌套层次搜索的手段满足强化学习适用于序列性任务的要求,用IoU指标制定相应的reward方程,采用了事先规定的五点子窗口区域,大大减少了检测的范围。但是这种固定的搜索窗口限制了搜索范围,导致目标检测的召回率低。Gao等[15]设计了包括两部分的网络,深度学习部分分析区域的潜在精度增益,强化学习部分选择区域放大,对放大的区域进行检测,类似于图像分割。但是这种方法可能会使小的对象可能变得太小而无法在下采样图像中检测到。
上述两阶段法针对小目标检测相对友好,但仍然存在对小目标检测不准确、结果精度不高的问题,因此本文在两阶段模型的基础上引入强化学习。本文创新在于通过将注意力机制嵌入到特征提取部分,并将U-Net的输出改为多级输出然后进行合并,进而达到对特征提取优化的效果。
2 本文算法模型
本文算法首先通过特征提取网络提取特征,也就是改进的U-Net与RPN结合得到初步的目标包围框,随后通过ROI Align筛选出感兴趣区域,再进入强化学习网络调整检测框的包围精度。本文的强化学习网络由两个全连接层组成,每层后面都接一个ReLU函数和一个dropout层,输出为agent对检测框调整的动作,并对动作设计了10种变形类别及1种终止类别。即采用马尔可夫策略对检测框进行迭代调整,从而提升精度。本文算法主要包含特征提取和强化学习两大步骤,本文框架如图1所示。
图1 网络结构图
2.1 U型特征提取网络
2.1.1传统U-Net
传统U-Net网络先用卷积不断的下采样,得到分辨率较低的高维特征图,不断下采样的过程中形成一个维数由低到高的特征金字塔,再通过一系列反卷积层逆向进行多次上采样,在每次反卷积操作后,将特征图维度减半,然后与对应层级的特征图通过矩阵级联进行融合,生成与原有特征金字塔逐级对应的特征图,最终输出与输入图像分辨率一致的像素级预测结果。融合后的特征包含了金字塔顶层的抽象数据和低层的细节信息。由于这种对称式的网络结构在形态上近似一个“U”型,因此命名为U-Net,其结构如图2所示。
图2 传统U-Net结构图
2.1.2多维注意力模块
多维注意力模块[16](MDA-Net)主要由像素注意力与通道注意力构成,像素注意力网络中,输入特征通过具有不同比率卷积核的初始模块进行不同尺度的特征提取,然后通过卷积得到分别表示前景和背景分数的双通道显著性特征图。再用Softmax函数把显著性特征图的值限制在[0,1]之间,它可以降低噪声,相对增强目标信息。通道注意力使用经典的SE-Net[17]结构,首先经过全局平均池化(Global Average Pooling,GAP)输出C个特征通道的数值分布,然后将特征降维,再经过ReLU激活后通过一个全连接层将维度变为原来的维度。通过Sigmoid获得[0,1]之间归一化的权重,也就是根据每个特征通道的重要程度去提升有用的特征并抑制用处不大的特征。最后由两部分注意力与原特征相乘得到更具价值的特征图。图3所示为多维注意力模块。
图3 多维注意力模块MDA-Net
2.1.3改进的U-Net
在传统U-Net模型中,最终的输出结果由金字塔底层特征(即卷积过程与反卷积过程融合的特征)直接产生,这导致模型在训练时关注于低层的参数更新,而忽略了顶层的相关参数优化。因此本文提出改进的U-Net,与传统U-Net结构相似,其主要思想是利用Resnet的自然卷积下采样特征层级结构作为编码器。但是由于Conv1的庞大内存占用,本文不将其纳入U型网络中,解码器是通过对编码器学习的特征逐步上采样进行空间分辨率的恢复操作。通过将解码器与编码器相应空间分辨率的特征横向链接达到特征利用的效果,但在特征的横向链接处,本文嵌入上述多维注意力模块MDA-Net,利用像素注意力与通道注意力,减弱下采样图像的噪声影响,强化特征相关信息,弱化不相关信息,从而提高特征的利用能力。经过MDA-Net处理过的下采样特征与对应的上采样特征进行逐像素的相加,得到每层的融合特征。改进的U-Net与传统U-Net不同,预测在每个级别上都独立进行,每一层级都输入到单独的RPN网络,生成一组带有目标框的特征图,然后将每层RPN得到的目标框进行向量拼接输出到下一网络层。图4所示为本文改进的U-Net架构。
图4 改进的U型网络
2.2 基于强化学习的目标检测模型
为了提升检测精度,需要对检测框进行调整,使其紧密地包围目标。对检测框调整的过程可以看作是一系列有目标导向的马尔可夫搜索过程,因此在本文改进的U-Net基础上引入强化学习,来进一步调整检测框的精确度。
强化学习网络首先将ROI Align输出的特征向量与历史-动作向量相结合作为强化学习的输入,此时算法将整幅图像看作是一个环境,定义当前的检测框为agent,agent通过奖励函数的引导,选取动作集合中的动作来对检测框进行变形移位,其目标是使检测框将目标紧紧包围起来,最终达到目标检测的目的。为了构建一个完整的强化学习系统,下面进行对马尔可夫决策过程建模。
2.2.1马尔可夫建模
(1) 状态。状态表示是一个二元组(o,h),其中:o表示网络当前产生的图片特征向量,这个特征向量是由ROI Align生成的;h是一个固定大小的向量,用来表示agent曾采取的h个历史动作。
(2) 动作。agent每次根据当前的状态,从动作集A中选择动作进入下一个状态。动作集合定义:A={左移,右移,上移,下移,变大,变小,变宽,变窄,变高,变矮,终止},每个动作根据当前检测框的大小,以比例0.2对检测框进行变形,变形动作是一组离散的变化,终止动作表示当agent能够确定当前的检测框已经紧密地将目标包围住时执行终止动作,代表搜索截止。
(3) 奖励。当agent执行动作a并由状态s进入下一状态s′时,环境都会反馈给agent一个奖励Ra,奖励的大小代表动作的对错,即算法计算当前采取动作后得到的候选区域b′与目标的真实区域g的重叠率大于当前候选区域b与g的重叠率,那么给予奖励,否则给予惩罚,即sign函数给出+1与-1值。agent能够根据当前的奖励选择后续的动作序列方向。奖励函数定义如下:
Ra(s,s′)=sign(IoU(b′,g)-IoU(b,g))
(1)
式中:IoU(b,g)代表目标区域g与候选区域b的交并比。
IoU(b,g)=area(b∩g)/area(b∪g)
(2)
对于终止动作,奖励函数定义为:
(3)
τ是一个阈值,表示允许将参与区域看作为正确的检测目标的最小IoU。目标检测评估的标准阈值为0.5,即如果IoU>0.5,则认为是真实的检测,给予奖励η,否则为错误的检测,给予惩罚-η,在本实验中η=3。为了更好地实现定位,在训练时使用τ=0.6。如果τ的值较大,对性能有负面影响,因为agent认为只有清晰可见的对象才值得触发。
2.2.2Q学习
根据以上对行动集合、状态集合以及奖赏函数的定义,通过应用Q-学习算法学习最优策略Q(s,a),agent根据Q函数选择具有最高期望奖励的动作,其中Q函数使用贝尔曼方程进行更新,更新过程如下:
Q(s,a)=r+γmaxaQ(s′,a′)
(4)
式中:s为当前状态;a为当前选择的行动;r为奖励;γ代表折扣系数;s′代表下一状态;a′代表接下来采取的行动。
2.2.3模型训练
对于一幅图像,首先将图片的尺寸设置为224×224作为改进U-Net的输入,进行特征提取,分别得到不同层具有不同尺度的特征图,这些层分别进入对应的RPN网络,生成目标可能的候选框,在此阶段应用非极大值抑制(Non-Maximum Suppression,NMS)算法消除冗余候选框,再进入ROI Align,生成感兴趣区域,随后进入强化学习网络,设置当前状态为s,agent以概率ε从动作集A中随机选取一个动作a进行检测框的移动。执行动作a之后,得到新的候选区域b′,环境会根据上式赋予agent一个正的或者是负的奖励r,用于指导agent的下一步动作,同时将动作a并入到历史动作向量中,与当前的图像特征构成状态表示。随后环境进入下一状态s′。重复上述过程,直至a为终止动作或者已经达到最大搜索步骤数时,结束搜索过程,达到最终的定位结果。并将每一步得到的经验信息元祖(s,a,r,s′)存入经验池中,提供给整个模型训练。
模型的各部分设置如下:
(1) 探索-利用。在探索-利用过程中,使用ε-greedy训练强化学习网络,在探索阶段使用的随机选择策略,即agent每次以ε的概率随机选择动作,利用阶段以1-ε的概率利用已经学习到的策略进行决策。ε初始为1,ε-greedy策略分为15个周期,在前五个周期,通过agent与所有训练图像交互,ε由1.0逐渐减小至0.1。以逐步让agent使用其自己的学习模型。在第五周期之后ε被固定为0.1,因此agent根据自己决策产生的经验调整模型参数。使用随机梯度下降和反向传播算法与丢弃正则化对参数进行更新。虽然在探索阶段随机选择动作效果最好,但是随机的选择动作可能会导致较难学习到agent的终止动作,因此本文设置当IoU大于0.6时,算法强制agent选择终止动作。以便训练的速度更快。
(2) 经验回放。在环境S下agent执行动作a后进入的新状态s′与得到的奖励都被作为agent的经验,存放入经验池中,它是一个四元组(s,a,r,s′)。在算法的参数更新循环里,对经验池里的样本进行随机采样或批量随机采样,通过Q-学习对模型进行参数更新。本文使用了1 000个经验回放和100个批量大小的经验。
(3) 折现系数。由于当前的agent只考虑到采取动作a会得到的即时奖励,没有考虑到未来的奖励,不利于算法的长期训练,因此在式(4)中设置了折现系数γ=0.9,用来平衡即时奖励与未来奖励。
(4) 训练参数。深度Q网络的权值是从正态分布初始化的。对于学习,本文使用Adam优化器以1e-6的学习率来避免梯度爆炸。设置agent搜索每个目标的最大步数为20步。
(5) 学习轨迹。由于不能在每次agent学习的时候都给出一个指定的目标学习,因此在每个时间步骤,如果有多个物体存在在当前区域,下一个动作往往会关注于与真实值重叠最大的物体,因此在这个自顶向下的过程学习的物体很可能会变化。
3 实 验
本文设计的实验硬件使用为:GPU为NVIDIA-GTX GPU,CPU为Intel i7-5500U,内存为8 GB,主频为2.4 GHz。操作系统是Windows 10,结合Tensorflow及PyCharm对目标进行检测。
3.1 数据集
本文的数据集使用Pascal VOC数据集,它主要用于分类、检测和分割,是目标检测技术的基准之一。该数据集中有20个分类。VOC2007中包含9 963幅标注过的图片,共标注出24 640个物体。VOC2012数据集是VOC2007数据集的升级版,一共有11 530幅图片,共27 450个物体。本文在VOC 2007和VOC 2012的训练集上对系统进行了训练,并在VOC 2007的测试集上进行了测试,取得了较好的实验效果。
3.2 实验结果与分析
3.2.1目标检测可视化
本文展示出了agent在图像上进行马尔可夫包围的可视化过程,本文设置搜索的最大步数为20步。图5为agent在简单背景下的检测过程可视化,图6为agent在复杂背景下的检测可视化过程。其中实线代表agent指导检测框调整的过程,即除了终止动作以外的动作,虚线框代表终止动作,即表示agent认为紧密的包围住了目标物体,搜索结束。可以看出,在简单背景下,agent仅使用4步就可以成功定位到物体,并且在复杂背景下只使用7步就能够达到检测的目的。
(a) 原始 (b) 动作1变小
(c) 动作2下移 (d) 动作3变小
(e) 动作4终止图5 简单背景的目标检测
(a) 原始 (b) 动作1变小
(c) 动作2左移 (d) 动作3上移
(e) 动作4变小 (f) 动作5变小
(g) 动作6变小 (h) 动作7终止图6 复杂背景的目标检测
本文对agent定位单个目标所需步数进行了统计,统计结果如图7所示。可以看出,对于绝大部分特征明显的物体,本文算法在5步以内就可以检测成功,而对于一部分特征不明显的物体,本文算法也在6至9步内完成了检测,其余的更难检测的物体则需要更多的步数。
图7 步数直方图
3.2.2实验结果分析
本文对总框架进行了消融实验,如表1所示,其中U-Net表示传统U-Net,mAP为76.5%。U-Net+Q表示为传统U-Net结合强化学习的框架,实验的mAP结果提升至77.1%,表明利用强化学习对包围框的调整可以有效提高检测精度。U-Net+At表示本文对U-Net部分做出的改进,即通过加入注意力机制并采取分层预测的方式来提高特征质量,实验的mAP提升至71.3%。证明了该方法的有效性。本文算法结合上述两部分改进,将mAP提升至78.4%。可以看出本文算法对提升目标检测精度具有良好的促进作用。
表1 算法各部分改进的mAP对比(%)
此外,图8显示了本文框架与文献[16]的算法框架实验结果对比图,其中:较细框为检测成功,较粗框表示漏检的目标。可以看出,相比文献[16]算法,本文在检测准确率上有了大幅度的提升,原因为本文的算法在特征提取方不仅融合了注意力机制,还利用了高低不同层的特征,使得提取的特征较为精细准确,从而提升了检测准确率。但是在目标大部分被遮挡时,仍然无法有效地检测出来。
(a) 本文算法 (c) 文献[16]算法
(b) 本文算法 (d) 文献[16]算法图8 在VOC2007数据集上的实验结果
最后,本文算法与现存算法在单一类别目标数据中进行了比较,使用的评价指标为平均检测精度(Average Precision,AP)和均值平均检测精度(Mean Average Precision,mAP)。如表2所示,本文列举出了几种小目标的检测结果,可以看出,本文算法相较其他方法不论在单一目标还是整体平均精度上都有相对的提高,表明本文算法对提升目标检测精度具有较强的能力。
表2 各算法在Pascal VOC 2007数据集上的检测准确率(%)
4 结 语
本文基于深度强化学习,提出了一种针对小目标的目标检测算法,改进了传统的U-Net,利用多层特征融合并辅以注意力机制达到对特征更好的提取,将融合后的特征分别送入RPN网络生成检测框,再利用强化学习调整目标检测框,使其紧密地包围住目标,提升了检测精度。该算法在精度上相比以往的两阶段目标检测具有一定提升,证明该方法是可靠的。但在目标大部分被遮挡时,该方法仍无法有效地检测,考虑到可能是因为没有利用周边信息与上下文信息的原因,因此后续工作将考虑在此基础上添加上下文模块,达到对目标周边信息的利用。