人脸左右倾斜角度估计方法、系统、设备及存储介质与流程

文档序号:16210881发布日期:2018-12-08 07:43阅读:715来源:国知局
人脸左右倾斜角度估计方法、系统、设备及存储介质与流程

本发明涉及模式识别和计算机视觉技术领域,尤其涉及一种人脸左右倾斜角度的估计方法、系统、设备及存储介质。

背景技术

人脸左右倾斜角度估计在人脸识别、视频跟踪、疲劳检测、人机交互等领域有重要应用价值。有些人脸识别是要求获得正面的人脸图像,此时摄像头则需要根据人脸倾斜角度进行调整自身角度以获得正面的人脸图像。视频跟踪如果能获得人脸倾斜角度参数,就能够动态地调整摄像机的姿态使之始终处于对监控对象最佳的观测位置。此外,利用人脸倾斜角度参数还能够使多个监视摄像机在时间和空间上协调合作,实现对被监控对象的连续追踪。智能人机交互研究中的一个重要问题是要求准确地判断人在某一时刻注意力的焦点,从而使计算机更好地理解人的行为并作出相应的反应。司机在驾驶的过程中可能出现疲劳,情况严重时可能导致事,通过人脸倾斜角度估计,我们能够发现司机可能存在疲劳并及时发出警报,从而可以避免事故的发生。

目前,估计人脸倾斜角度的技术大多数都是对统一对整体角度进行估计,这类技术的运算方法复杂,计算步骤繁琐,导致其估计速度慢。



技术实现要素:

本发明的主要目的为提供一种基于对图像像素差异分析的人脸左右倾斜角度的估计方法、系统、设备及存储介质,以提高人脸左右倾斜角度的估计效率。

本发明提供一种人脸左右倾斜角度的估计方法,包括以下步骤:

将人脸图像以指定方式均分为第一图像和第二图像;

计算上述第一图像与第二图像之间的像素值的相对差异值;

根据上述相对差异值计算出对应的人脸左右倾斜角度。

进一步地,在上述将人脸图像以指定方式均分为第一图像和第二图像的步骤之前,还包括:

判断上述人脸图像是否垂直倾斜;

若是,则通过仿射变换法对人脸图像进行校准。

进一步地,上述判断上述人脸图像是否垂直倾斜步骤包括:

分别获取上述人脸图像中靠近鼻子的两个眼角的位置点;

对上述位置点连线,并判断线段是否与水平线存在倾斜角度。

进一步地,上述将人脸图像以指定方式均分为第一图像和第二图像步骤包括:

获取人脸图像矩阵的行数m和列数n,并判断n是否为偶数;

若是,则将上述人脸图像分为大小的上述第一图像和第二图像;

若否,则舍弃上述人脸图像矩阵的第一或最后一列,并将则将上述人脸图像均分为大小的上述第一图像和第二图像。

进一步地,计算上述第一图像与第二图像之间的像素值的相对差异值步骤包括:

分别将第一图像和第二图像均分为若干个图像块,其中,每个图像块包含的像素点数量相同;

分别对上述第一图像的图像矩阵和第二图像的图像矩阵中的各个图像块进行标号,并上述图像块中的各个像素点进行标号;

计算上述第一图像与第二图像中对应标号的各个像素点的像素值的相对差异值;

根据各个像素点的像素值的相对差异值计算对应标号上述图像块的像素值的相对差异值;

根据各个上述图像块的像素值的上述相对差异值计算上述第一图像与第二图像的像素值的相对差异值。

进一步地,上述根据上述相对差异值计算出对应的人脸左右倾斜角度步骤包括:

获取上述第一图像和第二图像的像素值的上述相对差异值;

根据上述第一图像和第二图像的像素值的上述相对差异值计算出对应的人脸左右倾斜角度。

进一步地,在上述将人脸图像以指定方式均分为第一图像和第二图像的步骤之前,还包括:

建立倾斜角度计算公式,其步骤包括:

获取k个历史人脸图像的相对差异值,并依次记为d1......dk,令矩阵

获取k个上述历史人脸图像的左右倾斜角度,并依次记为α1......αk,令矩阵

建立方程组pg=α,并计算p和α之间的线性关系,解得对于任意倾斜角度未知的人脸图像,首先计算出其相对差异值dh,然后通过公式计算出其倾斜角度αh;

其中,γ,i分别为一个小的正数和单位矩阵,t表示矩阵的转置运算。

本发明还提出一种人脸左右倾斜角度的估计系统,包括:

人脸图像分割模块,用于将人脸图像以指定方式均分为第一图像和第二图像;

第一计算模块,用于计算上述第一图像与第二图像之间的像素值的相对差异值;

