一种空间位置追踪方法、装置及智能设备与流程

文档序号:12472007阅读:323来源:国知局
一种空间位置追踪方法、装置及智能设备与流程

本发明涉及智能设备技术领域,尤其涉及一种空间位置追踪方法、装置及智能设备。



背景技术:

随着虚拟现实技术(Virtual Reality,VR)以及增强现实技术(Augmented Reality,AR)的发展,VR和AR渐渐被公众所熟知,但是VR和AR设备在技术实现上依然面临许多瓶颈,例如:VR和AR设备的空间位置追踪的问题。

简单来说,VR设备的空间位置追踪技术可以使得用户在佩戴VR头盔时,除了在沉浸式的世界里原地旋转之外,还能利用算法和传感器感知到用户的移动,从而确定用户在空间里的相对位置。具有空间定位与位置追踪的VR设备不仅能更好地提供沉浸感,大幅降低产生的眩晕感,而且用户因为位移造成的画面不同步感完全消失,使得虚拟世界可以与用户身体保持一致的移动性。

目前,VR设备的空间位置追踪技术大都采用由外而内(Outside-in)式的位置追踪方案,例如:Lighthouse追踪系统(使用了激光+光敏传感器的方式)和Constellation系统(使用了外置摄像头+红外主动马克点的方式)。这两种方案都可以提供由外而内六自由度的空间位置跟踪。

以Lighthouse追踪系统为例,Lighthouse追踪系统是靠激光和光敏传感器来确定运动物体的位置。具体来说,两个激光发射器被安置在空间内的两个对角位置处,形成一个15×15英尺的长方体空间区域,激光发射器中有两排固定的LED灯用于发射激光束,每秒6次,每个激光发射器内设计有两个扫描模块,分别在水平和垂直方向轮流对定位空间发射激光扫描15×15英尺的空间区域。

VR设备(例如:头盔)上设置有多个(例如:超过70个)光敏传感器,激光束扫过的同时,头盔开始计数,光敏传感器接收到激光后,利用光敏传感器位置和接收到激光的时间,计算每个光敏传感器相对于激光发射器的准确位置,同一时间内激光束击中的光敏传感器足够多时,就能形成一个3D的模型,根据3D模型不仅能探测出头盔的位置,还可以捕捉到头盔的方向,从而实现六自由度的空间位置跟踪。

Outside-in空间位置追踪方案的主要优势是精度高,但对于VR设备和应用来说,还有诸多缺点:(1)需要固定安装辅助的激光扫描设备,激光扫描设备的安装和校准比较麻烦;(2)精度依赖于光敏传感器的分布,设备尺寸与外形受限;(3)缺乏可扩展性,时分复用,任意时刻只有一个激光扫描设备发光,多个激光扫描设备同时工作会产生干扰,计算精度变差;(4)激光扫描设备震动部件的震动易产生跟踪误差;(5)只能跟踪定位有光敏传感器的物体,导致用户移动时容易碰撞到障碍物;(6)只能跟踪定位特定范围内的移动,移动区域受限。

综上所述,现有Outside-in空间位置追踪方案,依赖于激光扫描设备发射的激光束进行定位,激光扫描设备安装校准麻烦,精度依赖于光敏传感器的分布,且只能跟踪特定范围内的移动,移动区域受限。



技术实现要素:

本发明实施例提供了一种空间位置追踪方法、装置及智能设备,用以解决现有空间位置追踪方案,依赖于激光扫描设备发射的激光束进行定位,激光扫描设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限的问题,以高精度实现六自由度空间位置追踪,同时无活动区域限制。

本发明实施例提供的一种空间位置的追踪方法,该方法包括:采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,所述运动数据包括相机的在空间中移动时的角速度和加速度;根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据;根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪。

本发明实施例提供的上述方法中,通过采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据,进而根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪,与现有空间位置追踪方案,依赖于激光扫描设备发射的激光束进行定位,激光扫描设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限相比,无需使用激光扫描设备即可实现对相机在空间中的位置进行追踪,从而避免了使用激光扫描设备时设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限的问题,在以高精度实现六自由度空间位置追踪的同时,无活动区域限制。

在一种可能的实施方式中,本发明实施例提供的上述方法中,所述根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,包括:针对相机拍摄任一帧图像的时刻,根据当前时刻与前一时刻之间相机的运动数据、当前帧彩色图像和深度图像、缓存的前一帧彩色图像以及缓存的全局3D点云数据,确定当前时刻相机在空间中的位姿数据;其中,所述全局3D点云数据包括多个点云数据,每个点云数据用于标识相机移动时视野中一个空间点的坐标信息,且所述每一空间点的坐标信息是以相机初始位置为坐标原点计算生成的。

在一种可能的实施方式中,本发明实施例提供的上述方法中,所述根据当前时刻与前一时刻之间相机的运动数据、当前帧彩色图像和深度图像、缓存的前一帧彩色图像以及缓存的全局3D点云数据,确定当前时刻相机在空间中的位姿数据,包括:根据当前时刻以及前一时刻之间相机的运动数据,确定相机移动之后的初始位姿数据;将当前帧彩色图像与前一帧彩色图像进行对比,在当前帧彩色图像和前一帧彩色图像之间进行特征点匹配,根据匹配结果生成特征点跟踪数据,其中,所述特征点跟踪数据包括匹配成功的特征点,所述特征点包括彩色图像中灰度值发生变化位置处的一个或多个像素点;对所述初始位姿数据以及所述特征点跟踪数据进行滤波处理,利用所述特征点跟踪数据对所述初始位姿数据进行校准,确定相机移动之后的中间位姿数据;基于当前帧深度图像,生成局部3D点云数据,其中,所述局部3D点云数据中包括多个点云数据,每个点云数据用于标识当前时刻相机视野中一个空间点的坐标信息,且所述每一空间点的坐标信息是以相机当前所在位置为坐标原点计算生成的;基于所述中间位姿数据、所述局部3D点云数据以及缓存的全局3D点云数据,利用第一优化策略对所述中间位姿数据进行优化,确定相机移动之后的目标位姿数据,并将所述目标位姿数据确定为当前时刻相机在空间中的位姿数据。

在一种可能的实施方式中,本发明实施例提供的上述方法中,在基于当前帧深度图像,生成局部3D点云数据之前,该方法还包括:基于当前帧彩色图像,对当前帧深度图像进行配准;所述基于当前帧深度图像,生成局部3D点云数据,包括:基于配准后的深度图像,生成局部3D点云数据。

在一种可能的实施方式中,本发明实施例提供的上述方法中,所述基于所述中间位姿数据、所述局部3D点云数据以及缓存的全局3D点云数据,利用第一优化策略对所述中间位姿数据进行优化,确定相机移动之后的目标位姿数据,包括:基于所述中间位姿数据,将局部3D点云数据中的点云数据转换为以相机的初始位置为坐标原点的点云数据,得到转换后的局部3D点云数据;利用第一优化策略将转换后的局部3D点云数据与全局3D点云数据进行融合,并确定转换后的局部3D点云数据与全局3D点云数据融合时的调整数据;利用所述调整数据对所述中间位姿数据进行修正,得到相机移动之后的目标位姿数据。

在一种可能的实施方式中,本发明实施例提供的上述方法中,在利用第一优化策略将转换后的局部3D点云数据与全局3D点云数据进行融合之后,该方法还包括:利用融合后的全局3D点云数据对缓存的全局3D点云数据进行第一次更新。

