本发明涉及行人重识别系统领域,具体涉及一种基于注意力机制的轻量级多分支行人重识别方法及系统。
背景技术:
行人重识别也称行人再识别,被广泛认为是一个图像检索的子问题,是利用计算机视觉技术判断图像或者视频中是否存在特定行人的技术,即给定一个监控行人图像检索跨设备下的该行人图像。行人重识别技术可以弥补目前固定摄像头的视觉局限,并可与行人检测、行人跟踪技术相结合,随着公共安全的需要,大规模的监控应用在城市道路中,特别是视频监控、智能安防等领域。
由于视频监控中的摄像机通常不能覆盖所有角落,且由于行人、车辆的遮挡、行人的位置任意变动,都会导致行人在摄像机网络中的运动轨迹出现变动或者丢失。而当该行人再次出现时,就需要用计算机视觉技术,利用行人特征和相似度将行人轨迹关联起来。行人重识别就是在这一需求下产生的,专门用于解决跨摄像机视角下行人匹配的问题。
实际应用中,由于应用场景的复杂性,行人重识别的研究仍然非常具有挑战性。这是因为在自然条件下识别非常复杂,如在识别同一个目标时,视角变化、尺度变化、低分辨率、光照变化、姿态多变性、部分遮挡等,都会影响目标的特征提取,并最终影响图像相似度的可靠性和行人重识别的性能。因此,如何使用注意力机制引导cnn模型对图片显著区域进行关注,避免无用信息的干扰成为了主要的问题。
注意力机制是图像识别领域中常见的特征强化策略,来源于对人类视觉观察方式的模仿,在物体观察与识别时会忽视全局信息和背景信息,有针对性的把视觉注意力集中在物体的显著部分,通过对物体局部信息的理解综合得到对整个物体的理解,在图片识别任务中,视觉注意力机制能有针对性的弱化出无用的信息,让模型集中于显著信息的理解,从而有效的减缓复杂背景、物体遮挡所带来的干扰。对于研究鲁棒的行人重识别模型和算法具有很强的理论价值和广阔的应用前景。
技术实现要素:
为了解决上述问题,本发明提供一种基于注意力机制的轻量级多分支行人重识别方法及系统。
一种基于注意力机制的轻量级多分支行人重识别方法,包括以下步骤:
获取带有行人的图片集合作为数据集,对数据集进行预处理;
将预处理后的数据集输入到改进的轻量级网络中,先构建全局特征支路,通过全局特征支路的轻量级模块对预处理后的数据集进行全局特征提取,得到全局特征和全局分支损失;
将全局特征分享到局部分支中,构建局部分支,并通过局部分支的轻量级模块进行局部特征提取,得到局部特征和局部分支损失;
联合全局分支损失和局部分支损失进行交叉熵损失求解,并将损失之和回传给神经网络进行迭代训练,直至神经网络的总损失趋于稳定时,训练完成,得到训练好的神经网络模型,训练好的神经网络模型中包括全部cnn架构及训练的全部参数;
将包含行人的图像输入到训练好的神经网络模型中,神经网络模型按照输入的图像输出预测结果,得到并输出map和rank-1正确率,并对结果进行可视化。
进一步的,所述全局特征支路由一个预处理基本卷积块、第一特征提取模块、第二特征提取模块和第三特征提取模块串联而成。
进一步的,对于任意一个特征提取模块,包含一个inception-a模块、一个inception-b模块和一个ha模块,且inception-a模块、inception-b模块和ha模块依次串联,其中,第一特征提取模块由串联的第一inception-a模块、第一inception-b模块和第一ha模块组成,第二特征提取模块由串联的第二inception-a模块、第二inception-b模块和第二ha模块组成,第三特征提取模块由串联的第三inception-a模块、第三inception-b模块和第三ha模块组成,inception-a模块、inception-b模块用于提取特征,ha模块由软注意力模块和硬注意力模块组成,ha模块用于融合硬注意力和软注意力。
进一步的,通过全局特征支路的轻量级模块对预处理后的数据集进行全局特征提取,得到全局特征和全局分支损失,具体包括:首先将预处理后的数据集通过一个基本卷积块进行特征提取,然后再将经过基本卷积块的特征图输入到全局特征支路,在全局特征支路中,首先经过第一特征提取模块进行特征提取,得到第一特征图和第一硬注意力位置信息,将获得的第一硬注意力位置信息反馈到第一inception-a模块和第一inception-b模块之前,用于传递给局部特征支路,将第一特征图传输至第二特征提取模块进行特征提取,得到第二特征图和第二硬注意力位置信息,并将得到的第二硬注意力位置信息反馈到第二inception-a模块和第二inception-b模块之前,用于传递给局部特征支路,将会第二特征图传输至第三特征模块进行特征提取,得到第三特征图和第三硬注意力位置信息,将获得的第三硬注意力位置信息反馈到第三inception-a模块和第三inception-b模块之前,用于传递给局部特征支路,最后将第三特征图通过gem层和一个全连接层fc,得到全局特征和全局分支损失。
进一步的,第一特征提取模块进行特征提取包括:经过基本卷积块的特征图首先经过第一特征提取模块的第一inception-a模块和第一inception-b模块,然后经过第一特征提取模块的第一ha模块,在第一ha模块中将空间注意力和深度注意力相乘以后,获得第一特征图和第一硬注意力位置信息。
进一步的,联合全局分支损失和局部分支损失进行交叉熵损失求解包括:
其中,
进一步的,全局特征支路由3个块串联而成,每个块中包括一个inception-a模块、一个inception-b模块和一个ha模块,其中,inception-a模块和inception-b模块用于提取特征,ha模块用于融合硬注意力和软注意力。
一种基于注意力机制的轻量级多分支行人重识别系统,包括:图像获取模块、数据预处理模块、神经网络训练模块、图像识别模块、存储模块、可视化模块和输出模块;所述图像获取模块用于输入数据集,获取历史图像数据集和实时图像数据;所述数据预处理模块用于对输入的历史图像数据集中的原始图像进行翻转、裁剪、擦除和随机修复处理,对有限的训练数据进行扩增;所述神经网络训练模块用于训练神经网络,最终得到训练好的神经网络模型,所述神经网络训练模块包括全局分支模块、局部分支模块、共享模块、软注意力模块、硬注意力模块,所述全局分支模块用于全局特征的提取与学习,所述局部分支模块用于局部特征的提取和学习,共享模块作为全局分支模块和局部分支模块之间的共享层,允许全局分支的“知识”转移到局部分支;所述图像识别模块通过训练好的神经网络模型对实时图像数据可进行处理,得到并输出预测结果;所述存储模块用于存储预测结果;所述可视化模块用于输出rank可视化结果和激活图;所述输出模块用于输出行人图片的分类结果。
本发明的有益效果:
(1)本发明的多分支行人重识别方法速度快、精度高,网络小。本发明的轻量级多分支网络结构,使得神经网络既能适应地调节全局特征支路的权重,又能在局部分支中共享在全局特征支路提取到的全局信息,联合全局分支—局部分支结构,共享不同类型、层次、深度的行人特征,增强了网络的特征表达能力,又不会带来过多的参数量和计算量,能够以略大于普通卷积块的参数量达到超过注意力模块精度的效果。
(2)本发明提出了一种轻量级卷积块,该轻量级卷积块采用3×3大小、步长为1的深度卷积模块,取消了bn层,在不提高计算量的情况下,能够使得网络输出越来越准确。
(3)本发明在软注意力模块中嵌入了se块,以便在通道和空间注意力部分能够提取到更精确范围内的特征,提高全局特征支路网络所提取特征的精度,在共享特征时的同时提高局部分支所获得的细节特征。
(4)本发明在全局特征支路后采用gem(广义均值池化)而非gap(全局平均池化),以便增大输入特征图的对比度,专注于输入特征图突出、跳跃的部分,提高网络对特征区域的敏感性。
附图说明
下面结合附图和具体实施方式对本发明做进一步详细的说明。
图1为本发明实施例的训练流程示意图;
图2为本发明实施例的一种基于注意力机制的轻量级多分支网络结构示意图;
图3为本发明实施例的轻量级多分支网络结构示意图;
图4为本发明实施例的轻量级卷积块的结构示意图;
图5为本发明实施例的应用效果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种基于注意力机制的轻量级多分支行人重识别方法,包括但不限于以下步骤:
在行人重识别任务数据集market-1501中获取训练集和测试集,对训练集进行预处理。
获取market-1501行人重识别数据集,该数据集包括由6个摄像头(其中5个高清摄像头和1个低清摄像头)拍摄到的1501个行人、32668个检测到的行人矩形框。其中,训练集有751人,包含12,936张图像;测试集有750人,包含19,732张图像;3368张查询图像。
对训练集进行预处理,进行数据增强,包括:对训练集中的行人图片进行随机水平翻转、随机裁剪、随机擦除、随机修复等一系列数据扩增操作,并将训练集中的行人图片大小统一改变为160×64,扩增数据集的大小,增强模型泛化能力。
将数据增强后的训练集依次输入到神经网络中,进行网络模型的训练。
本发明所选用的神经网络是基于轻量级网络inceptionv4的改进网络,该网络采用全局分支—局部分支结构,不采用额外的残差块,不采用预训练模型,具有网络结构简单、网络参数少的优点。
在一个实施例中,如图2所示,所述神经网络的结构包括:预处理基本卷积块、全局特征支路(即网络的骨干部分)、多个局部特征支路。其中,预处理基本卷积块的核为3×3、通道数为32、步长为2,主要用于对输入的行人图片进行特征提取,并将提取的特征图传输给全局特征支路和局部分支。所述全局特征支路用于提取行人图片的全局特征,所述局部特征支路用于提取行人图片的局部特征。
在一些实施例中,一个局部分支由具有相同结构的t个流组成,每个流是用于学习人的边界框图像的t个局部图像区域中最具有区别性的视觉特征。
将预处理后的训练集中的行人图片输入到改进的轻量级网络中,首先经过一个基本卷积块进行特征提取并改变特征图大小,具体的,经过核为3×3、通道数为32、步长为2的基本卷积块进行特征提取,得到大小为80×32×32的特征图输出,将该基本卷积块的输出特征图作为全局—局部分支的输入特征图。
将经过预处理基本卷积块的特征图输入到全局分支中,构建全局特征支路,进行全局特征提取,得到全局向量特征和全局分支损失lossg;
在一个实施例中,所述全局特征支路由一个预处理基本卷积块和3个特征提取模块串联而成,3个特征提取模块分别是第一特征提取模块、第二特征提取模块和第三特征提取模块。对于任一特征提取模块均包括一个inception-a模块、一个inception-b模块和一个ha(harmoniousattention)模块,其中,第一特征提取模块由串联的第一inception-a模块、第一inception-b模块和第一ha模块组成,第二特征提取模块由串联的第二inception-a模块、第二inception-b模块和第二ha模块组成,第三特征提取模块由串联的第三inception-a模块、第三inception-b模块和第三ha模块组成。inception-a模块、inception-b模块都是用来提取特征的,ha模块用于融合硬注意力和软注意力,在功能上模拟了人类大脑的背部和腹部注意机制。
在一些实施例中,一个inception-a/b模块内部包括基本卷积模块、聚合模块、和多条具有多个轻量级卷积块的轻量级卷积块支路,如图3所示是一个轻量级多分支网络结构的示意图,其中,一个inception-a/b模块内部包括一个基本卷积模块、3条轻量级卷积块支路和一个聚合模块,所述基本卷积模块核为3×3、通道数为32、步长为2,用于提取输入inception-a/b模块的图像特征;3条轻量级卷积块支路分别是第一轻量级卷积块支路、第二轻量级卷积块支路和第三轻量级卷积块支路,其中第一轻量级卷积块支路具有一个轻量级卷积块,第二轻量级卷积块支路由两个轻量级卷积块串联组成,第三轻量级卷积块支路由三个轻量级卷积块串联组成;第一轻量级卷积块支路、第二轻量级卷积块支路和第三轻量级卷积块支路均与基本卷积块的输出端连接,基本卷积块的输出结果作为多条支路的的输入;所述聚合模块用于将第一轻量级卷积块支路、第二轻量级卷积块支路和第三轻量级卷积块支路上提取的特征进行拼接作为inception-a/b模块的输出结果。
进一步的,在一些实施例中,所述轻量级卷积块采用3×3大小、步长为1的深度卷积模块。
进一步的,在一些实施例中,所述预处理基本卷积块和基本卷积块的结构一致,核为3×3、通道数为32、步长为2。
ha模块由软注意力模块和硬注意力模块组成,其中,软注意力模块包括空间注意力模块和通道注意力模块,从上层获取的特征分别通过空间注意力模块和通道注意力模块后进行相乘,最后将相乘所获得的结果通过sigmoid函数进行激活。
所述空间注意力模块包括一个全局的跨通道平均池层,一个核为3×3、步长为2的卷积层,一个双线性层,一个自适应学习融合层和一个se块,将输入的大小为h×w×c的特征图变更为h×w×1,相对于第二层卷积降低了c倍的参数,公式为:
其中,
所述通道注意力模块是将h×w×c的输入经过一个池化层(0参数)变为1×1×c,再通过
其中,
最后,将空间注意力分支得到的h×w×1和通道注意力得到的1×1×c相乘之后,再经过c个1×1的卷积核,得到最终的软注意力,并采用sigmoid操作将最终的软注意力正则化到0.5-1之间。
其中,硬注意力模块通过如下转换矩阵来定位输入的行人图像中t个潜在的显著性区域:
其中,al表示定位行人图像中t个潜在的显著性区域的转换矩阵,shsw为比例因子,txty为二维空间位置。
通过变换两个尺度参数shsw和txty对图像进行裁剪、平移和缩放变换。为了减小模型复杂度,事先固定区域大小shsw的值,因此学习的模型只用输出t对txty的值。
ha模块是模块化的,可以进行多层次的关注学习,不仅简化了注意力建模的复杂性,而且还以顺序方式提供额外的注意力补充。
经过预处理基本卷积块的特征图大小为80×32×32,将其输入到全局特征支路(网络的骨干部分),在全局特征支路中,首先经过第一inception-a模块和第一inception-b模块,得到大小为80×32×d1的特征图,然后经过第一ha模块,在第一ha模块中将空间注意力和深度注意力相乘以后特征图大小变为40×16×d1,即第一特征图,同时获得第一硬注意力位置信息(t个box的坐标)。将获得的第一硬注意力位置信息反馈到第一inception-a模块和第一inception-b模块之前,用于传递给局部特征支路;将上述得到的大小为40×16×d1的第一特征图经过第二inception-a模块和第二inception-b模块,得到大小为40×16×d2的特征图,然后经过第二ha模块,在第二ha模块中将空间注意力和深度注意力相乘以后特征图大小变为20×8×d2,即获得第二特征图20×8×d2,同时获得第二硬注意力位置信息,并将得到的第二硬注意力位置信息反馈到第二inception-a模块和第二inception-b模块之前,用于传递给局部特征支路。将上述得到的大小为20×8×d2的第二特征图再经过第三inception-a模块和第三inception-b模块后大小变为20×8×d3,然后经过第三ha模块乘以空间、深度注意力后,得到大小为10×4×d3的特征图,即第三特征图,同时获得第三硬注意力位置信息,并将获得的第三硬注意力位置信息反馈到第三inception-a模块和第三inception-b模块之前,用于传递给局部特征支路,最后将得到的大小为10×4×d3的第三特征图通过gem层,来更好的表示从行人图像中提取到的特征信息,得到大小为1×d3的特征图,再经过一个全连接层fc,得到512维的全局向量特征和全局分支损失lossg。
经过全局特征支路提取特征后,通过全局支路与局部支路之间的共享层将全局特征支路提取的特征分享到3个局部分支中,构建局部分支,并进行局部特征提取,得到局部向量特征和局部分支损失lossl。
所述局部分支用来提取局部特征,主要包括3个局部分支网络,每个局部分支网络包含3个inception-b模块,分别是第四inception-b模块、第五inception-b模块、第六inception-b模块。
在一个实施例中,每个局部支路有4个具有相同结构的本地流(tstreams,t=4),本地流是为了学习人的边界框图像的t个局部图像区域中最具有区别性的视觉特征。
进一步的,在一个实施例中,构建局部支路过程包括以下步骤:每支网络的输入来自预处理基本卷积块得到的80×32×32特征图,经过第四inception-b模块,得到大小为12×14×d1的特征图,然后将全局特征支路的第一特征图40×16×d1乘以
最后,将512维的全局向量特征和512维的局部向量特征连接在一起构成1024维的向量特征。
联合全局分支损失lossg和局部分支损失lossl进行交叉熵损失求解,对全局分支和局部分支进行联合优化求解,对神经网络进行迭代训练。
具体的,通过反向传播最小化损失函数,通过对全局特征支路和局部特征支路进行联合优化,对神经网络进行迭代训练,反向传播过程中,全局特征支路从全局特征支路和局部特征支路获取梯度,因此全局分支损失lossg和局部分支损失lossl同时用于优化全局特征支路的
其中,
进一步的,在一个实施例中,使用随机梯度下降sgd优化器进行训练,如图4所示。
经过多轮训练后,神经网络总损失趋于稳定,迭代过程结束,训练完成,得到训练好的网络模型,如图2、图3所示,训练好的网络模型中包括全部cnn架构及训练的全部参数;
将测试集输入到训练好的神经网络模型中,训练好的神经网络模型输出预测结果,将预测结果和测试集原数据对比并输出map和rank-1正确率,再将神经网络模型输入到可视化模块中,可以得到rank可视化结果和激活图(activationmaps),如图5所示。
一种基于注意力机制的轻量级多分支行人重识别系统,包括:图像获取模块、数据预处理模块、神经网络训练模块、图像识别模块、存储模块、可视化模块和输出模块;
图像获取模块作为整个系统的数据读取入口,用于输入数据集,获取获取历史图像数据集和实时图像数据;
数据预处理模块用于对输入的历史图像数据集中的原始图像进行翻转、裁剪、擦除和随机修复处理,对有限的训练数据进行扩增,使得网络能够学习到更加复杂的遮挡情况下的特征,能够应对更加复杂的识别情况;
所述神经网络训练模块用于神经网络的训练与测试,是整个系统的核心模块,所述神经网络训练模块包括全局分支模块、局部分支模块、共享模块、软注意力模块、硬注意力模块,所述全局分支模块用于全局特征的提取与学习,所述局部分支模块用于局部特征的提取和学习,共享模块作为全局分支模块和局部分支模块之间的共享层,允许全局分支的“知识”转移到局部分支;
进一步的,神经网络训练模块包括共享模块、全局模块以及局部模块,共享模块作为全局模块和局部模块之间的共享层,允许不同分支间的“知识”转移,全局模块中的数据可以通过共享模块转移到局部模块;局部模块也可以通过共享模块转移到全局模块;全局模块由3个inceptiona、3个inceptionb模块和3个ha模块组合而成,用于全局特征的提取和学习,并且能够将一些重要特征共享给局部分支。每个局部模块主要由3个inceptionb模块组成,用于对局部特征进行提取和学习。
进一步的,所述的轻量级多分支网络包括:轻量级卷积块、se块。
更进一步的,轻量级卷积块包括卷积模块、深度卷积模块和通道注意力模块。
通道注意力模块用于自适应的调整各卷积滤波器的权重,使得对任务更有效的特征的通道权重更大,效果小的或无效的特征的通道权重更小。
深度卷积模块可以在损失精度不多的情况下大幅度降低参数量和计算量。
进一步的,轻量级卷积模块中包括卷积模块、深度卷积模块和通道注意力模块,如图4所示,1×1大小的卷积模块用于整合各个通道的信息,同时缩减输出通道数,以此压缩参数量;本发明采用3×3大小、步长为1的深度卷积模块,用于对特征图进行运算,大幅度降低参数量和计算量;最后使用通道注意力模块对深度卷积模块得到的特征图进行挤压操作,得到通道级的全局特征,然后对全局特征进行激励操作,学习各个通道间的关系,也得到不同通道的权重,最后乘以原来的特征图得到最终特征,对于使对任务更有效的特征的通道权重更大,效果小的或无效的特征的通道权重更小,抑制那些不重要的通道特征。最终的轻量级卷积模块结构组合如图3所示。
所述图像识别模块通过训练好的神经网络模型对实时图像数据可进行处理,得到并输出预测结果。
所述存储模块用于存储预测结果。
所述可视化模块用于输出rank可视化结果和激活图(activationmaps)。
所述输出模块用于输出行人图片的分类结果。
当介绍本申请的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。
此外,术语“第一”、“第二”、“第三”、“第四”、“第五”、“第六”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量,由此,限定有“第一”、“第二”、“第三”、“第四”、“第五”、“第六”的特征可以明示或者隐含地包括至少一个该特征。
需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-0nlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。