具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着互联网技术的快速发展,终端设备为人们提供了多样化的娱乐方式。其中,直播平台和美颜平台的兴起,为用户提供了更丰富的玩法。用户可以通过在直播平台或美颜平台上,通过增加不同的贴纸或特效对自己的形象进行装饰或改变。但目前的装饰方式大多以增加贴纸为主,装饰方式单一,存在同质化严重创新不足,且目前的直播平台几乎都没有将染发功能应用于主播。同时,大多数贴纸基于图像做添加,贴纸是平面效果,真实感不足。
为了解决上述问题,发明人提出了本申请实施例中的图像处理方法、装置、终端设备及存储介质,通过提取目标对象的头发特征图像,获取头发特征图像在三维空间坐标系中的三维空间坐标,根据头发特征图像的三维空间坐标以及三维染发模型,对目标对象的头发进行渲染,从而将二维的图像转化为三维空间坐标体系,使得呈现出的染发效果更加自然和真实。
下面将通过具体实施例对本申请实施例提供的图像处理方法、装置、终端设备及存储介质进行详细说明。
请参阅图1,图1示出了本申请实施例提供的图像处理方法的流程示意图。下面将针对图1所示的流程进行详细的阐述。上述的图像处理方法具体地可以包括以下步骤:
步骤S110:获取终端设备的视频流。
在本申请实施例中,可以获取终端设备的视频流。
在一些实施方式中,可以通过图像采集装置(例如摄像头)对目标对象进行实时采集,以及通过音频采集装置(例如麦克风)对终端设备周围的音频进行采集,并根据采集的图像信息和音频信息生成视频流。在一些实施方式中,视频流可以是预先存储的终端设备本地的,例如,由用户预先拍摄存储在本地。进一步地,视频流还可以是终端设备从云端中缓存的视频流,在此不作限定。
目前的直播平台中,开播端对主播的图像处理,大部分都是以美颜、增加贴纸为主,存在同质化严重创新不足,且目前的直播平台几乎没有将染发功能应用于主播,而在直播平台里染成各种颜色的头发,会引起女性的极大兴趣,以此为卖点动机可以为直播平台吸引更多的主播和用户加入,从而增加女性用户粘性以及增加更多日活,同时,也增加了直播平台的趣味性,赋予直播更丰富的玩法。因此,在一些实施方式中,当终端设备处于直播状态时,可以获取直播视频流,通过对直播视频流中的主播的头发进行染发,使得主播呈现不同颜色的头发,从而增加主播与观众的互动性。具体地,可以通过查看终端设备的当前运行的应用程序,当终端设备当前运行的应用程序为直播软件时,可以确定终端设备处于直播状态。进一步地,还可以通过查询直播流是否处于正在直播的状态,确定终端设备是否处于直播状态。具体方式在此不作限定。
步骤S120:当从视频流中检测到目标对象的人脸信息时,提取目标对象的头发特征图像。
在一些实施例中,当获取到终端设备的视频流后,为了对用户进行染发,可以对视频流进行检测,当从视频流中检测到目标对象的人脸信息时,可以提取目标对象的头发特征图像。
在一些实施方式中,目标对象的人脸信息可以包括目标对象的眼睛、鼻子等五官以及目标对象的头发。当从视频流中检测到目标对象的人脸信息时,可以确定目标对象的头发区域,即可以是从视频流中提取一帧图像,确定该帧图像中目标对象的头发所在区域,从头发区域中可以提取头发的特征点,并可以将提取到的头发特征点作为头发特征图像。
在一些实施方式中,还可以获取包含目标对象的图像,对目标对象的头发区域进行区域分割,即分割出头发区域和非头发区域,进而可以对头发区域进行识别,提取目标对象的头发特征点作为头发特征图像,进一步地,头发特征图像可以包括头发的轮廓、厚度等特征。
步骤S130:建立三维空间坐标系,并获取头发特征图像在三维空间坐标系中的三维空间坐标。
目前的大多数贴纸是基于图像做添加,即贴纸是平面效果,真实感不足,因此,在本申请实施例中,可以将二维的图像,转化为三维空间坐标体系,即可以建立三维空间坐标系,并获取头发特征图像在三维空间坐标系中的三维空间坐标,从而达到更加真实的染发效果。
在一些实施方法中,可以以目标对象的人脸信息的关键点作为坐标系原点建立三维空间坐标系,例如,可以在目标对象正常站立时,获取双眼的中间点作为坐标系原点,以平行于地面且沿肩膀方向的直线为X轴,以平行于地面且垂直于肩膀方向的直线为Y轴,以垂直于地面的直线作为Z轴,也可以定位鼻尖的位置作为坐标系原点等。
在一些实施方式中,还可以获取包含目标对象的图像以及头发特征图像之间的相对位置和姿态信息,根据该相对位置和姿态信息建立三维空间坐标系。建立三维坐标系的具体方式在此不作限定。
建立好三维空间坐标系,即可获取头发特征图像在三维空间坐标系中的三维空间坐标,其中,头发特征图像可以包括多个头发特征点,获取头发特征图像在三维空间坐标系中的三维空间坐标,可以是获取多个头发特征点在三维空间坐标系中的三维空间坐标。
步骤S140:获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型。
在一些实施例中,可以获取针对目标对象的头发的染发信息,并可以基于染发信息和预设模型生成器生成三维染发模型。其中,头发的染发信息可以包括头发的颜色,例如红色、蓝色、绿色等,还可以包括头发的纹理,如直发、泡面卷、羊毛卷等,在此不作限定。
在一些实施方式中,染发信息可以是由目标对象在终端设备上选取的,例如,如图2所示的终端设备的界面示意图,在直播场景下,主播(即目标对象)点击染发选择按钮,终端设备的界面可以显示多个头发颜色以供目标对象选择,当目标对象选择鎏金粉的颜色时,即染发信息为鎏金粉。在一些实施方式中,染发信息也可以是由终端设备随机产生的,还可以是由终端设备根据目标对象的肤色、发型、脸型等信息推荐生成的,在此不作限定。
在一些实施方式中,可以基于上述获取的染发信息和预设模型生成器生成三维染发模型。其中,预设模型生成器可以是由终端设备预设的,也可以是由对应的应用程序预设的,例如,目标对象在直播应用程序中触发了染发的操作,该直播应用程序的系统中可以预设有模型生成器,当获取到染发信息后,可以启动模型生成器,根据获取的染发信息生成三维染发模型。进一步地,预设的模型生成器可以根据染发信息生成对应的发型基本单元信息,进而根据发型基本单元信息生成三维染发模型。例如,染发信息包括颜色信息时,可以生成对应的每个像素点的颜色,得到三维染发模型。
步骤S150:基于三维空间坐标和三维染发模型对目标对象的头发进行渲染。
在一些实施例中,在获取头发特征图像的三维空间坐标以及三维染发模型后,可以基于三维空间坐标和三维染发模型对目标对象的头发进行渲染。在一些实施方式中,可以将三维染发模型对应渲染在三维空间坐标上,其中,可以采用开放图形库(OpenGraphics Library,OpenGL)、Metal平台等渲染工具进行渲染。进一步地,可以对头发特征图像进行跟踪,从而在头发特征图像的坐标不断变化时,可以调整三维染发模型的大小、旋转角度再进行渲染,使得染发的颜色、纹理等会跟随目标对象的头发移动而移动。
上述实施例提供的图像处理方法,获取终端设备的视频流;当从视频流中检测到目标对象的人脸信息时,提取目标对象的头发特征图像;建立三维空间坐标系,并获取头发特征图像在三维空间坐标系中的三维空间坐标;获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型;基于三维空间坐标和三维染发模型对目标对象的头发进行渲染。通过根据目标对象的头发特征图像的三维空间坐标以及三维染发模型,对目标对象的头发进行渲染,从而将二维的图像转化为三维空间坐标体系,使得呈现出的染发效果更加自然和真实。
请参阅图3,图3示出了本申请实施例提供的一图像处理方法的流程示意图,该方法包括:
步骤S210:获取终端设备的视频流。
其中,步骤S210的具体描述请参阅步骤S110,在此不再赘述。
步骤S220:当从视频流中检测到目标对象的人脸信息时,获取包括目标对象的图像。
在一些实施方式中,当从视频流中检测到目标对象的人脸信息时,可以获取包括目标对象的图像,具体地,视频流包括多帧图像,对视频流中目标对象的人脸信息进行检测时,可以是对多帧图像分别进行检测,当从某一帧图像中检测到目标对象的人脸信息时,可以获取该帧图像。进一步地,当视频流中的多帧图像均检测到目标对象的人脸信息时,可以获取该多帧图像。
步骤S230:将图像输入已训练的特征提取模型中,获取由特征提取模型输出的头发特征图像。
在一些实施例,可以将上述获取的包括目标对象的图像输入已训练的特征提取模型中,从而获取由特征提取模型输出的头发特征图像。
具体地,在一些实施方式中,可以预先获取大量的发型图片以及头发特征图像的训练样本,通过神经网络训练得到特征提取模型。训练样本可以包括输入样本及输出样本,输入样本可以包括发型图片,输出样本可以为发型图片对应的头发特征图像。从而可以将包括目标对象的图像输入该特征提取模型中,获取输出的头发特征图像。
步骤S240:建立三维空间坐标系,并获取头发特征图像在三维空间坐标系中的三维空间坐标。
在一些实施方式中,请参阅图4,图4示出了本申请的图3所示的实施例提供的图像处理方法的步骤S240的流程示意图。下面将针对图4所示的流程进行详细的阐述,方法具体可以包括以下步骤:
步骤S241:将图像与头发特征图像进行匹配,得到图像和头发特征图像的相对位置与姿态信息。
在一些实施例中,可以将上述获取的包括目标对象的图像与头发特征图像进行匹配,得到图像和头发特征图像的相对位置与姿态信息。
在一些实施方式中,可以采用特征匹配算法将目标对象的图像与头发特征图像进行匹配,其中,特征匹配算法可以是加速段测试(Features From Accelerated SegmentTest,FAST)算法、尺度不变特征变换(Scale Invariant Feature Transform,SIFT)算法,暴力(Brute-Force)匹配等,在此不作限定。具体地,可以检测目标对象的图像的像素点的位置,以及头发特征图像中的特征点的位置,分别计算像素点的向量以及特征点的向量,可以将像素点的向量与特征点的向量一一比较进行匹配。根据匹配后的图像和头发特征图像,确定图像与头发特征图像的相对位置与姿态信息,其中,姿态信息包括图像与头发特征图像之间的旋转角度信息。
步骤S242:基于相对位置与姿态信息建立三维空间坐标系。
在一些实施例中,可以基于相对位置与姿态信息建立三维空间坐标系。在一些实施方式中,将图像和头发特征图像进行匹配后,可以基于确定的相对位置与姿态信息,计算法向量,从而建立三维空间坐标系。
步骤S243:基于三维空间坐标系获取头发特征图像的三维空间坐标。
在一些实施例中,建立好三维空间坐标系,即可获取头发特征图像在三维空间坐标系中的三维空间坐标,其中,头发特征图像可以包括多个头发特征点,获取头发特征图像在三维空间坐标系中的三维空间坐标,可以是获取多个头发特征点在三维空间坐标系中的三维空间坐标。
步骤S250:获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型。
步骤S260:基于三维空间坐标和三维染发模型对目标对象的头发进行渲染。
其中,步骤S250-步骤S260的具体描述请参阅步骤S140-步骤S150,在此不再赘述。
上述实施例提供的图像处理方法,获取终端设备的视频流;当从视频流中检测到目标对象的人脸信息时,获取包括目标对象的图像;将图像输入已训练的特征提取模型中,获取由特征提取模型输出的头发特征图像;建立三维空间坐标系,并获取头发特征图像在三维空间坐标系中的三维空间坐标;获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型;基于三维空间坐标和三维染发模型对目标对象的头发进行渲染。上述实施例通过将图像输入已训练的特征提取模型中,获取由特征提取模型输出的头发特征图像,从而获取更准确的头发特征图像,进而可以得到更真实的染发效果。
请参阅图5,图5示出了本申请实施例提供的另一图像处理方法的流程示意图,该方法包括:
步骤S310:获取终端设备的视频流。
步骤S320:当从视频流中检测到目标对象的人脸信息时,提取目标对象的头发特征图像。
其中,步骤S310-步骤S320的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S330:建立三维空间坐标系,基于时间序列获取头发特征图像在三维空间坐标系中的多个三维空间坐标。
在一些实施例中,在提取目标对象的头发特征图像后,可以对头发特征图像进行跟踪,从而根据变化的头发特征图像的坐标进行渲染,使得目标对象的染发效果跟随头发的移动而移动。在一些实施方式中,根据上述实施例的方法建立三维空间坐标系,可以基于时间序列获取头发特征图像在三维空间坐标系中的多个三维空间坐标。具体地,可以基于时间序列依次获取视频流中头发特征图像在三维空间坐标系中的多个三维空间坐标,例如,可以在17:00到17:01之间,按照时间序列获取每秒对应的视频流中头发特征图像的三维空间坐标,得到一分钟内的头发特征图像的多个三维空间坐标。
步骤S340:基于多个三维空间坐标获取变换矩阵。
在一些实施例中,可以基于多个三维空间坐标获取变换矩阵。在一些实施方式中,可以根据光流金字塔算法,实时跟踪头发特征图像的移动,从而实时更新光流金字塔的变换矩阵。具体地,以建立三层金字塔为例进行说明,可以在最高一层的图像上计算出光流和变换矩阵,将最高一层的计算结果作为初始值传递给下一层,即第二层图像,第二层图像在这个初始值的基础上,计算第二层的光流和仿射变化矩阵;再将第二层的光流和变换矩阵作为初始值传递给最后一层,即原始图像层,最后一层计算出来的光流和变换矩阵作为最后的光流和变换矩阵的结果,从而更新跟踪结果。
步骤S350:获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型。
其中,步骤S350的具体描述请参阅步骤S140,在此不再赘述。
步骤S360:基于变换矩阵以及三维染发模型对目标对象的头发进行渲染。
在一些实施例中,在获取头发特征图像的变换矩阵以及三维染发模型后,可以基于变换矩阵和三维染发模型对目标对象的头发进行渲染。在一些实施方式中,可以将三维染发模型对应渲染在变换矩阵上,从而在头发特征图像的坐标不断变化时,可以调整三维染发模型的大小、旋转角度再进行渲染,使得染发的颜色、纹理等会跟随目标对象的头发移动而移动。其中,可以采用开放图形库(Open Graphics Library,OpenGL)、Metal平台等渲染工具进行渲染。
在一些实施方式中,请参阅图6,图6示出了本申请实施例提供的用于执行图像处理方法的系统100的结构实例图,该图6中的结构仅为示例,具体的系统结构在此不做限定。系统100包括指挥者110、抽象视频帧渲染器构建者120、具体视频帧渲染器构建者130以及视频帧渲染器140。
其中,具体视频帧渲染器构建者130可以用于创建3D模型基本单元生成器、创建空间坐标转换器、创建头发识别器。抽象视频帧渲染器构建者120可以包括视频帧渲染器140,还可以继承具体视频帧渲染器构建者130的功能,同时,抽象视频帧渲染器构建者120还可以获取视频帧渲染器140。指挥者110由抽象视频帧渲染器构建者120组成,指挥者110可以用于创建视频帧渲染器140。
在一些实施方式中,视频帧渲染器140可以包括3D模型基本单元生成器141(即上述的预设模型生成器)、3D空间坐标转换器142以及头发识别器143,视频帧渲染器140可以用于渲染视频帧,实现染发效果。其中,3D模型基本单元生成器141包括3D模型基本单元,3D模型基本单元生成器141可以用于生成对应颜色纹理的发型基本单元模型(即上述的三维染发模型)。3D空间坐标转换器142包括变换矩阵、3D坐标系,3D空间坐标转换器142可以用于将二维图片帧转化为三维空间坐标,还可以用于跟踪特征图像移动,实时更新变换矩阵。头发识别器143包括头发特征点集合,头发识别器143用于渲染视频帧。
因此,可以采用构建者设计模式,其中,视频帧渲染器是由多个子部件组装而成的复杂对象,将组装过程和视频帧渲染器的表示、使用分离,让客户端程序依赖于抽象视频帧渲染器构建者,不必知道视频帧渲染器的内部组成细节,从而控制细节风险。同时,各个生产视频帧渲染器的具体视频帧渲染器构建者相互独立,有利于系统扩展。
上述实施例提供的图像处理方法,获取终端设备的视频流;当从视频流中检测到目标对象的人脸信息时,提取目标对象的头发特征图像;建立三维空间坐标系,基于时间序列获取头发特征图像在三维空间坐标系中的多个三维空间坐标;基于多个三维空间坐标获取变换矩阵;获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型;基于变换矩阵以及三维染发模型对目标对象的头发进行渲染。上述实施例通过对头发特征图像进行跟踪后更新变换矩阵,根据更新后的变换矩阵对目标对象的头发进行渲染,从而可以将头发特征图像的变化规律与三维染发模型绑定,使得目标对象的头发在移动时,染发效果也随着移动,达到更加逼真真实的染发效果。
请参阅图7,图7示出了本申请实施例提供的又一图像处理方法的流程示意图,该方法包括:
步骤S410:获取终端设备的视频流。
其中,步骤S410的具体描述请参阅步骤S110,在此不再赘述。
步骤S420:检测视频流中是否存在目标对象的人脸信息。
在一些实施例中,在获取终端设备的视频流后,可以检测视频流中是否存在目标对象的人脸信息。具体地,视频流可以包括多帧图像,可以分别检测多帧图像中的每一帧图像是否存在目标对象的人脸信息。其中,目标对象的人脸信息可以包括目标对象的眼睛、鼻子、头发等。可以通过对多帧图像中的每一帧图像进行识别,检测每一帧图像是否包括眼睛、鼻子等人脸信息,从而确定是否存在目标对象的人脸信息。
步骤S430:当视频流中未检测到目标对象的人脸信息时,输出提示信息,以提示目标对象调整位置信息。
在一些实施例中,当视频流中未检测到目标对象的人脸信息时,可以输出提示信息,以提示目标对象调整位置信息。
在一些实施方式中,当对视频流的多帧图像中的每一帧图像进行识别时,若每一帧图像均不包括眼睛、鼻子等人脸信息时,可以确定视频流中未检测到目标对象的人脸信息。在一些实施方式中,当图像中包括目标对象的人脸信息时,还可以获取人脸信息的面积与图像面积的比例,当人脸信息的面积占图像面积比例小于一定阈值时,可以确定视频流中未检测到目标对象的人脸信息。在一些实施方式中,终端设备的显示界面可以包括预设区域,该预设区域用于当预设区域中有人脸信息时,提取目标对象的头发特征图像,因此当预设区域未检测到人脸信息时,可以确定视频流中未检测到目标对象的人脸图像。
进一步地,当视频流中未检测到目标对象的人脸信息时,可以输出提示信息,以提示目标对象调整位置信息,并且将位置信息调整到视频流中可以检测到目标对象的人脸信息为止。其中,提示目标对象调整位置信息,可以调整目标对象自己的位置信息,也可以是提示目标对象调整终端设备的位置信息,在此不作限定。
本实施例提供的图像处理方法,获取终端设备的视频流;检测视频流中是否存在目标对象的人脸信息;当视频流中未检测到目标对象的人脸信息时,输出提示信息,以提示目标对象调整位置。本申请实施例通过在视频流中未检测到目标对象的人脸信息时,提示目标对象调整位置,使得终端设备在视频流中检测到目标对象的人脸信息时,再进行染发处理,从而降低终端设备的功耗。
请参阅图8,图8示出了本申请实施例提供的再一图像处理方法的流程示意图,该方法包括:
步骤S510:获取终端设备的视频流。
步骤S520:当从视频流中检测到目标对象的人脸信息时,提取目标对象的头发特征图像。
步骤S530:建立三维空间坐标系,并获取头发特征图像在三维空间坐标系中的三维空间坐标。
步骤S540:获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型。
步骤S550:基于三维空间坐标和三维染发模型对目标对象的头发进行渲染。
其中,步骤S510-步骤S550的具体描述请参阅步骤S110-步骤S150,在此不再赘述。
步骤S560:基于渲染后的目标对象实时生成视频。
在一些实施方式中,可以基于渲染后的目标对象实时生成视频。具体地,终端设备基于三维空间坐标和三维染发模型对目标对象的头发进行渲染,即可实时生成渲染后的图像帧,基于不断更新的图像帧可以生成视频。例如,在直播场景下,当主播选择染发的颜色后,即可对主播的头发进行渲染,并实时生成直播视频。再例如,在美颜场景下,当目标对象选择染发的颜色和纹理后,即可进行渲染,并实时生成视频。
步骤S570:播放视频。
在一些实施方式中,当基于渲染后的目标对象实时生成视频后,可以播放该视频。其中,可以是在生成视频后实时播放视频,例如,在直播场景下,当主播选择染发的颜色后,即可对主播的头发进行渲染,实时生成直播视频,并将直播视频实时进行播放,进一步地,主播还可以通过视频对染发效果进行评价。在另一些实施方式中,基于渲染后的目标对象实时生成视频后,还可以将该视频进行存储,当目标对象触发了播放操作后,将该视频进行播放。例如,目标对象可以通过用以理发店和顾客确认染发需求的应用程序,选择自己满意的染发效果后,可以将视频进行存储,当目标对象去理发店时,可以将该视频播放给理发师,让理发师对照视频对目标对象的头发进行染发,从而可以改善只能拿图片或者语言和理发师沟通时,染发后的效果有极大不确定性的现象,进一步地,目标对象可以通过应用程序对理发师的染发效果满意度进行评价。
上述实施例提供的图像处理方法,获取终端设备的视频流;当冲视频流中检测到目标对象的人脸信息时,可以提取目标对象的头发特征图像;建立三维空间坐标系,并获取头发特征图像在三维空间坐标系中的三维空间坐标;获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型;基于三维空间坐标和三维染发模型对目标对象的头发进行渲染;基于渲染后的目标对象实时生成视频;并播放该视频。上述实施例基于渲染后的目标对象实时生成视频,并播放该视频,从而使得目标对象可以查看染发的效果,也可以由目标对象向其他人展示自己的染发效果。
请参阅图9,图9示出了本申请实施例提供的图像处理装置900的结构框图。下面将针对图9所示的框图进行阐述,该图像处理装置900包括:视频流获取模块910、特征提取模块920、坐标获取模块930、模型获取模块940以及渲染模块950,其中:
视频流获取模块910,用于获取终端设备的视频流。
进一步地,视频流获取模块910包括:视频流获取子模块,其中:
视频流获取子模块,用于当终端设备处于直播状态时,获取直播视频流。
特征提取模块920,用于当从视频流中检测到目标对象时,提取目标对象的头发特征图像。
进一步地,特征提取模块920包括:图像获取子模块以及图像输出子模块,其中:
图像获取子模块,用于当从视频流中检测到目标对象的人脸信息时,获取包括目标对象的图像。
图像输出子模块,用于将图像输入已训练的特征提取模型中,获取由特征提取模型输出的头发特征图像。
坐标获取模块930,用于建立三维空间坐标系,并获取头发特征图像在三维空间坐标系中的三维空间坐标。
进一步地,坐标获取模块930包括:图像匹配子模块、坐标系建立子模块以及第一坐标获取子模块,其中:
图像匹配子模块,用于将图像与头发特征图像进行匹配,得到图像和头发特征图像的相对位置与姿态信息。
坐标系建立子模块,用于基于相对位置与姿态信息建立三维空间坐标系。
第一坐标获取子模块,用于基于三维空间坐标系获取头发特征图像的三维空间坐标。
进一步地,坐标获取模块930还包括:第二坐标获取子模块以及矩阵获取子模块,其中:
第二坐标获取子模块,用于基于时间序列获取头发特征图像在三维空间坐标系中的多个三维空间坐标。
矩阵获取子模块,用于基于多个三维空间坐标获取变换矩阵。
模型获取模块940,用于获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型。
渲染模块950,用于基于三维空间坐标和三维染发模型对目标对象的头发进行渲染。
进一步地,渲染模块950包括:渲染子模块,其中:
渲染子模块,用于基于变换矩阵以及三维染发模型对目标对象的头发进行渲染。
进一步地,图像处理装置900还包括:人脸检测模块以及信息输出模块,其中:
人脸检测模块,用于检测视频流中是否存在目标对象的人脸信息。
信息输出模块,用于当视频流中未检测到目标对象的人脸信息时,输出提示信息,以提示目标对象调整位置信息。
进一步地,图像处理装置900还包括:视频生成模块以及视频播放模块,其中:
视频生成模块,用于基于渲染后的目标对象实时生成视频。
视频播放模块,用于播放视频。
本申请实施例提供的图像处理装置用于实现前述方法实施例中相应的图像处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的技术人员可以清楚地了解到,本申请实施例提供的图像处理装置能够实现前述方法实施例中的各个过程,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参阅前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图10,其示出了本申请实施例提供的一种终端设备1000的结构框图。该终端设备1000可以是手机、平板、电脑等能够运行应用程序的终端设备。本申请中的终端设备1000可以包括一个或多个如下部件:处理器1010、存储器1020以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器1020中并被配置为由一个或多个处理器1010执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器1010可以包括一个或者多个处理核。处理器1010利用各种接口和线路连接整个终端设备1010内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行终端设备1010的各种功能和处理数据。可选地,处理器1010可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logic array,PLA)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(central processing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1010中,单独通过一块通信芯片进行实现。
存储器1020可以包括随机存储器(random access memory,RAM),也可以包括只读存储器(read-only memory,ROM)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端设备1010在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参阅图11,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质1100中存储有程序代码1110,程序代码1110可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读取存储介质1100可以是诸如闪存、电可擦除可编程只读存储器(electrically-erasable programmable read-only memory,EEPROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质1100包括非易失性计算机可读介质(non-transitorycomputer-readable storage medium)。计算机可读取存储介质1100具有执行上述方法中的任何方法步骤的程序代码1110的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的图像处理方法、装置、终端设备及存储介质,获取终端设备的视频流;当从视频流中检测到目标对象的人脸信息时,提取目标对象的头发特征图像;建立三维空间坐标系,并获取头发特征图像在三维空间坐标系中的三维空间坐标;获取针对目标对象的头发的染发信息,并基于染发信息和预设模型生成器生成三维染发模型;基于三维空间坐标和三维染发模型对目标对象的头发进行渲染。本申请通过根据目标对象的头发特征图像的三维空间坐标以及三维染发模型,对目标对象的头发进行渲染,从而将二维的图像转化为三维空间坐标体系,使得呈现出的染发效果更加自然和真实。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。