在一种可能的实施方式中,本发明实施例提供的上述方法中,该方法还包括:利用预设规则判断当前帧彩色图像是否为多帧彩色图像中的关键帧;在判定当前帧彩色图像为多帧彩色图像中的关键帧条件下,确定与当前帧彩色图像空间相关联的所有关键帧;利用第二优化策略对第一次更新后的全局3D点云数据、当前帧对应时刻相机在空间中的位姿数据以及缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行非线性优化;利用优化结果对缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行更新,对确定出的当前帧对应时刻相机在空间中的位姿数据进行更新以及对第一次更新后的全局3D点云数据进行第二次更新,并缓存当前帧的彩色图像。

在一种可能的实施方式中,本发明实施例提供的上述方法中,在确定当前帧彩色图像为多帧彩色图像中的关键帧条件下,该方法还包括:判断相机移动过的路径是否构成闭环;在判定相机移动过的路径构成闭环的条件下,利用第三优化策略对缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据以及第二次更新后的全局3D点云数据进行优化;利用优化结果对缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据进行更新,以及对第二次更新后的全局3D点云数据进行第三次更新。

在一种可能的实施方式中,本发明实施例提供的上述方法中,所述判断相机移动过的路径是否构成闭环,包括:基于词袋算法分别计算当前帧彩色图像与目标关键帧集合中每一关键帧彩色图像之间的相似度;若确定当前帧彩色图像与目标关键帧集合中任一关键帧彩色图像的相似度大于预设相似度阈值,则判定相机在拍摄该关键帧的位置以及拍摄当前帧所在位置之间移动过的路径构成闭环,否则,判定相机移动过的路径未构成闭环,其中,所述目标关键帧集合中包括与当前帧空间相关联的所有关键帧。

在一种可能的实施方式中,本发明实施例提供的上述方法中,所述确定与当前帧彩色图像空间相关联的所有关键帧,包括:在利用第一优化策略将转换后的基于当前帧生成的局部3D点云数据与缓存的全局3D点云数据进行融合之后,在融合后的全局3D点云数据中,针对每一关键帧,判断当前帧与该关键帧之间的公共点云数据是否大于预设数量阈值,若判定结果为是,则确定该关键帧与当前帧空间相关联。

本发明实施例提供的一种空间位置的追踪装置,该装置包括:采集单元,用于采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,所述运动数据包括相机的在空间中移动时的角速度和加速度;处理单元,用于根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据;位置追踪单元,用于根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪。

本发明实施例提供的上述装置中,通过采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据,进而根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪,与现有空间位置追踪方案,依赖于激光扫描设备发射的激光束进行定位,激光扫描设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限相比,无需使用激光扫描设备即可实现对相机在空间中的位置进行追踪,从而避免了使用激光扫描设备时设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限的问题,在以高精度实现六自由度空间位置追踪的同时,无活动区域限制。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,具体用于:针对相机拍摄任一帧图像的时刻,根据当前时刻与前一时刻之间相机的运动数据、当前帧彩色图像和深度图像、缓存单元缓存的前一帧彩色图像以及所述缓存单元缓存的全局3D点云数据,确定当前时刻相机在空间中的位姿数据;其中,所述全局3D点云数据包括多个点云数据,每个点云数据用于标识相机移动时视野中一个空间点的坐标信息,且所述每一空间点的坐标信息是以相机初始位置为坐标原点计算生成的。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元根据当前时刻与前一时刻之间相机的运动数据、当前帧彩色图像和深度图像、缓存单元缓存的前一帧彩色图像以及所述缓存单元缓存的全局3D点云数据,确定当前时刻相机在空间中的位姿数据,具体用于:根据当前时刻以及前一时刻之间相机的运动数据,确定相机移动之后的初始位姿数据;将当前帧彩色图像与前一帧彩色图像进行对比,在当前帧彩色图像和前一帧彩色图像之间进行特征点匹配,根据匹配结果生成特征点跟踪数据,其中,所述特征点跟踪数据包括匹配成功的特征点,所述特征点包括彩色图像中灰度值发生变化位置处的一个或多个像素点;对所述初始位姿数据以及所述特征点跟踪数据进行滤波处理,利用所述特征点跟踪数据对所述初始位姿数据进行校准,确定相机移动之后的中间位姿数据;基于当前帧深度图像,生成局部3D点云数据,其中,所述局部3D点云数据中包括多个点云数据,每个点云数据用于标识当前时刻相机视野中一个空间点的坐标信息,且所述每一空间点的坐标信息是以相机当前所在位置为坐标原点计算生成的;基于所述中间位姿数据、所述局部3D点云数据以及所述缓存单元缓存的全局3D点云数据,利用第一优化策略对所述中间位姿数据进行优化,确定相机移动之后的目标位姿数据,并将所述目标位姿数据确定为当前时刻相机在空间中的位姿数据。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元还用于:在基于当前帧深度图像,生成局部3D点云数据之前,基于当前帧彩色图像,对当前帧深度图像进行配准;则所述处理单元基于当前帧深度图像,生成局部3D点云数据,具体用于:基于配准后的深度图像,生成局部3D点云数据。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元基于所述中间位姿数据、所述局部3D点云数据以及所述缓存单元缓存的全局3D点云数据,利用第一优化策略对所述中间位姿数据进行优化,确定相机移动之后的目标位姿数据,具体用于:基于所述中间位姿数据,将局部3D点云数据中的点云数据转换为以相机的初始位置为坐标原点的点云数据,得到转换后的局部3D点云数据;利用第一优化策略将转换后的局部3D点云数据与全局3D点云数据进行融合,并确定转换后的局部3D点云数据与全局3D点云数据融合时的调整数据;利用所述调整数据对所述中间位姿数据进行修正,得到相机移动之后的目标位姿数据。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元,还用于:在利用第一优化策略将转换后的局部3D点云数据与全局3D点云数据进行融合之后,利用融合后的全局3D点云数据对所述缓存单元中缓存的全局3D点云数据进行第一次更新。

在一种可能的实施方式中,本发明实施例提供的上述装置中,该装置还包括:关键帧判断单元,用于利用预设规则判断当前帧彩色图像是否为多帧彩色图像中的关键帧;关联关键帧确定单元,用于在判定当前帧彩色图像为多帧彩色图像中的关键帧条件下,确定与当前帧彩色图像空间相关联的所有关键帧;第一优化处理单元,用于利用第二优化策略对第一次更新后的全局3D点云数据、当前帧对应时刻相机在空间中的位姿数据以及所述缓存单元缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行非线性优化;第一数据更新单元,用于利用优化结果对所述缓存单元中缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行更新,对确定出的当前时刻相机在空间中的位姿数据进行更新,以及对第一次更新后的全局3D点云数据进行第二次更新;所述缓存单元,还用于缓存当前帧的彩色图像。

在一种可能的实施方式中,本发明实施例提供的上述装置中,该装置还包括:闭环判断单元,用于在确定当前帧彩色图像为多帧彩色图像中的关键帧条件下,判断相机移动过的路径是否构成闭环;第二优化处理单元,用于在判定相机移动过的路径构成闭环的条件下,利用第三优化策略对所述缓存单元缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据以及第二次更新后的全局3D点云数据进行优化;第二数据更新单元,用于利用优化结果对所述缓存单元中缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据进行更新,以及对第二次更新后的全局3D点云数据进行第三次更新。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述闭环判断单元,具体用于:基于词袋算法分别计算当前帧彩色图像与目标关键帧集合中每一关键帧彩色图像之间的相似度;若确定当前帧彩色图像与目标关键帧集合中任一关键帧彩色图像的相似度大于预设相似度阈值,则判定相机在拍摄该关键帧的位置以及拍摄当前帧所在位置之间移动过的路径构成闭环,否则,判定相机移动过的路径未构成闭环,其中,所述目标关键帧集合中包括与当前帧空间相关联的所有关键帧。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述关联关键帧确定单元,具体用于:在利用第一优化策略将转换后的基于当前帧生成的局部3D点云数据与所述缓存单元缓存的全局3D点云数据进行融合之后,在融合后的全局3D点云数据中,针对每一关键帧,判断当前帧与该关键帧之间的公共点云数据是否大于预设数量阈值,若判定结果为是,则确定该关键帧与当前帧空间相关联。

