头部运动跟踪方法、设备、系统及存储介质与流程

文档序号:18474936发布日期:2019-08-20 20:53阅读:364来源:国知局
头部运动跟踪方法、设备、系统及存储介质与流程

本发明一般涉及计算机技术领域,尤其涉及头部运动跟踪方法、设备、系统及存储介质。



背景技术:

人脸检测技术是一种通过人脸特征点,计算获得头部位姿的有效方法,广泛应用在人机交互等多个领域,可以在慢速移动时获得精确的头部位置和姿态信息。

人脸检测技术由于复杂的计算过程等因素的影响,导致其频率较低,而在高频率时,位姿预测结果误差大,噪声严重,从而影响用户体验度。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种头部运动跟踪方法、设备、系统及存储介质,以提高头部跟踪的准确性。

第一方面,提供一种头部运动跟踪方法,该方法包括:

获取当前时刻的头部运动信息,该头部运动信息包括角速度信息和加速度信息;

获取当前时刻的头部视觉图像帧;

基于当前时刻的该头部运动信息和/或该头部视觉图像帧,计算下一时刻的头部位姿信息,该头部位姿信息包括头部的位置信息和姿态信息。

本申请的一个实施例或者多个实施例中,基于当前时刻的该头部运动信息、该头部视觉图像帧及卡尔曼滤波算法计算下一时刻的头部位姿信息。

本申请的一个实施例或者多个实施例中,基于当前时刻的该头部运动信息、该头部视觉图像帧及卡尔曼滤波算法计算下一时刻的头部位姿信息包括:

基于当前时刻的所述头部运动信息及上一时刻的头部位姿信息计算当前时刻的第一头部位姿信息;

基于上一时刻的最优值协方差及所述第一头部位姿信息计算当前时刻的协方差矩阵;

基于当前时刻的所述协方差矩阵计算当前时刻的增益;

基于当前时刻的所述视觉图像帧计算第二头部姿态信息;

基于当前时刻的所述增益、所述第一头部位姿信息及所述第二头部姿态信息计算当前时刻的所述头部位姿信息。

本申请的一个实施例或者多个实施例中,该头部跟踪方法还包括基于当前时刻的所述增益及所述协方差矩阵计算当前时刻的最优值协方差矩阵。

本申请的一个实施例或者多个实施例中,基于当前时刻的该角速度、该加速度信息及上一时刻的位置信息和姿态信息计算下一时刻的目标头部位姿信息。

本申请的一个实施例或者多个实施例中,基于滑窗算法、当前时刻的该头部运动信息、该头部视觉图像帧计算下一时刻的头部位姿信息;或者

基于非线性优化算法、当前时刻的该头部运动信息、该头部视觉图像帧计算下一时刻的头部位姿信息;或者

基于scaat方法、当前时刻的该头部运动信息、该头部视觉图像帧计算下一时刻的头部位姿信息。

第二方面,本申请实施例提供一种设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如第一方面所述的方法:

第三方面,本申请实施例提供一种提供头部运动跟踪系统,该系统包括头部运动信息采集单元、人脸信息检测单元及如第二方面的所述的设备,该头部运动信息采集单元采集当前时刻的头部运动信息;该人脸信息检测单元采集当前时刻的头部视觉图像帧。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于实现如第一方面所述的方法。

本申请实施例提供的头部运动跟踪方法、设备、系统及存储介质,通过采集当前的头部运动信息及视觉图像信息,进而对采集到的头部运动信息及视觉图像信息进行融合处理,以计算得到下一时刻的头部位姿信息,降低了人脸检测的高频噪声,实现了头部跟踪的实时性及准确性,提升了用户体验。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本申请实施例中头部运动跟踪系统结构图;

图2为本申请实施例的头部运动跟踪方法的流程示意图;

图3为本申请又一实施例的头部运动跟踪方法的流程示意图;

图4为本申请实例中基于运动信息的位置信息与融合后的位置信息的对比;

图5为本申请实例中基于运动信息的姿态信息与融合后的姿态信息的对比;

图6为本申请实例中基于视觉图像的位置信息与融合后的位置信息的对比

图7为本申请实例中基于视觉图像的姿态信息与融合后的姿态信息的对比;

图8为本申请实施例的头部运动跟踪装置的结构示意图;

图9为本申请实施例提供的一种设备结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

请参考图1,本实施例为了提高头部跟踪的准确性,提供头部运动跟踪系统,可以包括头部运动信息采集单元、人脸信息检测单元及计算机设备。该系统可以用于头部运动的跟踪分析,如用于ar、vr或其他的头部运动跟踪及人脸识别领域内,以分析用户的头部运动,实现人机互动。

