掌桥专利:专业的专利平台
掌桥专利
首页

图像变换方法和装置

文献发布时间:2023-06-19 13:26:15


图像变换方法和装置

技术领域

本申请涉及图像处理技术,尤其涉及一种图像变换方法和装置。

背景技术

摄影已经成为记录生活的重要载体,近年来使用手机的前置摄像头“自拍”越来越受到人们的喜爱,而由于自拍时摄像头到人脸的距离较近,“近大远小”的人脸透视畸变问题变得越来越显著,例如,近距离拍摄人像时,由于人脸中不同部位到摄像头的距离存在差异,通常会导致鼻子偏大,同时脸部被拉长,影响人像的主观效果。因此需要通过图像变换处理,例如,针对图像中目标的距离、位姿、位置等的变换,在保证不影响人像真实性的前提下,消除“近大远小”的透视畸变效应,提高人像的美观程度。

摄像头的成像过程是得到了三维物体的二维图像,常用的图像处理算法是针对二维图像的,但这使得基于二维图像变换后得到的图像很难实现三维物体真实变换的效果。

发明内容

本申请提供一种图像变换方法和装置,以提升自拍场景下的拍摄成像效果。

第一方面,本申请提供一种图像变换方法,包括:通过前置摄像头针对目标场景获取第一图像,所述目标场景包括目标人物的人脸;获取所述目标人物的人脸与所述前置摄像头之间的目标距离;当所述目标距离小于预设阈值时,对所述第一图像进行第一处理得到第二图像;所述第一处理包括根据所述目标距离对所述第一图像进行畸变矫正;其中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

第一图像是在用户进行自拍的场景下,由终端的前置摄像头获取到的。第一图像包括两种情况,第一种情况是用户没有触发快门时,第一图像还没有在图像传感器上成像,仅是摄像头获取到的一个原始画面;另一种情况是用户触发了快门,第一图像是在图像传感器上已成像的原始图像。因此相对于第一图像,第二图像也包括两种情况,对应于前一种情况,第二图像是基于摄像头获取的原始画面进行畸变矫正得到一个矫正后的画面,该画面同样没有在图像传感器上成像,仅作为预览图像供用户看;对应于后一种情况,第二图像是基于在图像传感器上已成像的原始图像进行畸变矫正得到一个矫正后的图像,终端可以保存该矫正后的图像,将其存如图片库中。

本申请通过借助三维模型实现图像的三维变换效果,对近距离拍摄的图像中的目标人物的人脸进行透视畸变矫正,使得矫正后的目标人物的人脸的五官的相对比例和相对位置更接近于目标人物的人脸五官的相对比例和相对位置,可以显著提升自拍场景下的拍摄成像效果。

在一种可能的实现方式中,所述目标距离包括所述目标人物的人脸上的最前端部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的指定部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的中心位置与所述前置摄像头之间的距离。

目标人物的人脸与摄像头之间的目标距离可以是目标人物的人脸上的最前端部位(例如鼻子)与摄像头之间的距离;或者,目标人物的人脸与摄像头之间的目标距离也可以是目标人物的人脸上的指定部位(例如眼睛、嘴巴或者鼻子等)与摄像头之间的距离;或者,目标人物的人脸与摄像头之间的目标距离还可以是目标人物的人脸上的中心位置(例如,目标人物正面照上的鼻子,或者目标人物侧面照上颧骨位置等)与摄像头之间的距离。需要说明的是,对上述目标距离的定义可以视第一图像的具体情况而定,本申请对此不作具体限定。

在一种可能的实现方式中,所述获取所述目标人物的人脸与所述前置摄像头之间的目标距离,包括:获取所述目标人物的人脸在所述第一图像中的屏占比;根据所述屏占比和所述前置摄像头的视场角FOV得到所述目标距离。

在一种可能的实现方式中,所述获取所述目标人物的人脸与所述前置摄像头之间的目标距离,包括:通过距离传感器获取所述目标距离,所述距离传感器包括飞行时间测距法TOF传感器、结构光传感器或者双目传感器。

本申请可以采用计算人脸屏占比的方式获取上述目标距离,即先获取目标人物的人脸在第一图像中的屏占比(人脸的像素面积与第一图像的像素面积的比值),然后根据该屏占比和前置摄像头的FOV得到上述目标距离。也可以通过距离传感器测量得到上述目标距离。还可以采用其他方式获取该目标距离,本申请对此不做具体限定。

在一种可能的实现方式中,所述预设阈值小于80厘米。

在一种可能的实现方式中,所述预设阈值为50厘米。

本申请设定了一个阈值,认为目标人物的人脸与前置摄像头之间的目标距离小于该阈值时,获取到的包含目标人物的人脸的第一图像存在畸变,需要对其进行畸变矫正。该预设阈值的取值范围在80厘米以内,可选的,该预设阈值可以设置为50厘米。需要说明的是,对于预设阈值的具体取值可以视前置摄像头的性能、拍摄光照等情况而定,本申请对此不作具体限定。

在一种可能的实现方式中,所述第二图像包括预览图像或者触发快门后得到的图像。

第二图像可以是前置摄像头获取的预览图像,即快门被触发前,前置摄像头可以获取正对着目标场景区域的第一图像,终端采用上述方法对该第一图像进行透视畸变矫正后得到第二图像,将第二图像显示于终端的屏幕上,此时用户看到的第二图像是已经做过透视畸变矫正的预览图像。第二图像也可以是触发快门后得到的图像,即快门被触发后,第一图像是在终端的图像传感器上成像的图像,终端采用上述方法对第一图像进行透视畸变矫正后得到第二图像,将第二图像保存起来并显示于终端的屏幕上,此时用户看到的第二图像是已经做过透视畸变矫正、且已经保存的图片库中的图像。

在一种可能的实现方式中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌,包括:所述第二图像中的目标人物的五官的相对比例相较于所述第一图像中的目标人物的五官的相对比例更接近于所述目标人物的人脸五官的相对比例;和/或,所述第二图像中的目标人物的五官的相对位置相较于所述第一图像中的目标人物的五官的相对位置更接近于所述目标人物的人脸五官的相对位置。

当获取第一图像时,目标人物的人脸与前置摄像头之间的目标距离小于预设阈值,很可能由于前置摄像头的“近大远小”的人脸透视畸变问题,导致第一图像中的目标人物的人脸的五官发生大小变化、拉伸等,其五官的相对比例和相对位置偏离目标人物的人脸的真实样貌的相对比例和相对位置。通过对第一图像进行透视畸变矫正得到的第二图像,可以消除上述目标人物的人脸的五官发生大小变化、拉伸等情况,因此使得第二图像中的目标人物的人脸的五官的相对比例和相对位置趋近于、甚至恢复到目标人物的人脸的真实样貌的相对比例和相对位置。

在一种可能的实现方式中,所述根据所述目标距离对所述第一图像进行畸变矫正,包括:根据所述目标距离将所述第一图像中的所述目标人物的人脸与标准人脸模型进行拟合得到所述目标人物的人脸的深度信息;根据所述深度信息对所述第一图像进行透视畸变矫正得到所述第二图像。

在一种可能的实现方式中,所述根据所述深度信息对所述第一图像进行透视畸变矫正得到所述第二图像,包括:建立所述目标人物的人脸的第一三维模型;对所述第一三维模型的位姿和/或形状进行变换得到所述目标人物的人脸的第二三维模型;根据所述深度信息、所述第一三维模型和所述第二三维模型获取所述目标人物的人脸的像素位移向量场;根据所述目标人物的人脸的像素位移向量场得到所述第二图像。

基于目标人物的人脸建立三维模型,再通过三维模型实现图像的三维变换效果,基于变换前和变换后的三维模型之间采样点的关联获取目标人物的人脸的像素位移向量场,进而得到变换后的二维图像,可以实现对近距离拍摄的图像中的目标人物的人脸进行透视畸变矫正,使得矫正后的目标人物的人脸的五官的相对比例和相对位置更接近于目标人物的人脸五官的相对比例和相对位置,可以显著提升自拍场景下的拍摄成像效果。

在一种可能的实现方式中,根据所述深度信息对所述第一三维模型进行透视投影得到第一坐标集合,所述第一坐标集合包括对应于所述第一三维模型中的多个像素的坐标值;根据所述深度信息对所述第二三维模型进行透视投影得到第二坐标集合,所述第二坐标集合包括对应于所述第二三维模型中的多个像素的坐标值;计算第一坐标值和第二坐标值之间的坐标差得到所述目标物体的像素位移向量场,所述第一坐标值包括第一像素在所述第一坐标集合中对应的坐标值,所述第二坐标值包括所述第一像素在所述第二坐标集合中对应的坐标值,所述第一像素包括所述第一三维模型和所述第二三维模型包含的多个相同像素中的任意一个。

第二方面,本申请提供一种图像变换方法,包括:获取第一图像,所述第一图像包括目标人物的人脸;其中,所述第一图像中的所述目标人物的人脸存在畸变;显示畸变矫正功能菜单;获取用户在所述畸变矫正功能菜单上输入的变换参数,所述变换参数至少包括等效模拟拍摄距离,所述等效模拟拍摄距离用于模拟拍摄终端在拍摄所述目标人物的人脸时,所述目标人物的人脸和摄像头之间的距离;对所述第一图像进行第一处理得到第二图像;所述第一处理包括根据所述变换参数对所述第一图像进行畸变矫正;其中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

本申请根据变换参数对第一图像进行透视畸变矫正得到第二图像,该第二图像中的目标人物的人脸相较于第一图像中的目标人物的人脸更接近于目标人物的人脸的真实样貌,即第二图像中的目标人物的五官的相对比例和相对位置相较于第一图像中的目标人物的五官的相对比例和相对位置更接近于目标人物的人脸五官的相对比例和相对位置。

在一种可能的实现方式中,所述第一图像中的所述目标人物的人脸存在畸变是由第二终端在在拍摄所述第一图像时所述目标人物的人脸与所述第二终端之间的目标距离小于第一预设阈值引起的;其中,所述目标距离包括所述目标人物的人脸上的最前端部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的指定部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的中心位置与所述前置摄像头之间的距离。

在一种可能的实现方式中,所述目标距离是通过所述目标人物的人脸在所述第一图像中的屏占比和所述第二终端的摄像头的FOV得到的;或者,所述目标距离是通过所述第一图像的可交换图像文件格式EXIF信息中的等效焦距得到的。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整等效模拟拍摄距离的选项;所述获取用户在所述畸变矫正功能菜单上输入的变换参数,包括:根据用户对所述调整等效模拟拍摄距离的选项中的控件或滑块的操作所触发的指令获取所述等效模拟拍摄距离。

在一种可能的实现方式中,所述畸变矫正功能菜单在初始显示时,所述调整等效模拟拍摄距离的选项中的等效模拟拍摄距离的值包括默认值或者预先计算得到的值。

在一种可能的实现方式中,所述显示畸变矫正功能菜单之前,还包括:当所述目标人物的人脸存在畸变时,显示弹窗,所述弹窗用于提供是否进行畸变矫正的选择控件;当用户在所述弹窗上点击进行畸变矫正的控件时,响应用户操作所产生的指令。

在一种可能的实现方式中,所述显示畸变矫正功能菜单之前,还包括:当所述目标人物的人脸存在畸变时,显示畸变矫正控件,所述畸变矫正控件用于打开所述畸变矫正功能菜单;当用户点击所述畸变矫正控件时,响应用户操作所产生的指令。

在一种可能的实现方式中,所述第一图像中的所述目标人物的人脸存在畸变是由第二终端在拍摄所述第一图像时,摄像头的视场角FOV大于第二预设阈值,且在所述目标人物的人脸与所述FOV的边缘之间的像素距离小于第三预设阈值引起的;其中,所述像素距离包括所述目标人物的人脸上的最前端部位与所述FOV的边缘之间的像素数量;或者,所述目标人物的人脸上的指定部位与所述FOV的边缘之间的像素数量;或者,所述目标人物的人脸上的中心位置与所述FOV的边缘之间的像素数量。

在一种可能的实现方式中,所述FOV通过所述第一图像的EXIF信息得到。

在一种可能的实现方式中,所述第二预设阈值为90°,所述第三预设阈值为所述第一图像的长度或宽度的四分之一。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整位移距离的选项;所述获取用户在所述畸变矫正功能菜单上输入的变换参数,包括:根据用户在所述调整位移距离的选项中的控件或滑块的操作所触发的指令获取调整方向和位移距离。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整五官的相对位置和/或相对比例的选项;所述获取用户在所述畸变矫正功能菜单上输入的变换参数,包括:根据用户在所述调整五官的相对位置和/或相对比例的选项中的控件或滑块的操作所触发的指令获取调整方向、位移距离和/或五官尺寸。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整角度的选项;所述获取用户在所述畸变矫正功能菜单上输入的变换参数,包括:根据用户在所述调整角度的选项中的控件或滑块的操作所触发的指令获取调整方向和调整角度;或者,所述畸变矫正功能菜单包括调整表情的选项;所述获取用户在所述畸变矫正功能菜单上输入的变换参数,包括:根据用户在所述调整表情的选项中的控件或滑块的操作所触发的指令获取新的表情模板;或者,所述畸变矫正功能菜单包括调整动作的选项;所述获取用户在所述畸变矫正功能菜单上输入的变换参数,包括:根据用户在所述调整动作的选项中的控件或滑块的操作所触发的指令获取新的动作模板。

在一种可能的实现方式中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌,包括:所述第二图像中的目标人物的五官的相对比例相较于所述第一图像中的目标人物的五官的相对比例更接近于所述目标人物的人脸五官的相对比例;和/或,所述第二图像中的目标人物的五官的相对位置相较于所述第一图像中的目标人物的五官的相对位置更接近于所述目标人物的人脸五官的相对位置。

在一种可能的实现方式中,所述根据所述变换参数对所述第一图像进行畸变矫正,包括:根据所述目标距离将所述第一图像中的所述目标人物的人脸与标准人脸模型进行拟合得到所述目标人物的人脸的深度信息;根据所述深度信息和所述变换参数对所述第一图像进行透视畸变矫正得到所述第二图像。

在一种可能的实现方式中,所述根据所述深度信息和所述变换参数对所述第一图像进行透视畸变矫正得到所述第二图像,包括:建立所述目标人物的人脸的第一三维模型;根据所述变换参数对所述第一三维模型的位姿和/或形状进行变换得到所述目标人物的人脸的第二三维模型;根据所述深度信息、所述第一三维模型和所述第二三维模型获取所述目标人物的人脸的像素位移向量场;根据所述目标人物的人脸的像素位移向量场得到所述第二图像。