本发明实施例提供的一种智能设备,所述智能设备包括本发明上述实施例提供的空间位置追踪装置。

本发明实施例提供的上述智能设备中,通过在智能设备中增加本发明实施例提供的空间位置追踪装置,从而能够通过采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据,进而根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪,也即对智能设备在空间中的位姿进行追踪,与现有空间位置追踪方案,依赖于激光扫描设备发射的激光束进行定位,激光扫描设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限相比,无需使用激光扫描设备即可实现对相机在空间中的位置进行追踪,从而避免了使用激光扫描设备时设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限的问题,在以高精度实现六自由度空间位置追踪的同时,无活动区域限制。

附图说明

图1为本发明实施例提供的一种空间位置追踪方法的示意流程图;

图2为本发明实施例提供的一种确定相机在空间中位姿数据的示意流程图;

图3为本发明实施例提供的一种空间位置追踪方法的具体流程的示意流程图;

图4为本发明实施例提供的一种空间位置追踪装置的结构示意图。

具体实施方式

下面结合附图,对本发明实施例提供的一种空间位置追踪方法、装置及智能设备的具体实施方式进行详细地说明。

本发明实施例提供的一种空间位置的追踪方法,如图1所示,该方法包括:

步骤102,采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,运动数据包括相机的在空间中移动时的角速度和加速度。

本步骤中,相机的运动数据,也即相机在空间中移动时的角速度和加速度可以通过惯性测量单元(Inertial measurement unit,IMU)进行测量,而惯性测量单元可以安装在相机中,也可以与相机一起安装在智能设备中,本发明对此不做具体限定,其中,智能设备包括但不限于:VR设备、AR设备、机器人、无人机以及移动终端(例如:手机、平板电脑等)。彩色图像和深度图像,可以直接由相机进行拍摄。

值得说明的是,本发明实施例中采集相机拍摄的彩色图像和深度图像,用于对相机在空间中的位置进行追踪,而在本发明其它实施例中,也可以采集相机所拍摄的灰度图像和深度图像,用于对相机在空间中的位置进行追踪,其中,彩色图像可以通过RGB摄像头进行拍摄,灰度图像可以通过灰度摄像头进行拍摄,深度图像采用深度摄像头进行拍摄,深度图像中像素值的大小反映了物体离相机的远近距离。

步骤104,根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据。

具体实施时,在采集到相机的运动数据以及相机所拍摄的彩色图像和深度图像之后,即可根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,也即确定出相机每次移动后的位姿数据,进而得到多个时刻相机在空间中的位姿数据,而由于相机安装在智能设备中,因此,相机在空间中的位姿数据,也即每次移动后智能设备的位姿数据。

值得说明的是,本发明实施例中所提到的相机拍摄每帧图像的时刻相机在空间中的位姿数据,包括:相机拍摄每帧图像的时刻相机在空间中的位置数据和姿态数据。

步骤106,根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪。

具体实施时,确定出多个时刻相机在空间中的位姿数据之后,根据多个时刻之间的时间顺序,即可对相机在空间中的位置进行追踪,其中,根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪的方法,可以采用现有技术中的方法,此处不再赘述。

本发明实施例提供的方法中,通过采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据,进而根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪,与现有空间位置追踪方案,依赖于激光扫描设备发射的激光束进行定位,激光扫描设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限相比,无需使用激光扫描设备即可实现对相机在空间中的位置进行追踪,从而避免了使用激光扫描设备时设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限的问题,在以高精度实现六自由度空间位置追踪的同时,无活动区域限制。

在一种可能的实施方式中,本发明实施例提供的方法中,根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,包括:针对相机拍摄任一帧图像的时刻,根据当前时刻与前一时刻之间相机的运动数据、当前帧彩色图像和深度图像、缓存的前一帧彩色图像以及缓存的全局3D点云数据,确定当前时刻相机在空间中的位姿数据;其中,全局3D点云数据包括多个点云数据,每个点云数据用于标识相机移动时视野中一个空间点的坐标信息,且每一空间点的坐标信息是以相机初始位置为坐标原点计算生成的。

较为优选地,在确定当前时刻相机在空间中的位姿数据时,还需要根据相机前一时刻在空间中的位姿数据,也即针对相机拍摄任一帧图像的时刻,根据当前时刻与前一时刻之间相机的运动数据、当前帧彩色图像和深度图像、缓存的前一帧彩色图像、缓存的全局3D点云数据以及前一时刻相机在空间中的位姿数据,确定当前时刻相机在空间中的位姿数据。

其中,本发明实施例,缓存的前一帧彩色图像是实时更新的,具体来说,针对第二帧彩色图像而言,缓存的前一帧彩色图像是相机开机之后采集的第一帧彩色图像,而针对第三帧彩色图像而言,缓存的前一帧彩色图像则是指相机采集的第二帧彩色图像,以此类推。因此,缓存的前一帧彩色图像需要实时更新,以保证确定出的相机在空间中的位置的准确性。

具体实施时,根据当前时刻与前一时刻之间相机的运动数据、当前帧彩色图像和深度图像、缓存的前一帧彩色图像以及缓存的全局3D点云数据,确定当前时刻相机在空间中的位姿数据,如图2所示,包括:

步骤202,根据当前时刻以及前一时刻之间相机的运动数据,确定相机移动之后的初始位姿数据。

具体实施时,根据当前时刻以及前一时刻之间相机的运动数据,结合相机前一时刻在空间的位姿数据,即可确定出相机移动之后的初始位姿数据。

步骤204,将当前帧彩色图像与前一帧彩色图像进行对比,在当前帧彩色图像和前一帧彩色图像之间进行特征点匹配,根据匹配结果生成特征点跟踪数据,其中,特征点跟踪数据包括匹配成功的特征点,特征点包括彩色图像中灰度值发生变化位置处的一个或多个像素点。

本发明实施例中,将彩色图像中灰度值发生变化位置处的一个或多个像素点称为特征点,而彩色图像中灰度值不变位置处的像素点不作为特征点,当然,本领域技术人员应当理解的是,在本发明其它实施例中,还可以采用其它方法确定彩色图像中的特征点。

具体实施时,对于彩色图像中的每个特征点,建立特征点的描述数据,在将当前帧彩色图像与前一帧彩色图像进行对比,在当前帧彩色图像和前一帧彩色图像之间进行特征点匹配时,针对当前帧彩色图像中的每个特征点,例如:特征点A,计算该特征点A的描述数据与前一帧彩色图像中各个特征点描述数据之间的相似度,若该特征点A的描述数据与前一帧彩色图像中任一特征点描述数据之间的相似度大于预设相似度阈值,例如:该特征点A的描述数据与前一帧彩色图像中特征点B描述数据之间的相似度大于预设相似度阈值,则确定当前帧彩色图像中的特征点A和前一帧彩色图像中的特征点B匹配成功。其中,预设相似度阈值可以自由设定,例如:预设阈值取值为90%,计算两个特征点描述数据之间的相似度的方法可以采用现有技术中的方法,此处不再赘述。

