人体手部图像的生成方法、装置、设备和存储介质
文献发布时间:2024-04-18 19:58:26
技术领域
本申请一个或多个实施例涉及计算机应用技术领域,尤其涉及一种人体手部图像的生成方法、装置、设备和存储介质。
背景技术
现如今,AI(Artificial Intelligence,人工智能)作画越来越流行。AI作画可以根据用户输入的描述文本输出相应的图像。例如,对外提供AI作画功能的应用程序可以面向用户输出用户界面,使用户可以通过该用户界面输入描述文本,假设该描述文本为“一个人拿着一个杯子”,则该应用程序可以通过该用户界面输出包含一个人体和一个杯子的图像,并且在该图像中,这个人体的胳膊和手部所处的姿态是拿着这个杯子。
然而,目前的AI作画中经常会出现输出图像包含的人体手部不合理的问题,从而导致输出图像对于用户而言是不可用的,影响用户在使用AI作画时的体验。人体手部不合理的问题通常包括:人体手部多手指或少手指(即单手手指的数量不为5),或者人体手部所处的姿态不符合常理(例如:手指向手背弯折的角度达到90度、两根手指张开的夹角达到180度等),等等。因此,对于AI作画而言,如何降低输出图像包含的人体手部不合理的概率,也就成为了备受关注的问题。
发明内容
本申请一个或多个实施例提供技术方案如下:
本申请提供一种人体手部图像的生成方法,所述方法包括:
获取与人体手部样本对应的二维手部图像,并将所述二维手部图像输入三维重建模型,以使所述三维重建模型基于所述二维手部图像重建出三维手部图形;
将所述三维手部图形投影至预设的二维平面,以将所述三维手部图形转化为二维图像;
获取用于生成人体手部图像的噪声图像,并将所述二维图像和所述噪声图像输入生成模型,以使所述生成模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像。
本申请还提供一种人体手部图像的生成装置,所述装置包括:
重建模块,获取与人体手部样本对应的二维手部图像,并将所述二维手部图像输入三维重建模型,以使所述三维重建模型基于所述二维手部图像重建出三维手部图形;
投影模块,将所述三维手部图形投影至预设的二维平面,以将所述三维手部图形转化为二维图像;
生成模块,获取用于生成人体手部图像的噪声图像,并将所述二维图像和所述噪声图像输入生成模型,以使所述生成模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像。
本申请还提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。
在上述技术方案中,可以先获取与人体手部样本对应的二维手部图像,再由三维重建模型基于二维手部图像,重建出的三维手部图形,然后可以通过三维手部图形投影至二维平面,将三维手部图形转化为二维图像,最后可以由生成模型将由三维手部图形转化得到的二维图像作为额外的控制条件,基于噪声图像,生成与所述二维图像匹配的人体手部图像。
采用上述方式,通过大量不同的人体手部样本,可以得到数据量大且具有多样性的三维手部图形,从而可以将由这些三维手部图形转化得到的二维图像作为先验信息,通过该先验信息引导生成与这些二维图像匹配的人体手部图像;在这些人体手部样本的形状、所处的姿态等均合理的情况下,就可以保证所生成的人体手部图像中的人体手部是合理的,从而可以保证所生成的人体手部图像对于用户而言是可用的,提升用户体验。并且,所生成的人体手部图像的数据量大且具有多样性。
附图说明
下面将对示例性实施例的描述中所需要使用的附图进行说明,其中:
图1是本申请一示例性实施例示出的一种人体手部图像的生成系统的架构示意图;
图2是本申请一示例性实施例示出的一种人体手部图像的生成方法的流程图;
图3是本申请一示例性实施例示出的一种基于神经网络构建的参数化模型的架构示意图;
图4是本申请一示例性实施例示出的一种基于Control Net构建的扩散模型的架构示意图;
图5是本申请一示例性实施例示出的一种设备的结构示意图;
图6是本申请一示例性实施例示出的一种人体手部图像的生成装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或者相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请一个或多个实施例相一致的所有实施方式。相反,它们仅是与本申请一个或多个实施例的一些方面相一致的例子。
需要说明的是,在其他实施例中并不一定按照本申请示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本申请所描述的更多或者更少。此外,本申请中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本申请中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在实际的应用中,面向用户的应用程序通常由前台客户端和后台服务端进行配合来实现。其中,前台客户端可以面向用户输出用户界面,供用户在该用户界面中执行点击、长按、输入文本、绘制图像、插入文件等交互操作,并将基于各种交互操作生成的数据发送给后台服务端,而后台服务端则可以基于前台客户端发送的这些数据进行相应的计算,以实现该应用程序对外提供的功能。
对于对外提供AI作画功能的应用程序而言,这类应用程序需要根据用户输入的描述文本输出相应的图像。如果用户在前台客户端输出的用户界面中,输入的描述文本包含针对人体手部的描述文本(例如:拿着一个杯子),那么后台服务端就需要生成相应的人体手部图像,并将该人体手部图像发送给前台客户端,由前台客户端通过用户界面将该人体手部图像面向用户进行输出,供用户查看。
除此之外,对于对外提供作画功能的应用程序而言,为了减少用户在作画时的工作量,为用户在作画上提供一定的便利,这类应用程序通常会面向用户输出诸如人体手部、人体脚部等人体部位的图像,使用户可以在这些人体部位的图像的基础上进行作画,或者将这些人体部位的图像与自己所画的图像拼接起来,免去用户画这些人体部位的图像的麻烦。在这种情况下,后台服务端也需要生成手部形状不同、手部所处的姿态不同的人体手部图像,并将这些人体手部图像发送给前台客户端,由前台客户端通过用户界面将这些人体手部图像面向用户进行输出,供用户选择、使用。
然而,所生成的人体手部图像中经常存在人体手部不合理的问题,例如:手部多手指或少手指,或者手部所处的姿态不符合常理,等等。这通常会导致所生成的人体手部图像对于用户而言是不可用的,影响用户体验。
本申请一个或多个实施例提供的技术方案提供了一种用于人体手部图像的生成的技术方案,可以在生成人体手部图像时,保证所生成的人体手部图像中的人体手部是合理的,从而可以保证所生成的人体手部图像对于用户而言是可用的,提升用户体验。
在上述技术方案中,可以先获取与人体手部样本对应的二维手部图像,再由三维重建模型基于二维手部图像,重建出的三维手部图形,然后可以通过三维手部图形投影至二维平面,将三维手部图形转化为二维图像,最后可以由生成模型将由三维手部图形转化得到的二维图像作为额外的控制条件,基于噪声图像,生成与所述二维图像匹配的人体手部图像。
在具体实现时,首先可以将大量不同的人体手部均作为人体手部样本,获取与这些人体手部样本中的各个人体手部样本对应的二维手部图像。
在获取到了与上述人体手部样本对应的二维手部图像的情况下,可以将与各个人体手部样本对应的二维手部图像输入如前所述的三维重建模型,由该三维重建模型基于这些二维手部图像重建出三维手部图形,重建出的三维手部图形也就是与各个人体手部样本对应的三维手部图形。
在由上述三维重建模型重建出了上述三维手部图形的情况下,将所述三维姿态图形投影至预设的二维平面,以将所述三维手部图形转化为二维图像。其中,所述二维平面相对于所述三维手部图形的位置和角度等相关信息,可以由用户根据实际的需求进行设置,也可以是系统默认的缺省值,本申请对此不作限制。
如前所述,由上述三维重建模型重建出的三维手部图形,可以是与各个人体手部样本对应的三维手部图形。相应地,对于这些人体手部样本中的任意一个人体手部样本而言,可以将与这个人体手部样本对应的三维手部图形投影至上述二维平面,以将与这个人体手部样本对应的三维手部图形转化为与这个人体手部样本对应的二维图像。
进一步地,可以获取用于生成人体手部图像的噪声图像,并在得到了上述二维图像的情况下,将所述二维图像和所述噪声图像输入如前所述的生成模型,由该生成模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像。具体地,可以将与一个人体手部样本对应的一个二维图像(或者由与一个人体手部样本对应的一个二维轮廓图像、一个二维关键点图像和一个二维深度图像组成的一组二维图像)和一个噪声图像输入上述生成模型,由该生成模型基于这个噪声图像,生成与该二维图像匹配的人体手部图像。以由与一个人体手部样本对应的一个二维轮廓图像、一个二维关键点图像和一个二维深度图像组成的一组二维图像为例,对于与这组二维图像匹配的人体手部图像中的人体手部而言,该人体手部的轮廓即为这个二维轮廓图像中的轮廓;该人体手部上的人体手部关键点之间的相对位置关系,与这个二维关键点图像中的人体手部关键点之间的相对位置关系相同;该人体手部的可见表面的几何形状由这个二维深度图像中的各个像素点的像素值决定。
采用上述方式,通过大量不同的人体手部样本,可以得到数据量大且具有多样性的三维手部图形,从而可以将由这些三维手部图形转化得到的二维图像作为先验信息,通过该先验信息引导生成与这些二维图像匹配的人体手部图像;在这些人体手部样本的形状、所处的姿态等均合理的情况下,就可以保证所生成的人体手部图像中的人体手部是合理的,从而可以保证所生成的人体手部图像对于用户而言是可用的,提升用户体验。并且,所生成的人体手部图像的数据量大且具有多样性。
下面对本申请一个或多个实施例提供的用于人体手部图像的生成的技术方案进行描述。
请参考图1,图1是本申请一示例性实施例示出的一种人体手部图像的生成系统的架构示意图。
如图1所示,上述人体手部图像的生成系统可以包括三维重建模型和生成模型。其中:
上述三维重建模型可以用于基于平面的二维图像重建出立体的三维图形(也被称为三维模型)。例如,三维重建模型首先可以获取用于构建三维图形的数据,这些数据可以通过摄影机、激光扫描仪、深度相机等多种传感器采集得到,具体可以是直接采集到的二维图像,也可以是由采集到的点云、深度信息等形成的二维图像;然后可以从这些数据中提取有用的特征信息,针对二维图像,通常会使用特征检测算法(如SIFT、SURF、ORB等)来提取特征信息;再然后可以将采集的数据进行匹配和对齐,以获得一致的坐标系统,这可以通过对特征进行匹配、计算相机的位姿和视角,并将数据注册到相同的坐标系中来实现;在匹配和对齐后,可以使用三维重建算法将数据转换为三维点云或网格模型,以生成三维图形,常见的三维重建算法包括立体视觉、结构光、体素填充等;再然后可以对生成的三维图形进行优化,去除噪声、平滑表面、填补空洞等,这可以通过滤波、网格编辑、曲面拟合等技术实现;最后可以将二维图像中的纹理信息映射到生成的三维图形上,使其具有更真实的外观和细节。
上述生成模型可以是条件生成模型。条件生成模型是一类深度学习模型,它可以在给定一些额外条件的情况下生成数据。这些条件通常是输入到条件生成模型中的向量或张量,可以包括图像、文本、标签、音频等信息。根据不同的条件类型,条件生成模型可以有以下几种示例:图像到图像模型,用于接收输入图像,并通过修改马尔可夫链上的One-stepTransistion Probability逐步生成对应的输出图像,例如:可以将黑白图像转换为彩色图像、将低分辨率图像转换为高分辨率图像等;文本到图像模型,用于接收输入的文本描述,并生成对应的图像,例如:可以通过文本描述生成场景图像、人物头像等;图像到文本模型,用于接收输入的图像,并生成对应的文本描述,例如:可以通过图像生成相应的标签、描述等。该生成模型具体可以是图像到图像模型。
首先,可以将预先获取到的与人体手部样本对应的二维手部图像输入上述三维重建模型,由该三维重建模型基于这些二维手部图像重建出三维手部图形,重建出的三维手部图形也就是与这些人体手部样本对应的三维手部图形。也即,利用大量不同的人体手部样本,可以得到数据量大且具有多样性的三维手部图形;而在这些人体手部样本的形状、所处的姿态等均合理的情况下,这些三维手部图形也就是合理的。
然后,可以将由上述三维重建模型重建出的三维手部图形,通过投影转化为轮廓图像、关键点图像、深度图像等多种类型的二维图像。由于这些三维手部图形的数据量大且具有多样性,并且其合理性可以得到保证,对于由这些三维手部图形转化得到的二维图像而言,这些二维图像的数据量大且具有多样性,并且其合理性也可以得到保证。
最后,可以将上述多种类型的二维图像,以及用于生成人体手部图像的噪声图像,输入上述生成模型,由该生成模型以生成人体手部图像为条件,基于该噪声图像生成人体手部图像,并且生成的人体手部图像与这些二维图像匹配(例如:一个人体手部图像可以与一个二维图像匹配)。在这种情况下,生成的每个人体手部图像中的人体手部的形状、所处的状态等均取决于与这个人体手部图像匹配的二维图像,因此最终可以得到数据量大且具有多样性的人体手部图像,并且这些人体手部图像中的人体手部都是合理的。
请结合图1,参考图2,图2是本申请一示例性实施例示出的一种人体手部图像的生成方法的流程图。
在本实施例中,上述人体手部图像的生成方法可以应用于服务器。其中,该服务器可以是包含一台独立的物理主机的服务器,也可以是由多台互相独立的物理主机构成的服务器集群;或者,该服务器可以是由主机集群承载的虚拟服务器、云服务器等。
或者,上述人体手部图像的生成方法可以应用于台式计算机、笔记本电脑、掌上电脑(PDAs,Personal Digital Assistants)、平板设备等,具有一定的计算能力的电子设备上。
上述人体手部图像的生成方法可以包括以下步骤:
步骤202:获取与人体手部样本对应的二维手部图像,并将所述二维手部图像输入三维重建模型,以使所述三维重建模型基于所述二维手部图像重建出三维手部图形。
在本实施例中,首先可以将大量不同的人体手部均作为人体手部样本,获取与这些人体手部样本中的各个人体手部样本对应的二维手部图像。
在实际的应用中,可以获取大量包含不同的人体手部的二维图像,这些二维图像可以是针对真实的人体或人体手部进行图像采集得到的二维图像,例如:通过拍摄得到的二维图像,也可以是通过人体或人体手部的动态捕捉得到的二维图像,还可以是在模拟的条件下随机生成的包含人体手部的二维图像,本申请对此不作限制。为了保证人体手部样本的合理性,在获取到这些包含人体手部的二维图像后,可以检查这些二维图像中的每个二维图像包含的人体手部是否合理,如果合理,则可以将这个二维图像包含的人体手部作为一个人体手部样本,并从这个二维图像中提取出二维手部图像,作为与这个人体手部样本对应的二维手部图像。
在一些实施例中,在获取与上述人体手部样本对应的二维手部图像时,具体可以采集包含所述人体手部样本的二维图像,并针对所述二维图像进行人体手部检测,以从所述二维图像中提取出与所述人体手部样本对应的二维手部图像。
具体地,可以基于预先设置的人体手部检测算法,针对上述二维图像进行人体手部检测,以从所述二维图像中提取出与上述人体手部样本对应的二维手部图像。其中,该人体手部检测算法可以是基于颜色、纹理、形状或机器学习的人体手部检测算法。
人体的皮肤颜色在图像中通常具有一定的特征,可以利用颜色信息进行人体手部检测。基于颜色的人体手部检测算法通过建立皮肤颜色模型,根据颜色阈值在图像中判断像素点是否属于人体手部区域。
人体手部通常具有一定的纹理特征,如皱纹、纹理、指纹等。基于纹理的人体手部检测算法通过提取图像的纹理特征并对其进行分析,以区分图像中的人体手部区域和其他区域。常用的纹理特征包括局部二值模式(Local Binary Patterns)和方向梯度直方图(Histogram of Oriented Gradients)等。
人体手部的形状通常具有一定的特征,如手指的弯曲程度和关节的位置等。基于形状的人体手部检测算法通过提取和分析图像中各个区域的轮廓或边缘信息,以识别图像中的人体手部区域和其他区域。常用的方法包括基于边缘检测、轮廓提取和形状匹配等技术。
利用机器学习算法,可以通过训练样本来学习图像中的人体手部区域和其他区域的特征表示和分类模型。常见的方法包括支持向量机(SVM)、随机森林(Random Forest)和卷积神经网络(Convolutional Neural Networks)等。进一步地,可以利用深度神经网络来学习图像的特征表示和人体手部的空间结构信息,以实现高效、准确的人体手部检测。常用的深度学习模型包括卷积神经网络(CNN)、区域卷积神经网络(RCNN)、单阶段检测器(One-stage Detectors)和双阶段检测器(Two-stage Detectors)等。
在获取到了与上述人体手部样本对应的二维手部图像的情况下,可以将与各个人体手部样本对应的二维手部图像输入如前所述的三维重建模型,由该三维重建模型基于这些二维手部图像重建出三维手部图形,重建出的三维手部图形也就是与各个人体手部样本对应的三维手部图形。
在一些实施例中,上述三维重建模型可以包括基于神经网络构建的参数化模型。相应地,在将上述二维手部图像输入该三维重建模型,以使该三维重建模型基于所述二维手部图像重建出上述三维手部图形时,具体可以将所述二维手部图像输入该基于神经网络构建的参数化模型,以使该基于神经网络构建的参数化模型将所述二维手部图像转化为三维手部参数,并基于所述三维手部参数生成所述三维手部图形。
进一步地,在一些实施例中,上述参数化模型可以包括MANO(Model forArticulated Hands)模型。
请参考图3,图3是本申请一示例性实施例示出的一种基于神经网络构建的参数化模型的架构示意图。
在上述基于神经网络构建的参数化模型中,可以包含一个神经网络和一个MANO模型。在这种情况下,可以将上述二维手部图像输入该神经网络,由该神经网络将所述二维手部图像转化为与该MANO模型对应的三维手部参数;而该MANO模型则可以基于这些三维手部参数,生成上述三维手部图形。
在实际的应用中,与MANO模型对应的三维手部参数可以包括形状参数和姿态参数。其中,形状参数可以用于定义人体手部的整体形状特征,描述人体手部几何形状的变化,这些形状参数可以包括手指的长度、手掌的宽度等;姿态参数可以用于定义手部的关节角度和手指的弯曲程度等姿态信息,这些姿态参数可以表示手部的旋转和平移信息。此外,与MANO模型对应的三维手部参数还可以包括全局旋转参数,用于描述整个人体手部的旋转姿态,表示整个人体手部相对于全局坐标系的旋转角度和轴向。
MANO模型一方面可以通过输入的形状参数和姿态参数,通过数学运算和插值计算得到三维手部图形的关节位置,这些关节位置以欧拉角或四元数等形式表示手部的旋转和平移信息;另一方面可以通过蒙皮技术,将三维手部图形的关节位置映射到手部的皮肤网格上,通过权重调整和顶点变形,使三维手部图形更加逼真地与关节位置匹配,实现皮肤的伸展、收缩和扭曲。由此,MANO模型即可实现基于上述三维手部参数生成三维手部图形。
步骤204:将所述三维手部图形投影至预设的二维平面,以将所述三维手部图形转化为二维图像。
在本实施例中,在由上述三维重建模型重建出了上述三维手部图形的情况下,将所述三维姿态图形投影至预设的二维平面,以将所述三维手部图形转化为二维图像。其中,所述二维平面相对于所述三维手部图形的位置和角度等相关信息,可以由用户根据实际的需求进行设置,也可以是系统默认的缺省值,本申请对此不作限制。
如前所述,由上述三维重建模型重建出的三维手部图形,可以是与各个人体手部样本对应的三维手部图形。相应地,对于这些人体手部样本中的任意一个人体手部样本而言,可以将与这个人体手部样本对应的三维手部图形投影至上述二维平面,以将与这个人体手部样本对应的三维手部图形转化为与这个人体手部样本对应的二维图像。
在一些实施例中,上述三维手部图形可以包含预设的若干人体手部关键点,该人体手部关键点可以是人体手部上的关节、手指连接点等,具体可以取决于与上述MANO模型对应的姿态参数。相应地,上述二维图像可以包括:用于描述人体手部的外部轮廓的二维轮廓图像,用于描述所述人体手部关键点之间的相对位置关系的二维关键点图像,以及用于描述人体手部的可见表面的几何形状的二维深度图像。其中,相对位置关系可以包括相对方向和距离等参数;二维深度图像中的某个像素点的像素值,即为这个像素点的深度值(例如:拍摄设备到这个像素点的距离)。
需要说明的是,通过对与一个人体手部样本对应的一个三维手部图形进行投影处理,可以得到一个二维轮廓图像、一个二维关键点图像和一个二维深度图像,这个二维轮廓图像、这个二维关键点图像和这个二维深度图像共同组成了与这个人体手部样本对应的一组二维图像。
通过上述二维轮廓图像、上述二维关键点图像和上述二维深度图像,即可确定出相应的人体手部;由于二维轮廓图像、二维关键点图像和二维深度图像是通过对与合理的人体手部样本对应的三维手部图形进行投影处理得到的,确定出的人体手部的合理性也就可以得到保证。
在一些实施例中,在将上述三维手部图形投影至上述二维平面,以将所述三维手部图形转化为上述二维图像时,对于任意一个三维手部图形而言,具体可以通过在与这个三维手部图形对应的三维空间中的预设位置上,模拟出的拍摄设备,对这个三维手部图形进行模拟拍摄。例如,可以通过在这个三维手部图形的正前方、斜上方45度角等位置上,模拟出的拍摄设备,对这个三维手部图形进行拍摄。由此,即可将这个三维手部图形投影至各个位置上的拍摄设备的成像平面。此时,可以获取由各个位置上的拍摄设备拍摄得到的二维图像,也就是这些拍摄设备的成像平面中的二维投影图像;二维投影图像即为转化得到的二维图像。
通过对与人体手部样本对应的三维手部图形进行投影处理,来得到与人体手部样本对应的二维图像,可以保证所得到的二维图像的多样性和合理性。此外,通过设置不同的虚拟机位来拍摄得到与人体手部样本对应的二维图像,可以进一步地扩大二维图像的数据量,并增加二维图像的多样性。
在一些实施例中,如前所述,上述二维图像可以包括上述二维轮廓图像、上述二维关键点图像和上述二维深度图像。
因此,第一方面,在获取拍摄得到的上述二维图像时,具体可以从拍摄得到的二维投影图像中提取出所述二维轮廓图像。
第二方面,在获取拍摄得到的上述二维图像时,具体可以从拍摄得到的二维投影图像中确定出上述若干人体手部关键点,并对所述若干人体手部关键点进行连接得到所述二维关键点图像。
第三方面,在获取拍摄得到的上述二维图像时,具体可以根据上述拍摄设备与上述三维手部图形对应的各个像素点之间的距离,生成所述二维深度图像。在实际的应用中,针对拍摄得到的二维投影图像中的任意一个像素点,可以确定所述三维手部图形上与该像素点对应的点,并将所述拍摄设备与所述三维手部图形上的该点之间的距离,作为该像素点的像素值;由此,即可得到所述二维投影图像中的各个像素点的像素值,从而可以形成所述二维深度图像。
步骤206:获取用于生成人体手部图像的噪声图像,并将所述二维图像和所述噪声图像输入生成模型,以使所述生成模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像。
在本实施例中,可以获取用于生成人体手部图像的噪声图像,并在得到了上述二维图像的情况下,将所述二维图像和所述噪声图像输入如前所述的生成模型,由该生成模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像。具体地,可以将与一个人体手部样本对应的一个二维图像(或者由与一个人体手部样本对应的一个二维轮廓图像、一个二维关键点图像和一个二维深度图像组成的一组二维图像)和一个噪声图像输入上述生成模型,由该生成模型基于这个噪声图像,生成与该二维图像匹配的人体手部图像。以由与一个人体手部样本对应的一个二维轮廓图像、一个二维关键点图像和一个二维深度图像组成的一组二维图像为例,对于与这组二维图像匹配的人体手部图像中的人体手部而言,该人体手部的轮廓即为这个二维轮廓图像中的轮廓;该人体手部上的人体手部关键点之间的相对位置关系,与这个二维关键点图像中的人体手部关键点之间的相对位置关系相同;该人体手部的可见表面的几何形状由这个二维深度图像中的各个像素点的像素值决定。
在一些实施例中,上述生成模型可以包括基于Control Net构建的扩散模型(Diffusion Models)。其中,Control Net是一种神经网络结构,可以通过添加额外的条件来控制扩散模型,例如:可以通过上述二维轮廓图像、上述二维关键点图像和上述二维深度图像引导扩散模型生成图像。
具体地,上述基于Control Net构建的扩散模型可以是在扩散模型的基础上增加了一个Control Net的结构。例如,可以将该扩散模型复制一份,用于构建可训练的部分(即该Control Net),而该扩散模型则作为不可训练的部分,保留原始的模型参数;可以将噪声图像单独输入该扩散模型,并将额外的控制条件和该噪声图像输入该Control Net,该扩散模型的输出和该Control Net的输出经过融合(可以是相加)得到的结果,即可作为该基于Control Net构建的扩散模型的输出。
进一步地,在一些实施例中,上述扩散模型可以包括Stable Diffusion模型。Stable Diffusion模型可以作为图像到图像模型,用于基于噪声图像生成一定的图像。
需要说明的是,上述噪声图像可以是随机生成的噪声图像。例如,可以从一定的数据分布中采样随机向量,并基于采样到的随机向量生成噪声图像。
噪声图像是指在图像中添加了随机干扰或随机信号的图像。噪声使得图像呈现出一些随机的、非期望的视觉变化。可以采用加性噪声、乘性噪声、均匀噪声等方式获得噪声图像。在一些情况下,噪声图像可以通过实际的图像采集设备、传感器或其他设备产生;在其他情况下,可以使用计算机程序或软件生成特定类型的噪声并将其添加到图像中。
加性噪声是指通过将随机生成的噪声添加到原始图像中来生成噪声图像。加性噪声可以模拟图像传感器或传输过程中引入的噪声。常见的加性噪声类型包括高斯噪声、椒盐噪声(在图像中随机出现黑白像素点)等。
乘性噪声是通过将原始图像与随机生成的噪声图像相乘获得的。乘性噪声常用于模拟光照条件或图像损坏。例如,在低光条件下拍摄的图像可能会受到乘性噪声的影响。
均匀噪声是指在图像中添加了均匀分布的随机干扰。均匀噪声可以模拟某些图像采集设备或传输过程中引入的干扰信号。
上述扩散模型可以以人体手部作为条件,对所述噪声图像进行去噪处理,直至将所述噪声图像还原为人体手部图像。但是,通常并不要求与噪声图像对应的原始图像包含人体手部。也即,本质上是由扩散模型生成人体手部图像。
在一些实施例中,为了使上述基于Control Net构建的扩散模型能够将输入的二维图像作为额外的控制条件,基于输入的噪声图像生成与该二维图像匹配的人体手部图像,可以将一个噪声图像作为一个训练样本,并将与这个噪声图像对应的二维图像,作为这个噪声图像的标签,对该基于Control Net构建的扩散模型进行训练。
具体地,对于上述基于Control Net构建的扩散模型而言,可以分别为该ControlNet和该扩散模型设置损失函数。该Control Net的损失函数用于衡量该基于Control Net构建的扩散模型生成的人体手部图像中的人体手部,与作为标签的二维图像描述的人体手部之间的差异。该扩散模型的损失函数用于衡量该基于Control Net构建的扩散模型生成的人体手部图像,与真实的人体手部图像之间的差异。在这种情况下,可以综合考虑该Control Net的损失函数和该扩散模型的损失函数,通过最小化总损失函数来优化整个模型。其中,总损失函数通常由该Control Net的损失函数和该扩散模型的损失函数的加权和组成,加权系数可以用来平衡两者的重要性。在训练的过程中,不断更新该基于ControlNet构建的扩散模型的模型参数(通常仅更新该Control Net的模型参数),以逐步改进模型的性能,使损失达到最小。最终,训练得到的该基于Control Net构建的扩散模型即可用于基于噪声图像,生成与二维图像匹配的人体手部图像。
进一步地,在一些实施例中,上述Control Net支持的输入通道的数量,基于由上述三维手部图形转化得到的二维图像的数量进行了扩展。例如,假设所述二维图像的维度为512*512(即图像的两个方向上的像素点的数量均为512),且所述二维图像为RGB图像,则当由所述三维手部图像转化得到的二维图像的数量为1时,该Control Net支持的输入通道的数量为512*512*3(其中3对应于RGB);当由所述三维手部图像转化得到的二维图像的数量为2时,该Control Net支持的输入通道的数量为512*512*6(6=3*2);当由所述三维手部图像转化得到的二维图像的数量为3时,该Control Net支持的输入通道的数量为512*512*9(9=3*3);以此类推。
在上述情况下,在将上述二维图像和上述噪声图像输入上述生成模型,以使该生成模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像时,具体可以先针对由所述三维手部图形转化得到的二维图像进行拼接处理,再将拼接后的所述二维图像和所述噪声图像输入上述基于Control Net构建的扩散模型,以使该基于Control Net构建的扩散模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像。
如前所述,由所述三维手部图形转化得到的一组二维图像可以包括一个二维轮廓图像、一个二维关键点图像和一个二维深度图像。在这种情况下,针对这组二维图像进行拼接处理,即为将这三个图像按照一定的排列方式(例如:水平拼接、垂直拼接、网格拼接等)连接在一起,形成一个更大的图像。对于水平拼接,可以将每个图像在水平方向上依次排列;对于垂直拼接,可以将每个图像在垂直方向上依次排列;对于网格拼接,可以将图像按照特定的行列顺序排列。
具体可以按照以下步骤实现图像拼接:首先确定要使用的拼接方式;如果要拼接的图像尺寸不统一,可以将它们调整为相同的尺寸,这可以通过调整图像的宽度和高度来实现;根据拼接方式和调整后的图像尺寸,创建一个空白的目标图像,其尺寸大到足以容纳所有要拼接的图像;根据选择的拼接方式,将调整后的图像按照相应的顺序粘贴到目标图像上。
请参考图4,图4是本申请一示例性实施例示出的一种基于Control Net构建的扩散模型的架构示意图。
在上述基于Control Net构建的扩散模型中,可以包含一个Control Net和一个扩散模型。该Control Net可以基于通过对该扩散模型进行复制得到的副本构建;该扩散模型为不可训练的部分,而该Control Net包含的扩散模型的副本则为可训练的部分。该Control Net还包括一定数量的零卷积(Zero Convolution)层。在这种情况下,可以将一个噪声图像输入该扩散模型,得到该扩散模型的输出;由于上述二维图像可以包括上述二维轮廓图像、上述二维关键点图像和上述二维深度图像,可以对与一个人体手部样本对应的一个二维轮廓图像、一个二维关键点图像和一个二维深度图像进行拼接处理,得到与这个人体手部样本对应的一个拼接后的二维图像,并先将这个拼接后的二维图像输入该Control Net,在对这个拼接后的二维图像进行一次零卷积处理后,再将这个噪声图像输入该Control Net与零卷积处理结果进行融合,然后基于该扩散模型的副本和零卷积层针对融合结果进行计算,得到该Control Net的输出;该扩散模型的输出和该Control Net的输出经过融合得到的结果,即为基于这个噪声图像生成的与这个拼接后的二维图像包含的二维轮廓图像、二维关键点图像和二维深度图像均匹配的人体手部图像。
在上述技术方案中,可以先获取与人体手部样本对应的二维手部图像,再由三维重建模型基于二维手部图像,重建出的三维手部图形,然后可以通过三维手部图形投影至二维平面,将三维手部图形转化为二维图像,最后可以由生成模型将由三维手部图形转化得到的二维图像作为额外的控制条件,基于噪声图像,生成与所述二维图像匹配的人体手部图像。
采用上述方式,通过大量不同的人体手部样本,可以得到数据量大且具有多样性的三维手部图形,从而可以将由这些三维手部图形转化得到的二维图像作为先验信息,通过该先验信息引导生成与这些二维图像匹配的人体手部图像;在这些人体手部样本的形状、所处的姿态等均合理的情况下,就可以保证所生成的人体手部图像中的人体手部是合理的,从而可以保证所生成的人体手部图像对于用户而言是可用的,提升用户体验。并且,所生成的人体手部图像的数据量大且具有多样性。
与前述人体手部图像的生成方法的实施例相对应,本申请还提供了人体手部图像的生成装置的实施例。
请参考图5,图5是本申请一示例性实施例示出的一种设备的结构示意图。在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括所需要的其他硬件。本申请一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本申请一个或多个实施例并不排除其他实现方式,比如逻辑器件或者软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑模块,也可以是硬件或者逻辑器件。
请参考图6,图6是本申请一示例性实施例示出的一种人体手部图像的生成装置的框图。
上述人体手部图像的生成装置可以应用于图5所示的设备,以实现本申请的技术方案。
其中,该人体手部图像的生成装置可以包括:
重建模块602,获取与人体手部样本对应的二维手部图像,并将所述二维手部图像输入三维重建模型,以使所述三维重建模型基于所述二维手部图像重建出三维手部图形;
投影模块604,将所述三维手部图形投影至预设的二维平面,以将所述三维手部图形转化为二维图像;
生成模块606,获取用于生成人体手部图像的噪声图像,并将所述二维图像和所述噪声图像输入生成模型,以使所述生成模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像。
可选地,所述三维重建模型包括基于神经网络构建的参数化模型;
所述将所述二维手部图像输入三维重建模型,以使所述三维重建模型基于所述二维手部图像重建出三维手部图形,包括:
将所述二维手部图像输入所述基于神经网络构建的参数化模型,以使所述基于神经网络构建的参数化模型将所述二维手部图像转化为三维手部参数,并基于所述三维手部参数生成三维手部图形。
可选地,所述参数化模型包括MANO模型。
可选地,所述生成模型包括基于Control Net构建的扩散模型。
可选地,所述扩散模型包括Stable Diffusion模型。
可选地,所述Control Net支持的输入通道的数量,基于由所述三维手部图形转化得到的二维图像的数量进行了扩展;
所述将所述二维图像和所述噪声图像输入生成模型,以使所述生成模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像,包括:
针对由所述三维手部图形转化得到的二维图像进行拼接处理;
将拼接后的所述二维图像和所述噪声图像输入所述基于Control Net构建的扩散模型,以使所述基于Control Net构建的扩散模型基于所述噪声图像,生成与所述二维图像匹配的人体手部图像。
可选地,所述三维手部图形包含预设的若干人体手部关键点;所述二维图像包括:用于描述人体手部的外部轮廓的二维轮廓图像,用于描述所述人体手部关键点之间的相对位置关系的二维关键点图像,以及用于描述人体手部的可见表面的几何形状的二维深度图像。
可选地,所述将所述三维手部图形投影至预设的二维平面,以将所述三维手部图形转化为二维图像,包括:
通过在与所述三维手部图形对应的三维空间中的预设位置上模拟出的拍摄设备,对所述三维手部图形进行模拟拍摄,以将所述三维手部图形投影至所述拍摄设备的成像平面;
获取拍摄得到的二维图像。
可选地,所述获取拍摄得到的二维图像,包括:
从拍摄得到的二维投影图像中提取出所述二维轮廓图像;
从拍摄得到的二维投影图像中确定出所述若干人体手部关键点,并对所述若干人体手部关键点进行连接得到所述二维关键点图像;
根据所述拍摄设备与所述三维手部图形对应的各个像素点之间的距离,生成所述二维深度图像。
可选地,所述获取与人体手部样本对应的二维手部图像,包括:
采集包含人体手部样本的二维图像,并针对所述二维图像进行人体手部检测,以从所述二维图像中提取出与所述人体手部样本对应的二维手部图像。
对于装置实施例而言,其基本对应于方法实施例,因此相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请的技术方案的目的。
上述实施例阐明的系统、装置、模块或者单元,具体可以由计算机芯片或者实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或者闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或者技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或者其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或者其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或者其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或者其他磁性存储设备或者任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本申请特定实施例进行了描述。其他实施例在本申请的范围内。在一些情况下,在本申请中记载的动作或者步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本申请一个或多个实施例中所使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。术语“和/或”是指并包含一个或多个相关联的列出项目的任何或者所有可能组合。
在本申请一个或多个实施例中所使用的术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或者“一种实施方式”等的描述意指结合该实施例所描述的具体特征或者特点包含于本申请的至少一个实施例中。对这些术语的示意性描述不必须针对相同的实施例。而且,所描述的具体特征或者特点可以在本申请一个或多个实施例中以合适的方式结合。此外,在不相互矛盾的情况下,可以将不同的实施例以及不同实施例中的具体特征或者特点进行结合。
应当理解,尽管在本申请一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或者“当……时”或者“响应于确定”。
以上所述仅为本申请一个或多个实施例的较佳实施例而已,并不用以限制本申请一个或多个实施例,凡在本申请一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请一个或多个实施例保护的范围之内。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
- 一种图像生成方法、装置、设备和存储介质
- 图像生成方法和装置、计算机设备和计算机存储介质
- 中文训练图像生成方法、装置、计算机设备及存储介质
- 手势三维图像生成方法、装置、计算机设备及存储介质
- 测试证件图像生成方法、装置、设备及存储介质
- 手部图像生成方法、装置、电子设备及可读存储介质
- 人体白描图像生成方法、装置、计算机设备和存储介质