第二计算模块,用于根据上述相对差异值计算出对应的人脸左右倾斜角度。

本发明还提出一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述程序时实现如实施例中任意一项所述的方法。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例中任意一项所述的方法。

本发明具有以下的有益效果:通过根据像素值的相对差异值计算出对应的人脸左右倾斜角度,简化了人脸倾斜角度估计的步骤,提高了人脸左右倾斜角度计算速度;当人脸图像矩阵的列数为技术时舍弃其中的第一列或第最后一列,保证了第一图像和第二图像的对称性,以提高人脸左右倾斜角度估计的准确性;通过先对垂直倾斜的人脸图像进行校准对,将人脸图像在垂直方向和左右方向存在的偏斜进行剥离,以提高人脸左右倾斜角度估计的准确性;通过递级计算的方式,提高了像素值的相对差异值计算精度,从而提高人脸左右倾斜角度估计的准确率;根据像素值的相对差异值估计人脸左右倾斜角度有效地避免了光照变化的影响。

附图说明

图1是本发明一实施例的人脸左右倾斜角度的估计方法的流程示意图;

图2是本发明一实施例的人脸左右倾斜角度的估计方法的流程示意图;

图3是本发明一实施例的人脸左右倾斜角度的估计方法的流程示意图;

图4是本发明一实施例的人脸左右倾斜角度的估计方法的流程示意图;

图5是本发明一实施例的人脸左右倾斜角度的估计方法的流程示意图;

图6是本发明一实施例的人脸左右倾斜角度的估计方法的流程示意图;

图7是本发明一实施例的人脸左右倾斜角度的估计方法的流程示意图;

图8是本发明一实施例的人脸左右倾斜角度的估计系统的结构示意图;

图9是本发明一实施例的一种计算机设备的结构示意图;

图中:1、人脸图像分割模块;2、第一计算模块;3、第二计算模块;4、计算机设备;5、外部设备;6、处理单元;7、总线;8、网络适配器;9、(i/o)接口;10、显示器;11、系统存储器;12、随机存取存储器(ram);13、高速缓存存储器;14、存储系统;15、程序/实用工具;16、程序模块。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照图1,在本发明实施例中,提出了一种人脸左右倾斜角度的估计方法包括以下步骤:

s1、将人脸图像以指定方式均分为第一图像和第二图像;

s2、计算上述第一图像与第二图像之间的像素值的相对差异值;

s3、根据上述相对差异值计算出对应的人脸左右倾斜角度。

如上述步骤s1,将人脸图像以指定方式均分为第一图像和第二图像,其中,上述以指定方式一般可以为通过先获取人脸图像宽度的中心点,然后按宽度的中心点连线将人脸图像划分为对应的第一图像和第二图像;上述以指定方式一般可以为通过先将人脸图像宽度按宽度的长短拆分为两段相等的宽段,然后在人脸图像上形成与每段宽段相对应的第一图像和第二图像;上述以指定方式一般可以为通过获取人脸图像的面积,然后按面积的大小划分为高度相等而宽度为原始人脸图像一半的上述第一图像和第二图像;在本实施中,优选为通过先将人脸图像宽度按宽度的长短拆分为两段相等的宽段,然后在人脸图像上形成与每段宽段相对应的第一图像和第二图像;具体地,一般通过剪裁或标出分界线后得到包含相等像素点数量的第一图像和第二图像,在本实施中,优选为剪裁。

如上述步骤s2,计算上述第一图像与第二图像之间的像素值的相对差异值,其中,上述第一图像与第二图像之间的像素值的相对差异值与对应的人脸左右倾斜角度线性相关;因为当人脸在左右方向没有倾斜时人脸图像近似为轴对称图像,此时,上述第一图像与与第二图像之间的像素值的相对差异值数值较小,而当左右方向存在倾斜时人脸图像为非轴对称图像,且人脸图像的非对称性随着左右方向倾斜角的增大而变大,此时,上述第一图像与与第二图像之间的像素值的相对差异值数值随着人脸的左右倾斜角度的增加而增大;一般地,上述像素值为原稿图像被数字化时由计算机赋予的值,它代表了原稿某一小方块的平均亮度信息,或者说是该小方块的平均反射(透射)密度信息,上述像素值会随着图像中单位面积包含的颜色信息变化而变化。例如,上述颜色信息为白色时,上述像素值为225;上述颜色信息为黑色时,上述像素值为0。

如上述步骤s3,根据上述相对差异值计算出对应的人脸左右倾斜角度,其中,将上述相对差异值代入对应的倾斜角度计算公式即可计算出对应的人脸倾斜角度;h为左右倾斜角度未知的人脸图像,α为左右倾斜角度,d为相对差异值,为计算系数。

