图像处理方法及装置、图像设备及存储介质
本申请要求申请号为201910049830.6,申请日为2019年01月18日提交的中国申请的优先权。
技术领域
本申请涉及信息技术领域,尤其涉及一种图像处理方法及装置、图像设备及存储介质。
背景技术
随着信息技术的发展,用户可以通过视频录制进行网络授课、网络主播,体感游戏等成为可能。但是在一些情况下,例如,体感游戏需要用户需要佩戴专门的体感设备来检测自身的肢体等活动,才能控制游戏角色。而进行网络授课或者网络主播时,用户的面貌或肢体等完全暴露在网络中,这一方面可能涉及用户的隐私问题,另一方面还涉及信息安全性问题。为了解决这种隐私或安全性问题,可能会通过马赛克等方式进行脸部图像的覆盖等,但是这样会影响视频效果。
发明内容
有鉴于此,本申请实施例期望提供一种图像处理方法及装置、图像设备及存储介质。
为达到上述目的,本申请的技术方案是这样实现的:
一种图像处理方法,包括:
获取图像;
基于所述图像获取身体的肢体的特征,其中,所述肢体包括:上肢和/或下肢;
基于所述特征,确定所述肢体的第一类运动信息;
根据所述第一类运动信息,控制受控模型的肢体的运动。
基于上述方案,所述基于所述特征,确定所述肢体的第一类运动信息,包括:
检测所述图像中肢体的关键点的位置信息;
根据所述位置信息,确定所述第一类运动信息。
基于上述方案,所述方法还包括:
检测所述图像中身体骨架的关键点的位置信息;
所述基于所述图像获取身体的肢体的特征,包括:
基于所述身体骨架的关键点的位置信息,确定出所述肢体的关键点的位置信息。
基于上述方案,所述根据所述位置信息,确定所述第一类运动信息,包括:
根据所述肢体的关键点的位置信息,在所述图像中确定出包含肢体的第一局部的位置框;
基于所述位置框,检测所述第一局部的关键点的位置信息;
基于所述位置信息,获得所述第一局部的第一类运动信息。
基于上述方案,所述根据所述肢体的关键点的位置信息,在所述图像中确定出包含肢体的第一局部的位置框,包括:
根据手部关键点的位置信息,在所述图像中确定出包含手部的位置框。
基于上述方案,所述基于所述位置框,检测所述第一局部的关键点的位置信息,包括:
基于所述位置框检测所述手部上指关节所对应关键点的位置信息和/或手指指尖所对应关键点的位置信息。
基于上述方案,所述基于所述位置信息,获得所述第一局部的第一类运动信息,包括:
基于所述位置信息,获得所述手部的手指的运动信息。
基于上述方案,所述基于所述特征,确定所述肢体的第一类运动信息,还包括:
根据所述肢体的关键点的位置信息,确定出所述肢体的第二局部的第一类运动信息。
基于上述方案,所述方法还包括:
基于所述肢体中通过连接部所连接的两个局部的关键点的位置信息,确定出所述连接部的第二类运动信息。
基于上述方案,所述根据所述第一类运动信息,控制受控模型的肢体的运动,包括:
根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述至少两个局部的连接部的第二类运动信息;
根据所述第二类运动信息,控制所述受控模型的连接部的运动。
基于上述方案,所述根据所述第二类运动信息,控制所述受控模型的连接部的运动,包括:
根据所述连接部的类型,确定控制所述连接部的控制方式;
根据所述控制方式及所述第二类运动信息,控制所述受控模型的连接部的运动。
基于上述方案,所述根据所述连接部的类型,确定控制所述连接部的控制方式,包括:
在所述连接部为第一类连接部的情况下,确定采用第一类控制方式,其中,所述第一类控制方式,用于直接控制所述受控模型与所述第一类连接部相同的第一类受控局部。
基于上述方案,所述根据所述连接部的类型,确定控制所述连接部的控制方式,包括:
在所述连接部为第二类连接部的情况下,确定采用第二类控制方式,其中,所述第二类控制方式,用于通过控制所述受控模型所述第二类连接部以外的局部间接控制所述第二类连接部。
基于上述方案,所述根据所述控制方式及所述第二类运动信息,控制所述受控模型的连接部的运动,包括:
在所述控制方式为所述第二类控制方式的情况下分解所述第二类运动信息,获得所述连接部由牵引部牵引所述连接部旋转的第一类旋转信息;
根据所述第一类旋转信息,调整所述牵引部的运动信息;
利用所述牵引部的调整后的运动信息,控制所述受控模型中牵引部的运动,以间接控制所述连接部的运动。
基于上述方案,所述方法还包括:
分解所述第二类运动信息,获得所述第二类连接部相对于所述牵引部旋转的第二类旋转信息;
利用所述第二类旋转信息,控制所述受控模型所述连接部相对于所述牵引部的旋转。
基于上述方案,所述第一类连接部包括:手肘;膝盖;
和/或,
所述第二类连接部包括:手腕;脚腕。
基于上述方案,在所述第二类连接部为手腕的情况下,对应于所述手腕的牵引部包括:上臂;
和/或,
在所述第二类连接部为脚腕的情况下,对应于所述脚腕的牵引部包括:小腿。
基于上述方案,所述基于所述图像获取身体的肢体的特征,包括:基于2D图像,获取所述肢体的第一2D坐标;
所述基于所述特征,确定所述肢体的第一类运动信息,包括:基于所述第一2D坐标和2D坐标到3D坐标的转化关系,获得与所述第一2D坐标对应的第一3D坐标。
基于上述方案,所述基于所述图像获取身体的肢体的特征,包括:基于3D图像,获取所述目标的肢体的骨架关键点的第二3D坐标;
所述基于所述特征,确定所述肢体的第一类运动信息,包括:基于所述第二3D坐标获得第三2D坐标。
基于上述方案,所述基于所述第二3D坐标获得第三2D坐标,包括:
基于所述第二3D坐标,调整肢体在所述3D图像中被遮挡部分所对应骨架关键点的3D坐标从而获得所述第三2D坐标。
基于上述方案,所述第一类运动信息包括:四元数。
一种图像处理装置,包括:
第一获取模块,用于获取图像;
第二获取模块,用于基于所述图像获取身体的肢体的特征,其中,所述肢体包括:上肢和/或下肢;
第一确定模块,用于基于所述特征,确定所述肢体的第一类运动信息;
控制模块,用于根据所述第一类运动信息,控制受控模型的肢体的运动。
基于上述方案,所述第一确定模块,具体用于检测所述图像中肢体的关键点的位置信息;根据所述位置信息,确定所述第一类运动信息。
基于上述方案,所述装置还包括:
检测模块,用于检测所述图像中身体骨架的关键点的位置信息;
所述第二获取模块,具体用于基于所述身体骨架的关键点的位置信息,确定出所述肢体的关键点的位置信息。
基于上述方案,所述第一确定模块,具体用于根据所述肢体的关键点的位置信息,在所述图像中确定出包含肢体的第一局部的位置框;基于所述位置框,检测所述第一局部的关键点的位置信息;基于所述位置信息,获得所述第一局部的第一类运动信息。
基于上述方案,所述第一确定模块,具体用于根据手部关键点的位置信息,在所述图像中确定出包含手部的位置框。
基于上述方案,所述第一确定模块,还用于基于所述位置框检测所述手部上指关节所对应关键点的位置信息和/或手指指尖所对应关键点的位置信息。
基于上述方案,所述第一确定模块,还用于基于所述位置信息,获得所述手部的手指的运动信息。
基于上述方案,所述第一确定模块,还用于根据所述肢体的关键点的位置信息,确定出所述肢体的第二局部的第一类运动信息。
基于上述方案,所述装置还包括:
第二确定模块,用于基于所述肢体中通过连接部所连接的两个局部的关键点的位置信息,确定出所述连接部的第二类运动信息。
基于上述方案,所述控制模块,具体用于根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述至少两个局部的连接部的第二类运动信息;根据所述第二类运动信息,控制所述受控模型的连接部的运动。
基于上述方案,所述控制模块,还用于根据所述连接部的类型,确定控制所述连接部的控制方式;根据所述控制方式及所述第二类运动信息,控制所述受控模型的连接部的运动。
基于上述方案,所述控制模块,还用于在所述连接部为第一类连接部的情况下,确定采用第一类控制方式,其中,所述第一类控制方式,用于直接控制所述受控模型与所述第一类连接部相同的第一类受控局部。
基于上述方案,所述控制模块,还用于在所述连接部为第二类连接部情况下,确定采用第二类控制方式,其中,所述第二类控制方式,用于通过控制所述受控模型所述第二类连接部以外的局部间接控制所述第二类连接部。
基于上述方案,所述控制模块,还用于在所述控制方式为所述第二类控制方式的情况下,分解所述第二类运动信息获得所述连接部由牵引部牵引所述连接部旋转的第一类旋转信息;根据所述第一类旋转信息,调整所述牵引部的运动信息;利用所述牵引部的调整后的运动信息,控制所述受控模型中牵引部的运动,以间接控制所述连接部的运动。
基于上述方案,所述控制模块,还用于分解所述第二类运动信息,获得所述第二类连接部相对于所述牵引部旋转的第二类旋转信息;利用所述第二类旋转信息,控制所述受控模型所述连接部相对于所述牵引部的旋转。
基于上述方案,所述第一类连接部包括:手肘;膝盖;
和/或,
所述第二类连接部包括:手腕;脚腕。
基于上述方案,若所述第二类连接部为手腕,对应于所述手腕的牵引部包括:上臂;
和/或,
若所述第二类连接部为脚腕,对应于所述脚腕的牵引部包括:小腿。
基于上述方案,所述第二获取模块,具体用于基于2D图像,获取所述肢体的第一2D坐标;
所述第一确定模块,用于基于所述第一2D坐标和2D坐标到3D坐标的转化关系,获得与所述第一2D坐标对应的第一3D坐标。
基于上述方案,所述第二获取模块,具体用于基于3D图像,获取所述目标的肢体的骨架关键点的第二3D坐标;
所述第一确定模块,具体用于基于所述第二3D坐标获得第三2D坐标。
基于上述方案,所述第一确定模块,具体用于基于所述第二3D坐标,调整肢体在所述3D图像中被遮挡部分所对应骨架关键点的3D坐标从而获得所述第三2D坐标。
基于上述方案,所述第一类运动信息包括:四元数。
一种图像设备,包括:
存储器;
处理器,与所述存储器连接,用于通过执行位于所述存储器上的计算机可执行指令,能够实现上述任意技术方案提供的图像处理方法。
一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现上述任意技术方案提供的图像处理方法。
本申请实施例提供的图像处理方法,可以通过图像采集模仿采集对象的肢体的动作,然后用于控制受控模型的肢体的动作。如此,通过受控模型的肢体动作的控制,实现受控模型模拟用户的运动,实现视频教学、视频演讲、直播或者游戏控制等,与此同时,利用受控模型替代直接展示采集的图像,可以隐藏采集对象的图像,从而保护用户的隐私,提升信息安全性。
附图说明
图1为本发明实施例提供的第一种图像处理方法的流程示意图;
图2为本发明实施例提供的一种检测第一局部的第一类运动信息的流程示意图;
图3为本发明实施例提供的一种手部的关键点示意图;
图4为本发明实施例提供的第二种图像处理方法的流程示意图;
图5A至图5C为本实施例提供的一种受控模型模拟被采集用户的手部运动的变化示意图;
图6A至图6C为本发明实施例提供的一种受控模型模拟被采集用户的躯干运动的变化示意图;
图7为本发明实施例提供的一种图像处理装置的结构示意图;
图8A为本发明实施例提供的一种关键点的示意图;
图8B为本发明实施例提供的另一种关键点的示意图;
图9为本发明实施例构建局部坐标系的一种示意图;
图10为本发明实施例提供的一种图像设备的结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本申请的技术方案做进一步的详细阐述。
如图1所示,本实施例提供一种图像处理方法,包括:
步骤S110:获取图像;
步骤S120:基于所述图像获取身体的肢体的特征,其中,所述肢体包括:上肢和/或下肢;
步骤S130:基于所述特征,确定所述肢体的第一类运动信息;
步骤S140:根据所述第一类运动信息,控制受控模型的肢体的运动。
本实施例提供的图像处理方法,通过图像处理可以驱动受控模型的运动。
本实施例提供的图像处理方法可应用于图像设备,该图像设备可为能够进行图像设备处理的各种电子设备,例如,进行图像采集、图像显示及图像像素重组生成图像的电子设备。
该图像设备包括但不限于各种终端设备,例如,移动终端和/或固定终端;还可包括各种能够提供图像服务的图像服务器。
所述移动终端包括用户便于携带的手机或平板电脑等便携式设备,还可以用户佩戴的设备,例如,智能手环、智能手表或智能眼镜等。
所述固定终端包括固定的台式电脑等。
在本实施例中,步骤S110中获取的图像可为:2D图像或者3D图像。
所述2D图像可包括:单目或多目摄像头采集的红绿蓝(RGB)图像等。
所述获取图像的方式可包括:
利用图像设备自身的摄像头采集所述图像;
和/或,
从外部设备接收的图像;
和/或,
从本地数据库或本地存储器中读取所述图像。
所述身体的肢体可包括:上肢和/或下肢。
在步骤S120中可以检测上肢或下肢的特征,得到该特征之后在步骤S130中得到所述第一类运动信息。该第一类运动信息至少表征了肢体的运动变化。
在本实施例中,可以利用神经网络等深度学习模型检测所述图像,从而得到所述特征。
所述受控模型可为所述目标所对应的模型。例如,目标为人,则所述受控模型为身体模型,若所述目标为动物,则所述受控模型可为对应动物的身体模型。
总之,在本实施例中,所述受控模型是针对目标所属类别的模型。该模型可为预先确定的。例如,所述受控模型的风格可以基于用户指令确定,该受控模型的风格可包括多种,例如,模拟真人的真人风格、动漫风格、网红风格、不同气质的风格,例如,文艺风格或摇滚风格、游戏风格。游戏风格下则受控模型可为游戏角色。
在本实施例中,通过上述步骤S110至步骤S140的执行,可以将用户的肢体动作直接迁移到受控模型上;如此,可以通过摄像头的图像采集,在用户不用佩戴体感设备的情况下,就能够简便的实现受控对象的肢体运动的控制。
在一些情况下,若用户在进行网络直播或演讲的过程中,不想使用对采集自己的真实人像,但是又想受控模型能够模拟自己的肢体运动,以增强网络直播的效果和演讲的感染力,则采用上述方法既可以保障用户隐私,还可以确保用户想要的效果。
在一些实施例中,所述步骤S130可包括:
检测所述图像中肢体的关键点的位置信息;
根据所述位置信息,确定所述第一类运动信息。
该肢体的关键点的位置信息,包括但不限于:骨架关键点的位置信息和/或轮廓关键点的位置信息。骨架关键点的信息是骨架的关键点的信息,轮廓关键点的位置信息是肢体的外表面的关键点的位置信息。
所述位置信息可包括坐标。
不同身体姿态或不同运动状态的身体相对于参考姿态或参考运动状态下的坐标是会发生变化的,故可以根据坐标确定出所述第一类运动信息。
在本实施例中通过关键点的位置信息的简称,就可以简便快捷的确定出所述第一类运动信息,该第一类运动信息可以直接作为驱动受控模型运动的运动参数。
在一些实施例中,所述方法还包括:
检测所述图像中身体骨架的关键点的位置信息;
所述检测所述图像中肢体的关键点的位置信息,包括:
基于所述身体骨架的关键点的位置信息,确定出所述肢体的关键点的位置信息。
在本实施例中,可以首先利用神经网络等深度学习模型得到身体骨架的全身的关键点的位置信息,从而可以基于全身关键点的位置信息之间的分布,从中确定出肢体的关键点的位置信息。得到全身的关键点的位置信息之后,连接这些关键点,就获得骨架,基于骨架内各个骨头和关节的相对分布位置,就可以确定出哪些关键点是肢体的关键点,从而确定出肢体关键点的位置信息。
在还有一些实施例中,可以通过人体识别等,先识别出肢体所在的位置,仅针对肢体所在的位置进行关键点的位置信息的提取。
在一些实施例中,如图2所示,所述步骤S130可包括:
步骤S131:根据所述肢体的关键点的位置信息,在所述图像中确定出包含肢体的第一局部的位置框;
步骤S132:基于所述位置框,检测所述第一局部的关键点的位置信息;
步骤S133:基于所述位置信息,获得所述第一局部的第一类运动信息。
在本实施例中,为了精确模仿肢体的运动。若肢体以上肢为例,上肢的运动不仅包括上臂的运动、下臂的运动,还包括动作幅度更加细微的手部的手指运动。
在本实施例中,第一局部可为手部或脚部。
基于得到的位置框,可以从图像中框出包含第一局部的图像区域。
针对该图像区域进行进一步的关键点的位置信息获得。
例如,从手部提取出指关节所对应关键点的位置信息。手部不同的姿势,手指呈现不同的状态,则指关节的位置和分布不同,而这些都可以通过指关节的关键点来体现。
在一些实施例中,所述步骤S131可包括:
根据手部关键点的位置信息,在所述图像中确定出包含手部的位置框。
该位置框可为矩形框,也可以为非矩形框。
例如,以第一局部为手部为例,该位置框可以为与手部形状相适配的手型框。例如,通过手部的外轮廓关键点的检测,就可以生成所述手型位置框。
再例如,手部的骨架关键点的检测,得到包含所有骨架关键点的矩形的外接框。该外接框就是规则的矩形框。
进一步地,所述步骤S132可包括:
基于所述位置框检测所述手部上指关节所对应关键点的位置信息和/或手指指尖所对应关键点的位置信息。
图3所示为一种手部的关键点的示意图。在图3中展示有手部的20个关键点,分别是5个手指头的指关节的关键点和指尖的关键点;这些关键点分别为图3中的关键点P1至P20。
指关节的关键点的位置信息的确定,可以控制受控模型各个指关节的运动,指尖的关键点的位置信息的确定,可以控制受控模型的指尖运动的控制,从而实现肢体迁移过程中更加精细的控制。
在一些实施例中,所述步骤S130可,包括:基于所述位置信息,获得所述手部的手指的运动信息。
在一些实施例中,所述基于所述特征,确定所述肢体的第一类运动信息,还包括:
根据所述肢体的关键点的位置信息,确定出所述肢体的第二局部的第一类运动信息。
此处的第二局部为肢体上第一局部以外的局部。例如,以上肢为例,若第一局下臂和/或手肘至肩关节之间的上臂等。
第二局部可以直接基于肢体的关键点位置信息得到所述第一类运动信息。
故在本实施例中,会根据肢体的不同局部的特性,以不同的方式获得不同局部的第一类运动信息,以实现受控模型中肢体的不同局部的精确控制。
在一些实施例中,所述方法还包括:
基于所述肢体中通过连接部所连接的两个局部的关键点的位置信息,确定出所述连接部的第二类运动信息。
在一些实施例中,如图4所示,所述步骤S140可包括:
步骤S141:根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述至少两个局部的连接部的第二类运动信息;
步骤S142:根据所述第二类运动信息,控制所述受控模型的连接部的运动。
该连接部可为连接其他两个部分的局部,例如,以人为例,脖子、手腕、脚腕或腰围都为连接两个局部的连接部。
以人的上肢为例,连接部可包括连接手部和下臂的手腕,连接上臂和下臂的手肘等。以下肢为例,连接部可包括连接脚部和小腿的脚腕,连接小腿和大腿的膝盖。
这些连接部的运动信息(即所述第二类运动信息),可能不方便直接检测或者一定程度上依赖其相邻的其他局部,故可以根据其所连接的其他局部来确定所述第二类运动信息。
在本实施例中,所述S142还包括:会根据连接部的类型,确定出控制方式,基于该控制方式控制受控模型对应的连接部的运动。
例如,手腕的侧向旋转,该侧向为上臂到手部的延伸方向,从视觉效果上看是手腕在侧向旋转,实质上臂旋转导致的。再例如,脚腕的侧向旋转,该侧向为小腿的延伸方向,脚腕的旋转实质上是由小腿带动的。
在另一些实施例中,所述根据所述连接部的类型,确定控制所述连接部的控制方式,包括:
在所述连接部为第一类连接部的情况下,确定采用第一类控制方式,其中,所述第一类控制方式,用于直接控制所述受控模型与所述第一类连接部相同的第一类受控局部。
在本实施例中,所述第一类连接部为其自身的旋转并非由其他局部带动。
第二连接部为所述连接部中所述第一类连接部以外的连接部,所述第二类连接部的旋转包含由其他局部牵引产生的旋转。
在一些实施例中,所述根据所述连接部的类型,确定控制所述连接部的控制方式,包括:在所述连接部为第二类连接部的情况下,确定采用第二类控制方式,其中,所述第二类控制方式,用于通过控制所述受控模型所述第二类连接部以外的局部间接控制所述第二类连接部。
该第二类连接部以外的局部包括但不限于直接与所述第二类连接部连接的局部,或者,间接与所述第二类连接部连接的局部。例如,在手腕侧向旋转时,可能是整个上肢在运动,则肩膀及肘部都在旋转,如此,可以通过控制肩膀和/或肘部的侧向旋转,间接控制所述手腕的旋转。
在一些实施例中,所述根据所述控制方式及所述第二类运动信息,控制第一类受控局部的运动,包括:
在所述控制方式为所述第二类控制方式的情况下,分解所述第二类运动信息获得所述连接部由牵引部牵引所述连接部旋转的第一类旋转信息;
根据所述第一类旋转信息,调整所述牵引部的运动信息;
利用所述牵引部的调整后的运动信息,控制所述受控模型中牵引部的运动,以间接控制所述连接部的运动。
在本实施例中,所述牵引部为直接与所述第二类连接部连接的局部。以手腕为所述第二类连接部为例,则所述牵引部为所述手腕之上的手肘或上臂。若以脚腕为所述第二类连接部为例,则所述牵引部为所述手腕之上的膝盖或大腿根部。
在本实施例中,第一类旋转信息并非是第二类连接部自身运动所产生的旋转信息,而是由与第二类连接部连接的其他局部(即牵引部)的运动牵引第二类连接部使得第二类连接部相对于目标的特定参考点(例如,人体中心)所产生的运动信息。
在本实施例中,所述牵引部为直接与所述第二类连接部连接的局部。以手腕为所述第二类连接部为例,则所述牵引部为所述手腕之上的手肘甚至肩部。若以脚腕为所述第二类连接部为例,则所述牵引部为所述脚腕之上的膝盖甚至大腿根部。
手腕沿着肩部、手肘到手腕的直线方向的侧向旋转,可能是由肩部带动或者是手肘带动的旋转,而在检测运动信息时,是通过手腕的运动引起的,如此手腕的侧向旋转信息实质应该赋值给手肘或肩部,通过这种传递赋值就实现了对手肘或肩部的运动信息的调整;利用调整后的运动信息控制受控模型中手肘或肩部的运动,如此,手肘或肩部所对应的侧向旋转,从图像的效果栏看,会由受控模型的手腕来体现;从而实现了受控模型对目标运动的精准模拟。
在一些实施例中,所述方法还包括:
分解所述第二类运动信息,获得所述第二类连接部相对于所述牵引部旋转的第二类旋转信息;
利用所述第二类旋转信息,控制所述受控模型所述连接部相对于所述牵引部的旋转。
在本实施例中,首先通过第二类连接部的特征,例如,2D坐标或3D坐标可以知道第二类连接部相对于预定姿态的运动信息,该运动信息称之为第二运动信息。所述第二类运动信息包括但不限于旋转信息。
所述第一类旋转信息可为提取旋转信息的信息模型直接根据图像的特征得到的信息,而第二类旋转信息是通过调整所述第一类旋转信息得到的旋转信息。在一些实施例中,所述第一类连接部包括:手肘;膝盖;和/或,所述第二类连接部包括:手腕;脚腕。
在另一些实施例中,若所述第二类连接部为手腕,对应于所述手腕的牵引部包括:上臂;和/或,若所述第二类连接部为脚腕,对应于所述脚腕的牵引部包括:小腿。
在一些实施例中,所述第一类连接部包括连接头部和躯干的脖子。
在还有一些实施例中,所述根据所述至少两个局部的特征及所述连接部的第一运动约束条件,确定所述至少两个局部的连接部的第二类运动信息,包括:
根据所述至少两个局部的特征,确定所述至少两个局部的朝向信息;
根据至少两个局部的朝向信息,确定所述连接部的备选朝向信息;
根据所述备选朝向信息中选择出满足所述第一运动约束条件的所述连接部的第二类运动信息。
在一些实施例中,所述根据至少两个局部的朝向信息,确定所述连接部的备选朝向信息,包括:
根据至少两个局部的朝向信息,确定所述连接部的第一备选朝向和第二备选朝向。
两个局部的朝向信息之间可能形成有两个夹角,在本实施例中旋转夹角满足所述第一运动约束条件的夹角作为所述第二类运动信息。
例如,人脸的朝向和躯干的朝向之间形成两个夹角,这两个夹角之和为180度;假设这两个夹角分别是第一夹角和第二夹角;而连接人脸和躯干的脖子的第一运动约束条件为:-90至90度之间,则超过90的角度则被排除在第一运动约束条件之外;如此,可以减少在受控模型模拟目标运动过程中,出现旋转角度出现顺时针或逆时针超过90度,例如,120度、180的异常情况。
例如,以脖子为例,脸部朝右,则对应的脖子的朝向可能是朝右90度或者朝左270度,但是根据人体的生理构造,人体的脖子朝向的改变可能无法是通过左旋270度到使得脖子朝右。此时,脖子的朝向为:朝右90度及朝左270度都是备选朝向信息,需要进一步确定脖子的朝向信息,需要根据前述的第一运动约束条件来确定。在本例中,脖子朝右90度为脖子的目标朝向信息,并根据脖子的朝右90度,得到脖子当前相对于正脸的第二类运动信息为向右旋转90度。
在一些实施例中,所述根据所述备选朝向信息中选择出满足所述第一运动约束条件的所述连接部的第二类运动信息,包括:
从所述第一备选朝向信息和第二备选朝向信息中,选择出位于朝向改变约束范围内的目标朝向信息;
根据所述目标朝向信息确定所述第二类运动信息。
此处的目标朝向信息即为满足所述第一运动约束条件的信息。
在一些实施例中,所述根据所述至少两个局部的特征,确定所述至少两个局部的朝向信息,包括:
获取所述至少两个局部的每一个局部的第一关键点和第二关键点;
获取所述至少两个局部的每一个局部的第一参考点,其中,所述第一参考点为所述目标内的预定关键点;
基于所述第一关键点和所述第一参考点生成第一向量,并基于所述第二关键点和所述第一参考点生成第二向量;
基于所述第一向量和所述第二向量,确定所述至少两个局部的每一个局部的朝向信息。
若所述第一局部为人体的肩部;所述第一局部的第一参考点可为所述目标的腰部关键点或两胯的关键点的中点。所述第二局部为人脸,所述第二局部的第一参考点可为人脸所连接脖子和肩部的连接点。
在一些实施例中,所述基于所述两个向量,确定所述至少两个局部的每一个局部的朝向信息,包括:
叉乘一个局部的所述第一向量和所述第二向量,得到对应局部所在平面的法向量。
若该法向量确定了,则该局部所在平面的朝向也确定了。
在一些实施例中,所述基于所述特征,确定所述至少两个局部的第一类运动信息,包括:
获取第一类连接部相对于第二参考点的第三3D坐标;
根据所述第三3D坐标获得所述第一类连接部的绝对旋转信息;
所述根据所述第一类运动信息,控制受控模型对应局部的运动,包括:
基于所述绝对旋转信息,控制所述受控模型的对应第一类连接部的运动。
在一些实施例中,所述第一参考点可为目标的支架关键点中一个,目标以人为例,则该第二参考点可为所述第一类连接部所连接的局部的关键点。例如,以脖子为例,则第二参考点可为脖子所连接的肩部的关键点。
在另一些实施例中,所述第二参考点可和所述第一参考点相同,例如,第一参考点和第二参考点均可为人体的根节点,人体的根节点可为人体胯部两个关键点连线的中点。该根节点包括但不限于图8A所示的关键点0。图8A为人体的骨架示意图,在图8A包含有标号0至16共17个骨架关节点。
在另一些实施例中,所述基于所述绝对旋转信息,控制所述受控模型的对应第一类连接部的运动,还包括:
根据所述目标中多个所述第一类连接部之间的牵引层级关系,分解所述绝对旋转信息,获得相对旋转信息;
基于所述相对旋转信息,控制所述受控模型中对应第一类连接部的运动。
在一些实施例中,所述基于所述绝对旋转信息,控制所述受控模型的对应第一类连接部的运动,还包括:
根据第二运动约束条件,校正所述相对旋转信息;
所述基于所述相对旋转信息,控制所述受控模型中对应第一类连接部的运动,包括:
基于校正后的所述相对旋转信息,控制所述受控模型中所述第一类连接部的运动。
在一些实施例中,所述第二运动约束条件包括:所述第一类连接部的可旋转角度。
在一些实施例中,所述方法还包括:
对所述第二类运动信息进行姿势缺陷校正,获得校准后的第二类运动信息;
所述根据所述第二类运动信息,控制所述受控模型的连接部的运动,包括:
利用所述校准后的第二类运动信息,控制所述受控模型的连接部的运动。
例如,在一些用户存在一些形体不是很标准的问题,走路的不协调问题等。为了使得受控模型直接模仿出现比较怪异的动作等问题,在本实施例中,首先都会对第二类运动信息进行姿势缺陷校正,获得校准后的第二类运动信息。
如图5A、图5B及图5C所示,图像左边的小图是采集的图像,该图像中包括人体的受控模型。该用户的手部在运动,从图5A到图5B,再从图5B到图5C,用户的手部在运动,受控模型的手也跟随在运动。用户的手部运动在图5A至图5C中依次从握拳、伸掌和伸出食指进行变化,而受控模型模仿用户的手势从握拳、伸掌和伸出食指变化。
图6A、图6B及图6C所示,图像左边的小图是采集的图像,该图像中包括人体的受控模型。图6A到图6C,用户向图像右侧迈腿、向图像左迈腿、最后站直;受控模型也模拟用户进行脚部运动。
在一些实施例中,所述步骤S120可包括:基于2D图像,获取所述肢体的第一2D坐标;所述步骤S130可包括:基于所述第一2D坐标和2D坐标到3D坐标的转化关系,获得与所述第一2D坐标对应的第一3D坐标。
2D坐标为平面坐标系内的坐标,3D坐标为3D坐标系内的坐标。2D坐标能够表征关键点在平面内的坐标,而3D坐标表征的是立体空间内的坐标。
该转换关系可为各种类型预先设定的转换函数,例如,以图像采集模组所在位置为虚拟视点,设定采集目标与图像采集模组为预定距离时所对应的虚拟的3D空间,将2D坐标投影到该3D空间内,就可以得到与所述第一2D坐标对应的第一3D坐标。
在另一些实施例中,所述步骤S120可包括:基于3D图像,获取所述目标的肢体的骨架关键点的第二3D坐标;所述步骤S130可包括:基于所述第二3D坐标获得第三2D坐标。
例如,在步骤S110中直接获取的3D图像,该3D图像包括:2D图像和2D图像对应的深度图像。2D图像可以提供骨架关键点在xoy平面内的坐标值,深度图像中的深度值,可以提供骨架关键点在z轴上的坐标。z轴垂直于xoy平面内。
基于所述第二3D坐标,调整肢体在所述3D图像中被遮挡部分所对应骨架关键点的3D坐标从而获得所述第三2D坐标。
进一步地,所述基于所述第二3D坐标获得第三2D坐标,包括:
基于所述第二3D坐标,调整肢体在所述3D图像中被遮挡部分所对应骨架关键点的3D坐标从而获得所述第三2D坐标。
例如,用户侧身朝向图像采集模组,则双腿膝盖位置在深度图像中深度值是一样的,此时与图像采集模组更近的膝盖就遮挡了与图像采集模组相对较远的膝盖。为了减少这种遮挡导致的深度图像中3D坐标提取的不精确的问题,会利用深度学习模型或机器学习模型等调整骨架关键点的3D坐标,从而减少基于第二3D坐标获得精确表征第一类运动信息的第四3D坐标。
在一些实施例中,所述第一类运动信息包括:四元数。
利用四元数可以精准表征第二类局部的空间位置和/或各个方向上的旋转。
该第一类运动信息除了利用四元数进行表示,还可以是欧拉坐标或拉格朗日坐标之类等坐标。
如图7所示,本实施例提供一种图像处理装置,包括:
第一获取模块110,用于获取图像;
第二获取模块120,用于基于所述图像获取身体的肢体的特征,其中,所述肢体包括:上肢和/或下肢;
第一确定模块130,用于基于所述特征,确定所述肢体的第一类运动信息;
控制模块140,用于根据所述第一类运动信息,控制受控模型的肢体的运动。
在一些实施例中,所述第一获取模块110、第二获取模块120、第一确定模块130及控制模块140可为程序模块,该程序模块被处理器执行后,能够实现图像的火速、肢体的特征确定、第一类运动信息的确定及受控模型的运动控制。
在另一些实施例中,所述第一获取模块110、第二获取模块120、第一确定模块130及控制模块140可为软硬结合模块;所述软硬结合模块可包括各种可编程阵列;所述可编程阵列包括但不限于现场可编程阵列或复杂可编程阵列。
在还有一些实施例中,所述第一获取模块110、第二获取模块120、第一确定模块130及控制模块140可为纯硬件模块,所述纯硬件模块包括但不限于专用集成电路。
在一些实施例中,所述第一确定模块130,具体用于检测所述图像中肢体的关键点的位置信息;根据所述位置信息,确定所述第一类运动信息。
在一些实施例中,所述装置还包括:
检测模块,用于检测所述图像中身体骨架的关键点的位置信息;
所述第二获取模块120,具体用于基于所述身体骨架的关键点的位置信息,确定出所述肢体的关键点的位置信息。
在一些实施例中,所述第一确定模块130,具体用于根据所述肢体的关键点的位置信息,在所述图像中确定出包含肢体的第一局部的位置框;基于所述位置框,检测所述第一局部的关键点的位置信息;基于所述位置信息,获得所述第一局部的第一类运动信息。
在一些实施例中,所述第一确定模块130,具体用于根据手部关键点的位置信息,在所述图像中确定出包含手部的位置框。
在一些实施例中,所述第一确定模块130,还用于基于所述位置框检测所述手部上指关节所对应关键点的位置信息和/或手指指尖所对应关键点的位置信息。
在一些实施例中,所述第一确定模块130,还用于基于所述位置信息,获得所述手部的手指的运动信息。
在一些实施例中,所述第一确定模块130,还用于根据所述肢体的关键点的位置信息,确定出所述肢体的第二局部的第一类运动信息。
在一些实施例中,所述装置还包括:
第二确定模块,用于基于所述肢体中通过连接部所连接的两个局部的关键点的位置信息,确定出所述连接部的第二类运动信息。
在一些实施例中,所述控制模块140,具体用于根据所述至少两个局部的特征及连接部的第一运动约束条件,确定所述至少两个局部的连接部的第二类运动信息;根据所述第二类运动信息,控制所述受控模型的连接部的运动。
在一些实施例中,所述控制模块140,还用于根据所述连接部的类型,确定控制所述连接部的控制方式;根据所述控制方式及所述第二类运动信息,控制所述受控模型的连接部的运动。
在一些实施例中,所述控制模块140,还用于在所述连接部为第一类连接部的情况下,确定采用第一类控制方式,其中,所述第一类控制方式,用于直接控制所述受控模型与所述第一类连接部相同的第一类受控局部。
在一些实施例中,所述控制模块140,还用于在所述连接部为第二类连接部的情况下,确定采用第二类控制方式,其中,所述第二类控制方式,用于通过控制所述受控模型所述第二类连接部以外的局部间接控制所述第二类连接部。
在一些实施例中,所述控制模块140,还用于在所述控制方式为所述第二类控制方式的情况下,分解所述第二类运动信息获得所述连接部由牵引部牵引所述连接部旋转的第一类旋转信息;根据所述第一类旋转信息,调整所述牵引部的运动信息;利用所述牵引部的调整后的运动信息,控制所述受控模型中牵引部的运动,以间接控制所述连接部的运动。
在一些实施例中,所述控制模块140,还用于分解所述第二类运动信息,获得所述第二类连接部相对于所述牵引部旋转的第二类旋转信息;利用所述第二类旋转信息,控制所述受控模型所述连接部相对于所述牵引部的旋转。
在一些实施例中,所述第一类连接部包括:手肘;膝盖;
和/或,
所述第二类连接部包括:手腕;脚腕。
在一些实施例中,若所述第二类连接部为手腕,对应于所述手腕的牵引部包括:上臂或前臂;
和/或,
若所述第二类连接部为脚腕,对应于所述脚腕的牵引部包括:大腿或小腿。
在一些实施例中,所述第二获取模块120,具体用于基于2D图像,获取所述肢体的第一2D坐标;
所述第一确定模块130,用于基于所述第一2D坐标和2D坐标到3D坐标的转化关系,获得与所述第一2D坐标对应的第一3D坐标。
在一些实施例中,所述第二获取模块120,具体用于基于3D图像,获取所述目标的肢体的骨架关键点的第二3D坐标;
所述第一确定模块130,具体用于基于所述第二3D坐标获得第三2D坐标。
在一些实施例中,所述第一确定模块130,具体用于基于所述第二3D坐标,调整肢体在所述3D图像中被遮挡部分所对应骨架关键点的3D坐标从而获得所述第三2D坐标。
在一些实施例中,所述第一类运动信息包括:四元数。
以下结合上述任意实施例提供几个具体示例:
示例1:
本实例提供一种图像处理方法,包括:
摄像头采集一张张图片,图片送进来,图片里有一个人像,先检测到人像,然后人的手和手腕都会检测到关键点,然后检测出手框,之后得到人体的骨架关键点14个和63个轮廓点,主要用14个点,检测完关键点后知道手的位置,然后计算出手框。此处的手框对应于前述的位置框。
手框的目标是将手框进去,一般不会把手腕框进去,但有时候也不这么严格,比如倾斜位置时可能包括部分手腕。检测手腕的关键点,从不同角度看可能位于手腕的不同位置,但只有一个点,相当于手与手臂连接处的中心点。
现在有人体的关键点和人手的关键点,有一个网络可以直接从2D点算出3D点。网络的输入是2D点,输出是3D点。
要把这个3D骨架去驱动一个虚拟的模型,就需要得到骨架的角度参数,关键点不能直接驱动受控模型。例如,根据手臂三个关键点的位置算出手臂弯曲的角度,然后再把角度赋给Avatar,所以你人在做什么动作的时候,Avatar就会做同样的动作。有一种表达角度的工具:四元数。就把四元数赋给Avatar模型。此处的Avatar模型为前述受控模型的一种。
对于3D情况,加上飞行时间(Time Of Flight,TOF)信息(TOF信息为深度信息的原始信息)后,就是加了深度信息,即z轴的深度值。加上原来的2D图像的图像坐标系所在平面xoy,就能找到对应的z多深,因此将xyz作为输入,这里的xyz可能会有遮挡。经过神经网络等深度模型学习后,会把遮挡的点补齐,如果原有的深度可以直接沿用。经过网络学习后,可以得到完整的人体骨架。用TOF后效果会更好,因为RGB没有深度感知,有了深度信息后输入信息更强,精度会更高。
本示例中所述受控模型可为游戏场景下的游戏角色;网络授课场景下的网络教育视频中的教师模型;虚拟主播场景下的虚拟主播。总之,所述受控模型是根据应用场景确定的,应用场景不同,则受控模型的模型不同和/或外观不同。
例如,在传统的数学、物理等讲台授课场景,则教师模型则衣着服饰比较稳重,可能是西服等比较符合教师身份的服饰。再比如,针对瑜伽或体操等运动授课场景,则受控模型穿着是运动服饰。
示例2:
本实例提供一种图像处理方法,包括:
采集图像,该图像包括目标,该目标包括但不限于人体;
检测人体的躯干关键点和肢体关键点,此处的躯干关键点和/或肢体关键点都可为3D关键点,是由3D坐标表示的;该3D可以包括从2D图像中检测的2D坐标,然后利用2D坐标到3D坐标的转换算法得到的2D坐标;该3D坐标还可以是利用3D摄像头采集的3D图像中提取的3D坐标。此处的肢体关键点可包括:上肢关键点和/或下肢关键点;例如,以手部为例,则该上肢关键点的手部关键点包括但不限于,手腕关节的关键点,指掌关节的关键点、指关节的关键点、指尖关键点;这些关键点的位置能够反映手部和手指的运动。
将躯干关键点转换为表征躯干运动的四元数,该四元数可以称之为躯干四元数;
将肢体关键点转换为表征肢体运动的四元数,该四元数据可以称之为肢体四元数;
利用躯干四元数控制受控模型的躯干运动;
利用肢体四元数控制受控模型的肢体运动。
例如,所述脸部关键点可包括:106个关键点;
所述躯干关键点和肢体关键点可包括:14个关键点或17个关键点。在图8A中展示有17个关键点。
本示例中所述受控模型可为游戏场景下的游戏角色;网络授课场景下的网络教育视频中的教师模型;虚拟主播场景下的虚拟主播。总之,所述受控模型是根据应用场景确定的,应用场景不同,则受控模型的模型不同和/或外观不同。
例如,在传统的数学、物理等讲台授课场景,则教师模型则衣着服饰比较稳重,可能是西服等比较符合教师身份的服饰。再比如,针对瑜伽或体操等运动授课场景,则受控模型穿着是运动服饰。
示例3:
本示例提供一种图像处理方法,包括:
获取图像,该图像包含目标,该目标可为人体;
根据所述图像,获得目标在三维空间内3D姿势,该3D姿势可以通过人体的骨架关键点的3D坐标来表示;
获取人体的关节在相机坐标系下的绝对旋转参数,该绝对旋转位置可以由在相机坐标系下的坐标;
根据该坐标得到关节的坐标方向;
根据层级关系,确定出关节的相对旋转参数,确定所述相对参数可具体可包括:确定出关节的关键点相对于人体的根节点的位置;该相对旋转参数可以用于四元数表示;此处的层级关系,可以关节之间的牵引关系,例如,肘关节的运动在一定程度上会牵引手腕关节的运动,肩关节的运动也会牵引肘关节的运动等;所述层级关系可为根据人体的关节预先确定的。
利用该四元数控制受控模型的旋转。
例如,以下是一种层级关系的举例:
第一层级:盆骨;
第二层级:腰部;
第三层级:大腿(例如,左大腿、右大腿);
第四层级:小腿(例如,左小腿、右小腿);
第五层级:脚部。
再例如,以下是另一种层级关系;
第一层级:胸;
第二层级:脖子;
第三层级,头。
进一步地,例如,以下是再一种层级关系:
第一层级:锁骨,对应于肩部;
第二层级:上臂;
第三层级:前臂(又称为小臂);
第四层级:手部。
第一层级至第五层级,层级关系依次降低;高层级的局部的运动会影响低层级的局部的运动。故,牵引部的层级高于连接部的层级。
在确定所述第二类运动信息时,首先,获取各层级的局部的关键点的运动信息,然后基于层级关系,确定出低层级的局部的关键点相对于高层级的关键点的局部的运动信息(即所述相对旋转信息)。
例如,以四元数作表征运动信息,则相对旋转信息可以用如下技术公式进行表示:
每个关键点相对于相机坐标系的旋转四元数,然后再计算每个关键点相对于父关键点的旋转四元数qi
父关键点parent(i)为当前关键点i上一层级的关键点。Q
i为当前关键点i相对于相机坐标系的旋转四元数;
为上一层级的关键点的逆旋转参数。例如,Q
parent(i)为上一层级的关键点的旋转参数,且旋转角度为90度;则
的旋转角度为-90度。
前述利用四元数控制受控模型的各个关节的运动,可包括:利用qi控制受控模型的各个关节的运动。
一种进一步处理:所述方法还包括:
将所述四元数转换为第一欧拉角;
对第一欧拉角做变换,得到位于约束条件内的第二欧拉角;该约束条件可为对第一欧拉角进行角度限制;
获得与第二欧拉角对应的四元数,再利用该四元数控制所述受控模型的旋转。所述获得与第二欧拉角对应的四元数,包括:例如,直接将该第二欧拉角转换为四元数。
例如,以人体为例进行说明,通过人体检测可以检测出17个关节的关键点,在对应于左手和右手设置了2个共19个关键点。图8A为17个关键点的骨架示意图。图8B为19个关键点的骨架示意图。图8A形成图8B所示的骨骼示意图。图8B所示的骨骼可对应于19个关键点,分别指代以下骨骼:
盆骨、腰部、左大腿、左小腿、左脚;右大腿、右小腿、右脚、胸部、脖子、头部、左锁骨、右锁骨、右上臂、右前臂、右手部、左上臂、左前臂、左手。
首先通过图像中的人体关节的关键点的检测可以得到在图像坐标系17个关键点的坐标,具体可如下:
S={x1,y1,z1)...(x17,y17,z17)};
(xi,yi,zi)可为第i个关键点的坐标,其中,i的取值从0到16。
这19个关节的关键点在各自局部坐标系下的坐标可如下定义:
A={(p0,q0),...,(p18,q18)}。
在计算各个关节所对应关键点的四元数的流程可如下:
需要确定的是每个节点局部坐标系的坐标轴方向。对于每根骨头,从子节点指向父节点的方向为x轴;使一个节点所连接的两个骨头所在平面的垂直方向为z轴;若无法判断旋转轴,以人体面朝的方向为y轴;图9所示A节点所在局部坐标系的示意图。
本示例以左手坐标系为了进行说明,具体实现时还可以采用右手坐标系。
上述表中(i-j)表示i指向j的向量,x表示叉乘。
求解所述第一欧拉角的过程如下:
计算出关节点局部旋转四元数之后,我们首先将其转换为欧拉角,默认使用x-y-z的顺序。
设q0为实数部分;q1,q2,q3均为虚数部分。
X=atan2(2*(q0*q1-q2*q3),1-2*(q1*q1+q2*q2))
Y=asin(2*(q1*q3+q0*q2))且Y的取值在-1至1之间。
Z=atan2(2*(q0*q3-q1*q2),1-2*(q2*q2+q3*q3))。
X为第一方向上的欧拉角;Y为第二方向上的欧拉角;Z为第三方向上的欧拉角。第一方向、第二方向和第三方向中的任意两个垂直。
然后可以对(X,Y,Z)三个角度做限制,超出限制范围的话,则限定在边界值,得到调整之后的第二欧拉角(X',Y',Z')。恢复成新的局部坐标系旋转四元数,求解所述第一欧拉角的过程如下:
计算出关节点局部旋转四元数之后,我们首先将其转换为欧拉角,默认使用x-y-z的顺序。
不妨设q0为实数部分;q1,q2,q3均为虚数部分。
X=atan2(2*(q0*q1-q2*q3),1-2*(q1*q1+q2*q2))
Y=asin(2*(q1*q3+q0*q2))且Y的取值在-1至1之间。
Z=atan2(2*(q0*q3-q1*q2),1-2*(q2*q2+q3*q3))。
X为第一方向上的欧拉角;Y为第二方向上的欧拉角;Z为第三方向上的欧拉角。第一方向、第二方向和第三方向中的任意两个垂直。
然后可以对(X,Y,Z)三个角度做限制,超出限制范围的话,则限定在边界值,得到调整之后的第二欧拉角(X',Y',Z')。恢复成新的局部坐标系旋转四元数。
另一种进一步处理:所述方法还包括:
对第二欧拉角进行姿势优化调整,例如,对第二欧拉角中的某一些角度进行调整,例如基于预先设定规则,调整为姿势优化的欧拉角调整从而得到第三欧拉角;则所述获得与第二欧拉角对应的四元数,可包括:对第三欧拉角转换为控制受控模型的四元数。
再一种进一步处理:所述方法还包括:
将第二欧拉角转换为四元数之后,对转换后的四元数据进行姿势优化处理,例如,基于预设规则进行调整再次得到调整后的四元数,根据最终调整后的四元数控制所述受控模型。
在还有一些实施例中,在对第二欧拉角或第二欧拉角转换得到的四元数进行调整时,可以是基于预设规则的调整,也可以是由深度学习模型自行进行优化调整;具体的实现方式有很多种,此处就不做进一步限定了。
前处理:
根据采集的人体的尺寸,修改受控模型胯部和/或肩部的宽度;
调整人体的整体姿态,例如,人体站立姿态;进行站直调整,进行挺腹调整;例如,有人站立时会挺腹,通过挺腹调整可以使得受控模型不会模拟用户的挺腹动作。例如,有人站立时会驼背,通过驼背调整可以使得受控模型不会模拟用户的驼背动作等。
示例4:
本示例提供一种图像处理方法,包括:
获取图像,该图像包含目标,该目标可包括人体、人体上肢、人体下肢的至少一个;
根据目标关节在图像坐标系中的位置信息获取目标关节的坐标系;
根据肢体局部在图像坐标系中的位置信息,获取会牵引目标关节运动的肢体局部的坐标系;
基于所述目标关节的坐标系和肢体局部的坐标系,确定目标关节相对于肢体局部的旋转,得到旋转参数;该旋转参数包括目标关节的自旋参数和由肢体局部牵引的旋转参数;
利用第一角度限制对由肢体局部牵引的旋转参数进行限制,得到最终牵引旋转采参数;
根据牵引旋转参数,调整肢体局部的旋转参数;
根据第一肢体的坐标系与调整后旋转参数的肢体局部的相对旋转参数;
对相对旋转参数进行第二角度限制,得到限制后的相对旋转参数;
将限制后的旋转参数,得到四元数;
根据该四元数控制受控模型的目标关节的运动。
例如,若对人体上肢进行处理时,获取图像坐标系下获得手部的坐标系,并且得到小臂的坐标系,并得到上臂的坐标系;此时的目标关节为手腕关节;
确定手部相对于小臂的旋转分解成自旋和被牵引的旋转;
将被牵引的旋转传递给小臂,具体如,被牵引的旋转赋值给小臂对应方向的旋转;利用小臂的第一角度限制,进行小臂的最大旋转进行限制;
确定手部相对于被调整后的小臂的旋转,得到相对旋转参数;
对该相对旋转参数进行第二角度限制,得到手部相对于小臂的旋转。
若对人体下肢进行处理时,获取图像坐标系下获得脚部的坐标系,并且得到小腿的坐标系,并得到大腿的坐标系;此时的目标关节为脚腕关节。
确定脚部相对于小腿的旋转分解成自旋和被牵引的旋转;
将被牵引的旋转传递给小腿,具体如,被牵引的旋转赋值给小腿对应方向的旋转;利用小腿的第一角度限制,进行小腿的最大旋转进行限制;
确定脚部相对于被调整后的小腿的旋转,得到相对旋转参数;
对该相对旋转参数进行第二角度限制,得到脚部相对于小腿的旋转。
如图10所示,本申请实施例提供了一种图像设备,包括:
存储器,用于存储信息;
处理器,分别与显示器及所述存储器连接,用于通过执行存储在所述存储器上的计算机可执行指令,能够实现前述一个或多个技术方案提供的图像处理方法,例如,如图1和/或图2所示的图像处理方法。
该存储器可为各种类型的存储器,可为随机存储器、只读存储器、闪存等。所述存储器可用于信息存储,例如,存储计算机可执行指令等。所述计算机可执行指令可为各种程序指令,例如,目标程序指令和/或源程序指令等。
所述处理器可为各种类型的处理器,例如,中央处理器、微处理器、数字信号处理器、可编程阵列、数字信号处理器、专用集成电路或图像处理器等。
所述处理器可以通过总线与所述存储器连接。所述总线可为集成电路总线等。
在一些实施例中,所述终端设备还可包括:通信接口,该通信接口可包括:网络接口、例如,局域网接口、收发天线等。所述通信接口同样与所述处理器连接,能够用于信息收发。
在一些实施例中,所述终端设备还包括人机交互接口,例如,所述人机交互接口可包括各种输入输出设备,例如,键盘、触摸屏等。
在一些实施例中,所述图像设备还包括:显示器,该显示器可以显示各种提示、采集的人脸图像和/或各种界面。
本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行代码;所述计算机可执行代码被执行后,能够实现前述一个或多个技术方案提供的图像处理方法,例如如图1和/或图4所示的图像处理方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成局部相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的局部或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或局部步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。