本发明涉及一种人脸识别搜索方法,特别是一种加快人脸识别搜索速度的方法。
背景技术:
人脸识别,特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。人脸识别是用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,通常也叫做人像识别、面部识别。但是目前的人脸识别通常是将图像上的人脸与数据库中的人脸逐个对比,由于数据库中的人脸是随机分布的,进行人脸对比的时候,常常需要进行很多次对比才能找到对比的那个人脸,进行了很多无用的对比,加重了系统的负担,降低了系统的反应速度。
技术实现要素:
为解决上述问题,本发明的目的在于提供一种可以减少无用对比的加快人脸识别搜索速度的方法。
本发明解决其问题所采用的技术方案是:一种加快人脸识别搜索速度的方法,包括存储有多张人脸数据的人脸数据库和用于确定人脸数据库中的人脸数据检索顺序的人脸索引表,所述人脸索引表上的人脸数据检索顺序按照人脸数据的识别次数进行排列,识别次数越多的人脸数据在人脸索引表上的检索顺序越靠前,还包括以下步骤,采集人脸图像,将当前人脸图像数据按人脸索引表上的检索顺序依次与人脸数据库中的人脸数据进行对比,直至找到匹配的人脸数据,然后根据人脸数据被识别的次数调整人脸索引表上的检索顺序。
具体而言,采集图像的时候通过摄像头进行图像采集,图像格式是rgb或者yuv。
具体而言,集人脸图像以后对人脸图像中的人脸进行特征提取,对图像中的人脸进行特征提取的时候先检测图像中是否有人脸,在检测是否有人脸的时候,首先进行肤色模型人脸检测,肤色模型人脸检测是指通过统计学习得出人脸肤色在y-cr-cb颜色空间中分布概率的肤色模型,然后通过肤色模型判断图像上的点是否属于人脸区域,肤色模型人脸检测以后再进行viola-jones人脸检测。
具体而言,对图像中的人脸进行特征提取,采用lbp特征向量提取方法或深度学习特征向量提取方法。
具体而言,lbp特征向量提取方法包括以下步骤首先将检测窗口划分为16*16的小区域,将每个小区域中的一个像素点作为中心像素点与其相邻的八个像素点进行灰度比较,如果该像素点的灰度值大于中心像素点的灰度值,则该像素点的位置被标为一,如果该像素点的灰度值小于中心像素点的灰度值,则该像素点的位置被标为零,3*3领域内的八个点比较产生八位二进制数,即得到该窗口中心像素点的lbp值,然后计算每个小区域的直方图,即每个十进制lbp值出现的频率,然后对该直方图进行归一化处理,最后将得到的每个小区域的统计直方图连接成为一个特征向量,也就是整附图的lbp纹理特征向量。
具体而言,深度学习特征向量提取方法是指在人脸图像上生成十个区域,分别为五个全局区域和五个特征点为中心的区域,对每个区域生成三种尺度,最终形成30个patch,使用30个patch分别输入到卷积神经网络中生成30个160维特征,人脸最终取160*30=4800纬特征。
具体而言,将一天划分为多个时间段,每个时间段均对应一个人脸索引表,提取人脸特征以后根据当前人脸识别时间所在的时间段加载相应时间段的人脸索引表。
具体而言,将当前的人脸与加载的人脸索引表中的人脸进行对比的时候,按人脸索引表上的顺序进行人脸比对检索,比对方法为计算待测人脸特征值与人脸数据库中人脸特征值的欧式距离,欧式距离计算公式为εk=||ω-ωk||2,其中ω代表要比对的人脸,ωk代表人脸数据库中的某个人脸,两者都是通过特征值的权重来表示的,上述公式是对两者求欧式距离,当距离小于阈值时说明要判别的脸和人脸数据库内的第k个脸是同一个人的。当前的人脸与加载的人脸索引表中的人脸对比成功的时候,存储识别成功的人脸索引值和存储识别成功的时间点。
当前的人脸与加载的人脸索引表中的人脸对比成功的时候对人脸索引表的检索顺序进行调整,调整人脸索引表检索顺序的具体方法为从记录中加载最近六十天的识别成功记录,以小时为单位将每天分为二十四个时间段,将识别成功记录中的人脸划归到二十四个时间段中,选取人脸数据库中一个人脸,其人脸索引值为a,根据识别成功记录,统计a在时间段a中出现的次数n,则人脸a在时间段a中出现的概率为m(a,a)=n/60,重复人脸a在时间段a中出现的概率的计算步骤可以得到人脸a在24个时间段的概率m(a,0),m(a,1),m(a,2)...m(a,23)。
再根据人脸a在24个时间段的概率计算方法对数据库中所有的人脸进行概率计算,可以得到人脸数据库中所有人脸在各时间段内出现的概率:
m(1,0),m(1,1),m(1,2)...m(1,23)
m(2,0),m(2,1),m(2,2)...m(2,23)
m(3,0),m(3,1),m(3,2)...m(3,23)
......
m(n,0),m(n,1),m(n,2)...m(n,23)
最后根据计算得出的概率m对每个时间段内的人脸进行排列生成新的人脸索引表,人脸在该时间段的概率m越高,则该人脸在该时间段的人脸索引表的排列越靠前,即该人脸在该时间段的人脸索引表的索引值越靠前,人脸在该时间段的概率m越低,则该人脸在该时间段的人脸索引表的排列越靠后,即该人脸在该时间段的人脸索引表的索引值越靠后。
本发明的有益效果是:本发明是一种加快人脸识别搜索速度的方法,本发明将人脸索引表上的人脸数据检索顺序按照人脸数据的识别次数进行排列,识别次数越多的人脸数据在人脸索引表上的检索顺序越靠前,采集人脸图像,将当前人脸图像数据按人脸索引表上的检索顺序依次与人脸数据库中的人脸数据进行对比,直至找到匹配的人脸数据,然后根据人脸数据被识别的次数调整人脸索引表上的检索顺序,使得当前人脸与索引表中的人脸对比在前几次对比即可对比成功的概率大大提升,大大减少了无用对比的发生,有效减轻了系统的负担,提高了系统的反应速度,数据库中的人脸数据越庞大,本发明的优势越明显,符合人脸识别的发展趋势。本发明每次识别成功都会进行记录并且更新人脸索引表,保证了人脸索引表的实时优化,不必安排专业人员按时进行人脸索引表进行优化,不但降低了维护和运营的成本,而且便于日常使用。
附图说明
下面结合附图和实例对本发明作进一步说明。
图1是本发明的处理流程图。
具体实施方式
一种加快人脸识别搜索速度的方法,包括存储有多张人脸数据的人脸数据库和用于确定人脸数据库中的人脸数据检索顺序的人脸索引表,所述人脸索引表上的人脸数据检索顺序按照人脸数据的识别次数进行排列,识别次数越多的人脸数据在人脸索引表上的检索顺序越靠前,还包括以下步骤,采集人脸图像,将当前人脸图像数据按人脸索引表上的检索顺序依次与人脸数据库中的人脸数据进行对比,直至找到匹配的人脸数据,然后根据人脸数据被识别的次数调整人脸索引表上的检索顺序。采集图像的时候通过摄像头进行图像采集,图像格式是rgb或者yuv。集人脸图像以后对人脸图像中的人脸进行特征提取,对图像中的人脸进行特征提取的时候先检测图像中是否有人脸,在检测是否有人脸的时候,首先进行肤色模型人脸检测,肤色模型人脸检测是指通过统计学习得出人脸肤色在y-cr-cb颜色空间中分布概率的肤色模型,然后通过肤色模型判断图像上的点是否属于人脸区域,肤色模型人脸检测以后再进行viola-jones人脸检测。本发明将人脸索引表上的人脸数据检索顺序按照人脸数据的识别次数进行排列,识别次数越多的人脸数据在人脸索引表上的检索顺序越靠前,采集人脸图像,将当前人脸图像数据按人脸索引表上的检索顺序依次与人脸数据库中的人脸数据进行对比,直至找到匹配的人脸数据,然后根据人脸数据被识别的次数调整人脸索引表上的检索顺序,使得当前人脸与索引表中的人脸对比在前几次对比即可对比成功的概率大大提升,大大减少了无用对比的发生,有效减轻了系统的负担,提高了系统的反应速度,数据库中的人脸数据越庞大,本发明的优势越明显,符合人脸识别的发展趋势。本发明每次识别成功都会进行记录并且更新人脸索引表,保证了人脸索引表的实时优化,不必安排专业人员按时进行人脸索引表进行优化,不但降低了维护和运营的成本,而且便于日常使用。
优选的,本发明对图像中的人脸进行特征提取,采用lbp特征向量提取方法或深度学习特征向量提取方法。lbp特征向量提取方法包括以下步骤首先将检测窗口划分为16*16的小区域,将每个小区域中的一个像素点作为中心像素点与其相邻的八个像素点进行灰度比较,如果该像素点的灰度值大于中心像素点的灰度值,则该像素点的位置被标为一,如果该像素点的灰度值小于中心像素点的灰度值,则该像素点的位置被标为零,3*3领域内的八个点比较产生八位二进制数,即得到该窗口中心像素点的lbp值,然后计算每个小区域的直方图,即每个十进制lbp值出现的频率,然后对该直方图进行归一化处理,最后将得到的每个小区域的统计直方图连接成为一个特征向量,也就是整附图的lbp纹理特征向量。深度学习特征向量提取方法是指在人脸图像上生成十个区域,分别为五个全局区域和五个特征点为中心的区域,对每个区域生成三种尺度,最终形成30个patch,使用30个patch分别输入到卷积神经网络中生成30个160维特征,人脸最终取160*30=4800纬特征。
优选的,本发明将一天划分为多个时间段,每个时间段均对应一个人脸索引表,提取人脸特征以后根据当前人脸识别时间所在的时间段加载相应时间段的人脸索引表。将当前的人脸与加载的人脸索引表中的人脸进行对比的时候,按人脸索引表上的顺序进行人脸比对检索,比对方法为计算待测人脸特征值与人脸数据库中人脸特征值的欧式距离,欧式距离计算公式为εk=||ω-ωk||2,其中ω代表要比对的人脸,ωk代表人脸数据库中的某个人脸,两者都是通过特征值的权重来表示的,上述公式是对两者求欧式距离,当距离小于阈值时说明要判别的脸和人脸数据库内的第k个脸是同一个人的。当前的人脸与加载的人脸索引表中的人脸对比成功的时候,存储识别成功的人脸索引值和存储识别成功的时间点。当前的人脸与加载的人脸索引表中的人脸对比成功的时候对人脸索引表的检索顺序进行调整,调整人脸索引表检索顺序的具体方法为从记录中加载最近六十天的识别成功记录,以小时为单位将每天分为二十四个时间段,将识别成功记录中的人脸划归到二十四个时间段中,选取人脸数据库中一个人脸,其人脸索引值为a,根据识别成功记录,统计a在时间段a中出现的次数n,则人脸a在时间段a中出现的概率为m(a,a)=n/60,重复人脸a在时间段a中出现的概率的计算步骤可以得到人脸a在24个时间段的概率m(a,0),m(a,1),m(a,2)...m(a,23)。
再根据人脸a在24个时间段的概率计算方法对数据库中所有的人脸进行概率计算,可以得到人脸数据库中所有人脸在各时间段内出现的概率:
m(1,0),m(1,1),m(1,2)...m(1,23)
m(2,0),m(2,1),m(2,2)...m(2,23)
m(3,0),m(3,1),m(3,2)...m(3,23)
......
m(n,0),m(n,1),m(n,2)...m(n,23)
最后根据计算得出的概率m对每个时间段内的人脸进行排列生成新的人脸索引表,人脸在该时间段的概率m越高,则该人脸在该时间段的人脸索引表的排列越靠前,即该人脸在该时间段的人脸索引表的索引值越靠前,人脸在该时间段的概率m越低,则该人脸在该时间段的人脸索引表的排列越靠后,即该人脸在该时间段的人脸索引表的索引值越靠后。
图1是本发明的处理流程图,如图1所示,一种加快人脸识别搜索速度的方法,包括以下步骤:
s1,通过摄像头采集人脸图像;
s2,检测人脸图像中是否有人脸,是则转步骤s3,否则转步骤s1;
s3,对人脸图像中的人脸进行人脸特征提取;
s4,根据提取到的人脸特征加载人脸索引表;
s5,将当前人脸特征数据根据人脸索引表上的检索顺序在数据库中进行人脸检索;
s6,是否在人脸数据库中检索到相同的人脸,是则转步骤s7,否则转步骤s1;
s7,保存识别成功的人脸检索记录并且更新人脸索引表,转步骤s1。
更新人脸索引表是指加载最近的人脸识别成功记录,将识别成功的人脸根据识别成功时间划分时间段,每个时间段内识别成功的人脸按照出现的概率进行排列形成新的人脸索引表,人脸出现的概率越高,在人脸索引表中的排列顺序越靠前,人脸出现的概率越低,在人脸索引表中的排列顺序越靠后。本发明在人脸对比的时候虽然也是按照人脸索引表进行逐个对比,但是可以将人脸数据库中出现概率较大的人脸进行优先对比,大大减少了无用对比的发生,有效减轻了系统的负担,提高了系统的反应速度,数据库中的人脸数据越庞大,本发明的优势越明显,符合人脸识别的发展趋势。本发明每次识别成功都会进行记录并且更新人脸索引表,保证了人脸索引表的实时优化,不必安排专业人员按时进行人脸索引表进行优化,不但降低了维护和运营的成本,而且便于日常使用。
优选的,本发明的步骤s1在采集图像的时候通过摄像头进行图像采集,图像格式是rgb或者yuv。本发明的步骤s2在检测是否有人脸的时候,首先进行肤色模型人脸检测,肤色模型人脸检测是指通过统计学习得出人脸肤色在y-cr-cb颜色空间中分布概率的肤色模型,然后通过肤色模型判断图像上的点是否属于人脸区域,肤色模型人脸检测以后再进行viola-jones人脸检测。本发明的步骤s3在人脸特征提取的时候,采用lbp特征向量提取方法或深度学习特征向量提取方法。
优选的,lbp特征向量提取方法包括以下步骤首先将检测窗口划分为16*16的小区域,将每个小区域中的一个像素点作为中心像素点与其相邻的八个像素点进行灰度比较,如果该像素点的灰度值大于中心像素点的灰度值,则该像素点的位置被标为一,如果该像素点的灰度值小于中心像素点的灰度值,则该像素点的位置被标为零,3*3领域内的八个点比较产生八位二进制数,即得到该窗口中心像素点的lbp值,然后计算每个小区域的直方图,即每个十进制lbp值出现的频率,然后对该直方图进行归一化处理,最后将得到的每个小区域的统计直方图连接成为一个特征向量,也就是整附图的lbp纹理特征向量。深度学习特征向量提取方法是指在人脸图像上生成十个区域,分别为五个全局区域和五个特征点为中心的区域,对每个区域生成三种尺度,最终形成30个patch,使用30个patch分别输入到卷积神经网络中生成30个160维特征,人脸最终取160*30=4800纬特征。
优选的,本发明的步骤s4在加载人脸索引表的时候根据当前时间段选择人脸索引表。本发明的步骤s5在人脸检索的时候按人脸索引表顺序进行人脸比对检索,比对方法为计算待测人脸特征值与人脸数据库中人脸特征值的欧式距离,欧式距离计算公式为εk=||ω-ωk||2,其中ω代表要比对的人脸,ωk代表人脸数据库中的某个人脸,两者都是通过特征值的权重来表示的,上述公式是对两者求欧式距离,当距离小于阈值时说明要判别的脸和人脸数据库内的第k个脸是同一个人的。
优选的,本发明的保存记录是指存储识别成功的人脸索引值和存储识别成功的时间点。本发明的更新人脸索引表的具体方法为从记录中加载最近六十天的识别成功记录,以小时为单位将每天分为二十四个时间段,将识别成功记录中的人脸划归到二十四个时间段中,选取人脸数据库中一个人脸,其人脸索引值为a,根据识别成功记录,统计a在时间段a中出现的次数n,则人脸a在时间段a中出现的概率为m(a,a)=n/60,重复人脸a在时间段a中出现的概率的计算步骤可以得到人脸a在24个时间段的概率m(a,0),m(a,1),m(a,2)...m(a,23)。再根据人脸a在24个时间段的概率计算方法对数据库中所有的人脸进行概率计算,可以得到人脸数据库中所有人脸在各时间段内出现的概率:
m(1,0),m(1,1),m(1,2)...m(1,23)
m(2,0),m(2,1),m(2,2)...m(2,23)
m(3,0),m(3,1),m(3,2)...m(3,23)
......
m(n,0),m(n,1),m(n,2)...m(n,23)
最后根据计算得出的概率m对每个时间段内的人脸进行排列生成新的人脸索引表,人脸在该时间段的概率m越高,则该人脸在该时间段的人脸索引表的排列越靠前,即该人脸在该时间段的人脸索引表的索引值越靠前,人脸在该时间段的概率m越低,则该人脸在该时间段的人脸索引表的排列越靠后,即该人脸在该时间段的人脸索引表的索引值越靠后。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。