参照图2,在本实施例中,在上述将人脸图像以指定方式均分为第一图像和第二图像的步骤之前,还包括:

s4、判断上述人脸图像是否垂直倾斜;

s5、若是,则通过仿射变换法对人脸图像进行校准。

由于人脸倾斜包括在垂直方向的倾斜和左右方向的倾斜,当上述人脸图像在垂直方向存在倾斜时,如果没有对上述人脸图像垂直方向的倾斜进行校准,则会影响人脸左右倾斜角度估计的精度。因此,在执行步骤s1~s3之前需要执行步骤s4~s5校准上述人脸图像的垂直倾斜,以提高人脸左右倾斜角度估计的精度;

如上述步骤s4,判断上述人脸图像是否垂直倾斜,其中,一般为判断人脸五官是否垂直倾斜;例如可以通过判断瞳孔与瞳孔的位置点的连线是否与水平线存在倾斜角度,通过判断靠近鼻子的两个眼角的位置点的连线是否与水平线存在倾斜角度,通过判断两个唇角的的位置点的连线是否与水平线存在倾斜角度,在本实施中,优选为通过判断靠近鼻子的两个眼角的位置点的连线是否与水平线存在倾斜角度。

如上述步骤s5,若是,则通过仿射变换法对人脸图像进行校准,其中,上述通过仿射变换法对人脸图像进行校准指的是通过人脸图像中一个向量空间进行一次线性变换并接上一个平移变换为另一个向量空间进而对在垂直方向存在倾斜角度的人脸图像进行校准;经过校准后的上述人脸图像中靠近鼻子的两个眼角的位置点通过连线形成的线段则是一条水平线,此时,上述人脸图像在垂直方向的倾斜被校准了。若否,则不对人脸图像进行校准。

在本实施例中,在上述述判断上述人脸图像是否垂直倾斜的步骤之前,还包括:

a1、判断上述人脸图像是否为彩色图像;

a2、若是,则将上述彩色图像转换为灰度图像。

如上述步骤a1,判断上述人脸图像是否为彩色图像,其中,一般为根据人脸图像包含的颜色信息来判断人脸图像是否为彩色图像,上述彩色图像指的是图像中的每个像素值都分成r、g、b三个基色分量,每个基色分量直接决定其基色的强度,例如图像深度为24,用r:g:b=8:8:8来表示色彩,则r、g、b各占用8位来表示各自基色分量的强度,每个基色分量的强度等级为2^8=256种。

如上述步骤a2,若是,则将上述彩色图像转换为灰度图像,将上述彩色图像转换为灰度图像有利于方便后续计算上述第一图像和第二图像的像素值的上述相对差异值;其中,上述灰度图像指的是每个像素只有一个采样颜色的图像。上述灰度图像通常显示为从最暗黑色到最亮的白色的灰度。若否,则,沿用原始的人脸图像。

在本实施中,将上述彩色图像转换为灰度图像的公式为y=0.3r+0.59g+0.11b,其中,y表示灰度,r、g、b分别表示红、绿、蓝的色彩数值。

参照图3,在本实施中,上述判断上述人脸图像是否垂直倾斜步骤包括:

s6、分别获取上述人脸图像中靠近鼻子的两个眼角的位置点;

s7、对上述位置点连线,并判断线段是否与水平线存在倾斜角度。

如上述步骤s6,分别获取上述人脸图像中靠近鼻子的两个眼角的位置点,其中,一般为通过基于深度学习的目标检测方法分别获取上述人脸图像中靠近鼻子的两个眼角的位置点,上述深度学习一般为resnet100网络,具体地,首先从若干人脸图像上截取出一批左右人眼图像作为正样本,同时取出大量人脸图像上的非人眼图像区域作为负样本,利用获得的正样本和负样本来训练深度网络;当输入上述人脸图像,该经过训练后的深度网络可以检测出上述人脸图像中靠近鼻子的两个眼角的位置点。

如上述步骤s7,对上述位置点连线,并判断线段是否与水平线存在倾斜角度,其中,当上述线段与水平线存在倾斜角度θ,倾斜角度θ指的是上述人脸图像中靠近鼻子的两个眼角的位置点连线形成的线段与水平线之间的夹角,倾斜角度θ表示人脸图像在垂直方向的偏斜程度。

在本实施中,上述将人脸图像以指定方式均分为第一图像和第二图像步骤包括:

s8、获取人脸图像矩阵的行数m和列数n,并判断n是否为偶数;

s9、若是,则将上述人脸图像分为大小的上述第一图像和第二图像;

s10、若否,则舍弃上述人脸图像矩阵的第一或最后一列,并将则将上述人脸图像均分为大小的上述第一图像和第二图像。

