一种基于vr的人体关键点数据扩充的方法
技术领域
本发明属于信息化领域,涉及一种基于VR的人体关键点数据扩充的方法。
背景技术
利用VR技术实现的在线平台中,用户都以化身的方式存在于虚拟场景。这些化身能跟随用户移动,但具体动作需要用户主动选择,化身无法直接同步用户的动作,这种情况无疑会降低虚拟世界的沉浸感。通过深度学习的方式自动识别用户的动作,这需要动作数据作为输入,动作数据有多种模态,各有优劣。
动作识别的数据集中,根据数据模态主要分为RGB视频数据集、深度视频数据集和人体骨骼序列数据集。其中人体骨骼序列也可以被称为人体关键点,3D人体关键点可以通过深度相机获得,也可以利用双目相机和关键点提取算法获得。2D人体关键点可以通过RGB视频与关键点提取算法获得,具体数据为人体某个关键点(如脖子、左右眼)在RGB图片中的2D像素坐标。使用2D人体关键点也可以用于动作识别,但同一个动作采集的RGB视频、2D、3D关键点三种数据分别用于动作识别时,使用2D关键点的效果往往不如使用RGB视频或3D人体关键点的效果。但采用人体关键点进行动作识别,相比RGB视频的优势在于不容易受光照影响,能更好保护用户隐私。
为了提升2D关键点用作动作识别的效果,可以通过增加同一个动作以不同角度、距离拍摄图片的2D关键点的数据来实现。一般而言这需要能覆盖不同角度、距离的RGB视频。用于动作识别的RGB视频数据集可以通过收集网络视频或自行拍摄得到,不管是网络视频还是自行拍摄,都无法覆盖到所有合理拍摄角度。
在没有深度相机,但有VRHMD(虚拟现实头戴显示器)的情况下,可以利用VRHMD提供的深度信息实现2D与3D之间的坐标转换。在人体运动过程中鼻子、脖子与左右肩的深度信息与VRHMD采集的深度信息基本一致。一帧下,人体某个关键点在空间中的3D世界坐标系是固定的,但是在拍摄照片中关键点对应的2D像素坐标,根据拍摄的角度、距离,会被映射到不同位置,这种映射关系如图1所示。
发明内容
有鉴于此,本发明的目的在于提供一种基于VR的人体关键点数据扩充的方法。
为达到上述目的,本发明提供如下技术方案:
一种基于虚拟现实VR的人体关键点数据扩充的方法,该方法包括以下步骤:
S1:用户戴上虚拟现实头戴式显示器VR HMD;
S2:同步VR HMD与相机连接设备的时间服务,设置VR HMD的传感器数据获取频率,与相机的拍摄频率保持一致;
S3:建立以相机光圈中心为原点Oc的相机坐标系,坐标轴为Xc、Yc和Zc;建立以用户正下方地面为原点Ow的世界坐标系,坐标轴为Xw、Yw和Zw;将相机摆放于用户正前方一定距离处,使得相机坐标系和世界坐标系保持角度一致,拍摄需要识别的用户动作,获取用户动作的RGB视频;
S4:提取每帧的关键点2D像素坐标和HMD传感器数据;
S5:计算相机相对世界坐标系原点Ow平移、旋转后的偏移向量T和旋转矩阵R;
S6:利用关键点提取方法,从获取的RGB视频中获得人体关键点在RGB图片中的像素坐标(u,v);
S7:使用基于标定物的相机标定方法,获取相机内参f;
S8:利用相机成像原理,通过用户的鼻子、脖子和左右肩四个关键点的像素坐标(u,v),获取到对应点的世界坐标系(Xw,Yw,Zw);
S9:计算关键点的3D世界坐标系(Xw,Yw,Zw);
S10:计算所需拍摄角度、位置的偏移向量T和旋转矩阵R;
S11:计算新相机位置下对应关键点的2D像素坐标(u,v),并保存;
S12:判断2D像素坐标(u,v)是否达到所需数据量;若达到,则结束程序;若没有达到,则返回S10。
可选的,所述用户动作包括趴坐、点头和起立。
可选的,所述偏移向量T的计算公式如下:
所述旋转矩阵R的计算公式如下:
R=RxRyRz
其中,θ、和σ分别为绕x、y和z轴旋转的角度,Y0为相机坐标原点Oc相对世界坐标原点Ow,Y轴方向上的距离;Z0为相机坐标原点Oc相对世界坐标原点Ow,Z轴方向上的距离。
可选的,所述世界坐标系(Xw,Yw,Zw)的计算公式如下:
其中,Zvr为用户运动过程中VR传感器获取到深度信息,(u0,v0)为图像分辨率的一半。
可选的,所述S11中2D像素坐标(u,v)的计算公式如下:
本发明的有益效果在于:通过VR HMD与普通RGB相机,获取了大量不同拍摄角度、位置下的人体关键点训练数据。将扩充的2D人体关键点数据结合VR传感器数据训练动作识别模型,让模型的精度、稳定性都得到极大提升。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
图1为映射关系图;
图2为拍摄示意图;
图3为相机旋转后拍摄示意图;
图4为本发明流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
同步VR HMD与相机连接设备的时间服务,设置VR HMD的传感器数据获取频率,与相机的拍摄频率保持一致。
将相机摆放到合理位置。为了后续的数据增强处理,需要确保以相机光圈中心为原点Oc的相机坐标系,相对以用户正下方地面为原点Ow的世界坐标系的偏移向量T、旋转矩阵R数据已知。通常摆放于正前方一定距离处,两个坐标系保持角度一致。拍摄需要识别的用户动作,如趴坐、点头、起立。
拍摄示意图如图2所示。
偏移向量公式如下:
旋转矩阵R公式如下,θ,σ分别为绕x,y,z轴旋转的角度:Y0为相机坐标原点Oc相对世界坐标原点Ow,Y轴方向上的距离;
R=RxRyRz
利用关键点提取方法,从拍摄的RGB视频中获取人体关键点在RGB图片中的像素坐标(u,v)。
使用基于标定物的相机标定方法,获取相机内参f。
利用相机成像原理,通过鼻子、脖子和左右肩四个关键点的像素坐标(u,v),获取到对应点的世界坐标系(Xw,Yw,Zw)。
公式如下,Zvr为用户运动过程中VR传感器获取到深度信息,(u0,v0)为图像分辨率的一半。
计算相机相对世界坐标系原点Ow平移、旋转后的偏移向量T和旋转矩阵R。关键点的3D世界坐标系(Xw,Yw,Zw)不会改变,可通过公式计算获取到关键点所对应的新2D像素坐标(u,v),公式如下:
Z0为相机坐标原点Oc相对世界坐标原点Ow,Z轴方向上的距离,虚线摄像头的Z0、Y0代表相机Oc只是相对Ow旋转了,并没有X轴、Z轴方向上的位移,与最后一个公式对应(通过关键点的3D世界坐标,获取相机旋转后拍摄图片中,关键点所对应新的2D像素坐标)。
相机旋转后的拍摄示意图如图3所示。深色的线代表初始情况下(正面)拍摄视频中提取的2D关键点数据,浅色的线代表相机旋转后拍摄RGB图片中提取的2D关键点数据(该数据通过上述公式直接获得)。
重复获取到拍摄某一帧时,相机相对世界坐标系原点Ow任意平移、旋转后,在新的拍摄位置、角度下用户肩部及以上的2D关键点像素坐标数据,实现人体关键点数据的扩充。该方案可以获取任意拍摄角度、距离下四个关键点的2D像素坐标。
本发明整体流程图如图4所示。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种手语互译方法及系统