本发明属于模式识别领域,涉及图像处理和计算机视觉等技术,特别是基于压缩跟踪算法与IHDR增量学习机制的视频人脸在线识别方法
背景技术:
随着视频监控系统在众多领域的普及,基于视频的人脸识别技术也得到了长足的进步与发展,该技术对于智能交通、门禁、安防监控等领域起到了非常重要的作用,目前越来越多的场合都对视频中的人脸识别技术提出了更高的要求,较高的人脸识别率、实时性以及易用性是视频人脸识别算法最重要的技术指标。目前视频人脸识别方法主要有基于视频序列、基于图像集以及基于字典学习等方法。以上这些传统的视频人脸识别方法都需要手工的选取人脸训练样本对人脸识别模型进行训练,若要添加新的人脸样本与人脸类别,则需要重新对识别模型进行训练,从而导致算法的实时性与易用性不足。由于人脸姿态的易变性,光照、背景以及距离等外在因素的变化,都对算法的识别率会造成严重影响。
技术实现要素:
本发明要解决的技术问题在于解决在视频人脸识别过程中存在的以下问题:(1)人脸姿态出现大幅度偏转容易导致识别算法失效;(2)当需要为人脸识别模型添加新样本或类别时需要重新训练模型;(3)以及由于算法开销过大导致算法实时性不足的问题。
为了解决上述技术问题,本发明提供如下技术方案:
一种基于压缩跟踪与IHDR增量学习的视频人脸在线识别方法,其特征在于:结合人脸检测算法与压缩跟踪算法对多姿态人脸进行检测,使用基于IHDR算法的增量学习机制对人脸特征库进行构建,采用该人脸特征库实现对人脸样本与类别的在线更新;在进行视频人脸识别时,利用人脸在视频中是连续运动的特点,基于人脸特征库检索进行人 脸识别,当人脸被准确识别出来后,启用压缩跟踪算法对目标人脸进行跟踪。
上述技术方案中,主要包含以下步骤:
步骤S1:通过人脸检测与压缩跟踪算法对摄像头中所捕获视频图像中的多姿态人脸进行检测;
步骤S2:对所检测到的人脸进行图像预处理以及CSLBP特征提取;
步骤S3:将所提取出来的CSLBP人脸特征作为检索向量对IHDR增量学习树进行搜索;
步骤S4:给定人脸检索的有效阈值α,设定当前所检测到的人脸特征与IHDR学习树所检索到的人脸特征的相似度为s,若相似度s≤α,且连续3帧都为该人脸,则判断当前检索是有效的;在视频帧中的目标人脸上输出该人脸标签,同时启用压缩跟踪算法对该人脸进行跟踪;在进行人脸跟踪过程中,不断判断当前人脸是否超出视频采集的边界,若没有,继续跟踪人脸,若超出边界,则跳转至步骤S1重新执行以上步骤;
步骤S5:若相似度α<s≤β,则判断当前人脸识别错误,重新进行人脸识别,转至步骤S1重新执行以上步骤;步骤S6:若相似度s>β,则判断当前人脸未曾学习过,给定该人脸标签,同时提取该人脸的CSLBP特征,应用分层聚类算法对人脸特征库进行在线增量更新;当所采集的人脸样本数达到所设定的阈值时,跳转至步骤S1重新执行以上步骤。
上述技术方案中,步骤S1通过人脸检测与压缩跟踪算法对摄像头中所捕获视频图像中的多姿态人脸进行检测,主要包含以下步骤:
步骤S11:使用摄像头对图像进行采集,获取摄像头所捕获的当前图像帧,应用Haar特征与Adaboost算法对图像帧中的人脸进行检测;
步骤S12:若人脸检测成功,获取该人脸位置坐标,启动压缩跟踪算法对该人脸进行跟踪,在跟踪过程中不断判断跟踪窗口是否超出视频框,若跟踪窗口超出视频框未超出视频框,则保持对当前人脸的跟踪;若跟踪窗口超出视频框,转至步骤S11顺序执行;
步骤S13:若人脸检测失败,转至步骤S11顺序执行。
上述技术方案中,步骤S2图像预处理与特征提取按如下步骤进行:
步骤S21:使用以下几种方式对人脸区域进行预处理:直方图均衡化、双边滤波、背景图像去除以及图像尺度归一化;
步骤S22:对经过图像预处理后的人脸图像,进行CSLBP特征提取。
上述技术方案中,步骤S3对IHDR增量学习树进行搜索的过程如下:
步骤S31:从IHDR增量学习树的第一层开始,计算出待检索向量与当前所在层所有聚类中心的欧式距离d;
步骤S32:给定IHDR树的检索精度λ,选取欧式距离最小的前λ个聚类,设置为活跃聚类,将所计算出来的欧氏距离值与所设置的检索敏感系数进行比较,若小于则停止检索,返回该聚类所对应的Y空间中的人脸标签yi;若大于则取消当前聚类的活跃标志,将该聚类的下一层子聚类作为活跃节点,并重复上述的迭代过程,直至满足所有条件直到搜索至IHDR树的叶子节点,输出叶子节点中的人脸标签yi,并返回该人脸与叶子节点样本的相似度s。
上述技术方案中,步骤S6应用分层聚类算法对人脸特征库进行在线增量更新的过程如下:
步骤S61:根据所设定的聚类敏感系数η,将输出空间向量y1,y2,y3,...,yn划分为b个类,且b≤q,q为每个节点所能分裂的最大聚类个数;
步骤S62:根据输出空间的类别数b,将X输入空间中人脸训练样本的类别数也设定为b个类,应用欧氏距离对X空间中所有人脸训练样本进行聚类;
步骤S63:根据步骤S62所计算出的X空间的聚类结果,并结合X空间到Y空间的映射关系,重新对Y空间的聚类进行调整,计算出Y空间元素之间的欧式距离D;
步骤S64:若D>η,则将X空间中的聚类i进行下一层节点的聚类划分,使聚类变得更加细化;通过不断迭代执行步骤S62和步骤S63,直到所有聚类的条件满足设定值,则停止迭代,构树成功;
步骤S65:由于在不断学习过程中,陆续增加的学习样本会对整个IHDR增量学习树的叶子节点的均值与协方差造成影响,因此需要引入遗忘函数进行更新;
步骤S66:当需要在线添加新的训练样本时,从根节点出发,计算出该样本与当前所在层所有聚类中心的欧氏距离D,将所计算出来的距离值以递增方式排序,选取距离值最小的类,不断循环执行上述过程,直至将新增的训练样本插入到叶子节点中,完成当前样本的在线增量学习更新。
由于视频中的人脸会受到姿态的偏转等因素影响,因此容易导致识别算法失效。本发明公开的基于压缩跟踪算法与IHDR(Incremental Hierarchical Discriminant Regression,增量分层判别回归)增量学习机制的视频人脸在线识别方法,首先将人脸检测算法与压缩跟踪算法相结合实现对多姿态人脸的进行检测,应用CSLBP(center-symmetric local binary patterns中心对称局部二进制模式)特征提取算子对所跟踪到的人脸区域进行特征提取,将所提取到的人脸特征存入由分层聚类算法所构建的IHDR增量学习树中,从而完成人脸特征库的构建,采用该人脸特征库实现对人脸样本与类别的在线更新,使得该人脸特征库具有在线学习能力,当需要添加新样本或类别时,无需对人脸识别模型重新训练,具有较好的易用性和实时性。在进行人脸识别时,采用分层聚类算法对IHDR增量学习树进行检索,若检索成功则完成对当前人脸的识别,由于人脸在视频中具有连续运动的特点,当一个人脸在连续多帧的视频帧中都识别为同一个人,则可认定当前视频中的人脸为该人,此时启用压缩跟踪算法对该人脸进行跟踪,使用该方法就无需一帧一帧的对人脸进行识别;若人脸离开视频采集框,则需重新启动人脸识别算法;因此能够提高视频人脸识别算法的实时性与识别率。
附图说明
图1是本发明基于压缩跟踪与IHDR增量学习的视频人脸在线识别方法流程图;
图2是本发明人脸检测算法与压缩跟踪相结合的多姿态人脸检测流程图;
图3是本发明IHDR增量学习树的检索流程图;
图4是本发明IHDR增量学习树的在线增量更新流程图。
具体实施方式
为了进一步说明本发明的技术方案与优势,通过具体案例并结合附图,对本发明进行详细的说明。
图1为本发明基于压缩跟踪与IHDR(Incremental Hierarchical Discriminant Regression,增量分层判别回归)增量学习的视频人脸在线识别方法流程图,该方法包含以下步骤:
步骤S1:通过人脸检测与压缩跟踪算法对摄像头中所捕获视频图像中的多姿态人脸进行检测;
将人脸检测算法与压缩跟踪算法相结合实现对多姿态人脸检测,主要包含了以下步骤,具体流程如图2所示:
步骤S11:使用摄像头对图像进行采集,获取摄像头所捕获的当前图像帧,应用Haar特征与Adaboost算法对图像帧中的人脸进行检测;
步骤S12:若人脸检测成功,获取该人脸位置坐标,启动压缩跟踪算法对该人脸进行跟踪,在跟踪过程中不断判断跟踪窗口是否超出视频框,若跟踪窗口超出视频框未超出视频框,则保持对当前人脸的跟踪;若跟踪窗口超出视频框,程序跳转至步骤S11顺序执行;
压缩跟踪算法的具体实现包含以下步骤:
步骤S121:构建一个随机投影矩阵E,使用该投影矩阵E对当前采集到的样本进行特征提取,其具体计算方法如下式所示:
Feature=Sample×E (1)
式(1)中E∈Rm×n(m<<n)为随机投影降维矩阵,且符合压缩感知RIP条件(restricted isometry property,有限等距约束),m为样本未降维时的维数,n为样本降维后的维数,Sample为原始的图像。通过使用公式(1)能够将高维的原始输入图像信号Sample∈Rn×1经过投影矩阵E变换后,被压缩成低维的输出图像特征信号Feature∈Rm×1,输出图像特征信号的压缩程度取决于投影矩阵E的稀疏程度,投影矩阵E中元素可定义为:
式(2)中p为投影矩阵E中元素ki,j取得相应值的概率。在该算法中其中w是[2,4]内随机生成的整数,这样就使得在投影矩阵E中只需要计算不多于4个元素的值,在投影矩阵E中只要保存其中的非零元素,因此算法的计算量可得到极大的降低。
步骤S122:将所得到的压缩特征输入至朴素贝叶斯分类器,通过所有检测子窗口的概率值,选取概率值最大的子窗口中的特征即为目标的特征,即可确定出目标在图像中的位置。该步骤中的朴素贝叶斯的分类模型为:
在式(3)中v为样本的低维表示,可以表示为v=(u1,...,un)T,y∈{0,1}为所需分类样本的类别,当y=1时代表为正样本标签,y=0时为负样本标签。由于p(ui|y=1)与p(ui|y=0)符合高斯分布,因此其概率分布可表示为:
在式(4)中,和分别代表第i个正样本的均值与标准差,和分别代表第i个负样本的均值与标准差。为了适应目标在运动过程中的变化,式(4)中参数的具体更新方法为:
式(5)和(6)中λ>0是学习参数,用于表示参数更新速度,式中μ1和σ1表示当前图像帧中第i个正样本特征的均值与标准差,r为样本的个数;μ0和σ0的更新与式(5)和(6)类似。
步骤S13:若人脸检测失败,程序跳转至步骤S11顺序执行;
步骤S2:对所检测到的人脸进行图像预处理以及CSLBP特征提取;
步骤S21:对人脸区域进行预处理,使用了以下几种方式预处理:直方图均衡化、双边滤波、背景图像去除以及图像尺度归一化;
步骤S22:对经过图像预处理后的人脸图像,进CSLBP特征提取;
步骤S3:将所提取出来的CSLBP人脸特征作为检索向量对IHDR增量学习树进行搜索;
IHDR增量学习树搜索方法如图3所示,具体包含以下步骤:
步骤S31:从IHDR增量学习树的第一层开始,计算出待检索向量xd(xd1,xd2,...,xdn)与当前所在层所有聚类中心的欧式距离d,具体计算方法如式(7)所示。
式(7)中a为当前所在层的样本数,xtj为当前所在层中的样本,xij为当前所在层的候选聚类中心
步骤S32:给定IHDR树的检索精度λ,选取欧式距离最小的前λ个聚类,设置为活跃聚类,将所计算出来的欧氏距离值与所设置的检索敏感系数进行比较,若小于则停止检索,返回该聚类所对应的Y空间中的人脸标签yi。若大于则取消当前聚类的活跃标志,将该聚类的下一层子聚类作为活跃节点,并重复上述的迭代过程,直至满足所有条件直到搜索至IHDR树的叶子节点,输出叶子节点中的人脸标签yi,并返回该人脸与叶子节点样本的相似度s。
步骤S4:给定人脸检索的有效阈值α,若当前所检测到的人脸特征与IHDR学习树所检索到的人脸特征的相似度为s,若相似度s≤α,且连续3帧都为该人脸,则判断当前检索是有效的。在视频帧中的目标人脸上输出该人脸标签,同时启用压缩跟踪算法对该人脸进行跟踪。在进行人脸跟踪过程中,不断判断当前人脸是否超出视频采集的边界,若没有,继续跟踪人脸,若超出边界,则程序跳转至步骤S1顺序执行。
步骤S5:若相似度α<s≤β,则判断当前人脸识别错误,重新进行人脸识别,程序跳转至步骤S1顺序执行。
步骤S6:若相似度s>β,则判断当前人脸未曾学习过,给定该人脸标签,同时提取该人脸的CSLBP特征,应用分层聚类算法对人脸特征库进行在线增量更新。当所采集的人脸样本数达到所设定的阈值时,程序跳转至步骤S1顺序执行;
人脸特征库的在线增量更新流程如图4所示,具体的执行步骤如下所示:
步骤S61:根据所设定的聚类敏感系数η,将输出空间向量y1,y2,y3,...,yn划分为b个类,且b≤q,q为每个节点所能分裂的最大聚类个数。
步骤S62:根据输出空间的类别数b,将X输入空间中人脸训练样本的类别数也设定为b个类,应用欧氏距离对X空间中所有人脸训练样本进行聚类。
步骤S63:根据步骤S62所计算出的X空间的聚类结果,并结合X空间到Y空间的映射关系,重新对Y空间的聚类进行调整,使用式(7)的计算方法计算出Y空间元素之间的欧式距离D;
步骤S64:若D>η,则将X空间中的聚类i进行下一层节点的聚类划分,使聚类变得更加细化。通过不断迭代执行步骤S62和步骤S63,直到所有聚类的条件满足设定值,则停止迭代,构树成功。
步骤S65:由于在不断学习过程中,陆续增加的学习样本会对整个IHDR增量学习树的叶子节点的均值与协方差造成影响,因此需要引入遗忘机制对其进行更新,具体遗忘函数σ(x)如式(8)所示:
式(8)中t1,t2,e,h为预置的遗忘参数。
步骤S66:当需要在线添加新的训练样本时,从根节点出发,计算出该样本与当前所在层所有聚类中心的欧氏距离D,将所计算出来的距离值以递增方式排序,选取距离值最小的类,不断循环执行上述该过程,直至将新增的训练样本插入到叶子节点中,完成当前样本的在线增量学习。
综上,本发明所提出的基于压缩跟踪算法与IHDR增量学习机制的视频人脸在线识别方法,能够实现对视频中的人脸进行实时识别,具有以下优点:(1)在传统的人脸检测算法中结合使用了压缩跟踪算法,能够实现对多姿态人脸的检测,具有较好鲁棒性;(2)使用了IHDR增量学习机制进行人脸识别,当需要新增人脸类别或人脸样本时,能够实现在线增量的训练人脸识别模型,而无需重新使用所有样本对人脸识别模型进行训练,具有较好的实时性。(3)当多帧视频帧的人脸识别都确认为该人时,使用压缩跟踪算法对该人脸进行跟踪,而无需一帧一帧的进行人脸检测,该方法的使用能有效提高算法的准确率与实时性。