如上述步骤s8,获取人脸图像矩阵的行数m和列数n,并判断n是否为偶数,其中,上述人脸图像矩阵的行数m和列数n取决于获取人脸图像的设备型号及人脸与设备之间的距离,根据列数n的奇偶性对应执行步骤s9或步骤s10对上述人脸图像进行拆分,上述人脸图像的尺寸单位为像素。

如上述步骤s9,若是,则将上述人脸图像分为大小的上述第一图像和第二图像,其中,当n为偶数时,此时,将上述人脸图像以剪裁的方式分为大小的上述第一图像和第二图像;上述第一图像的图像矩阵和第二图像的图像矩阵的行数m和列数n相等。

如上述步骤s10,若否,则舍弃上述人脸图像矩阵的第一或最后一列,并将则将上述人脸图像均分为大小的上述第一图像和第二图像,其中,当n为奇数时,此时,舍弃上述人脸图像矩阵的第一或最后一列,再对上述人脸图像进行分割成上述第一图像和第二图像,以保证分割得到的上述第一图像的图像矩阵和第二图像的图像矩阵的行数m和列数n相等。

其中,上述步骤s8-s10的可替换为步骤b8-b9,其中,上述步骤b8代替s8,该步骤b8为:将上述人脸图像矩阵剪裁为固定大小的人脸图像子矩阵;上述固定大小一般为列数n为偶数而行数m为偶数或奇数,在本实施例中,上述固定大小优选为64×64px;上述步骤b9代替s9和s10,该步骤b9为:将上述人脸图像子矩阵均分为上述第一图像和第二图像;其中,上述均分方式为将人脸图像宽度定数等分或定距等分,在本实施例中,优选为定距等分。

参照图4,在本实施例中,计算上述第一图像与第二图像之间的像素值的相对差异值步骤包括:

s11、分别将第一图像和第二图像均分为若干个图像块,其中,每个图像块包含的像素点数量相同;

s12、分别对上述第一图像的图像矩阵和第二图像的图像矩阵中的各个图像块进行标号,并上述图像块中的各个像素点进行标号;

s13、计算上述第一图像与第二图像中对应标号的各个像素点的像素值的相对差异值;

s14、根据各个像素点的像素值的相对差异值计算对应标号上述图像块的像素值的相对差异值;

s15、根据各个上述图像块的像素值的上述相对差异值计算上述第一图像与第二图像的像素值的相对差异值。

如上述步骤s11,分别将第一图像和第二图像均分为若干个图像块,其中,分别将上述将第一图像和第二图像宽度和高度以定数等分或定距等分的方式分为若干个图像块,在本实施例中,优选为定数等分,具体地,将上述第一图像和第二图像宽度划分为5个均匀分隔的切片,高度划分为10个均匀分隔的切片,上述图像块由宽度切片和高度切片正交而形成;每个图像块包含的像素点数量相等,即是上述每个图像块的尺寸相等。

如上述步骤s12,分别对上述第一图像的图像矩阵和第二图像的图像矩阵中的各个图像块进行标号,并上述图像块中的各个像素点进行标号,其中,上述第一图像记为l,上述第二图像记为r,上述第一图像的图像矩阵中各个所述图像块依次记为l1,...,lq,上述第二图像的图像矩阵中各个上述图像块记为r1,...,rq;以图像块l1和r1为例像素点的标号如下,l1中的各个像素点记为l11,...,l1q,r1中的各个像素点记为r11,...,r1q。

如上述步骤s13,计算上述第一图像与第二图像中对应标号的各个像素点的像素值的相对差异值,以像素点的像素值为已知参数计算上述相对差异值,上述对应标号的各个像素点指的是像素点lij对应像素点rij。

在本实施例中,上述计算上述第一图像与第二图像中对应标号的各个像素点的像素值的上述相对差异值步骤的计算公式为:

dij=(lij-rij)2/(lij+0.01),

其中,dij为上述第一图像和第二图像对应的像素点的像素值的上述相对差异值,lij为上述第一图像的第i个上述图像块中的第j个像素点的像素值,rij为上述第二图像的第i个上述图像块中的第j个像素点的像素值,上述计算公式在lij等于零的特殊情况下仍然适用。

如上述步骤s14,根据各个像素点的像素值的相对差异值计算对应标号上述图像块的像素值的相对差异值,其中,以对应标号的各个像素点的像素值的相对差异值dij为已知参数求和,然后以求和的结果为已知参数求平均值,最后结果为对应标号的上述图像块的像素值的相对差异值di。

