本发明涉及计算机视觉监控技术领域,具体涉及一种基于正反卷积和多层分支深度网络的行人属性识别方法。
背景技术:
近年来,智能视频监控技术已被用于对视频进行自动处理和分析以节省昂贵的人力资源。视频分析在视频商业智能和视觉监控等领域具有很高的应用潜力,其应用范围可以从寻找失踪儿童到虚拟现实。视频分析是智能视频监控系统的关键模块,其中就包括行人属性的视觉识别,如性别,着装、是否背包等。
行人属性识别在视频监控、智能商业视频、行人重识别、人脸识别等领域有着广泛的应用前景,受到了越来越多的研究者的关注。对于行人属性识别任务而言,不同属性任务之间需要使用的特征在一定程度上是可以重复利用的,所以这是一个典型的多任务学习的问题。但是现有的行人属性识别方法识别精度不够准确,需要进一步改进。
技术实现要素:
本发明的目的是提供了一种能提升分类效果的行人属性识别方法,基于正反卷积结构和densenet多层分支网络可提取更加丰富的特征,显著提高分类精度。
为了达到上述目的,本发明通过以下技术方案来实现:
基于正反卷积和多层分支深度网络的行人属性识别方法,包括如下步骤:
s1)将所选择的行人属性都转化为多个二分类属性;
对于m种行人属性,每种属性分别有
s2)构建新的网络模型
在densenet(密集连接卷积神经网络)中加入正反卷积结构,对网络结构进行改进,即将densenet中的瓶颈网络(bottleneck)结构修改为正反卷积结构的basicblock结构,如图2所示,即将bottleneck中的1×1卷积修改为3×3卷积,3×3卷积修改为3×3反卷积。
在无预训练的情况下,将网络最末尾的线性分类器改为多个二分类线性分类器,进行训练;
s3)根据需求,对训练得到的分类结果较差的属性自底向上进行分支;对分类结果仍然不理想的属性,继续自底向上的分支过程,但需保持总深度不变;
重复步骤s3),直到网络输出的各属性分类性能满足要求或无法继续分支;
s4)迁移预训练模型参数,载入imagenet预训练模型,固定特征提取参数进行训练;
s5)解除预训练模型参数的固定,进行综合微调的训练;
s6)将结果转化回需要的属性空间,将输出的
进一步地,步骤s3)中,对于densenet中的n个denseblock结构,每个denseblock有12层,自底向上进行分支,首先将最底层(第n层)的denseblock改为两个结构一样的分支,分别表示为dense_blockn.1和dense_blockn.2;将步骤s2)中得到的分类结果较好的属性分类器接在dense_blockn.1后面,将结果较差的属性分类器接在dense_blockn.2后面,对调整后的网络进行训练;若dense_blockn.2分支中仍有分类结果较差的属性,则将原网络中的第n-1层的dense_block(n-1)同样进行上述的分支操作,将分类效果不理想的属性分离出来,放入新的分支dense_blockn.3中,该新分支连接到第n-1层的第二个分支后面。依此类推,直到网络输出的所有属性分类性能满足要求或无法继续分支为止。
本发明与现有技术相比,具有以下优点:
本发明提出的基于正反卷积和多层分支深度学习网络的多任务行人属性识别方法,与已有的方法相比,所提出的方法可以提取到更丰富的特征,显著提高了分类精度,尤其是在小数据集的情况下,能够在尺度较小的属性上实现分类效果的提升。本发明通过自然分支的多任务学习模型,迁移预训练模型的网络参数到行人属性识别网络,并将卷积神经网络最后一层线性分类器转化为多组二分类线性分类器,对这些二分类器的决策结果进行整合得到最终的分类结果,能够有效提高行人属性识别的准确率。
附图说明
图1是本发明正反卷积结构代替瓶颈结构的示意图。
图2是本发明构建行人属性识别深度网络模型的流程示意图。
图3是本发明基于正反卷积结构的densenet网络示意图。
图4是本发明基于正反卷积结构的双分支densenet网络示意图。
图5是本发明基于正反卷积结构的三分支densenet网络示意图。
具体实施方式
下面结合附图,对本发明的实施例作进一步详细的描述。
本发明基于正反卷积和多层分支深度网络的行人属性识别方法,包括构建行人属性识别深度网络模型和可选择的正反卷积结构代替瓶颈结构两个部分。通过迁移预训练网络参数到行人属性识别上的方法,帮助行人属性识别网络进行学习,利用带分支的深度网络提取了行人属性样本的特征,再利用不同分支的深度特征构造多组二分类线性分类器,并对这些二分类器的决策结果进行整合得到最终的分类结果。
如图1所示,基于正反卷积和多层分支深度网络的行人属性识别方法,包括如下步骤:
s1)将所选择的行人属性都转化为多个二分类属性。
如果选择的行人属性有
具体实现过程如下:以长短发三分类属性为例(长发、短发、不确定)转化为(有长发特征、无长发特征)、(有短发特征、无短发特征)两个二分类属性。原属性中的(不确定)意味着图片中没有具体的长短发特征,如戴了帽子,故归入(无长发特征)、(无短发特征)类别中;原属性中(长发)对应(有长发特征)、(无短发特征);原属性中(短发)对应(无长发特征)、(有短发特征)。
s2)构建新的网络模型
在densenet(密集连接卷积神经网络)中加入正反卷积结构,对网络结构进行改进,即将densenet中的瓶颈网络(bottleneck)结构修改为正反卷积结构的basicblock结构,如图2所示,即将bottleneck中的1×1卷积修改为3×3卷积,3×3卷积修改为3×3反卷积。
正反卷积结构的灵感来自于图像分割领域中的先卷积再反卷积得到原图的分割图的思路,这里我们直觉上认为原图与分割图处于相近的层次,并试图通过这种方式避免特征图之间的特征层次的区别,并且因为在这个结构中使用了下采样接上采样两次的特征提取,使升降维后的特征被提取得更加充分。
在无预训练的情况下,将网络最末尾的线性分类器改为多个二分类线性分类器,进行训练。
具体实现过程如下:将原densenet中批归一化+激活函数+1×1卷积接批归一化+激活函数+3×3卷积(bn-relu-conv(1×1)-bn-relu-conv(3×3))的瓶颈(bottleneck)网络结构,修改为:批归一化+激活函数+3×3卷积接批归一化+激活函数+3×3反卷积((bn-relu-conv(3×3)-bn-relu-反卷积(3×3)))的结构。
s3)根据需求,对训练得到结果较差的属性自底向上进行分支。
具体实现过程如下:对于densenet中的n个denseblock结构,如图3所示;每个denseblock有12层,然后自底向上进行分支,首先将最底层(第n层)的denseblock改为两个结构一样的分支,分别表示为dense_blockn.1和dense_blockn.2,如图4所示;将步骤s2)中得到的分类结果较好的属性分类器接在dense_blockn.1后面,将结果较差的属性分类器接在dense_blockn.2后面,对调整后的网络进行训练;若dense_blockn.2分支中仍有分类结果较差的属性,则将原网络中的第n-1层的dense_block(n-1)同样进行上述的分支操作,将分类效果不理想的属性分离出来,放入新的分支dense_blockn.3中,该新分支连接到第n-1层的第二个分支后面,如图5所示;依此类推,直到网络输出的所有属性分类性能满足要求或无法继续分支为止。
s4)迁移预训练模型参数,未经修改的densenet121预训练模型可以从torchvision官方提供的资源中进行下载,具体需要迁移的参数详见表1,如果因为版本原因无法载入可使用非严格模式,或者所有的bn层只载入weight,bias,running_mean,running_var参数即可。修改后的densenet也将对应的参数进行迁移即可。
表1pytorch平台下torchvision官方densenet121预训练模型需要迁移的参数列表
载入imagenet(alarge-scalehierarchicalimagedatabase)预训练模型,固定特征提取参数进行训练。
所述预训练网络的网络结构及其训练方法已有文献公开披露。若时间充足,还可将densenet结构中的瓶颈(bottleneck)结构更换为正反卷积结构,可以获得精度的增益,但目前尚无公开的imagenet预训练模型,需要自行训练。
s5)解除预训练模型参数的固定,进行综合微调的训练。
s6)将结果转化回需要的属性空间。
将输出的
具体实现过程如下:以长短发三分类属性为例,若输出的结果为(有长发特征)、(有短发特征),则根据两个二分类属性输出数值的大小作出判断;若(有长发特征)属性值大于(有短发特征)属性值,则判定为(长发),否则判定为(短发);若输出结果为(无长发特征)、(无短发特征),则判定为(不确定);若输出结果为(有长发特征)、(无短发特征),则判定为(长发);若输出结果为(无长发特征)、(有短发特征),则判定为(短发)。
以上所述仅是本发明优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。