人脸检测方法及装置与流程

文档序号:15688819发布日期:2018-10-16 21:36阅读:118来源:国知局

本发明涉及模式识别技术领域,尤其涉及一种人脸检测方法及装置。



背景技术:

人脸识别是指利用分析比较人脸视觉特征信息进行身份鉴定的计算机技术,是目前人工智能和模式识别的重点,被广泛地应用在国家安全、军事安全、身份识别、银行及海关的监控、门禁系统、视频会议等领域。

人脸检测是人脸识别中的关键环节,人脸检测是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果是则返回人脸的位置、大小和姿态。

为了便于目标识别,在人脸检测过程中,对于每个检测出的人脸目标都可以增加一个识别码,如果是同一个目标,该识别码始终是同一个值。现阶段常用的人脸检测方法通过跟踪算法来认定目标是否是同一个目标,该算法计算量大,检测效率低。



技术实现要素:

本发明提供的人脸检测方法及装置,能够提高检测效率。

第一方面,本发明提供一种人脸检测方法,包括:

利用adaboost人脸检测算法获取第一帧图像的多个目标,为所述多个目标分别添加识别码;

保存所述第一帧图像的添加有识别码的多个目标;

利用adaboost人脸检测算法依次获取后续各帧图像中每帧图像的多个目标,在每次获取所述后续各帧图像中其中一帧图像的多个目标之后,将该帧图像的多个目标分别与该帧图像之前的连续多帧图像的添加有识别码的目标作比较,根据比较结果为该帧图像的多个目标分别添加识别码,保存该帧图像的添加有识别码的多个目标。

可选地,所述将该帧图像的多个目标分别与该帧图像之前的连续多帧图像的添加有识别码的目标作比较包括:

将该帧图像的每个目标按照从后向前的顺序依次与该帧图像之前的连续多帧图像中各帧图像的添加有识别码的目标作比较,直至该目标与所述连续多帧图像的其中一个目标的重合度超过第一阈值。

可选地,所述根据比较结果为该帧图像的多个目标分别添加识别码包括:

当该帧图像的其中一个目标与该帧图像之前的连续多帧图像的其中一个目标的重合度超过第一阈值时,为该目标添加相同的识别码;

当该帧图像的其中一个目标与该帧图像之前的连续多帧图像的任何一个目标的重合度都不超过第一阈值时,为该目标添加新的识别码。

第二方面,本发明提供一种人脸检测装置,包括:

第一获取模块,用于利用adaboost人脸检测算法获取第一帧图像的多个目标;

第一添加模块,用于为所述第一获取模块获取的多个目标分别添加识别码;

第一保存模块,用于保存所述第一帧图像的添加有识别码的多个目标;

第二获取模块,用于利用adaboost人脸检测算法依次获取后续各帧图像中每帧图像的多个目标;

第一比较模块,用于在所述第二获取模块每次获取所述后续各帧图像中其中一帧图像的多个目标之后,将该帧图像的多个目标分别与该帧图像之前的连续多帧图像的添加有识别码的目标作比较;

第二添加模块,用于根据所述第一比较模块的比较结果为该帧图像的多个目标分别添加识别码;

第二保存模块,用于保存该帧图像的添加有识别码的多个目标。

可选地,所述第一比较模块,用于将该帧图像的每个目标按照从后向前的顺序依次与该帧图像之前的连续多帧图像中各帧图像的添加有识别码的目标作比较,直至该目标与所述连续多帧图像的其中一个目标的重合度超过第一阈值。

可选地,所述第二添加模块包括:

第一添加单元,用于当该帧图像的其中一个目标与该帧图像之前的连续多帧图像的其中一个目标的重合度超过第一阈值时,为该目标添加相同的识别码;

第二添加单元,用于当该帧图像的其中一个目标与该帧图像之前的连续多帧图像的任何一个目标的重合度都不超过第一阈值时,为该目标添加新的识别码。

本发明提供的人脸检测方法及装置,利用adaboost人脸检测算法获取第一帧图像的多个目标,为所述多个目标分别添加识别码;保存所述第一帧图像的添加有识别码的多个目标;利用adaboost人脸检测算法依次获取后续各帧图像中每帧图像的多个目标,在每次获取所述后续各帧图像中其中一帧图像的多个目标之后,将该帧图像的多个目标分别与该帧图像之前的连续多帧图像的添加有识别码的目标作比较,根据比较结果为该帧图像的多个目标分别添加识别码,保存该帧图像的添加有识别码的多个目标。与现有技术相比,本发明不需要大量的计算,能够减少计算时间,快速添加目标的识别码,提高了检测效率。