如上述步骤s15,根据各个上述图像块的像素值的上述相对差异值计算上述第一图像与第二图像的像素值的相对差异值,其中,以对应标号的各个图像块的像素值的相对差异值di为已知参数求和,然后以求和的结果为已知参数求平均值,最后结果为上述第一图像与第二图像的像素值的相对差异值di。

参照图5,在本实施中,在上述计算上述第一图像与第二图像中对应标号的各个像素点的像素值的相对差异值的步骤之前,还包括:

a3、获取上述第一图像与第二图像中对应标号的各个像素点的像素值。

如上述步骤a3,获取上述第一图像与第二图像中对应标号的各个像素点的像素值,其中,上述像素值一般在0~255之间。

参照图6,在本实施例中,上述根据上述相对差异值计算出对应的人脸左右倾斜角度步骤包括:

s16、获取上述第一图像与第二图像的像素值的上述相对差异值;

s17、根据上述第一图像与第二图像的像素值的上述相对差异值计算出对应的人脸左右倾斜角度。

如上述步骤s16,获取上述第一图像与第二图像的像素值的上述相对差异值,其中,上述相对差异值为执行步骤s13-s15的计算结果。

如上述步骤s17,根据上述第一图像与第二图像的像素值的上述相对差异值计算出对应的人脸左右倾斜角度,其中,以上述相对差异值为已知参数代入上述倾斜角度计算公式计得人脸倾斜角度,具体地,上述倾斜角度计算公式为

参照图7,进一步地,在上述将人脸图像以指定方式均分为第一图像和第二图像的步骤之前,还包括:

s18、建立倾斜角度计算公式,其步骤包括:

s19、获取k个历史人脸图像的相对差异值,并依次记为d1......dk,令矩阵

s20、获取k个上述历史人脸图像的左右倾斜角度,并依次记为α1......αk,令矩阵

s21、建立方程组pg=α,并计算p和α之间的线性关系,解得对于任意倾斜角度未知的人脸图像,首先计算出其相对差异值dh,然后通过公式计算出其倾斜角度αh;

其中,γ,i分别为一个小的正数和单位矩阵,t表示矩阵的转置运算。

如上述步骤s18,建立倾斜角度计算公式,其中,上述相对差异值与上述人脸左右倾斜角度之间存在线性相关,因此,利用已知人脸图像的左右倾斜角度和对应的相对差异值来建立倾斜角度计算公式。

如上述步骤s19,获取k个历史人脸图像的相对差异值,并依次记为d1......dk,令矩阵其中,矩阵p中包含有k个历史人脸图像的相对差异值。

如上述步骤s20,获取k个上述历史人脸图像的左右倾斜角度,并依次记为α1......αk,令矩阵其中,矩阵α中包含有k个历史人脸图像的左右倾斜角度。

如上述步骤s21,建立方程组pg=α,并计算p和α之间的线性关系,解得对于任意倾斜角度未知的人脸图像,首先计算出其相对差异值dh,然后通过公式计算出其倾斜角度αh,其中,γ的取值对方程组的求解有显著的影响,通过大量的分析与实验验证发现,γ的优选取值范围为0.01~0.1之间,γ的更优选取值为0.01、0.02、0.03、0.04、0.05、0.06、0.07、0.08、0.09、0.1,代表了解对上述倾斜角度计算公式的适应度,越小,相应地,γ取值越合理,解越适应于当前数据下的上述倾斜角度计算公式,因此,最优选γ为能使取得最小值的数值,该准则保证了倾斜角度计算公式的解具有优异的数值稳定性和鲁棒性。

参照图8,本发明还提出一种一种人脸左右倾斜角度的估计系统,包括:

人脸图像分割模块1,用于将人脸图像以指定方式均分为第一图像和第二图像;

第一计算模块2,用于计算上述第一图像与第二图像之间的像素值的相对差异值;

第二计算模块3,用于根据上述相对差异值计算出对应的人脸左右倾斜角度。

在人脸图像分割模块1中,在获取人脸图像后将人脸图像以指定方式均分为第一图像和第二图像,其中,上述以指定方式一般可以为通过先获取人脸图像宽度的中心点,然后按宽度的中心点连线将人脸图像划分为对应的第一图像和第二图像;上述以指定方式一般可以为通过先将人脸图像宽度按宽度的长短拆分为两段相等的宽段,然后在人脸图像上形成与每段宽段相对应的第一图像和第二图像;上述以指定方式一般可以为通过获取人脸图像的面积,然后按面积的大小划分为高度相等而宽度为原始人脸图像一半的上述第一图像和第二图像;在本实施中,优选为通过先将人脸图像宽度按宽度的长短拆分为两段相等的宽段,然后在人脸图像上形成与每段宽段相对应的第一图像和第二图像;具体地,一般通过剪裁或标出分界线后得到包含相等像素点数量的第一图像和第二图像,在本实施中,优选为剪裁。

