技术背景
基于计算机视觉的人眼检测跟踪技术,已经在表情识别,疲劳驾驶检测等方面得到应用。
为了满足各种应用条件,基于计算机视觉的人眼检测跟踪技术主要要解决以下问题:
1.实时性:有些特殊的应用环境,比如疲劳驾驶检测,算法需要实时跟踪人眼睑轮廓,并在第一时间检测出结果,采取一定的措施,以提醒驾驶员。
2.准确性:人的眼睛形态各异,而且需要检测不同闭合程度下人眼,这就需要算法的精度达到一定的要求,眼睛轮廓的匹配需要十分精准。
3.检测环境复杂:由于天气光照等的原因,检测环境的光照环境会变得很复杂,强光、阴影等干扰严重。这就要求我们的算法具有一定的光照鲁棒性,适应复杂光照的检测。
在人眼跟踪检测方面,前人做了很多的工作。主要的有以下的几种:
1.基于Mean-shift的人眼跟踪算法。
2.基于模板匹配的检测算法,在眼睛图像区域使用矩形特征模版对眼睛图像进行分析,获取上眼睑线;根据上眼睑线的曲率或曲率表征值判断眼睛的闭合状态。此方法只是单一的根据上眼睑的曲率判断闭合程度,准确率并不高。
3.基于ASM的跟踪算法,ASM(Active Shape Models)是基于几何形状信息的方法之一,由Cootes等于1992年提出。通过算法模板的训练和匹配,可实时跟踪眼睑重要特征点,根据特征点的位置信息,就可以计算出眼睛的各种闭合状态。它采用点分布模型(Point Distribution Model,PDM)描述形状变化。在点分布模型中,外形相似的特定类物体(比如人眼)的形状通过若干关键的特征点(Landmarks)的坐标串接成原始形状向量,对训练集中的所有形状向量进行对齐操作后,对他们进行PCA分析建模,保留的主成分形成最终的形状模型,形状模型的参数反映了形状的主要可变化模式。此外,ASM计算各特征点法线方向上灰度值的一阶偏导,以建立局部纹理模型。搜索时通过纹理模型得到当前点的最佳匹配位置,然后调节形状模型,并以形状进行约束再进行局部纹理模型的匹配,形成一个迭代过程,最终达到对输入模式的精确定位。由于匹配准则的问题ASM容易陷入局部极小点,对于初始位置要求比较高。
发明内容
本发明所要解决的技术问题是,提供一种具有更高匹配准确率的人眼轮廓跟踪方法。
本发明为解决上述技术问题所采样的技术方案是,一种基于局部纹理AAM的人眼轮廓跟踪方法,其特征在于,包括以下步骤:
1)模型建立步骤:
1-1)对训练集中的人眼图片进行人工标定特征点位置,再建立形状模型和纹理模型合成AAM主动表观模型;
1-2)对每个特征点建立局部纹理模型:
对与第j个特征点,N幅训练集中的人眼图片的平均局部纹理信息为:
其中,Jij为第i幅图像的第j个特征点的复矢量;对于一幅图像的一个特征点,取以特征点为中心的局部区域,对局部区域的每一个像素点的像素值与伽柏Gabor核函数进行卷积得到一个向量Jet,将局部区域的每一个像素点的向量Jet连成一个复矢量;
2-1)初始化目标位姿参数、迭代次数t=0及表观模型参数ct,
2-2)计算当前输入图像的纹理与训练集的模型纹理之差δg;
2-3)更新表观模型参数ct'=ct-kδc,k为调节系数,δc为表观参数,并计算新的模型参数ct'下当前输入图像的纹理与训练集的模型纹理之差δg';
2-4)判断是否满足δg'<δg,如是,则保留当前参数模型ct=ct',并进入步骤5),如否,则转回到步骤3)通过改变调节系数k来调整表观模型;
2-5)更新迭代次数t=t+1,判断当前输入图像的纹理与训练集的模型纹理之差δg'是否小于第一阈值或者迭代次数超过预定次数,如是,得到最终表观模型参数c,c=ct,进入第二次匹配步骤3),否则转回步骤2-3);
3)第二次匹配步骤:
3-1)对于输入图像中每个特征点,计算以各特征点为中心的局部区域的顶点及边中心点的局部纹理特征,以局部区域内像素点的局部纹理特征与训练集的平均纹理距离最近的像素点为新的特征点;输入图像中每个特征点更新完毕后,根据新的特征点坐标调整形状模型;
3-2)计算调整后的形状模型与调整前的形状模型之差δs,如果δs小于第二阈值或超过迭代次数,则匹配完成,确定当前输入图像特征点位置;否则,返回步骤3-1)继续迭代。
本发明是在AAM中引入ASM的局部特征模型,先用现有AAM进行粗匹配,在模型与目标大致匹配的情况下利用局部纹理模型对特征点精确匹配,这里局部纹理特征采用的是 Gabor特征,Gabor核函数可以根据用户眼睑的特征(弧度等)选取,训练出来的模型针对用户更加有效。
本发明的有益效果是,在保障整体匹配准确的情况下,极大改善特征点处的匹配精度,使得人眼轮廓匹配更加准确,可以为各种应用,如疲劳驾驶等提供准确的人眼轮廓信息。
具体实施方式
为了方便地描述实施例内容,首先对现有术语进行说明。
AAM主动表观模型:AAM(Active Appearance Models)是ASM的基础上的改进。针对ASM容易陷入局部极小的问题,在ASM原有的基础上加入了全局纹理约束,并舍弃了特征点局部纹理匹配。AAM对控制点组成的连续闭合曲线建立形状模型,并对其内的纹理信息(一般是像素亮度)建立纹理模型,最后将两者合并为表观模型。模型匹配时用一个能量函数作为匹配度的评价函数,首先将模型设定在目标对象预估位置的周围,再通过不断迭代使能量函数最小化,当内外能量达到平衡时即得到目标对象的边界与特征。AAM尽管利用了全局纹理,但却抛弃了局部纹理匹配过程,因此会在一定程度上降低关键特征点配准的精度,而且其线性预测模型也有较大的局限性,在初始位置偏离目标位置过大时,则很难收敛到正确位置。
Gabor函数:二维Gabor函数guv(x,y)为
其中,v的取值决定了Gabor滤波的波长,u的取值表示Gabor核函数的方向,K表示总的方向数。参数k、σ决定高斯窗口的大小,这里取当v和u取不同值时可构造不同的核函数。当图像的纹理尺寸和方向与核函数的接近时,滤波后图像的能量最大。
PCA主成分分析:主成分分析(Principal Component Analysis,PCA)或者主元分析。它是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。主要做法是求得一个特征的投影矩阵,这个投影矩阵可以将特征从高维降到低维。投影矩阵也可以叫做变换矩阵。新的低维特征必须每个维都正交,特征向量都是正交的。通过求样本矩阵的协方差矩阵,然后求出协方差矩阵的特征向量和特征 值,将这些特征值从大到小排列,通过要保留的能量选取前几个特征值,而相对于这些特征值的特征向量就可以构成这个投影矩阵了。
仿射变换:在几何上定义为两个向量空间之间的一个仿射变换或者仿射映射由一个线性变换接上一个平移组成。二维仿射变换是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直性”(即变换后直线还是直线不会打弯,圆弧还是圆弧)和“平行性”。常用的仿射变换:旋转、倾斜、平移、缩放,其实是指保二维图形间的相对位置关系不变,平行线还是平行线,而直线上点的位置顺序不变,另特别注意向量间夹角可能会发生变化。仿射变换可以通过一系列的原子变换的复合来实现,包括:平移、缩放、翻转、旋转和错切等。
实施例为实现人眼轮廓的精确跟踪,如图1所示包括下列步骤:
步骤一、模型的建立
对标准的人眼图片,进行人工标点,分别建立形状和纹理模型,合成建立表观模型,同时对每个标点建立局部纹理模型。具体步骤如下:
步骤1-1:图像采集及标点。采集一组应用用户不同闭合程度的眼睛图片,左眼右眼分别采集m张(一般十到二十张),图片应包括从闭合到睁开的各种状态。每张人眼图片人工标n个特征点(Landmarks),特征点应标在纹理特征明显的地方,如眼角眼睑及眉毛等。注意标点的原则是使得匹配准确,所以优选的标在特征变化明显的地方,如眼角及眼睑中间上下四个点。
步骤1-2:建立形状模型。定义n个标点坐标{(xi,yi)}相连接组成的形状向量s为
s=(x1,x2,...xn,y1,y2,...,yn)T
采用多个这样的形状向量构成m×n维形状向量集。再对形状向量集中的所有形状向量通过旋转、缩放、平移等对齐归一化。然后,对归一化后的形状向量集进行PCA分析,求出二维形状向量协方差矩阵的特征向量及特征值,根据所要保留的能量百分比求出前几个特值,而相对应的特征向量集Φs即为所求变换矩阵。由此可产生一个均值形状s关于特征向量Φs的线性关系式:
这里bs是形状模型参数。由此可见,在均值形状的基础上,通过调节形状模型参数就可以得到一个新的形状模型。
步骤1-3:建立纹理模型。将训练图像经过仿射变换变形到标准形状模型。在标准形状模型上采样其中的纹理信息,得到纹理向量。定义纹理向量g为:
g=[g1,g2,...,gN]T
这里N定义为目标区域表面采样点数,纹理特征直接以灰度值为特征。所有训练图片的纹理向量构成纹理向量集。对提取的纹理信息进行PCA提取主成分,得到:
其中,为平均纹理,Φg为PCA计算得到的纹理主成分特征向量形成的变换矩阵,bg为控制纹理变化的统计纹理参数。
步骤1-4:建立表观模型。将形状模型和纹理模型统一在一起,构成主动表观模型。将bs和bg串接起来得到新的表观特征向量b:
其中,对角矩阵ws用来调整bs和bg二者之间量纲的不同。对得到的b进行PCA处理,进一步消除形状和纹理之间的相关性,从而得到表观模型:
其中,为平均表观向量,Q为表观主成分特征向量形成的变换矩阵,c为控制表观变化的统计表观参数。这样,给定表观模型参数c以及相应的相似变换参数(即缩放比例、旋转角度等)就可以合成一幅人眼图像模型。
步骤1-5:局部纹理提取。局部纹理特征可以采用边缘响应较强的特征,这里采用Gabor特征。对于一幅图像定义其灰度值与Gabor函数的卷积为:
取v个频率,u个方向构成v*u个核函数,一次用这些核函数与图像的灰度值进行卷积就可以得到v*u个复系数,其组成的向量称为一个Jet,就用它来表示局部纹理特征。
对于一幅图像的一个特征点,取以其为中心的5x5大小的区域,对其中的每一个像素值 与v*u个Gabor核函数进行卷积得到一个向量Jet,将每一个像素点的Jet连成一个复矢量J,作为该特征点处的局部纹理特征。对于N幅图像m个特征点,第i幅图像的第j个点复矢量记为Jij,计算得到所有特征点区域的局部纹理特征。对与第j个特征点,计算其N幅图像的平均局部纹理信息为用此平均值来建立这m个特征点的局部纹理模型。
步骤二、模型的匹配
模型匹配就是一种最优化问题。寻找匹配目标Iimage同基于统计性质建立的形状纹理模型Imodel相一致的最优解。形式上可以写成差分向量的形式:
δI=Iimage-Imodel
在这种思想下,模型匹配方法就是寻找模型参数与目标参数位姿上最可能一致的情况。这里采用二次匹配的方法,先用原始的AAM匹配算法进行粗匹配寻找最优的表观模型参数,然后再用局部纹理对特征点进行精细匹配寻找最优的特征点位置。主要匹配流程如下:
1.初始化目标位姿参数(缩放、旋转等),迭代次数t=0及表观模型参数ct,
2.计算当前纹理与模型纹理之差δg;
3.利用AAM中的线性回归模型预测表观模型参数变化量δc,求得新的预测表观参数ct'=ct-kδc,此时变化量的调节系数k=1,在新的参数模型ct'下计算当前纹理与模型纹理之差δg';
4.比较δg和δg',δg'<δg则接受当前参数模型ct←ct′,转入步骤4,否则继续调整参数模型,转回到步骤3,尝试k=1.5;0.5;0.25等;
5.更新迭代次数t=t+1。如果纹理差别已经收敛(纹理差别小于阈值),或者迭代次数超过预定次数,则将当前参数模型赋值给最终的表观模型参数,转入步骤6(至此,第一阶段的匹配结束,此时模型与目标已经大致匹配成功,接下来用特征点局部纹理模型对特征点进行微调匹配。),否则,转到步骤3。
6.对每个特征点,计算以其为中心的5x5区域的四个顶点及边中心点共8个像素点的局部纹理特征,以局部区域内像素点的局部纹理特征与训练集的平均纹理距离最近的像素点为新的特征点;输入图像中每个特征点更新完毕后,根据新的特征点坐标调整形状模型;
7.计算调整后的形状模型与调整前的形状模型之差δs,如果δs小于第二阈值或超过迭代次数,则匹配完成,确定当前输入图像特征点位置;否则,返回步骤6继续迭代。
最终通过确定表观模型参数与精匹配的特征点位置,能保障整体匹配准确与特征点处的匹配精度,使得人眼轮廓匹配更加准确,可以为各种应用,如疲劳驾驶等提供准确的人眼轮廓信息。