前言:今天在电脑压箱底的位置竟然找到了当年大学毕业的毕业设计,当时做的是一个安全检测系统,其中有一个模块是人脸识别,从中摘出来三张图片和大家分享,时间已久,下面全是即兴书写,如有bug,敬请百度,谢谢~~~
动态人脸识别顾名思义,就是运动中人脸的识别。我不用开源视觉库OPENCV,因为OPENCV中的人脸识别相当耗时,如果在某些嵌入式系统中,显然运行不流畅。
其实还有其他的简单的方法可供使用,本文暂不考虑背景运动,假定背景是静态的。
看到运动一词,我第一反应时使用————帧间差分,何为帧间差分,请自行百度。图像相邻两帧经过灰度,二值化,帧间差分后轮廓明显、清晰,这有利于我们进行下一步的图像处理。目前处理结果如下图(a).
经帧间差分后,进行2D直方图投影后,可以很明显的看到,直方图的分布规律,直方图的优点,处理简单,特征明显,而且人脸轮廓分布规律清晰可辨。见下图(b)。
对直方图进行分布统计后,初步得到如下图(C)中的矩形区域,这个就是粗略的人脸区域。
经过上面的简单处理,虽然人脸区域已经初现端倪,但是这个区域波动性很大,准确性不高,不适合进行人脸识别。因为2D直方图的投影还有许多噪声,这影响了我们的分布统计结果,从而得到了又较大误差的人脸区域,如何削弱或者去掉噪声呢?
由于噪声点都是比较分散、细小的,所以我们选择图像形态学处理进行图像处理。何为图像形态学处理,老规矩,自己百度去。下面是进行形态学处理后的2D直方图效果,可以明显看出经过形态学处理的图像,噪声明显减少,人脸区域识别准确性大大提高。。。其中形态学处理占用的处理时间较其他图像识别处理方法少,特别适合在嵌入式系统中使用。
下面进行基本图像处理和形态学处理对人脸识别准确性对比:太明显了吧,左边误差嗖嗖的大,右边误差嗖嗖的小。
以上仅供大家参考,方法简单,但不失风韵。如有bug,请百度自纠之。。谢谢~~~~~