在第一计算模块2中,在获取上述第一图像和第二图像的像素值后计算上述第一图像与第二图像之间的像素值的相对差异值,其中,上述第一图像与第二图像之间的像素值的相对差异值与对应的人脸左右倾斜角度线性相关;因为当人脸在左右方向没有倾斜时人脸图像近似为轴对称图像,此时,上述第一图像与与第二图像之间的像素值的相对差异值数值较小,而当左右方向存在倾斜时人脸图像为非轴对称图像,且人脸图像的非对称性随着左右方向倾斜角的增大而变大,此时,上述第一图像与与第二图像之间的像素值的相对差异值数值随着人脸的左右倾斜角度的增加而增大;一般地,上述像素值为原稿图像被数字化时由计算机赋予的值,它代表了原稿某一小方块的平均亮度信息,或者说是该小方块的平均反射(透射)密度信息,上述像素值会随着图像中单位面积包含的颜色信息变化而变化。例如,上述颜色信息为白色时,上述像素值为225;上述颜色信息为黑色时,上述像素值为0。

在第二计算模块3中,获取上述第一图像和第二图像的像素值的相对差异值后根据上述相对差异值计算出对应的人脸左右倾斜角度,其中,将上述相对差异值代入对应的倾斜角度计算公式即可计算出对应的人脸倾斜角度。

在本实施例中,还包括:垂直倾斜判断模块、垂直倾斜校准模块、图像色彩判断模块、图像色彩转换模块、位置点获取模块、线段判断模块、列数判断模块、第一分割子模块、第二分割子模块、图像块形成模块、标号模块、第一计算子模块、第二计算子模块、第三计算子模块、像素值获取模块、第一相对差异值获取模块、倾斜角度计算模块、公式建立模块、第二相对差异值获取模块、左右倾斜角度获取模块、公式建立子模块。

上述垂直倾斜判断模块,用于判断上述人脸图像是否垂直倾斜,其中,由于人脸倾斜包括在垂直方向的倾斜和左右方向的倾斜,当上述人脸图像在垂直方向存在倾斜时,如果没有对上述人脸图像垂直方向的倾斜进行校准,则会影响人脸左右倾斜角度估计的精度;一般为判断人脸五官是否垂直倾斜;例如可以通过判断瞳孔与瞳孔的位置点的连线是否与水平线存在倾斜角度,通过判断靠近鼻子的两个眼角的位置点的连线是否与水平线存在倾斜角度,通过判断两个唇角的的位置点的连线是否与水平线存在倾斜角度,在本实施中,优选为通过判断靠近鼻子的两个眼角的位置点的连线是否与水平线存在倾斜角度。

上述垂直倾斜校准模块,用于通过仿射变换法对人脸图像进行校准,其中,上述通过仿射变换法对人脸图像进行校准指的是通过人脸图像中一个向量空间进行一次线性变换并接上一个平移变换为另一个向量空间进而对在垂直方向存在倾斜角度的人脸图像进行校准;经过校准后的上述人脸图像中靠近鼻子的两个眼角的位置点通过连线形成的线段则是一条水平线,此时,上述人脸图像在垂直方向的倾斜被校准了。

上述图像色彩判断模块,用于判断上述人脸图像是否为彩色图像,其中,一般为根据人脸图像包含的颜色信息来判断人脸图像是否为彩色图像,上述彩色图像指的是图像中的每个像素值都分成r、g、b三个基色分量,每个基色分量直接决定其基色的强度,例如图像深度为24,用r:g:b=8:8:8来表示色彩,则r、g、b各占用8位来表示各自基色分量的强度,每个基色分量的强度等级为2^8=256种。

上述图像色彩转换模块,用于将上述彩色图像转换为灰度图像,将上述彩色图像转换为灰度图像有利于方便后续计算上述第一图像和第二图像的像素值的上述相对差异值;其中,上述灰度图像指的是每个像素只有一个采样颜色的图像。上述灰度图像通常显示为从最暗黑色到最亮的白色的灰度;将上述彩色图像转换为灰度图像的公式为y=0.3r+0.59g+0.11b,其中,y表示灰度,r、g、b分别表示红、绿、蓝的色彩数值。

上述位置点获取模块,用于分别获取上述人脸图像中靠近鼻子的两个眼角的位置点,其中,一般为通过基于深度学习的目标检测方法分别获取上述人脸图像中靠近鼻子的两个眼角的位置点,上述深度学习一般为resnet100网络,具体地,首先从若干人脸图像上截取出一批左右人眼图像作为正样本,同时取出大量人脸图像上的非人眼图像区域作为负样本,利用获得的正样本和负样本来训练深度网络;当输入上述人脸图像,该经过训练后的深度网络可以检测出上述人脸图像中靠近鼻子的两个眼角的位置点。