当然,在本发明其它实施例中,在将当前帧彩色图像与前一帧彩色图像进行对比,在当前帧彩色图像和前一帧彩色图像之间进行特征点匹配时,还可以将当前帧彩色图像中的特征点A的描述数据与另一指定帧彩色图像中的特征点C的描述数据进行相似度计算,然后将前一帧彩色图像中的特征点B的描述数据与另一指定帧彩色图像中的特征点C的描述数据进行相似度计算,若当前帧彩色图像中的特征点A的描述数据以及前一帧彩色图像中的特征点B的描述数据与另一指定帧彩色图像中的特征点C的描述数据的相似度均大于预设相似度阈值,则确定当前帧彩色图像中的特征点A和前一帧彩色图像中的特征点B匹配成功。较为优选地,指定帧彩色图像为多帧彩色图像中关键帧的彩色图像。

具体实施时,在确定出所有匹配成功的特征点之后,该方法还包括:确定匹配成功的特征点的数量是否大于预设特征点数量阈值,若匹配成功的特征点的数量大于预设特征点数量阈值,则确定匹配成功,利用所有匹配成功的特征点生成特征点跟踪数据,若匹配成功的特征点的数量小于或者等于预设特征点数量阈值,则确定匹配失败,则将当前帧彩色图像与当前时刻之前的各关键帧彩色图像分别进行对比,在当前帧彩色图像和当前时刻之前的关键帧彩色图像之间分别进行特征点匹配,直至匹配成功,利用所有匹配成功的特征点生成特征点跟踪数据,当然,若当前帧彩色图像与当前时刻之前所有关键帧彩色图像之间匹配成功的特征点的数量均小于或等于预设特征点数量阈值,也即当前帧彩色图像与当前时刻之前所有关键帧彩色图像均匹配失败,则不生成特征点跟踪数据。其中,在将当前帧彩色图像和当前时刻之前的关键帧彩色图像分别进行特征点匹配时,较为优选地,根据拍摄每一关键帧的时刻与当前时刻的时间关系顺序进行。其中,预设特征点数量阈值可以根据实际情况自由设定,例如:预设特征点数量阈值的取值为30。

需要说明的是,本发明具体实施时,需要缓存每一关键帧的彩色图像,以在生成特征点跟踪数据时使用,具体确定多帧彩色图像中关键帧的方法将在本发明其它实施例中进行详细说明,此处不再赘述。

作为较为具体的实施例,假设拍摄关键帧A的时刻为00:05,拍摄关键帧B的时刻为00:15,拍摄关键帧C的时刻为00:20,拍摄前一帧彩色图像的时刻为00:21,拍摄当前帧彩色图像的时刻,也即当前时刻为00:22,则生成特征点跟踪数据时,先将当前帧彩色图像与前一帧彩色图像进行对比,在当前帧彩色图像和前一帧彩色图像之间进行特征点匹配,若当前帧彩色图像与前一帧彩色图像之间匹配成功的特征点数量大于预设特征点数量阈值,则确定匹配成功,利用所有匹配成功的特征点生成特征点跟踪数据,若当前帧彩色图像与前一帧彩色图像之间匹配成功的特征点数量小于或等于预设特征点数量阈值,则确定匹配失败,则在当前帧彩色图像和关键帧C的彩色图像之间进行特征点匹配,若匹配成功,利用所有匹配成功的特征点生成特征点跟踪数据,若匹配失败,则在当前帧彩色图像和关键帧B的彩色图像之间进行特征点匹配,若匹配成功,利用所有匹配成功的特征点生成特征点跟踪数据,若匹配失败,则在当前帧彩色图像和关键帧A的彩色图像之间进行特征点匹配,若匹配成功,利用所有匹配成功的特征点生成特征点跟踪数据,若匹配失败,则不生成特征点跟踪数据。

步骤206,对初始位姿数据以及特征点跟踪数据进行滤波处理,利用特征点跟踪数据对初始位姿数据进行校准,确定相机移动之后的中间位姿数据。

具体实施时,对初始位姿数据以及特征点跟踪数据进行滤波处理,可以利用卡尔曼滤波器对初始位姿数据以及特征点跟踪数据进行滤波处理,以利用特征点跟踪数据对初始位姿数据进行校准,从而得到校准后的位姿数据,也即相机移动之后的中间位姿数据。当然,本发明实施例中利用卡尔曼滤波器对初始位姿数据以及特征点跟踪数据进行滤波处理,在本发明其它实施例中还可以使用其它滤波方法,例如:滑动窗口滤波、粒子滤波等,此处并不用于具体限定。

步骤208,基于当前帧深度图像,生成局部3D点云数据,其中,局部3D点云数据中包括多个点云数据,每个点云数据用于标识当前时刻相机视野中一个空间点的坐标信息,且每一空间点的坐标信息是以相机当前所在位置为坐标原点计算生成的。

较为优选地,为了提高生成局部3D点云数据的准确性,在基于当前帧深度图像,生成局部3D点云数据之前,该方法还包括:基于当前帧彩色图像,对当前帧深度图像进行配准;基于当前帧深度图像,生成局部3D点云数据,包括:基于配准后的深度图像,生成局部3D点云数据。

值得说明的是,由于彩色图像和深度图像是通过两个或多个位于不同位置处的摄像机拍摄,因此,同一时刻拍摄的彩色图像和深度图像所拍摄的场景会存在一定差别,而基于当前帧彩色图像,对当前帧深度图像进行配准,即是以当前帧彩色图像为基准,移动当前帧深度图像中的像素,使得针对同一物体同一位置,当前帧深度图像中该位置对应的像素以及彩色图像中该位置对应的像素处于相同的坐标。

在基于当前帧彩色图像,对当前帧深度图像进行配准之后,基于配准后的深度图像,生成局部3D点云数据,局部3D点云数据中包括多个点云数据,每个点云数据用于标识当前时刻相机视野中一个空间点的坐标信息,且每一空间点的坐标信息是以相机当前所在位置为坐标原点计算生成的。其中,基于配准后的深度图像,生成局部3D点云数据可以采用现有技术中的方法,此处不再赘述。

值得说明的是,步骤202、步骤204以及步骤208的实施顺序可以是任意的,并不限于本实施例中提到的顺序,当然,步骤206需要在步骤202和步骤204之后实施。

步骤210,基于中间位姿数据、局部3D点云数据以及缓存的全局3D点云数据,利用第一优化策略对中间位姿数据进行优化,确定相机移动之后的目标位姿数据,并将目标位姿数据确定为当前时刻相机在空间中的位姿数据。

其中,第一优化策略可以使用就近点搜索(Iterative Closest Point,ICP)算法,当然,也可以使用其它算法,此处并不用于具体限定。

本发明实施例中缓存的全局3D点云数据,是指从相机开机开始,实时采集深度图像,并基于采集的每帧深度图像生成局部3D点云数据,然后将所有局部3D点云数据进行融合生成的。

作为较为具体的实施例,在相机开机之后,采集第一帧深度图像,基于第一帧深度图像生成局部3D点云数据,由于基于第一帧深度图像生成的局部3D点云数据是以相机当前的位置为坐标原点,而相机当前的位置也是相机的初始位置,全局3D点云数据是以相机初始位置为坐标原点计算的,因此,基于第一帧深度图像生成的局部3D点云数据,无需经过转换,就是全局3D点云数据,假设将此时的全局3D点云数据(也即基于第一帧深度图像生成的局部3D点云数据)记为M1,则缓存全局3D点云数据M1。

