1 引言
人脸检测是指在输入图像中确定人脸的有无、位置、大小、姿态的过 程。人脸检测作为人脸信息处理中的一项关键技术,由于其在安全访问控制、视觉监测、基于内容的检索和新一代人机界面等领域广阔的应用前景,近年来成为模式识别与计算机视觉领域内一项受到普遍重视,研究十分活跃的课题。铁路运输始终把安全放在首要地位,而机车司机的工作状态直接影响着运输的安全。本文设计了 一套实用的机车司机工作状态监控系统。
本系统首先通过摄像机和图像采集卡将视频压缩为mpeg-4格式储存到硬盘以备查询,同时每隔1s采集一帧 图像。进行处理。通过检测图像的亮度变化并辅以系统时间,判断是白天还是夜晚。对白天和晚上图像进行不同的处理。整个系统分为:图像采集、肤色建模、人脸 检测、双眼模版检测几个部分,系统硬件包括:日夜转换型摄像机、德加拉ave7200图像采集卡、pc机。软件程序是用vc6.0编写的基于对话框程序。 系统框图如图1所示。

图1 系统框图
2 图像采集
2.1 图像采集
图像采集通过日夜转换型摄 像机和图像采集卡来完成。利用采集卡附带的软件开发工具包api函数(应用程序调用系统功能的接口)实现图像的预览与采集,同时还将视频流存储到硬盘供查询。每隔1s提取一幅图像进行处理。
2.2 图像预处理
由于转换器件及周 围环境影响,通过摄像头和采集卡获得人脸图像产生干扰和失真,肤色信息受影响。所以必须去除干扰,校正失真。这就是图像预处理,他主要包括两部分内容:
(1) 光线补偿。光线补偿的思路:把图片中亮度最大的5%的像素提取出来,然后线性放大,使得这些像素的平均亮度达到255。根据求得的系数把整个图片的亮度进 行线性放大。
(2) 中值滤波。中值滤波对脉冲干扰及椒盐噪声有较好的抑制效果,且在抑制随机噪声的同时能保持边沿少受模糊。本文采用3×3中值滤波。
3 皮肤建模
为了从图像中分割出皮肤区域,需要一个可靠的适用于不同肤色人 群和不同亮度环境的皮肤颜色模型。rgb颜色空间不适合表现肤色特性。由于(r,g,b)3个分量不仅表征颜色还体现亮度,因此在肤色分割时,光线变化引 起的亮度变化无法可靠测量肤色特性。在色度颜色空间中亮度可以从色彩表征中去除。通过如下的标准化处理解决这个问题。
r=r/(r+g+b)
b=b/(r+g+b) (1)
研究发现在色度颜色空间中不同人群肤色的颜色都聚集在一个较小的区域。不同人的肤色在一个较宽的区域变化,但这种颜色上的差别远比亮度的 差别小的多。所以可以在色度空间中建立肤色模型。不同人的肤色分布在色度空间是聚合的,因此可以用高斯模型n(m,c)进行数据拟合描述皮肤颜色,参数如下:
(2)
通过这种高斯拟合获得皮肤颜色模型,进而得到图像中每个像素是肤色 像素点的概率。像素的肤色概率由以下公式得到
(3)
图像采集卡抓取的rgb颜色空间的24位彩色图像通过肤色模型和皮肤概率公式转换为灰度级的皮肤概率图像,每个像素点的灰度值表示该点为肤色的概率。图2为输入图像,图3为肤色概率图像。

图2 输入图像

图3 肤色概率图像
从皮肤概率图像可以看出皮肤区域与非肤色区域的明显差别,要标定人脸,首先对皮肤概率图像进行二值化处理。本文 采用自适应阈值的区域增长算法,在每次分割的时候使用的都是最优阈值,自适应阈值是通过逐步计算得到的,递进的使阈值减小使分割区域增大。但每次增长的变化量是逐渐减小的。使区域增长最小的阈值就是最优结果。通过自适应阈值分割,把肤色概率图像变换为二值图像,肤色点为1,其他像素点为0。实现了一个皮肤 分类器。图4为二值化以后的图像。

图4 二值化图像
确定人脸区域所采用的方法是在二值图像中,统计每一列像素为1的个数,找到最大值maxcount,并记录该列的 序号j,然后从j列开始逐渐减小列的序号,直到有一列的为1像素点的个数小于0.3倍的max count,该列即位人脸区域的左边界,如果直到列号减为0仍不满足条件,则人脸区域左边界为图像的左边界。同理,从j列开始逐渐增加列的序号,可以找到人脸区域的右边界。在人脸区域的左右边界间,从图像第一行开始统计值为1的像素点的个数,大于0.5倍左右边界差值的行即为人脸区域的上边界,根据人脸的 长宽比例,我们取长为宽的1.0倍,这样可以确定下边界,从而确定了整个人脸区域,如图5所示。标定人脸区域时,在四个方向均放大一定比例,以便将耳朵和 头发包括在内。在系统实际运行时,因为司机距离摄像头的位置大致固定,人脸的区域不会太大或太小,超出区域即认为图像中没有人脸(司机不在座位)。

图5 标定人脸区域
4 双眼模板匹配
基于模板匹配的方法是在图像灰度的层次上直接比较 目标模板和候选图像区域之间的相似性。在已经确定的人脸区域上运用双眼模板来判断司机的工作状态。模板是通过对多个样本取平均构造出来的。首先在选取的样本图像上手工划出双眼的区域作为双眼的样本。由于各个样本的灰度分布各不相同,进行灰度分布标准化后作为双眼模板。考虑表征图像灰度分布的两个参量——灰 度的均值和方差,将它们调整到给定值,消除图像采集时光照的影响。
将图像看作二维矩阵d[w][h],w和h分别为图像的宽度和高度,则均值和方 差表示如下:
(4)
对于输入的样本图像,为了将其灰度均值和方差变换到给定的灰度平均 值μo和方差σo,对每一个像素点的灰度值进行如下变换:
(5)
假设双眼模板的灰度矩阵为t[m][n],灰度均值为μt,均方差 为σt,人脸区域的灰度矩阵为r[m][n],灰度均值为μr,均方差为σr,它们之间的相关系数r(t,r)和对应像素灰度值的平均偏差d(t,r)如 下所示:
(6)
(7)
r(t,r)越大表示模板与输入图像区域的匹配程度越 高,d(t,r)则相反。二者综合起来作为匹配程度的度量:
(8)
为权重系数,为了使前后两部分的量值相当,根据实验数据取35。在人 脸区域用模板进行匹配,计算d(t,r)的最大值,假设模板大小为m×n,人脸区域大小为s×k。则需要进行(s-m+1)×(k-n+1)次运算。根据 实验设定一个阈值,如果d(t,r)大于阈值,则说明人眼是睁开的,反之,则是闭合的(司机没有正视前方)。
5 夜间图像处理
对夜间图像,由于行车时驾驶室无光源,仅有各仪表盘的微弱 光线,摄像头自身进行光线补偿,采集到的图像自动变为灰度图像,这种灰度图像与真实情况失真很大,无法进行人脸检测。机车驾驶室背景比较单一,本系统采用的方法是对图像先进行滤波,然后每一帧图像与其前一帧进行差分处理。通过大量实验观察,选定一个阈值,统计大于阈值的像素点的个数。通过这个数值判断司机 是否在操作。
6 结束语
本文提出并设计了一个司机工作状态检测的实验系统。该系统在白天 采用肤色模型检测人脸,用双眼模板判断工作状态,在夜间采用差分图像进行检测。得到现场实际运行稳定误报率低的实验结果。