上述线段判断模块,用于并判断线段是否与水平线存在倾斜角度,其中,当上述线段与水平线存在倾斜角度θ,倾斜角度θ指的是上述人脸图像中靠近鼻子的两个眼角的位置点连线形成的线段与水平线之间的夹角,倾斜角度θ表示人脸图像在垂直方向的偏斜程度。

上述列数判断模块,用于获取人脸图像矩阵的行数和列数,并判断n是否为偶数,其中,上述人脸图像矩阵的行数m和列数n取决于获取人脸图像的设备型号及人脸与设备之间的距离,根据列数n的奇偶性对应发送至上述第一分割子模块或上述第二分割子模块对上述人脸图像进行拆分,上述人脸图像的尺寸单位为像素。

上述第一分割子模块,用于当n为偶数时将上述人脸图像分为大小的上述第一图像和第二图像,其中,当n为偶数时,此时,将上述人脸图像以剪裁的方式分为大小的上述第一图像和第二图像;上述第一图像的图像矩阵和第二图像的图像矩阵的行数m和列数n相等。

上述第二分割子模块,用于当n为奇数时则舍弃上述人脸图像矩阵的第一或最后一列,并将则将上述人脸图像均分为大小的上述第一图像和第二图像,其中,当n为奇数时,此时,舍弃上述人脸图像矩阵的第一或最后一列,再对上述人脸图像进行分割成上述第一图像和第二图像,以保证分割得到的上述第一图像的图像矩阵和第二图像的图像矩阵的行数m和列数n相等。

其中,上述列数判断模块、上述第一分割子模块和上述第二分割子模块可以替换成剪裁模块和均分模块;其中,上述列数判断模块替换成剪裁模块,上述剪裁模块一般用于将上述人脸图像矩阵剪裁为固定大小的人脸图像子矩阵;上述固定大小一般为列数为偶数而行数为偶数或奇数,在本实施例中,上述固定大小优选为64×64px;上述第一分割子模块和上述第二分割子模块替换成均分模块,上述均分模块一般用于将上述人脸图像子矩阵均分为上述第一图像和第二图像,其中,上述均分方式为将人脸图像宽度定数等分或定距等分,在本实施例中,优选为定距等分。

上述图像块形成模块,用于分别将第一图像和第二图像均分为若干个图像块,其中,分别将上述将第一图像和第二图像宽度和高度以定数等分或定距等分的方式分为若干个图像块,在本实施例中,优选为定数等分,具体地,将上述第一图像和第二图像宽度划分为5个均匀分隔的切片,高度划分为10个均匀分隔的切片,上述图像块由宽度切片和高度切片正交而形成;每个图像块包含的像素点数量相等,即是上述每个图像块的尺寸相等。

上述标号模块,用于分别对上述第一图像的图像矩阵和第二图像的图像矩阵中的各个图像块进行标号,并上述图像块中的各个像素点进行标号,其中,上述第一图像记为l,上述第二图像记为r,上述第一图像的图像矩阵中各个所述图像块依次记为l1,...,lq,上述第二图像的图像矩阵中各个上述图像块记为r1,...,rq;以图像块l1和r1为例像素点的标号如下,l1中的各个像素点记为l11,...,l1q,r1中的各个像素点记为r11,...,r1q。

上述第一计算子模块,用于计算上述第一图像与第二图像中对应标号的各个像素点的像素值的相对差异值,其中,以像素点的像素值为已知参数计算上述相对差异值,上述对应标号的各个像素点指的是像素点lij对应像素点rij。上述计算上述第一图像与第二图像中对应标号的各个像素点的像素值的上述相对差异值的计算公式为:dij=(lij-rij)2/(lij+0.01),其中,dij为上述第一图像和第二图像对应的像素点的像素值的上述相对差异值,lij为上述第一图像的第i个上述图像块中的第j个像素点的像素值,rij为上述第二图像的第i个上述图像块中的第j个像素点的像素值,上述计算公式在lij等于零的特殊情况下仍然适用。

上述第二计算子模块,用于根据各个像素点的像素值的相对差异值计算对应标号上述图像块的像素值的相对差异值,其中,以对应标号的各个像素点的像素值的相对差异值dij为已知参数求和,然后以求和的结果为已知参数求平均值,最后结果为对应标号的上述图像块的像素值的相对差异值di。