该系统中的运动信息采集单元,可以为imu(inertialmeasurementunit,惯性测量),如通过头带、悬挂等方式固定至额头或耳部。可以通过陀螺仪、加速度计采集头部运动的角速度、加速度信息,并传输至数据处理的计算机设备。

该系统中的人脸信息检测单元,可以为相机等具有摄像功能的硬件,如可为电脑或手机自带的摄像头,用于采集头部的视觉图像帧,如人脸信息,并可以将采集到的人脸信息传输至数据处理的计算机设备以供处理。

该系统中的计算机设备,可以为具有数据处理功能的硬件设备,如电脑或手机等,用于对头部运动信息采集单元及人脸信息采集单元传输的数据进行融合处理,以得到待分析的用户的头部位姿信息,如分析得到用户头部实时的位置信息及姿态信息。该设备可以为与人脸信息采集单元封装一体的硬件设备,如当该设备为手机时,其上自带的摄像头可以作为头部人脸信息检测单元,获取头部视觉图像。

为了便于理解和说明,下面通过图2至图9详细阐述本申请实施例提供的头部运动跟踪方法、设备、系统及存储介质。

图2所示为本申请实施例提供的头部运动跟踪方法,该方法可以由计算机设备执行,包括:

s210,获取当前时刻的头部运动信息;

s220,获取当前时刻的头部视觉图像帧;

s230,基于当前时刻的该头部运动信息和该头部视觉图像帧,或当前时刻的该头部运动信息计算当前时刻的头部位姿信息。

具体的,该设备可以以一定的频率获取分析对象的头部运动信息,包括角速度信息及加速度信息;并可以获取分析对象的头部视觉图像帧。

可以理解,在获取到头部的视觉图像后,可以对该视觉图像进行分析,得到头部的中间姿态信息。如获取到人脸信息后,可以经过人脸检测算法得到当前时刻的头部位置及姿态。

最后,可以根据上述获取的当前时刻的头部运动信息和头部视觉图像帧,或者,根据获取的当前时刻的头部运动信息计算下一时刻的头部位姿信息,即可以计算得到下一时刻头部的位置信息及姿态信息。

可以理解,本申请实施例提供的头部运动跟踪,其运动信息采集单元及人脸信息检测单元的采集频率不同,且前者的采集频率高于后者,使得设备获取到的运动信息及视觉图像的频率不同。对应的,当未获取到视觉图像时,可以仅仅利用获取的运动信息分析计算得到头部位姿信息以输出,以确保位姿信息输出的连续性,当有视觉图像帧输入时,则可以将运动信息和视觉图像融合处理,如利用卡尔曼滤波算法,过滤掉视觉图像信息中的高频噪声,使得所得到的位姿信息结果更加稳定,实现了头部跟踪的实时性及准确性,提升了用户体验。

为了更好的理解,下通过图3详细的阐述设备结合获取到的运动信息和视觉图像信息计算得到头部位姿信息的过程,如图3所示,该方法包括:

s310,获取当前时刻的头部运动信息。

具体的,由于本申请实施例中,运动信息采集单元的采集频率高,所以设备可以更快的获取到包括角速度信息和加速度信息的头部运动信息。如角速度表示为w,加速度表示为a。

s320,基于头部运动信息及上一时刻的头部位姿信息计算当前时刻的第一头部位姿信息。

具体的,在获取到当前时刻的头部运动信息,且还未获取到头部视觉图像帧时,可以利用当前时刻的头部运动信息及上一时刻的头部位姿信息计算当前时刻的头部位姿信息,即第一头部位姿信息。

例如,首先可以利用如下公式计算得到当前时刻(t时刻)的速度:

其中,vt为t时刻的速度,vt-1为上一时刻(t-1时刻)的速度,ast为当前时刻(t时刻)的加速度,δt为数据采集周期。

进一步将得到的当前时刻的速度代入如下公式计算得到当前时刻的头部位姿信息中的位置信息:

其中,tt为当前时刻的位置信息,tt-1为上一时刻的位置信息。

最后,可以利用角速度w和四元微分方程得到姿态信息:

其中,wx、wy、wz为角速度的分量,qt-1为当前时刻的姿态信息,qt-1为上一时刻的姿态信息。

可以理解,在算法始运行时,可以设置初始值,如初始的位置及姿态,以使得获取到当前时刻的运动信息后,可以利用初始值及当前值驱动该算法执行,进而使得当算法稳定循环后,利用上一时刻的位姿信息计算得到下一时刻的位姿信息。

