基于视角自适应子空间学习算法的行人重识别方法及系统
技术领域
本发明涉及一种计算机视觉领域的方法,具体地,涉及一种基于视角自适应子空间学习算法的行人重识别方法及系统。
背景技术
随着信息技术的不断发展,智能处理终端已经变得非常普及,多媒体数据的采集也变得越来越方便。面对海量的多媒体数据,如何对它们进行智能分析,做到为我所用、为社会服务,已经成为计算机视觉领域的重要研究课题。目标检测技术、目标跟踪技术以及目标识别技术等都获得了巨大的发展,而针对行人的检测、跟踪和识别技术由于其重要的实用价值得到了诸多研究者的关注。在安防和居家养老等领域,我们往往关注针对特定行人的长期锁定跟踪问题,这涉及到行人检测、行人跟踪等多个技术。而当行人从一个摄像头下消失,当他再次出现在另一个摄像头下时,我们希望能够识别出该行人并继续进行跟踪,这涉及到行人重识别技术。行人重识别要实现的目标是将两个互不交叠的摄像头中检测出的目标联系起来,以实现跨摄像头的接力跟踪。但是由于不同的摄像头配置、安放的位置、场景不同,导致不同摄像头下的行人图像存在不同程度的颜色变化和几何变化,再加上复杂的监控场景下,行人之间存在不同程度的遮挡,使得不同摄像头下的行人重识别问题变得更加棘手。目前的行人重识别主要针对图片之间的匹配,还没有利用视频信息,主流的算法可以分为两大类:基于底层特征提取的行人外貌特征匹配算法,以及基于度量学习的特征匹配算法。第一类算法致力于提取更加鲁棒的、有区分度的行人特征,以提高行人外貌的匹配准确率。而第二类算法则致力于学习到更加合理的特征空间,以减小同一行人由于姿势、视角等变化造成的特征差异。第一类方法不需要训练样本,因此便于推广使用,但是它需要繁杂的特征设计,而且现实情况下引起行人外貌特征发生变化的因素过于复杂,很难找到普适的有区分度的特征。本发明专利所研究的内容属于第二类算法,目标是利用训练数据得到更优的特征子空间,使得在新的特征子空间中同一行人特征更加靠近,而不同行人特征更加远离。
通过大量的文献检索,我们发现现有的度量学习算法主要是对马氏距离的变换,目标是学习一种特征变换矩阵,使得变换后的特征更加符合理想的特征分布(即同一行人的特征分布更加靠近,不同行人的特征更加远离)。Alexis Mignon等人在2012年的Internaltional Conference on Computer Vision and Pattern Recogintion中的“PCCA:A New Approach for Distance Learning from Sparse Pairwise Constraints”一文中,提出利用训练数据学习得到一个低维子空间,在此空间中标定好的训练样本对满足理想的特征分布(同一个行人的特征样本对距离小于一个阈值,而不同行人的特征样本对大于该阈值)。该方法适用于高维特征空间,并且在训练样本较少的情况下也能够取得不错的效果。Wei-Shi Zheng等人在2011年的Internaltional Conference on ComputerVision and Pattern Recogintion中的“Person Re-identification by ProbabilisticRelative Distance Comparison”一文中,提出一种基于三元组输入的度量学习算法,目标是使得属于同一行人的特征样本对之间的距离小于属于不同行人的特征样本对之间距离的概率最大化。但是这种方法对输入数据有较多限制(三元组),且在高维特征输入情况下处理速度较慢。
中国专利文献号CN103500345A,公开(公告)日2014.01.08,公开了一种基于度量学习的行人重识别算法,该发明通过采用新设计的光滑正则化距离度量模型进行行人重验证,充分考虑了模型中协方差矩阵估计偏差问题。具有不需要复杂的优化迭代过程的优点。但是该方法没有考虑不同摄像头视角下的行人图像对应着不同的光照、视角等的变化,因此得到的度量也不是最佳的。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于视角自适应子空间学习算法的行人重识别方法及系统,能够充分挖掘不同摄像头对行人特征的影响,并针对性地为每一个摄像头学习相应的变换关系,以使得摄像头对行人外貌特征的影响降到最小,在行人重识别的特征匹配阶段就可以只关注行人外貌特征的不同,从而大大提高行人重识别的准确率。
根据本发明的一个方面,提供一种基于视角自适应子空间学习算法的行人重识别方法,所述方法以只包含单个行人的矩形图像或通过跟踪结果从原始视频图像中裁取出目标矩形框作为输入图像,在输入图像上提取特征向量,并且将数据集划分为训练数据集和测试数据集,在训练数据集上按照视角自适应子空间学习算法学习得到变换矩阵,在测试数据集上利用学习得到的变换矩阵进行距离计算和行人重识别。
所述方法包括如下步骤:
步骤1):利用特征提取算法对输入图像进行特征提取,得到特征向量集合,特征向量集合进一步又被分为训练数据集和测试数据集;
步骤2),在训练数据集上,对每个摄像头学习得到视角自适应的子空间变换矩阵,其中学习映射矩阵的过程通过优化损失函数实现;
步骤3),在测试数据集上,首先将所有测试图像的特征矩阵映射到相应的子空间,得到映射后的特征向量,并在此基础上进行行人重识别。
进一步的,步骤2)中,所述的损失函数如公式(1)所示:
其中:LA,LB是需要学习的映射矩阵,LA为补偿摄像头A给该镜头下行人外貌特征向量带来的变化,LB为补偿摄像头B给该镜头下行人外貌特征向量带来的变化,所有的训练样本都是成对出现,摄像头A下的特征向量为:{xi,i=1,2,…,Ntrain},摄像头B下的特征向量为:{yi,i=1,2,…,Ntrain},两个特征集合中对应位置的特征对应于不同摄像头下的同一行人即xi与yi对应于同一行人;|S|,|D|分别表示正样本对即同一行人特征对和负样本对的个数;λ,μA,μB为调节损失函数中各个项的重要程度的参数;||·||F对应矩阵的Frobenius范数;
公式(1)中的损失函数能够在摄像头的光照、视角扥变化不是特别复杂的情况下取得不错的效果,但是对每个摄像头下的特征向量只能进行线性变换操作,为了更好地适应复杂的实际场景,通过核函数来引入非线性变换,从而给模型带来更多的灵活性,能够更好地还原行人本身的外貌特征;所述的引入核函数的方法如下:
特征向量在核空间的距离通过下式进行计算:
其中:φ(xi),φ(yj)是核空间的特征向量,是对应的核空间的映射矩阵;
在公式(2)的基础上,将公式(1)中的损失函数推广到核空间,因为核空间的维度很高,不能直接对进行学习,因此引入变换矩阵QA,QB来表示具体关系如下:
其中:为核空间的
特征向量组成的矩阵;
因而,在核空间的损失函数如下:
其中:是核空间的以为参数的损失函数,KA=φ(A)Tφ(A),KB=φ(B)Tφ(B),tr(·)表示矩阵的迹运算,T是矩阵转置符号,X表示除了对角线元素为零,其余元素皆为一的方阵;可以证明公式(4)是关于QA,QB的凸函数,因此采用简单的梯度下降法收敛到最优解;所述的梯度下降法对公式(4)进行优化求解的方法如下:
首先分别对QA,QB进行求导,得到如下结果:
其中:l为损失函数,KA,KB,QA,QB,X与公式(4)中的对应;
在此基础上对QA,QB进行迭代更新,更新规则为:
其中:l为损失函数,ηA,ηB为迭代更新的步长,通过交叉验证得到;t为迭代次数。
进一步的,步骤3)中,所述的行人重识别指的是将测试数据集中摄像头A下的任意一张图像对应的特征向量与摄像头B下的所有图像对应的特征向量集进行距离计算,并且按照距离从小到大进行排序,排在最前面的图像即被认为是不同摄像头下匹配的同一行人;
具体的,所述的行人重识别,包括如下步骤:
3.1)在测试数据集中,将摄像头A下的第一个人的图像特征与摄像头B下的所有行人的特征进行距离计算,得到距离矩阵M的第一行数据M1;
3.2)重复步骤3.1),直到摄像头A下的所有行人都与摄像头B下行人进行了特征距离比较,并得到距离矩阵M2,M3,...,Mi,j,其中Mi,j表示A中的第i个行人与B中的第j个行人的特征距离;
将M的每一行从小到大排序,排在第i位的距离对应的B中的图像,即与A中该行所对应图像第i匹配的图像,其中排在第一列的是最匹配的图像。
更优选地,所述的距离计算方法如公式(7)所示:
其中:φ(Atest),φ(Atrain)分别对应
于摄像头A中测试集和训练集在核空间的特征向量组成的集合;相应地,φ(Btest),φ
(Btrain)分别对应于摄像头B中测试集和训练集在核空间的特征向量组成的集合;QA,QB是步
骤2)中学习得到的映射矩阵;ei,ej分别表示第i,j个元素为一、其余皆为零的列向量。
根据本发明的另一个方面,提供一种基于视角自适应子空间学习算法的行人重识别系统,所述系统包括依次连接的特征提取模块、子空间映射矩阵学习模块以及重识别模块;其中:
所述系统包括:特征提取模块、视角自适应的子空间学习模块以及行人重识别模块,其中:
所述的特征提取模块,其输入是原始的行人图像,该模块对每一张输入的行人图像进行特征提取,得到d维特征向量;在所有行人中,随机抽取一定数量的行人图像作为训练数据集合,并将它们对应的特征作为子空间映射矩阵学习模块的输入;其余行人图像作为在测试数据集;
所述的子空间映射矩阵学习模块,其输入是特征提取模块输出的训练数据集合,用于自适应地为每一个摄像头学习得到最佳的映射矩阵,使得变换后的特征向量尽量满足理想特征分布,即:同一行人的特征向量距离小,不同行人特征向量距离大;该模块输出得到的变换矩阵QA,QB;
所述的重识别模块,该模块在测试数据集上进行处理,利用子空间映射矩阵学习模块得到的变换矩阵QA,QB对测试数据集图像进行距离计算,并将与A摄像头下某一行人最相似的B摄像头下的行人作为行人重识别结果输出。
与现有技术相比,本发明具有如下的有益效果:
传统的度量学习往往对不同摄像头下的图片特征作相同的变换,使得变换后的特征空间尽量满足理想的特征分布(理想分布指的是属于同一行人的特征距离较近,而属于不同行人的特征距离较远)。但是考虑到不同的摄像头视角下的行人图像对应不同的光照、视角,对不同的摄像头采用相同的变换矩阵不能够挖掘不同摄像头各自的特性,因此学习得到的变换空间也不是最优的。基于此,本发明提出采用视角自适应的子空间学习算法的识别方法,它在传统度量学习算法的基础上进一步考虑不同的摄像头有不同的特性,并且采用不同的变换(线性或者非线性)来弥补不同摄像头的变换特性。通过这种思想,本发明可以更加灵活地学习得到每对摄像头的最佳变换关系,使得变换后不同摄像头下的特征更加接近理想的特征分布。在行人重识别任务上的实验结果证实了本发明提出的方法的有效性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例的流程图;
图2为本发明一实施例视角自适应子空间学习算法流程图;
图3为本发明一实施例阐明视角自适应的子空间学习算法优于传统的度量学习算法的示意图;
图4为本发明一实施例人物重识别常用的数据集中的随机抽取的几组待匹配的行人图像;
图5为本发明一实施例方法的可视化识别效果图,第一列为待匹配的图像,其他列为利用本发明提取的特征,进行特征匹配后,得出的排名前十的匹配图像,第二列为按照本发明的方法得到的最匹配图像;
图6为本发明所提出的子空间学习算法,应用于人物重识别时与其他方法的准确率比较图。
图7为本发明一实施例中系统结构框图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
如图1所示,一种基于视角自适应子空间学习算法的行人重识别方法,所述方法以只包含单个行人的矩形图像或通过跟踪结果从原始视频图像中裁取出目标矩形框作为输入图像,在输入图像上提取特征向量,并且将数据集划分为训练数据集和测试数据集,在训练数据集上按照视角自适应子空间学习算法学习得到变换矩阵,在测试数据集上利用学习得到的变换矩阵进行距离计算和行人重识别。具体的,包括如下步骤:
步骤1):对数据集中的每张图像进行特征提取,得到d维特征向量,所有的特征向量进一步地被随机抽取出一部分作为训练数据集,余下的作为测试数据集;
该步骤可以采用现有技术记载的方法来实现,比如利用文献“Large ScaleMetric Learning from Equivalence Constraints(从对等约束中进行大规模度量学习)”(Koestinger,M.,Hirzer,M.,Wohlhart,P.,Roth,P.M.,&Bischof,H.<Computer Visionand Pattern Recognition>,2012)中的方法进行特征提取;
在本实施例中,对上述方法具体实现做如下说明:
给定一张输入图像,首先将尺寸调整为128×48,然后用16×8的窗口在图像上滑动,步进的尺寸为8×8,这样可以将128×48的完整图像分割为90个16×8的小区域(区域间有重叠);
在每个小区域中分别提取Lab,HSV直方图以及LBP纹理特征,其中Lab,HSV对每个通道都提取24维的直方图,LBP为59维的均匀LBP直方图。这样每个小块可以得到一个203维的特征向量;
将各个小块提取的特征向量按顺序一次拼接起来,得到图像的完整的特征向量,最终的特征向量的维度是18270。
在本实施例中,为了减少信息的冗余,同时提高运算速率,进一步采用PCA算法将特征向量进行降维,降维后的维度为34。
步骤2):在训练数据集上,学习得到视角自适应的子空间变换矩阵;
所述的视角自适应是指对每个摄像头学习一个特定的变换矩阵,使得变换后的图像特征在不同摄像头间保持一致性,从而更加灵活地提高重识别效果。由于实际场景中情况的复杂性,为了更好地克服摄像头引入的变换对行人外貌特征的影响,引入核函数来模拟非线性变换,如图3所示展示了对不同的摄像头采用不同的变换矩阵,以及引入核函数来模拟非线性变换的优势。
如图2所示,为本发明一实施例中提出的子空间学习算法的流程图,具体的学习过程如下(以下涉及的参数没有特别说明的,请参考发明内容):
2.1)对于某一个数据集(如:VIPER,如图4所示展示了该数据集部分样本图片),将数据分成两组,每组包含所有行人的一张图片,VIPER共有612对行人,所以第一组包含612对行人的其中一幅图像,而第二组包含另一张图像,同一个行人在两组中的排列顺序相同;将分好组的数据集中选出一部分行人数据作为训练数据集(如:VIPER中随机选出316对行人的所有图片作为训练样本),剩下的作为测试数据集(步骤2中仅利用训练样本的特征);
2.2)由于核空间的维度可能为无穷大,无法直接对进行优化,因此,我们令从而转化成对QA,QB进行优化。初始化QA,QB为单位矩阵,设置收敛判断的损失阈值ε=10-5;
2.3)根据公式(4)计算损失函数;
2.4)根据公式(5)计算QA,QB的梯度;
2.5)根据公式(6)更新QA,QB;
2.6)利用更新后的QA,QB,根据公式(4)计算损失函数l,如果Δl>ε,则转到步骤2.4,否则判定为收敛,输出对应的QA,QB。
步骤3):在步骤2)学习得到的QA,QB的基础上,在测试数据集上进行行人重识别;具体实现方法如下:
3.1)在测试数据集中,将摄像头A下的第一个人的图像特征与摄像头B下的所有行人的特征按照公式(7)进行距离计算,得到距离矩阵M的第一行数据M1。以VIPER数据集为例,由于测试集有316个行人,所以M1包含316个距离数据。
3.2)重复步骤3.1)直到摄像头A下的所有行人都与摄像头B下行人进行了特征距离比较,并得到距离矩阵M2,M3,...,M316,最终得到316×316大小的矩阵,其中Mi,j表示A中的第i个行人与B中的第j个行人的特征距离;
将M的每一行从小到大排序,排在第i位的距离对应的B中的图像,就是本方法给出的与A中该行所对应图像第i匹配的图像,其中排在第一列的是最匹配的图像。
如图7所示,基于上述的方法,本发明还提供一种基于视角自适应的子空间学习算法的行人重识别系统,所述系统包括:特征提取模块、自适应子空间映射矩阵模块以及重识别模块,其中:
所述系统包括:特征提取模块、视角自适应的子空间学习模块以及行人重识别模块,其中:
所述的特征提取模块,其输入是原始的行人图像,该模块对每一张输入的行人图像进行特征提取,得到d维特征向量;在所有行人中,随机抽取一定数量的行人图像作为训练数据集合,并将它们对应的特征作为子空间映射矩阵学习模块的输入;其余行人图像作为在测试数据集;
所述的子空间映射矩阵学习模块,其输入是特征提取模块输出的训练数据集合,该模块自适应地为每一个摄像头学习得到最佳的映射矩阵,并用得到的QA,QB对训练数据集中的特征进行特征变换,使得变换后的特征向量尽量满足理想特征分布(同一行人的特征向量距离较小,不同行人特征向量距离较大);
所述特征提取模块,将每一张输入的行人图像表示为一个d维特征向量;
所述重识别模块,该模块在测试数据集上进行处理,利用学习得到的变换矩阵QA,QB对测试数据集进行特征映射,按照公式(7)对映射后的特征进行距离计算,并将与摄像头A下某一行人最相似的摄像头B下的行人作为行人重识别结果输出。
在本实施例中,对摄像头A中的某一个行人,按照距离从小到大的顺序对摄像头B中的行人进行排序,排在最前面的B中行人作为与摄像头A中该行人的匹配结果,输出识别结果。
上述各个模块具体采用的技术与上述方法的各部分对应,再次不再赘述。
如图5所示,为一实施例得出的排名前十的匹配图像,第一列为待匹配图像,后面各列依次为本实施例给出的排名第一到十匹配的匹配图像,其中虚线框框出的为实际的匹配图像,可以看出本实施例所提出的方法能够很好的进行同一行人的识别和匹配。
如图6所示,为一实施例与非自适应的子空间学习的重识别准确率比较图(ILIDS数据集),其中:SDALF为基于对称性进行颜色、纹理等特征的提取,并将各类特征融合进行人物重识别的方法;SVMML则将度量学习与局部自适应的距离比较阈值相结合,克服了单一阈值造成识别率较低的缺点;KISSME从统计推理的角度提出一种快速的度量学习方法,不需要迭代优化;KLFDA则是基于最小化类内协方差、最大化类间协方差的原则提出的改善分类结果的方法;PCCA提出利用训练数据学习得到一个低维子空间,在此空间中标定好的训练样本对满足理想的特征分布;PRDC则是学习更优的度量,使得属于同一行人的特征样本对之间的距离小于属于不同行人的特征样本对之间距离的概率最大化。Our LinearKernel及Our RBF Kernel为本实施例准确率结果(同时测试了线性和非线性RBF核的效果)。可以看出本实施例在识别准确率上与其他方法相似,且本发明方法的准确率收敛到1的速度更快。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。