附图说明

图1为本发明一实施例提供的人脸检测方法的流程图;

图2为本发明一实施例提供的人脸检测装置的结构示意图;

图3为图2所示人脸检测装置中第二添加模块的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种人脸检测方法,如图1所示,所述方法包括:

s11、利用adaboost人脸检测算法获取第一帧图像的多个目标,为所述多个目标分别添加识别码;

对所述第一帧图像进行预处理,包括图像灰度化、直方图均衡化等,得到所述第一帧图像的灰度图,使用人脸检测模型对得到的灰度图采用adaboost人脸检测算法进行检测,获取所述第一帧图像的多个目标,具体检测步骤如下:

1)提取所述第一帧图像的特征,计算特征值。

2)使用第一检测窗口从所述第一帧图像的左上角(0,0)处开始遍历检测,依次检测所述第一帧图像的所有子窗口,所述第一检测窗口与所述人脸检测模型训练时的窗口大小保持一致;

对于任意一个子窗口来说,由所述人脸检测模型的第一级强分类器的第一个弱分类器算起,若子窗口的特征值小于该弱分类器的阈值,则直接退出检测,否则继续判断下一个弱分类器,直到通过该级强分类器,再继续进入下一个强分类器,直到退出检测或者通过全部强分类器。每一个子窗口在退出检测时,都会返回该子窗口通过的当前强分类器的级数,正常情况下,遍历的步长设为step,即下一次的偏移在前一次的基础上加上step,如果当前子窗口在退出检测时返回的强分类器的级数不超过2级,即只通过了1级或2级强分类器,则遍历的步长临时改为2*step,直接跳过下一个子窗口,也就是说,认为当前子窗口的下一个子窗口为目标的可能性极小,直接不检测。

3)判断每个所述子窗口是否为人脸目标,当所述子窗口通过所述人脸检测模型时,所述子窗口为人脸目标;

只有当一个子窗口依次通过全部强分类器,该子窗口才被认为是人脸目标并保存下来。

4)按照设定的比例因子(第一图像缩放因子)缩放所述第一帧图像,重复1)~3);

5)重复步骤4),直到第一帧图像缩放到设定的最小值,通常最小值设定为一个第一检测窗口的大小,当所述第一帧图像的宽或高小于设定的宽或高时,不再继续缩放,结束当前帧图像的检测。

经过上述步骤,能够在第一帧图像中检测出所有的人脸目标并保存。

6)对检测出的人脸目标进行聚类分析。

重合度在70%以上的人脸目标均认为是同一个目标而被合并,合并采用的是取均值的原则。经过合并之后剩余的人脸目标就是最终的人脸目标。

对于只检测到1次的人脸目标被认为是误检而被剔除。

在检测到所述第一帧图像的多个目标之后,为所述多个目标分别添加识别码(也可以称为id值),这些识别码可以是随机值,也可以是从0开始,依次加1的一列数值。为便于说明,本实施例中,识别码从0开始,依次加1。

s12、保存所述第一帧图像的添加有识别码的多个目标;

通常将所述多个目标保存到各自的数组中,为便于说明,本实施例中,识别码为0的目标保存到数组vector0,识别码为1的目标保存到数组vector1,以此类推。也就是说,有几个不同识别码的目标,就需要几个对应的数组。为了节省内存,每个数组不可能很大,本实施例中,每个数组最多允许存储5个目标。

s13、利用adaboost人脸检测算法依次获取后续各帧图像中每帧图像的多个目标,在每次获取所述后续各帧图像中其中一帧图像的多个目标之后,将该帧图像的多个目标分别与该帧图像之前的连续多帧图像的添加有识别码的目标作比较,根据比较结果为该帧图像的多个目标分别添加识别码,保存该帧图像的添加有识别码的多个目标。

从第二帧开始,对于当前帧图像的每个目标,均按照从后向前的顺序依次与当前帧图像之前的连续多帧图像中各帧图像的添加有识别码的目标作比较,主要是比较重合度,重合度的计算公式如下:

coincidence=min(s_area/now_area,s_area/pre_area)

其中,coincidence表示重合度,s_erea表示当前帧图像的其中一个目标与当前帧图像之前的连续多帧图像其中一帧图像的其中一个目标的重合部分的面积,now_area为当前帧图像的其中一个目标的面积,pre_area为当前帧图像之前的连续多帧图像其中一帧图像的其中一个目标的面积。