相机移动一次之后,采集第二帧深度图像,并基于第二帧深度图像生成局部3D点云数据,则在确定采集第二帧深度图像时刻相机在空间中的位姿数据时,所使用的缓存的全局3D点云数据,即为全局3D点云数据M1,在确定采集第二帧深度图像时刻相机在空间中的位姿数据之后,将基于第二帧深度图像生成的局部3D点云数据中的点云数据转换为以相机初始位置为坐标原点的点云数据,得到转换后的局部3D点云数据,并将转换后的局部3D点云数据与全局3D点云数据M1进行融合,得到全局3D点云数据M2,并使用全局3D点云数据M2更新缓存中的全局3D点云数据M1,此时缓存的全局3D点云数据更新为全局3D点云数据M2。

依次类推,在相机再次移动之后,采集第三帧深度图像,则在确定采集第三帧深度图像时刻相机在空间中的位姿数据时,所使用的缓存的全局3D点云数据即为全局3D点云数据M2,同时在确定采集第三帧深度图像时刻相机在空间中的位姿数据之后,同样需要将基于第三帧深度图像生成的局部3D点云数据融合到全局3D点云数据M2中,并更新缓存中的全局3D点云数据,以在确定采集下一帧深度图像时刻相机在空间中的位姿数据时使用。

相机每采集一帧深度图像,则更新一次缓存中的全局3D点云数据,更新过程与采集第二帧深度图像以及第三帧深度图像的更新过程类似,此处不再赘述。其中,将转换后的局部3D点云数据与缓存的全局3D点云数据进行融合,包括以下两种情况,具体来说:

情况一、针对空间中任一点,若在转换后的局部3D点云数据以及全局3D点云数据中均存在该点对应的点云数据,则确定转换后的局部3D点云数据中该点对应点云数据的描述数据与全局3D点云数据中该点对应点云数据的描述数据是否相同,若相同,则不需要进行修正,若不同,则需要对转换后的局部3D点云数据中该点的点云数据(或者对点云数据的描述数据)进行修正,使得转换后的局部3D点云数据中该点对应点云数据的描述数据与全局3D点云数据中该点对应点云数据的描述数据相同。当然,在本发明其它实施例中,在将转换后的局部3D点云数据与缓存的全局3D点云数据进行融合时,也可以对全局3D点云数据中该点对应的点云数据(或者对点云数据的描述数据)进行修正,或者同时对转换后的局部3D点云数据中该点对应的点云数据(或者对点云数据的描述数据)和全局3D点云数据中该点对应的点云数据(或者对点云数据的描述数据)进行修正。

情况二、针对空间中的任一点,若在转换后的局部3D点云数据中存在该点对应的点云数据,而在全局3D点云数据中不存在该点对应的点云数据,则将该点在转换后的局部3D点云数据中对应的点云数据增加到全局3D点云数据中。

需要说明的是,本发明实施例通过不断的计算全局3D点云数据,在基于全局3D点云数据对相机在空间中的位置进行追踪的同时,还可以对相机移动经过的场景进行三维重建,用在AR设备上可以提供更加逼真的AR效果,用在VR设备上可以探测障碍物并提示,基于全局3D点云数据对场景的三维重建,也可以用在机器人以及无人机等智能移动设备的障碍物规避方面。

具体实施时,基于中间位姿数据、局部3D点云数据以及缓存的全局3D点云数据,利用第一优化策略对中间位姿数据进行优化,确定相机移动之后的目标位姿数据,包括:基于中间位姿数据,将局部3D点云数据中的点云数据转换为以相机的初始位置为坐标原点的点云数据,得到转换后的局部3D点云数据;利用第一优化策略将转换后的局部3D点云数据与全局3D点云数据进行融合,并确定转换后的局部3D点云数据与全局3D点云数据融合时的调整数据;利用调整数据对中间位姿数据进行修正,得到相机移动之后的目标位姿数据。

具体来说,由于局部3D点云数据中的点云数据是以相机当前所在位置为坐标原点计算生成的,而全局3D点云数据是以相机初始位置为坐标原点计算生成的,因此,可以基于预设的转换规则将局部3D点云数据中的点云数据转换为以相机的初始位置为坐标原点的点云数据,得到转换后的局部3D点云数据。在计算得到转换后的局部3D点云数据之后,利用第一优化策略(例如:ICP算法)将转换后的局部3D点云数据与全局3D点云数据进行融合,并确定转换后的局部3D点云数据与全局3D点云数据融合时的调整数据,进而可以根据调整数据对中间位姿数据进行修正,得到相机移动之后的目标位姿数据,也即得到相机移动之后在空间中的位姿数据。其中,转换后的局部3D点云数据与全局3D点云数据融合过程中的调整数据,包括以下两种中的至少一种:

一、对点云数据(或者点云数据的描述数据)的修正数据,具体来说:

针对空间中任一点,若在转换后的局部3D点云数据以及全局3D点云数据中均存在该点对应的点云数据,则确定转换后的局部3D点云数据中该点对应点云数据的描述数据与全局3D点云数据中该点对应点云数据的描述数据是否相同,若相同,则不需要进行修正,若不同,则需要对转换后的局部3D点云数据中该点的点云数据(或者对点云数据的描述数据)进行修正,使得转换后的局部3D点云数据中该点对应点云数据的描述数据与全局3D点云数据中该点对应点云数据的描述数据相同。当然,在本发明其它实施例中,在将转换后的局部3D点云数据与缓存的全局3D点云数据进行融合时,也可以对全局3D点云数据中该点对应的点云数据(或者对点云数据的描述数据)进行修正,或者同时对转换后的局部3D点云数据中该点对应的点云数据(或者对点云数据的描述数据)和全局3D点云数据中该点对应的点云数据(或者对点云数据的描述数据)进行修正。

二、新增的点云数据,具体来说:

针对空间中的任一点,若在转换后的局部3D点云数据中存在该点对应的点云数据,而在全局3D点云数据中不存在该点对应的点云数据,则将该点在转换后的局部3D点云数据中对应的点云数据增加到全局3D点云数据中。

具体实施时,根据调整数据对中间位姿数据进行修正,包括:根据修正数据以及新增的点云数据对中间位姿数据进行修正,以得到更加准确的位姿数据,并将得到的位姿数据作为相机移动之后在空间中的位姿数据。具体修正方式可以采用现有技术中的方式,此处不再赘述。

较为优选地,在利用第一优化策略将转换后的局部3D点云数据与全局3D点云数据进行融合之后,该方法还包括:利用融合后的全局3D点云数据对缓存的全局3D点云数据进行第一次更新。

具体实施时,在利用第一优化策略将转换后的局部3D点云数据与全局3D点云数据进行融合之后,利用融合后的全局3D点云数据对缓存的全局3D点云数据进行更新,以保证下一时刻确定相机在空间中的位姿数据时,使用的全局3D点云数据为包含当前帧的局部3D点云数据的最新的全局3D点云数据,以进一步提高确定出的相机在空间中的位姿数据的准确性。

本发明实施例中,为了提高全局3D点云数据的准确性,并提高基于全局3D点云数据计算得到的相机在空间中的位姿数据的准确性,还可以对全局3D点云数据进行优化,并更新缓存的全局3D点云数据,具体来说:

在一种可能的实施方式中,本发明实施例提供的方法中,该方法还包括:利用预设规则判断当前帧彩色图像是否为多帧彩色图像中的关键帧;在判定当前帧彩色图像为多帧彩色图像中的关键帧条件下,确定与当前帧彩色图像空间相关联的所有关键帧;利用第二优化策略对第一次更新后的全局3D点云数据、当前帧对应时刻相机在空间中的位姿数据以及缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行非线性优化;利用优化结果对缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行更新,对确定出的当前帧对应时刻相机在空间中的位姿数据进行更新以及对第一次更新后的全局3D点云数据进行第二次更新,并缓存当前帧的彩色图像。

值得说明的是,本发明实施例中的关键帧的选取原则是:与前一关键帧彩色图像包括共同场景,且共同场景在当前帧彩色图像中的占比处于预设阈值范围内,以在完全表示场景信息的同时,避免选择过多的冗余关键帧,则预设规则可以包括:当前帧彩色图像与前一关键帧彩色图像之间存在共同场景,且共同场景在当前帧彩色图像中的占比处于预设阈值范围内。其中,预设阈值范围可以根据实际需要进行设定,例如:预设阈值范围为区域[40%,80%]。具体实施时,确定当前帧与前一关键帧之间是否存在共同场景,以及存在共同场景的条件下,确定共同场景在当前帧彩色图像中的占比是否处于预设阈值范围内均可以采用现有技术中的方法,此处不再赘述。

当然,在本发明其它实施例中,也可以采用其它方式判断当前帧彩色图像是否为多帧彩色图像中的关键帧,也即预设规则还可以包括其它规则,例如:当前帧彩色图像与前一帧关键帧彩色图像之间存在共同特征点,且共同特征点的数量处于预设特征点阈值范围。其中,预设特征点阈值范围根据实际需要进行设定,例如:预设特征点阈值范围为区间[20,40]。

其中,在判定当前帧彩色图像为多帧彩色图像中的关键帧条件下,确定与当前帧彩色图像空间相关联的所有关键帧,包括:在利用第一优化策略将转换后的基于当前帧生成的局部3D点云数据与缓存的全局3D点云数据进行融合之后,在融合后的全局3D点云数据中,针对每一关键帧,判断当前帧与该关键帧之间的公共点云数据是否大于预设数量阈值,若判定结果为是,则确定该关键帧与当前帧空间相关联。具体实施时,确定与当前帧彩色图像空间相关联的所有关键帧,包括以下两种实施方式。

实施方式一、

在利用第一优化策略将转换后的基于当前帧生成的局部3D点云数据与缓存的全局3D点云数据进行融合之后,在融合后的全局3D点云数据中确定当前帧视野中空间点的点云数据集合,其中,当前帧视野中空间点的点云数据集合包括:基于当前帧生成的局部3D点云数据中每个空间点在融合后的全局3D点云数据中对应的点云数据;针对缓存的每一关键帧视野中空间点的点云数据集合:判断当前帧视野中空间点的点云数据集合与该关键帧视野中空间点的点云数据集合之间公共点云数据的数量是否大于预设数量阈值,若判定结果为是,则确定该关键帧与当前帧空间相关联。

其中,当前帧视野中空间点的点云数据集合是指针对基于当前帧深度图像,生成的局部3D点云数据,在将局部3D点云数据转换到以相机初始位置为坐标原点,且与全局3D点云数据融合之后,由局部3D点云数据中每个点云数据在融合后全局3D点云数据中对应的点云数据组成的集合。

作为较为具体的实施例,假设第一个局部3D点云数据中,包括点云数据A、点云数据B以及点云数据C,而第一个局部3D点云数据中的点云数据A、点云数据B以及点云数据C经过转换,并且与全局3D点云数据融合之后分别得到点云数据a、点云数据b以及点云数据c,第二个局部3D点云数据中,包括点云数据D和点云数据E,而第二个局部3D点云数据中的点云数据D和点云数据E经过转换,并且与全局3D点云数据融合之后分别得到点云数据d和点云数据e,则此时融合后的全局3D点云数据中包括:点云数据a、点云数据b、点云数据c、点云数据d以及点云数据e,由于全局3D点云数据中的点云数据a与第一局部3D点云数据中的点云数据A相对应,全局3D点云数据中的点云数据b与第一局部3D点云数据中的点云数据B相对应,全局3D点云数据中的点云数据c与第一局部3D点云数据中的点云数据C相对应,因此,第一局部3D点云数据对应帧视野中空间点的点云数据集合包括:点云数据a、点云数据b以及点云数据c,同理,第二局部3D点云数据对应帧视野中空间点的点云数据集合包括:点云数据d和点云数据e。本实施例中,第一局部3D点云数据和第二局部3D点云数据仅用于区分基于两帧不同深度图像生成的局部3D点云数据。

在确定当前帧视野中空间点的点云数据集合之后,针对缓存的每一关键帧视野中空间点的点云数据集合:判断当前帧视野中空间点的点云数据集合与该关键帧视野中空间点的点云数据集合之间公共点云数据的数量是否大于预设数量阈值,若判定结果为是,则确定该关键帧与当前帧空间相关联。其中,预设数量阈值可以根据实际需要自由设定。

作为较为具体的实施例,假设预设数量阈值为2,当前帧视野中空间点的点云数据集合中包括的点云数据为点云数据a、点云数据b、点云数据c、点云数据d以及点云数据e,而关键帧A视野中空间点的点云数据集合中包括的点云数据为点云数据a、点云数据b、点云数据c、点云数据f以及点云数据g,关键帧B视野中空间点的点云数据集合中包括的点云数据为点云数据p、点云数据b、点云数据i、点云数据f以及点云数据g,则当前帧视野中空间点的点云数据集合与关键帧A视野中空间点的点云数据集合之间公共点云数据的数量为3,大于预设数量阈值2,因此,关键帧A为当前帧空间相关联的关键帧,而当前帧视野中空间点的点云数据集合与关键帧B视野中空间点的点云数据集合之间公共点云数据的数量为1,小于预设数量阈值2,因此,关键帧B不是当前帧空间相关联的关键帧。

实施方式二

在缓存的全局3D点云数据中,记录每一点云数据所属的关键帧,在确定当前帧视野中空间点的点云数据集合之后,根据当前帧视野中空间点的点云数据集合以及缓存的全局3D点云数据中每一点云数据所属的关键帧,针对每一关键帧,判断当前帧与该关键帧之间的公共点云数据是否大于预设数量阈值,若判定结果为是,则确定该关键帧与当前帧空间相关联。

作为较为具体的实施例,假设预设数量阈值为3,当前帧视野中空间点的点云数据集合中包括点云数据a、点云数据b、点云数据c以及点云数据d,且当前帧之前有关键帧α、关键帧β以及关键帧γ,且已知在缓存的全局3D点云中,点云数据a属于关键帧α和关键帧β,点云数据b属于关键帧α和关键帧β,点云数据c属于关键帧α,点云数据d属于关键帧α和关键帧γ,则由此可以确定,当前帧与关键帧α之间公共点云数据为:点云数据a、点云数据b、点云数据c以及点云数据d,也即当前帧与关键帧α之间公共点云数据的数量为4个,大于预设数量阈值,因此,关键帧α与当前帧空间相关联,同理,当前帧与关键帧β之间公共点云数据的数量为2个,小于预设数量阈值,当前帧与关键帧γ之间公共点云数据的数量为1个,也小于预设数量阈值,因此,关键帧β和关键帧γ不与当前帧空间相关联。

