对于摄像头采集的彩色图像,包含复杂的背景,需要将人脸检测出来,并把检测出来的人脸进行归一化处理。
采用YCbCr颜色模型。对输入彩色图像进行颜色空间转换,将其从相关性较高的RGB空间转换到颜色分量互不相关的YCbCr颜色空间。转换公式如下式所示:
为了检测场景中的人脸区域,建立一个有效的肤色模型是非常重要的。统计方法是一种常用的工具,在此用一个随机变量表示像素值的变化。该随机变量的概率密度函数具有特定的统计分布形式,其参数通过训练数据来估计。为了得到这个统计分布,在30s内取1000帧图像对人脸面部肤色的某一像素值进行观察。从实验中发现,人的肤色在色度空间的分布符合二维高斯分布N(μ,δo),其中均值μ=E{χ},χ=(Cr,Cb)T;假设Cr,Cb颜色分量相互统计独立,则协方差δ=E{(x-μ)(x-μ)T}。根据肤色在色度空间的高斯分布,对于图像上任意一点从RGB颜色空间变换到YCbCr颜色空间,从而得到该点属于肤色区域的概率如下式所示:
P(Cr,Cb)=exp[-(x-u)Tδ-1(x-u)/2]
(2π)3/2|δ|1/2 (8-2)
在实验中,属于肤色的Cr、Cb颜色分量的均值取μ=(117.4361,156.5599)T,协方差δ如下式所示:
通过肤色模型,将一副彩色图像转变为灰度图像,灰度值对应于该点属于皮肤区域的程度。然后,采用动态平均阈值法对图像进行二值化处理,结合水平灰度投影和垂直灰度投影,找到人脸区域的上下边界,对人脸进行标记。(www.daowen.com)
为方便对视频进行处理,定义了一个处理视频像素的结构体,其定义如下。
视频数据是按BGR顺序在缓存中排列,利用capGetVideoFormatSize(hWnd)得到图像大小,利用capGetVideoFormat(hWnd,&bmi,dwFormatSize)获取图像格式,定义一个视频像素的指针指向视频数据PixelRGB∗pRGB=(PixelRGB∗)(lpVHdr->lpData)。这样就可以对数据进行处理了。
机器人实验系统利用肤色模型成功地进行了人脸检测,人脸检测结果如图8-18所示。其中图8-19a为标志后的人脸,图8-19b为预处理后的人脸。
图8-19 人脸检测结果
a)标志后的人脸 b)预处理后的人脸
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。