本发明涉及人工智能技术领域,尤其是一种联合对抗生成网络的行人属性识别方法、系统、装置及介质。
背景技术:
随着科技的进步和人们对于安全意识的不断提高,各行业的视频监控应用越来越多,摄像头每天产生的视频数以亿计。在海量视频数据面前,准确分析视频中的人、车、物、事件等需求越来越迫切,视频结构化信息提取就显得尤为必要。行人属性识别是视频结构化信息中的关键信息,是行人信息的基础,具有广泛的实用价值。目前学术界和工业界在行人属性识别方面做了大量研究,提出了不少有价值的算法。较为常用的行人属性识别方法主要有基于全图的行人属性识别方法、基于局部图的行人属性识别方法、基于注意力机制的行人属性识别方法、基于序列化的行人属性识别方法、基于新损失函数的行人属性识别方法、基于先验知识的行人属性识别方法。
由于从监控视频或图片中抓拍的行人目标不可避免的会存在背景杂乱以及行人被遮挡等问题,特别是监控场景低照度、恶劣天气(雨、雪、大雾)等复杂场景下的行人属性识别在实际应用时的效果并不理想。
其中,基于全图的行人属性识别方法,需要收集大量的复杂场景图片对模型进行训练调整,难以克服各种光照下的颜色等行人属性识别问题。
基于局部图像的行人属性识别方法,过程繁琐,耗时过长,且定位行人分析部件可能不太准确,比较粗糙,不具备实用性。
基于注意力机制的行人属性识别方法和基于序列化的行人属性识别方法,能够很好的学习关联信息,但针对光照和复杂背景的场景无法较好的学习到准确率的行人特征属性。
基于新损失函数的行人属性识别方法,提升了识别能力,对于复杂背景的行人属性识别,难以达到较好的识别准确率。
基于先验知识的属性识别方法,是一种多帧信息融合的方法,难以克服复杂场景下的行人属性识别问题。
技术实现要素:
有鉴于此,本发明实施例提供联合对抗生成网络的行人属性识别方法、系统、装置及介质,提高识别准确率。
本发明的第一方面提供了一种联合对抗生成网络的行人属性识别方法,包括:
获取待识别图像数据;
通过行人属性识别模块对所述待识别图像数据进行识别,得到行人属性;
其中,所述行人属性识别模块通过以下步骤训练得到:
获取行人属性识别的训练样本数据;
根据所述训练样本数据训练得到第一行人属性识别模块;
通过对抗生成编码模块对所述训练样本数据进行编码,得到编码特征,所述编码特征包括光照变化信息和天气变化信息;
将所述编码特征输入至对抗生成解码模块进行解码后,得到第二行人属性识别模块,并通过对抗生成判别器对解码结果进行校验;
根据所述第一行人属性识别模块和所述第二行人属性识别模块确定行人属性识别损失函数;
根据所述行人属性识别损失函数,训练得到行人属性识别模块。
在一些实施例中,所述通过对抗生成编码模块对所述训练样本数据进行编码,得到编码特征,包括:
通过迁移光照变化的第一对抗生成编码模块对所述训练样本数据进行第一编码;
通过迁移天气变化的第二对抗生成编码模块对所述训练样本数据进行第二编码;
通过权值参数,根据所述第一编码的结果和所述第二编码的结果,确定编码特征。
在一些实施例中,所述对抗生成解码模块包括4个残差模块和4个卷积层,所述残差模块包括2个自适应归一化层。
在一些实施例中,所述行人属性识别损失函数的确定方法包括:
确定行人属性种类数量;
确定行人属性类别数量;
确定指示变量以及对于样本属于类别的概率;
根据所述行人属性种类数量、行人属性类别数量以及所述概率,计算行人属性识别损失函数。
在一些实施例中,所述行人属性包括行人性别、行人年龄、衣服类型以及衣服风格。
在一些实施例中,所述对抗生成判别器的损失函数的计算公式为:
lcyclegan(g,f,dx,dy)=lgan(g,dy,x,y)+lgan(f,dx,y,x)+lcycle(g,f),
其中,x和y分别代表两个不同的数据域;g和f代表两个生成器网络;f代表***;dx代表x这一数据域的鉴别器网络;dy代表y这一数据域的鉴别器网络;lgan()代表对抗损失;lcycle()代表对偶网络的循环损失;lcyclegan()代表对抗生成判别器的总损失函数。
在一些实施例中,所述行人属性识别损失函数的计算公式为:
其中:n代表行人属性种类数量;m代表一种行人属性类别数量;yc代表指示变量,pc代表对于观测样本属于类别c的预测概率;lattribution代表行人属性识别损失函数。
本发明的第二方面提供了一种联合对抗生成网络的行人属性识别系统,包括:
获取模块,用于获取待识别图像数据;
行人属性识别模块,用于对所述待识别图像数据进行识别,得到行人属性;
其中,所述行人属性识别模块根据本发明第一方面所述的方法训练得到。
本发明的第三方面提供了一种装置,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如本发明第一方面所述的方法。
本发明的第四方面提供了一种存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如本发明第一方面所述的方法。
本发明的实施例在通过对抗生成编码模块对所述训练样本数据进行编码,迁移了光照变化和天气变化来生成编码特征,能够自动从待识别图像数据中采集光照和天气的细节属性,无需大量收集复杂场景下的样本进行训练,也能够较好的克服了光照、背景、天气等复杂场景对行人属性识别的影响,提高了识别的准确率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的联合对抗生成的行人属性识别网络结构图;
图2为本发明实施例的联合对抗生成的行人属性识别模型训练流程图;
图3为本发明实施例的行人属性识别模块网络结构图;
图4为本发明实施例的联合对抗生成的行人属性识别推理流程图。
具体实施方式
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
针对现有技术存在的问题,本发明实施例提供了一种联合对抗生成网络的行人属性识别方法,本发明设计了迁移光照和天气变化两个生成编码器,采用cyclegan(循环对抗生成网络)对抗生成合成包含了光照和天气变化的编码特征,生成的光照和天气变化的编码特征包含了来自于真实图片的光照和天气变化信息。行人属性识别模块可以学习到光照和天气变化信息,自动从合成的图像中采集细节属性,不需要大量收集复杂场景下的样本进行训练,也能够较好的克服了光照、背景、天气等复杂场景对行人属性识别的影响。
参照图1,本发明实施例提供了一种联合对抗生成的行人属性识别网络结构图。基于图1所示的识别网络结构,本发明的行人属性识别方法包括步骤s101和s102:
s101、获取待识别图像数据;
s102、通过行人属性识别模块对所述待识别图像数据进行识别,得到行人属性;
如图1所示,本发明实施例首先导入行人属性识别模型训练样本到对抗生成编码模块(本方案中的对抗生成编码模块包括:一个迁移光照变化的对抗生成编码模块m1-1,一个迁移天气变化的对抗生成编码模块m1-2)。其次,通过将两个对抗生成网络的编码器的输出乘以权值参数a1和a2,得到的编码特征输出作为对抗生成解码器m2-1的输入。最后,通过一个对抗生成判别器判定m3-1合成的样本是否为真,同时采用多任务机制训练行人属性模块m3-2、m3-3,采用数据对抗生成损失函数和行人属性识别损失函数叠加来综合评定行人属性识别网络模型训练效果,实现把光照变化和天气变化迁移学习到行人属性识别网络模型,从而减少光照变化和天气变化对行人属性识别的干扰,提升行人属性识别的准确率。
图2是本发明实施例提供的一种联合对抗生成的行人属性识别模型训练流程图。
其中,所述行人属性识别模块通过步骤s201-s206训练得到:
s201、获取行人属性识别的训练样本数据;
s202、根据所述训练样本数据训练得到第一行人属性识别模块;
s203、通过对抗生成编码模块对所述训练样本数据进行编码,得到编码特征,所述编码特征包括光照变化信息和天气变化信息;
具体地,本发明实施例通过迁移光照和天气变化对抗生成编码模块,采用resnet50(残差网络50)作为基础网络,剔除全局平均池化层全连接层,添加自适应最大池化层,对输入的行人图片进行编码。
s204、将所述编码特征输入至对抗生成解码模块进行解码后,得到第二行人属性识别模块,并通过对抗生成判别器对解码结果进行校验;
具体地,本发明实施例的对抗生成解码模块,采用4个残差模块和4个卷积层,每个残差模块包含2个自适应归一化层,解码包含光照和天气变化的对抗生成编码特征。
另外,本发明实施例的对抗生成判别器,采用多尺度缩放判定,通过不同尺寸的图像进行输入n*m和2n*2m和4n*4m,对图片进行几次缩放,并且对每次缩放进行预测真假,采用梯度惩罚,直到更新判别器达到稳定。对抗生成网络的损失函数为:
lcyclegan(g,f,dx,dy)=lgan(g,dy,x,y)+lgan(f,dx,y,x)+lcycle(g,f),
其中:
其中,x和y分别代表两个不同的数据域;g和f代表两个生成器网络;f代表***;dx代表x这一数据域的鉴别器网络;dy代表y这一数据域的鉴别器网络;lgan()代表对抗损失;lcycle()代表对偶网络的循环损失;lcyclegan()代表对抗生成判别器的总损失函数。
s205、根据所述第一行人属性识别模块和所述第二行人属性识别模块确定行人属性识别损失函数;
本发明实施例针对行人属性的多样性和关联性,本发明采用基于多任务的行人属性识别方法。图3是基于多标签的行人属性识别网络模型结构图。如图3所示,行人属性识别的损失函数如下:
其中,n为行人属性种类数量,m为一种行人属性类别数量,yc为指示变量,pc为对于观测样本属于类别c的预测概率。
针对联合行人属性和对抗生成网络的模型训练,本发明实施例提出联合收益的损失函数。联合对抗生成的行人属性识别损失函数如下:
lattribution=lattribution_adv+lattribution_src+lcyclegan(g,f,dx,dy)
其中:n为行人属性种类数量,m为一种行人属性类别数量,yc为指示变量,pc为对于观测样本属于类别c的预测概率。lcyclegan(g,f,dx,dy)为抗生成网络的损失函数。lattribution代表行人属性识别损失函数。
s206、根据所述行人属性识别损失函数,训练得到行人属性识别模块。
图4为联合对抗生成的行人属性识别推理流程图,如图4所示,本发明实施例首先,导入待识别的行人属性识别目标图片,其次,采用多任务机制训练的行人属性模块,最后,输出行人属性识别结果,包括行人性别、年龄、衣服类型、衣服风格等行人属性。
针对行人属性的多样性和关联性,本发明实施例采用基于多任务的行人属性识别方法。如图3所示,基于多标签的行人属性识别网络模型结构图。行人属性识别的损失函数如下:
其中:n为行人属性种类数量,m为一种行人属性类别数量,yc为指示变量,pc为对于观测样本属于类别c的预测概率。
综上所述,本发明实施例提出的一种联合对抗生成的行人属性识别方法,是一种端到端的深度学习网络,相较于现有技术的基于局部图像的行人属性识别方法和基于先验知识的属性识别方法具有较强的稳定性。
本发明首次采用数据对抗生成网络模型和行人属性识别模型联合学习,采用迁移学习的方法,把光照变化和天气变化迁移学习到行人属性识别网络。
相较于现有技术的基于全图的行人属性识别方法、基于注意力机制的行人属性识别方法、基于序列化的行人属性识别方法以及基于新损失函数的行人属性识别方法,本发明添加了复杂场景合成样本,能够带来针对复杂场景下的行人属性识别准确率的直接提升。
本方案通过对抗生成和属性识别两个损失函数来综合评定模型训练效果,相较于基于全图的行人属性识别方法通过增加复杂场景样本或生成样本等方法,本方法无需大量收集复杂场景样本或生成复杂场景样本,也能够有效克服复杂场景对提升行人属性识别准确率的影响。
本方案可以在低照度或光照变化较大、大雾等复杂场景下,获取较好的行人属性识别准确率,具有较强的抗干扰能力。
本发明中提出的一种联合对抗生成的行人属性识别方法,算法鲁棒性较强,具有一定的实用性。
本发明实施例还提供了一种联合对抗生成网络的行人属性识别系统,包括:
获取模块,用于获取待识别图像数据;
行人属性识别模块,用于对所述待识别图像数据进行识别,得到行人属性;
其中,所述行人属性识别模块根据上述的方法训练得到。
本发明实施例还提供了一种装置,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现本发明所述的方法。
本发明实施例还提供了一种存储介质,所述存储介质存储有程序,所述程序被处理器执行实现本发明所述的方法。
综上所述,本发明提出了一种联合数据对抗生成网络和行人属性识别网络的网络,采用对抗生成网络模型和行人属性识别模型联合训练,把光照变化和天气变化迁移学习到行人属性识别网络模型;
本发明采用数据对抗生成损失函数和行人属性识别损失函数叠加来综合评定行人属性识别网络模型训练效果。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。