在确定当前帧为多帧彩色图像中的关键帧,且确定与当前帧空间相关联的关键帧之后,利用第二优化策略对第一次更新后的全局3D点云数据、当前帧对应时刻相机在空间中的位姿数据以及缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行非线性优化;利用优化结果对缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行更新,对确定出的当前帧对应时刻相机在空间中的位姿数据进行更新以及对第一次更新后的全局3D点云数据进行第二次更新,并缓存当前帧的彩色图像。

其中,第二优化策略可以采用光束平差(Bundle Adjustment,BA)算法,当然,在本发明其它实施例中,也可以采用其它算法,例如:粒子滤波等算法。

在利用第二优化策略对第一次更新后的全局3D点云数据、当前帧对应时刻相机在空间中的位姿数据以及缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行非线性优化之后,利用优化结果对缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行更新,以保证为下一次优化提供更为准确的数据,而对第一次更新后的全局3D点云数据进行第二次更新,可以更进一步提高全局3D点云数据的准确性,从而提高确定出的下一时刻相机在空间中位姿数据的准确性。

本发明实施例中,对确定出的当前帧对应时刻相机在空间中的位姿数据进行更新,一方面能够提高对相机在空间中的位置进行追踪的准确性,另一方面便于当前帧成为其他关键帧空间相关联的关键帧时,对当前帧对应时刻相机在空间中的位姿数据进行优化。

当然,需要说明的是,在确定当前帧彩色图像为多帧彩色图像中的关键帧条件下,若先缓存当前帧对应时刻相机在空间中的位姿数据,则对确定出的当前帧对应时刻相机在空间中的位姿数据进行更新,具体为:对缓存的当前帧对应时刻相机在空间中的位姿数据进行更新;若在确定当前帧彩色图像为多帧彩色图像中的关键帧条件下,未缓存当前帧对应时刻相机在空间中的位姿数据,则对确定出的当前帧对应时刻相机在空间中的位姿数据进行更新,具体为:缓存优化后的当前帧对应时刻相机在空间中的位姿数据。

本发明实施例中,缓存当前帧的彩色图像用于确定下一时刻相机在空间中的中间位姿数据。较为优选地,在本发明其它实施例中,还可以缓存所有关键帧的彩色图像,以用于在当前帧彩色图像以及前一帧彩色图像之间进行特征点跟踪,具体利用关键帧的彩色图像,在当前帧彩色图像以及前一帧彩色图像之间进行特征点跟踪与本发明实施例中提到的特征点跟踪方法类似,此处不再赘述。

在一种可能的实施方式中,本发明实施例提供的方法中,在确定当前帧彩色图像为多帧彩色图像中的关键帧条件下,该方法还包括:判断相机移动过的路径是否构成闭环;在判定相机移动过的路径构成闭环的条件下,利用第三优化策略对缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据以及第二次更新后的全局3D点云数据进行优化;利用优化结果对缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据进行更新,以及对第二次更新后的全局3D点云数据进行第三次更新。

较为优选地,判断相机移动过的路径是否构成闭环,包括:基于词袋算法分别计算当前帧彩色图像与目标关键帧集合中每一关键帧彩色图像之间的相似度;若确定当前帧彩色图像与目标关键帧集合中任一关键帧彩色图像的相似度大于预设相似度阈值,则判定相机在拍摄该关键帧的位置以及拍摄当前帧所在位置之间移动过的路径构成闭环,否则,判定相机移动过的路径未构成闭环,其中,目标关键帧集合中包括与当前帧空间相关联的所有关键帧。

具体实施时,在判定相机移动过的路径构成闭环的条件下,利用第三优化策略对缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据以及第二次更新后的全局3D点云数据进行优化,其中,第三优化策略可以为SIM3优化算法,当然,还可以采用现有技术中的其它优化算法,此处并不用于具体限定。

在利用第三优化策略对缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据以及第二次更新后的全局3D点云数据进行优化之后,利用优化结果对缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据进行更新,以及对第二次更新后的全局3D点云数据进行第三次更新,以缓存更为准确的关键帧的位姿数据以及全局3D点云数据,提高计算下一时刻相机在空间中位姿数据的准确性。

本发明实施例在实施过程中,需要缓存当前时刻以及当前时刻之前所有关键帧的位姿数据、缓存全局3D点云数据以及缓存前一帧彩色图像,优选地,还需要缓存所有关键帧的彩色图像,当然,需要说明的是,本发明实施例中缓存的所有数据在确定每一时刻相机在空间中的位姿数据之后,都需要进行更新,以在确定下一时刻相机在空间中的位姿数据时使用,提高确定出的相机在空间中的位姿数据的准确性。

下面结合图3对本发明实施例提供的空间位置追踪方法进行详细说明,如图3所示,本发明实施例提供的空间位置追踪方法的具体步骤包括:

步骤302,采集彩色图像和深度图像以及前一时刻到当前时刻相机的运动数据;其中,相机的运动数据包括角速度和加速度,可以通过IMU进行测量,而彩色图像和深度图像可以直接通过相机拍摄。

步骤304,基于彩色图像,对深度图像进行配准,其中,对深度图像进行配准可以采用现有技术中的方法,此处不再赘述。

步骤306,基于配准后的深度图像,生成局部3D点云数据,其中,局部3D点云数据中包括多个点云数据,每个点云数据用于标识当前时刻相机视野中一个空间点的坐标信息,且每一空间点的坐标信息是以相机当前所在位置为坐标原点计算生成的。

步骤308,将当前帧彩色图像与前一帧彩色图像进行对比,生成特征点跟踪数据,其中,特征点跟踪数据包括匹配成功的特征点,特征点包括彩色图像中灰度值发生变化位置处的一个或多个像素点。

步骤310,根据前一时刻到当前时刻相机的运动数据,确定相机在空间中的初始位姿数据P0。

步骤312,对初始位姿数据P0以及特征点跟踪数据进行滤波处理,例如:进行卡尔曼滤波处理,利用特征点跟踪数据对初始位姿数据P0进行修正,得到相机在空间中的中间位姿数据P1。

步骤314,基于中间位姿数据、局部3D点云数据以及缓存的全局3D点云数据对中间位姿数据P1进行优化,得到当前时刻相机在空间中的目标位姿数据P2,其中,该目标位姿数据P2即为确定出的当前时刻相机在空间中的位姿数据。

步骤316,根据多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪。

当然,值得说明的是,本发明实施例在确定当前时刻相机在空间中的位姿数据之后,也可以输出当前时刻相机在空间中的位姿数据。

本发明实施例提供的一种空间位置的追踪装置,如图4所示,该装置包括:采集单元402,用于采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,运动数据包括相机的在空间中移动时的角速度和加速度;处理单元404,用于根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据;位置追踪单元406,用于根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪。

本发明实施例提供的装置中,通过采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据,进而根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪,与现有空间位置追踪方案,依赖于激光扫描设备发射的激光束进行定位,激光扫描设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限相比,无需使用激光扫描设备即可实现对相机在空间中的位置进行追踪,从而避免了使用激光扫描设备时设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限的问题,在以高精度实现六自由度空间位置追踪的同时,无活动区域限制。

在一种可能的实施方式中,本发明实施例提供的装置中,处理单元404根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,具体用于:针对相机拍摄任一帧图像的时刻,根据当前时刻与前一时刻之间相机的运动数据、当前帧彩色图像和深度图像、缓存单元408缓存的前一帧彩色图像以及缓存单元408缓存的全局3D点云数据,确定当前时刻相机在空间中的位姿数据;其中,全局3D点云数据包括多个点云数据,每个点云数据用于标识相机移动时视野中一个空间点的坐标信息,且每一空间点的坐标信息是以相机初始位置为坐标原点计算生成的。

