发明名称 基于高斯肤色模型和特征分析的人脸检测与跟踪方法
摘要 本发明是一种基于高斯肤色模型和特征分析的人脸检测与跟踪方法,步骤如下:首先,对大量人脸图像数据进行统计,在YCbCr色彩空间中建立高斯肤色模型;然后,将视频图像序列由RGB空间转换至YCbCr空间,利用高斯模型计算出肤色似然图,选取自适应阈值进行肤色分割,在此基础上利用人脸几何特征和结构特征实现人脸精确检测;最后,采用改进CAMShift算法进行人脸跟踪,实现视频中的人脸快速检测。本发明的人脸检测与跟踪方法在识别精度、跟踪速度和鲁棒性上具有明显的优势,并且能够有效地解决视频中人脸姿态变化,距离变化以及背景存在类肤色干扰等复杂条件下的人脸跟踪问题。
申请公布号 CN102324025B 申请公布日期 2013.03.20
申请号 CN201110261500.7 申请日期 2011.09.06
申请人 北京航空航天大学 发明人 祝世平;张楠
分类号 G06K9/00(2006.01)I;G06T7/20(2006.01)I;G06T5/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 许玉明;顾炜
主权项 一种基于高斯肤色模型和特征分析的人脸检测与跟踪方法,其特征在于如下步骤:(1)图像肤色分割:通过对人脸图像数据的统计结果在YCbCr空间建立高斯肤色模型;将获得的视频序列图像由RGB色彩空间转换到YCbCr空间,代入高斯模型计算肤色似然度,得到似然度图像;选取自适应阈值对似然度图像进行分割,得到肤色区域;对包含肤色区域的图像进行闭运算,去除散粒噪声;(2)人脸特征检测:分别利用人脸几何特征和人脸结构特征对闭运算后的肤色区域结果进行检验,通过整合两部分的结果对非人脸区域进行排除;提取图像中保留的肤色区域,获得人脸目标检测结果;(3)人脸目标跟踪:根据先验人脸检测结果数据,利用最小二乘法对搜索窗口进行预测;通过CAMShift迭代算法调节搜索窗口与人脸区域重合;所述步骤(2)中的人脸特征检测,包括对肤色区域分别进行人脸几何特征检测与人脸结构特征检测,通过整合两部分的结果对非人脸区域进行排除,具体步骤如下:所述人脸几何特征检测步骤为:(2.i.a)肤色区域面积检测:若目标区域面积Sa小于视场范围10%或超过视场范围的80%,判断其为非人脸区域;(2.i.b)肤色区域形状检测:若目标区域的外接矩形高宽之比Ra小于0.8或超过2.5,判断其为非人脸区域;(2.i.c)肤色区域密集度检测:若目标区域的密集度Ca小于45%,判断其为非人脸区域;所述人脸结构特征检测步骤为:(2.ii.a)双眼中心距范围检测:双眼中心距应在1/3至2/3目标区域水平尺寸范围内;(2.ii.b)双眼周围黑块检测:双眼下方一定距离内没有其它器官,因此在似然度图像中不能有其它黑块;(2.ii.c)双眼水平位置关系检测:双眼中心位置在垂直方向相差不超过20%目标区域竖直尺寸;(2.ii.d)眼睛区域面积检测:眼睛部分的黑色区域所包含的像素数应在5%至10%目标区域面积范围内;(2.ii.e)眼睛形状检测:眼睛区域的外接矩形高宽比应在1.5至2.5之间;(2.iii)人脸几何特征与结构特征检测结果整合:整合两部分结果的目的是判断候选肤色区域是否为人脸区域,以几何特征为主要判断准则,结构特征为辅助判断准则;当候选区域不满足几何特征时,判断其为非人脸区域;结构特征以识别双眼为前提,当候选区域中识别出类似双眼结构时,若不满足结构特征,则判断为非人脸区域,当候选区域不包含双眼结构时,只通过几何特征进行判断;所述步骤(3)的人脸目标跟踪中,利用最小二乘法对搜索窗口进行预测,具体步骤如下:(3.i)初始化搜索窗;(3.i.a)默认搜索窗口位置为视场中心,大小为50%视场范围:(3.i.b)当获得人脸位置先验结果数据之后,采用基于最小二乘拟合法对搜索窗口进行预测,将前十帧图像检测结果代入如下公式: <mrow> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msub> <mi>y</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>&times;</mo> <msup> <mi>k</mi> <mn>3</mn> </msup> <mo>+</mo> <msub> <mi>a</mi> <mn>2</mn> </msub> <mo>&times;</mo> <msup> <mi>k</mi> <mn>2</mn> </msup> <mo>+</mo> <msub> <mi>a</mi> <mn>3</mn> </msub> <mo>&times;</mo> <mi>k</mi> <mo>+</mo> <msub> <mi>a</mi> <mn>4</mn> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>x</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>b</mi> <mn>1</mn> </msub> <mo>&times;</mo> <msup> <mi>k</mi> <mn>3</mn> </msup> <mo>+</mo> <msub> <mi>b</mi> <mn>2</mn> </msub> <mo>&times;</mo> <msup> <mi>k</mi> <mn>2</mn> </msup> <mo>+</mo> <msub> <mi>b</mi> <mn>3</mn> </msub> <mo>&times;</mo> <mi>k</mi> <mo>+</mo> <msub> <mi>b</mi> <mn>4</mn> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> <mrow> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <msub> <mi>y</mi> <mn>11</mn> </msub> <mo>=</mo> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>&times;</mo> <msup> <mn>11</mn> <mn>3</mn> </msup> <mo>+</mo> <msub> <mi>a</mi> <mn>2</mn> </msub> <mo>&times;</mo> <msup> <mn>11</mn> <mn>2</mn> </msup> <mo>+</mo> <msub> <mi>a</mi> <mn>3</mn> </msub> <mo>&times;</mo> <mn>11</mn> <mo>+</mo> <msub> <mi>a</mi> <mn>4</mn> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>x</mi> <mn>11</mn> </msub> <mo>=</mo> <msub> <mi>b</mi> <mn>1</mn> </msub> <mo>&times;</mo> <msup> <mn>11</mn> <mn>3</mn> </msup> <mo>+</mo> <msub> <mi>b</mi> <mn>2</mn> </msub> <mo>&times;</mo> <msup> <mn>11</mn> <mn>2</mn> </msup> <mo>+</mo> <msub> <mi>b</mi> <mn>3</mn> </msub> <mo>&times;</mo> <mn>11</mn> <mo>+</mo> <msub> <mi>b</mi> <mn>4</mn> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow> <mrow> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mi>w</mi> <mo>=</mo> <mn>3</mn> <mo>&times;</mo> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>&times;</mo> <msup> <mn>10</mn> <mn>2</mn> </msup> <mo>+</mo> <mn>2</mn> <mo>&times;</mo> <msub> <mi>a</mi> <mn>2</mn> </msub> <mo>&times;</mo> <mn>10</mn> <mo>+</mo> <msub> <mi>a</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>w</mi> <mn>0</mn> </msub> </mtd> </mtr> <mtr> <mtd> <mi>h</mi> <mo>=</mo> <mn>1.2</mn> <mo>&times;</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>&times;</mo> <msub> <mi>b</mi> <mn>1</mn> </msub> <mo>&times;</mo> <msup> <mn>10</mn> <mn>2</mn> </msup> <mo>+</mo> <mn>2</mn> <mo>&times;</mo> <msub> <mi>b</mi> <mn>2</mn> </msub> <mo>&times;</mo> <mn>10</mn> <mo>+</mo> <msub> <mi>b</mi> <mn>3</mn> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>h</mi> <mn>0</mn> </msub> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>公式(1)为最小二乘拟合曲线方程,k=1,2,3...,10,(xk,yk)为先验人脸坐标值,a1‑a4、b1‑b4是最小二乘法得到拟合方程的参数值,公式(2)中(x11,y11)为利用拟合方程系数对检测窗口位置预测的结果,公式(3)为窗口大小预测结果,w为窗口宽度,h为窗口高度,w0、h0为窗口尺寸的最小值,其中w0=10,h0=20,图像为640×480像素;(3.ii)计算搜索窗的质心;(3.iii)移动搜索窗,使窗的中心与质心重合;(3.iv)重复(3.ii)和(3.iii),直到收敛或窗某次的移动距离小于预设阈值,保存此时的零阶矩和质心值;(3.v)读入视频的下一帧图像,跳转至(3.i.b)继续执行检测。
地址 100191 北京市海淀区学院路37号