一种基于半监督流形嵌入的人群计数方法
技术领域
本发明属于图像处理与分析方法技术领域,涉及一种基于半监督流形嵌入的人群计数方法。
背景技术
人群计数是一种非常有吸引力的计算机视觉技术,它通过相关的图像处理技术能够统计图像中的人群数量。在安保安防,公共资源管理,交通协助等领域有着广泛的应用前景。现在的方法通常只追求精确性,从而忽略了实时应用对于时间的要求。另外,大部分的现有技术都是采用监督的学习方法,需要对数据进行大量精确的标记。但是在实际应用大量的数据中仅有少部分的数据带有标签,要标记这些大量的数据需要非常大的人力资源开销,同时由于标记的复杂冗长,还存在一定的误差。
现有的人群计数方法大体上可以分为三种方法:基于行人检测的人群计数方法、基于特征映射的人群计数方法和基于密度估计的人群计数方法。
基于行人检测的人群计数方法首先需要检测出场景图像中的个体,然后才可以统计场景中的人数。检测个体通常需要捕捉到行人的特征,但是随着场景中人数的增加,遮挡现象变得严重,人群检测精度急剧下降。对于行人的遮挡现象,现有的方法通常是采用检测行人的部分身体部位,但是这种方式并不能有效的解决遮挡问题,统计出的结果通常还是小于实际人数。另外,基于行人检测的人群计数需要使用滑动窗口检测扫描全部场景图像,这将消耗大量的时间,进而影响了实时应用。
基于特征映射的人群计数方法通常是学习一个从多种低级特征到人数的映射关系。这种方法可以有效地统计场景中人数,但是这种方法在提取多种低级特征时,首先要进行前景提取。前景提取是一项挑战性的任务,获取精确的前景图像并不容易。另外,该类方法采用的低级特征通常会受到透视的影响。在一幅图像中,距离摄像机较远的人群会小于距离摄像机较近的人群,因此同一个人在场景中位置发生变化时,提取的特征也会发生相应的变化,这种现象成为透视现象。为了解决透视现象造成的特征损失,现有的方法通常采用一种特征正则化处理,即在图像中对于距离摄像机较远的人群特征赋予更大的权重。该方法假定透视损失是一种线性变换,但是在实际成像时,受到光照、折射等光学现象影响,这种损失并不是线性变化,而是一种复杂的非线性变化。同时,因为提取多种低级特征,所以将会消耗大量的时间,也会影响到实时的应用。
随着深度学习在计算机视觉领域的发展,基于密度估计的方法通常采用深度学习的方法。基于密度估计首先需要大量的标记,即在图像中所有人的头部中心进行点标记。然后使用高斯核卷积处理,得到一个密度图,一个图像区域的积分就是这个区域的人数。深度学习需要利用大量的样本和大量的迭代处理,才能获取可观的结果。这一方式耗费了大量的时间,严重影响了实时性能。
发明内容
本发明的目的是提供一种基于半监督流形嵌入的人群计数方法,解决了现有技术中存在的人群计数方法速度缓慢和需要大量标记数据的问题。
本发明所采用的技术方案是,一种基于半监督流形嵌入的人群计数方法,包括训练阶段和测试阶段;在训练阶段,首先从人群数据集中随机选取训练样本,提取特征,将带有标记和不带标记的训练样本通过半监督流形嵌入模型从特征空间变换到标签空间,再利用特征空间相邻图像之间的结构信息,半监督流形嵌入模型学习标签变换中的线性变换函数,得到训练完毕的半监督流形嵌入模型;在测试阶段,在训练完毕的半监督流形嵌入模型中使用训练阶段学习到的线性变换函数将测试样本从特征空间映射到标签空间,得到一个在标签空间中的矩阵,该矩阵表示样本在相应类别中的概率分布,其中最大概率即代表该样本的人群数目。
本发明的特点还在于:
具体步骤如下:
步骤1、从人群数据集中随机选取包含c个类别的n个训练样本;
步骤2、提取训练样本中的GIST特征X;
步骤3、在训练样本的GIST特征X中,设定前u个样本是被标记的带有标签的,剩下的样本未被标记,设X=[x1,x2,…,xu,…,xn]∈Rm×n表示训练集,u是带有标签的样本数量,m是样本的维数,n是全部训练样本的数量,对于任意一个标签样本xi,它属于第yi类;
步骤4、定义一个二值标签矩阵Y∈Rn×c,设定xi的标签是j,矩阵Y中第i行第j列的元素Yij定义为1,否则定义为0;
步骤5、定义一个相似矩阵S,其中元素Sij表示样本对(i,j)之间的相似性;
步骤6、构造一个对角矩阵D∈Rn×n,它的对角元素是Dii=∑jSij,其中Sij为步骤5中相似矩阵S的元素;
步骤7、构造一个拉普拉斯矩阵L∈Rn×n,令L=D-S,D为步骤6中的对角矩阵,S为步骤5中的相似矩阵;
步骤8、构造一个对角矩阵U,前u个对角元素λ∞,剩下元素为0;
步骤9、F是类别标签矩阵,W是变换矩阵,使用W即可将测试样本从特征空间转换到标签空间F中,类别标签矩阵F表示该样本在不同类别的概率分布情况,利用方程W=(λ1XXT+λ2I)-1λ1XF,和F=(L+U+λ1I)-1(UY+λ1XTW)进行迭代求解,U是步骤8中的对角矩阵,L为步骤7中的拉普拉斯矩阵,λ1和λ2是平衡参数,X为训练样本的GIST特征矩阵,Y为步骤4中的标签矩阵,XT为特征矩阵的转置,I为单位矩阵;
步骤10、当关于步骤9中的W和F的误差函数连续两次求解之间的差值小于0.0001时,得到的预测值F即为最优解,W即为训练的最优转换矩阵,得到训练完毕的半监督流形嵌入模型;
步骤11、提取测试样本的GIST特征X;
步骤12、在步骤10训练完毕的半监督流形嵌入模型中使用线性变换函数F=(L+U+λ1I)-1(UY+λ1XTW)将测试样本从特征空间映射到类别空间中,得到表示该测试样本在不同类别的概率分布情况的矩阵F,其中W为步骤10中训练得到的最优转换矩阵,L为测试样本的拉普拉斯矩阵,U是测试样本的对角矩阵,Y为测试样本的标签矩阵,λ1是平衡参数,I为单位矩阵;
步骤13、在MATLAB中使用MAX函数从步骤12得到的矩阵F中选取类别概率最大值所在的类标签为该样本的预测值,即代表该测试样本中人群的数量。
步骤10中的误差函数为:
其中FT为类别标签矩阵F的转置。
步骤9的内容具体包括如下:
步骤9.1、首先构造一个线性映射函数F=XTW+etT+F0=h(X)+F0,F是类别标签矩阵,W是变换矩阵,t是一个偏差项,e=[1,1,…,1]T是一个n维的向量,F0是为了评估F和h(X)之间误匹配的误差值;
步骤9.2、为了获取步骤9.1中类别标签矩阵F的最优预测,且为了保持标签的适应性和流形平滑性,构造方程:
其中λ
1和λ
2是平衡参数,(F
i-F
j)是二值矩阵之间的差,(F
I-Y
i)是二值矩阵和标签之间的差;
步骤9.3、为了寻找步骤9.2的最优解,通过拉格朗日常数法,关于W和F分别对步骤9.2中的构造方程求导,令其等于0,得到W和F的解如下:
W=(λ1XXT+λ2I)-1λ1XF,F=(L+U+λ1I)-1(UY+λ1XTW)
利用上述关于W和F的方程进行迭代求解。
步骤9.2中的构造方程也可以被转换为如下方程:
本发明的有益效果是:本发明通过利用特征空间中近邻图像之间的结构信息,可以极大地减少用于标记的人力资源和时间花销,等同于极大地减少了在实际应用的时间花销。首先,包含不同人群数量的图像展现不同的纹理结构,本发明使用了GIST纹理特征,该特征提取的过程中不需要进行前景分割,可以极大地提升精确性并减少时间花销。而且本发明采用了半监督流行嵌入模型能够有效的捕捉特征空间中近邻图像之间的结构信息,因此可以使用非常少的标记就能训练一个人群计数模型。本发明在大量地实验中验证了有效性,有非常大的实时应用前景。
具体实施方式
本发明一种基于半监督流形嵌入的人群计数方法,包括训练阶段和测试阶段;在训练阶段,首先从人群数据集中随机选取训练样本,提取特征,将带有标记和不带标记的训练样本通过半监督流形嵌入模型从特征空间变换到标签空间,再利用特征空间相邻图像之间的结构信息,半监督流形嵌入模型学习标签变换中的线性变换函数,得到训练完毕的半监督流形嵌入模型;在测试阶段,在训练完毕的半监督流形嵌入模型中使用训练阶段学习到的线性变换函数将测试样本从特征空间映射到标签空间,得到一个在标签空间中的矩阵,该矩阵表示样本在相应类别中的概率分布,其中最大概率即代表该样本的人群数目。
具体步骤如下:
步骤1、从人群数据集中随机选取包含c个类别的n个训练样本;
步骤2、提取训练样本中的GIST特征X;
步骤3、在训练样本的GIST特征X中,设定前u个样本是被标记的带有标签的,剩下的样本未被标记,设X=[x1,x2,…,xu,…,xn]∈Rm×n表示训练集,u是带有标签的样本数量,m是样本的维数,n是全部训练样本的数量,对于任意一个标签样本xi,它属于第yi类;
步骤4、定义一个二值标签矩阵Y∈Rn×c,设定xi的标签是j,矩阵Y中第i行第j列的元素Yij定义为1,否则定义为0;
步骤5、定义一个相似矩阵S,其中元素Sij表示样本对(i,j)之间的相似性;
步骤6、构造一个对角矩阵D∈Rn×n,它的对角元素是Dii=∑jSij,其中Sij为步骤5中相似矩阵S的元素;
步骤7、构造一个拉普拉斯矩阵L∈Rn×n,令L=D-S,D为步骤6中的对角矩阵,S为步骤5中的相似矩阵;
步骤8、构造一个对角矩阵U,前u个对角元素λ∞,剩下元素为0;
步骤9、F是类别标签矩阵,W是变换矩阵,使用W即可将测试样本从特征空间转换到标签空间F中,类别标签矩阵F表示该样本在不同类别的概率分布情况,利用方程W=(λ1XXT+λ2I)-1λ1XF,和F=(L+U+λ1I)-1(UY+λ1XTW)进行迭代求解,U是步骤8中的对角矩阵,L为步骤7中的拉普拉斯矩阵,λ1和λ2是平衡参数,X为训练样本的GIST特征矩阵,Y为步骤4中的标签矩阵,XT为特征矩阵的转置,I为单位矩阵;
步骤10、当关于步骤9中的W和F的误差函数连续两次求解之间的差值小于0.0001时,得到的预测值F即为最优解,W即为训练的最优转换矩阵,得到训练完毕的半监督流形嵌入模型;
步骤11、提取测试样本的GIST特征X;
步骤12、在步骤10训练完毕的半监督流形嵌入模型中使用线性变换函数F=(L+U+λ1I)-1(UY+λ1XTW)将测试样本从特征空间映射到类别空间中,得到表示该测试样本在不同类别的概率分布情况的矩阵F,其中W为步骤10中训练得到的最优转换矩阵,L为测试样本的拉普拉斯矩阵,U是测试样本的对角矩阵,Y为测试样本的标签矩阵,λ1是平衡参数,I为单位矩阵;
步骤13、在MATLAB中使用MAX函数从步骤12得到的矩阵F中选取类别概率最大值所在的类标签为该样本的预测值,即代表该测试样本中人群的数量。
步骤10中的误差函数为:
其中FT为类别标签矩阵F的转置。
步骤9的内容具体包括如下:
步骤9.1、首先构造一个线性映射函数F=XTW+etT+F0=h(X)+F0,F是类别标签矩阵,W是变换矩阵,t是一个偏差项,e=[1,1,…,1]T是一个n维的向量,F0是为了评估F和h(X)之间误匹配的误差值;
步骤9.2、为了获取步骤9.1中类别标签矩阵F的最优预测,且为了保持标签的适应性和流形平滑性,构造方程:
其中λ
1和λ
2是平衡参数,(F
i-F
j)是二值矩阵之间的差,(F
I-Y
i)是二值矩阵和标签之间的差;
步骤9.3、为了寻找步骤9.2的最优解,通过拉格朗日常数法,关于W和F分别对步骤9.2中的构造方程求导,令其等于0,得到W和F的解如下:
W=(λ1XXT+λ2I)-1λ1XF,F=(L+U+λ1I)-1(UY+λ1XTW)
利用上述关于W和F的方程进行迭代求解。
步骤9.2中的构造方程也可以被转换为如下方程:
本发明一种基于半监督流形嵌入的人群计数方法,其优点在于:
(1)本发明利用样本在特征空间的结构关系,将人群计数问题转换为半监督的人群计数问题,这样可以更有效地应对实际场景中缺乏标记的问题,节省大量标记开销。
(2)本发明采用一种快速的人群计数算法,该方法时间复杂度低,将样本从高维的特征空间转换到低维的标签空间,该算法的时间消耗远远小于其它方法。
实施例一
本发明利用公共的人群计数数据集UCSD进行实验,一种基于半监督流形嵌入的人群计数方法,包括训练阶段和测试阶段;在训练阶段,首先从人群数据集中随机选取训练样本,提取特征,将带有标记和不带标记的训练样本通过半监督流形嵌入模型从特征空间变换到标签空间,再利用特征空间相邻图像之间的结构信息,半监督流形嵌入模型学习标签变换中的线性变换函数,得到训练完毕的半监督流形嵌入模型;在测试阶段,在训练完毕的半监督流形嵌入模型中使用训练阶段学习到的线性变换函数将测试样本从特征空间映射到标签空间,得到一个在标签空间中的矩阵,该矩阵表示样本在相应类别中的概率分布,其中最大概率即代表该样本的人群数目。
具体步骤如下:
一、训练阶段
步骤1、从标准的人群数据集中随机选取包含c个类别的n个训练样本;
步骤2、提取训练样本中的GIST特征X;
步骤3、在训练样本的GIST特征X中,设定前u个样本是被标记的带有标签的,剩下的样本未被标记,设X=[x1,x2,…,xu,…,xn]∈Rm×n表示训练集,u是带有标签的样本数量,m是样本的维数,n是全部训练样本的数量,对于任意一个标签样本xi,它属于第yi类;
步骤4、定义一个二值标签矩阵Y∈Rn×c,设定xi的标签是j,矩阵Y中第i行第j列的元素Yij定义为1,否则定义为0;
步骤5、定义一个相似矩阵S,其中元素Sij表示样本对(i,j)之间的相似性;
步骤6、构造一个对角矩阵D∈Rn×n,它的对角元素是Dii=∑jSij,其中Sij为步骤5中相似矩阵S的元素;
步骤7、构造一个拉普拉斯矩阵L∈Rn×n,令L=D-S,D为步骤6中的对角矩阵,S为步骤5中的相似矩阵;
步骤8、构造一个对角矩阵U,前u个对角元素λ∞,剩下元素为0;
步骤9、F是类别标签矩阵,W是变换矩阵,使用W即可将测试样本从特征空间转换到标签空间F中,类别标签矩阵F表示该样本在不同类别的概率分布情况,利用方程W=(λ1XXT+λ2I)-1λ1XF,和F=(L+U+λ1I)-1(UY+λ1XTW)进行迭代求解,U是步骤8中的对角矩阵,L为步骤7中的拉普拉斯矩阵,λ1和λ2是平衡参数,X为训练样本的GIST特征矩阵,Y为步骤4中的标签矩阵,XT为特征矩阵的转置,I为单位矩阵;
步骤9的内容具体包括如下:
步骤9.1、首先构造一个线性映射函数F=XTW+etT+F0=h(X)+F0,F是类别标签矩阵,W是变换矩阵,t是一个偏差项,e=[1,1,…,1]T是一个n维的向量,F0是为了评估F和h(X)之间误匹配的误差值;
步骤9.2、为了获取步骤9.1中类别标签矩阵F的最优预测,且为了保持标签的适应性和流形平滑性,构造方程:
其中λ
1和λ
2是平衡参数,(F
i-F
j)是二值矩阵之间的差,(F
I-Y
i)是二值矩阵和标签之间的差;
步骤9.2中的构造方程也可以被转换为如下方程:
步骤9.3、为了寻找步骤9.2的最优解,通过拉格朗日常数法,关于W和F分别对步骤9.2中的构造方程求导,令其等于0,得到W和F的解如下:
W=(λ1XXT+λ2I)-1λ1XF,F=(L+U+λ1I)-1(UY+λ1XTW)
利用上述关于W和F的方程进行迭代求解。
步骤10、当关于步骤9中的W和F的误差函数
连续两次求解之间的差值小于0.0001时,其中F
T为类别标签矩阵F的转置,得到的预测值F即为最优解,W即为训练的最优转换矩阵,得到训练完毕的半监督流形嵌入模型;
二、测试阶段:
步骤11、提取公共的人群计数数据集UCSD中测试样本的GIST特征X;
步骤12、在步骤10训练完毕的半监督流形嵌入模型中使用线性变换函数F=(L+U+λ1I)-1(UY+λ1XTW)将测试样本从特征空间映射到类别空间中,得到表示该测试样本在不同类别的概率分布情况的矩阵F,其中W为步骤10中训练得到的最优转换矩阵,L为测试样本的拉普拉斯矩阵,U是测试样本的对角矩阵,Y为测试样本的标签矩阵,λ1是平衡参数,I为单位矩阵;
步骤13、在MATLAB中使用MAX函数从步骤12得到的矩阵F中选取类别概率最大值所在的类标签为该样本的预测值,即代表该测试样本中人群的数量。