还可以理解,上述计算得到的当前时刻的位置信息及姿态信息就是当前时刻的头部位姿信息,即在人脸信息检测单元未采集到当前的数据时,便可以利用运动信息计算得到位姿信息,即有中间位姿信息的输出,使得跟踪过程连续。

s330,基于上一时刻的协方差及所述第一头部位姿信息计算当前时刻的协方差。

s340,基于当前时刻的协方差计算当前时刻的卡尔曼滤波算法增益。

具体的,在算法循环过程中,当利用运动信息计算得到当前时刻的位姿信息后,可以利用该信息更新上一时刻的卡尔曼滤波算法中的下协方差,进一步根据当前时刻的协方差矩阵计算当前时刻的增益,即利用当前时刻的增益更新上一时刻的增益,以为利用卡曼滤波算法对两个采集单元的数据融合做准备。

如可以采用如下公式计算得到:

其中,at为状态预测更新矩阵,q为系统噪声协方差矩阵,为当前时刻(t时刻)状态预测的协方差矩阵,kg为卡尔曼增益,h为状态转移矩阵,r为测量噪声矩阵;为上一时刻(t-1)的最优估计值的协方差矩阵,该最优估计值的协方差矩阵可以在s380中,利用如下公式计算:

可以理解,该最优估计值的协方差矩阵为利用上一时刻计算得到的卡曼增益后,计算得到的。

还可以理解,在算法始运行时,可以设置算法中的初始值,如协方差矩阵等,以使得获取到第一头部位姿信息后,可以利用初始值及当前值驱动该算法执行,进而使得当算法稳定循环后,利用上一时刻的值递推得到下一时刻值。

s350,获取当前时刻的头部视觉图像帧。

s360,基于该头部视觉图像帧计算当前时刻的第二头部姿态信息。

具体的,在该步骤中可以接收到人脸信息检测单元传输的待分析对象的是头部视觉图像帧,如采集到的人脸图像等。进而可以利用预设的算法,如人脸检测算法对输入的数据进行分析,得到视觉图像中携带的当前时刻的头部位姿信息,即第二头部位姿信息,可以利用zt来表示。

可以理解,上述s330、s340与s350、s360的执行可以按照上述顺序,也可以同步执行,也可以先执行s350、s360,再执行s330、s340。即卡尔曼滤波算法参数的计算更新与头部视觉图像帧的获取可以同时进行,也可以有先后顺序,本申请实施例对此不做限制。

s370,基于当前时刻的卡尔曼滤波算法增益、第一头部位姿信息及第二头部姿态信息计算当前时刻的头部位姿信息。

具体的,当获取到是视觉图像帧后,则可以对根据运动信息得出的第一头部位姿信息及根据视觉图像信息得到的第二位姿信息进行融合处理,得到当前时刻最优的头部位姿信息。

例如,可以利用如下公式计算:

其中,h为卡尔曼滤波算法中的转换函数,可以将预测值部分的状态量转换成为观测量的表示。

s380,基于当前时刻的增益及协方差矩阵计算当前时刻的最优值协方差矩阵。

具体的,在计算得到当前时刻的增益后,还可以利用该增益及协方差矩阵计算并更新当前时刻的最优值协方差矩阵,以作为下一时刻更新协方差矩阵的当前值。

本实施例中通过运动信息采集单元及人脸信息检测单元来获取待分析对象的头部运动数据及图像数据,因为上述两个单元采集数据的频率不相同,运动信息采集单元采集数据的频率比人脸信息检测单元采集数据的频率高,在进行数据融合的过程中,若人脸信息检测单元采集到数据,则根据前一次融合的结果以及运动信息采集单元采集的数据进行融合,过滤掉人脸检测信息中的高频噪声,使得获取的位姿数据更加稳定;若人脸信息检测单元未采集到数据,运动信息采集单元采集到数据,此时仅通过运动信息采集单元采集的数据进行状态的更新,使得中间位姿信息持续输出,过程连续。

如图4为利用运动信息(imu)分析得到的位置信息与运动信息及视觉图像信息融合后的位置信息的对比;图5所示为利用运动信息(imu)分析得到的姿态信息与运动信息及视觉图像信息融合后的姿态信息的对比;图6所示为利用视觉图像(人脸)分析得到的位置信息与运动信息及视觉图像信息融合后的位置信息的对比;图7所示为利用视觉图像(人脸)分析得到的姿态信息与运动信息及视觉图像信息融合后的姿态信息的对比,由图可知,运动信息、视觉图像信息与数据融合后的数据对比,融合后的位置数据和姿态数据更加的稳定,不会因为时间的变化产生漂移或者波动,能够获得稳定的、准确的头部位姿信息。