如果当前帧图像的其中一个目标与当前帧图像之前的连续多帧图像的其中一个目标的重合度超过第一阈值,可以将第一阈值设定为60%,此时为当前帧图像中的该目标添加与该目标重合度超过60%的那个已经保存的目标相同的识别码,并将添加有识别码的目标保存到对应的数组中,如果对应数组中保存的目标数量不超过5个,直接保存;如果对应数组中保存的目标数量已经有5个,先删除最先保存的目标,再将该新的目标保存到对应的数组中。特别地,对人脸目标进行检测时,如果聚类分析的阈值选得偏小,有可能当前帧存在多个目标均和当前帧图像之前的连续多帧图像的其中一个目标的重合度超过60%,但这多个目标属于同一个人脸,此时则将重合度最大的一个目标保存到对应的数组中。

如果当前帧图像的其中一个目标与当前帧图像之前的连续多帧图像的任何一个目标的重合度都不超过第一阈值,说明该目标是一个新目标,为该目标添加新的识别码,并保存到新的对应数组中。

在实施过程中,根据需要设定比较的当前帧图像之前的连续多帧图像的数量,为了使本发明更加清楚,本实施例以比较当前帧图像之前的连续三帧图像为例来说明。

利用adaboost人脸检测算法获取第一帧图像的多个目标,为所述多个目标分别添加识别码;

保存所述第一帧图像的添加有识别码的多个目标;

利用adaboost人脸检测算法获取第二帧图像的多个目标;

将所述第二帧图像的多个目标分别与第一帧图像的添加有识别码的多个目标作比较;

如果所述第二帧图像的其中一个目标与第一帧图像的其中一个添加有识别码的目标重合度超过第一阈值,为该目标添加与该保存的第一帧图像的目标相同的识别码,保存该添加有相同识别码的目标;

如果所述第二帧图像的其中一个目标与保存的第一帧图像的任何一个添加有识别码的目标重合度都不超过第一阈值,为该目标添加新的识别码,保存该添加有新识别码的目标;

利用adaboost人脸检测算法获取第三帧图像的多个目标;

将所述第三帧图像的多个目标分别与保存的第二帧图像的添加有识别码的多个目标作比较;

如果所述第三帧图像的其中一个目标与保存的第二帧图像的其中一个添加有识别码的目标重合度超过第一阈值,为该目标添加与该保存的第二帧图像的目标相同的识别码,保存该添加有相同识别码的目标;

如果所述第三帧图像的其中一个目标与保存的第二帧图像的任何一个添加有识别码的目标重合度都不超过第一阈值,继续将该目标与保存的第一帧图像的添加有识别码的多个目标作比较;

如果该目标与保存的第一帧图像的其中一个添加有识别码的目标重合度超过第一阈值,为该目标添加与该保存的第一帧图像的目标相同的识别码,保存该添加有相同识别码的目标;

如果该目标与保存的第一帧图像的任何一个添加有识别码的目标重合度都不超过第一阈值,为该目标添加新的识别码,保存该添加有新识别码的目标;

利用adaboost人脸检测算法获取第四帧图像的多个目标;

将所述第四帧图像的多个目标分别与保存的第三帧图像的添加有识别码的多个目标作比较;

如果所述第四帧图像的其中一个目标与保存的第三帧图像的其中一个添加有识别码的目标重合度超过第一阈值,为该目标添加与该保存的第三帧图像的目标相同的识别码,保存该添加有相同识别码的目标;

如果所述第四帧图像的其中一个目标与保存的第三帧图像的任何一个添加有识别码的目标重合度都不超过第一阈值,继续将该目标与保存的第二帧图像的添加有识别码的多个目标作比较;

如果该目标与保存的第二帧图像的其中一个添加有识别码的目标重合度超过第一阈值,为该目标添加与该保存的第二帧图像的目标相同的识别码,保存该添加有相同识别码的目标;

如果该目标与保存的第二帧图像的任何一个添加有识别码的目标重合度都不超过第一阈值,继续将该目标与保存的第一帧图像的添加有识别码的多个目标作比较;

如果该目标与保存的第一帧图像的其中一个添加有识别码的目标重合度超过第一阈值,为该目标添加与该保存的第一帧图像的目标相同的识别码,保存该添加有相同识别码的目标;

如果该目标与保存的第一帧图像的任何一个添加有识别码的目标重合度都不超过第一阈值,为该目标添加新的识别码,保存该添加有新识别码的目标;

利用adaboost人脸检测算法获取第五帧图像的多个目标;

将所述第五帧图像的多个目标分别与保存的第四帧图像的添加有识别码的多个目标作比较;

如果所述第五帧图像的其中一个目标与保存的第四帧图像的其中一个添加有识别码的目标重合度超过第一阈值,为该目标添加与该保存的第四帧图像的目标相同的识别码,保存该添加有相同识别码的目标;