在一种可能的实现方式中,所述根据所述深度信息、所述第一三维模型和所述第二三维模型获取所述目标人物的人脸的像素位移向量场,包括:根据所述深度信息对所述第一三维模型进行透视投影得到第一坐标集合,所述第一坐标集合包括对应于所述第一三维模型中的多个像素的坐标值;根据所述深度信息对所述第二三维模型进行透视投影得到第二坐标集合,所述第二坐标集合包括对应于所述第二三维模型中的多个像素的坐标值;计算第一坐标值和第二坐标值之间的坐标差得到所述目标物体的像素位移向量场,所述第一坐标值包括第一像素在所述第一坐标集合中对应的坐标值,所述第二坐标值包括所述第一像素在所述第二坐标集合中对应的坐标值,所述第一像素包括所述第一三维模型和所述第二三维模型包含的多个相同像素中的任意一个。

第三方面,本申请提供一种图像变换方法,所述方法应用于第一终端,所述方法包括:获取第一图像,所述第一图像包括目标人物的人脸;其中,所述第一图像中的所述目标人物的人脸存在畸变;在屏幕上显示畸变矫正功能菜单,所述畸变矫正功能菜单包括一个或多个滑块和/或一个或多个控件;接收畸变矫正指令,所述畸变矫正指令包括用户对所述一个或多个滑块和/或所述一个或多个控件进行触控操作时产生的变换参数,所述变换参数至少包括等效模拟拍摄距离,所述等效模拟拍摄距离用于模拟拍摄终端在拍摄所述目标人物的人脸时,所述目标人物的人脸和摄像头之间的距离;根据所述变换参数对所述第一图像进行第一处理得到第二图像;所述第一处理包括对所述第一图像进行畸变矫正;其中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

第四方面,本申请提供一种图像变换装置,包括:获取模块,用于通过前置摄像头针对目标场景获取第一图像,所述目标场景包括目标人物的人脸;获取所述目标人物的人脸与所述前置摄像头之间的目标距离;处理模块,用于当所述目标距离小于预设阈值时,对所述第一图像进行第一处理得到第二图像;所述第一处理包括根据所述目标距离对所述第一图像进行畸变矫正;其中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

在一种可能的实现方式中,所述目标距离包括所述目标人物的人脸上的最前端部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的指定部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的中心位置与所述前置摄像头之间的距离。

在一种可能的实现方式中,所述获取模块,具体用于获取所述目标人物的人脸在所述第一图像中的屏占比;根据所述屏占比和所述前置摄像头的视场角FOV得到所述目标距离。

在一种可能的实现方式中,所述获取模块,具体用于通过距离传感器获取所述目标距离,所述距离传感器包括飞行时间测距法TOF传感器、结构光传感器或者双目传感器。

在一种可能的实现方式中,所述预设阈值小于80厘米。

在一种可能的实现方式中,所述第二图像包括预览图像或者触发快门后得到的图像。

在一种可能的实现方式中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌,包括:所述第二图像中的目标人物的五官的相对比例相较于所述第一图像中的目标人物的五官的相对比例更接近于所述目标人物的人脸五官的相对比例;和/或,所述第二图像中的目标人物的五官的相对位置相较于所述第一图像中的目标人物的五官的相对位置更接近于所述目标人物的人脸五官的相对位置。

在一种可能的实现方式中,所述处理模块,具体用于根据所述目标距离将所述第一图像中的所述目标人物的人脸与标准人脸模型进行拟合得到所述目标人物的人脸的深度信息;根据所述深度信息对所述第一图像进行透视畸变矫正得到所述第二图像。

在一种可能的实现方式中,所述处理模块,具体用于建立所述目标人物的人脸的第一三维模型;对所述第一三维模型的位姿和/或形状进行变换得到所述目标人物的人脸的第二三维模型;根据所述深度信息、所述第一三维模型和所述第二三维模型获取所述目标人物的人脸的像素位移向量场;根据所述目标人物的人脸的像素位移向量场得到所述第二图像。

在一种可能的实现方式中,所述处理模块,具体用于根据所述深度信息对所述第一三维模型进行透视投影得到第一坐标集合,所述第一坐标集合包括对应于所述第一三维模型中的多个像素的坐标值;根据所述深度信息对所述第二三维模型进行透视投影得到第二坐标集合,所述第二坐标集合包括对应于所述第二三维模型中的多个像素的坐标值;计算第一坐标值和第二坐标值之间的坐标差得到所述目标物体的像素位移向量场,所述第一坐标值包括第一像素在所述第一坐标集合中对应的坐标值,所述第二坐标值包括所述第一像素在所述第二坐标集合中对应的坐标值,所述第一像素包括所述第一三维模型和所述第二三维模型包含的多个相同像素中的任意一个。

第五方面,本申请提供一种图像变换装置,包括:获取模块,用于获取第一图像,所述第一图像包括目标人物的人脸;其中,所述第一图像中的所述目标人物的人脸存在畸变;显示模块,用于显示畸变矫正功能菜单;所述获取模块,还用于获取用户在所述畸变矫正功能菜单上输入的变换参数,所述变换参数至少包括等效模拟拍摄距离,所述等效模拟拍摄距离用于模拟拍摄终端在拍摄所述目标人物的人脸时,所述目标人物的人脸和摄像头之间的距离;处理模块,用于对所述第一图像进行第一处理得到第二图像;所述第一处理包括根据所述变换参数对所述第一图像进行畸变矫正;其中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

在一种可能的实现方式中,所述第一图像中的所述目标人物的人脸存在畸变是由第二终端在在拍摄所述第一图像时所述目标人物的人脸与所述第二终端之间的目标距离小于第一预设阈值引起的;其中,所述目标距离包括所述目标人物的人脸上的最前端部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的指定部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的中心位置与所述前置摄像头之间的距离。

在一种可能的实现方式中,所述目标距离是通过所述目标人物的人脸在所述第一图像中的屏占比和所述第二终端的摄像头的FOV得到的;或者,所述目标距离是通过所述第一图像的可交换图像文件格式EXIF信息中的等效焦距得到的。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整等效模拟拍摄距离的选项;所述获取模块,具体用于根据用户对所述调整等效模拟拍摄距离的选项中的控件或滑块的操作所触发的指令获取所述等效模拟拍摄距离。

在一种可能的实现方式中,所述畸变矫正功能菜单在初始显示时,所述调整等效模拟拍摄距离的选项中的等效模拟拍摄距离的值包括默认值或者预先计算得到的值。

在一种可能的实现方式中,所述显示模块,还用于当所述目标人物的人脸存在畸变时,显示弹窗,所述弹窗用于提供是否进行畸变矫正的选择控件;当用户在所述弹窗上点击进行畸变矫正的控件时,响应用户操作所产生的指令。

在一种可能的实现方式中,所述显示模块,还用于当所述目标人物的人脸存在畸变时,显示畸变矫正控件,所述畸变矫正控件用于打开所述畸变矫正功能菜单;当用户点击所述畸变矫正控件时,响应用户操作所产生的指令。

在一种可能的实现方式中,所述第一图像中的所述目标人物的人脸存在畸变是由第二终端在拍摄所述第一图像时,摄像头的视场角FOV大于第二预设阈值,且在所述目标人物的人脸与所述FOV的边缘之间的像素距离小于第三预设阈值引起的;其中,所述像素距离包括所述目标人物的人脸上的最前端部位与所述FOV的边缘之间的像素数量;或者,所述目标人物的人脸上的指定部位与所述FOV的边缘之间的像素数量;或者,所述目标人物的人脸上的中心位置与所述FOV的边缘之间的像素数量。

在一种可能的实现方式中,所述FOV通过所述第一图像的EXIF信息得到。

在一种可能的实现方式中,所述第二预设阈值为90°,所述第三预设阈值为所述第一图像的长度或宽度的四分之一。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整位移距离的选项;所述获取模块,还用于根据用户在所述调整位移距离的选项中的控件或滑块的操作所触发的指令获取调整方向和位移距离。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整五官的相对位置和/或相对比例的选项;所述获取模块,还用于根据用户在所述调整五官的相对位置和/或相对比例的选项中的控件或滑块的操作所触发的指令获取调整方向、位移距离和/或五官尺寸。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整角度的选项;所述获取模块,还用于根据用户在所述调整角度的选项中的控件或滑块的操作所触发的指令获取调整方向和调整角度;或者,所述畸变矫正功能菜单包括调整表情的选项;所述获取模块,还用于根据用户在所述调整表情的选项中的控件或滑块的操作所触发的指令获取新的表情模板;或者,所述畸变矫正功能菜单包括调整动作的选项;所述获取模块,还用于根据用户在所述调整动作的选项中的控件或滑块的操作所触发的指令获取新的动作模板。

在一种可能的实现方式中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌,包括:所述第二图像中的目标人物的五官的相对比例相较于所述第一图像中的目标人物的五官的相对比例更接近于所述目标人物的人脸五官的相对比例;和/或,所述第二图像中的目标人物的五官的相对位置相较于所述第一图像中的目标人物的五官的相对位置更接近于所述目标人物的人脸五官的相对位置。

在一种可能的实现方式中,所述处理模块,具体用于根据所述目标距离将所述第一图像中的所述目标人物的人脸与标准人脸模型进行拟合得到所述目标人物的人脸的深度信息;根据所述深度信息和所述变换参数对所述第一图像进行透视畸变矫正得到所述第二图像。

在一种可能的实现方式中,所述处理模块,具体用于建立所述目标人物的人脸的第一三维模型;根据所述变换参数对所述第一三维模型的位姿和/或形状进行变换得到所述目标人物的人脸的第二三维模型;根据所述深度信息、所述第一三维模型和所述第二三维模型获取所述目标人物的人脸的像素位移向量场;根据所述目标人物的人脸的像素位移向量场得到所述第二图像。

在一种可能的实现方式中,所述处理模块,具体用于根据所述深度信息对所述第一三维模型进行透视投影得到第一坐标集合,所述第一坐标集合包括对应于所述第一三维模型中的多个像素的坐标值;根据所述深度信息对所述第二三维模型进行透视投影得到第二坐标集合,所述第二坐标集合包括对应于所述第二三维模型中的多个像素的坐标值;计算第一坐标值和第二坐标值之间的坐标差得到所述目标物体的像素位移向量场,所述第一坐标值包括第一像素在所述第一坐标集合中对应的坐标值,所述第二坐标值包括所述第一像素在所述第二坐标集合中对应的坐标值,所述第一像素包括所述第一三维模型和所述第二三维模型包含的多个相同像素中的任意一个。

在一种可能的实现方式中,还包括:录制模块;所述获取模块,还用于根据用户对录制控件的触发操作获取录制指令;所述录制模块,用于根据所述录制指令启动对所述第二图像的获取过程的录制,直到收到用户对停止录制控件的触发操作产生的停止录制指令。

第六方面,本申请提供一种图像变换装置,包括:获取模块,用于第一图像,所述第一图像包括目标人物的人脸;其中,所述第一图像中的所述目标人物的人脸存在畸变;显示模块,用于在屏幕上显示畸变矫正功能菜单,所述畸变矫正功能菜单包括一个或多个滑块和/或一个或多个控件;接收畸变矫正指令,所述畸变矫正指令包括用户对所述一个或多个滑块和/或所述一个或多个控件进行触控操作时产生的变换参数,所述变换参数至少包括等效模拟拍摄距离,所述等效模拟拍摄距离用于模拟拍摄终端在拍摄所述目标人物的人脸时,所述目标人物的人脸和摄像头之间的距离;处理模块,用于根据所述变换参数对所述第一图像进行第一处理得到第二图像;所述第一处理包括对所述第一图像进行畸变矫正;其中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

第七方面,本申请提供一种设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一至三方面中任一项所述的方法。

第八方面,本申请提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一至三方面中任一项所述的方法。

第九方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一至三方面中任一项所述的方法。

第十方面,本申请还提供一种图像处理方法,该方法包括:获取第一图像,所述第一图像中包括目标人物的人脸;其中,所述第一图像中的所述目标人物的人脸存在畸变;获取目标距离;所述目标距离用于表征拍摄第一图像时,所述目标人物的人脸与拍摄终端之间的距离;对所述第一图像进行第一处理得到第二图像;其中,所述第一处理包括根据所述目标距离对所述第一图像的目标人物的人脸进行畸变矫正;所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

第十一方面,本申请还提供一种图像处理装置,该装置包括:获取模块,用于获取第一图像,所述第一图像中包括目标人物的人脸;其中,所述第一图像中的所述目标人物的人脸存在畸变;还用于获取目标距离;所述目标距离用于表征拍摄第一图像时,所述目标人物的人脸与拍摄终端之间的距离;处理模块,用于对所述第一图像的目标人物的人脸进行第一处理得到第二图像;其中,所述第一处理包括根据所述目标距离对所述第一图像进行畸变矫正;所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

根据第十方面或第十一方面,在一种可能的设计中,上述方法或装置可以应用于第一终端。若第一终端实时拍摄第一图像时,则目标距离可以理解为第一终端与目标人物之间的距离,即第一终端与目标人物之间的拍摄距离;若第一图像是调用的历史图像,则目标距离可以理解为第二终端在拍摄所述第一图像时与第一图像中的目标人物之间的距离;应理解,第一终端和第二终端可以是相同终端也可以是不同的终端。

根据第十方面或第十一方面,在一种可能的设计中,第一处理还可以包括更多的现有颜色处理方法或图像处理方法,例如常规的ISP处理,或者特定的滤镜处理。

根据第十方面或第十一方面,在一种可能的设计中,在对所述第一图像进行第一处理得到第二图像之前,所述方法还包括判断下列条件的一个或多个成立:

条件1:第一图像中,目标人物的人脸的完整度大于预设完整度阈值;或者,判断目标人物的人脸的五官完整。即能让终端识别出可以进行畸变矫正的人脸场景。

条件2:目标人物的人脸偏离正脸的pitch角度符合第一角度范围,且目标人物的人脸偏离正脸的yaw角度符合第二角度范围;作为举例,所述第一角度范围位于[-30°,30°]内,所述第二角度范围位于[-30°,30°]内。即,进行畸变矫正的人脸图像需要尽可能接近于正脸。

条件3:对当前拍摄场景进行人脸检测,且检测到的有效的人脸仅有一个;有效的人脸为目标人物的人脸。即,畸变矫正可以只针对一个人物主体。

条件4:判断目标距离小于等于预设的畸变拍摄距离。拍摄距离通常是产生人物畸变的重要要素。作为举例,畸变拍摄距离不大于60cm,如60cm、50cm等。

条件5:判断终端当前正在使能的摄像头是前置摄像头,前置摄像头用于采集第一图像。前置拍摄也是产生人物畸变的重要原因。

条件6:终端当前的拍照模式为预设拍照模式,或者开启了畸变矫正功能。如人像拍摄,或默认拍摄,或其他特定拍摄模式;或者终端使能了畸变矫正功能。

应理解,以上一个或多个条件的满足可以作为触发进行畸变矫正的判决条件。若某些条件不满足,可不触发畸变矫正。上述条件以及自由组合方式多种多样,本发明不予以穷举,可以根据实际设计需求灵活定义,其有可能的自由组合方式也在本发明保护的范围内。相应地,上述装置还包括判断模块,用于判断上述条件是否成立。

