具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
第一实施例
参阅图1所示,为本发明第一实施例提供的人脸特征点定位方法应用时的环境示意图。在本实施例中,该人脸特征点定位方法应用于电子装置1中,该电子装置1还包括用于输出图像的屏幕10。该电子装置1例如是计算机、移动电子终端或者其他类似的计算装置。
以下结合具体的实施例对上述的人脸特征点定位方法详细描述如下:
图2为第一实施例提供的人脸特征点定位方法的流程图,该人脸特征点定位方法包括以下步骤:
步骤S1,获取视频数据,在该视频数据的播放过程中利用视频跟踪技术得到实时的背景图像;
步骤S2,计算该视频数据的当前帧图像相对于该背景图像的图像变化量;
步骤S3,根据该图像变化量设置一迭代次数;
步骤S4,获取该视频数据的上一帧图像中人脸特征点的坐标,将所获取的坐标定义为初始坐标;
步骤S5,根据所设置的迭代次数,调用人脸特征点定位算法对该初始坐标进行迭代计算,以得到当前帧图像中人脸特征点的坐标。
按照上述的人脸特征点定位方法,在视频数据的上一帧图像的基础上通过迭代计算得到当前帧图像中人脸特征点的坐标,可以提高对视频数据中人脸特征点定位的处理速度,并且所定位的人脸特征点在上下帧图像间的移动较平滑,视觉效果较佳。
在一些实例中,上述方法的各步骤的实现细节如下:
步骤S1所述的视频数据可以为存储在电子装置1的存储介质(如硬盘、外接存储卡等)中的视频文件,例如用户下载的影片、用户自行拍摄的视频片段等。该视频数据也可以为电子装置1通过互联网所访问的视频网站上加载的流式视频数据,例如在线观看的影片、动画等。该视频数据还可以为电子装置1通过互联网进行视频通讯时接收的实时图像,例如视频聊天时接收的对方所在场景的实时图像,监控摄像头拍摄监控场景并传送回来的实时图像等。在本实施例中,该视频数据的至少一帧图像中包含有人脸,通过播放该视频数据可以反映该视频数据中人脸的移动情况。参阅图3所示,为在该视频数据播放过程中随机截取的一帧图像的示意图(以书签代替人脸举例说明)。
在本实施例中,可以采用基于背景差分法的视频跟踪技术跟踪该视频数据帧间的图像变化,从而得到所述实时的背景图像。该背景图像是综合当前帧图像之前的若干帧图像得到的,因此该背景图像不仅包括该若干帧图像共同的背景区域,还包括在该背景区域中的人脸或其它对象运动造成的阴影区域,如图4所示(以书签代替人脸举例说明)。
参阅图5所示,步骤S2所述的图像变化量可以根据以下步骤计算得出:
步骤S2.1,获取视频数据的当前帧图像,分别对该当前帧图像和背景图像进行灰度处理。该灰度处理是指将该当前帧图像和背景图像都转换成不含色彩信息的灰度图,使该当前帧图像和背景图像中每个像素都具有从0%(白色)到100%(黑色)的亮度值。例如,将当前帧图像和背景图像转换为8位256级灰度图,转换后当前帧图像和背景图像的像素的灰度范围为0(黑色)到255(白色)。
步骤S2.2,将经灰度处理后的该当前帧图像与该背景图像相减,得到前景图像。具体而言,将经灰度处理后的当前帧图像的各像素的灰度值与背景图像对应位置的像素的灰度值相减,从而得到该前景图像各位置对应的灰度值。
在上述相减过程中,当前帧图像相对于背景图像保持不变的区域中各像素的灰度值相减的结果为0(在前景图像中对应像素的灰度值为0,即黑色),而当前帧图像相对于背景图像发生变化的区域中各像素的灰度值相减的结果不为0(在前景图像中对应像素的灰度值不为0,即不为黑色)。因此,经上述相减过程所得到的前景图像可以突出当前帧图像相对于背景图像发生变化的区域。例如,若对该前景图像进行二值化处理,即将前景图像中灰度值大于一个阈值(例如0)的像素的灰度值设置为255(即白色),而将前景图像中灰度值不大于该阈值的像素的灰度值设置为0(即黑色),可以使该前景图像呈现出只有黑色和白色的视觉效果,如图6所示,从其中的白色区域更容易看出当前帧图像相对于背景图像发生变化的区域。
步骤S2.3,将该前景图像的灰度范围分段为至少两个灰度段,确定每一个灰度段对应的权值。例如,将该前景图像的灰度范围分段为两个灰度段,分别为0~20和21~255,其中灰度段0~20对应的权值为0,而灰度段21~255对应的权值为1。还例如,将该前景图像的灰度范围分段为四个灰度段,分别为0~45、46~100、101~175以及176~255。其中灰度段0~45对应的权值为0.1,灰度段46~100对应的权值为0.2,灰度段101~175对应的权值为0.7,灰度段175~255对应的权值为0.9。
步骤S2.4,计算该前景图像中每个像素的灰度值所属灰度段对应的权值之和与该前景图像的像素总数的比值,得到该图像变化量。例如,在上述对前景图像的灰度范围分段的第二个例子中,若灰度值属于灰度段0~45的像素有100个,灰度值属于灰度段46~100的像素有150个,灰度值属于灰度段101~175的像素有200个,而灰度值属于灰度段175~255的像素有250个,则该图像变化量为:
(100*0.1+150*0.2+200*0.7+250*0.9)/(100+150+200+250)≈0.58。
在本实施例中,该图像变化量还可以为所计算出的该比值与某个经验值的乘积。
步骤S3所述的迭代次数与该图像变化量成正比,即该图像变化量越大,该迭代次数设置得也越大。
步骤S4所述的上一帧图像中人脸特征点的坐标也可以同样通过本实施例提供的人脸特征点定位方法得到,并存储在电子装置1的存储介质中,或存储在与该电子装置1通信连接的服务器中。
步骤S5可以调用基于ASM(Active Shape Model,主动形状模型)的人脸特征点定位算法对该初始坐标进行迭代计算,该迭代计算的次数为所设置的该迭代次数。
第二实施例
根据第一实施例提供的人脸特征点定位方法定位视频数据的当前帧图像中人脸特征点的坐标,需要对当前帧图像进行所述迭代计算的过程。然而实际上,如果人脸未发生移动,当前帧图像相对于上一帧图像可能几乎没有变化。因此,若在当前帧图像相对于上一帧图像几乎没有变化的情况下,还对当前帧图像进行所述的迭代计算以得到当前帧图像中人脸特征点的坐标,将会增加不必要的计算量,降低处理速度。
为进一步解决上述问题,参阅图7所示,本发明第二实施例提供一种人脸特征点定位方法,其相比于第一实施例的人脸特征点定位方法,本实施例的人脸特征点定位方法在所述步骤S2后进一步包括:
步骤S21,判断该图像变化量是否小于第一阈值(例如0.01%)。若该图像变化量不小于该第一阈值,则执行所述步骤S3。若该图像变化量小于该第一阈值,可以认为当前帧图像相对于上一帧图像几乎没有变化,当前帧图像中人脸的移动微小得用户难以感知到,则执行步骤S22。
步骤S22,获取上一帧图像中人脸特征点的坐标,并将该上一帧图像中人脸特征点的坐标作为当前帧图像中人脸特征点的坐标。
综上所述,本实施例的人脸特征点定位方法在当前帧图像相对于上一帧图像几乎没有变化的情况下,直接将上一帧图像中人脸特征点的坐标作为当前帧图像中人脸特征点的坐标,可以省略所述迭代计算的过程,从而进一步提高对视频数据中人脸特征点定位的处理速度。
第三实施例
根据第一实施例或第二实施例提供的人脸特征点定位方法定位视频数据的当前帧图像中人脸特征点的坐标,需要对当前帧图像整体进行所述迭代计算的过程。而实际上由于人脸的移动范围有限,只需要对人脸的移动范围所在的区域进行所述迭代计算过程即可。因此,若对当前帧图像整体进行所述的迭代计算,将会增加不必要的计算量,降低处理速度。
为进一步解决上述问题,本发明第三实施例提供一种人脸特征点定位方法,其相比于第一实施例或第二实施例的人脸特征点定位方法,参阅图8所示(图中以相比于第一实施例为例),本实施例的人脸特征点定位方法在步骤S3后进一步包括:
步骤S31,根据该图像变化量确定当前帧图像中的感兴趣区域(RegionOf Interest,简称ROI)。
具体而言,该感兴趣区域将根据上一帧图像中人脸的位置以及当前帧图像相对于上一帧图像中人脸的移动区域确定。而该移动区域则根据当前帧图像相对于上一帧图像中人脸在水平方向和垂直方向上的移动距离确定。该移动距离可以为一个常数a与该图像变化量的乘积,其中该常数为经验值。该图像变化量越大,说明人脸的移动区域越大,所确定的该感兴趣区域的面积也越大。
此外,步骤S31还可以对所确定的感兴趣区域进行光照归一化处理,从而在该感兴趣区域的光照环境很复杂的情况下消除光照对后续计算结果的影响。
与该步骤S31相应地,所述步骤S5将在该感兴趣区域中使用人脸特征点定位算法对该初始坐标进行迭代计算,以得到当前帧图像中人脸特征点的坐标。
综上所述,本实施例的人脸特征点定位方法仅对当前帧图像的感兴趣区域进行处理以得到当前帧图像中人脸特征点的坐标,可以进一步提高对视频数据中人脸特征点定位的处理速度。
第四实施例
根据第三实施例提供的人脸特征点定位方法定位视频数据的当前帧图像中人脸特征点的坐标,在当前帧图像相对于上一帧图像的变化非常大的情况下,如果仍是通过对上一帧图像中人脸特征点的坐标进行迭代计算以得到当前帧图像中人脸特征点的坐标,则所计算出的当前帧图像中人脸特征点的坐标将不够精确,甚至无法计算出当前帧图像中人脸特征点的坐标。
为进一步解决上述问题,参阅图9所示,本发明第四实施例提供一种人脸特征点定位方法,其相比于第三实施例的人脸特征点定位方法,本实施例的人脸特征点定位方法在步骤S31后进一步包括:
步骤S32,判断该图像变化量是否大于第二阈值(例如8%)。若该图像变化量不大于该第二阈值,则执行所述步骤S4。若该图像变化量大于该第二阈值,则执行步骤S33。
步骤S33,对该感兴趣区域进行人脸检测,获取该感兴趣区域中人脸特征点的坐标的训练值,并将所获取的该训练值定义为初始坐标,然后执行所述步骤S5。在本实施例中,该训练值可以通过大量样本的ASM训练得到。
综上所述,本实施例的人脸特征点定位方法在当前帧图像相对于上一帧图像的变化非常大的情况下,根据感兴趣区域中人脸特征点的坐标的训练值,重新定义所述初始坐标,可以提高所计算出的当前帧图像中人脸特征点的坐标的精确度。
第五实施例
为了进一步提高所计算出的当前帧图像中人脸特征点的坐标的精确度,参阅图10所示,本发明第五实施例提供一种人脸特征点定位方法,其相比于第一实施例的人脸特征点定位方法,本实施例的人脸特征点定位方法在步骤S5之前进一步包括:
步骤S51,预测当前帧图像中人脸特征点相对于上一帧图像的移动方向和移动速度。在本实施例中,可以使用卡尔曼滤波器对该移动方向和移动速度进行预测。
步骤S52,根据所预测的该移动方向和移动速度对所定义的初始坐标进行修正。具体而言,将所定义的初始坐标输入该卡尔曼滤波器,该卡尔曼滤波器即会预测当前帧图像中人脸特征点相对于上一帧图像的移动方向和移动速度,并根据所预测的该移动方向和移动速度对所定义的初始坐标进行修正,并输出修正后的初始坐标。
相应地,所述步骤S5将进一步使用人脸特征点定位算法对该修正后的初始坐标进行迭代计算以得到当前帧图像中人脸特征点的坐标。
此外,在步骤S5后进一步包括:
步骤S53,对所得到的该当前帧图像中人脸特征点的坐标及所预测的该移动方向和移动速度进行修正。在本实施例中,步骤S53也可以使用所述的卡尔曼滤波器根据所得到的该当前帧图像中人脸特征点的坐标对所预测的该移动方向和移动速度进行修正,并使用卡尔曼滤波器进一步对所得到的该当前帧图像中人脸特征点的坐标进行修正。
综上所述,本实施例的人脸特征点定位方法使用卡尔曼滤波器对当前帧图像中人脸特征点相对于上一帧图像的移动方向和移动速度进行预测,并根据所预测的移动方向和移动速度对所定义的初始坐标进行修正,以及对所预测的该移动方向和移动速度及所得到的当前帧图像中人脸特征点的坐标进行修正,可以进一步提高所计算出的当前帧图像中人脸特征点的坐标的精确度。
第六实施例
为了进一步提高所定位的当前帧图像中人脸特征点相对于上一帧图像移动的平滑度,参阅图11所示,本发明第六实施例提供一种人脸特征点定位方法,其相比于第一实施例的人脸特征点定位方法,本实施例的人脸特征点定位方法在步骤S5后进一步包括:
步骤S54,对所得到的当前帧图像中人脸特征点的坐标进行平滑处理。该平滑处理可通过以下公式实现:平滑后的当前帧图像中人脸特征点的坐标p=平滑前的当前帧图像中人脸特征点的坐标p1*b+平滑后的上一帧图像中人脸特征点的坐标p2*(1-b),其中b为预设的比例系数。
综上所述,本实施例的人脸特征点定位方法通过对所得到的当前帧图像中人脸特征点的坐标进行平滑处理,可以进一步提高所定位的当前帧图像中人脸特征点相对于上一帧图像移动的平滑度,避免产生人脸特征点抖动的视觉效果。
第七实施例
参阅图12所示,本发明第七实施例提供一种人脸特征点定位装置100,其包括跟踪模块101、计算模块102、设置模块103、获取模块104和定位模块105。可以理解,上述的各模块是指计算机程序或者程序段,用于执行某一项或多项特定的功能。此外,上述各模块的区分并不代表实际的程序代码也必须是分开的。
跟踪模块101,用于获取视频数据,在该视频数据的播放过程中利用视频跟踪技术得到实时的背景图像。
计算模块102,用于计算该视频数据的当前帧图像相对于该背景图像的图像变化量。具体而言,计算模块102先获取视频数据的当前帧图像,分别对该当前帧图像和背景图像进行灰度处理。然后,计算模块102将经灰度处理后的该当前帧图像与该背景图像相减,得到前景图像,并将该前景图像的灰度范围分段为至少两个灰度段,确定每一个灰度段对应的权值。最后,计算模块102计算该前景图像中每个像素的灰度值所属灰度段对应的权值之和与该前景图像的像素总数的比值,得到该图像变化量。
设置模块103,用于根据该图像变化量设置一迭代次数。
获取模块104,用于获取该视频数据的上一帧图像中人脸特征点的坐标,将所获取的坐标定义为初始坐标。
定位模块105,用于根据所设置的迭代次数,调用人脸特征点定位算法对该初始坐标进行迭代计算,以得到当前帧图像中人脸特征点的坐标。
对于以上各模块的具体工作过程,可进一步参考本发明第一实施例提供的人脸特征点定位方法,在此不再重复。
综上所述,本实施例提供的人脸特征点定位装置100在视频数据的上一帧图像的基础上通过迭代计算得到当前帧图像中人脸特征点的坐标,可以提高对视频数据中人脸特征点定位的处理速度,并且所定位的人脸特征点在上下帧图像间的移动较平滑,视觉效果较佳。
第八实施例
参阅图13所示,本发明第八实施例提供一种人脸特征点定位装置200,其相比于第七实施例提供的人脸特征点定位装置100,还包括第一判断模块201,该第一判断模块201在所述计算模块102执行后执行。
该第一判断模块201用于判断该图像变化量是否小于第一阈值。若该图像变化量不小于该第一阈值,则执行所述设置模块103。若该图像变化量小于该第一阈值,则该第一判断模块102获取上一帧图像中人脸特征点的坐标,并将该上一帧图像中人脸特征点的坐标作为当前帧图像中人脸特征点的坐标。
对于以上各模块的具体工作过程,可进一步参考本发明第二实施例提供的人脸特征点定位方法,在此不再重复。
综上所述,本实施例的人脸特征点定位装置200在当前帧图像相对于上一帧图像几乎没有变化的情况下,直接将上一帧图像中人脸特征点的坐标作为当前帧图像中人脸特征点的坐标,可以省略所述迭代计算的过程,从而进一步提高对视频数据中人脸特征点定位的处理速度。
第九实施例
参阅图14所示,本发明第九实施例提供一种人脸特征点定位装置300,其相比于第七实施例的人脸特征点定位装置100或第八实施例的人脸特征点定位装置200,还包括确定模块301,该确定模块301在所述设置模块103执行后执行。
该确定模块301,用于根据该图像变化量确定当前帧图像中的感兴趣区域。此外,确定模块301还用于对所确定的感兴趣区域进行光照归一化处理。相应地,所述定位模块105将在该感兴趣区域中使用人脸特征点定位算法对该初始坐标进行迭代计算,以得到当前帧图像中人脸特征点的坐标。
对于以上各模块的具体工作过程,可进一步参考本发明第三实施例提供的人脸特征点定位方法,在此不再重复。
综上所述,本实施例的人脸特征点定位装置300仅对当前帧图像的感兴趣区域进行处理以得到当前帧图像中人脸特征点的坐标,可以进一步提高对视频数据中人脸特征点定位的处理速度。
第十实施例
参阅图15所示,本发明第十实施例提供一种人脸特征点定位装置400,其相比于第九实施例的人脸特征点定位装置300,还包括第二判断模块401和检测模块402,该第二判断模块401在所述确定模块301执行后执行。
该第二判断模块401用于判断该图像变化量是否大于第二阈值。若该图像变化量不大于该第二阈值,则执行所述获取模块104。若该图像变化量大于该第二阈值,则执行该检测模块402。
该检测模块402用于对该感兴趣区域进行人脸检测,获取该感兴趣区域中人脸特征点的坐标的训练值,并将所获取的该训练值定义为初始坐标,然后执行所述定位模块105。
对于以上各模块的具体工作过程,可进一步参考本发明第四实施例提供的人脸特征点定位方法,在此不再重复。
综上所述,本实施例的人脸特征点定位装置400在当前帧图像相对于上一帧图像的变化非常大的情况下,根据感兴趣区域中人脸特征点的坐标的预估值,重新定义所述初始坐标,可以提高所计算出的当前帧图像中人脸特征点的坐标的精确度。
第十一实施例
参阅图16所示,本发明第十一实施例提供一种人脸特征点定位装置500,其相比于第七实施例的人脸特征点定位装置100,还包括预测模块501。在执行所述定位模块105之前,先执行预测模块501。
预测模块502用于预测当前帧图像中人脸特征点相对于上一帧图像的移动方向和移动速度,并根据所预测的该移动方向和移动速度对所定义的初始坐标进行修正。
相应地,所述定位模块105将进一步使用人脸特征点定位算法对该修正后的初始坐标进行迭代计算以得到当前帧图像中人脸特征点的坐标。
此外,所述定位模块105还将对所得到的当前帧图像中人脸特征点的坐标及所预测的该移动方向和移动速度进行修正。
对于以上各模块的具体工作过程,可进一步参考本发明第五实施例提供的人脸特征点定位方法,在此不再重复。
综上所述,本实施例的人脸特征点定位装置500使用卡尔曼滤波器对当前帧图像中人脸特征点相对于上一帧图像的移动方向和移动速度进行预测,并根据所预测的移动方向和移动速度对所定义的初始坐标进行修正,以及对所预测的该移动方向和移动速度及所得到的当前帧图像中人脸特征点的坐标进行修正,可以进一步提高所计算出的当前帧图像中人脸特征点的坐标的精确度。
第十二实施例
参阅图17所示,本发明第十二实施例提供一种人脸特征点定位装置600,其相比于第七实施例的人脸特征点定位装置100,还包括平滑模块601。在执行所述定位模块105之后,执行该平滑模块601。
该平滑模块601用于对所得到的当前帧图像中人脸特征点的坐标进行平滑处理。
对于以上各模块的具体工作过程,可进一步参考本发明第六实施例提供的人脸特征点定位方法,在此不再重复。
综上所述,本实施例的人脸特征点定位装置600通过对所得到的当前帧图像中人脸特征点的坐标进行平滑处理,可以进一步提高所定位的当前帧图像中人脸特征点相对于上一帧图像移动的平滑度,避免产生人脸特征点抖动的视觉效果。
此外,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪存。上述的计算机可执行指令用于让计算机或者类似的计算装置完成上述的人脸特征点定位方法中的各种操作。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。