在一种可能的实施方式中,本发明实施例提供的装置中,处理单元404根据当前时刻与前一时刻之间相机的运动数据、当前帧彩色图像和深度图像、缓存单元408缓存的前一帧彩色图像以及缓存单元408缓存的全局3D点云数据,确定当前时刻相机在空间中的位姿数据,具体用于:根据当前时刻以及前一时刻之间相机的运动数据,确定相机移动之后的初始位姿数据;将当前帧彩色图像与前一帧彩色图像进行对比,在当前帧彩色图像和前一帧彩色图像之间进行特征点匹配,根据匹配结果生成特征点跟踪数据,其中,特征点跟踪数据包括匹配成功的特征点,特征点包括彩色图像中灰度值发生变化位置处的一个或多个像素点;对初始位姿数据以及特征点跟踪数据进行滤波处理,利用特征点跟踪数据对初始位姿数据进行校准,确定相机移动之后的中间位姿数据;基于当前帧深度图像,生成局部3D点云数据,其中,局部3D点云数据中包括多个点云数据,每个点云数据用于标识当前时刻相机视野中一个空间点的坐标信息,且每一空间点的坐标信息是以相机当前所在位置为坐标原点计算生成的;基于中间位姿数据、局部3D点云数据以及缓存单元408缓存的全局3D点云数据,利用第一优化策略对中间位姿数据进行优化,确定相机移动之后的目标位姿数据,并将目标位姿数据确定为当前时刻相机在空间中的位姿数据。

在一种可能的实施方式中,本发明实施例提供的装置中,处理单元404还用于:在基于当前帧深度图像,生成局部3D点云数据之前,基于当前帧彩色图像,对当前帧深度图像进行配准;则处理单元基于当前帧深度图像,生成局部3D点云数据,具体用于:基于配准后的深度图像,生成局部3D点云数据。

在一种可能的实施方式中,本发明实施例提供的装置中,处理单元404基于中间位姿数据、局部3D点云数据以及缓存单元408缓存的全局3D点云数据,利用第一优化策略对中间位姿数据进行优化,确定相机移动之后的目标位姿数据,具体用于:基于中间位姿数据,将局部3D点云数据中的点云数据转换为以相机的初始位置为坐标原点的点云数据,得到转换后的局部3D点云数据;利用第一优化策略将转换后的局部3D点云数据与全局3D点云数据进行融合,并确定转换后的局部3D点云数据与全局3D点云数据融合时的调整数据;利用调整数据对中间位姿数据进行修正,得到相机移动之后的目标位姿数据。

在一种可能的实施方式中,本发明实施例提供的装置中,处理单元404,还用于:在利用第一优化策略将转换后的局部3D点云数据与全局3D点云数据进行融合之后,利用融合后的全局3D点云数据对缓存单元408中缓存的全局3D点云数据进行第一次更新。

在一种可能的实施方式中,本发明实施例提供的装置中,该装置还包括:关键帧判断单元410,用于利用预设规则判断当前帧彩色图像是否为多帧彩色图像中的关键帧;关联关键帧确定单元412,用于在判定当前帧彩色图像为多帧彩色图像中的关键帧条件下,确定与当前帧彩色图像空间相关联的所有关键帧;第一优化处理单元414,用于利用第二优化策略对第一次更新后的全局3D点云数据、当前帧对应时刻相机在空间中的位姿数据以及缓存单元408缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行非线性优化;第一数据更新单元416,用于利用优化结果对缓存单元408中缓存的与当前帧空间相关联的所有关键帧对应时刻相机在空间中的位姿数据进行更新,对确定出的当前时刻相机在空间中的位姿数据进行更新,以及对第一次更新后的全局3D点云数据进行第二次更新,缓存单元408,还用于缓存当前帧的彩色图像。

在一种可能的实施方式中,本发明实施例提供的装置中,该装置还包括:闭环判断单元418,用于在确定当前帧彩色图像为多帧彩色图像中的关键帧条件下,判断相机移动过的路径是否构成闭环;第二优化处理单元420,用于在判定相机移动过的路径构成闭环的条件下,利用第三优化策略对缓存单元408缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据以及第二次更新后的全局3D点云数据进行优化;第二数据更新单元422,用于利用优化结果对缓存单元408缓存的闭环所包含关键帧对应时刻相机在空间中的位姿数据进行更新,以及对第二次更新后的全局3D点云数据进行第三次更新。

在一种可能的实施方式中,本发明实施例提供的装置中,闭环判断单元418,具体用于:基于词袋算法分别计算当前帧彩色图像与目标关键帧集合中每一关键帧彩色图像之间的相似度;若确定当前帧彩色图像与目标关键帧集合中任一关键帧彩色图像的相似度大于预设相似度阈值,则判定相机在拍摄该关键帧的位置以及拍摄当前帧所在位置之间移动过的路径构成闭环,否则,判定相机移动过的路径未构成闭环,其中,目标关键帧集合中包括与当前帧空间相关联的所有关键帧。

在一种可能的实施方式中,本发明实施例提供的装置中,关联关键帧确定单元412,具体用于:在利用第一优化策略将转换后的基于当前帧生成的局部3D点云数据与缓存单元408缓存的全局3D点云数据进行融合之后,在融合后的全局3D点云数据中,针对每一关键帧,判断当前帧与该关键帧之间的公共点云数据是否大于预设数量阈值,若判定结果为是,则确定该关键帧与当前帧空间相关联。

本发明实施例提供的空间位置追踪装置,可以集成在智能设备,智能设备包括但不限于:VR设备、AR设备、机器人、无人机以及移动终端(例如:手机、平板电脑等),也可以集成在与智能设备相连接的控制器中,其中,处理单元404、第一优化处理单元414以及第二优化处理单元420可以采用同一硬件或者设备,也可以采用不同的硬件或者设备,缓存单元408中需要缓存当前时刻以及当前时刻之前所有关键帧的位姿数据、缓存全局3D点云数据、缓存前一帧彩色图像以及缓存所有关键帧的彩色图像,可以通过一个缓存设备进行缓存,也可以通过多个缓存设备分别进行缓存,本发明对此不做限定。

本发明实施例提供的一种智能设备,智能设备包括本发明实施例提供的空间位置追踪装置。

本发明实施例提供的智能设备中,通过在智能设备中增加本发明实施例提供的空间位置追踪装置,从而能够通过采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据,进而根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪,也即对智能设备在空间中的位姿进行追踪,与现有空间位置追踪方案,依赖于激光扫描设备发射的激光束进行定位,激光扫描设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限相比,无需使用激光扫描设备即可实现对相机在空间中的位置进行追踪,从而避免了使用激光扫描设备时设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限的问题,在以高精度实现六自由度空间位置追踪的同时,无活动区域限制。

综上所述,本发明实施例提供的一种空间位置追踪方法、装置及智能设备,通过采集相机的运动数据以及相机所拍摄的彩色图像和深度图像,根据采集到的彩色图像和深度图像以及相机的运动数据,确定相机拍摄每帧图像的时刻相机在空间中的位姿数据,得到多个时刻相机在空间中的位姿数据,进而根据确定出的多个时刻相机在空间中的位姿数据,对相机在空间中的位置进行追踪,也即对智能设备在空间中的位姿进行追踪,无需使用激光扫描设备即可实现对相机在空间中的位置进行追踪,从而避免了使用激光扫描设备时设备安装校准麻烦,精度依赖于光敏传感器的分布,且活动区域受限的问题,在以高精度实现六自由度空间位置追踪的同时,无活动区域限制。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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