根据第十方面或第十一方面,在一种可能的设计中,获取第一图像包括:通过摄像头针对目标场景采集一帧图像,根据所述一帧图像获取第一图像;或者,通过摄像头针对目标场景采集多帧图像,根据所述多帧图像合成第一图像;或者,从本地或云端存储的图像中调取第一图像。其中,摄像头可以是上述第一终端的;且该摄像头可以是前置或后置摄像头。可选的,若第一终端采集第一图像时,可以预先将拍照模式设置为预设拍照模式或开启畸变矫正功能。相应地,该方法具体可以由获取模块执行。

根据第十方面或第十一方面,在一种可能的设计中,目标人物的人脸与拍摄终端之间的距离为:所述目标人物的人脸上的最前端部位、中心位置、眉毛、眼睛、鼻子、嘴巴或耳朵与所述拍摄终端之间的距离。获取目标距离包括:获取目标人物的人脸在第一图像中的屏占比;根据所述屏占比和所述第一图像的视场角FOV得到所述目标距离;或者,根据第一图像的可交换图像文件格式EXIF信息得到所述目标距离;或者,通过距离传感器获取所述目标距离,所述距离传感器包括飞行时间测距TOF传感器、结构光传感器或者双目传感器。相应地,该方法具体可以由获取模块执行。

根据第十方面或第十一方面,在一种可能的设计中,根据所述目标距离对所述第一图像进行畸变矫正具体包括:获取矫正距离;针对于同一目标距离,所述矫正距离的值越大,畸变矫正的程度越大;获取感兴趣区域;感兴趣区域包括眉毛、眼睛、鼻子、嘴巴或耳朵中的至少一个区域;根据所述目标距离、所述感兴趣区域和所述矫正距离对所述第一图像进行畸变矫正。相应地,该方法具体可以由处理模块执行。

根据第十方面或第十一方面,在一种可能的设计中,获取矫正距离包括:根据预设的拍摄距离与矫正距离的对应关系,获取所述目标距离相对应的矫正距离。相应地,该方法具体可以由处理模块执行。

根据第十方面或第十一方面,在一种可能的设计中,获取矫正距离包括:显示畸变矫正功能菜单;接受用户基于所述畸变矫正功能菜单中输入的控件调节指令;所述控件调节指令用于确定所述矫正距离。显示畸变矫正功能菜单包括:显示畸变矫正控件,所述畸变矫正控件用于打开所述畸变矫正功能菜单;响应用户针对所述畸变矫正控件的使能,显示畸变矫正功能菜单。所述畸变矫正功能菜单包括用于确定所述矫正距离的控件、和/或选择感兴趣区域的控件、和/或调整表情的控件、和/或调整姿态的控件,可以是其中的一种或多个的组合,此处不予以一一列举,其可能的方式都应属于本发明的保护范围。相应地,显示方式和操作方式可以有装置中包括的显示模块来执行。

根据第十方面或第十一方面,在一种可能的设计中,根据所述目标距离和所述矫正距离对所述第一图像进行畸变矫正包括:根据所述目标距离将所述第一图像中的所述目标人物的人脸与标准人脸模型拟合得到第一三维模型;所述第一三维模型为所述目标人物人脸对应的三维模型;基于所述矫正距离将所述第一三维模型进行坐标变换得到第二三维模型;基于所述第一图像的坐标系,将所述第一三维模型进行透视投影得到第一组投影点;基于所述第一图像的坐标系,将所述第二三维模型进行透视投影得到第二组投影点;得到位移向量,所述位移向量是通过所述第一组投影点和所述第二组投影点对准得到的;根据所述位移向量对所述第一图像进行变换,得到所述第二图像。相应地,该方法具体可以由处理模块执行。

根据第十方面或第十一方面,在一种可能的设计中,根据所述目标距离、所述感兴趣区域和所述矫正距离对所述第一图像进行畸变矫正包括:根据所述目标距离将所述第一图像中的所述目标人物的人脸与标准人脸模型拟合得到第一三维模型;所述第一三维模型为所述目标人物人脸对应的三维模型;基于所述矫正距离将所述第一三维模型进行坐标变换得到第二三维模型;将所述第一三维模型中所述感兴趣区域对应的模型区域进行透视投影得到第一组投影点;将所述第二三维模型中所述感兴趣区域对应的模型区域进行透视投影得到第二组投影点;得到位移向量,所述位移向量是通过所述第一组投影点和所述第二组投影点对准得到的;根据所述位移向量对所述第一图像进行变换,得到所述第二图像。相应地,该方法具体可以由处理模块执行。

根据第十方面或第十一方面,在一种可能的设计中,当所述目标距离在第一预设距离范围内时,所述目标距离越小,所述畸变矫正的强度越大;其中,所述第一预设距离范围小于等于预设的畸变拍摄距离。所述目标人物的人脸偏离正脸的角度越大,所述畸变矫正的强度越小。

第十二方面,本发明还提供了一种终端设备,终端设备包含存储器、处理器、总线;存储器、处理器通过总线相连;其中,存储器用于存储计算机程序和指令;处理器用于调用所述存储器中存储的计算机程序和指令,使终端设备执行上述任意一种可能的设计方法。

本发明提供了多种灵活的畸变矫正的处理场景和发明构思,方便用户在实时拍照和浏览图库时快速地实现人脸畸变矫正。还给用户提供了很多自主的选择,和新鲜的界面、玩法,增加用户体验。在不违背自然规律的前提下,本发明中可选的实施方式可以自由组合与变换,这些都应属于本发明的保护范围。

附图说明

图1示出了本申请图像变换方法所适用的应用架构的一个示例性的示意图;

图2示出了终端200的一个示例性的结构示意图;

图3为本申请图像变换方法实施例一的流程图;

图4示出了距离获取方法的一个示例性的示意图;

图5示出了人脸三维模型的创建流程的一个示例性的示意图;

图6示出了位置移动的角度变化的一个示例性的示意图;

图7示出了透视投影的一个示例性的示意图;

图8a和图8b分别示例性的示出了30cm和55cm物距下的人脸投影效果;

图9示出了像素位移向量扩张方法的一个示例性的示意图;

图10为本申请图像变换方法实施例二的流程图;

图11示出了畸变矫正功能菜单的一个示例性的示意图;

图12a-图12f示例性的示出了终端在自拍场景下进行畸变矫正的过程;

图13a-图13n示例性的示出了对图像进行畸变矫正的过程中可能的界面;

图14a为本申请中一种图像处理方法的流程图;

图14b为本申请中一种图像处理装置的结构示意图;

图15为本申请图像变换装置实施例的结构示意图。

具体实施方式

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

本申请的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

本申请提出一种图像变换方法,使得变换后的图像,尤其是图像中的目标物体实现三维空间中的真实变换的效果。

图1示出了本申请图像变换方法所适用的应用架构的一个示例性的示意图,如图1所示,该框架包括:图像采集模块、图像处理模块和显示模块,其中,图像采集模块用于拍摄或者获取待处理的图像,该图像采集模块例如可以是照相机、摄像机等设备;图像处理模块用于对待处理的图像进行变换处理,以实现畸变矫正,该图像处理模块可以是任意具备图像处理能力的设备,例如,终端、图片服务器等,也可以是任意具备图像处理能力的芯片,例如图形处理器(graphics processing unit,GPU)芯片;显示模块用于显示图像,该显示模块例如可以是显示器、终端的屏幕、电视机、投影仪等。

本申请中,图像采集模块、图像处理模块和显示模块均可以集成于同一个设备上,此时该设备的处理器作为控制模块,控制图像采集模块、图像处理模块和显示模块实现各自的功能。图像采集模块、图像处理模块和显示模块也可以是独立的设备。例如,图像采集模块采用照相机、摄像机等设备,图像处理模块和显示模块集成于一个设备上,此时该集成设备的处理器作为控制模块,控制图像处理模块和显示模块实现各自的功能,该集成设备还可以具备无线或有线传输能力,以接收来自图像采集模块的待处理图像,该集成设备还可以设置有输入接口,以通过输入接口获取待处理图像。又例如,图像采集模块采用照相机、摄像机等设备,图像处理模块采用具有图像处理能力的设备,例如手机、平板电脑、计算机等,显示模块采用屏幕、电视机等设备,三者之间通过无线或有线的方式连接,实现图像数据的传输。又例如,图像采集模块和图像处理模块集成于一个设备上,该集成设备具有图像获取和图像处理的能力,例如手机、平板电脑等,该集成设备的处理器作为控制模块,控制图像采集模块和图像处理模块实现各自的功能,该设备还可以具备无线或有线传输能力,以向显示模块传输图像,该集成设备还可以设置有输出接口,以通过输出接口传输图像。

需要说明的是,上述应用架构还可以采用其他的硬件和/或软件实现方式,本申请对此不做具体限定。

上述图像处理模块作为本申请的核心模块,包括该图像处理模块的设备可以是终端(如手机(mobile phone)、平板电脑(pad)等)、具备无线通讯功能的可穿戴设备(如智能手表)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备等,本申请对此不作限定。

图2示出了终端200的结构示意图。

终端200可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。其中传感器模块280可以包括压力传感器280A,陀螺仪传感器280B,气压传感器280C,磁传感器280D,加速度传感器280E,距离传感器280F,接近光传感器280G,指纹传感器280H,温度传感器280J,触摸传感器280K,环境光传感器280L,骨传导传感器280M,飞行时间测距法(timeof flight,TOF)传感器280N,结构光传感器280O,双目传感器280P等。

可以理解的是,本发明实施例示意的结构并不构成对终端200的具体限定。在本申请另一些实施例中,终端200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器包括高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。

在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。

I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器210可以包含多组I2C总线。处理器210可以通过不同的I2C总线接口分别耦合触摸传感器280K,充电器,闪光灯,摄像头293等。例如:处理器210可以通过I2C接口耦合触摸传感器280K,使处理器210与触摸传感器280K通过I2C总线接口通信,实现终端200的触摸功能。

I2S接口可以用于音频通信。在一些实施例中,处理器210可以包含多组I2S总线。处理器210可以通过I2S总线与音频模块270耦合,实现处理器210与音频模块270之间的通信。在一些实施例中,音频模块270可以通过I2S接口向无线通信模块260传递音频信号,实现通过蓝牙耳机接听电话的功能。

PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块270与无线通信模块260可以通过PCM总线接口耦合。在一些实施例中,音频模块270也可以通过PCM接口向无线通信模块260传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。

UART接口是一种通用串行数据总线,用于异步通信。该总线可以包括双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器210与无线通信模块260。例如:处理器210通过UART接口与无线通信模块260中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块270可以通过UART接口向无线通信模块260传递音频信号,实现通过蓝牙耳机播放音乐的功能。

MIPI接口可以被用于连接处理器210与显示屏294,摄像头293等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器210和摄像头293通过CSI接口通信,实现终端200的拍摄功能。处理器210和显示屏294通过DSI接口通信,实现终端200的显示功能。

GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器210与摄像头293,显示屏294,无线通信模块260,音频模块270,传感器模块280等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。

USB接口230是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口230可以用于连接充电器为终端200充电,也可以用于终端200与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端,例如AR设备等。

可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端200的结构限定。在本申请另一些实施例中,终端200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块240可以通过USB接口230接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块240可以通过终端200的无线充电线圈接收无线充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为终端供电。

电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,显示屏294,摄像头293,和无线通信模块260等供电。电源管理模块241还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块241也可以设置于处理器210中。在另一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。

终端200的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。

天线1和天线2用于发射和接收电磁波信号。终端200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。

移动通信模块250可以提供应用在终端200上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。

调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270A,受话器270B等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块250或其他功能模块设置在同一个器件中。

无线通信模块260可以提供应用在终端200上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。

在一些实施例中,终端200的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得终端200可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。

终端200通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。

显示屏294用于显示图像,视频等。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端200可以包括1个或N个显示屏294,N为大于1的正整数。

终端200可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。

ISP用于处理摄像头293反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头293中。

摄像头293用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端200可以包括1个或N个摄像头293,N为大于1的正整数。其中,一个或多个摄像头293可以设置于终端200的前侧,例如屏幕顶部的中间位置,可以理解为终端的前置摄像头,对应于双目传感器的设备,也可以有两个前置摄像头;还可以有一个或多个摄像头293设置于终端200的背侧,例如终端背面的左上角,可以理解为终端的后置摄像头。

数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端200在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。

视频编解码器用于对数字视频压缩或解压缩。终端200可以支持一种或多种视频编解码器。这样,终端200可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。

NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端200的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。

外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端200的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。

内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器210通过运行存储在内部存储器221的指令,和/或存储在设置于处理器中的存储器的指令,执行终端200的各种功能应用以及数据处理。

终端200可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。

音频模块270用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块270还可以用于对音频信号编码和解码。在一些实施例中,音频模块270可以设置于处理器210中,或将音频模块270的部分功能模块设置于处理器210中。

扬声器270A,也称“喇叭”,用于将音频电信号转换为声音信号。终端200可以通过扬声器270A收听音乐,或收听免提通话。

受话器270B,也称“听筒”,用于将音频电信号转换成声音信号。当终端200接听电话或语音信息时,可以通过将受话器270B靠近人耳接听语音。

麦克风270C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风270C发声,将声音信号输入到麦克风270C。终端200可以设置至少一个麦克风270C。在另一些实施例中,终端200可以设置两个麦克风270C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端200还可以设置三个,四个或更多麦克风270C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。

耳机接口270D用于连接有线耳机。耳机接口270D可以是USB接口230,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。

压力传感器280A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器280A可以设置于显示屏294。压力传感器280A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器280A,电极之间的电容改变。终端200根据电容的变化确定压力的强度。当有触摸操作作用于显示屏294,终端200根据压力传感器280A检测所述触摸操作强度。终端200也可以根据压力传感器280A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。

陀螺仪传感器280B可以用于确定终端200的运动姿态。在一些实施例中,可以通过陀螺仪传感器280B确定终端200围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器280B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器280B检测终端200抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端200的抖动,实现防抖。陀螺仪传感器280B还可以用于导航,体感游戏场景。

气压传感器280C用于测量气压。在一些实施例中,终端200通过气压传感器280C测得的气压值计算海拔高度,辅助定位和导航。

磁传感器280D包括霍尔传感器。终端200可以利用磁传感器280D检测翻盖皮套的开合。在一些实施例中,当终端200是翻盖机时,终端200可以根据磁传感器280D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。

加速度传感器280E可检测终端200在各个方向上(一般为三轴)加速度的大小。当终端200静止时可检测出重力的大小及方向。还可以用于识别终端姿态,应用于横竖屏切换,计步器等应用。

距离传感器280F,用于测量距离。终端200可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端200可以利用距离传感器280F测距以实现快速对焦。

