本公开涉及行人重识别技术领域,特别是涉及基于摄像头风格迁移和单标注的行人重识别方法及系统。
背景技术:
本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。
行人重识别(re-id)是通过利用计算机视觉相关技术来寻找图像库或者视频序列中特定行人的技术,即给定感兴趣的行人,从其他多个监控摄像头数据或者图片中对给定行人进行目标检索。
在实现本公开的过程中,发明人发现现有技术中存在以下技术问题:
在行人重识别的研究中,通常用到的方法是监督学习,监督学习的训练集要求包括输入输出对,也就是特征和带有标签的目标,这个标签是由人工标注的,通过数据的训练,让机器找到特征与目标标签之间的关系,输入一个新的特征时,可以判断出标签,即从给定的训练数据集中学习出一个模型,然后根据这个模型得到新数据的预测值。为了得到一个相对较好的识别模型,需要大量的图片,和对应的人工标注的标签,而人工标注的过程需要耗费大量的人力以及时间。与监督学习不同,无监督学习的输入数据没有标注,也没有确定的结果,直接学习输入特征之间的内在联系,虽然这种方法听上去更加智能,但是因为没有目标的指引,完全的无监督学习取得的效果并不理想。
现有基于单样本的研究大都集中于伪标签的选取上。m.ye,a.j.ma,l.zheng,j.li,andp.c.yuen,“dynamiclabelgraphmatchingforunsupervisedvideore-identifification,”inproc.ieeeint.conf.comput.vis.,oct.2017,pp.5152–5160.和h.fan,l.zheng,c.yan,andy.yang,“unsupervisedpersonre-identifification:clusteringandfifine-tuning,”acmtrans.multimediacomput.commun.appl.,vol.14,no.4,p.83,oct.2018.采用静态策略来确定伪标签的数量,然后进行下一步的训练。在迭代过程中,这些算法始终固定伪标签训练集的大小。
wuy,liny,dongx,etal.exploittheunknowngradually:one-shotvideo-basedpersonre-identificationbystepwiselearning[c]//2018ieee/cvfconferenceoncomputervisionandpatternrecognition(cvpr).ieee,2018.提出了一种渐进式学习框架,在有限的样本中更好的利用了未标记数据进行行人重识别的训练。这个算法最初在单标注样本的数据上训练一个cnn模型,然后为所有的未标记的样本生成一个伪标记,根据预测置信度选择一些最可靠的伪标记数据进行训练。与前一方法不同的是,它的伪标签训练集的数量不是固定的,是根据采样策略不断扩大的。相比之下,动态的增加伪标签的数量在迭代过程中获得了更好的效果。然而,上述的方法都没有考虑跨摄像头的行人检索问题。
行人重识别是一个跨摄像头进行图片检索的问题,在不同的摄像头下,由于拍摄角度不同、建筑物遮挡带来的色差以及图片背景内容等都不同,导致同一个人在不同摄像头下的差别很大。传统的单样本标注只对某一个人在某一个摄像头下进行标注,缺少图片跨摄像头的差异化学习,导致了模型跨摄像头识别率不高的问题。之前方法模型弱的原因有两点:1)单样本标注的数据量太少;2)模型针对某一个摄像头出现了过拟合的现象,不能适应跨摄像头的数据集。同一个行人的图片在不同摄像头下有很大的差别,而不同行人在同一个摄像头下可能会很相似。
技术实现要素:
为了解决现有技术的不足,本公开提供了基于摄像头风格迁移和单标注的行人重识别方法及系统;
第一方面,本公开提供了基于摄像头风格迁移和单标注的行人重识别方法;
基于摄像头风格迁移和单标注的行人重识别方法,包括:
获取待进行行人重识别的若干张无标签图像;
对待进行行人重识别的所有无标签图像中的一张图像,标记待识别的行人;
将已标记的图像输入到预训练的cyclegan网络,输出已标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;对已标记的图像对应的摄像头风格迁移图像的行人进行标记;
将未标记的图像到预训练的cyclegan网络,输出未标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;
将已标记的图像、未标记的图像、已标记的图像对应的摄像头风格迁移图像和未标记图像对应的摄像头风格迁移图像均输入到预训练的cnn网络中,输出未标记图像中每一张图像中待识别行人的识别结果。
第二方面,本公开还提供了基于摄像头风格迁移和单标注的行人重识别系统;
基于摄像头风格迁移和单标注的行人重识别系统,包括:
获取模块,其被配置为:获取待进行行人重识别的若干张无标签图像;
标记模块,其被配置为:对待进行行人重识别的所有无标签图像中的一张图像,标记待识别的行人;
数据扩增模块,其被配置为:将已标记的图像输入到预训练的cyclegan网络,输出已标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;对已标记的图像对应的摄像头风格迁移图像的行人进行标记;
将未标记的图像到预训练的cyclegan网络,输出未标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;
识别模块,其被配置为:将已标记的图像、未标记的图像、已标记的图像对应的摄像头风格迁移图像和未标记图像对应的摄像头风格迁移图像均输入到预训练的cnn网络中,输出未标记图像中每一张图像中待识别行人的识别结果。
第三方面,本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法。
第四方面,本公开还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。
与现有技术相比,本公开的有益效果是:
本公开针对单标注问题中数据量不足导致模型识别性能不佳的情况,提出了利用图像风格迁移进行数据增广的解决思路,为单标注逐步迭代实验提供了一个新的扩大样本的方案。
在训练时本公开提出原始数据集单标注样本和摄像头风格迁移数据集单标注样本共同初始化cnn模型。
在寻找可信图片赋予伪标签本公开提出计算原始数据集图片特征,从原始图片和摄像头风格迁移生成的图片中随机选择一部分赋予伪标签并投入迭代训练模型中。
目前大多行人重识别方法都依赖于完全的数据标注,即需要对每个训练集里的人在不同摄像头下的数据进行标注。然而对于实际的监控场景,如一个城市的监控视频来说,从多个摄像头里手工标注每段视频的行人标签的代价很大。因此我们尝试去只用单标注样本,让网络自己去学会利用那些未标注的样本。也就是说对于每个行人,我们只需要标注其中一段视频或者一张图片,其余的视频或图片通过算法自己去探索。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为第一个实施例的方法流程图;
图2(a)~图2(c)为第一个实施例的图像风格迁移和数据增广的示意图;cam1表示数据集中摄像头1所拍摄的原始真实图片,c1s2表示摄像头1拍摄的行人和摄像头2拍摄风格的生成图片;
图3(a)~图3(c)为第一个实施例的cyclegan工作原理示意图;
图4(a)~图4(b)为第一个实施例的单标注方案对模型进行初始化示意图;
图5(a)~图5(d)为第一个实施例的选定的伪标签候选集的预测精度和召回率;
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本公开使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
实施例一,本实施例提供了基于摄像头风格迁移和单标注的行人重识别方法;
基于摄像头风格迁移和单标注的行人重识别方法,包括:
s1:获取待进行行人重识别的若干张无标签图像;
s2:对待进行行人重识别的所有无标签图像中的一张图像,标记待识别的行人;
s3:将已标记的图像输入到预训练的cyclegan网络,输出已标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;对已标记的图像对应的摄像头风格迁移图像的行人进行标记;
将未标记的图像到预训练的cyclegan网络,输出未标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;
s4:将已标记的图像、未标记的图像、已标记的图像对应的摄像头风格迁移图像和未标记图像对应的摄像头风格迁移图像均输入到预训练的cnn网络中,输出未标记图像中每一张图像中待识别行人的识别结果。
作为一个或多个实施例,所述预训练的cyclegan网络,训练的步骤包括:
s31:构建cyclegan网络;
s32:构建训练集;所述训练集,包括:market-1501数据集或dukemtmc-reid数据集;
s33:将训练集中某一个摄像头a采集的含有行人b的图像作为cyclegan网络的输入值,将训练集中除了摄像头a以外的其他所有摄像头采集的含有行人b的图像作为cyclegan网络的输出值,对cyclegan网络进行训练,得到训练好的cyclegan网络。
作为一个或多个实施例,所述预训练的cnn网络,训练的步骤包括:
s41:利用imagenet数据集对cnn网络进行初级训练;初级训练过程中,图像作为cnn网络的输入值,图像的行人标签作为cnn网络的输出值;
s42:利用有真实标签数据集对初级训练后的cnn网络进行二级训练;二级训练过程中,有真实标签数据集中的图像作为初级训练后的cnn网络的输入值,有真实标签数据集中的图像的行人标签作为初级训练后的cnn网络的输出值;
s43:利用待进行行人重识别的若干张无标签图像,对二级训练后的cnn网络进行三级训练;三级训练过程中,所有的无标签图像作为二级训练后的cnn网络的输入值,二级训练后的cnn网络输出伪标签集合;对伪标签的可靠性进行甄别,保留可靠性高于设定阈值的伪标签,将可靠性低于设定阈值的伪标签进行剔除;
s44:利用有真实标签数据集和带有高可靠性伪标签的数据集,输入到三级训练后的cnn网络进行最终训练;得到训练好的cnn网络。
进一步地,所述s42中,有真实标签数据集对初级训练后的cnn网络进行二级训练步骤之前,还包括:
将有真实标签数据集,输入到训练好的cyclegan网络中,进行数据扩增。
进一步地,所述s43中,利用待进行行人重识别的若干张无标签图像,对二级训练后的cnn网络进行三级训练步骤之前,还包括:
将待进行行人重识别的若干张无标签图像,输入到训练好的cyclegan网络中,进行数据扩增。
进一步地,所述s43中,对伪标签的可靠性进行甄别,具体步骤包括:
计算伪标签对应的行人图像特征与同一个行人的真实标签对应的行人图像特征之间的距离,如果距离小于设定阈值,则表示当前伪标签为可靠伪标签;否则表示当前伪标签为非可靠伪标签。
计算样本之间的欧氏距离,依据是特征空间中的距离(未标注样本与标注样本),距离标注样本越近的可靠性越高。
进行单样本标注设置,分别设置成对有标签的数据集:
其中,x表示输入图像数据,y表示代表该图像数据的身份标签信息。
设置无标签数据集无标签数据集
关于普通单样本标注的设置,对某个行人重识别数据集o中共有m个行人的n张行人图片,k个摄像头。其中对于每个行人,在摄像头1中选择某个行人的一张图片,给它一个初始化的标签,如果在摄像头1中没有拍摄到这个行人的图片,那么就从下一个摄像头中随机选择一张图片进行标注,这样做的目的是确保每个行人都有一张标签标注的图片用于初始化。
关于经过数据风格迁移的数据集e中共有k*n张图片,m个行人,选择每个行人在每个摄像头风格下的图片进行标注,所以共有k*m张有标签图片用于初始化。在评估阶段,经过训练的cnn模型用于查询数据和图像库数据,输出结果为查询数据和图像库数据之间欧氏距离得到的所有的图像库数据中的排名列表。在利用未标注数据时,为每个未标注数据xi∈u预测一个伪标记
cyclegan,不同于一般的gan,cyclegan不需要配对的训练图像,可以从一个特定的场景模式图生成另外一个场景模式图。cyclegan有两个判别器(dx和dy)和两个生成器(g(xy)和g(yx))组成,既能完成数据集x到数据集y的转换,也能满足y到x的转换。
图2(a)~图2(c)为第一个实施例的图像风格迁移和数据增广的示意图;cam1表示数据集中摄像头1所拍摄的原始真实图片,c1s2表示摄像头1拍摄的行人和摄像头2拍摄风格的生成图片;
图3(a)~图3(c)中,x、y分别为两种不同风格的行人图片数据集,在本公开中x、y代表两个不同摄像头风格下图片集。
图3(a)表示两种风格数据集x、y的互相转换,然后由各自的判别器进行真实图片与生成图片的对抗判别。
图3(b)中输入x数据集的一张图片x,由生成器gxy生成y数据集风格图片
cyclegan就是一个x->y单向gan加上一个y->x的单向gan。两个gan共享两个生成器,然后各自带一个判别器,一共两个生成器两个判别器所以cyclegan共有四个loss。
其中,x->y的判别器损失为:
y->x的判别器损失为:
生成器gxy损失为:
生成器gyx损失为:
所以cyclegan的最终损失为四个损失相加表示为:
l(gxy,gyx,dx,dy)=lgan(gxy,dy,x,y) lgan(gyx,dx,y,x) lcyc(gxy) lcyc(gyx)(5)
首先以两个不同风格的摄像头作为两个不同的域空间,图像集mij通过cyclegan进行相互转换。
其中,i,j≤k,i代表当前摄像头,j代表剩余其他摄像头。将所有不同摄像头风格的图像集相互转换以后,这时的数据集就变成了原来的k倍。
由于真实图片与生成图片之间都有id标签,在实验中,我们使用id-discriminativeembedding(ide)来作为re-idcnn模型。使用softmax损失,ide将重识别的训练看作为图像分类任务。在实现过程中,由于生成图片分辨率较低,统一将输入图像都调整为256*128。使用resnet50作为主干,使用imagenet与训练模型进行细微的调整,删掉最后的1000维分类层并添加两个完全连接的层。使用cyclegan生成新的训练样本,在一个数据集内部实现数据集扩充,把两个不同的摄像头风格视为两个不同的域空间。
使用cyclegan学习每个摄像头风格,完成两两摄像头中image-image风格的相互转换身份损失为:
最后,对于m个行人的k*n张由k个摄像头拍摄的数据集我们得到了k*n-k*m张训练图片。
在完成跨摄像头风格图片迁移之后,将所有的图片分为原始图片数据集o和风格迁移图片数据集e。
然后,分别设置成对有标签的数据集
同理,依据原始真实图片和生成图片设置不成对的无标签数据集
依据原始图像数据集和跨摄像头风格迁移后的数据集设置伪标签数据集s和se,预测身份标签是由初始标签数据训练的cnn模型预测的记为
单标注的目标就是充分利用大量的未标注数据,其中一个方法就是为根据一些方法选择有利用价值的未标注数据记为伪标签。在完成了数据集扩充之后,通过两步更新cnn模型。第一步使用原始标签数据集l、数据风格迁移标签数据集le、伪标签集和无标签集四个部分训练cnn模型。第二步根据预测可靠度准则,从大量的未标记数据中选出一些可靠的伪标记作为候选者。在第一次迭代中只使用标签数据集训练cnn模型,在这个过程中,所有未标记数据都没被赋予伪标签。在迭代过程中,不断扩大伪标记候选集。然后通过风格迁移 单标注的方法利用四部分数据逐步学习,最后得到鲁棒的模型。伪标签是由特征空间中最近标记领域的身份标签分配给未标记的候选对象,根据它们之间的距离衡量伪标签的可靠性。
具体的做法首先在两个标记数据集l和le上训练初始模型,然后利用这个初始模型来预测产生未标记数据的伪标记,把所有的伪标记数据放入候选集中,候选集是不断更新的。从候选集中选择最可靠样本赋予其伪标签,之后含标签的数据和含有伪标签的数据一同训练,产生更加健壮的cnn模型,伪标签的选择过程是动态的,逐步增加伪标签的数量,进入迭代更新环节,一步一步慢慢更新cnn模型使其越来越健壮。
如图1所示,原始数据集首先进行k(k为数据集摄像头数目)倍扩充,扩充后进行初始化cnn网络。无标签数据通过初始的cnn网络进行样本预测,选择可靠性高的样本进入候选集然后选择一部分作为伪标签。伪标签选取结束后,与原始标签数据一起重新训练cnn模型,整个过程都是动态变化的,一轮迭代完成后自动更新剩余的无标签样本数据集。伪标签的数量是随着迭代的进行逐步增加的。
网络训练:
首先介绍模型的更新步骤。在第t次迭代中,共有四种数据用于训练,即原始数据集的标记集l、风格迁移数据集的标记集le、伪标记集st和无标签标记集mt。两个标签数据集是通过单样本方法进行标注,所以标签集l和le具有可靠的标记信息。伪标签集内包含最可靠的伪标签,所以伪标签集st中具有相对可靠的标签信息。对标签和伪标签集使用idclassifier和cross-entropyloss进行优化。索引集mt中没有可靠的伪标签也没有可靠的利用信息,mt用于整理迭代过程中剩余的无标签数据,随着迭代过程的进行,mt的大小也是动态变化的,最后使用theexclusiveloss对其进行优化cnn模型。
a.有标签图片 有标签的风格迁移图片的训练
整个迁移学习 单样本的逐步学习过程中最关键的一步就是效率最高的利用标签数据集。在标记数据集l和le中有真实的身份标签,对于这两部分标签数据,统一使用cross-entropyloss进行优化,我们的在进行单标注标签数据使用cross-entropyloss进行优化时,对数据集进行了跨摄像头风格的数据迁移,使原数据集扩大为了现在的k倍(k为原数据集的摄像头数目),这样就是得原单标注数据集也变为了原来的k倍。为了方便理解,在表示中记为l和le,在真实的训练过程中,两部分数据是一同训练的。对于这一部分使用目标函数:
其中,xi和yi分别原始真实图片数据集代表第i输入图像数据和第i个相应的身份识别标签。f是由ω进行参数化的identityclassifier,f的作用是将特征嵌入函数φ进行分类,φ作为内嵌函数由θ进行参数化。lce表示预测标签f与真实身份标签yi的损失,其值越小表示与真实身份越相似。
这一过程在整个逐步迭代训练模型和充分使用未标注样本的过程中尤为重要,因为在初始迭代过程中不需要伪标注数据,一个良好的初始训练模型对后续加入伪标签数据的训练起十分关键的作用,对伪标注数据的利用会更加充分。我们的方法有原数据集k倍的数据量,为整个过程提供了更鲁棒的初始模型。
b.伪标签图片 伪标签的风格迁移图片的训练
这一部分数据的训练,我们的方法还是分成两个部分,第一部分是原始数据集图像数据,第二部分是摄像头风格迁移数据集图像数据。依据原始数据集图片计算特征,在全部的图片数据中,对于每张图片在k个摄像头中随机选一张用于训练。对于这一部分数据来说,能不能很好的优化模型取决于伪标签集的可信度,选择可信度高伪标签一同训练会增加模型的鲁棒性,反之如果选择了不可靠样本作为伪标签投入训练,会严重的损害模型。高效抽样标准选取候选者赋予伪标签组成的伪标签集st内同样具有较为可靠的标签监督信息,所以依照对有标签集处理的规则处理同样使用cross-entropyloss对其进行优化训练:
其中,si∈{0,1}是xi的选择指标,xi在这表示未标注样本,si由前面标签故居过程中生成的,它决定是否选择伪标签数据
c.无标签图片 无标签的风格迁移图片的训练
在大量无标注数据的利用上,最常用的方法是使用排他性损失作为自我监督的辅助损失,提取有效信息学习判别表示。在这个过程中主要学习输入图像的区别来区分样本,利用行人图像之间的差异来提取一些薄弱的监督信息。使用一下目标函数可以使未标注集中某个数据xi在特征空间中推离其他数据xj(i≠j)。
特征库
其中,
其中,超参数μ是m的更新速率,不将μ固定为常数,因为在开始训练时m需要较小的μ来加速m的更新,随着epochs的增加,m必须变得逐渐稳定,这时需要较大的μ,所以整个过程μ是逐步增加的。
排他性损失作为一种自我监督的辅助损失,主要用于从未标记数据中学会判别表示而无需识别身份标签。在迭代优化模型的过程中,排他性损失主要促使模型学习输入图像的区别予以区分。所以在整个过程中,需要更多地关注输入身份的细节。在迭代过程中访问更多样本并利用行人图像之间的差异来提供一些可用的监督信息。
伪标签赋值:
伪标签的选取和取值过程在能否充分利用未标注数据过程中起至关重要的作用。在标签估计筛选过程中,最常用的方法是根据分类损失classificationloss来抽取未标记数据,但是分类损失的预测值在实际的运用中不能很好地适应检测评估,而且对于单标注样本数据,分类器很容易产生过拟合。根据特征空间中的距离作为伪标签可信度的参照标准,采用最近邻(nn)分类器,根据距离最近的标记邻居为未标记数据分配伪标签。依照原始数据集的输入特征计算欧氏距离,通过以下公式为所有未标记数据xi∈u∪ue进行评估:
根据以下公式来评价dissimilarritycost:
d(θ;xi)=||φ(θ;xi)-φ(θ;x*)||(14)
在第t次迭代中,通过以下式子选择mt个距离最接近标注样本的未标注样本:
其中,k表示某原始图片数据集摄像头的数目,mt表示第t次迭代选择伪标签集的大小。然后通过得到的最佳预测值y*为其赋予伪身份识别标记
关于迭代方案,在每次迭代首先对公式(9)和公式(11)进行优化,通过
实验方案:
数据集:
market-1501:该数据集在清华大学校园中采集,图像来自6个不同的摄像头,其中有一个摄像头为低像素。同时该数据集提供训练集和测试集。训练集包含12,936张图像,测试集包含19,732张图像。图像由检测器自动检测并切割,包含一些检测误差(接近实际使用情况)。训练数据中一共有751人,测试集中有750人。所以在训练集中,平均每人有17.2张训练数据。
dukemtmc-reid:图像来自8个不同摄像头。该数据集提供训练集和测试集。
训练集包含16,522张图像,测试集包含17,661张图像。训练数据中一共有702人,平均每人有23.5张训练数据。
评估指标:我们使用累计匹配特征(cmc)曲线和平均精度(map)来评估每种方法的性能。平均精准度(ap)是根据其准确率调用曲线计算得出的。map为所有查询中平均精度的平均值。我们列出了rank-1,rank-5,rank-10,rank-20分数以代表cmc曲线。cmc分数反映了检索精度,map反映了召回率。
实验设置
对于这个基于数据增广的单标注实验,在所有数据集中,我们除了为每个身份从camera1中随机选择一个图像作为初始化之外,还增加了不同风格摄像头下图像互相转换的图片。如果一个摄像头下没有一个身份的任何记录,我们将从下一个摄像头中随机选择一个样本,以确保每个身份都有一个样本进行初始化。
实验细节
我们首先将resnet-50的最后一个分类层去掉,以此作为特征嵌入模型。通过imagenet预训练模型进行初始化。在cnn特征提取器的顶部附加一个具有批处理规范化功能的附加全连接层和一个分类层,以通过标签和伪标签丢失优化模型。对于排他性损失,我们通过批量连接归一化的全连接层处理未标记特征,然后执行归一化操作。
表1与最新技术相比较
在market-1501数据集中与最先进的技术比较,baseline(supervised)显示完全标注的最佳性能。baseline(one-example)显示单标注方法训练的初始模型。tjof表示thejointobjectivefunction是wu等人在图像数据集单标注研究上的最新方法。ours是我们的方法。
baseline(supervised)是基于百分百标注数据训练下的实验结果,过程中没有未标注数据,但在实际的场景中,完全的手工标注不切实际。我们的方法通过摄像头风格迁移学习,使得迁移数据同样具有原数据单标注的标签,这样在初始化时,我们的方法单标注的数据量为原始数据的k倍。我们这样训练的初始化模型更加健壮。据数据集market-1501上实验结果显示在rank-1命中率我们提高了8.7%,由原来的55.8%到64.5%,在rank-5、rank-10和rank-20命中上也有了大程度的提高,最后在平均精度map我们相对于最先进的方法提高了5.2%。
表2
在duke-mtmc-reid数据集中与最先进的技术比较baseline(supervised)显示完全标注的最佳性能。baseline(one-example)显示单标注方法训练的初始模型。tjof表示thejointobjectivefunction[wuy,liny,dongx,etal.progressivelearningforpersonre-identificationwithoneexample[j].ieeetransactionsonimageprocessing,2019:1-1.]是wu等人在图像数据集单标注研究上的最新方法。ours是我们的方法。
在数据集duke-mtmc-reid中我们的方法表现依然很优异,在常用的各项评价评价指标中,相比于当前最先进的方法我们都有不同程度的提高。具体提高的百分点可由表2得到。在两个数据集的优越的表现,验证了我们方法的有效性。
使用原始数据和迁移数据的比较
由于我们的实验结果在不使用迁移数据投入训练,仅仅使用k倍扩充的单标注设置进行初始化模型在原始数据集上带来的迭代效果比最新的方法性能高出很多,在rank-1命中率和平均精度map分别高出3.1%和4%。为了更好地体现迁移数据集在训练中的优秀表现,我们在两个图像数据集market-1501和dukemtmc-reid做了对照实验,分别设置原始数据集和和迁移数据集分别投入训练的实验,在初始化方面还是沿用了我们经过数据扩充的单标注设置。
表3
表3列出了当前最先进的方法与我们的方法相比较。ours(w.o/t)表示我们的方法在训练时没有使用迁移数据的结果。ours(w/t)表示我们的方法在使用迁移数据投入训练的结果
根据表3的结果显示,只要在初始化过程中使用数据风格迁移数据集加上原始数据集的单标注数据,就会使结果高于当前最先进的方法。在我们自己的两组对照实验中的结果可以看出:在两个数据集的实验结果显示,在rank-1命中率和平均精度map的结果上相对于不使用迁移数据提高了5.6%、3.8%和1.2%、0.7%。
使用我们的单标注方法初始化后,在使用迁移数据投入训练时,效果提升更加明显。产生这种好的结果的原因主要是有两个:首先,我们在初始化时利用摄像头风格迁移实现了原来单标注k倍的数据量,提供了一个好的初始化cnn模型,实现了后续迭代过程的优化,因为一个好的初始化会在利用未标注数据时表现出更强的性能;其次在迁移数据投入训练以后,使得每个行人在所有不同的摄像头风格下都有可用于训练的图片,这样在一定程度上解决了单一摄像头拍摄场景单一,代表性的训练数据量少而产生的过拟合问题,从而使训练效果大大增加。
图4(a)~图4(b)为在dukemtmc-reid中以我们的单标注方案对模型进行初始化,ours(w.o/t)表示训练时不加入摄像头风格迁移数据。ours(w/t)表示训练时加入了迁移数据。横坐标表示表示所选数据占整个未标记数据的百分比。每个实心点代表一次迭代结果。
首先由图4(a)~图4(b)的这组对照实验,我们可以清晰的得出结论:在训练时引入迁移数据会比只用原数据集数据训练的模型要更加健壮。其次可以清晰得看出随着越来越高比例未标注数据加入训练,rank-1命中率和平均精度map在增长到一定程度会出现缓慢增长甚至会出现下降的趋势。这是由于随着未标注数据在迭代训练过程中逐步增加,在后期的迭代过程中可供选择的可靠的伪标注数据越来越少,以至于在训练过程中引入更多的噪声,而导致对模型的健壮性有一定的损害。
为了进一步巩固我们的结果,我们在图5(a)~图5(d)中列出了更加详细的数据。
precision,recall表示选定的伪标签候选集的预测精度和召回率。图5(a)~图5(b)表示在数据集market-1501上的实验结果,图5(c)~图5(d)表示在数据集dukemtmc-reid上的实验结果。
与同样的单标注实验相比,我们的方法即使不使用迁移数据投入训练,在性能上也比其他方法优越很多。在同一数据集上比较,与现阶段wuy,liny,dongx,etal.progressivelearningforpersonre-identificationwithoneexample[j].ieeetransactionsonimageprocessing,2019:1-1.的方法相比我们在精度上达到将近89.33%高于他的70%,在召回率上最后一次迭代时达到了45.6%,同样高于任何其他单标注的方法。在使用迁移数据训练时,几乎所有的性能都会比在原始数据集上的表现优越,这样的结果显示,利用风格迁移数据可以很好地解决单一摄像头下训练图片产生过拟合的问题,同时也一定程度解决了一个行人在不同摄像头下识别困难的问题。
关于扩大因子p对实验的影响。
表4p为扩大因子
由表4可以看出当扩大因子p越小时,实验结果越好。较小的放大倍数,在迭代的训练模型时,导致模型的稳定性大大提高,但是需要更长的时间和更多的迭代步骤。
在单标注行人重识别的研究中,仅对一个行人的一张图片进行标记,这样初始化的模型性能不高。我们通过摄像头风格迁移,使得数据量变为原数据集的k倍,对扩充后的数据进行单标注设置,使得用于初始化的标注样本也变为了原来的k倍。这样的初始化模型更加健壮。我们在训练中使用了迁移数据,结果也比仅仅使用原数据集更加好,减小了单一摄像头拍摄图片容易产生过拟合的风险。实验结果证明了我们方法的有效性:通过数据集内部摄像头风格迁移进行数据集增广可以使单标注实验和自步学习方案取得更好的性能。
本公开主要研究单样本行人重识别。所谓单样本标注就是指数据集中的每个行人只有一个标注的样本和多个未标注的样本。具体的做法就是使用少量的有标签的数据训练一个cnn模型,然后用训练得到的模型为无标签的数据预测标签(伪标签),最后使用预测得到的伪标签数据和原有的少量标签数据重新训练模型。但是由于不同摄像头下图片的角度、色差、背景等都不同,使得拍摄的同一个行人的图片差别很大。当只标注一个样本时,缺少了图片进行跨摄像头的学习,而导致识别效率不高。我们提出了新的单样本标注方案,即通过cyclegan进行不同摄像头图片风格的互相转换,以实现跨摄像头下的每个行人在每个摄像头风格下都至少有一张标注的图片的目的。使得每个行人在所有不同的摄像头风格下都有一个标注的图片,这样做的目的是为了有效地解决单样本标注的图片不具代表性的问题,然后利用一个自步学习的框架实现后续高效率的迭代过程。我们的方法与最新的技术比较:在数据集market-1501中,我们的rank-1命中由原来的55.8%提高到64.5%,rank-5、rank-10、rank-20命中也分别提高了6.2%、5.2%、4.4%,平均精度map中由原来的26.2%提高到31.4%;在数据集duke-mtmc-reid中我们的方法在这几项评价指标中也分别提高了6.3%、4.1%、3.4%、2.8%和1.5%,我们通过实验证明:通过一个数据集内不同摄像头下不同风格图片的相互转化,在有效扩充数据集的同时解决了因跨摄像头缺少标注行人图片带来的识别率不高的问题。
本公开聚焦于单样本学习,其兼具两者的优点,可以充分利用未标记样本的数据分布信息与类别标记,从而自动地利用未标记样本来提升学习性能。
本公开提出在模型训练和寻找可信图片时进行跨摄像头相似性挖掘。具体的做法就是:1)使用cyclegan在同一个数据集内进行不同摄像头图像的风格转换,which不仅增加了有标签图片的数据数量,还使得有标签的训练图片从原本只有一个摄像头风格扩充到有多个摄像头风格。
本公开中我们利用gan网络实现了数据扩充和跨摄像头标注。
实施例二,本实施例还提供了基于面部朝向的身体左右肢体姿态跟踪判别系统;
基于摄像头风格迁移和单标注的行人重识别系统,包括:
获取模块,其被配置为:获取待进行行人重识别的若干张无标签图像;
标记模块,其被配置为:对待进行行人重识别的所有无标签图像中的一张图像,标记待识别的行人;
数据扩增模块,其被配置为:将已标记的图像输入到预训练的cyclegan网络,输出已标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;对已标记的图像对应的摄像头风格迁移图像的行人进行标记;
将未标记的图像到预训练的cyclegan网络,输出未标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;
识别模块,其被配置为:将已标记的图像、未标记的图像、已标记的图像对应的摄像头风格迁移图像和未标记图像对应的摄像头风格迁移图像均输入到预训练的cnn网络中,输出未标记图像中每一张图像中待识别行人的识别结果。
实施例三,本实施例还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例一所述的方法。
实施例四,本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一所述的方法。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
1.基于摄像头风格迁移和单标注的行人重识别方法,其特征是,包括:
获取待进行行人重识别的若干张无标签图像;
对待进行行人重识别的所有无标签图像中的一张图像,标记待识别的行人;
将已标记的图像输入到预训练的cyclegan网络,输出已标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;对已标记的图像对应的摄像头风格迁移图像的行人进行标记;
将未标记的图像到预训练的cyclegan网络,输出未标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;
将已标记的图像、未标记的图像、已标记的图像对应的摄像头风格迁移图像和未标记图像对应的摄像头风格迁移图像均输入到预训练的cnn网络中,输出未标记图像中每一张图像中待识别行人的识别结果。
2.如权利要求1所述的方法,其特征是,所述预训练的cyclegan网络,训练的步骤包括:
s31:构建cyclegan网络;
s32:构建训练集;
s33:将训练集中某一个摄像头a采集的含有行人b的图像作为cyclegan网络的输入值,将训练集中除了摄像头a以外的其他所有摄像头采集的含有行人b的图像作为cyclegan网络的输出值,对cyclegan网络进行训练,得到训练好的cyclegan网络。
3.如权利要求2所述的方法,其特征是,所述训练集,包括:market-1501数据集或dukemtmc-reid数据集。
4.如权利要求1所述的方法,其特征是,所述预训练的cnn网络,训练的步骤包括:
s41:利用imagenet数据集对cnn网络进行初级训练;初级训练过程中,图像作为cnn网络的输入值,图像的行人标签作为cnn网络的输出值;
s42:利用有真实标签数据集对初级训练后的cnn网络进行二级训练;二级训练过程中,有真实标签数据集中的图像作为初级训练后的cnn网络的输入值,有真实标签数据集中的图像的行人标签作为初级训练后的cnn网络的输出值;
s43:利用待进行行人重识别的若干张无标签图像,对二级训练后的cnn网络进行三级训练;三级训练过程中,所有的无标签图像作为二级训练后的cnn网络的输入值,二级训练后的cnn网络输出伪标签集合;对伪标签的可靠性进行甄别,保留可靠性高于设定阈值的伪标签,将可靠性低于设定阈值的伪标签进行剔除;
s44:利用有真实标签数据集和带有高可靠性伪标签的数据集,输入到三级训练后的cnn网络进行最终训练;得到训练好的cnn网络。
5.如权利要求4所述的方法,其特征是,所述s42中,有真实标签数据集对初级训练后的cnn网络进行二级训练步骤之前,还包括:
将有真实标签数据集,输入到训练好的cyclegan网络中,进行数据扩增。
6.如权利要求4所述的方法,其特征是,利用待进行行人重识别的若干张无标签图像,对二级训练后的cnn网络进行三级训练步骤之前,还包括:
将待进行行人重识别的若干张无标签图像,输入到训练好的cyclegan网络中,进行数据扩增。
7.如权利要求4所述的方法,其特征是,所述s43中,对伪标签的可靠性进行甄别,具体步骤包括:
计算伪标签对应的行人图像特征与同一个行人的真实标签对应的行人图像特征之间的距离,如果距离小于设定阈值,则表示当前伪标签为可靠伪标签;否则表示当前伪标签为非可靠伪标签。
8.基于摄像头风格迁移和单标注的行人重识别系统,其特征是,包括:
获取模块,其被配置为:获取待进行行人重识别的若干张无标签图像;
标记模块,其被配置为:对待进行行人重识别的所有无标签图像中的一张图像,标记待识别的行人;
数据扩增模块,其被配置为:将已标记的图像输入到预训练的cyclegan网络,输出已标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;对已标记的图像对应的摄像头风格迁移图像的行人进行标记;
将未标记的图像到预训练的cyclegan网络,输出未标记的图像中每一张图像对应的若干个摄像头风格迁移图像,实现数据扩增;
识别模块,其被配置为:将已标记的图像、未标记的图像、已标记的图像对应的摄像头风格迁移图像和未标记图像对应的摄像头风格迁移图像均输入到预训练的cnn网络中,输出未标记图像中每一张图像中待识别行人的识别结果。
9.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-7任一项所述的方法。
技术总结