图像处理方法及装置、图像设备及存储介质
相关申请的交叉引用
本专利申请要求于2019年1月18日提交的、申请号为201910049830.6、发明名称为“图像处理方法及装置、图像设备及存储介质”以及2019年4月30日提交的、申请号为201910363433.6、发明名称为“图像处理方法及装置、图像设备及存储介质”的中国专利申请的优先权,该申请的全文以引用的方式并入本文中。
技术领域
本公开涉及信息技术领域,尤其涉及一种图像处理方法及装置、图像设备及存储介质。
背景技术
随着信息技术的发展,用户可以通过视频录制进行网络授课、网络主播,体感游戏等成为可能。但是在一些情况下,例如,体感游戏需要用户需要佩戴专门的体感设备来检测自身的肢体等活动,才能控制游戏角色。而进行网络授课或者网络主播时,用户的面貌或肢体等完全暴露在网络中,这一方面可能涉及用户的隐私问题,另一方面还可能涉及信息安全性问题。为了解决这种隐私或安全性问题,可以会通过马赛克等方式进行脸部图像的覆盖,但是这样会影响视频效果。
发明内容
有鉴于此,本公开实施例期望提供一种图像处理方法及装置、图像设备及存储介质。
第一方面,本公开提供一种图像处理方法,包括:
获取图像;基于所述图像,获取目标的至少两个局部的特征;根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述连接部的运动信息,其中,所述连接部用于连接所述至少两个局部中的两个局部;根据所述连接部的运动信息,控制受控模型的连接部的运动。
基于上述方案,根据所述连接部的所述运动信息,控制所述受控模型的所述连接部的运动,包括:根据所述连接部的类型,确定控制所述连接部的控制方式;根据所述控制方式及所述连接部的所述运动信息,控制所述受控模型的所述连接部的运动。
基于上述方案,根据所述连接部的类型,确定控制所述连接部的所述控制方式,包括:在所述连接部为第一类连接部的情况下,所述控制方式为第一类控制方式,其中,所述第一类控制方式,用于直接控制所述受控模型中与所述第一类连接部对应的连接部的运动。
基于上述方案,根据所述连接部的类型,确定控制所述连接部的所述控制方式,包括:在所述连接部为第二类连接部的情况下,所述控制方式为第二类控制方式,其中,所述第二类控制方式,用于间接控制所述受控模型中与所述第二类连接部的对应的连接部的运动,该间接控制是通过控制所述受控模型中对应于所述第二类连接部以外的局部的局部实现的。
基于上述方案,根据所述控制方式及所述连接部的运动信息,控制所述受控模型的所述连接部的运动,包括:在所述控制方式为所述第二类控制方式的情况下,分解所述连接部的运动信息,以 获得所述连接部由牵引部牵引所述连接部旋转的第一类旋转信息;根据所述第一类旋转信息,调整所述牵引部的运动信息;利用调整后的所述牵引部的运动信息,控制所述受控模型中牵引部的运动,以间接控制所述连接部的运动。
基于上述方案,所述方法还包括:分解所述连接部的运动信息,以获得所述第二类连接部相对于所述牵引部旋转的第二类旋转信息;利用所述第二类旋转信息,控制所述受控模型所述连接部相对于所述牵引部的旋转。
基于上述方案,第二类连接部包括:手腕;脚腕。
基于上述方案,在所述第二类连接部为手腕的情况下,对应于所述手腕的牵引部包括:上臂和/或前臂;在所述第二类连接部为脚腕的情况下,对应于所述脚腕的牵引部包括:大腿和/或小腿。
基于上述方案,所述第一类连接部包括连接头部和躯干的脖子。
基于上述方案,根据所述至少两个局部的特征及所述连接部的第一运动约束条件,确定所述连接部的运动信息,包括:根据所述连接部连接的所述两个局部的特征,确定所述两个局部各自的朝向信息;根据所述两个局部各自的所述朝向信息,确定所述连接部的备选朝向信息;根据所述备选朝向信息和所述第一运动约束条件,确定所述连接部的运动信息。
基于上述方案,根据所述两个局部各自的所述朝向信息,确定所述连接部的所述备选朝向信息,包括:根据所述两个局部各自的所述朝向信息,确定所述连接部的第一备选朝向信息和第二备选朝向信息。
基于上述方案,根据所述备选朝向信息和所述第一运动约束条件,确定所述连接部的运动信息,包括:从所述第一备选朝向信息和第二备选朝向信息中,选择出位于朝向改变约束范围内的目标朝向信息;根据所述目标朝向信息,确定所述连接部的运动信息。
基于上述方案,根据所述两个局部的特征,确定所述两个局部各自的所述朝向信息,包括:获取所述两个局部中的每一个局部的第一关键点和第二关键点;获取所述两个局部中的每一个局部的第一参考点,其中,所述第一参考点为所述目标内的第一预定关键点;基于所述第一关键点和所述第一参考点生成第一向量;基于所述第二关键点和所述第一参考点生成第二向量;基于所述第一向量和所述第二向量,确定所述两个局部的每一个局部的朝向信息。
基于上述方案,基于所述第一向量和所述第二向量,确定所述两个局部的每一个局部的所述朝向信息,包括:对于每一个局部,叉乘该局部的两个向量,得到该局部所在平面的法向量;将所述法向量,作为该局部的朝向信息。
基于上述方案,所述方法还包括:基于所述特征,确定所述至少两个局部的运动信息;根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述连接部的运动信息,包括:根据所述至少两个局部的运动信息,确定所述连接部的运动信息。
基于上述方案,基于所述至少两个局部的运动信息,确定所述连接部的所述运动信息,包括:获取所述连接部相对于第二参考点的第三3D坐标,其中,所述第二参考点为所述至少两个局部中的第二预定关键点;根据所述第三3D坐标获得所述连接部的绝对旋转信息;根据所述连接部的所述运动信息,控制所述受控模型的所述连接部的运动,包括:基于所述绝对旋转信息,控制所述受控模型的所述连接部的运动。
基于上述方案,基于所述绝对旋转信息,控制所述受控模型的所述连接部的运动,还包括:根据所述目标中多个所述连接部之间的牵引层级关系,分解所述绝对旋转信息,获得相对旋转信息;根据所述连接部的所述运动信息,控制所述受控模型的所述连接部的运动,包括:基于所述相对旋转信息,控制所述受控模型的所述连接部的运动。
基于上述方案,基于所述绝对旋转信息,控制所述受控模型的所述连接部的运动,还包括:根据第二约束条件,校正所述相对旋转信息;基于所述相对旋转信息,控制所述受控模型的所述连接部的运动,包括:基于校正后的所述相对旋转信息,控制所述受控模型的所述连接部的运动。
基于上述方案,所述第二约束条件包括:所述连接部的可旋转角度。
第二方面,本公开提供一种图像处理装置,包括:
第一获取模块,用于获取图像;第二获取模块,用于基于所述图像,获取目标的至少两个局部的特征;第一确定模块,用于根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述连接部的运动信息,其中,所述连接部用于连接所述至少两个局部中的两个局部;控制模块,用于根据所述连接部的运动信息,控制受控模型的连接部的运动。
第三方面,本公开提供一种图像设备,包括:存储器;处理器,与所述存储器连接,用于通过执行位于所述存储器上的计算机可执行指令,以实现上述任意一项图像处理方法。
第四方面,本公开提供一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现上述任意一项图像处理方法。
本公开实施例提供的技术方案,会根据至少两个局部的特征及连接部的第一运动约束条件得到连接部的运动信息,如此针对不方便直接获取运动信息的连接部,也可以精确得到该连接部的运动信息,从而可以控制受控模型对应的连接部的运动。在利用受控模型模拟用户的运动来进行视频直播时,可以更精确控制受控模型的连接部的运动,使得受控模型能够精确模拟用户等采集对象的运动,在视频直播的同时,保护了用户的隐私。
附图说明
图1A为本公开实施例提供的一种图像处理方法的流程示意图。
图1B为本公开另一实施例提供的一种图像处理方法的流程示意图。
图2为本公开再一实施例提供的一种图像处理方法的流程示意图。
图3A至图3C为本公开实施例提供的一种受控模型模拟被采集用户的手部运动的变化示意图。
图4A至图4C为本公开实施例提供的一种受控模型模拟被采集用户的躯干运动的变化示意图。
图5A至图5C为本公开实施例提供的一种受控模型模拟被采集用户的脚部运动的示意图。
图6为本公开实施例提供的一种图像处理装置的结构示意图。
图7A为本公开实施例提供的一种骨架关键点的示意图。
图7B为本公开实施例提供的一种骨架关键点的示意图。
图8为本公开实施提供的一种骨架的示意图。
图9为本公开实施例提供的一种人体的不同骨骼的局部坐标系的示意图。
图10为本公开实施例提供的一种图像设备的结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本公开的技术方案做进一步的详细阐述。
如图1A所示,本实施例提供一种图像处理方法,包括以下步骤。
步骤S110:获取图像。
步骤S120:基于所述图像,获取目标的至少两个局部的特征。
步骤S130:根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述连接部的运动信息,其中,所述连接部用于连接所述至少两个局部中的两个局部。
步骤S140:根据所述连接部的运动信息,控制受控模型的连接部的运动。
本实施例提供的图像处理方法,通过图像处理可以驱动受控模型的运动。
本实施例提供的图像处理方法可应用于图像设备,该图像设备可为能够进行图像处理的各种电子设备,例如,进行图像采集、图像显示及图像像素的电子设备。该图像设备包括但不限于各种终端设备,例如,移动终端和/或固定终端;还可包括各种能够提供图像服务的服务器。所述移动终端包括用户便于携带的手机或平板电脑等便携式设备,还可以包括用户佩戴的设备,例如,智能手环或智能手表或智能眼镜等。所述固定终端包括固定的台式电脑等。
在本实施例中,步骤S110中获取的图像可为:2D(二维)图像或者3D(三维)图像。所述2D图像可包括:单目或多目摄像头采集的图像,如红绿蓝(RGB)图像等。所述获取图像的方式可包括:利用图像设备自身的摄像头采集所述图像;和/或,从外部设备接收的图像;和/或,从本地数据库或本地存储器中读取所述图像。
3D图像可以是从2D图像中检测的2D坐标,然后利用2D坐标到3D坐标的转换算法得到的3D图像,3D图像还可以是利用3D摄像头采集的图像。
在步骤S110中,所获取的图像可以为一帧图像,也可以为多帧图像。例如,当获取的图像是一帧图像时,后续得到的运动信息可以反映当前图像中的连接部相对于初始坐标系(也可以称为相机坐标系)的对应的连接部的运动。又例如,当获取的是多帧图像时,后续得到的运动信息可以反映当前图像中的连接部相对于前几帧图像中对应的连接部的运动,或者,后续得到的运动信息也可以反映当前图像中的连接部相对于相机坐标系的对应的连接部的运动。本申请对获取的图像的数量不做限制。
所述步骤S120可包括:通过检测所述图像,获取目标的至少两个局部的特征,这两个局部是目标上的不同局部。这两个局部可以连续分布在目标上,也可以间隔分布在所述目标上。
例如,所述目标为人,则所述至少两个局部可包括以下至少两个:头部、躯干、四肢、上肢、下肢、手部及脚部等。所述连接部可以是连接头部和躯干的脖子,连接右腿和躯干的右胯,连接手部和前臂的手腕等。在另一些实施例中,所述目标不局限于人,还可以为动物等各种可活动生命体或非生命体。
本实施例中,会获取至少两个局部的特征,该特征可为各种形式表征这两个局部的空间结构信息、位置信息或运动状态的特征。
所述两个局部的特征包括但不限于各种图像特征。例如,所述图像特征可包括颜色特征和/或利用光流算法等得到的光流特征。所述颜色特征包括但不限于RGB特征和/或灰度特征。在本实施例中,可以利用神经网络等深度学习模型检测所述图像,从而得到所述特征。
在获得所述特征之后,基于该特征、这两个局部与连接部的连接关系及连接部运动所需满足的第一运动约束条件,就可以得到连接部精准的运动信息。
对于一个连接部连接三个甚至更多局部的情况,可以将该连接部拆成多个子连接部,然后按本公开提供的方法,对每个子连接部分别计算其运动信息,再将子连接部的运动信息合并,得到该连接部的运动信息。为了简单起见,本公开以下按照一个连接部连接两个局部进行说明。
所述受控模型可为所述目标所对应的模型。例如,目标为人,则所述受控模型为人体模型,若所述目标为动物,则所述受控模型可为对应动物的身体模型;若所述目标为交通工具,则所述受控模型可为交通工具的模型。
在本实施例中,所述受控模型是针对目标所属类别的模型。该模型可为预先确定的,并可以进一步分为多种风格。所述受控模型的风格可以基于用户指令确定,该受控模型的风格可包括多种,例如,模拟真人风格、动漫风格、网红风格、不同气质的风格、游戏风格。其中,不同气质的风格可以为文艺风格或摇滚风格。游戏风格下则受控模型可为游戏角色。
例如,在网络教学过程中,有的老师并不愿意暴露自己的面容和身形,认为这是隐私。若直接录制视频必然导致老师的面容和身形等被曝光。在本实施例中,可以通过图像采集等方式获得老师运动的图像,然后通过特征提取及运动信息的获取,控制一个虚拟的受控模型运动。这样,一方面可以通过自身的肢体运动使得受控模型模拟老师的运动完成肢体运动教学,另一方面,利用受控模型的运动进行教学,则该老师的面容和身形都不用直接暴露在教学视频中,保护了老师的隐私。
又例如,在路面监控视频中,若直接采集车辆的视频,若视频一旦曝光到网络中,则有一些特定用户的全部车辆信息会被曝光,但是不监控则可能在出现交通事故时无法确定责任的情况。若利用本实施例的方法,利用车辆模型模拟真实的车辆运动,获得监控视频,在该监控视频中保留车的车牌信息和/或车的整体外轮廓即可,车的品牌、型号、颜色及新旧等都可以被隐藏,从而保护用户隐私。
本公开实施例提供的技术方案,会根据至少两个局部的特征得到连接部的运动信息,对于不方便直接获取运动信息的连接部,也可以精确得到该连接部的运动信息,从而控制受控模型对应的连接部的运动。如此,在利用受控模型模拟目标的运动进行视频直播时,可以精确控制受控模型的连接部的运动,使得受控模型能够精确模拟用户等采集对象的运动,在视频直播的同时,保护了用户隐私。
进一步地,如图1B所示,本实施例还提供一种图像处理方法,在图1A的基础上,所述方法还包括步骤S150和S160。
步骤S150:基于所述特征,确定所述至少两个局部的运动信息。
步骤S160:根据所述两个局部的运动信息,控制受控模型的局部的运动。
在得到至少两个局部的特征之后,就可得到至少两个局部的运动信息,该运动信息表征了两个局部在两个相邻时刻的动作变化和/或表情变化等。
在得到所述至少两个局部的运动信息之后,可以根据连接部与这两个局部的连接关系及对应的第一运动约束条件,得到所述连接部的运动信息。
所述至少两个局部的运动信息的信息形式包括但不限于以下至少之一:局部所对应关键点的坐标,该坐标包括但不限于2D坐标及3D坐标;该坐标能够表征局部所对应关键点相对于基准位置的变化,从而能够表征对应局部的运动状况。
所述运动信息可以用:向量、数组、一维的数值、矩阵等各种信息形式表示。
在本实施例中,还获取了两个局部的运动信息,通过两个局部的运动信息控制受控模型的局部的运动,从而可以实现受控模型中各个局部都能够模仿目标进行运动。
在一些实施例中,如图2所示,在图1B的基础上,所述步骤S120可包括如下步骤。
步骤S121:基于所述图像,获取所述目标的第一类局部的第一类特征。
步骤S122:基于所述图像,获取所述目标的第二类局部的第二类特征,其中,所述第二类特征与所述第一类特征的类型不同。
在本实施例中,所述第一类特征和所述第二类特征是同样表征对应局部的空间结构信息、位置信息和/或运动状态的特征,但却是不同类型的特征。
不同类型的特征具有不同的特点,适用不同类型的局部会具有更高的精确度。在一些实施例中,基于图像分别获取第一类局部的第一类特征和第二类局部的特征。在获取第一类特征和第二类特征的获取主体不同,例如,使用不同的深度学习模型或深度学习模块获得。第一类特征和所述第二类特征的获取逻辑不同。
所述第一类局部和所述第二类局部为不同类型局部;不同类型的局部可以通过不同类型局部的可运动幅度来进行区分;或者,不用类型局部的运动精细度来区分。
在本实施例中,所述第一类局部和第二类局部可为运动的最大幅度差异比较大的两类局部。例如,第一类局部可为头部,头部的五官都可以运动,但是头部的五官的运动都比较小;头部整体也可以运动,例如,点头或摇头等,但是运动幅度相对于肢体或躯干的运动幅度偏小。
第二类局部可为上肢、下肢或四肢,肢体运动的幅度都很大。若这两类局部的运动状态利用同一种特征来表示,可能会使得因为将就某一个局部的运动幅度,使得精度下降或者算法的复杂度增大等问题。
此处,根据不同类型局部的特点以不同类型的特征来获取运动信息,相对于采用同一类特征来表示同类型的局部的相关方式,可以减少至少一类局部的信息精确性,提升了运动信息的精确度。
在一些实施例中,所述步骤S121可包括:基于所述图像,获取头部的表情特征。
在本实施例中,所述第一类局部为头部,所述头部包括脸部,所述表情特征包括但不限于以下至少之一:眉毛的运动、嘴巴的运动、鼻子的运动、眼部运动和脸颊运动。眉毛的运动可以包括:耸眉、耷拉眉。嘴巴的运动可以包括:张嘴、闭嘴、扁嘴、噘嘴、咧嘴、龇牙等。鼻子的运动可以包括:通过向鼻子内吸气产生的缩鼻,向外吹起伴随的鼻子伸张运动。眼部运动可以包括但不限于: 眼眶的运动和/或眼珠的运动。所述眼眶的运动会改变的眼眶的大小和/或形状,例如,眯眼、瞪眼、笑眼的眼眶形状和大小都是会改变。眼珠的运动可以包括:眼珠在眼眶内的位置,例如,用户视线的变化会使得眼珠位于眼眶不同的位置,左右眼的眼珠一起运动可以体现用户的不同情绪状态等。脸颊运动,有的用户笑起来会产生酒窝或梨涡,脸颊的形状也会随着发生变化。
在一些实施例中,所述头部的运动不限于所述表情运动,所述头部的头发运动等头发运动特征;所述第一类特征还可包括:头部的摇头和/或点头等头部的整体运动特征。
在一些实施例中,所述步骤S121还包括:基于所述图像,获取所述表情特征的强度系数。
在本实施例中所述强度系数可对应于脸部表情的表情幅度。例如,在脸部设置有多个表情基,一个表情基对应了一个表情动作;此处的强度系数可以用于表征该表情动作的强度,例如,该强度可为表情动作的幅度。
在一些实施例中,所述强度系数越大,表征的强度越高。例如,所述强度系数越高,表示张嘴表情基的幅度越大,噘嘴表情基的幅度越大等。再例如,所述强度系数越大,对于挑眉表情基的挑眉高度越高。
通过强度系数的引入,不仅会使得受控模型可以模拟目标当前的动作,而且还可以精确模拟目标当前表情的强度;实现表情的精准迁移。如此,若该方法应用于体感游戏场景,则受控对象为游戏角色,利用这种方法游戏角色不仅能够受控于用户的肢体动作,而且会精准模拟用户的表情特征。如此在游戏场景下,提高了游戏场景的仿真性,提升了用户的游戏体验。
在一些实施例中,所述步骤S160可包括:基于所述表情特征,控制所述受控模型的头部的表情变化;基于所述强度系数,控制所述受控模型的所述表情变化的强度。
在一些实施例中,基于所述图像,获取所述目标的表情特征,包括:基于所述图像,获得所述第一类局部的网格信息。
在本实施例中,针对目标为人时,在步骤S120中通过网格检测等,获取了表征头部的表情变化的网格(mesh)信息,基于mesh信息控制受控模型的变化。该mesh信息包括但不限于:四边形网格信息和/或三角面片信息。四边形网格信息指示经纬线的信息;三角面片信息是由三个关键点连接成的三角面片的信息。
例如,mesh信息是由包括脸部体表的预定个数的脸部关键点形成的,四边形网格信息所代表的网格中经纬线的交叉点可为所述脸部关键点的所在位置,网格的交叉点的位置变化即为表情变化,如此,基于四边形网格信息得到的表情特征和强度系数,可以准确控制受控模型的脸部的表情。类似的,三角面片信息所对应的三角面片的顶点包含脸部关键点。关键点的位置上的变化即为表情变化。基于三角面片信息得到的表情特征和强度系数,可以用于受控模型的脸部的表情精准控制。
在一些实施例中,基于所述图像,获取所述表情特征的强度系数,包括:基于图像,获得表征第一类局部中各个子局部的强度系数。
例如,针对脸部的五官,眼睛、眉毛、鼻子、嘴、耳朵,分别对应至少一个表情基,有的对应多个表情基,一个表情基对应了一个五官的一种类型的表情动作,而强度系数正好表征的是该表情动作的幅度。
在一些实施中,所述步骤S122可包括:基于所述图像,获取所述目标的第二类局部的关键点的 位置信息。
该位置信息可由目标的关键点的位置信息来表示,该关键点可包括:支架关键点和外轮廓关键点。若以人为例,则支架关键点可包括人体的骨架关键点,轮廓关键点可为人体体表的外轮廓的关键点。
所述位置信息可以由坐标表示,例如,利用预定坐标系的2D坐标和/或3D坐标表示。该预定坐标系包括但不限于图像所在的图像坐标系。位置信息可为关键点的坐标,显然是不同于前述的mesh信息的。由于第二类局部不同于第一类局部,利用位置信息更加能够精准表征第二类局部的运动变化。
在一些实施例中,所述步骤S150可包括:基于所述位置信息,确定所述第二类局部的至少两个局部的运动信息。
若目标以人为例,则所述第二类局部包括但不限于:躯干和/或四肢;躯干和/或上肢,躯干和/或下肢。
更进一步的,所述步骤S122具体可包括:基于所述图像,获取所述目标的第二类局部的支架关键点的第一坐标;基于所述第一坐标,获得第二坐标。
所述第一坐标和所述第二坐标都是表征支架关键点的坐标。若目标以人或动物为例,此处的支架关键点为骨架关键点。
所述第一坐标和第二坐标可为不同类型的坐标,例如,第一坐标是在2D坐标系内的2D坐标,第二坐标为在3D坐标系内的3D坐标。第一坐标和第二坐标也可为同一类坐标。例如,所述第二坐标为对第一坐标进行校正过后的坐标,此时,第一坐标和第二坐标即为同一类坐标。例如,第一坐标和第二坐标均为3D坐标或均为2D坐标。
在一些实施例中,基于所述图像,获取所述目标的第二类局部的支架关键点的第一坐标,包括:基于2D图像,获取所述第二类局部的支架关键点的第一2D坐标;基于所述第一坐标,获得第二坐标,包括:基于所述第一2D坐标和2D坐标到3D坐标的转化关系,获得与所述第一2D坐标对应的第一3D坐标。
在一些实施例中,基于所述图像,获取所述目标的第二类局部的支架关键点的第一坐标,包括:基于3D图像,获取所述目标的第二类局部的支架关键点的第二3D坐标;基于所述第一坐标,获得第二坐标,包括:基于所述第二3D坐标,获得第三2D坐标。
例如,在步骤S110中直接获取的3D图像,该3D图像包括:2D图像和2D图像对应的深度图像。2D图像可以提供支架关键点在xoy平面内的坐标值,深度图像中的深度值,可以提供支架关键点在z轴上的坐标。z轴垂直于xoy平面内。
在一些实施例中,基于所述第二3D坐标获得第三2D坐标,包括:基于所述第二3D坐标,调整第二类局部在所述3D图像中被遮挡部分所对应支架关键点的3D坐标从而获得所述第三2D坐标。
在本实施例中利用3D模型先从3D图像中提取出第二3D坐标,然后利用考虑到目标中不同局部的遮挡;通过修正可以得到目标不同局部在3D空间内的正确的第三2D坐标,从而确保后续受控模型的控制精确度。
在一些实施例中,所述步骤S150可包括:基于所述位置信息,确定所述第二类局部的四元数。
在一些实施中,所述至少两个局部的运动信息不局限于用四元数表示,还可以用不同坐标系内的坐标值表示,例如,欧拉坐标系或拉格朗日坐标系内的坐标值等。利用四元数可以精准表征第二类局部的空间位置和/或各个方向上的旋转。
在一些实施例中,利用四元数作为至少两个局部的运动信息和/或连接部的运动信息,具体实现时,不局限于四元数,还可以利用各种坐标系内的相对于参考点的坐标值来指示,例如,可以利用欧拉坐标或拉格朗日坐标来替代所述四元数。
在一些实施例中,所述步骤S120可包括:获取所述第二类局部中的第一局部的支架关键点的第一位置信息;获取所述第二类局部中的第二局部的支架关键点的第二位置信息。
所述第二类局部可至少包括两个不同的局部。如此,受控模型能够同时模拟到目标的至少两个局部的运动。
在一些实施例中,所述步骤S150可包括:根据所述第一位置信息,确定所述第一局部的运动信息;根据所述第二位置信息,确定所述第二局部的运动信息。
在一些实施例中,所述步骤S160可包括:根据所述第一局部的运动信息,控制所述受控模型与所述第一局部对应局部的运动;根据所述第二局部的运动信息,控制所述受控模型与所述第二局部对应局部的运动。
在另一些实施例中,所述第一局部为:躯干;所述第二局部为上肢、下肢或四肢。
在一些实施例中,所述步骤S140还包括:根据所述连接部的类型,确定控制所述连接部的控制方式;根据所述控制方式及所述连接部的运动信息,控制所述受控模型的连接部的运动。
该连接部可为连接其他两个局部,例如,以人为例,脖子、手腕或脚腕或腰围都为连接两个局部的连接部。这些连接部的运动信息,可能不方便检测或者一定程度上依赖其相邻的其他局部。在本实施例中,会根据连接部的类型,确定出控制方式。
例如,手腕的侧向旋转,如以上臂到手部的延伸方向为轴进行旋转,手腕在侧向旋转,是上臂旋转导致的。再例如,脚腕的侧向旋转,如以为小腿的延伸方向为轴进行旋转,脚腕的旋转也是直接由小腿带动的。
而针对脖子这种连接部,其旋转决定了面部朝向和躯干朝向。
在另一些实施例中,根据所述连接部的类型,确定控制所述连接部的控制方式,包括:在所述连接部为第一类连接部的情况下,确定采用第一类控制方式,其中,所述第一类控制方式,用于直接控制所述受控模型与所述第一类连接部对应的连接部的运动。
在本实施例中,所述第一类连接部为其自身的旋转并非由其他局部带动。
在另外一些实施例中,连接部还包括第一类连接部以外的第二类连接部。此处的第二类连接部的运动并非局限于其自身,而是由其他局部所带动的。
在一些实施例中,根据所述连接部的类型,确定控制所述连接部的控制方式,包括:在所述连接部为第二类连接部的情况下,确定采用第二类控制方式,其中,所述第二类控制方式,用于 通过控制所述受控模型中的所述第二类连接部以外的局部从而间接控制所述第二类连接部。
该第二类连接部以外的局部包括但不限于:直接与所述第二类连接部连接的局部,或者,间接与所述第二类连接部连接的局部。例如,在手腕侧向旋转时,可能是整个上肢在运动,则肩膀及肘部都在旋转,如此,可以通过控制肩膀和/或肘部的侧向旋转,间接控制所述手腕的旋转。
在一些实施例中,根据所述控制方式及所述连接部的运动信息,控制受控模型的连接部的运动,包括:在所述控制方式为所述第二类控制方式的情况下,分解所述连接部的运动信息,以获得所述连接部由牵引部牵引所述连接部旋转的第一类旋转信息;根据所述第一类旋转信息,调整所述牵引部的运动信息;利用所述牵引部的调整后的运动信息,控制所述受控模型中牵引部的运动,以间接控制所述连接部的运动。
在本实施例中,所述牵引部为直接与所述第二类连接部连接的局部。以手腕为所述第二类连接部为例,则所述牵引部为所述手腕之上的手肘甚至手臂。若以脚腕为所述第二类连接部为例,则所述牵引部为所述脚腕之上的膝盖甚至大腿根部。
例如,手腕沿着肩部、手肘到手腕的直线方向的侧向旋转,可能是由肩部带动或者是手肘带动的旋转。而在检测运动信息时,是通过手腕的运动引起的,如此手腕的侧向旋转信息实质应该赋值给手肘或肩部,通过这种传递赋值就实现了对手肘或肩部的运动信息的调整,利用调整后的运动信息控制受控模型中手肘或肩部的运动。如此,手肘或肩部所对应的侧向旋转,从图像的效果来看,会由受控模型的手腕来体现,从而实现了受控模型对目标运动的精准模拟。
在一些实施例中,所述方法还包括:分解所述连接部的运动信息,获得所述第二类连接部相对于所述牵引部旋转的第二类旋转信息;利用所述第二类旋转信息,控制所述受控模型所述连接部相对于所述牵引部的旋转。
所述第一类旋转信息为提取旋转信息的信息模型直接根据图像的特征得到的信息,而第二类旋转信息是通过调整所述第一类旋转信息得到的旋转信息。在本实施例中,首先通过第二类连接部的特征,例如,2D坐标或3D坐标可以知道第二类连接部相对于预定姿态的运动信息。所述连接部的运动信息包括但不限于旋转信息。在一些实施例中,所述连接部的运动信息还包括:平移信息。
在一些实施例中,所述第二类连接部包括:手腕;脚腕。
在另一些实施例中,若所述第二类连接部为手腕,对应于所述手腕的牵引部包括:上臂和/或前臂,若所述第二类连接部为脚腕,对应于所述脚腕的牵引部包括:小腿和/或大腿。
在一些实施例中,所述第一类连接部包括连接头部和躯干的脖子。
在还有一些实施例中,根据所述至少两个局部的特征及所述连接部的第一运动约束条件,确定连接部的运动信息,包括:根据连接部连接的两个局部的特征,确定所述两个局部的朝向信息;根据两个局部的朝向信息,确定所述连接部的备选朝向信息;根据所述备选朝向信息和所述第一运动约束条件,确定所述连接部的运动信息。
在一些实施例中,根据两个局部的朝向信息,确定所述连接部的备选朝向信息,包括:根据两个局部的朝向信息,确定所述连接部的第一备选朝向信息和第二备选朝向信息。
两个局部的朝向信息之间可能形成有两个夹角,在本实施例中,将满足所述第一运动约束条件的夹角作为所述连接部的运动信息。
例如,人脸的朝向和躯干的朝向之间形成两个夹角,这两个夹角之和为180度。假设这两个夹角分别是第一夹角和第二夹角。而连接人脸和躯干的脖子的第一运动约束条件为:-90至90度之间,则超过90度的角度根据第一运动约束条件被排除。如此,可以减少在受控模型模拟目标运动过程中,出现旋转角度顺时针或逆时针超过90度,例如,120度、180度,的异常情况。若出现这种超过第一约束条件的极限值的情况,就让第一约束条件对应的极限值替代异常值。若所述第一运动约束条件为:-90至90度之间;则该第一运动约束条件对应了两个极限角度,一个是-90度,另一个是90度。
当出现旋转角度超过-90至90度范围,则将检测的旋转角度修改为第一运动约束条件限定的最大角度,也即极限值。例如,若检测到超过90度的旋转角度,则将检测的旋转角度修改为检测的旋转角度更靠近的极限角度,如,90度。
在一些实施例中,根据所述备选朝向信息和所述第一运动约束条件,确定所述连接部的运动信息,包括:从所述第一备选朝向信息和第二备选朝向信息中,选择出位于朝向改变约束范围内的目标朝向信息;根据所述目标朝向信息,确定所述连接部的运动信息。
此处的目标朝向信息为满足所述第一运动约束条件的信息。
例如,以脖子为例,脸部朝右,则对应的脖子的朝向可能是朝右90度或者朝左270度,但是根据人体的生理构造,人体的脖子朝向的改变可能无法是通过左旋270度到使得脖子朝右。此时,脖子的朝向为:朝右90度及朝左270度都是备选朝向信息,需要进一步确定脖子的朝向信息,需要根据前述的第一运动约束条件来确定。在本例中,脖子朝右90度为脖子的目标朝向信息,并根据脖子的朝右90度,得到脖子当前运动信息为向右旋转90度。
在一些实施例中,根据所述两个局部的特征,确定所述两个局部的朝向信息,包括:获取所述两个局部的每一个局部的第一关键点和第二关键点;获取所述两个局部的每一个局部的第一参考点,其中,所述第一参考点为所述目标内的预定关键点;基于所述第一关键点和所述第一参考点生成第一向量,并基于所述第二关键点和所述第一参考点生成第二向量;基于所述第一向量和所述第二向量,确定所述两个局部的每一个局部的朝向信息。
若所述两个局部中的第一局部为人体的肩部,则所述第一局部的第一参考点可为所述目标的腰部关键点或两胯的关键点的中点。若所述两个局部中的第二局部为人脸,则所述第二局部的第一参考点可为人脸所连接脖子和肩部的连接点。
在一些实施例中,基于所述两个向量,确定所述两个局部的每一个局部的朝向信息,包括:对于每一个局部,叉乘该局部的两个向量,得到该局部所在平面的法向量;将所述法向量,作为该局部的朝向信息。
通过叉乘计算可以得到另一个向量,该向量为连接部所在平面的法向量;若该法向量确定了,则局部所在平面的朝向也确定了,如此可以相当于确定了连接部相对于基准面的旋转角度,也就相当于确定了连接部的运动信息。
在一些实施例中,所述方法还包括:基于所述特征,确定所述至少两个局部的运动信息;根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述连接部的运动信息,包括:根据所述至少两个局部的运动信息,确定所述连接部的运动信息。
在一些实施例中,基于所述至少两个局部的运动信息,确定所述连接部的所述运动信息, 包括:获取所述连接部相对于第二参考点的第三3D坐标,其中,所述第二参考点为所述至少两个局部中的第二预定关键点;根据所述第三3D坐标获得所述连接部的绝对旋转信息;根据所述连接部的所述运动信息,控制所述受控模型的连接部的运动,包括:基于所述绝对旋转信息,控制所述受控模型的连接部的运动。
在一些实施例中,所述第二参考点可为目标的骨架关键点中的一个,目标以人为例,则该第二参考点可为所述第一类连接部所连接的局部的关键点。例如,以脖子为例,则第二参考点可为脖子所连接的肩部的关键点。
在另一些实施例中,所述第二参考点可和所述第一参考点相同,例如,第一参考点和第二参考点均可为人体的根节点,人体的根节点可为人体胯部两个关键点连线的中点。该根节点包括但不限于图7B所示的关键点0。图7B为人体的骨架示意图,在图7B包含有标号0至16共17个骨架关节点。
在另一些实施例中,基于所述绝对旋转信息,控制所述受控模型的连接部的运动,还包括:根据所述目标中多个所述连接部之间的牵引层级关系,分解所述绝对旋转信息,获得相对旋转信息;根据所述连接部的所述运动信息,控制所述受控模型的连接部的运动,包括:基于所述相对旋转信息,控制所述受控模型的连接部的运动。
例如,以下是一种层级关系的举例。第一层级:盆骨;第二层级:腰部;第三层级:大腿(例如,左大腿、右大腿);第四层级:小腿(例如,左小腿、右小腿);第五层级:脚部。
再例如,以下是另一种层级关系。第一层级:胸;第二层级:脖子;第三层级,头。
进一步地,例如,以下是再一种层级关系。第一层级:锁骨,对应于肩部;第二层级:上臂;第三层级:前臂(又称为小臂);第四层级:手部。
第一层级至第五层级,层级关系依次降低;高层级的局部的运动会影响低层级的局部的运动。故,牵引部的层级高于连接部的层级。
在确定所述连接部的运动信息时,首先,获取各层级的局部所对应关键点的运动信息,然后基于层级关系,确定出低层级的局部的关键点相对于高层级的关键点的局部的运动信息(即所述相对旋转信息)。
例如,以四元数作表征运动信息,则相对旋转信息可以用如下计算公式(1)进行表示:每个关键点相对于相机坐标系的旋转四元数{Q
0,Q
1,...,Q
18},然后再计算每个关键点相对于父关键点的旋转四元数q
i
其中,父关键点parent(i)为当前关键点i上一层级的关键点。Q
i为当前关键点i相对于相机坐标系的旋转四元数;
为上一层级的关键点的逆旋转参数。例如,Q
parent(i)为上一层级的关键点的旋转参数,且旋转角度为90度;则
的旋转角度为-90度。
在一些实施例中,基于所述绝对旋转信息,控制所述受控模型的连接部的运动,还包括:根据第二约束条件,校正所述相对旋转信息;基于所述相对旋转信息,控制所述受控模型的连接部 的运动,包括:基于校正后的所述相对旋转信息,控制所述受控模型的连接部的运动。
在一些实施例中,所述第二约束条件包括:所述连接部的可旋转角度。
在一些实施例中,所述方法还包括:对所述连接部的运动信息进行姿势缺陷校正,获得校正后的连接部的运动信息;根据所述连接部的运动信息,控制受控模型的连接部的运动,包括:利用所述校正后的连接部的运动信息,控制所述受控模型的连接部的运动。
例如,在一些用户存在一些形体不是很标准的问题,走路的不协调问题等。为了减少受控模型直接模仿出现比较怪异的动作,在本实施例中,可以对连接部的运动信息进行姿势缺陷校正,获得校正后的连接部的运动信息。
在一些实施例中,所述方法还包括:对所述至少两个局部的运动信息进行姿势缺陷校正,获得校正后的至少两个局部的运动信息;所述步骤S160可包括:利用所述校正后的至少两个局部的运动信息,控制所述受控模型对应局部的运动。
在一些实施例中,所述姿势缺陷校正包括以下至少之一:上肢和下肢的同步缺陷;罗圈腿运动缺陷;脚部呈现外八字型运动缺陷;脚部内凹型运动缺陷。
在一些实施例中,所述方法还包括:根据所述目标的形体与标准形体之间的差异信息,获得所述姿势缺陷校正参数;其中,所述姿势缺陷校正参数,用于所述至少两个局部的运动信息和/或连接部的运动信息的校正。
例如,在利用包含目标的图像控制所述受控模型之前,先检测所述目标的形体,然后将检测的形体与标准形体进行比对,得到差异信息;通过差异信息进行姿势缺陷校正。
在显示界面输出保持预定姿势的提示,用户看到所述提示之后,保持所述预定姿势,如此图像设备就能够采集到维持预定姿势的用户的图像;然后通过图像检测,确定用户维持预定姿势是否足够标准,从而得到所述差异信息。
例如,有人脚部呈现外八字,而正常的标准站立姿态应该是双足的足尖和足根的连线相互平行,在获取目标的特征所对应的至少两个局部的运动信息和/或连接部的运动信息,控制受控模型时会考虑到这种形体上的非标准校正(即所述姿势缺陷校正)。该预定姿势可包括但不限于人体的直立姿势。
在另一些实施例中,所述方法还包括:根据所述目标的不同局部的比例关系,校正标准模型的不同局部的比例,获得校正后的所述受控模型。
不同的目标各个部分的比例关系可能有差异。例如,职业模特的腿长与头长比例,比普通人的比例长一些。又例如,有一些人臀部比较丰满,则其两胯之间的间距可能比普通人更大一些。
标准模型可为基于大量人体数据得到的均值模型,为了使得受控模型能够更加精准模仿受控模型的运动,在本实施例中会根据目标的不同局部的比例关系,校正标准模型的不同局部的比例,获得校正后的所述受控模型。例如,以目标为人为例,被校正的局部包括但不限于胯部和/或腿部。
如图3A、图3B及图3C所示,图像左上角的小图是为采集的图像,右下角为人体的受控模型。该用户的手部在运动,从图3A到图3B,再从图3B到图3C,用户的手部在运动,受控模型的手也跟随在运动。用户的手部运动在图3A至图3C中依次从握拳、伸掌和伸出食指进行变化,而受控模型模仿用户的手势从握拳、伸掌和伸出食指变化。
如图4A、图4B及图4C所示,图像左上角的小图是为采集的图像,右下角为人体的受控模型。该用户的躯干在运动,从图4A到图4B,再从图4B到图4C,用户的躯干在运动,受控模型的躯干也跟随在运动。图4A到图4C,用户从向图像右边顶胯、向图像右顶胯,最后直立进行变化。受控模型也模拟用户进行躯干运动。
图5A、图5B及图5C所示,图像左上角的小图是为采集的图像,右下角为人体的受控模型。图5A到图5C,用户向图像右侧迈腿、向图像左迈腿、最后站直;受控模型也模拟用户进行脚部运动。
此外,在图4A至图4C中,受控模型还模拟用户的表情进行变化。
如图6所示,本实施例提供一种图像处理装置,包括以下模块。
第一获取模块110,用于获取图像。
第二获取模块120,用于基于所述图像,获取目标的至少两个局部的特征。
第一确定模块130,用于根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述连接部的运动信息,其中,所述连接部用于连接所述至少两个局部中的两个局部。
控制模块140,用于根据所述连接部的运动信息,控制受控模型的连接部的运动。
在一些实施例中,所述控制模块140,具体用于根据所述连接部的类型,确定控制所述连接部的控制方式;根据所述控制方式及所述连接部的所述运动信息,控制所述受控模型的连接部的运动。
在一些实施例中,所述控制模块140,具体用于在所述连接部为第一类连接部的情况下,所述控制方式为第一类控制方式,其中,所述第一类控制方式,用于直接控制所述受控模型中与所述第一类连接部对应的连接部的运动。
在一些实施例中,所述控制模块140,具体用于在所述连接部为第二类连接部的情况下,所述控制方式为第二类控制方式,其中,所述第二类控制方式,用于间接控制所述受控模型中与所述第二类连接部的对应的连接部的运动,该间接控制是通过控制所述受控模型中对应于所述第二类连接部以外的局部的局部实现的。
在一些实施例中,所述控制模块140,具体用于在所述控制方式为所述第二类控制方式的情况下,分解所述连接部的运动信息,以获得所述连接部由牵引部牵引所述连接部旋转的第一类旋转信息;根据所述第一类旋转信息,调整所述牵引部的运动信息;利用调整后的所述牵引部的运动信息,控制所述受控模型中牵引部的运动,以间接控制所述连接部的运动。
在一些实施例中,所述装置还包括:分解模块,用于分解所述连接部的运动信息,以获得所述第二类连接部相对于所述牵引部旋转的第二类旋转信息;所述控制模块140,还用于利用所述第二类旋转信息,控制所述受控模型所述连接部相对于所述牵引部的旋转。
在一些实施例中,第二类连接部包括:手腕;脚腕。
在一些实施例中,若所述第二类连接部为手腕,对应于所述手腕的牵引部包括:上臂和/或前臂;若所述第二类连接部为脚腕,对应于所述脚腕的牵引部包括:大腿和/或小腿。
在一些实施例中,第一类连接部包括连接头部和躯干的脖子。
在一些实施例中,所述装置还包括:朝向确定模块,用于根据所述连接部连接的所述两个局部的特征,确定所述两个局部各自的朝向信息;第二确定模块,用于根据所述两个局部各自的所述朝向信息,确定所述连接部的备选朝向信息;选择模块,用于根据所述备选朝向信息和所述第一运动约束条件,确定所述连接部的运动信息。
在一些实施例中,所述第二确定模块,用于根据所述两个局部各自的所述朝向信息,确定所述连接部的第一备选朝向信息和第二备选朝向信息。
在一些实施例中,所述选择模块,具体用于从所述第一备选朝向信息和第二备选朝向信息中,选择出位于朝向改变约束范围内的目标朝向信息;根据所述目标朝向信息确定所述连接部的运动信息。
在一些实施例中,所述朝向确定模块,具体用于获取所述两个局部中的每一个局部的第一关键点和第二关键点;获取所述两个局部中的每一个局部的第一参考点,其中,所述第一参考点为所述目标内的第一预定关键点;基于所述第一关键点和所述第一参考点生成第一向量,并基于所述第二关键点和所述第一参考点生成第二向量;基于所述第一向量和所述第二向量,确定所述两个局部的每一个局部的朝向信息。
在一些实施例中,所述朝向确定模块,具体用于对于每一个局部,叉乘该局部的两个向量,得到该局部所在平面的法向量;将所述法向量,作为该局部的朝向信息。
在一些实施例中,所述装置还包括:第三确定模块,用于基于所述特征,确定所述至少两个局部的运动信息;所述第一确定模块130,具体用于根据所述至少两个局部的运动信息,确定所述连接部的运动信息。
在一些实施例中,所述第一确定模块130,具体用于获取所述连接部相对于第二参考点的第三3D坐标,其中,所述第二参考点为所述至少两个局部中的第二预定关键点;根据所述第三3D坐标获得所述连接部的绝对旋转信息;所述控制模块140,具体用于基于所述绝对旋转信息,控制所述受控模型的连接部的运动。
在一些实施例中,所述第一确定模块130,具体用于根据所述目标中多个所述连接部之间的牵引层级关系,分解所述绝对旋转信息,获得相对旋转信息;所述控制模块140,具体用于基于所述相对旋转信息,控制所述受控模型的连接部的运动。
在一些实施例中,所述装置,还包括:校正模块,用于根据第二约束条件,校正所述相对旋转信息;所述控制模块140,具体用于基于校正后的所述相对旋转信息,控制所述受控模型的连接部的运动。
在一些实施例中,所述第二约束条件包括:所述连接部的可旋转角度。
以下结合上述任意实施例提供几个具体示例。
示例1
本实例提供一种图像处理方法,该方法的步骤如下。
采集图像,该图像包括目标,该目标包括但不限于人体。
检测人体的脸部关键点,其中,该脸部关键点可为人脸表面的轮廓关键点。
检测人体的躯干关键点和/或肢体关键点,此处的躯干关键点和/或肢体关键点都可为3D关键点,是由3D坐标表示的。该3D可以包括从2D图像中检测的2D坐标,然后利用2D坐标到3D坐标的转换算法得到的3D坐标。该3D坐标还可以是利用3D摄像头采集的3D图像中提取的3D坐标。此处的肢体关键点可包括:上肢关键点和/或下肢关键点。以手部为例,则该上肢关键点的手部关键点包括但不限于,手腕关节的关键点,指掌关节的关键点、指关节的关键点、指尖关键点;这些关键点的位置能够反映手部和手指的运动。
根据人脸关键点,生成人脸的网格(mesh)信息。根据mesh信息选择出所述目标的当前表情对应的表情基,根据该表情基控制所述受控模型的表情;根据mesh信息所反映的强度系数,控制受控模型的对应于各表情基的表情强度
根据所述躯干关键点和/或肢体关键点,转换四元数。根据与躯干关键点对应的四元数控制受控模型的躯干运动;和/或,根据与肢体关键点对应的四元数控制受控模型的肢体运动。
例如,所述脸部关键点可包括:106个关键点。所述躯干关键点和/或肢体关键点可包括:14个关键点或17个关键点,具体可如图7A和图7B所示。图7A所示为包含有14个骨架关键点的示意图;图7B所示为包含有17个骨架关键点的示意图。
图7B可为一种基于图7A所示的14个关键点生成的17个关键点的示意图。图7B中17个关键点,相当于图7A所示的关键点,增加了关键点0、关键点7及关键点9;其中,关键点9的2D坐标可基于关键点8及关键点10的2D坐标初步确定;关键点7的2D坐标可根据关键点8的2D坐标及关键点0的2D坐标确定。关键点0可为本公开实施例提供的参考点,该参考点可以作为前述的第一参考点和/或第二参考点。
本示例中所述受控模型可为游戏场景下的游戏角色;网络授课场景下的网络教育视频中的教师模型;虚拟主播场景下的虚拟主播。总之,所述受控模型是根据应用场景确定的,应用场景不同,则受控模型的模型不同和/或外观不同。
例如,在传统的数学、物理等讲台授课场景,教师模型衣着服饰可能比较稳重,如西服等服饰。再比如,针对瑜伽或体操等运动授课场景,则受控模型穿着可能是运动服饰。
示例2
本实例提供一种图像处理方法,该方法的步骤如下。
采集图像,该图像包括目标,该目标包括但不限于人体。
检测人体的躯干关键点和肢体关键点,此处的躯干关键点和/或肢体关键点都可为3D关键点,是由3D坐标表示的。该3D可以包括从2D图像中检测的2D坐标,然后利用2D坐标到3D坐标的转换算法得到的3D坐标。该3D坐标还可以是利用3D摄像头采集的3D图像中提取的3D坐标。此处的肢体关键点可包括:上肢关键点和/或下肢关键点。以手部为例,则该上肢关键点的手部关键点包括但不限于,手腕关节的关键点,指掌关节的关键点、指关节的关键点、指尖关键点。这些关键点的位置能够反映手部和手指的运动。
将躯干关键点转换为表征躯干运动的四元数,该四元数可以称之为躯干四元数。将肢体关键点转换为表征肢体运动的四元数,该四元数据可以称之为肢体四元数。
利用躯干四元数控制受控模型的躯干运动。利用肢体四元数控制受控模型的肢体运动。
所述躯干关键点和肢体关键点可包括:14个关键点或17个关键点,具体可如图7A或图7B所示。
本示例中所述受控模型可为游戏场景下的游戏角色;网络授课场景下的网络教育视频中的教师模型;虚拟主播场景下的虚拟主播。总之,所述受控模型是根据应用场景确定的,应用场景不同,则受控模型的模型不同和/或外观不同。
例如,在传统的数学、物理等讲台授课场景,教师模型的衣着服饰可能比较稳重,如西服等服饰。再比如,针对瑜伽或体操等运动授课场景,则受控模型穿着可能是运动服饰。
示例3
本示例提供一种图像处理方法,该方法的步骤如下。
获取图像,该图像包含目标,该目标可为人体。
根据所述图像,获得目标在三维空间内3D姿势,该3D姿势可以通过人体的骨架关键点的3D坐标来表示。
获取人体的关节在相机坐标系下的绝对旋转参数,该绝对旋转位置可以由在相机坐标系下的坐标。
根据该坐标得到关节的坐标方向。根据层级关系,确定出关节的相对旋转参数。确定所述相对参数具体可包括:确定出关节的关键点相对于人体的根节点的位置。其中,该相对旋转参数可以用于四元数表示。此处的层级关系,可以为关节之间的牵引关系,例如,肘关节的运动在一定程度上会牵引手腕关节的运动,肩关节的运动也会牵引肘关节的运动等。所述层级关系还可以为根据人体的关节预先确定的。
利用该四元数控制受控模型的旋转。
例如,以下是一种层级关系的举例。第一层级:盆骨;第二层级:腰部;第三层级:大腿(例如,左大腿、右大腿);第四层级:小腿(例如,左小腿、右小腿);第五层级:脚部。
再例如,以下是另一种层级关系。第一层级:胸;第二层级:脖子;第三层级,头。
进一步地,例如,以下是再一种层级关系。第一层级:锁骨,对应于肩部;第二层级:上臂;第三层级:前臂(又称为小臂);第四层级:手部。
第一层级至第五层级,层级关系依次降低;高层级的局部的运动会影响低层级的局部的运动。故,牵引部的层级高于连接部的层级。
在确定所述连接部的运动信息时,首先,获取各层级的局部的关键点的运动信息,然后基于层级关系,确定出低层级的局部的关键点相对于高层级的关键点的局部的运动信息(即所述相对旋转信息)。
例如,以四元数作表征运动信息,则相对旋转信息可以用计算公式进行表示:每个关键点相对于相机坐标系的旋转四元数{Q
0,Q
1,...,Q
18},然后再根据公式(1)计算每个关键点相对于父关键点的旋转四元数q
i。
前述利用四元数控制受控模型的各个关节的运动,可包括:利用q
i控制受控模型的各个关节的运动。
在一种进一步图像处理方法中,所述方法还包括:将所述四元数转换为第一欧拉角;对第一欧拉角做变换,得到位于约束条件内的第二欧拉角,其中,该约束条件可为对第一欧拉角进行角度限制;获得与第二欧拉角对应的四元数,再利用该四元数控制所述受控模型的旋转。获得与第二欧拉角对应的四元数,可以直接将该第二欧拉角转换为四元数。
以人体为例进行说明,通过人体检测可以检测出17个关节的关键点,此外,在对应于左手和右手设置了2个关键点,一共为19个关键点。图7B为17个关键点的骨架示意图。图8为19个关键点的骨架示意图。图8所示的骨骼可对应于19个关键点,分别指代以下骨骼:盆骨、腰部、左大腿、左小腿、左脚;右大腿、右小腿、右脚、胸部、脖子、头部、左锁骨、右锁骨、右上臂、右前臂、右手部、左上臂、左前臂、左手。
首先通过图像中的人体关节的关键点的检测可以得到在图像坐标系17个关键点的坐标,具体可如下:S={(x
0,y
0,z
0),...,(x
16,y
16,z
16)}。其中,(x
i,y
i,z
i)可为第i个关键点的坐标,i的取值从0到16。
19个关节的关键点在各自局部坐标系下的坐标可如下定义:A={(p
0,q
0),...,(p
18,q
18)}。其中,p
i表示节点i局部坐标系下的三维坐标,一般都是原模型自带的固定值,不用做修改和迁移。q
i则为一个四元数,表示节点i所控制的骨头在其父节点坐标系中的旋转,也可以认为是当前节点的局部坐标系和父节点局部坐标系的旋转。
在计算各个关节所对应关键点的四元数的流程可如下:确定每个节点局部坐标系的坐标轴方向。对于每根骨头,从子节点指向父节点的方向为x轴;使该骨头可旋转角度最大的旋转轴为z轴;若无法判断旋转轴,以人体面朝的方向为y轴;具体可参考图9所示。
本示例以左手坐标系为了进行说明,具体实现时还可以采用右手坐标系。
上述表中(i-j)表示i指向j的向量,x表示叉乘。如(1-7)表示第1关键点指向第7关键点的向量。
上述表中,节点8、15、11和18是手和脚的四个关键点,由于这4个关键点的四元数的计算需要用到具体姿势才可以确定,因此该表中没有包括这4个关键点。此外,在上述表中,19点骨骼节点编号可以参见图8所示,17点骨架的关键点编号,可以参见图7B。
求解所述第一欧拉角的过程如下。
计算出关节点局部旋转四元数q
i之后,首先将其转换为欧拉角,默认使用x-y-z的顺序。
设q
i=(q0,q1,q2,q3),q0为实数部分;q1,q2,q3均为虚数部分。则欧拉角的计算公式如(2)-(4)所示:
X=atan2(2*(q0*q1-q2*q3),1-2*(q1*q1+q2*q2)) (2)
Y=asin(2*(q1*q3+q0*q2))且Y的取值在-1至1之间 (3)
Z=atan2(2*(q0*q3-q1*q2),1-2*(q2*q2+q3*q3)) (4)
其中,X为第一方向上的欧拉角;Y为第二方向上的欧拉角;Z为第三方向上的欧拉角。第一方向、第二方向和第三方向中的任意两个垂直。
然后可以对(X,Y,Z)三个角度做限制,超出限制范围的话,则限定在边界值,得到修正之后的第二欧拉角(X',Y',Z')。恢复成新的局部坐标系旋转四元数q
i'。
在另一种进一步的图像处理方法中,所述方法还包括:对第二欧拉角进行姿势优化调整。例如,对第二欧拉角中的某一些角度进行调整,可以基于预先设定规则,调整为姿势优化的欧拉角,从而得到第三欧拉角。则获得与第二欧拉角对应的四元数,可包括:将第三欧拉角转换为控制受控模型的四元数。
在再一种进一步的图像处理方法中,所述方法还包括:将第二欧拉角转换为四元数之后,对转换后的四元数据进行姿势优化处理。例如,基于预设规则进行调整,得到调整后的四元数,根据最终调整后的四元数控制所述受控模型。
在一些实施例中,在对第二欧拉角或第二欧拉角转换得到的四元数进行调整时,可以是基于预设规则的调整,也可以是由深度学习模型自行进行优化调整;具体的实现方式有很多种,本申请不做限定。
此外,在又一种的图像处理方法中,还可以包括前处理。例如,根据采集的人体的尺寸,修改受控模型胯部和/或肩部的宽度,从而修正人体的整体姿态。对人体站立姿态,可以进行站直修正,进行挺腹修正。有人站立时会挺腹,通过挺腹修正可以使得受控模型不会模拟用户的挺腹动作。 有人站立时会驼背,通过驼背修正可以使得受控模型不会模拟用户的驼背动作等。
示例4
本示例提供一种图像处理方法,该方法的步骤如下。
获取图像,该图像包含目标,该目标可包括人体、人体上肢、人体下肢的至少一个。
根据目标关节在图像坐标系中的位置信息获取目标关节的坐标系。根据肢体局部在图像坐标系中的位置信息,获取会牵引目标关节运动的肢体局部的坐标系。
基于所述目标关节的坐标系和肢体局部的坐标系,确定目标关节相对于肢体局部的旋转,得到旋转参数;该旋转参数包括目标关节的自旋参数和由肢体局部牵引的旋转参数。
利用第一角度限制对由肢体局部牵引的旋转参数进行限制,得到最终牵引旋转参数。根据最终牵引旋转参数,修正肢体局部的旋转参数。根据第一肢体的坐标系与修正后旋转参数的肢体局部的相对旋转参数;对相对旋转参数进行第二角度限制,得到限制后的相对旋转参数。
根据限制后的旋转参数,得到四元数。根据该四元数控制受控模型的目标关节的运动。
例如,若对人体上肢进行处理时,获取图像坐标系下的手部的坐标系,并且得到小臂的坐标系以及上臂的坐标系。此时的目标关节为手腕关节。将手部相对于小臂的旋转分解成自旋和被牵引的旋转。将被牵引的旋转传递给小臂,具体如,被牵引的旋转赋值给小臂对应方向的旋转;利用小臂的第一角度限制,进行小臂的最大旋转进行限制。然后确定手部相对于被修正后的小臂的旋转,得到相对旋转参数。对该相对旋转参数进行第二角度限制,得到手部相对于小臂的旋转。
若对人体下肢进行处理时,获取图像坐标系下的脚部的坐标系,并且得到小腿的坐标系以及大腿的坐标系;此时的目标关节为脚腕关节。将脚部相对于小腿的旋转分解成自旋和被牵引的旋转。将被牵引的旋转传递给小腿,具体如,被牵引的旋转赋值给小腿对应方向的旋转;利用小腿的第一角度限制,进行小腿的最大旋转进行限制。然后确定脚部相对于被修正后的小腿的旋转,得到相对旋转参数。对该相对旋转参数进行第二角度限制,得到脚部相对于小腿的旋转。
示例5
脖子是控制头的朝向,人脸、人体、人手是独立分开的部件,最终要合成一个整体,脖子的旋转是非常重要的。
根据人体的关键点可以计算出一个人体的朝向。而根据人脸关键点,可以计算出一个人脸的朝向,这两个朝向的相对位置就是脖子的旋转角度。要解决连接部的角度问题。这种连接部的角度问题就是通过相对计算。比如身体是0度,人脸是90度,要控制一个受控模型,它只关注局部角度,头和身体的角度变化,需要算出受控模型的脖子的角度,才能控制受控模型的头。
在本示例中,首先基于图像确定出用户目前脸部的朝向,然后计算脖子的旋转角度。由于脖子的旋转是有范围的,比如假设脖子最多可以转90度。如果计算出来的旋转角度超出这个范围(-90度到90度),则将范围的边界作为脖子的旋转角度(如,-90度或90度)。
可用3D关键点来计算身体或脸部的朝向,具体的朝向的计算可为:脸部或身体所在平面内的两个不在一条直线上的向量叉乘得到该平面的法向量,该法向量即为脸部或身体的朝向。该朝向就可以作为身子和脸部之间的连接部(脖子)的朝向。
如图10所示,本申请实施例提供了一种图像设备,包括:存储器1002,用于存储信息;处理器1001,与所述存储器1002连接,用于通过执行存储在所述存储器1002上的计算机可执行指令,能够实现前述一个或多个技术方案提供的图像处理方法,例如如图1A、图1B和/或图2所示的图像处理方法。
该存储器1002可为各种类型的存储器,可为随机存储器、只读存储器、闪存等。所述存储器1002可用于信息存储,例如,存储计算机可执行指令等。所述计算机可执行指令可为各种程序指令,例如,目标程序指令和/或源程序指令等。
所述处理器1001可为各种类型的处理器,例如,中央处理器、微处理器、数字信号处理器、可编程阵列、数字信号处理器、专用集成电路或图像处理器等。
所述处理器1001可以通过总线与所述存储器1002连接。所述总线可为集成电路总线等。
在一些实施例中,所述终端设备还可包括:通信接口1003,该通信接口1003可包括:网络接口、例如,局域网接口、收发天线等。所述通信接口同样与所述处理器1001连接,能够用于信息收发。
在一些实施例中,所述终端设备还包括人机交互接口1005,例如,所述人机交互接口1005可包括各种输入输出设备,例如,键盘、触摸屏等。
在一些实施例中,所述图像设备还包括:显示器1004,该显示器可以显示各种提示、采集的人脸图像和/或各种界面。
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行代码;所述计算机可执行代码被执行后,能够实现前述一个或多个技术方案提供的图像处理方法,例如如图1A、图1B和/或图2所示的图像处理方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本公开各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的非易失性存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。