接近光传感器280G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端200通过发光二极管向外发射红外光。终端200使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端200附近有物体。当检测到不充分的反射光时,终端200可以确定终端200附近没有物体。终端200可以利用接近光传感器280G检测用户手持终端200贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器280G也可用于皮套模式,口袋模式自动解锁与锁屏。

环境光传感器280L用于感知环境光亮度。终端200可以根据感知的环境光亮度自适应调节显示屏294亮度。环境光传感器280L也可用于拍照时自动调节白平衡。环境光传感器280L还可以与接近光传感器280G配合,检测终端200是否在口袋里,以防误触。

指纹传感器280H用于采集指纹。终端200可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。

温度传感器280J用于检测温度。在一些实施例中,终端200利用温度传感器280J检测的温度,执行温度处理策略。例如,当温度传感器280J上报的温度超过阈值,终端200执行降低位于温度传感器280J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端200对电池242加热,以避免低温导致终端200异常关机。在其他一些实施例中,当温度低于又一阈值时,终端200对电池242的输出电压执行升压,以避免低温导致的异常关机。

触摸传感器280K,也称“触控器件”。触摸传感器280K可以设置于显示屏294,由触摸传感器280K与显示屏294组成触摸屏,也称“触控屏”。触摸传感器280K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏294提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器280K也可以设置于终端200的表面,与显示屏294所处的位置不同。

骨传导传感器280M可以获取振动信号。在一些实施例中,骨传导传感器280M可以获取人体声部振动骨块的振动信号。骨传导传感器280M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器280M也可以设置于耳机中,结合成骨传导耳机。音频模块270可以基于所述骨传导传感器280M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器280M获取的血压跳动信号解析心率信息,实现心率检测功能。

按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。终端200可以接收按键输入,产生与终端200的用户设置以及功能控制有关的键信号输入。

马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏294不同区域的触摸操作,马达291也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。

指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。

SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和终端200的接触和分离。终端200可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口295可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口295也可以兼容不同类型的SIM卡。SIM卡接口295也可以兼容外部存储卡。终端200通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端200采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端200中,不能和终端200分离。

图3为本申请图像变换方法实施例一的流程图,如图3所示,本实施例的方法可以应用于图1所示的应用架构,其执行主体可以是图2所示的终端。该图像变换方法可以包括:

步骤301、通过前置摄像头针对目标场景获取第一图像。

本申请中的第一图像是在用户进行自拍的场景下,由终端的前置摄像头获取到的。通常情况下,前置摄像头的FOV设置为70°~110°,优选90°。前置摄像头正对的区域为目标场景,该目标场景包括目标人物(即用户)的人脸。

可选的,第一图像可以是终端的前置摄像头获取到、并显示于屏幕上的预览图像,此时快门没有被触发,第一图像尚未在图像传感器上成像;或者,第一图像也可以是终端获取到但没有显示于屏幕上的图像,此时快门也没有被触发,第一图像未在传感器上成像;或者,第一图像还可以是触发快门后,终端获取并已在图像传感器上成像的图像。

需要说明的是,第一图像也可以通过终端的后置摄像头获取,对此不做具体限定。

步骤302、获取目标人物的人脸与前置摄像头之间的目标距离。

目标人物的人脸与前置摄像头之间的目标距离可以是目标人物的人脸上的最前端部位(例如鼻子)与前置摄像头之间的距离;或者,目标人物的人脸与前置摄像头之间的目标距离也可以是目标人物的人脸上的指定部位(例如眼睛、嘴巴或者鼻子等)与前置摄像头之间的距离;或者,目标人物的人脸与前置摄像头之间的目标距离还可以是目标人物的人脸上的中心位置(例如,目标人物正面照上的鼻子,或者目标人物侧面照上颧骨位置等)与前置摄像头之间的距离。需要说明的是,对上述目标距离的定义可以视第一图像的具体情况而定,本申请对此不作具体限定。

在一种可能的实现方式中,终端可以采用计算人脸屏占比的方式获取上述目标距离,即先获取目标人物的人脸在第一图像中的屏占比(人脸的像素面积与第一图像的像素面积的比值),然后根据该屏占比和前置摄像头的视场角(field of view,FOV)得到距离。图4示出了距离获取方法的一个示例性的示意图,如图4所示,假设平均人脸的长为20cm,宽为15cm,根据人脸的屏占比P可以估算出在目标人物的人脸与前置摄像头之间的目标距离D处,第一图像的整个视场的真实面积S=20×15/P cm

在一种可能的实现方式中,终端还可以通过距离传感器获取上述目标距离,即用户自拍时可以通过终端上的距离传感器测量得到前置摄像头与前方目标人物的人脸之间的距离。该距离传感器例如可以包括飞行时间测距法(time of flight,TOF)传感器、结构光传感器或者双目传感器等。

步骤303、当目标距离小于预设阈值时,对第一图像进行第一处理得到第二图像,第一处理包括根据目标距离对第一图像进行畸变矫正。

通常自拍时人脸到前置摄像头的距离较近,存在“近大远小”的人脸透视畸变问题,例如,当目标人物的人脸与前置摄像头之间的距离过小时,由于人脸中不同部位到摄像头的距离存在差异,可能会导致图像中的鼻子偏大,脸部拉长等效果。而当目标人物的人脸与前置摄像头之间的距离较大时,可能上述问题会削弱。因此本申请设定了一个阈值,认为目标人物的人脸与前置摄像头之间的距离小于该阈值时,获取到的包含目标人物的人脸的第一图像存在畸变,需要对其进行畸变矫正。该预设阈值的取值范围在80厘米以内,可选的,该预设阈值可以设置为50厘米。需要说明的是,对于预设阈值的具体取值可以视前置摄像头的性能、拍摄光照等情况而定,本申请对此不作具体限定。

终端对第一图像进行透视畸变矫正得到第二图像,该第二图像中的目标人物的人脸相较于第一图像中的目标人物的人脸更接近于目标人物的人脸的真实样貌,即第二图像中的目标人物的五官的相对比例和相对位置相较于第一图像中的目标人物的五官的相对比例和相对位置更接近于目标人物的人脸五官的相对比例和相对位置。

如上所述,当获取第一图像时,目标人物的人脸与前置摄像头之间的距离小于预设阈值,很可能由于前置摄像头的“近大远小”的人脸透视畸变问题,导致第一图像中的目标人物的人脸的五官发生大小变化、拉伸等,其五官的相对比例和相对位置偏离目标人物的人脸的真实样貌的相对比例和相对位置。通过对第一图像进行透视畸变矫正得到的第二图像,可以消除上述目标人物的人脸的五官发生大小变化、拉伸等情况,因此使得第二图像中的目标人物的人脸的五官的相对比例和相对位置趋近于、甚至恢复到目标人物的人脸的真实样貌的相对比例和相对位置。

可选的,第二图像可以是前置摄像头获取的预览图像,即快门被触发前,前置摄像头可以获取正对着目标场景区域的第一图像(该第一图像作为预览图像显示于屏幕上,或者该第一图像并未在屏幕上出现过),终端采用上述方法对该第一图像进行透视畸变矫正后得到第二图像,将第二图像显示于终端的屏幕上,此时用户看到的第二图像是已经做过透视畸变矫正的预览图像,快门没有被触发,第二图像尚未在图像传感器上成像。或者,第二图像也可以是触发快门后得到的图像,即快门被触发后,第一图像是在终端的图像传感器上成像的图像,终端采用上述方法对第一图像进行透视畸变矫正后得到第二图像,将第二图像保存起来并显示于终端的屏幕上,此时用户看到的第二图像是已经做过透视畸变矫正、且已经保存的图片库中的图像。

本申请中,对第一图像进行透视畸变矫正得到的第二图像的过程可以包括:先根据目标距离将第一图像中的目标人物的人脸与标准人脸模型进行拟合得到目标人物的人脸的深度信息,再根据深度信息对第一图像进行透视畸变矫正得到第二图像。标准人脸模型是预先创建的包括五官的脸部模型,其设置有形状变换系数、表情变换系数等,通过调整这些系数值可以改变人脸模型的表情或形状。D表示目标距离的值,终端假设将标准三维人脸模型放置于摄像头正前方,该标准三维人脸模型与摄像头之间的目标距离为D,将标准三维人脸模型上指定点(例如鼻尖、人脸模型的中心点等)对应于三维坐标系的原点O。通过透视投影得到该标准三维人脸模型上特征点的二维投影点集A,并获取第一图像中的目标人物的人脸的二维特征点的点集B,点集A中的每个点在点集B中都有相应的唯一匹配点,计算得到所有匹配点的二维坐标距离差之和F。为了得到目标人物的人脸的真实三维模型,可以多次调整标准三维人脸模型的平面位置(即上述指定点偏离原点O上下、左右移动)、形状、五官的相对比例等,使距离差之和F达到最小甚至趋近于0,即点集A与点集B趋近于完全一一重合。基于上述方法可以得到第一图像对应的目标人物的人脸的真实三维模型。根据真实三维模型上任一像素点相对于原点O的坐标(x,y,z),再根据原点O与摄像头之间的目标距离D即可得到相对于摄像头的,目标人物的人脸的真实三维模型上任一像素点的坐标(x,y,z+D)。此时,再通过透视投影可以得到第一图像中的目标人物的人脸的任一像素点的深度信息。可选的,也可以采用TOF传感器、结构光传感器等直接获取深度信息。

基于上述拟合过程,终端可以建立目标人物的人脸的第一三维模型,上述拟合过程可以采用人脸特征点拟合、深度学习拟合、TOF摄像头深度拟合等方式。第一三维模型可以以三维点云的方式呈现,其与目标人物的人脸的二维图像相对应,呈现相同的人脸表情、人脸五官的相对比例和相对位置等。

示例性的,采用人脸特征点拟合方式建立目标人物的人脸的三维模型。图5示出了人脸三维模型的创建流程的一个示例性的示意图,如图5所示,首先从输入的图像中获取人脸的五官、轮廓等部位的特征点,然后借助一个可形变的基础三维人脸模型,根据人脸模型3D关键点与获取到的上述特征点之间的对应关系,根据拟合参数(目标距离、FOV系数等)和拟合优化项(脸部旋转平移缩放参数、人脸模型变形系数等),进行真实人脸形态的拟合。由于脸部的轮廓特征点在三维人脸模型上的对应位置会随着脸部的转角变化,因此可以选择不同转角下的对应关系,采用多次迭代拟合确保拟合精度。最后拟合输出贴合目标人物的人脸的三维点云上每个点的三维空间坐标。摄像机到鼻子的距离,根据距离建立三维人脸模型,标准模型放到这个距离上,做投影,两个(照片和二位投影)之间的坐标距离差,把距离差降到最小,不断地投影,得到三维人头,深度信息是矢量。拟合不仅是拟合形状,还可以拟合x轴和y轴的模型空间位置。

终端对目标人物的人脸的第一三维模型的位姿和/或形状进行变换得到目标人物的人脸的第二三维模型。可选的,终端基于所述矫正距离将所述第一三维模型进行坐标变换得到第二三维模型。

调整第一三维模型的位姿和/或形状、针对第一三维模型进行坐标变换都需要根据目标人物的人脸和前置摄像头之间的距离进行调整,由于第一图像中的目标人物的人脸和前置摄像头之间的距离小于预设阈值,可以将第一三维模型向后移动得到目标人物的人脸的第二三维模型。基于三维模型的调整可以模拟真实世界中的目标人物的人脸的调整,因此调整后的第二三维模型可以呈现出对目标人物的人脸相较于前置摄像头发生后移的结果。

在一种可能的实现方式中,将第一三维模型沿着第一三维模型与摄像头的延长线上向后移动至原距离的两倍距离位置得到第二三维模型,即若原第一三维模型的空间坐标位置为(x,y,z),第二三维模型的位置为(2x,2y,2z)。即存在一个2倍的映射关系。

在一种可能的实现方式中,当第二三维模型是对第一三维模型进行位置移动得到时,对第二三维模型进行角度补偿。

真实世界中,目标人物的人脸相对于前置摄像头的后移时,目标人物的人脸相对于摄像头可能发生角度变化,此时如果不希望保留后移带来的角度变化,可以进行角度补偿。图6示出了位置移动的角度变化的一个示例性的示意图,如图6所示,初始时目标人物的人脸距离前置摄像头小于预设阈值,其相对于前置摄像头的角度为α,与前置摄像头的垂直距离为tz1,与前置摄像头的水平距离为tx。当目标人物的人脸后移时,其相对于前置摄像头的角度变为β,与前置摄像头的垂直距离变为tz2,与前置摄像头的水平距离仍然为tx。因此目标人物的人脸相对于前置摄像头的变化角度

终端根据第一三维模型和第二三维模型获取目标物体的像素位移向量场。

可选的,得到变换前后的两个三维模型(上述第一三维模型和第二三维模型)后,本申请根据深度信息对第一三维模型进行透视投影得到第一坐标集合,第一坐标集合包括对应于第一三维模型中的多个采样点投影得到的二维坐标值。根据深度信息对第二三维模型进行透视投影得到第二坐标集合,第二坐标集合包括对应于第二三维模型中的多个采样点投影得到的二维坐标值。

可选的,得到变换前后的两个三维模型(上述第一三维模型和第二三维模型)后,基于所述第一图像的坐标系,将所述第一三维模型进行透视投影得到第一组投影点;基于所述第一图像的坐标系,将所述第二三维模型进行透视投影得到第二组投影点;第一组投影点包括对应于第一三维模型中的多个采样点投影得到的二维坐标值。第二组投影点包括对应于第二三维模型中的多个采样点投影得到的二维坐标值。

投影是一种将三维坐标变换为二维坐标的方法,常用的投影方法包括正交投影和透视投影等。以透视投影为例,基本的透视投影模型由视点E和视平面P两部分构成,视点E不在视平面P上。视点E可以认为是摄像头的位置。视平面P就是渲染三维目标物体透视图的二维平面。图7示出了透视投影的一个示例性的示意图,如图7所示,对于真实世界中的任一点X,构造一条起点为视点E、经过X点的射线,该射线与视平面P的交点Xp即是X点的透视投影。三维世界的物体可以看作是由点集合{Xi}构成的,这样分别构造起点为视点E、经过Xi点的射线Ri,这些射线Ri分别与视平面P的交点集合便是三维世界的物体在视点E的二维投影图。

基于上述原理,对三维模型的各个采样点分别进行投影得到二维平面上对应的像素点,这些二维平面上的像素点可以用二维平面内的一个坐标值表示,即可得到该三维模型采样点对应的一个坐标集合。本申请可以得到第一三维模型对应的第一坐标集合和第二三维模型对应的第二坐标集合。

可选的,为了保持目标人物的人脸的大小、位置一致,可以选择合适的对准点与缩放尺度对第二坐标集合中的坐标值进行平移或缩放调整。平移或缩放调整的原则可以是,使得目标人物的人脸的边缘相对于周围区域的位移尽量小,周围区域包括背景区域或视场边缘区域,例如,当第一坐标集合的最低点位于视场边缘区域的边界,而第二坐标集合的最低点过大偏离边界时,平移第二坐标集合使得最低点与视场边缘区域的边界重合。

