基于人脸检测与识别技术的人员计数方法及系统和装置
技术领域
本发明属于人脸识别技术领域,尤其涉及一种基于人脸检测与识别技术的人员计数方法及系统和装置。
背景技术
目前用来实现人员计数的方法有很多,有利用红外,压电技术的,需要安装特定的感应装置,如红外收发器,压电感应器等,系统部署较为不便,成本较高,感应装置容易损坏,维护困难,且精度也不高;也有在关卡处安装门禁设备,刷卡或按键方可通过,这类方案计数精度很高,但是实现成本非常高,且限制了人员的通行速度。
另外一方面,人脸检测技术已经相当成熟,目前对侧向人脸都能够有效的检出。同时,人脸识别技术在多年的发展后也趋于成熟,在人脸库较小的情况下能够达到95%以上的正确识别率。
目前有一种利用人脸检测实现人员计数的方法,但是在对视频进行人脸检测时,一段时间内,同一人可能被检测到几十上百次,造成计数不准确;还有的人员计数方法是单纯靠加大取帧的间隔,如3秒中取一帧进行人脸检测,则有可能丢失瞬间出现在镜头中的人。均不能达到很好的效果。
所以如果有一种新技术能够以人脸检测技术为基础,结合人脸识别技术,通过较低的成本,方便快捷的部署方式,实现高精度的人员计数,当是业界所需要的。
发明内容
本发明的目的是克服上述现有技术的缺陷,提供一种基于人脸检测与识别技术的人员计数方法及系统和装置。
实现本发明目的的技术方案是:
一种基于人脸检测与识别的人员计数方法,包括以下步骤:
步骤1、记录历史人脸数据列表长度L行;
步骤2、接收一帧包含有N个人的人脸图像的视频;
步骤3、对该帧视频进行人脸检测并且形成新人脸数据列表,该新人脸数据列表包含N行数据,每一行数据对应着一个人脸的数据;
步骤4、从所述新人脸数据列表中取出其中一行人脸数据;
步骤5、将这行人脸数据与所述历史人脸数据列表中的前L行人脸数据逐一进行比对,每一次比对输出一个相似度数值,判断相似度>阈值?一旦有一次比对的相似度大于阈值,则认定该新人脸数据已经储存在所述历史人脸数据列表中,该新人脸的比对结束,转到步骤7;否则如果L次比对的相似度值均小于阈值则转到步骤6;
步骤6、将该新人脸数据添加到所述历史人脸数据列表,并且人员总数加1,然后转到步骤7;
步骤7、所述新人脸数据列表是否比对完成?是的话转到步骤8,否则转到步骤4;
步骤8、清除所述历史人脸数据列表中超过有效时限Tc的人脸数据,然后回到步骤1进入下一循环处理下一个视频帧。
其中历史人脸数据列表长度L的值在每个循环之后都会更新,公式是:L新值=L旧值+新人脸-超过有效时限Tc的人脸数。
其中步骤3进一步包括:通过人脸检测算法将该帧图像中的N个人的人脸图像分别分割出来并且加工成人脸数据,存为一个新人脸数据列表;所述人脸检测算法是基于haar-like特征的快速人脸检测算法。
其中历史人脸数据列表包括以下信息:
1.入表时间:指人脸图片及对应的特征码存入所述历史人脸数据列表的时间点,用于确定该人脸数据是否超过有效时限Tc;
2.人脸图片:人脸图像的原始数据,以十六进制数据存储,不做人脸比对用,若有需要可调用此数据进行显示;
3.人脸特征码:人脸图像特征码,是根据人脸识别算法提取的人脸关键特征信息,用于人脸比对;
新人脸数据列表包括如下信息:
1.人脸图片:人脸图像的原始数据,以十六进制数据存储,不做人脸比对用,若有需要可调用此数据进行显示,可查看人脸图像;
2.人脸特征码:人脸图像特征码,是根据人脸识别算法提取的人脸关键特征信息,用于人脸比对。
其中入表时间的单位为秒,所述时间点的起始时间点从1970年1月1日0时0分0秒开始计算,所述入表时间指从起始时间点到入库时间点所经过的秒数;Tc为10秒;步骤8进一步包括:先计算时间节点Ts:Ts=当前时间点-Tc,然后删除历史人脸列表中入表时间小于Ts的人脸数据,保留大于Ts的人脸数据。
其中步骤2中所接收的视频是实时视频或历史视频。
本发明还公开了一种基于人脸检测与识别的人员计数系统,包括以下模块:
模块1、记录历史人脸数据列表长度L行;
模块2、接收一帧包含有N个人的人脸图像的视频;
模块3、对该帧视频进行人脸检测并且形成新人脸数据列表,该新人脸数据列表包含N行数据,每一行数据对应着一个人脸的数据;
模块4、从所述新人脸数据列表中取出其中一行人脸数据;
模块5、将这行人脸数据与所述历史人脸数据列表中的前L行人脸数据逐一进行比对,每一次比对输出一个相似度数值,判断相似度>阈值?一旦有一次比对的相似度大于阈值,则认定该新人脸数据已经储存在所述历史人脸数据列表中,该新人脸的比对结束,转到模块7;否则如果L次比对的相似度值均小于阈值则转到模块6;
模块6、将该新人脸数据添加到所述历史人脸数据列表,并且人员总数加1,然后转到模块7;
模块7、所述新人脸数据列表是否比对完成?是的话转到模块8,否则转到模块4;
模块8、清除所述历史人脸数据列表中超过有效时限Tc的人脸数据,然后回到模块1进入下一循环处理下一个视频帧。
其中历史人脸数据列表长度L的值在每个循环之后都会更新,公式是:L新值=L旧值+新人脸-超过有效时限Tc的人脸数。
其中模块3进一步包括:通过人脸检测算法将该帧图像中的N个人的人脸图像分别分割出来并且加工成人脸数据,存为一个新人脸数据列表;所述人脸检测算法是基于haar-like特征的快速人脸检测算法。
其中历史人脸数据列表包括以下信息:
1.入表时间:指人脸图片及对应的特征码存入所述历史人脸数据列表的时间点,用于确定该人脸数据是否超过有效时限Tc;
2.人脸图片:人脸图像的原始数据,以十六进制数据存储,不做人脸比对用,若有需要可调用此数据进行显示;
3.人脸特征码:人脸图像特征码,是根据人脸识别算法提取的人脸关键特征信息,用于人脸比对;
新人脸数据列表包括如下信息:
1.人脸图片:人脸图像的原始数据,以十六进制数据存储,不做人脸比对用,若有需要可调用此数据进行显示,可查看人脸图像;
2.人脸特征码:人脸图像特征码,是根据人脸识别算法提取的人脸关键特征信息,用于人脸比对。
其中入表时间的单位为秒,所述时间点的起始时间点从1970年1月1日0时0分0秒开始计算,所述入表时间指从起始时间点到入库时间点所经过的秒数;Tc为10秒;模块8进一步包括:先计算时间节点Ts:Ts=当前时间点-Tc,然后删除历史人脸列表中入表时间小于Ts的人脸数据,保留大于Ts的人脸数据。
其中模块2中所接收的视频是实时视频或历史视频。
本发明还提出了一种基于人脸检测与识别的人员计数装置,人脸图像拍摄装置(100)、服务器(200)、以及计数装置(300),所述服务器(200)安装有前述的基于人脸检测与识别的人员计数系统。
其中人脸图像拍摄装置(100)的视频的格式是h264、mp4、或flv;所述人脸图像拍摄装置(100)直接安装于人员进出关卡上方,其视频信号通过有线或无线方式接入到所述服务器(200);所述服务器(200)为个人计算机(PC);所述计数装置(300)连接有显示装置,所述显示装置为LED显示屏、LCD显示屏、或者PC屏幕。其中基于人脸检测与识别技术的人员计数系统通过以下方式中之一安装于服务器200内:网络下载、移动存储器安装、或者固化其中。
本发明提出的基于人脸检测与识别技术的人员计数方法及系统和装置,以较低的成本,方便快捷的部署方式,实现高精度的人员计数,而且不影响人员的通行速度。
附图说明
图1为本发明基于人脸检测与识别技术的人员计数装置的功能方框图;
图2为本发明基于人脸检测与识别技术的人员计数方法的流程图。
具体实施方式
以下结合附图并以具体实施方式为例,对本发明进行详细说明。但是,本领域技术人员应该知晓的是,本发明不限于所列出的具体实施方式,只要符合本发明的精神,都应该包括于本发明的保护范围内。
本发明的基于人脸检测与识别技术的人员计数方法是由计算机程序实现的。本发明的出发点在于将人脸检测与人脸识别技术结合起来用于人员计数,因为若不进行人脸识别,则在对视频进行人脸检测时,一段时间内,同一人可能被检测到几十上百次,造成计数不准确;另一方面,若不采用人脸识别方法,只单纯靠加大取帧的间隔,如3秒中取一帧进行人脸检测,则有可能丢失瞬间出现在镜头中的人。而利用人脸检测与人脸识别技术的结合,就可以有效的去除重复计数、同时不漏掉视频中的任何一个人,从而达到很好的效果。
同时,本发明的系统也有硬件系统的支持,如图1所示为本发明基于人脸检测与识别技术的人员计数装置的功能方框图,该装置包括人脸图像拍摄装置100、服务器200、以及计数装置300。
人脸图像拍摄装置100可以是任何型号的摄像头、或者拍摄装置,其视频的格式可以是h264,mp4,flv等等。拍摄装置100可直接安装于人员进出关卡上方,若是单向通道,则正对行人安装一个摄像头;若是双向通道同一关卡既可以进也可以出,则在两个方向,各安装一个摄像头,对出入的人员分别计数。在已安装摄像头的场合,可直接利用原摄像头视频信号进行处理也可;因此可节省安装费用。人脸图像拍摄装置100的视频信号通过有线或无线方式接入到后台服务器200。
服务器200内部安装有本发明的基于人脸检测与识别技术的人员计数系统,本发明的基于人脸检测与识别技术的人员计数系统可以通过多种方式安装于服务器200内部,比如网络下载、移动存储器安装、或者固化其中,等等。服务器200还包括历史人脸数据列表210,用于储存已有的人脸数据;以及新人脸数据列表220,用于储存新拍摄的人脸数据。在一个实施例中,历史人脸数据列表210中包括多行,每行对应一个已有的人脸数据。服务器200可采用市售的各种服务器设备,在一个实施例中,采用了一台普通个人计算机(PC)作为服务器。
计数装置300的形式也多种多样,市售的计数器均可使用,在一个实施例中,直接采用普通PC中的计数器;计数装置300还可连接有显示装置,比如LED、LCD显示屏等,或者直接用PC屏幕作为显示器。
工作时,摄像头100的视频信号通过有线或无线方式接入到后台服务器200,然后由后台服务器200对视频进行人脸检测,检测结果如果是新人的话,则计数装置300加一并在显示器上显示人数。
下面请看图2,是本发明一个实施例中,基于人脸检测与识别技术的人员计数方法的流程图。包括以下步骤:
步骤1、记录历史人脸数据列表210的长度L行,即列表的行数,也即历史人脸个数,其中每行对应一个已有的人脸数据。以下是一个历史人脸数据列表210的具体实施例,其中L=3,即有3个人脸数据。
历史人脸数据列表210
序号 |
入表时间 |
人脸图片(十六进制码) |
人脸特征码 |
1 |
1351214257 |
FF D8FF E0 00…CA D2 D3 D4 D5 C1 F0… |
123.4234.234.23.242.42.366.… |
2 |
1351214261 |
FF D8FF E0 00…DA E2 D1 12 F5 A7 76… |
434.33.47.914.547.454.536.45… |
3 |
1351214265 |
FF D8FF E0 00…37 EB 12 F5 DC 05 6F… |
156.38.532.79.24.4.53.45.34… |
历史人脸数据列表210包括以下信息:
1.入表时间:单位为秒,指人脸图片及对应的特征码存入历史人脸数据列表的时间点,起始时间点从1970年1月1日0时0分0秒开始计算,所述入表时间指从起始时间点到入库时间点所经过的秒数,用于确定该人脸数据是否超过有效时限。
2.人脸图片:人脸图像的原始数据,以十六进制数据存储,不做人脸比对用,若有需要可调用此数据进行显示,可查看人脸图像。
3.人脸特征码:人脸图像特征码,是根据人脸识别算法,提取的人脸关键特征信息,用于人脸比对。
步骤2、接收实时视频或历史视频中的一帧视频,其中包含有N个人的人脸图像。
步骤3、对该帧视频进行人脸检测和识别并且形成新人脸数据列表220,通过人脸检测算法,如基于haar-like特征的快速人脸检测算法,将该帧图像中的N个人的人脸图像分别分割出来并且生成对应的人脸特征码数据,存为一个新人脸数据列表220,其中该新人脸数据列表包含N行数据,每一行数据对应着一个人脸的数据。
新人脸数据列表220包括如下信息:
1.人脸图片:人脸图像的原始数据,以十六进制数据存储,不做人脸比对用,若有需要可调用此数据进行显示,可查看人脸图像。
2.人脸特征码:人脸图像特征码,是根据人脸识别算法,提取的人脸关键特征信息,用于人脸比对。
以下是一个新人脸数据列表220的具体实施例,其中N=2,即该帧视频有2个人脸特征码数据。
新人脸数据列表220
序号 |
人脸图片(十六进制码) |
人脸特征码 |
1 |
FF D8FF E0 00…A3 A9 79 6F 97 ED 02… |
23.534.2.38.247.2.42.55.213… |
2 |
FF D8FF E0 00…C5 8A 20 0A DB 06 71… |
434.33.47.912.237.454.516.35… |
步骤4、从步骤3得到的新人脸数据列表220中取出其中一行人脸的特征码数据,比如先取出第1行人脸特征码数据。
步骤5、将这行人脸特征码数据与历史人脸数据列表210中的前L行(第L行以后的是刚从新人脸数据列表210中添加进来的,不做比较)人脸特征码数据逐行进行一一比对,每一次比对输出一个相似度数值,值越大表示两张人脸越相似。设定一个阈值,每输出一个相似度值,就进行判断:相似度>阈值?一旦有一次比对的相似度大于阈值,则认定这个新人脸数据已经储存在历史人脸数据列表210中,既该人不是新人,不再重复计数,此新人脸与历史人脸的比对结束,转到步骤7;如果L次比对的相似度值均小于阈值,说明此新人脸不在历史人脸数据列表210中,转到步骤6。
步骤6、将该新人脸数据(包括人脸图像及其特征码)添加到历史人脸数据列表210的末尾,并且人员总数加1,然后转到步骤7。这时历史人脸数据列表210的行数在末尾增加了一行。
步骤7、新人脸数据列表220是否比对完成?否的话转到步骤4继续进行新人脸数据列表中的下一行人脸的比对,是的话则转到步骤8。
步骤8、清除历史人脸数据列表210中超过有效时限Tc的人脸数据(包括人脸图像及其特征码),然后回到步骤1,其中Tc为设定的人脸数据有效时限。具体可包括:先计算时间节点Ts,公式是:Ts=当前时间点-Tc,然后删除历史人脸列表中入表时间小于Ts的人脸数据,保留大于Ts的人脸数据。
另外,L值在每个循环之后都会更新,公式是:
L新值=L旧值+新人脸-超过有效时限Tc的人脸数。
例如:若某一个循环增加了2个新人脸,但是删除了1个旧人脸,则:L新值=L旧值+2-1。
设置有效时限Tc是用于删除历史人脸数据列表210中入表时间早于当前时间Tc秒的人脸数据,主要是为了提高识别速度和准确率。例如在一个具体实施例中,若人员通过摄像头的速度较快,则Tc可取10秒,也即10秒内,该人再次出现在视频中,不会对他重复进行计数;10秒钟以后,如果他再次出现在视频中,因历史人脸数据列表210中的数据已经被删除,则他将被再次计数。
下面通过一个具体实施例,结合上面2个列表及各步骤再次描述本发明方法:
历史人脸数据列表210中是之前一段时间Tc内所有视频帧中出现的人脸及其对应的特征码,记录下历史人脸数据列表210的当前长度L为3。新人脸数据列表220中是对最新一个视频帧进行人脸检测得到的2个人脸及其对应的人脸特征码。设定相似度阈值为0.85,人脸数据有效时限Tc为10秒。
现取新人脸数据列表210中第一行人脸特征码数据,将之与历史人脸数据列表220中的3个人脸特征码逐一进行比对,得到3个相似度值:0.2,0.3,0.3,均小于相似度阈值0.85,说明此人脸为新面孔,将其添加到历史人脸数据列表210末尾,且计数器数值加1,此时历史人脸数据列表210变为4行。再取新人脸数据列表220中第2个人脸特征码数据,将之与历史人脸数据列表中的3个人脸特征码逐一进行比对(因为第4个人脸是新添加的,不做比对),得到3个相似度值:0.3,0.9,0.4,第二个相似度值大于了设定的相似度阈值0.85,说明此新人脸与历史人脸数据列表中第二个人脸为同一人,故计数器值不变。这样,新人脸数据列表220中所有人脸均已处理完毕,进入步骤8,查看历史人脸列表中是否有人脸数据超过有效时限10秒。在该实施例中,当前时间点为1351214268,根据前面的公式时间节点Ts=1351214268-10=1351214258,将历史人脸列表中入表时间小于Ts的人脸数据删除,历史人脸1的入表时间为1351214257,小于Ts,因此被删除;历史人脸2和3以及此轮检测新添加进来的新人脸4的入表时间均大于Ts,因此被保留。
最后,根据前述公式:
L新值=L旧值+新人脸-超过有效时限Tc的人脸数
可计算出下一个循环的新的历史人脸数据列表210的表长L新值为3,然后进入下一循环以该L新值记录历史人脸数据列表210的长度,再接收一个新的视频帧进行人脸检测和识别,并对其中的人脸图像进行特征提取,得到新的人脸列表220……如此循环处理,一个视频帧一个视频帧地处理直到全部视频处理完毕。
本发明除了可对实时视频进行人员计数,也可以对历史视频进行人员计数,而且不需要打扰待计数的人员,无需其主动配合即可正常通过关卡,非常方便,这一点尤其适合人流量特大的场合,如商场、火车站、机场出入口等等。
应该注意的是上述实施例是示例而非限制本发明,本领域技术人员将能够设计很多替代实施例而不脱离附后的权利要求书的范围。