上述第三计算子模块,用于根据各个上述图像块的像素值的上述相对差异值计算上述第一图像与第二图像的像素值的相对差异值,其中,以对应标号的各个图像块的像素值的相对差异值di为已知参数求和,然后以求和的结果为已知参数求平均值,最后结果为上述第一图像与第二图像的像素值的相对差异值di。

上述像素值获取模块,用于获取上述第一图像与第二图像中对应标号的各个像素点的像素值,其中,上述像素值一般在0~255之间。

上述第一相对差异值获取模块,用于获取上述第一图像与第二图像的像素值的上述相对差异值,其中,上述相对差异值为上述第一计算子模块、第一计算子模块和第三计算子模块的最终计算结果。

上述倾斜角度计算模块,根据上述第一图像与第二图像的像素值的上述相对差异值计算出对应的人脸左右倾斜角度,其中,以上述相对差异值为已知参数代入上述倾斜角度计算公式计得人脸倾斜角度,具体地,上述倾斜角度计算公式为

上述公式建立模块,用于建立上述倾斜角度计算公式,其中,上述相对差异值与上述人脸左右倾斜角度之间存在线性相关,因此,利用已知人脸图像的左右倾斜角度和对应的相对差异值来建立倾斜角度计算公式。

上述第二相对差异值获取模块,用于获取k个历史人脸图像的相对差异值,并依次记为d1......dk,令矩阵其中,矩阵p中包含有k个历史人脸图像的相对差异值。

上述左右倾斜角度获取模块,用于获取k个上述历史人脸图像的左右倾斜角度,并依次记为α1......αk,令矩阵其中,矩阵α中包含有k个历史人脸图像的左右倾斜角度。

上述公式建立子模块,用于建立方程组pg=α,并计算p和α之间的线性关系,解得对于任意倾斜角度未知的人脸图像,首先计算出其相对差异值dh,然后通过公式计算出其倾斜角度αh,其中,γ的取值对方程组的求解有显著的影响,通过大量的分析与实验验证发现,γ的优选取值范围为0.01~0.1之间,γ的更优选取值为0.01、0.02、0.03、0.04、0.05、0.06、0.07、0.08、0.09、0.1,代表了解对上述倾斜角度计算公式的适应度,越小,相应地,γ取值越合理,解越适应于当前数据下的上述倾斜角度计算公式,因此,最优选γ为能使取得最小值的数值,该准则保证了倾斜角度计算公式的解具有优异的数值稳定性和鲁棒性。

参照图9,在本发明实施例中,本发明还提供一种计算机设备,上述计算机设备4以通用计算设备的形式表现,计算机设备4的组件可以包括但不限于:一个或者多个处理器或者处理单元6,系统存储器11,连接不同系统组件(包括系统存储器11和处理单元6)的总线7。

总线7表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机设备4典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备4访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器11可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)12和/或高速缓存存储器13。计算机设备4可以进一步包括其他移动/不可移动的、易失性/非易失性计算机体统存储介质。仅作为举例,存储系统15可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd~rom,dvd~rom或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线7相连。存储器可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块16,这些程序模块16被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块16的程序/实用工具16,可以存储在例如存储器中,这样的程序模块16包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块16通常执行本发明所描述的实施例中的功能和/或方法。

计算机设备4也可以与一个或多个外部设备5(例如键盘、指向设备、显示器10、摄像头等)通信,还可与一个或者多个使得用户能与该计算机设备4交互的设备通信,和/或与使得该计算机设备4能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口9进行。并且,计算机设备4还可以通过网络适配器9与一个或者多个网络(例如局域网(lan)),广域网(wan)和/或公共网络(例如因特网)通信。如图所示,网络适配器8通过总线7与计算机设备4的其他模块通信。应当明白,尽管图9中未示出,可以结合计算机设备4使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元6通过运行存储在系统存储器11中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的人脸左右倾斜角度的估计方法。

也即,上述处理单元6执行上述程序时实现:获取人脸图像后将人脸图像以指定方式均分为第一图像和第二图像;计算上述第一图像与第二图像之间的像素值的相对差异值;根据上述相对差异值计算出对应的人脸左右倾斜角度。

在本发明实施例中,本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有实施例提供的人脸左右倾斜角度的估计方法:

也即,给程序被处理器执行时实现:获取人脸图像后将人脸图像以指定方式均分为第一图像和第二图像;计算上述第一图像与第二图像之间的像素值的相对差异值;根据上述相对差异值计算出对应的人脸左右倾斜角度。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机克顿信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)12、只读存储器(rom)、可擦可编程只读存储器(epom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd~rom)、光存储器件、磁存储器件或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,改计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言——诸如java、smalltalk、c++,还包括常规的过程式程序设计语言——诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或者服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1