进一步的,在数据融合时,优选的采用扩展卡尔曼滤波融合的方式进行,还可以利用滑窗算法或者非线性优化算法或者scaat(single-constraint-at-a-time)方法进行计算融合,以解决运动信息采集单元与人脸检测单元数据输出不同步的问题。

另一方面,如图8所示,本实施例中还提供一种头部运动跟踪装置,该装置800包括:

第一获取模块810,用于获取当前时刻的头部运动信息,该头部运动信息包括角速度信息和加速度信息;

第二获取模块820,用于获取当前时刻的头部视觉图像帧;

计算模块830,用于基于当前时刻的该头部运动信息和该头部视觉图像帧,或者当前时刻的该头部运动信息计算当前时刻的头部位姿信息,该头部位姿信息包括头部的位置信息和姿态信息。

可选的,本申请实施例提供的头部运动跟踪装置,该计算模块具体用于:

基于当前时刻的该头部运动信息和该头部视觉图像帧,计算当前时刻的头部位姿信息包括:

基于当前时刻的该头部运动信息、该头部视觉图像帧及卡尔曼滤波算法计算当前时刻的头部位姿信息。

可选的,本申请实施例提供的头部运动跟踪装置,该计算模块具体用于:

基于该头部运动信息及当前时刻的头部位姿信息计算当前时刻的第一头部位姿信息;

基于该视觉图像帧计算当前时刻的第二头部姿态信息;

基于上一时刻的协方差及该第一头部位姿信息计算当前时刻的协方差;

基于该当前时刻的协方差计算当前时刻的卡尔曼滤波算法增益;

基于当前时刻的该卡尔曼滤波算法增益、该第一头部位姿信息及该第二头部姿态信息计算当前时刻的该头部位姿信息。

可选的,本申请实施例提供的头部运动跟踪装置,该计算模块具体用于:

基于当前时刻的该角速度、该加速度信息及上一时刻的位置信息和姿态信息计算当前时刻的该头部位姿信息。

可选的,本申请实施例提供的头部运动跟踪装置,该计算模块具体用于:

基于滑窗算法、当前时刻的该头部运动信息、该头部视觉图像帧计算当前时刻的该头部位姿信息;或者

基于非线性优化算法、当前时刻的该头部运动信息、该头部视觉图像帧计算当前时刻的该头部位姿信息;或者

基于scaat方法、当前时刻的该头部运动信息、该头部视觉图像帧计算当前时刻的该头部位姿信息。

另一方面,本申请实施例还提供一种计算机设备,该设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现如上所述的头部运动跟踪方法。

下面参考图9,其示出了适于用来实现本申请实施例的设备的计算机系统900的结构示意图。

如图9所示,计算机系统900包括中央处理单元(cpu)901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分903加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。在ram903中,还存储有系统900操作所需的各种程序和数据。cpu901、rom902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。

以下部件连接至i/o接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。

特别地,根据本申请公开的头部运动跟踪的实施例,上文参考图1描述的过程可以被实现为计算机软件程序。例如,本申请公开的头部运动跟踪的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,该计算机程序包含用于执行图1的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种头部运动跟踪实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一获取模块、第二获取模块及计算模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,计算模块还可以被描述为“用于基于当前时刻的所述头部运动信息和所述头部视觉图像帧,或者当前时刻的所述头部运动信息计算当前时刻的头部位姿信息,所述头部位姿信息包括头部的位置信息和姿态信息”。

作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中前述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,前述程序被一个或者一个以上的处理器用来执行描述于本申请的头部运动跟踪方法,具体执行:

获取当前时刻的头部运动信息,所述头部运动信息包括角速度信息和加速度信息;

获取当前时刻的头部视觉图像帧;

基于当前时刻的所述头部运动信息和所述头部视觉图像帧,或者当前时刻的所述头部运动信息计算当前时刻的头部位姿信息,所述头部位姿信息包括头部的位置信息和姿态信息。

综上所述,本申请实施例提供的头部运动跟踪方法、设备、系统及存储介质,通过采集当前的头部运动信息及视觉图像信息,进而对采集到的头部运动信息及视觉图像信息进行融合处理,以计算得到下一时刻的头部位姿信息,降低了人脸检测的高频噪声,实现了头部跟踪的实时性及准确性,提升了用户体验。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1