数据处理方法及装置、电子设备及存储介质
技术领域
本发明涉及信息技术领域,尤其涉及一种数据处理方法及装置、电子设备及存储介质。
背景技术
随着信息技术的发展,出现了3D视频和3D体感游戏等基于所述3D坐标的交互。3D坐标相对于2D坐标多了一个方向的坐标值,如此,3D坐标比2D坐标能够具有多一个维度的交互。
例如,采集用户在3D空间内的移动,并转换为对游戏角色在前后、左右、上下等三个相互垂直方向上的控制。若采用2D坐标来控制,用户可能需要输入至少两个操作,如此,简化了用户控制,提升了用户体验。
但是这种基于所述3D坐标的交互,需要相应的3D设备,例如,用户需要佩戴检测其在三维空间内运动的3D体感设备(可穿戴设备);或者,需要利用3D摄像头来采集用户在3D空间内的移动。不管是通过3D体感设备还是3D摄像头来确定用户在3D空间内的移动,显然硬件成本都比较高。且利用3D摄像头来获取用户在3D空间内的移动,由于深度采集的精确度自身不高时,会导致基于所述3D坐标的交互的精确度下降。
发明内容
有鉴于此,本发明实施例期望提供一种数据处理方法及装置、电子设备及存储介质。
本发明的技术方案是这样实现的:
一种数据处理方法,包括:
获取目标对象的2D图像;
根据所述2D图像,获取第一关键点的第一2D坐标和第二关键点的第二2D坐标,其中,所述第一关键点为所述目标对象的第一局部在所述2D图像中的成像点;所述第二关键点为所述目标对象的第二局部在所述2D图像中的成像点;
基于第一2D坐标及所述第二2D坐标,确定相对坐标,其中,所述相对坐标用于表征所述第一局部和所述第二局部之间的相对位置;
将所述相对坐标投影到虚拟三维空间内并获得与所述相对坐标对应的3D坐标,其中,所述3D坐标用于控制受控设备执行预定操作。
基于上述方案,所述第一2D坐标和所述第二2D坐标为位于第一2D坐标系内的2D坐标。
基于上述方案,所述基于第一关键点信息及所述第二关键点信息,确定所述第一局部的成像相对于所述第二局部的成像的相对坐标,包括:
根据所述第二2D坐标,构建第二2D坐标系;
将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
基于上述方案,所述基于第一关键点信息及所述第二关键点信息,确定所述第一局部的成像相对于所述第二局部的成像的相对坐标,还包括:
根据所述第一2D坐标系和第二2D坐标系,确定从所述第一2D坐标系映射到所述第二2D坐标系的转换参数;基于所述转换参数,将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
基于上述方案,所述根据所述第一2D坐标系和第二2D坐标系,确定从第一2D坐标系映射到所述第二2D坐标系的转换参数,包括:确定所述2D图像在第一方向上的第一尺寸,确定所述第二局部在第一方向上的第二尺寸;
根据所述第一尺寸及所述第二尺寸之间的第一比值;
根据所述第一比值确定所述转换参数。
基于上述方案,所述根据所述第一2D坐标系和第二2D坐标系,确定从第一2D坐标系映射到所述第二2D坐标系的转换参数,还包括:
确定所述2D图像在第二方向上的第三尺寸,确定所述第二局部在第二方向上的第四尺寸,其中,所述第二方向垂直于所述第一方向;
根据所述第三尺寸与所述第四尺寸之间的第二比值;
所述根据所述第一比值确定所述转换参数,包括:
结合所述第一比值和第二比值,确定所述转换参数。
基于上述方案,所述基于所述转换参数,将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标,包括:
基于所述转换参数及所述第一2D坐标系的中心坐标,将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
基于上述方案,所述将所述相对坐标投影到虚拟三维空间内并获得与所述相对坐标对应的3D坐标,包括:
对所述第三2D坐标进行归一化处理得到第四2D坐标;
结合所述第四2D坐标及所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标。
基于上述方案,所述对所述第三2D坐标进行归一化处理得到第四2D坐标,包括:
结合所述第二局部的尺寸及所述第二2D坐标系的中心坐标,对所述第三2D坐标进行归一化处理得到所述第四2D坐标。
基于上述方案,所述结合所述第四2D坐标及所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标,包括:
结合所述第四2D坐标、所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离及缩放比例,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标。
基于上述方案,所述方法还包括:
确定所述2D图像上所述目标对象的数目M;
所述根据所述2D图像,获取第一关键点的第一2D坐标和第二关键点的第二2D坐标,包括:
根据所述2D图像,获得每一个所述目标对象的所述第一关键点的第一2D坐标和所述第二关键点的第二2D坐标,以获得M组所述3D坐标。
基于上述方案,所述方法包括:
在第一显示区域内显示基于所述3D坐标的控制效果;
在与所述第一显示区域对应的第二显示区域内显示所述2D图像。
基于上述方案,所述在与所述第一显示区域对应的第二显示区域内显示所述2D图像,包括:
根据所述第一2D坐标,在所述第二显示区域内显示的所述2D图像上显示所述第一关键点的第一指代图形;
和/或,
根据所述第二2D坐标,在所述第二显示区域内显示的所述2D图像上显示所述第二关键点的第二指代图形。
一种数据处理装置,包括:
第一获取模块,用于获取目标对象的2D图像;
第二获取模块,用于根据所述2D图像,获取第一关键点的第一2D坐标和第二关键点的第二2D坐标,其中,所述第一关键点为所述目标对象的第一局部在所述2D图像中的成像点;所述第二关键点为所述目标对象的第二局部在所述2D图像中的成像点;
第一确定模块,用于基于第一2D坐标及所述第二2D坐标,确定相对坐标,其中,所述相对坐标用于表征所述第一局部和所述第二局部之间的相对位置;
投影模块,用于将所述相对坐标投影到虚拟三维空间内并获得与所述相对坐标对应的3D坐标,其中,所述3D坐标用于控制受控设备执行预定操作。
基于上述方案,所述第一2D坐标和所述第二2D坐标为位于第一2D坐标系内的2D坐标。
基于上述方案,所述第一确定模块,具体用于根据所述第二2D坐标,构建第二2D坐标系;将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
基于上述方案,所述第一确定模块还用于根据所述第一2D坐标系和第二2D坐标系,确定从所述第一2D坐标系映射到所述第二2D坐标系的转换参数;基于所述转换参数,将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
基于上述方案,所述第一确定模块,具体用于确定所述2D图像在第一方向上的第一尺寸,确定所述第二局部在第一方向上的第二尺寸;根据所述第一尺寸及所述第二尺寸之间的第一比值;根据所述第一比值确定所述转换参数。
基于上述方案,所述第一确定模块,还用于确定所述2D图像在第二方向上的第三尺寸,确定所述第二局部在第二方向上的第四尺寸,其中,所述第二方向垂直于所述第一方向;根据所述第三尺寸与所述第四尺寸之间的第二比值;结合所述第一比值和第二比值,确定所述转换参数。
基于上述方案,所述第一确定模块,具体用于基于所述转换参数及所述第一2D坐标系的中心坐标,将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
基于上述方案,所述投影模块,具体用于对所述第三2D坐标进行归一化处理得到第四2D坐标;结合所述第四2D坐标及所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标。
基于上述方案,所述投影模块,具体用于结合所述第二局部的尺寸及所述第二2D坐标系的中心坐标,对所述第三2D坐标进行归一化处理得到所述第四2D坐标。
基于上述方案,所述投影模块,具体用于结合所述第四2D坐标、所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离及缩放比例,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标。
基于上述方案,所述装置还包括:
第二确定模块,用于确定所述2D图像上所述目标对象的数目M;
所述第二获取模块,具体用于根据所述2D图像,获得每一个所述目标对象的所述第一关键点的第一2D坐标和所述第二关键点的第二2D坐标,以获得M组所述3D坐标。
基于上述方案,所述装置包括:
第一显示模块,用于在第一显示区域内显示基于所述3D坐标的控制效果;
第二显示模块,用于在与所述第一显示区域对应的第二显示区域内显示所述2D图像。
基于上述方案,所述第二显示模块,还用于根据所述第一2D坐标,在所述第二显示区域内显示的所述2D图像上显示所述第一关键点的第一指代图形;和/或,根据所述第二2D坐标,在所述第二显示区域内显示的所述2D图像上显示所述第二关键点的第二指代图形。
一种电子设备,包括:
存储器;
处理器,与所述存储器连接,用于通过执行存储在所述存储器上的计算机可执行指令实现前述任意技术方案提供的数据处理方法。
一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现前述任意技术方案提供的数据处理方法。
本发明实施例提供的技术方案,直接利用2D图像中目标对象的第一局部的第一关键点和第二局部的第二关键点之间的相对坐标,转换到虚拟三维空间内,从而得到相对坐标所对应的3D坐标;利用这种3D坐标与受控设备进行交互;而不用3D人体感应设备或者是深度摄像头来采集3D坐标,简化了基于3D坐标进行交互的硬件结构,节省了硬件成本。
附图说明
图1为本发明实施例提供的第一种数据处理方法的流程示意图;
图2为本发明实施例提供的一种视锥的示意图;
图3为本发明实施例提供的一种相对坐标的确定流程示意图;
图4为本发明实施例提供的第二种数据处理方法的流程示意图;
图5A为本发明实施例提供的一种显示效果示意图;
图5B为本发明实施例提供的另一种显示效果示意图;
图6为本发明实施例提供的一种数据处理装置的结构示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
如图1所示,本实施例提供一种数据处理方法,包括:
步骤S110:获取目标对象的2D图像;
步骤S120:根据所述2D图像,获取第一关键点的第一2D坐标和第二关键点的第二2D坐标,其中,所述第一关键点为所述目标对象的第一局部在所述2D图像中的成像点;所述第二关键点为所述目标对象的第二局部在所述2D图像中的成像点;
步骤S130:基于第一2D坐标及所述第二2D坐标,确定相对坐标,其中,所述相对坐标用于表征所述第一局部和所述第二局部之间的相对位置;
步骤S140:将所述相对坐标投影到虚拟三维空间内并获得与所述相对坐标对应的3D坐标;其中,所述3D坐标用于控制受控设备执行预定操作。
在本实施例中,获取的目标对象的2D图像,此处的2D图像可以用任意一个2D摄像头采集的图像。例如,利用普通RGB的摄像头采集的RGB图像或者,YUV图像;再例如,所述2D图像还可为BGRA格式的2D图像。在本实施例中,可以利用位于受控设备上的单目摄像头就可以完成所述2D图像的采集。或者,该单目摄像头还可以与所述受控设备连接的摄像头。该摄像头的采集区域和所述受控设备的观看区域至少部分重叠。例如,所述受控设备为智能电视等游戏设备,游戏设备包括显示屏,能够观看到所述显示屏的区域为所述观看区域,而所述采集区域为摄像头能够采集到的区域。优选地,所述摄像头的采集区域与所述观看区域重叠。
在本实施例中,所述步骤S110获取2D图像可包括:利用二维(2D)摄像头采集2D图像,或者,从采集设备接收2D图像。
所述目标对象可为:人体的手部和躯干部分。所述2D图像可为包含有人体的手部和躯干部分的成像。例如,所述第一局部为所述人体的手部,所述第二局部为所述躯干部分。再例如,所述第一局部可为眼睛的眼珠,所述第二局部可为整个眼睛。再例如,所述第一局部可为人体的脚部,第二局部可为人体的躯干。
在本实施例中,所述第二局部的成像可为提供所述第一局部的成像的参考面。在一些实施例中,在所述2D图像中所述第一局部的成像面积小于所述第二局部在所述2D图像中的成像面积。
在本实施例中,所述第一2D坐标和第二2D坐标均可为在第一2D坐标系中的坐标值。例如,所述第一2D坐标系可为所述2D图像所在平面构成的2D坐标系。
在步骤S130中结合,第一2D坐标和第二2D坐标确定出表征第一关键点与第二关键点之间相对位置的相对坐标。然后将该相对坐标投影到虚拟三维空间内。该虚拟三维空间可为预设的三维空间,得到该相对坐标在虚拟三维空间内的3D坐标。该3D坐标可以用于与显示界面相关的基于所述3D坐标的交互。
所述虚拟三维空间可为各种类型的虚拟三维空间,该虚拟三维空间的坐标范围可以从负无穷大一直到正无穷大。在该虚拟三维空间内可以设置有虚拟摄像机。图2所示为一种虚拟摄像机的视角所对应的视锥。该虚拟摄像机在本实施例中可为所述2D图像的物理摄像机在虚拟三维空间内的映射。所述视锥可包括:近夹面、顶面、右面及在图2中未标注的左面等。在本实施例中,所述虚拟三维空间的虚拟视点可位于所述近夹面上,例如,所述虚拟视点位于所述近夹面的中心点。根据如图2所示的视锥可以虚拟摄像机和视锥,可以将相对坐标转换到虚拟三维空间内得到所述3D坐标。
所述基于所述3D坐标的交互为:根据目标对象两个时刻在虚拟三维空间内的坐标变换进行操作控制。例如,以游戏角色的控制为例,所述基于所述3D坐标的交互包括:
基于前后两个时刻在虚拟三维空间内三个坐标轴上的变化量或变化率,控制游戏角色在对应的三个坐标轴上的参数。例如,以游戏角色的移动控制为例,游戏角色在三维空间内移动,可以前后移动、左右移动及上下跳动。用户的手部相对于躯干的相对坐标转换到三维空间内之后,根据两个时刻相对坐标转换到虚拟三维空间内的坐标变换量或变化率,分别控制游戏角色前后移动、左右移动及上下跳动。具体如,将相对坐标投影到虚拟三维空间内的x轴上的坐标,用于控制游戏角色前后移动,将相对坐标投影到虚拟三维空间内y轴上的坐标,用于控制游戏角色的左右移动,将相对坐标投影到虚拟三维空间内的z轴上的坐标,用于控制游戏角色上下跳动的高度。
在一些实施例中,显示界面内的显示图像至少可以分为:背景图层及前景图层,可以根据当前3D坐标在虚拟三维空间上z轴坐标位置,确定出该3D坐标是控制背景图层上的图形元素变换或执行对应的响应操作,还是控制前景图层上的图形元素变换或执行对应的响应操作。
在另一些实施例中,显示界面内的显示图像还可以分为:背景图层、前景图层位于背景图层和前景图层之间的一个或多个中间图层。同样地,根据当前得到的3D坐标中z轴的坐标值,确定3D坐标所作用的图层;再结合3D坐标在x轴和y轴的坐标值,确定3D坐标所作用的是该图层中的哪一个图形元素,从而进一步控制被3D坐标所作用的图形元素的变换或执行对应的响应操作。
当然以上,仅是对根据3D坐标进行基于所述3D坐标的交互的举例,具体的实现方式有很多种,不局限于上述任意一种。
所述虚拟三维空间可为预先定义的一个三维空间。具体如,根据所述采集2D图像的采集参数,预先定义了虚拟三维空间。所述虚拟三维空间可包括:虚拟成像平面及虚拟视点构成。所述虚拟视点与所述虚拟成像平面之间的垂直距离可根据所述采集参数中的焦距来确定。在一些实施例中,所述虚拟成像平面的尺寸可根据受控设备的控制平面的尺寸来确定。例如,所述虚拟成像平面的尺寸与所述受控设备的控制平面的尺寸正相关。该控制平面可等于接收基于所述3D坐标的交互的显示界面的尺寸。
如此,在本实施例中,通过相对坐标投影到虚拟三维空间内,就可以模拟获得了基于深度摄像头或者3D体感设备得到3D坐标进行基于所述3D坐标的交互的控制效果,直接沿用2D摄像头即可,显然降低了基于所述3D坐标的交互的成本,且实现了基于3D坐标的交互。故在一些实施例中,所述方法还包括:基于所述3D坐标与受控设备进行交互,该交互可包括:用户与受控设备之间的交互。所述3D坐标可视作用户输入从而使得控制受控设备执行特定的操作,实现用户与受控设备之间的交互。
在一些实施例中,所述步骤S120可包括:获取所述第一关键点在所述2D图像所对应的第一2D坐标系内所述第一2D坐标,并获取所述第二关键点在所述第一2D坐标系内的所述第二2D坐标。即所述第一2D坐标和第二2D坐标都是基于第一2D坐标系确定的。
在一些实施例中,所述步骤S130可包括:相对于所述第二局部的成像的相对坐标,包括:根据所述第二2D坐标,构建第二2D坐标系;将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
具体地如,如图3所示,所述步骤S130可包括:
步骤S131:根据所述第二2D坐标,构建第二2D坐标系;
步骤S132:根据所述第一2D坐标系和第二2D坐标系,确定从第一2D坐标系映射到所述第二2D坐标系的转换参数;其中,所述转换参数,用于确定所述相对坐标。
在一些实施例中,所述步骤S130还可包括:
步骤S133:基于所述转换参数,将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
在本实施例中,所述第二局部的第二关键点至少两个,例如,所述第二关键点可为第二局部成像的外轮廓点。根据所述第二关键点的坐标可以构建一个第二2D坐标系。该第二2D坐标系的原点可为多个所述第二关键点连接形成的外轮廓的中心点。
在本发明实施例中,所述第一2D坐标系和所述第二2D坐标系都是有边界的坐标系。
在确定出所述第一2D坐标系和所述第二2D坐标系之后,就可以根据两个2D坐标系的尺寸和/或中心坐标,得到第一2D坐标系内的坐标映射到第二2D坐标系内的转换参数。
基于该转换参数,就可以直接将所述第一2D坐标映射到所述第二2D坐标系,得到所述第三2D坐标。例如,该第三2D坐标为第一2D坐标映射到第二2D坐标系之后的坐标。
在一些实施例中,所述步骤S132可包括:
确定所述2D图像在第一方向上的第一尺寸,确定所述第二局部在第一方向上的第二尺寸;
根据所述第一尺寸及所述第二尺寸之间的第一比值;
基于所述第一比值确定所述转换参数。
在另一些实施例中,所述步骤S132还可包括:
确定所述2D图像在第二方向上的第三尺寸,确定所述第二局部在第二方向上的第四尺寸,其中,所述第二方向垂直于所述第一方向;
根据所述第三尺寸与所述第四尺寸之间的第二比值;
结合所述第一比值和所述第二比值,确定所述第一2D坐标系和所述第二2D坐标系之间的转换参数。
例如,所述第一比值可为:所述第一2D坐标系和所述第二2D坐标系在第一方向上的转换比值;所述第二比值可为:所述第一2D坐标系和所述第二2D坐标系在第二方向上的转换比值。
在本实施例中,若所述第一方向为x轴所在的方向,则第二方向为y轴所在的方向;若所述第一方向为y轴所在的方向,则第二方向为x轴所在的方向。
在本实施例中,所述转换参数包括两个转换比值,分别是第一方向上第一尺寸和第二尺寸得到第一比值,和第二方向上第三尺寸与第四尺寸之间的转换比值。
在一些实施例中,所述步骤S132可包括:
利用如下函数关系,确定所述转换参数:
其中,camw为所述第一尺寸;torsow为所述第三尺寸;camh为所述第二尺寸;torsoh为所述第四尺寸;K为所述第一2D坐标映射到第二2D坐标系在所述第一方向上的转换参数;S为所述第一2D坐标映射到第二2D坐标系在所述第二方向上的转换参数。
所述camw在2D图像第一方向上两个边缘之间的距离。camh为2D图像第二方向上两个边缘之间的距离。第一方向和第二方向相互垂直。
所述K即为前述第一比值;所述S即为前述第二比值。在一些实施例中,所述转换参数除了所述第一比值和所述第二比值以外,还可以引入调整因子,例如,所述调整因子包括:第一调整因子和/或第二调整因子。所述调整因子可包括:加权因子和/或比例因子。若所述调整因子为比例因子,则所述转换参数可为:所述第一比值和/或第二比值与比例因子的乘积。若所述调整因子为加权因子,则所述转换参数可为:所述第一比值和/或第二比值与加权因子的加权和。
在一些实施例中,所述步骤S134可包括:基于所述转换参数及所述第一2D坐标系的中心坐标,将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。在一定程度上,所述第三2D坐标可以表示所述第一局部相对于所述第二局部的位置。
具体地如,所述步骤S134可包括:利用如下函数关系确定所述第三2D坐标:
(x3,y3)=((x1-xt)*K+xi,(y1-yt)*S+yi)
(x3,y3)为所述第三2D坐标;(x1,y1)为所述第一2D坐标;(xt,yt)为所述第二局部的中心点在所述第一2D坐标系内的坐标。
在本实施例中,x均表示第一方向上的坐标值;y为表示第二方向上的坐标值。
在一些实施例中,所述步骤S140可包括:
对所述第三2D坐标进行归一化处理得到第四2D坐标;
结合所述第四2D坐标及所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标。
在一些实施例中,可以直接对第三2D坐标进行投影,以将第三2D坐标投影到虚拟成像平面内。在本实施例中,为了方便计算,会对第三2D坐标进行归一化处理,在归一化处理之后再投影到虚拟成像平面内。
在本实施例中,虚拟视点与虚拟成像平面之间的距离可为已知的距离。
在进行归一化处理时,可以基于2D图像的尺寸来进行,也可以是基于某一个预先定义的尺寸来确定。所述归一化处理的方式有多种,通过归一化处理,减少不同采集时刻采集的2D图像的第三2D坐标变化过大导致的数据处理不变的现象,简化了手续的数据处理。
在一些实施例中,所述对所述第三2D坐标进行归一化处理得到第四2D坐标,包括:结合所述第二局部的尺寸及所述第二2D坐标系的中心坐标,对所述第三2D坐标进行归一化处理得到所述第四2D坐标。
例如,所述结合所述第二局部的尺寸及所述第二2D坐标系的中心坐标,对所述第三2D坐标进行归一化处理得到所述第四2D坐标,包括:
(x4,y4)=[((x1-xt)*K+xi)/torsow,(1-((y1-yt)*S+yi))/torsoh]
其中,(x4,y4)为所述第四2D坐标;(x1,y1)为所述第一2D坐标;(xt,yt)为所述第二局部的中心点在所述第一2D坐标系内的坐标;(xi,yi)为所述2D图像的中心点在所述第一2D坐标系内的坐标。所述2D图像通常为矩形的,此处的2D图像的中心点为矩形的中心点。torsow为所述2D图像在第一方向上的尺寸;torsoh为所述2D图像在第二方向上的尺寸;K为所述第一2D坐标映射到第二2D坐标系在所述第一方向上的转换参数;S为所述第一2D坐标映射到第二2D坐标系在所述第二方向上的转换参数;所述第一方向垂直于所述第二方向。
由于第二2D坐标系的中心坐标值为:(0.5*torsow,0.5*torsoh)。故所述第四2D坐标的求解函数可如下所示:
在一些实施例中,所述结合所述第四2D坐标及所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标,包括:结合所述第四2D坐标、所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离及缩放比例,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标;具体地如,可利用如下函数关系,确定所述3D坐标:
(x4*dds,y4*dds,d)
其中,x4为所述第四2D坐标在第一方向上的坐标值;y4为所述第四2D坐标在第二方向上的坐标值;dds为缩放比例;d为所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离。
在本实施例中,所述缩放比例可为预先确定的静态值,也可以是动态根据被采集对象(例如,被采集用户)距离摄像头的距离确定的。
在一些实施例中,所述方法还包括:
确定所述2D图像上所述目标对象的数目M;
所述步骤S120可包括:
根据所述2D图像,获得每一个所述目标对象的所述第一关键点的第一2D坐标和所述第二关键点的第二2D坐标,以获得M组所述3D坐标。
例如,通过轮廓检测等处理,例如,人脸检测可以检测出一个2D图像中有多少个控制用户在,然后基于每一个控制用户得到对应的3D坐标。
例如,若在一个2D图像中检测到3个用户的成像,则需要分别获得3个用户在该2D图像内的成像,然后基于3个用户的手部和躯干部分的关键点的2D坐标,并通过步骤S130至步骤S150的执行,可以得到3个用户分别对应虚拟三维空间内的3D坐标。
在一些实施例中,如图4所示,所述方法包括:
步骤S210:在第一显示区域内显示基于所述3D坐标的控制效果;
步骤S220:在与所述第一显示区域对应的第二显示区域内显示所述2D图像。
为了提升用户体验,方便用户根据第一显示区域和第二显示区域的内容,修正自己的动作,会在第一显示区域显示控制效果,而第二区域显示所述2D图像。
在一些实施例中,所述第一显示区域和所述第二显示区域可以对应不同的显示屏,例如,第一显示区域可对应于第一显示屏,第二显示区域可对应于第二显示屏;所述第一显示屏和第二显示屏并列设置。
在另一些实施例中,所述第一显示区域和第二显示区域可为同一个显示屏的不同显示区域。所述第一显示区域和所述第二显示区域可为并列设置的两个显示区域。
如图5A所示,在第一显示区域内显示有控制效果的图像,并在与第一显示区域并列的第二显示区域内显示有2D图像。在一些实施例中,第二显示区域显示的2D图像为当前实时采集的2D图像或者2D视频中当前实时采集的视频帧。
在一些实施例中,所述在与所述第一显示区域对应的第二显示区域内显示所述2D图像,包括:
根据所述第一2D坐标,在所述第二显示区域内显示的所述2D图像上显示所述第一关键点的第一指代图形;
和/或,
根据所述第二2D坐标,在所述第二显示区域内显示的所述2D图像上显示所述第二关键点的第二指代图形。
在一些实施例中,第一指代图形是叠加显示在所述第一关键点上的,通过第一指代图形的显示,可以突出显示所述第一关键点的位置。例如,所述第一指代图像使用的色彩和/或亮度等显示参数区分于所述目标对象其他部分成像的色彩和/或亮度等显示参数。
在另一些实施例中,所述第二指代图形同样是叠加显示在所述第二关键点上的,如此,方便用户根据第一指代图形和第二指代图形从视觉上判断出自身的第一局部和第二局部之间的相对位置关系,从而后续有针对性的调整。
同样地,例如,所述第二指代图形使用的色彩和/或亮度等显示参数区分于所述目标对象其他部分成像的色彩和/或亮度等显示参数。
在一些实施例中,为了区分所述第一指代图形和所述第二指代图形,所述第一指代图形和所述第二指代图形的显示参数不同,方便用户通过视觉效果简便进行区分,提升用户体验。
在还有一些实施例中,所述方法还包括:
生成关联指示图形,其中,所述关联指示图形的一端指向所述第一指代图形,所述第二关联指示图形的另一端指向所述受控设备上受控元素。
该受控元素可包括:受控设备上显示的游戏对象或光标等受控对象。
如图5B所示,在第二显示区域显示的2D图像上还显示有第一指代图形和/或第二指代图形。并在第一显示区域和第二显示区域上共同显示有关联指示图形。
如图6所示,本实施例提供一种数据处理装置,包括:
第一获取模块110,用于获取目标对象的2D图像;
第二获取模块120,用于根据所述2D图像,获取第一关键点的第一2D坐标和第二关键点的第二2D坐标,其中,所述第一关键点为所述目标对象的第一局部在所述2D图像中的成像点;所述第二关键点为所述目标对象的第二局部在所述2D图像中的成像点;
第一确定模块130,用于基于第一2D坐标及所述第二2D坐标,确定相对坐标,其中,所述相对坐标用于表征所述第一局部和所述第二局部之间的相对位置;
投影模块140,用于将所述相对坐标投影到虚拟三维空间内并获得与所述相对坐标对应的3D坐标,其中,所述3D坐标用于控制受控设备执行预定操作。
在一些实施例中,所述第一获取模块110、第二获取模块120、第一确定模块130及投影模块140可为程序模块,所述程序模块被处理器执行后,能够实现上述各个模块的功能。
在另一些实施例中,所述第一获取模块110、第二获取模块120、第一确定模块130及投影模块140可为软硬结合模块,该软硬结合模块可包括:各种可编程阵列;例如,复杂可编程阵列或者现场可编程阵列。
在还有一些实施例中,所述第一获取模块110、第二获取模块120、第一确定模块130及投影模块140可为纯硬件模块,该纯硬件模块可为专用集成电路。
在一些实施例中,所述第一2D坐标和所述第二2D坐标为位于第一2D坐标系内的2D坐标。
在一些实施例中,所述第二获取模块120,具体用于获取所述第一关键点在所述2D图像所对应的第一2D坐标系内所述第一2D坐标,并获取所述第二关键点在所述第一2D坐标系内的所述第二2D坐标;
所述第一确定模块130,具体用于根据所述第二2D坐标,构建第二2D坐标系;将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
在另一些实施例中,所述第一确定模块130,还用于根据所述第一2D坐标系和第二2D坐标系,确定从第一2D坐标系映射到所述第二2D坐标系的转换参数;基于所述转换参数,将所述第一2D坐标映射到所述第二2D坐标系,获得第三2D坐标。
在一些实施例中,所述第一确定模块130,具体用于确定所述2D图像在第一方向上的第一尺寸,确定所述第二局部在第一方向上的第二尺寸;根据所述第一尺寸及所述第二尺寸之间的第一比值;根据所述第一比值确定转换参数。
在另一些实施例中,所述第一确定模块130,还用于确定所述2D图像在第二方向上的第三尺寸,确定所述第二局部在第二方向上的第四尺寸,其中,所述第二方向垂直于所述第一方向;根据所述第二尺寸与所述第三尺寸之间的第二比值;结合所述第一比值及所述第二比值确定所述第一2D坐标系和所述第二2D坐标系之间的转换参数。
在一些实施例中,所述第一确定模块130,具体用于利用如下函数关系,确定所述转换参数:
其中,camw为所述第一尺寸;torsow为所述第三尺寸;camh为所述第二尺寸;torsoh为所述第四尺寸;K为所述第一2D坐标映射到第二2D坐标系在所述第一方向上的转换参数;S为所述第一2D坐标映射到第二2D坐标系在所述第二方向上的转换参数。
在一些实施例中,所述第一确定模块130,具体用于利用如下函数关系确定所述第三2D坐标:
(x3,y3)=((x1-xt)*K+xi,(y1-yt)*S+yi)
(x3,y3)为所述第三2D坐标;(x1,y1)为所述第一2D坐标;(xt,yt)为所述第二局部的中心点在所述第一2D坐标系内的坐标。
在一些实施例中,所述投影模块140,具体用于对所述第三2D坐标进行归一化处理得到第四2D坐标;结合所述第四2D坐标及所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标。
在一些实施例中,所述投影模块140,具体用于结合所述第二局部的尺寸及所述第二2D坐标系的中心坐标,对所述第三2D坐标进行归一化处理得到所述第四2D坐标。
在一些实施例中,所述投影模块140,具体用于结合所述第四2D坐标、所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离及缩放比例,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标。
进一步地,所述投影模块140,可具体用于基于以下函数关系确定所述3D坐标:
(x4,y4)=[((x1-xt)*K+xi)/torsow,(1-((y1-yt)*S+yi))/torsoh]
其中,(x1,y1)为所述第一2D坐标;(xt,yt)为所述第二局部的中心点在所述第一2D坐标系内的坐标;(xi,yi)为所述2D图像的中心点在所述第一2D坐标系内的坐标;torsow为所述2D图像在第一方向上的尺寸;torsoh为所述2D图像在第二方向上的尺寸;K为所述第一2D坐标映射到第二2D坐标系在所述第一方向上的转换参数;S为所述第一2D坐标映射到第二2D坐标系在所述第二方向上的转换参数;所述第一方向垂直于所述第二方向。
在一些实施例中,所述投影模块140,具体用于结合所述第四2D坐标、所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离及缩放比例,确定所述第一关键点投影到所述虚拟三维空间内的3D坐标。
进一步地,所述投影模块140,可具体用于利用如下函数关系,确定所述3D坐标:
(x4*dds,y4*dds,d)
其中,x4为所述第四2D坐标在第一方向上的坐标值;y4为所述第四2D坐标在第二方向上的坐标值;dds为缩放比例;d为所述虚拟三维空间内虚拟视点到虚拟成像平面内的距离。
在一些实施例中,所述装置还包括:
第二确定模块,用于确定所述2D图像上所述目标对象的数目M;
所述第二获取模块120,具体用于根据所述2D图像,获得每一个所述目标对象的所述第一关键点的第一2D坐标和所述第二关键点的第二2D坐标,以获得M组所述3D坐标。
在一些实施例中,所述装置包括:
第一显示模块,用于在第一显示区域内显示基于所述3D坐标的控制效果;
第二显示模块,用于在与所述第一显示区域对应的第二显示区域内显示所述2D图像。
在一些实施例中,所述第二显示模块,还用于根据所述第一2D坐标,在所述第二显示区域内显示的所述2D图像上显示所述第一关键点的第一指代图形;和/或,根据所述第二2D坐标,在所述第二显示区域内显示的所述2D图像上显示所述第二关键点的第二指代图形。
以下结合上述任意实施例提供一个具体示例:
示例1:
本示例提供一种数据处理方法包括:
实时识别人体姿势关键点,通过公式与算法实现无需手握或穿戴设备的在虚拟环境中做出精度较高的操作。
读取脸部识别模型与人体姿势关键点识别模型并建立相对应句柄,同时配置追踪参数。
打开视频流,每一帧将当前帧转换为BGRA格式,并根据需要进行翻转,数据流存为带有时间戳的对象。
通过人脸句柄检测当前帧并得到人脸识别结果及人脸数量,此结果协助特人体姿势(human pose)关键点追踪。
检测当前帧的人体姿势,并通过追踪句柄追踪实时人体关键点。
得到人体姿势关键点后定位到手部关键点,从而得到手部位于摄像头识别图像中的像素点。该手部关键点为前述第一关键点,具体如,该手部关键点具体可为手腕关键点。
此处假设手部将成为之后的操作光标。
通过同样方式定位人体肩膀关键点及腰部关键点,计算出身体中心位置的像素坐标。人体肩部关键点及腰部关键点可为躯干关键点,为前述实施例中提到的第二关键点。
以图片正中心为原点重新标定上述坐标,以用于后期三维转换。
设定人体上半身为参照,求出场景与人体的相对系数。
为了使姿势操控系统保持不同场景中稳定的表现,即无论用户在镜头中任何方位或者离镜头多远,都能达到同样的操控效果,我们使用操纵光标与身体中心的相对位置。
通过相对系数与重新标定的手部坐标、身体中心坐标计算出手部相对于身体的新坐标。
保留新坐标与识别空间,即摄像头图像尺寸的X和Y比例。
在虚拟三维空间中生成需要投影操作空间,计算出观察点和接收操作物体的距离D,通过X、Y和D将视点坐标转为操作光标在三维空间中的坐标。
如存在虚拟操作平面,则取操作光标坐标的x和y值,代入透视投影和屏幕映射公式得到操作屏幕空间中的像素点。
可以应用到多个用户多个光标同时操作。
假设摄像机所采集的2D图像对应的第一2D坐标系中左下角为(0,0)且右上角为(camw,camh);
假设手部关键点在2D图像所对应的第一2D坐标系内的坐标为:(x1,y1);
假设躯干中心点在第一2D坐标系内的坐标为:(xt,yt);
假设2D图像的中心点在第一2D坐标系内的坐标为:(xi,yi)。
则存在转换参数如下:
所述转换参数:
手部关键点转换到躯干所对应的第二2D坐标系内的转换函数可如下:
(x3,y3)=((x1-xt)*K+xi,(y1-yt)*S+yi)。
若摄像机所采集的2D图像对应的第一2D坐标系中左下角为(0,0)且右下角为(camw,camh);
则手部关键点转换到躯干所对应的第二2D坐标系内的转换函数可如下:(x3,y3)=((x1-xt)*K+xi,(yt-y1)*S+yi)。
综合之后,手部关键点转换到躯干所对应的第二2D坐标系内的转换函数可为:
(hand-torso)*(cam/torse)+cam-center;其中,hand表示手部关键点在第一
2D坐标系内的坐标;torso表示躯干关键点在第一2D坐标系内的坐标;cam-center为2D图像对应的第一2D坐标的中心坐标。
在归一化的处理过程中,可以引入缩放比例,所述缩放比例的取值范围可为1至3之间,也可以是1.5至2之间。
在三维虚拟空间内可以根据构建的三维虚拟空间得到如下坐标:
虚拟视点的坐标:(xc,yc,zc)
虚拟控制平面的坐标:(xj,yj,zj)
d的可为(xc,yc,zc)与(xj,yj,zj)之间距离。
通过归一化处理之后,将得到归一化后的第四2D坐标为:
(x4,y4)=[(x1-xt)*camw+0.5,0.5-(y1-yt)*camh]。
而转换到虚拟三维空间内的3D坐标可为:
如图7所示,本申请实施例提供了一种图像处理设备,包括:
存储器,用于存储信息;
处理器,与所述存储器连接,用于通过执行存储在所述存储器上的计算机可执行指令,能够实现前述一个或多个技术方案提供的数据处理方法,例如,如图1、图3及图4所示的方法中的一个或多个。
该存储器可为各种类型的存储器,可为随机存储器、只读存储器、闪存等。所述存储器可用于信息存储,例如,存储计算机可执行指令等。所述计算机可执行指令可为各种程序指令,例如,目标程序指令和/或源程序指令等。
所述处理器可为各种类型的处理器,例如,中央处理器、微处理器、数字信号处理器、可编程阵列、数字信号处理器、专用集成电路或图像处理器等。
所述处理器可以通过总线与所述存储器连接。所述总线可为集成电路总线等。
在一些实施例中,所述终端设备还可包括:通信接口,该通信接口可包括:网络接口、例如,局域网接口、收发天线等。所述通信接口同样与所述处理器连接,能够用于信息收发。
在一些实施例中,所述图像处理设备还包括摄像头,该摄像头可为2D摄像头,可以采集2D图像。
在一些实施例中,所述终端设备还包括人机交互接口,例如,所述人机交互接口可包括各种输入输出设备,例如,键盘、触摸屏等。
本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行代码;所述计算机可执行代码被执行后,能够实现前述一个或多个技术方案提供的数据处理方法,例如,如图1、图3及图4所示的方法中的一个或多个。
所述存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。所述存储介质可为非瞬间存储介质。
本申请实施例提供一种计算机程序产品,所述程序产品包括计算机可执行指令;所述计算机可执行指令被执行后,能够实现前述任意实施提供的数据处理方法,例如,如图1、图3及图4所示的方法中的一个或多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。