计算第一坐标值和第二坐标值之间的坐标差得到目标人物的人脸的像素位移向量场,第一坐标值为第一采样点在第一坐标集合中对应的坐标值,第二坐标值为第一采样点在第二坐标集合中对应的坐标值,第一采样点为第一三维模型和第二三维模型包含的多个相同点云中的任意一个点。

第二三维模型是第一三维模型进行位姿和/或形状变换得到的,因此二者包含大量的相同采样点,甚至二者包含的采样点是完全相同的,这样第一坐标集合和第二坐标集合中会有很多组坐标值是对应于同一个采样点的,即某采样点在第一坐标集合中对应一个坐标值,在第二坐标集合中也对应一个坐标值。计算上述第一坐标值和上述经平移或缩放后的第二坐标值之间的坐标差,即分别计算第一坐标值和第二坐标值在x轴的坐标差、在y轴的坐标差得到第一像素的坐标差。通过计算第一三维模型和第二三维模型包含的所有相同采样点的坐标差即可得到目标人物的人脸的像素位移向量场,像素位移向量场由各个采样点的坐标差组成。

在一种可能的实现方式中,当图像中目标人物的人脸的边缘位置的像素在第二坐标集合中对应的坐标值与周围区域的像素的坐标值之间的坐标差大于预设阈值时,对第二坐标集合中的坐标值进行平移或缩放调整,周围区域与目标人物的人脸相邻。

为了保持目标人物的人脸的大小、位置一致,当目标人物的人脸的边缘位置位移过大(可以通过预设阈值来衡量)导致背景扭曲时,可以选择合适的对准点与缩放尺度对第二坐标集合中的坐标值进行平移或缩放调整。图8a和图8b分别示例性的示出了30cm和55cm物距下的人脸投影效果。

终端根据目标人物的人脸的像素位移向量场得到变换后的图像。

在一种可能的实现方式中,根据目标人物的人脸的像素位移向量场对目标人物的人脸、视场边缘区域以及背景区域进行算法约束矫正,得到变换后的图像,该视场边缘区域为位于图像边缘的条带区域,该背景区域为图像中除目标人物的人脸和视场边缘区域的其它区域。

图像被划分为三个区域,一个是目标人物的人脸所占用的区域,另一个是图像的边缘区域(即视场边缘区域),第三个是背景区域(即目标人物的人脸外的背景部分,该部分不包括图像的边缘区域)。

本申请可以根据目标人物的人脸的像素位移向量场确定目标人物的人脸、视场边缘区域和背景区域分别对应的初始图像矩阵;构建目标人物的人脸、视场边缘区域和背景区域分别对应的约束项,以及,构建用于图像的正则约束项;根据目标人物的人脸、视场边缘区域和背景区域分别对应的约束项和正则约束项,以及各个约束项对应的权重系数,得到目标人物的人脸、视场边缘区域和背景区域分别对应的像素位移矩阵;根据目标人物的人脸、视场边缘区域和背景区域分别对应的初始图像矩阵和目标人物的人脸、视场边缘区域和背景区域分别对应的像素位移矩阵,通过颜色映射得到变换后的图像。

在一种可能的实现方式中,将目标人物的人脸的像素位移向量场通过插值算法扩张得到掩膜区域的像素位移向量场,该掩膜区域包括目标人物的人脸;根据掩膜区域的像素位移向量场对掩膜区域、视场边缘区域以及背景区域进行算法约束矫正,得到变换后的图像。

插值算法可以包括将第一采样点的像素位移向量赋给第二采样点,作为第二采样点的像素位移向量,第二采样点是位于目标人物的人脸区域之外且掩膜区域内的任意一个采样点,第一采样点是目标人物的人脸的边界轮廓上与第二像素点距离最近的像素点。

图9示出了像素位移向量扩张方法的一个示例性的示意图,如图9所示,目标区域是人的脸部,掩膜区域是人的头部的区域,该掩膜区域包括人的脸部,采用上述插值算法将人脸的像素位移向量场扩张至整个掩膜区域,得到掩膜区域的像素位移向量场。

图像被划分为四个区域,一个是人脸所占用的区域,另一个是与人脸相关的部分区域,该部分区域是可以随着目标物体的位姿和/或形状变换而发生相应的变换,例如,当人脸发生转动时,相应的人的头部一定也会发生转动。人脸和上述部分区域组成掩膜区域。第三个是图像的边缘区域(即视场边缘区域),第四个是背景区域(即目标物体外的背景部分,该部分不包括图像的边缘区域)。

本申请可以根据掩膜区域的像素位移向量场确定掩膜区域、视场边缘区域和背景区域分别对应的初始图像矩阵;构建掩膜区域、视场边缘区域和背景区域分别对应的约束项,以及,构建用于图像的正则约束项;根据掩膜区域、视场边缘区域和背景区域分别对应的约束项和正则约束项,以及各个约束项对应的权重系数,得到掩膜区域、视场边缘区域和背景区域分别对应的像素位移矩阵;根据掩膜区域、视场边缘区域和背景区域分别对应的初始图像矩阵和掩膜区域、视场边缘区域和背景区域分别对应的像素位移矩阵,通过颜色映射得到变换后的图像。

以下分别对掩膜区域、背景区域以及视场边缘区域的约束项以及用于图像全局的正则约束项进行描述。

(1)掩膜区域对应的约束项,用于约束对图像中掩膜区域对应的目标图像矩阵逼近成为使用上步骤中掩膜区域的像素位移向量场进行几何变换后的图像矩阵,以矫正掩膜区域的畸变。该几何变换表示一种空间映射,即将一个像素位移向量场通过变换映射为另一个图像矩阵。本申请中的几何变换可以是图像平移变换(Translation),图像缩放变换(Scale),图像旋转变换(Rotation)中的至少一种变换。

为了便于描述,可将掩膜区域对应的约束项简称为掩膜约束项,当图像中存在多个目标物体时,不同的目标物体可以对应不同的掩膜约束项。

掩膜约束项可记为Term1,Term1的算式表达式如下:

Term1(i,j)=SUM