如果所述第五帧图像的其中一个目标与保存的第四帧图像的任何一个添加有识别码的目标重合度都不超过第一阈值,继续将该目标与保存的第三帧图像的添加有识别码的多个目标作比较;

如果该目标与保存的第三帧图像的其中一个添加有识别码的目标重合度超过第一阈值,为该目标添加与该保存的第三帧图像的目标相同的识别码,保存该添加有相同识别码的目标;

如果该目标与保存的第三帧图像的任何一个添加有识别码的目标重合度都不超过第一阈值,继续将该目标与保存的第二帧图像的添加有识别码的多个目标作比较;

如果该目标与保存的第二帧图像的其中一个添加有识别码的目标重合度超过第一阈值,为该目标添加与该保存的第二帧图像的目标相同的识别码,保存该添加有相同识别码的目标;

如果该目标与保存的第二帧图像的任何一个添加有识别码的目标重合度都不超过第一阈值,为该目标添加新的识别码,保存该添加有新识别码的目标;

以此类推,按照相同的方法对后续各帧图像中的目标添加识别码,并保存添加有识别码的目标。

进一步地,如果一个目标在当前帧图像之前的连续多帧图像中都检测到,而在当前帧没有检测到,该目标的存储信息不会被马上清除,只有从当前帧开始,之后的连续多帧都没有检测到该目标,例如连续三帧都没有检测到该目标,才认为该目标消失,此时将该目标的存储信息清除,这样做的目的,可以节省大量内存。

本发明实施例提供的人脸检测方法,利用adaboost人脸检测算法获取第一帧图像的多个目标,为所述多个目标分别添加识别码;保存所述第一帧图像的添加有识别码的多个目标;利用adaboost人脸检测算法依次获取后续各帧图像中每帧图像的多个目标,在每次获取所述后续各帧图像中其中一帧图像的多个目标之后,将该帧图像的多个目标分别与该帧图像之前的连续多帧图像的添加有识别码的目标作比较,根据比较结果为该帧图像的多个目标分别添加识别码,保存该帧图像的添加有识别码的多个目标。与现有技术相比,本发明不需要大量的计算,能够减少计算时间,快速添加目标的识别码,提高了检测效率。

本发明实施例还提供一种人脸检测装置,如图2所示,所述装置包括:

第一获取模块21,用于利用adaboost人脸检测算法获取第一帧图像的多个目标;

第一添加模块22,用于为所述第一获取模块21获取的多个目标分别添加识别码;

第一保存模块23,用于保存所述第一帧图像的添加有识别码的多个目标;

第二获取模块24,用于利用adaboost人脸检测算法依次获取后续各帧图像中每帧图像的多个目标;

第一比较模块25,用于在所述第二获取模块24每次获取所述后续各帧图像中其中一帧图像的多个目标之后,将该帧图像的多个目标分别与该帧图像之前的连续多帧图像的添加有识别码的目标作比较;

第二添加模块26,用于根据所述第一比较模块25的比较结果为该帧图像的多个目标分别添加识别码;

第二保存模块27,用于保存该帧图像的添加有识别码的多个目标。

可选地,所述第一比较模块25,用于将该帧图像的每个目标按照从后向前的顺序依次与该帧图像之前的连续多帧图像中各帧图像的添加有识别码的目标作比较,直至该目标与所述连续多帧图像的其中一个目标的重合度超过第一阈值。

可选地,如图3所示,所述第二添加模块26包括:

第一添加单元261,用于当该帧图像的其中一个目标与该帧图像之前的连续多帧图像的其中一个目标的重合度超过第一阈值时,为该目标添加相同的识别码;

第二添加单元262,用于当该帧图像的其中一个目标与该帧图像之前的连续多帧图像的任何一个目标的重合度都不超过第一阈值时,为该目标添加新的识别码。

本发明实施例提供的人脸检测装置,利用adaboost人脸检测算法获取第一帧图像的多个目标,为所述多个目标分别添加识别码;保存所述第一帧图像的添加有识别码的多个目标;利用adaboost人脸检测算法依次获取后续各帧图像中每帧图像的多个目标,在每次获取所述后续各帧图像中其中一帧图像的多个目标之后,将该帧图像的多个目标分别与该帧图像之前的连续多帧图像的添加有识别码的目标作比较,根据比较结果为该帧图像的多个目标分别添加识别码,保存该帧图像的添加有识别码的多个目标。与现有技术相比,本发明不需要大量的计算,能够减少计算时间,快速添加目标的识别码,提高了检测效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1