基于特征提取的人脸检测与定位技术内容摘要:

和 JPEG 等标准中普遍采用的颜色表示。 (3) YCbCr 的计算过程和空间坐标表示形式简单,与 RGB 之间的转换为线性,容易实现,避免了非线性的奇异性。 (4) YCbCr 颜色空间是离散的,采用 YCbCr 颜色空间易于实现聚类算法。 (5) Anil 等人绘制了 853571 个肤色点的统计图像,其结果表明,肤色在 YCbCr颜色空间的泪俱效果较好。 一般情况下,颜色图像都是 RGB 颜色空间的,其他颜色空间都是通过 RGB 转换得到的,而 YCbCr 也是如此。 由于是线性转换关系,其中的亮度分量 Y 并不是完全独立于色度信息存在的,而 Anil 等人的实验也表明,肤色的聚类区域因为亮度分量的关系而呈现非线性变化的情况,而且在 YCbCr 颜色空间中,肤色聚类成两头尖的椭球形。 因此单纯的排除亮度分量 Y 的影响,可能会导致选取的肤色区域不够准确 ,降低其鲁棒性。 所以,在肤色检测之前,要先对图像进行分段线性颜色变换。 由 YCbCr 到 YCb’Cr’如式 313 所示。 Ci′(Y){Ci(Y) −Ci(Y)̅̅̅̅̅̅̅ ∙ WciWCi(Y) +Ci(Y)̅̅̅̅̅̅̅,if(Y Ki)or(Kh 𝑌)Ci(Y) ,if(Y ∈ ,Ki,Kh) 331 其中, i 表示 b 或 r,WCb = , WCr = , Ki和 Kh为常量分别为 125 和 188, Ci(Y)为聚类两头尖的椭球形的中轴线处的值,实际上是 Cb、 Cr 两个分量随 Y 变化的聚类中心线处的值。 RGB 颜色空间到 YCbCr 颜色空间的映射 人类的肤色在 YCbCr 颜色空间相对比较集中(被称为肤色的聚类特性),因此选用在YCbCr 颜色空间中进行人脸检测,需完成 RGB 颜色空间到 YCbCr 颜色空间的映射。 在你从 RGB 到 YCbCr 的转换过程中,输入、输出数据都是 8 位二进制格式。 转换公式如下: Y = + + Cb = − − + + 128 314 Cr = − − + 128 式中, R、 G、 B 是 RGB 颜色空间中红、绿、蓝 3 种颜色通道的颜色值。 YCbCr 颜色空间中, Y 的范围为 16 ~ 235, Cb 和 Cr 的范围为 16 ~ 240。 但是,由于Y 和 Cb、 Cr 可能偶然超出 16 ~ 235 和 16 ~ 240 范围(视频处理和噪声的缘故),根据以上公式可知,此时 RGB 的值可能偏移到 0 ~ 15 和 236 ~ 255 范围内。 计算机系统中的 RGB 数值范围为 0 ~ 255,因此,使用以下的方程式会更加方便: Y = + + +16 Cb = − − + +128 Cr = − − +128 肤色模型 选好颜色空间后,接下来就是在此颜色空间中进行肤色建模。 所谓肤色模型是指用一种代数的、解析的或查找表等形式来表示肤色的聚类特性,或者表征出某一像素的颜色与肤色的相似程度。 常用的肤色模型、椭圆模型和高斯模型。 直方图模型 直方图模型是一种非参数化模型。 此模型通过选定的颜色空间对肤色进行统计得出其各颜色分量直方图 ,由直方图显现出的规律选定阈值,通过该阈值来对整个图像进行肤色与非肤色的判别。 尽管此模型在三维直方图中效果比较好,但是由于其训练样本数量庞大而且训练时间较长。 因此,在肤色建模中较少使用。 椭圆模型 肤色在 CbCr 空间中也可以用椭圆分布来描述,根据式()和式()来匹配椭圆分布两个色度分量的距离。 (x−ex)2a2 + (y−ecy)2(b)2 = 1 (3221) 0xy1 = 0 cosθ sinθ−sinθ cosθ1*Cb′−cxCr′ −cy+ (3222) 其中, ecx和 ecy分别为 Cb 和 Cr 的统计均值。 式中 的参数 ecx=, ecy=, a=,b=, cx = , cy = , θ =。 高斯模型 高斯模型主要是利用了统计学的原理。 肤色符合正态分布的随机样本,在特征空间中的分布则复合高斯分布,高斯函数平面图如图 323 所示。 高斯分布的数学表达形式简单且直观,又是统计学中研究比较深入的一种正态模型,因此借助此模型具有一定的优越性。 它主要通过统计分析,预测高斯分布的参数,或通过统计直接求得颜色空间中每个分量(一般利用的是该颜色空间中的色度分量)的均值与协方差。 这种方法分为两步:首先选择方法确定模型的参数(即均值和协方差),其次利用该模型来判别新的像素或区域是否为肤色。 图 323 肤色模型 光线补偿 光线补偿的想法的提出主要是考虑到肤色等色彩信息经常受到光源颜色 、图像采集设备的色彩偏差等因素的影响,而在整体上偏离本质色彩而向某一方向移动,即我们通常所说的色彩偏冷、偏暖,照片偏黄、偏蓝等等。 这种现象在艺术照片中更为常见。 我们采用 Gary World 算法对 RGB 图像进行快速颜色补偿,即: SC = CstdCave, Cnew = C ∗ SC 331 式中, Cstd为标准亮度图像 R、 G、 B 的平均值; Cave为输入图像 R、 G、 B 的平均值;C 为原图像的像素值; Cnew为亮度补偿后的像素值。 肤色模型 不同种族、不同年龄、不同性别的人肤色看起来存在差异,但这个差异主要体现在亮度上。 当去除亮度,肤色就具有很高的聚类性。 在 RGB 颜色空间,为了去除光照影响,人脸肤色需进行亮度归一化。 归一化的颜色分量分别为 r, g, b。 r = RR+G+B, g = GR+G+B, b = BR+G+B 332 式中, r、 g、 b 分别来自于 R、 G、 B,相互独立 且 r+g+b=1。 由于这种归一仅去除了 R、 G、B 中的相对亮度成分 R+G+B,而 r、 g、 b 仍存在亮度信息,所以这种方法用于肤色检测效果不好。 在 YCbCr 色彩空间,归一化色度直方图后假定肤色满足二维高斯模型 M=(m,C),其中m为均值, m=E(x), x=(Cb,Cr)T, C 为协方差矩阵, C=E[(xm)(xm)],通过这个肤色模型检测任意一个像素是否为肤色的概率为 P(Cb,Cr) = exp,−(x−m)TC−1(x −m) 332 已经证明,这个模型能很好的区分出人脸和非人脸。 中值滤波 中值滤波是抑制噪声的一种非线性平滑处理方法,由 首次提出并将其应用于时间序列的一维信号处理技术中,后来人们将其用于二维数字图像处理中。 中值滤波也是一种邻域运算,但不是简单的以待处理像素点 (i,j)的 8 个相邻像素的灰度均值来取代该点的灰度,对于给定的 n 个像素( n 为奇数)的灰度值 {a1, a2, …, an},将其按大小进行排序,利用排在中间的灰度值来取代待处理像素点的原始灰度,其实质上是用与相邻像素接近的灰度值来取代 与相邻像素相差较大的灰度,按此操作辨理图像,即可得到平滑后的图像。 阵列 ,x(i ,j)MN经过窗口为 Mn的中值滤波后,待处理像素点 (i ,j)的响应输出为 f(i,j) = medMn(i,j),x(i,j) 333 式中, Mn表示待处理点的邻域模板,窗口模板可以是正方形或十字形的,分别如图3331 和图 3332 1 1 1 1 1 1 1 1 1 图 3331 图 3332 肤色相似度计算 为了方便在后续处理中利用图像像素的邻域信息 ,我们首先将像素从彩色空间变到一维空间。 根据肤色在色度空间中的高斯分布,对于彩色图像中的每个像素点,将其从 RGB色彩空间变换到 YCgCr 色彩空间后,就可以计算该点属于皮肤区域的概率,即根据该点距离高斯分布中心的远近的到其与肤色的相似度,即 P(Cg,Cr) = exp,−(x− M)TC−1(x− M) 34 0 1 0 1 1 1 0 1 0 对一幅图像中的每个像素点计算完毕后,我们统计出该幅图像上所有像素点的最大肤色相似度 Pmax(CG,CR),并将每个像素点的肤色相似度 P(Cg,Cr)除以该图像中的最大肤色相似度 Pmax(CG,CR),即可将各个像素的肤色相似度值归一到 [0,1]之间。 该值越大,表示 属于肤色的可能性也越大,反之越小。 为了显示各像素属于肤色的相似程度,我们将各像素的肤色相似度值乘以 255,然后取整,将其变换到 [0,255]之间,即在相似度值的基础上把一幅彩色图像转换为一幅肤色相似度灰度图像。 该转换仅仅是为了显示相似度效果而做的转换。 人脸肤色相似度算法流程 对人脸肤色相似度计算,一般需要经过以下几个步骤: (a) 首先利用如下公式: Y = + + +16 Cb = − − + +128 Cr = −− +128 将人脸图像从 RGB 颜色空间映射到 YCbCr 颜色空间, (b) 建立肤色模型,具体代码如下: Cb_Mean=。 Cr_Mean=。 Cov00=。 Cov10=。 Cov11=。 (c) 肤色相似度矩阵的计算,得到 m_pSimArray[i][j]的值; (d) 对所得到的 m_pSimArray[i][j]进行中值滤波; (e) 用相似度矩阵中的最大值对相似度矩阵进行归一化处理。 人脸肤色相似度算法流程图 如图 35 所示。 图 35 人脸相似度算法实现结果 对 36a 建立人脸肤色模型,进行人脸相似度计算处理后,得到结果如图 36b 图 36a 图 36b 初始化 获取图像参数 将图像从 RGB色彩空间映射到 YCbCr 色彩空间 建立肤色模型 利用肤色模型,求相似度矩阵 中值滤波 用相似度矩阵中的最大值对相似度矩阵进行归一 结束 为了更清晰的显示人脸和非人脸区域,还要对相似度图进行二值化处理。 图像的二值化,就是将图像上的像素点的灰度值设置为 0 或 255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。 最常用的方法就是设定一个全局阈值 T,用 T 将图像的数据分成两部分 :大于 T 的 像素群 和小于 T 的像素群。 将大于。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。