其中,对于位于头部区域(即(i,j)

掩膜约束项Term1(i,j)需保证在位移矩阵Dt(i,j)的作用下,图像矩阵M0(i,j)倾向于为M1(i,j)的适当的几何变换,包括图像旋转、图像平移和图像缩放中的至少一种变换操作。

第k个掩膜区域对应的几何变换函数Func1

其中,ρ

Term1(i,j)可具体表示为:

其中,du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

(2)视场边缘区域对应的约束项用于,约束图像中视场边缘区域对应的初始图像矩阵中的像素点沿着图像的边缘或者向图像的外侧发生位移,以保持或扩大该视场边缘区域。

为了便于描述,可以将视场边缘区域对应的约束项简称为视场边缘约束项,视场边缘约束项可记为Term3,Term3的算式表达式如下:

Term3(i,j)=SUM

其中,M0(i,j)表示位于视场边缘区域(即(i,j)

视场边缘约束项需保证在该位移矩阵Dt(i,j)作用下,图像矩阵M0(i,j)倾向于为坐标值M0(i,j)的适当位移,位移规则为只沿着边缘区域或向边缘区域外侧适当移动,避免向边缘区域内侧移动,这样做的好处是可以尽量减少后续矩形裁切造成的图像信息损失,甚至可以增益扩充视场边缘区域的图像内容。

假设位于图像的视场边缘区域的一个像素点A,其图像坐标为[u0,v0]

其中,α(u0(i,j),v0(i,j))需被限制为不小于0,以确保该点不会向视场边缘内部位移,β(u0(i,j),v0(i,j))的正负无需限制。α(u0(i,j),v0(i,j))和β(u0(i,j),v0(i,j))是不需要显示求解的中间未知量。

Term3(i,j)可具体表示为:

其中,du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

(3)背景区域对应的约束项用于,约束图像中的背景区域对应的图像矩阵中的像素点发生位移,且位移前像素点对应的第一向量和位移后像素点对应的第二向量尽量保持平行,以使背景区域中的图像内容平滑连续和使背景区域中贯穿人像的图像内容在人眼视觉上连续一致;其中,第一向量表示位移前像素点与位移前像素点对应的邻域像素点之间的向量;第二向量表示位移后像素点与位移后像素点对应的邻域像素点之间的向量。

为了便于描述,可将背景区域对应的约束项简称为背景约束项,背景约束项可记为Term4,Term4的算式表达式如下:

Term4(i,j)=SUM

其中,M0(i,j)表示位于背景区域(即(i,j)

背景约束项需保证在该位移矩阵Dt(i,j)作用下的坐标值M0(i,j)倾向于为坐标值M0(i,j)的适当位移。本申请中可将背景区域中的各个像素点划分到不同的控制域,本申请不对控制域的大小、形状、数量做限定。特别地,对于位于目标物体与背景边界处的背景像素点,其控制域需跨越目标物体延伸至目标物体的另一端。假设存在某背景像素点A和其控制域像素点集{Bi},控制域为A点的邻域,A的控制域跨越中间掩膜区域,延伸至该掩膜区域的另一端。Bi表示A的邻域像素点,当它们发生位移后,分别被移动到A′和{B′i}。位移规则为,背景约束项将限制向量ABi和向量A′B′i尽量保持方向平行。这样做的好处是,可以确保目标物体与背景区域过渡平滑,且背景区域中贯穿人像的图像内容在人眼视觉上能连续一致,避免背景图像产生扭曲变形或产生空洞拉丝等现象。Func4

其中:

其中,angle[]表示两个向量的夹角,vec1表示矫正前背景点[i,j]

Term4(i,j)可具体表示为:

Term4(i,j)=SUM

其中,du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

(4)正则约束项用于,约束图像中背景区域、掩膜区域和视场边缘区域分别对应的位移矩阵中的任意两个相邻像素点的位移矩阵的差值小于预设阈值,以使得图像的全局图像内容平滑连续。

正则约束项可记为Term5,Term5的算式表达式如下:

Term5(i,j)=SUM

对于整个图像范围(即(i,j)

Term5(i,j)可具体表示为:

其中,du(i,j)和dv(i,j)是需要求解的未知量,后续求解约束方程时需保证该项尽量小。

根据各个约束项以及各个约束项对应的权重系数,获得各区域分别对应的位移矩阵。

具体的,可以针对掩膜区域、视场边缘区域和背景区域的约束项以及正则约束项设置权重系数,根据各个约束项和对应的权重系数建立约束方程,求解该约束方程,就可获得各个区域中的各个位置点的偏移量。

假设算法约束矫正后的图像的坐标矩阵(又可称为目标图像矩阵)为Mt(i,j),Mt(i,j)=[ut(i,j),vt(i,j)]

Mt(i,j)=M0(i,j)+Dt(i,j)

ut(i,j)=u0(i,j)+du(i,j)

vt(i,j)=v0(i,j)+dv(i,j)

对各约束项分配权重系数,并构建约束方程如下:

Dt(i,j)=(du(i,j),dv(i,j))

=argmin(α1(i,j)×Term1(i,j)+α2(i,j)×Term2(i,j)+α3(i,j)×Term3(i,j)+α4(i,j)×Term4(i,j)+α5(i,j)×Term5(i,j))

其中,α1(i,j)~α5(i,j)分别为Term1~Term5对应的权重系数(权重矩阵)。

通过使用最小二乘法或梯度下降法或各类改进算法求解该约束方程,最终得到图像的各个像素点的位移矩阵Dt(i,j)。基于该位移矩阵Dt(i,j),可以得到变换后的图像。

本申请通过借助三维模型实现图像的三维变换效果,对近距离拍摄的图像中的目标人物的人脸进行透视畸变矫正,使得矫正后的目标人物的人脸的五官的相对比例和相对位置更接近于目标人物的人脸五官的相对比例和相对位置,可以显著提升自拍场景下的拍摄成像效果。

在一种可能的实现方式中,针对录制视频的场景,终端可以采用图3所示实施例的方法对录制的视频中的多个图像帧分别进行畸变矫正处理,得到畸变矫正后的视频。终端可以在屏幕上直接播放畸变矫正后的视频,或者终端也可以以分屏的方式,在屏幕上的一部分区域显示畸变矫正前的视频,另一部分区域显示畸变矫正后的视频,可参见图12f。

图10为本申请图像变换方法实施例二的流程图,如图10所示,本实施例的方法可以应用于图1所示的应用架构,其执行主体可以是图2所示的终端。该图像变换方法可以包括:

步骤1001、获取第一图像。

本申请中第一图像已经存储于第二终端的图片库中,该第一图像可以是由第二终端拍摄得到的一张照片,也可以是由第二终端拍摄得到的视频中的一帧图像,对于第一图像的获取方式本申请不做具体限定。

需要说明的是,当前对第一图像进行畸变矫正处理的第一终端和第二终端可以是同一个设备,也可以是不同的设备。

在一种可能的实现方式中,第二终端作为第一图像的获取设备,可以是任意具备拍摄功能的设备,例如,照相机、摄像机等,第二终端将拍摄的到的图像存储于本地或云端。第一终端作为对第一图像进行畸变矫正的处理设备,可以是任意具备图像处理功能的设备,例如,手机、计算机、平板电脑等。第一终端可以通过有线或无线通信方式从第二终端或云端接收第一图像,第一终端也可以通过存储介质(例如U盘)获取第二终端拍摄的到的第一图像。

在一种可能的实现方式中,第一终端既具备拍摄功能,又具备图像处理功能,例如,手机、平板电脑等,第一终端从本地的图片库中获取第一图像,或者,第一终端基于快门被按下所触发的指令拍摄并获取第一图像。

在一种可能的实现方式中,第一图像包括目标人物的人脸,第一图像中的目标人物的人脸存在畸变是由第二终端在在拍摄第一图像时目标人物的人脸与第二终端之间的目标距离小于第一预设阈值引起的。即第二终端拍摄第一图像时,目标人物的人脸与摄像头之间的目标距离较小。通常使用前置摄像头自拍时,人脸距离摄像头的距离较小,存在“近大远小”的人脸透视畸变问题,例如,当目标人物的人脸与前置摄像头之间的目标距离过小时,由于人脸中不同部位到摄像头的距离存在差异,可能会导致图像中的鼻子偏大,脸部拉长等效果。而当目标人物的人脸与前置摄像头之间的距离较大时,可能上述问题会削弱。因此本申请设定了一个阈值,认为目标人物的人脸与前置摄像头之间的距离小于该阈值时,获取到的包含目标人物的人脸的第一图像存在畸变,需要对其进行畸变矫正。该预设阈值的取值范围在80厘米以内,可选的,该预设阈值可以设置为50厘米。需要说明的是,对于预设阈值的具体取值可以视前置摄像头的性能、拍摄光照等情况而定,本申请对此不作具体限定。

目标人物的人脸与摄像头之间的目标距离可以是目标人物的人脸上的最前端部位(例如鼻子)与摄像头之间的距离;或者,目标人物的人脸与摄像头之间的目标距离也可以是目标人物的人脸上的指定部位(例如眼睛、嘴巴或者鼻子等)与摄像头之间的距离;或者,目标人物的人脸与摄像头之间的目标距离还可以是目标人物的人脸上的中心位置(例如,目标人物正面照上的鼻子,或者目标人物侧面照上颧骨位置等)与摄像头之间的距离。需要说明的是,对上述目标距离的定义可以视第一图像的具体情况而定,本申请对此不作具体限定。

终端可以根据目标人物的人脸在第一图像中的屏占比和第二终端的摄像头的FOV获取目标距离。需要说明的是,第二终端包括多摄像头时,在拍摄第一图像后,会将拍摄第一图像的摄像头的信息记录于可交换图像文件格式(exchangeable image file format,EXIF)信息中,因此上述第二终端的FOV是指EXIF信息中记录的摄像头的FOV。其原理可参照上述步骤302,此处不再赘述,其中FOV可以根据第一图像的EXIF信息中的FOV得到,或者根据EXIF信息中的等效焦距计算得到,例如fov=2.0×atan(43.27/2f),其中,43.27是135mm胶片的对角线长度,f表示等效焦距。。终端也可以根据第一图像的EXIF信息中保存的目标拍摄距离得到目标距离。EXIF是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据,终端可以从EXIF信息中直接读取第一图像拍摄时的目标拍摄距离、FOV或等效焦距等数据,进而得到上述目标距离。其原理亦可参照上述步骤302,此处不再赘述。

在一种可能的实现方式中,第一图像包括目标人物的人脸,第一图像中的目标人物的人脸存在畸变是由第二终端在拍摄第一图像时,摄像头的FOV大于第二预设阈值,且在目标人物的人脸与FOV的边缘之间的像素距离小于第三预设阈值引起的。如果终端的摄像头为广角摄像头,那么目标人物的人脸处于摄像头的FOV边缘位置时,也会导致畸变,而目标人物的人脸位于摄像头的FVO中部位置时,畸变就会减少甚至消失。因此本申请设定了两个阈值,认为终端的摄像头的FOV大于对应的阈值,且目标人物的人脸与FOV的边缘之间的像素距离小于对应的阈值时,获取到的包含目标人物的人脸的第一图像存在畸变,需要对其进行畸变矫正。该FOV对应的阈值为90°,像素距离对应的阈值为第一图像的长度或宽度的四分之一。需要说明的是,对于阈值的具体取值可以视摄像头的性能、拍摄光照等情况而定,本申请对此不作具体限定。

像素距离可以是目标人物的人脸上的最前端部位与第一图像的边界之间的像素数量;或者,像素距离为目标人物的人脸上的指定部位与第一图像的边界之间的像素数量;或者,像素距离为目标人物的人脸上的中心位置与第一图像的边界之间的像素数量。

步骤1002、显示畸变矫正功能菜单。

当目标人物的人脸存在畸变时,终端显示弹窗,该弹窗用于提供是否进行畸变矫正的选择控件,例如图13c所示;或者终端显示畸变矫正控件,该畸变矫正控件用于打开畸变矫正功能菜单,例如图12d所示。当用户点击“是”的控件,或者点击畸变矫正控件时,响应用户操作所产生的指令,显示畸变矫正功能菜单。

本申请提供了畸变矫正功能菜单,该功能菜单上包括改变变换参数的选项,例如,调整等效模拟拍摄距离的选项,调整位移距离的选项,调整五官的相对位置和/或相对比例的选项,等等。这些选项可以以滑块或控件的方式调整对应的变换参数,即变换参数可以通过调节一个滑块的位置来该改变其取值,也可以通过触发一个控件来确定其被选中的取值。畸变矫正功能菜单在初始显示时,该菜单上的各个选项中的变换参数值可以是默认值,也可以是预先计算得到的值。例如,等效模拟拍摄距离对应的滑块,初始时可以位于值为0的位置,如图11所示,或者,终端根据图像变换算法得到一个等效模拟拍摄距离的调整量,将滑块显示于该调整量对应的值的位置,如图13e所示。

图11示出了畸变矫正功能菜单的一个示例性的示意图,如图11所示,该功能菜单包括四个区域:功能菜单的左侧部分用于显示第一图像,该第一图像被置于一个包括xyz轴的坐标轴下;功能菜单的右上部分包括两个控件,一个用于保存图片,另一个用于启动录制图像的变换过程,用于可以通过触发控件以开启相应的操作;功能菜单的右下部分包括表情控件和动作控件,其中,表情控件下可供选择的表情模板包括保持不变、开心、伤心、嫌弃、惊喜和生气六种表情,用户点击相应表情的控件即表示该表情模板被选中,终端可以根据选中的表情模板对左侧部分图像中的人脸的五官的相对比例和相对位置进行变换。例如,开心,通常人脸上眼睛会变小,嘴角会向上弯;惊喜,通常眼睛和嘴巴都会长大;生气,通常眉头会皱起来,眼角和嘴角都会向下弯;动作控件下可供选择的动作模板包括无动作、点头、左右摇头、新疆舞摇头、眨眼和大笑六种动作,用户点击相应动作的控件即表示该动作模板被选中,终端可以根据选中的动作模板对左侧部分图像中的人脸的五官依动作顺序进行多次变换。例如,点头,通常点头包括低头和抬头两个动作;左右摇头,通常左右摇头包括向左摇头和向右摇头两个动作;眨眼,通常眨眼包括眼睛闭上和睁开两个动作;功能菜单的下方包括四个滑块,分别对应距离、左右摇头、上下摇头和顺时针转头,其中,距离的滑块通过左右移动其位置,可以调整人脸与摄像头之间的距离;左右摇头的滑块通过左右移动其位置,可以调整人脸摇头的方向(向左或向右)和角度;上下摇头的滑块通过左右移动其位置,可以调整人脸摇头的方向(向上或向下)和角度;顺时针转头的滑块可以通过左右移动其位置,可以调整人脸顺时针或逆时针转头的角度。用户可以通过控制上述一个或多个滑块或控件,可以实现对相应的变换参数值的调整,终端在检测到用户的操作后获取相应的变换参数值。

步骤1003、获取用户在畸变矫正功能菜单上输入的变换参数。

根据用户对畸变矫正功能菜单上包含的选项的操作(例如,根据用户对与变换参数关联的滑块的拖动操作;和/或,根据用户对与变换参数关联的控件的触发操作)获取变换参数。

在一种可能的实现方式中,畸变矫正功能菜单包括调整位移距离的选项;获取用户在畸变矫正功能菜单上输入的变换参数,包括:根据用户在调整位移距离的选项中的控件或滑块的操作所触发的指令获取调整方向和位移距离。

在一种可能的实现方式中,畸变矫正功能菜单包括调整五官的相对位置和/或相对比例的选项;获取用户在畸变矫正功能菜单上输入的变换参数,包括:根据用户在调整五官的相对位置和/或相对比例的选项中的控件或滑块的操作所触发的指令获取调整方向、位移距离和/或五官尺寸。

在一种可能的实现方式中,畸变矫正功能菜单包括调整角度的选项;获取用户在畸变矫正功能菜单上输入的变换参数,包括:根据用户在调整角度的选项中的控件或滑块的操作所触发的指令获取调整方向和调整角度。

在一种可能的实现方式中,畸变矫正功能菜单包括调整表情的选项;获取用户在畸变矫正功能菜单上输入的变换参数,包括:根据用户在调整表情的选项中的控件或滑块的操作所触发的指令获取新的表情模板。

在一种可能的实现方式中,畸变矫正功能菜单包括调整动作的选项;获取用户在畸变矫正功能菜单上输入的变换参数,包括:根据用户在调整动作的选项中的控件或滑块的操作所触发的指令获取新的动作模板。

步骤1004、对第一图像进行第一处理得到第二图像,第一处理包括根据变换参数对第一图像进行畸变矫正。

终端根据变换参数对第一图像进行透视畸变矫正得到第二图像,该第二图像中的目标人物的人脸相较于第一图像中的目标人物的人脸更接近于目标人物的人脸的真实样貌,即第二图像中的目标人物的五官的相对比例和相对位置相较于第一图像中的目标人物的五官的相对比例和相对位置更接近于目标人物的人脸五官的相对比例和相对位置。

通过对第一图像进行透视畸变矫正得到的第二图像,可以消除上述目标人物的人脸的五官发生大小变化、拉伸等情况,因此使得第二图像中的目标人物的人脸的五官的相对比例和相对位置趋近于、甚至恢复到目标人物的人脸的真实样貌的相对比例和相对位置。

在一种可能的实现方式中,终端还可以根据用户对启动录制控件的触发操作获取录制指令,然后启动对第二图像的获取过程的录制,此时启动录制控件变为停止录制控件,用户触发停止录制控件,终端可以接收到停止录制指令,进而停止录制。

本申请中录制过程可以包括以下至少两种场景:

一种场景是,针对第一图像,用户在畸变矫正开始之前,点击开始录制的控件,终端响应该操作产生的指令,启动录屏功能,即对终端的屏幕进行录制。此时用户点击畸变矫正功能菜单上的控件或拖动畸变矫正功能菜单上的滑块,设置变换参数,随着用户的操作,终端基于变换参数对第一图像进行畸变矫正处理或其他变换处理,进而在屏幕上显示处理后的第二图像。从畸变矫正功能菜单上的控件或滑块被操作的过程,到从第一图像到第二图像的变换过程均被终端的录屏功能录制,当用户点击停止录制的控件后,终端关闭录屏功能,此时终端获取到上述过程的视频。

另一种场景是,针对一段视频,用户在畸变矫正开始之前,点击开始录制的控件,终端响应该操作产生的指令,启动录屏功能,即对终端的屏幕进行录制。此时用户点击畸变矫正功能菜单上的控件或拖动畸变矫正功能菜单上的滑块,设置变换参数,随着用户的操作,终端基于变换参数对视频中的多个图像帧分别进行畸变矫正处理或其他变换处理,进而在屏幕上播放处理后的视频。从畸变矫正功能菜单上的控件或滑块被操作的过程,到播放处理后的视频的过程均被终端的录屏功能录制,当用户点击停止录制的控件后,终端关闭录屏功能,此时终端获取到上述过程的视频。

在一种可能的实现方式中,终端还可以根据用户对保存图片控件的触发操作获取存储指令,然后将当前得到的图像存入图片库中。

本申请中,对第一图像进行透视畸变矫正得到的第二图像的过程可以参照步骤303的描述,区别在于:本申请除了可以针对目标人物的人脸后移做出图像变换外,还可以针对目标人物的人脸的其他变换做出图像变换,例如摇头、改变表情、改变动作等。在此基础上,除了可以对第一图像进行畸变矫正,还可以对第一图像进行任意变换,即使第一图像没有出现畸变的情况,也可以根据用户在畸变矫正功能菜单上输入的变换参数对目标人物的人脸进行变换,使得变换后的图像中的目标人物的人脸更加接近于用户选中的变换参数下的样貌。

在一种可能的实现方式中,在步骤1001中,除了获取包含目标人物的人脸的第一图像外,还可以获取第一图像的标注数据,例如图像分割掩膜、标注框位置、特征点位置等。在步骤1003中,得到变换后的第二图像之后,还可以根据与步骤1003相同的变换方式变换标注数据,得到新的标注文件。

这样可以对带标注数据的图片库进行增广,即利用一张图像生成各种各样的变换图像,变换后的图像无需重新人工标注,而且变换后的图像效果自然真实,与原图差异性较大,有利于深度学习训练。

在一种可能的实现方式中,在步骤1003中,指定了对第一三维模型的变换方式,例如指定为将第一三维模型左移或者右移6cm左右(人脸左右眼间距)。得到变换后的第二图像之后,将第一图像和第二图像分别作为VR设备的左眼和右眼的输入,可以实现目标主体的三维显示效果。

这样可以将普通二维图像或视频转换为VR输入片源,实现目标人物的人脸的三维显示效果,由于考虑到了三维模型本身的深度,因此能够实现整个目标物体的立体效果。

本申请通过借助三维模型实现图像的三维变换效果,对图片库中的近距离情况下拍摄的图像的目标人物的人脸进行透视畸变矫正,使得矫正后的目标人物的人脸的五官的相对比例和相对位置更接近于目标人物的人脸五官的相对比例和相对位置,可以改变成像效果。进一步的,根据用户输入的变换参数对目标人物的人脸进行相应的变换,可以实现人脸的多样性变换,实现图像的虚拟变换。

需要说明的是,上述实施例中是针对图像中的目标人物的人脸建立三维模型,进而实现对人脸的畸变矫正。本申请提供的图像变换方法还可以适用于对其他任意目标物体的畸变矫正,区别在于建立三维模型的对象从目标人物的人脸变为目标物体。因此本申请对于图像变换的对象不做具体限定。

以下以两个具体的实施例对本申请的图像变换方法进行描述。

实施例一、图12a-图12f示例性的示出了终端在自拍场景下进行畸变矫正的过程。

如图12a所示,用户点击终端的桌面上的照相机图标,开启照相机。

如图12b所示,照相机默认开启的是后置摄像头,终端的屏幕上显示的是后置摄像头获取到的目标场景的图像。用户点击拍照功能菜单上的摄像头转换控件,将摄像头切换至前置摄像头。

如图12c所示,终端的屏幕上显示的是前置摄像头获取到的目标场景的第一图像,该目标场景包括用户的人脸。

当第一图像中的目标人物的人脸和前置摄像头之间的距离小于预设阈值时,

一种情况下,终端采用上述图3所示实施例中的图像变换方法,对第一图像进行畸变矫正得到第二图像,由于没有触发快门,因此第二图像作为预览图像显示于终端的屏幕上。如图12d所示,此时终端在屏幕上显示“畸变矫正”字样,并且显示关闭控件,如果用户不需要显示矫正后的预览图像,可以点击该关闭控件,终端接收到相应的指令后,便将第一图像作为预览图像显示于屏幕上。

另一种情况下,如图12e所示,用户点击拍照功能菜单上的快门控件,终端采用上述图3所示实施例中的方法对拍照成像(第一图像)进行畸变矫正得到第二图像,此时第二图像被保存入图片库中。

第三种情况下,如图12f所示,终端采用上述图3所示实施例中的方法,对第一图像进行畸变矫正得到第二图像,由于没有触发快门,因此终端将第一图像和第二图像均作为预览图像显示于终端的屏幕上,用户可以直观的看到第一图像和第二图像之间的差别。

实施例二、图13a-图13h示例性的示出了对图片库中的图像进行畸变矫正的过程。

如图13a所示,用户点击终端的桌面上的图片库图标,打开图片库。

如图13b所示,用户在图片库中选中要做畸变矫正的第一图像,该第一图像拍摄时,其中的目标人物的人脸与摄像头之间的距离小于预设阈值。前述距离信息可以通过上述图10所示方法实施例中的距离获取方法得到,此处不再赘述。

如图13c所示,终端在检测到当前显示的图像中的目标人物的人脸存在畸变时,可以在屏幕上弹出一个弹窗,该弹窗上显示“该图像存在畸变,是否进行畸变矫正”字样,并在这行字的下方显示“是”和“否”的控件,当用户点击“是”时,显示畸变矫正功能菜单。需要说明的是,图13c提供了让用户选择是否进行畸变矫正的弹窗的一个示例,但这并不对弹窗的界面或显示内容构成限定,例如,该弹窗上显示的字样内容、字样大小、字样字体,“是”和“否”对应的两个控件上的内容等均可以采用其他方式实现,本申请对弹窗的实现方式不做具体限定。

终端在检测到当前显示的图像中的目标人物的人脸存在畸变时,也可以如图12d所示在屏幕上显示一个控件,该控件用于打开或关闭畸变矫正功能菜单。需要说明的是,图12d提供了畸变矫正功能菜单的触发控件的一个示例,但这并不对弹窗的界面或显示内容构成限定,例如,控件的位置,控件上的内容等均可以采用其他方式实现,本申请对该控件的实现方式不做具体限定。

畸变矫正功能菜单可以如图11或图13i所示。

畸变矫正功能菜单在初始显示时,该菜单上的各个选项中的变换参数值可以是默认值,也可以是预先计算得到的值。例如,距离对应的滑块,初始时可以位于值为0的位置,如图11所示,或者,终端根据图像变换算法得到一个距离的调整量,将滑块显示于该调整量对应的值的位置,如图13d所示。

如图13e所示,用户可以通过拖动距离对应的滑块调整距离。如图13f所示,用户还可以通过触发控件选择希望变换的表情(开心)。该过程可参考上述图10所示实施例中的方法,此处不再赘述。

如图13g所示,当用户对变换的结果满意时,可以触发保存图片控件,终端接收到保存图片的指令时,将当前得到的图像存入图片库中。

如图13h所示,用户在选择变换参数之前,可以触发开始录制控件,终端接收到开始录制的指令后,启动录屏,将第二图像的获取过程录制下来。该过程中开始录制控件变为停止录制控件,当用户触发停止录制控件后,终端停止录屏。

实施例三,图13i示例性的示出了畸变矫正功能菜单的其他示例。

如图13i所示,畸变矫正功能菜单上包括五官的选取和位置的调整控件,用户先选取鼻子(鼻子前面的椭圆控件为黑色),然后点击表示变大的控件,每点击一下,终端就会按照设定的步长,采用上述图10所示实施例中的方法把目标人物的鼻子调大。

需要说明的是,本申请图11、图12a-图12f、图13a-图13h、图13i所示实施例均是一种示例,但均不构成对终端的桌面、畸变矫正功能菜单、拍照界面等构成限定,本申请对此均不做具体限定。

结合前述实施例,本发明还可以提供一种畸变矫正的实施方式。参加图14a,该方法可以包括如下步骤:

步骤401:获取第一图像,所述第一图像中包括目标人物的人脸;其中,所述第一图像中的所述目标人物的人脸存在畸变。

可选的,获取第一图像的方式包括但不限于以下几种方式中的一种:

方式1:通过摄像头针对目标场景采集一帧图像,根据所述一帧图像获取第一图像。

方式2:通过摄像头针对目标场景采集多帧图像,根据所述多帧图像合成第一图像;

方式3:从本地或云端存储的图像中调取第一图像。例如,用户在终端图库中选择的一张图像,该图像包括目标人物(即用户)的人脸,该图像通常在近距离下拍摄得到。

应理解,上述方式1和方式2中采集图像属于实时拍照的场景,可以发生在点击快门时,此时所采集的一个或多个图像可以经过一定的ISP处理,如经过黑电平校正、单帧去噪/多帧去噪、去马赛克(Demosaic)、白平衡等算法后得到的一帧图像,即第一图像。在用户点击快门之前,取景界面中显示拍摄场景的预览流。例如,在用户进行自拍的场景下,由终端的前置摄像头获取到第一图像。可选的,前置摄像头的FOV设置为70°~110°,优选90°。可选的,前置摄像头为广角镜头,FOV可以大于90°,如100°,115°等,本发明中不予以穷举和限定。前置摄像头一旁还可以设置有深度传感器,如结构光或TOF。摄像头传感器的像素可以采用业界主流的像素值,如10M,12M,13M,20M等。

可选的,为了节约功耗,对于预览图像可以不进行畸变矫正,当按下快门之后,执行步骤401采集图像,并对采集到的图像执行进行如同步骤403的畸变矫正。从而,预览图像和用户点击快门后通过步骤403得到的目标图像可以不一致。

应理解,摄像头可以是前置也可以是后置。人脸存在畸变的原因也可以参照前述实施例中的相关描述。

在一些实施例中,目标人物为在预览图像上的图像位于中心区域或近似中心区域的人物。对于用户感兴趣的目标人物,拍摄时通常会正对或近似正对着摄像头,因而目标人物在预览图像中通常位于中心区域。在另一些实施例中,目标人物的像素数量或屏占比大于预设阈值。用户感兴趣的目标人物通常会对着摄像头且离摄像头较近,尤其是前置摄像头自拍的情况下,从而目标人物在预览图像中靠近中心区域且面积大于预设阈值。在另一些实施例中,目标人物为在预览图像上的图像靠近中心区域,且深度最小的人物。当在预览图像上的图像靠近中心区域的人物包括多个深度不同的人物个体时,目标人物为其中深度最小的人物。在一些实施例中,终端默认目标主体仅包括一个目标人物。可以理解的是,拍摄终端确定目标人物的方式还可以有多种,本申请实施例对该方式不予具体限定。在拍照的预览流中,终端可以通过圆圈、矩形框、或人物框、人脸框将目标人物或人脸框选出来。

步骤402:获取目标距离;所述目标距离用于表征拍摄第一图像时,所述目标人物的人脸与拍摄终端之间的距离。也可以理解为拍摄第一图像时的拍摄终端与目标人物的拍摄距离。

可选的,目标人物的人脸与拍摄终端之间的距离可以为但不限于:目标人物的人脸上的最前端部位、中心位置、眉毛、眼睛、鼻子、嘴巴或耳朵与拍摄终端之间的距离。拍摄终端可以是当前终端,也可以是拍摄调取的第一图像时的其他终端或当前终端。

具体地,获取目标距离的方式包括但不限于以下方式:

方式1:获取目标人物的人脸在第一图像中的屏占比;根据屏占比和第一图像的视场角FOV得到目标距离;其中,第一图像的视场角与摄像头的视场角、和变焦倍率有关。该方式可以适用于实时拍摄的图像或者调取的历史图像。

方式2:通过第一图像的可交换图像文件格式EXIF信息得到所述目标距离;尤其对于非实时拍摄得到的图像,如调用历史图像,可以基于EXIF信息中记载的拍摄距离信息或相关信息确定出目标距离。

方式3:通过距离传感器获取目标距离,距离传感器包括飞行时间测距TOF传感器、结构光传感器或者双目传感器。该方式可以适用于实时拍摄的图像。此时,当前拍摄终端需要具备距离传感器。

以上方式在前述实施例中已经说明,此处不再赘述。

步骤403:对所述第一图像进行第一处理得到第二图像;其中,所述第一处理包括根据所述目标距离对所述第一图像进行畸变矫正;所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

对所述第一图像进行第一处理得到第二图像,本发明给出但不限于如下两种处理思路。

思路1:获取矫正距离;根据目标距离和矫正距离对第一图像进行畸变矫正。应理解,针对于同一目标距离,矫正距离的值越大,表示畸变矫正的程度越大。矫正距离需要大于所述目标距离。

该思路主要用于对整个人脸进行畸变矫正。

可选的,获取矫正距离的方法包括但不限于下面两种可选方式:

方式1:根据预设的拍摄距离与矫正距离的对应关系,获取所述目标距离相对应的矫正距离。例如,所述对应关系可以为,目标距离和矫正距离为1:N;N可以包括但不限于2、2.5、3、4、5等大于1的数值。可选的,对应关系还可以是一个预先设置好的对应关系表。

以下列两个表进行示例说明:

表1

表2

可选的,表1可以表示拍摄范围在25cm-35cm矫正强度最强,大于50cm时可以选择不进行矫正。表2可以表示拍摄范围在20-40cm矫正强度相对较强,大于70cm时可以选择不进行矫正。矫正距离与拍摄距离的比值表达了对于该拍摄距离下的矫正强度,比值越大,矫正强度越大。且从整个拍摄距离分布来看,不同的拍摄距离,对应的矫正强度也会有所区别。

方式2:显示畸变矫正功能菜单;接受用户基于畸变矫正功能菜单中输入的控件调节指令;该控件调节指令用于确定矫正距离。其中,控件调节指令可以明确地确定出矫正距离;还可以是基于目标距离的增量,由终端进一步计算出矫正距离。具体的,显示畸变矫正控件,畸变矫正控件用于打开畸变矫正功能菜单;响应用户针对畸变矫正控件的使能,显示畸变矫正功能菜单;畸变矫正功能菜单可以包括用于确定所述矫正距离的控件和/或、选择感兴趣区域的控件、和/或调整表情的选项中的控件。具体地,菜单的形式与使用可以参照前述实施例中图11、13a-13h的相关描述。作为可选的,一些畸变矫正功能菜单还可以参见附图13i-13n。应理解,实际实现过程中,畸变矫正功能菜单可以包括比如图示例中更多或更少的内容或元素,本发明不做限定。作为可选的,畸变矫正的菜单即可以显示或渲染在第一图像中,也可以与第一图像各占据一部分屏幕空间,本发明不予以限定。

基于思路1,针对第一图像进行畸变矫正的方法可以包括:

根据目标距离将第一图像中的目标人物的人脸与标准人脸模型拟合得到第一三维模型;第一三维模型为目标人物人脸对应的三维模型,即代表了目标人物真实人脸的形状、三维空间中的位置和姿态;基于矫正距离将第一三维模型进行坐标变换得到第二三维模型;基于第一图像的坐标系,将第一三维模型进行透视投影得到第一组投影点;基于第一图像的坐标系,将第二三维模型进行透视投影得到第二组投影点;得到位移向量(场),该位移向量(场)是通过第一组投影点和第二组投影点对准得到的;根据位移向量(场)对第一图像进行变换,得到第二图像。

针对基于矫正距离将第一三维模型进行坐标变换得到第二三维模型;

一种可能的实现方式是:对于一个拍摄距离,对应一个矫正距离,且矫正距离与拍摄距离的比值为k;若第一三维模型上任意像素点的空间坐标为(x,y,z),则该点映射到第二三维模型上的坐标为(kx,ky,kz)。k的值可以通过上述方式1中拍摄距离与矫正距离的对应关系来确定;还可以通过上述方式2中畸变矫正控件的调节来确定。可选的,可以参照图13k,用户可以在预览界面中确定距离变化的控件,13k中的滑块可以用于相对于当前拍摄距离的基础上进行增减,如向右是增加,向左是减小,终端可以根据当前图像的拍摄距离与用户针对滑块控件的操作确定矫正距离;进度条的中点或者进度条的左侧起点可以表示矫正距离与第一图像的拍摄距离相同。在一种更为简单的实例中,如图13l所示,界面中有一个更为直接的调节畸变矫正强度的控件,k为矫正距离与拍摄距离的比值。例如,从左向右,k值逐渐增大,畸变矫正强度逐渐变强;进度条的中点可以为k=1,或者进度条的左侧起点可以为k=1。应理解,对于k小于1的情形,可以实现趣味性的畸变放大。

另一种可能的实现方式是:对于一个拍摄距离,对应一个矫正距离,该拍摄距离、矫正距离为三维矢量,可以分别表示为(dx1,dy1,dz1),(dx2,dy2,dz2);若第一三维模型上任意像素点的空间坐标为(x,y,z),则该点映射到第二三维模型上的坐标为(k1*x,k2*y,k3*z),其中,k1=dx2/dx1,k2=dy2/dy1,k3=dz2/dz1;上述三维矢量和空间坐标对应于同一参考坐标系,且坐标轴也是对应的。k1、k2、k3的值可以通过上述方式1中拍摄距离与矫正距离的对应关系来确定,该情况下,k1、k2、k3可以相等。k1、k2、k3的值还可以通过上述方式2中畸变矫正控件的调节来确定。可选的,可以参照图13m,用户可以在预览界面中确定距离变化的控件,13m中的滑块可以用于相对于当前拍摄距离的基础上在预设坐标系的三个维度(xyz)上进行增减,如向右是增加,向左是减小,终端可以根据当前图像的拍摄距离与用户针对滑块控件的操作确定矫正距离;进度条的中点或者进度条的左侧起点可以表示矫正距离与第一图像的拍摄距离相同。在一种更为简单的实例中,如图13n所示,界面中有更为直接的调节畸变矫正强度的控件,k1、k2、k3的值为矫正距离与拍摄距离在三个维度上的比值。例如,对于同一进度条,从左向右,k1、k2或k3值逐渐增大,该维度上的畸变矫正强度逐渐变强;进度条的中点可以为k1、k2或k3=1,或者进度条的左侧起点可以为k1、k2或k3=1。应理解,对于k1、k2或k3小于1的情形,可以实现某一维度上趣味性的畸变放大。

可选的,基于所述第一图像的坐标系可以理解为,以第一图像的中心点为原点,水平方向为x轴,垂直方向为y轴建立的坐标系。假设图像的宽、高为W、H,则右上角坐标可以为(W/2,H/2)。

具体地,其中的一些相关运算可以参考前述实施例中的相关表述。

思路2:获取矫正距离;获取感兴趣区域;感兴趣区域包括眉毛、眼睛、鼻子、嘴巴或耳朵中的至少一个区域;根据所述目标距离、所述感兴趣区域和所述矫正距离对所述第一图像进行畸变矫正。应理解,针对于同一目标距离,矫正距离的值越大,表示畸变矫正的程度越大。矫正距离需要大于所述目标距离。

该思路主要用于对人脸中的感兴趣区域进行畸变矫正。其中,获取矫正距离的方法可以参考思路1中的方式1和方式2。

此时,针对第一图像进行畸变矫正的方法可以包括:

根据目标距离将第一图像中的所述目标人物的人脸与标准人脸模型拟合得到第一三维模型;第一三维模型为所述目标人物人脸对应的三维模型;基于矫正距离将第一三维模型进行坐标变换得到第二三维模型;将第一三维模型中感兴趣区域对应的模型区域进行透视投影得到第一组投影点;将第二三维模型中感兴趣区域对应的模型区域进行透视投影得到第二组投影点;得到位移向量(场),位移向量(场)是通过第一组投影点和第二组投影点对准得到的;根据位移向量(场)对第一图像进行变换,得到第二图像。

其中,针对基于矫正距离将第一三维模型进行坐标变换得到第二三维模型的具体方法可以参与思路1中的相关描述,此处不再赘述。值得注意的是,畸变矫正菜单中有感兴趣区域的选项,具体可以参见图13j-13m中的五官选项;可以响应于用户的选择,进行感兴趣区域的畸变矫正,如选择眉毛、眼睛、鼻子、嘴巴、耳朵或者脸部轮廓。

针对上述两种思路,当目标距离在第一预设距离范围内时,目标距离越小,即实际拍摄距离越近,需要的畸变矫正的强度越大,即需要确定相对比例更高的矫正距离进行相应的算法处理,以达到较好的矫正效果;其中,第一预设距离范围小于等于预设的畸变拍摄距离。作为举例,第一预设距离范围可以包括[30cm,40cm]或[25cm,45cm]。此外,目标人物的人脸偏离正脸的角度越大,需要的畸变矫正的强度越小,即需要确定相对比例更小的矫正距离进行相应的算法处理,以达到较好的矫正效果。

具体地,其中的一些相关运算可以参考前述实施例中的相关表述。

在具体实现过程中,并非所有的图像都需要畸变矫正。因此,可以在获取第一图像之后,通过判定一些畸变矫正的触发条件,进而触发畸变矫正。畸变矫正的触发条件包括但不限于判断下列条件的一个或多个成立:

条件1:第一图像中,目标人物的人脸的完整度大于预设完整度阈值;或者,判断目标人物的人脸的五官完整。即能让终端识别出可以进行畸变矫正的人脸场景。

条件2:目标人物的人脸偏离正脸的pitch角度符合第一角度范围,且目标人物的人脸偏离正脸的yaw角度符合第二角度范围;作为举例,所述第一角度范围位于[-30°,30°]内,所述第二角度范围位于[-30°,30°]内。即,进行畸变矫正的人脸图像需要尽可能接近于正脸。

条件3:对当前拍摄场景进行人脸检测,且检测到的有效的人脸仅有一个;有效的人脸为目标人物的人脸。即,畸变矫正可以只针对一个人物主体,

条件4:判断目标距离小于等于预设的畸变拍摄距离。拍摄距离通常是产生人物畸变的重要要素。作为举例,畸变拍摄距离不大于60cm,如60cm、50cm等。

条件5:判断终端当前正在使能的摄像头是前置摄像头,前置摄像头用于采集第一图像。前置拍摄也是产生人物畸变的重要原因。

条件6:终端当前的拍照模式为预设拍照模式,或者开启了畸变矫正功能。如人像拍摄,或默认拍摄,或其他特定拍摄模式;或者终端使能了畸变矫正功能。

本发明提供了一种图像处理方法,用于畸变矫正。不仅适用于实时拍摄,还能帮助用户在观看图库时进行快捷、方便地趣味性矫正编辑,给用户带来更高的使用体验。

相应地,本申请还提供一种图像处理装置,参见图14b,该装置1400包括:

获取模块1401,用于获取第一图像,所述第一图像中包括目标人物的人脸;其中,所述第一图像中的所述目标人物的人脸存在畸变;还用于获取目标距离;所述目标距离用于表征拍摄第一图像时,所述目标人物的人脸与拍摄终端之间的距离。

在具体实现过程中,获取模块1401具体用于执行步骤401和步骤402中所提到的方法以及可以等同替换的方法。

处理模块1402,用于对所述第一图像的目标人物的人脸进行第一处理得到第二图像;其中,所述第一处理包括根据所述目标距离对所述第一图像进行畸变矫正;所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

在具体实现过程中,处理模块1402具体用于执行步骤403中所提到的方法以及可以等同替换的方法。

此外,所述装置1400还可以包括:

判断模块1403,用于判断前文所述的条件1-条件6中的一种或多种条件是否成立。

显示模块1404,用于显示前文所述的各种界面和图像。

录制模块1405,用于录制如前文所述的畸变矫正的过程片段或者用户使用相机、或编辑图像的部分过程或全部过程,用以生成趣味性的视频或者gif。

其中,上述具体的方法实施例以及实施例中技术特征的解释、表述、以及多种实现形式的扩展也适用于装置中的方法执行,装置实施例中不予以赘述。

本发明实施方式和应用场景众多,无法逐一详细列举,在不违背自然规律的前提下,本发明中可选的实施方式可以自由组合与变换,这些都应属于本发明的保护范围。

图15为本申请图像变换装置实施例的结构示意图,如图15所示,本实施例的装置可以应用于图2所示的终端。该图像变换模块包括:获取模块1501、处理模块1502、录制模块1503和显示模块1504。其中,

在自拍场景下,获取模块1501,用于通过前置摄像头针对目标场景获取第一图像,所述目标场景包括目标人物的人脸;获取所述目标人物的人脸与所述前置摄像头之间的目标距离;处理模块1502,用于当所述目标距离小于预设阈值时,对所述第一图像进行第一处理得到第二图像;所述第一处理包括根据所述目标距离对所述第一图像进行畸变矫正;其中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

在一种可能的实现方式中,所述目标距离包括所述目标人物的人脸上的最前端部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的指定部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的中心位置与所述前置摄像头之间的距离。

在一种可能的实现方式中,所述获取模块1501,具体用于获取所述目标人物的人脸在所述第一图像中的屏占比;根据所述屏占比和所述前置摄像头的视场角FOV得到所述目标距离。

在一种可能的实现方式中,所述获取模块1501,具体用于通过距离传感器获取所述目标距离,所述距离传感器包括飞行时间测距法TOF传感器、结构光传感器或者双目传感器。

在一种可能的实现方式中,所述预设阈值小于80厘米。

在一种可能的实现方式中,所述第二图像包括预览图像或者触发快门后得到的图像。

在一种可能的实现方式中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌,包括:所述第二图像中的目标人物的五官的相对比例相较于所述第一图像中的目标人物的五官的相对比例更接近于所述目标人物的人脸五官的相对比例;和/或,所述第二图像中的目标人物的五官的相对位置相较于所述第一图像中的目标人物的五官的相对位置更接近于所述目标人物的人脸五官的相对位置。

在一种可能的实现方式中,所述处理模块1502,具体用于根据所述目标距离将所述第一图像中的所述目标人物的人脸与标准人脸模型进行拟合得到所述目标人物的人脸的深度信息;根据所述深度信息对所述第一图像进行透视畸变矫正得到所述第二图像。

在一种可能的实现方式中,所述处理模块1502,具体用于建立所述目标人物的人脸的第一三维模型;对所述第一三维模型的位姿和/或形状进行变换得到所述目标人物的人脸的第二三维模型;根据所述深度信息、所述第一三维模型和所述第二三维模型获取所述目标人物的人脸的像素位移向量场;根据所述目标人物的人脸的像素位移向量场得到所述第二图像。

在一种可能的实现方式中,所述处理模块1502,具体用于根据所述深度信息对所述第一三维模型进行透视投影得到第一坐标集合,所述第一坐标集合包括对应于所述第一三维模型中的多个像素的坐标值;根据所述深度信息对所述第二三维模型进行透视投影得到第二坐标集合,所述第二坐标集合包括对应于所述第二三维模型中的多个像素的坐标值;计算第一坐标值和第二坐标值之间的坐标差得到所述目标物体的像素位移向量场,所述第一坐标值包括第一像素在所述第一坐标集合中对应的坐标值,所述第二坐标值包括所述第一像素在所述第二坐标集合中对应的坐标值,所述第一像素包括所述第一三维模型和所述第二三维模型包含的多个相同像素中的任意一个。

在基于用户输入的变换参数对图片进行畸变矫正的场景下,获取模块1501,用于获取第一图像,所述第一图像包括目标人物的人脸;其中,所述第一图像中的所述目标人物的人脸存在畸变;显示模块1504,用于显示畸变矫正功能菜单;所述获取模块1501,还用于获取用户在所述畸变矫正功能菜单上输入的变换参数,所述变换参数至少包括等效模拟拍摄距离,所述等效模拟拍摄距离用于模拟拍摄终端在拍摄所述目标人物的人脸时,所述目标人物的人脸和摄像头之间的距离;处理模块1502,用于对所述第一图像进行第一处理得到第二图像;所述第一处理包括根据所述变换参数对所述第一图像进行畸变矫正;其中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

在一种可能的实现方式中,所述第一图像中的所述目标人物的人脸存在畸变是由第二终端在在拍摄所述第一图像时所述目标人物的人脸与所述第二终端之间的目标距离小于第一预设阈值引起的;其中,所述目标距离包括所述目标人物的人脸上的最前端部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的指定部位与所述前置摄像头之间的距离;或者,所述目标人物的人脸上的中心位置与所述前置摄像头之间的距离。

在一种可能的实现方式中,所述目标距离是通过所述目标人物的人脸在所述第一图像中的屏占比和所述第二终端的摄像头的FOV得到的;或者,所述目标距离是通过所述第一图像的可交换图像文件格式EXIF信息中的等效焦距得到的。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整等效模拟拍摄距离的选项;所述获取模块1501,具体用于根据用户对所述调整等效模拟拍摄距离的选项中的控件或滑块的操作所触发的指令获取所述等效模拟拍摄距离。

在一种可能的实现方式中,所述畸变矫正功能菜单在初始显示时,所述调整等效模拟拍摄距离的选项中的等效模拟拍摄距离的值包括默认值或者预先计算得到的值。

在一种可能的实现方式中,所述显示模块1504,还用于当所述目标人物的人脸存在畸变时,显示弹窗,所述弹窗用于提供是否进行畸变矫正的选择控件;当用户在所述弹窗上点击进行畸变矫正的控件时,响应用户操作所产生的指令。

在一种可能的实现方式中,所述显示模块1504,还用于当所述目标人物的人脸存在畸变时,显示畸变矫正控件,所述畸变矫正控件用于打开所述畸变矫正功能菜单;当用户点击所述畸变矫正控件时,响应用户操作所产生的指令。

在一种可能的实现方式中,所述第一图像中的所述目标人物的人脸存在畸变是由第二终端在拍摄所述第一图像时,摄像头的视场角FOV大于第二预设阈值,且在所述目标人物的人脸与所述FOV的边缘之间的像素距离小于第三预设阈值引起的;其中,所述像素距离包括所述目标人物的人脸上的最前端部位与所述FOV的边缘之间的像素数量;或者,所述目标人物的人脸上的指定部位与所述FOV的边缘之间的像素数量;或者,所述目标人物的人脸上的中心位置与所述FOV的边缘之间的像素数量。

在一种可能的实现方式中,所述FOV通过所述第一图像的EXIF信息得到。

在一种可能的实现方式中,所述第二预设阈值为90°,所述第三预设阈值为所述第一图像的长度或宽度的四分之一。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整位移距离的选项;所述获取模块1501,还用于根据用户在所述调整位移距离的选项中的控件或滑块的操作所触发的指令获取调整方向和位移距离。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整五官的相对位置和/或相对比例的选项;所述获取模块1501,还用于根据用户在所述调整五官的相对位置和/或相对比例的选项中的控件或滑块的操作所触发的指令获取调整方向、位移距离和/或五官尺寸。

在一种可能的实现方式中,所述畸变矫正功能菜单包括调整角度的选项;所述获取模块1501,还用于根据用户在所述调整角度的选项中的控件或滑块的操作所触发的指令获取调整方向和调整角度;或者,所述畸变矫正功能菜单包括调整表情的选项;所述获取模块1501,还用于根据用户在所述调整表情的选项中的控件或滑块的操作所触发的指令获取新的表情模板;或者,所述畸变矫正功能菜单包括调整动作的选项;所述获取模块1501,还用于根据用户在所述调整动作的选项中的控件或滑块的操作所触发的指令获取新的动作模板。

在一种可能的实现方式中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌,包括:所述第二图像中的目标人物的五官的相对比例相较于所述第一图像中的目标人物的五官的相对比例更接近于所述目标人物的人脸五官的相对比例;和/或,所述第二图像中的目标人物的五官的相对位置相较于所述第一图像中的目标人物的五官的相对位置更接近于所述目标人物的人脸五官的相对位置。

在一种可能的实现方式中,所述处理模块1502,具体用于根据所述目标距离将所述第一图像中的所述目标人物的人脸与标准人脸模型进行拟合得到所述目标人物的人脸的深度信息;根据所述深度信息和所述变换参数对所述第一图像进行透视畸变矫正得到所述第二图像。

在一种可能的实现方式中,所述处理模块1502,具体用于建立所述目标人物的人脸的第一三维模型;根据所述变换参数对所述第一三维模型的位姿和/或形状进行变换得到所述目标人物的人脸的第二三维模型;根据所述深度信息、所述第一三维模型和所述第二三维模型获取所述目标人物的人脸的像素位移向量场;根据所述目标人物的人脸的像素位移向量场得到所述第二图像。

在一种可能的实现方式中,所述处理模块1502,具体用于根据所述深度信息对所述第一三维模型进行透视投影得到第一坐标集合,所述第一坐标集合包括对应于所述第一三维模型中的多个像素的坐标值;根据所述深度信息对所述第二三维模型进行透视投影得到第二坐标集合,所述第二坐标集合包括对应于所述第二三维模型中的多个像素的坐标值;计算第一坐标值和第二坐标值之间的坐标差得到所述目标物体的像素位移向量场,所述第一坐标值包括第一像素在所述第一坐标集合中对应的坐标值,所述第二坐标值包括所述第一像素在所述第二坐标集合中对应的坐标值,所述第一像素包括所述第一三维模型和所述第二三维模型包含的多个相同像素中的任意一个。

在一种可能的实现方式中,还包括:录制模块1503;所述获取模块,还用于根据用户对录制控件的触发操作获取录制指令;所述录制模块1503,用于根据所述录制指令启动对所述第二图像的获取过程的录制,直到收到用户对停止录制控件的触发操作产生的停止录制指令。

在一种可能的实现方式中,所述显示模块1504,用于在屏幕上显示畸变矫正功能菜单,所述畸变矫正功能菜单包括一个或多个滑块和/或一个或多个控件;接收畸变矫正指令,所述畸变矫正指令包括用户对所述一个或多个滑块和/或所述一个或多个控件进行触控操作时产生的变换参数,所述变换参数至少包括等效模拟拍摄距离,所述等效模拟拍摄距离用于模拟拍摄终端在拍摄所述目标人物的人脸时,所述目标人物的人脸和摄像头之间的距离;处理模块1502,用于根据所述变换参数对所述第一图像进行第一处理得到第二图像;所述第一处理包括对所述第一图像进行畸变矫正;其中,所述第二图像中的目标人物的人脸相较于所述第一图像中的目标人物的人脸更接近于所述目标人物的人脸的真实样貌。

本实施例的装置,可以用于执行图3或图10所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 图像处理装置、图像显示装置、图像摄像装置、图像印刷装置、灰度变换方法及程序
  • 图像残差矩阵整数变换方法及装置、反变换方法及装置
技术分类

06120113677248