图像特征的跟踪方法、装置、计算机设备及存储介质与流程

文档序号:25310162发布日期:2021-06-04 15:29阅读:171来源:国知局
图像特征的跟踪方法、装置、计算机设备及存储介质与流程

1.本公开涉及图像处理的技术领域,具体而言,涉及一种图像特征的跟踪方法、装置、计算机设备以及存储介质。


背景技术:

2.目前,同时定位与地图构建(simultaneous localization and mapping,slam)系统是增强现实(augmented reality,ar),虚拟现实(virtual reality,vr)和混合现实(mixed reality,mr)应用中最为核心的系统。
3.在移动设备上应用ar,vr,mr时要求移动设备的续航能力持久,如果移动设备消耗较多cpu资源,会因为功耗问题导致cpu温度过高,致使cpu工作频率降低。此时,cpu的图像处理速度下降,容易出现显示掉帧的情况。在现有技术中,slam系统通常使用特征点和描述子匹配,特征点和光流跟踪的方法对前后图像帧的图像像素进行特征跟踪处理。由于仅对图像像素进行处理,因此,现有技术的方法会导致slam系统所提取到的图像特征精度差,且上述所描述的方法中使用特征点和光流跟踪的方法长时间运行会出现因造成计算时间过长导致cpu消耗较大,从而出现掉帧的情况。


技术实现要素:

4.本公开实施例至少提供一种图像特征的跟踪方法、装置、计算机设备以及存储介质。
5.第一方面,本公开实施例提供了一种图像特征的跟踪方法,包括:获取惯性测量单元imu数据和图像传感器检测到的图像数据;通过所述imu数据,确定所述图像数据中当前图像相对于上一帧图像的旋转角度,以及所述图像传感器采集所述当前图像时的角速度;根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口;利用确定出的光流窗口对所述当前图像和所述上一帧图像进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征。
6.在本公开实施例中,在获取到slam系统检测到的imu数据和图像数据之后,可以根据imu数据和图像数据计算前后帧旋转角度以及图像传感器的角速度,相对于现有技术中仅对图像像素进行处理的方法,本公开实施例结合slam系统内部各个传感器检测到数据来确定slam系统的当前跟踪特征的方式,能够得到更加精准的特征;且在本公开实施例中,通过角速度和旋转角度自适应确定相匹配的光流窗口的尺寸的方式,能够进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧的问题。
7.一种可选的实施方式中,在通过所述imu数据,确定所述图像数据中当前图像相对于上一帧图像的旋转角度,以及所述图像传感器采集所述当前图像时的角速度之前,还包括:对所述imu数据和所述图像数据进行数据采集时间对齐处理。
8.在本公开实施例中,在对imu数据和图像数据进行数据采集时间对齐处理之后,可以提高imu数据和图像数据的数据精度,在提高imu数据和图像数据的数据精度之后,在通
过对齐处理之后的imu数据和图像数据进行特征追踪时,就可以提高slam系统的处理精度。
9.一种可选的实施方式中,所述对所述imu数据和所述图像数据进行数据采集时间对齐处理,包括:将所述imu数据中目标传感器的检测数据所对应的时间戳作为基准时间戳,利用所述基准时间戳对所述imu数据中不同传感器的检测数据进行数据采集时间对齐处理;利用进行数据采集时间对齐之后的imu数据,对所述图像数据进行数据采集时间对齐处理。
10.在本公开实施例中,对imu数据和图像数据进行数据采集时间对齐处理之后,通过对齐处理之后的imu数据确定上述旋转角度和角速度的方式,能够提升数据精度,在终端设备(特别是中低端设备)中能够进一步提升ar,vr和mr应用的稳定性能。
11.一种可选的实施方式中,所述imu数据包括:加速度计数据、陀螺仪数据和磁力计数据;所述目标传感器为加速度计;所述利用所述基准时间戳对所述imu数据中不同传感器的检测数据进行数据采集时间对齐处理,包括:确定所述陀螺仪数据和所述磁力计数据中,在所述基准时间戳的两侧分别采集到的目标陀螺仪数据和目标磁力计数据;根据在所述基准时间戳的两侧分别采集的所述目标陀螺仪数据和所述目标陀螺仪数据所对应的数据采集时间,确定与所述基准时间戳对应的对齐后陀螺仪数据;以及,根据在所述基准时间戳的两侧分别采集的所述目标磁力计数据和所述目标磁力计数据所对应的数据采集时间,确定与所述基准时间戳对应的对齐后磁力计数据。
12.在本公开实施例中,考虑slam系统中各种传感器的工作频率,选择加速度计的时间戳作为基准时间戳,在确定出基准时间戳之后,就可以分别对陀螺仪数据和磁力计数据进行数据采集时间对齐处理。在进行数据采集时间对齐处理时,可以确定基准时间戳和目标陀螺仪数据(或者目标磁力计数据)的数据采集时间之间的时间偏差,并确定该时间偏差所对应的数据偏差量,从而根据该数据偏差量确定基准时间戳所对应的陀螺仪数据(或者磁力计数据),通过该方式,能够简化数据对齐处理的步骤,并提高数据对齐处理的精度。
13.一种可选的实施方式中,所述方法还包括:在获取惯性测量单元imu数据之后,对所述imu数据中的陀螺仪数据和/或磁力计数据进行零偏校正。
14.一种可选的实施方式中,所述对所述imu数据中的陀螺仪数据进行零偏校正,包括:计算陀螺仪在每个数据采集时间检测到的陀螺仪数据与所述陀螺仪的漂移量之间的差值,并将所述差值确定为零偏校正之后的陀螺仪数据。
15.一种可选的实施方式中,所述对所述imu数据中的磁力计数据进行零偏校正,包括:获取当前时刻的上一时刻陀螺仪各个轴的角偏差的估计值;以及获取当前时刻的上一时刻所述图像传感器的位姿数据;根据所述估计值和所述位姿数据,对所述磁力计数据进行零偏校正。
16.一种可选的实施方式中,所述方法还包括:获取对所述上一帧图像进行图像跟踪得到的目标跟踪特征;所述根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口,包括:若所述目标跟踪特征的数量大于或者等于第一数量,则在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸下的光流窗口。
17.在本公开实施例中,在确定出目标跟踪特征的数量小于第一数量时,表明当前跟踪的特征数量较少,也即当前时刻slam系统的跟踪效果差,为了保证跟踪质量,提高slam系统的跟踪性能,需要在确定出目标跟踪特征的数量较少时,选择使用较大的光流窗口进行
跟踪处理,从而提高特征跟踪的精度。
18.一种可选的实施方式中,所述方法还包括:若所述目标跟踪特征的数量小于所述第一数量,则确定所述光流窗口的尺寸为预设尺寸。
19.一种可选的实施方式中,所述根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口,包括:分别将所述角速度和所述旋转角度与对应的预设阈值进行比较,得到阈值比较结果,并根据所述阈值比较结果在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸。
20.在本公开实施例中,可以将角速度和旋转角度分别与对应的预设阈值进行比较,通过阈值比较结果来确定终端设备的运动幅度,通过确定的运动幅度来选择对应的光流窗口,从而实现在保证特征跟踪精度的基础上,尽量减小特征跟踪的计算过程,以进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧的问题。
21.一种可选的实施方式中,所述根据所述阈值比较结果在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸,包括:若所述阈值比较结果为所述旋转角度大于最大旋转角度,和/或,所述角速度大于最大角速度,则在所述至少一个窗口尺寸中确定最大窗口尺寸为所述目标窗口尺寸。
22.一种可选的实施方式中,所述根据所述阈值比较结果在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸,还包括:若所述阈值比较结果为所述旋转角度小于最大旋转角度,以及所述角速度小于最大角速度,则根据所述旋转角度与最小旋转角度,以及所述角速度与最小角速度之间的阈值比较结果在所述至少一个窗口尺寸中确定除所述最大窗口尺寸之外的窗口尺寸中选择所述目标窗口尺寸。
23.在本公开实施例中,可以将角速度和旋转角度分别与对应的预设阈值进行比较,通过阈值比较结果来确定终端设备的运动幅度,通过确定的运动幅度来选择对应的光流窗口,从而实现在保证特征跟踪精度的基础上,尽量减小特征跟踪的计算过程,以进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧的问题。
24.一种可选的实施方式中,所述方法还包括:获取预先存储的上一图像帧的第一特征金字塔,并确定所述当前图像的第二特征金字塔;所述利用确定出的光流窗口对所述当前图像和所述上一帧图像进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征,包括:利用确定出的所述光流窗口对所述第一特征金字塔和所述第二特征金字塔进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征。
25.在本公开实施例中,在获取到当前图像之后,确定当前图像的特征金字塔,然后,对当前图像的特征金字塔进行存储,以用于当前图像数据的下一帧图像数据的光流跟踪;每次存储最新图像帧所构建的金字塔的方式能够进一步节省特征跟踪的时间,提升slam系统的速度。
26.一种可选的实施方式中,所述通过所述imu数据,确定所述图像数据中当前图像相对于上一帧图像的旋转角度,包括:利用所述imu数据中的陀螺仪数据计算所述惯性测量单元imu的方向偏移量,得到第一方向偏移量;对所述imu数据中的加速度计数据和磁力计数据进行计算,得到所述惯性测量单元imu的第二方向偏移量;对所述第一方向偏移量和所述第二方向偏移量进行融合,得到融合偏移量,并将所述融合偏移量由当前imu系统坐标系下
变换至所述图像传感器的坐标系下,变换之后得到所述相对旋转角度。
27.在本公开实施例中,在得到imu数据和图像数据之后,对imu数据进行零偏校正之后,能够提高imu数据的数据精度,在终端设备(特别是中低端设备)中能够进一步提升ar,vr和mr应用的稳定性能。
28.一种可选的实施方式中,对所述imu数据中的加速度计数据和磁力计数据进行计算,得到所述惯性测量单元imu的第二方向偏移量包括:构建目标函数,其中,所述目标函数用于表征预设函数和所述imu数据中的加速度计数据之间的差值,所述预设函数为基于预设方向偏移量变量和磁力计数据构建的用于计算所述imu数据中的加速度计数据的函数;通过最速下降法对所述目标函数进行最优求解计算,并将计算出的最优解确定为所述第二方向偏移量。
29.在本公开实施例中,在获取到加速度计数据之后,可以根据加速度计数据、预设方向偏移量变量和目标恒定向量构建一个目标函数,通过对该目标函数进行最优求解,就可以得到预设方向偏移量变量的最优解,在得到该最优解之后,采用将该最优解与第一方向偏移量进行融合的过程,可以确定出更加准确的融合偏移量,在采用融合偏移量对图像数据进行光流跟踪时,就可以提高特征光流跟踪的精度,以进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧的问题。
30.一种可选的实施方式中,所述对所述第一方向偏移量和所述第二方向偏移量进行融合,得到融合偏移量,包括:获取目标融合因子,其中,所述目标融合因子为基于发散速度和收敛速度确定的融合因子,所述发散速度表示在计算所述第一方向偏移量时第一方向偏移量的发散速度,所述收敛速度表示在通过最速下降法计算所述第二方向偏移量时所述第二方向偏移量的收敛速度;根据所述目标融合因子对所述第一方向偏移量和所述第二方向偏移量进行加权计算,得到所述融合偏移量。
31.在本公开实施例中,分别通过陀螺仪数据和加速度计数据进行计算,得到第一方向偏移量和第二方向偏移量,在将第一方向偏移量和第二方向偏移量进行融合之后,可以根据imu中多种传感器检测到的数据来计算融合偏移量,再根据该融合偏移量计算旋转角度之后,可以提高旋转角度的计算精度,从而进一步提升ar,vr和mr应用的稳定性能。进一步地,由于本实施例中的目标融合因子是根据最速下降法的计算结果确定出的融合因子,那么该目标融合因子可以理解为对第一方向偏移量和第二方向偏移量进行融合的最优融合因子,因此,在本公开实施例中,通过上述所描述的计算方式,可以提高融合偏移量的计算精度,以进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧的问题。
32.第二方面,本公开实施例还提供一种图像特征的跟踪装置,包括:获取模块,用于获取惯性测量单元imu数据和图像传感器检测到的图像数据;第一确定模块,用于通过所述imu数据,确定所述图像数据中当前图像相对于上一帧图像的旋转角度,以及所述图像传感器采集所述当前图像时的角速度;第二确定模块,用于根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口;光流跟踪处理模块,用于利用确定出的光流窗口对所述当前图像和所述上一帧图像进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征。
33.第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与
所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
34.第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
35.关于上述图像特征的跟踪装置、计算机设备、及计算机可读存储介质的效果描述参见上述图像特征的跟踪方法的说明,这里不再赘述。
36.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
37.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
38.图1示出了本公开实施例所提供的一种vi

slam系统的结构图;
39.图2示出了本公开实施例所提供的一种图像特征的跟踪方法的流程图;
40.图3示出了本公开实施例所提供的一种图像特征的跟踪方法中对imu数据和图像数据进行数据采集时间对齐处理的流程图;
41.图4示出了本公开实施例所提供的一种对齐处理之后的imu数据和对齐处理之后的图像数据的时间戳的示意图;
42.图5示出了本公开实施例所提供的一种图像特征的跟踪方法中确定旋转角度和角速度的流程图;
43.图6示出了本公开实施例所提供的一种图像特征的跟踪方法中在至少一个窗口尺寸中确定与角速度和旋转角度相匹配的目标窗口尺寸下的光流窗口的流程图;
44.图7示出了本公开实施例所提供的另一种在至少一个窗口尺寸中确定与角速度和旋转角度相匹配的目标窗口尺寸下的光流窗口的流程图;
45.图8示出了本公开实施例所提供的一种图像特征的跟踪方法中利用确定出的光流窗口对当前图像和上一帧图像进行光流跟踪处理的流程图;
46.图9示出了本公开实施例所提供的一种图像数据的特征金字塔的存储顺序示意图;
47.图10示出了本公开实施例所提供的一种图像特征的跟踪装置的示意图;
48.图11示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
49.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实
施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
50.经研究发现,现有技术中常使用特征点和描述子匹配,特征点和光流跟踪的方法进行特征跟踪处理,且在现有技术中,vi

slam系统是对前后图像帧的图像像素进行特征跟踪处理。由于仅对图像像素进行处理,因此,现有技术的方法会导致vi

slam系统所提取到的图像特征精度差,且上述所描述的方法中使用特征点和光流跟踪的方法长时间运行会出现因造成计算时间过长导致cpu消耗较大,从而出现掉帧的情况。
51.基于上述研究,本公开提供了一种图像特征的跟踪方法,在本公开实施例中,在获取到vi

slam系统检测到的imu数据和图像数据之后,可以根据imu数据和图像数据计算前后帧旋转角度以及图像传感器的角速度,相对于现有技术中仅对图像像素进行处理的方法,本公开实施例结合vi

slam系统内部各个传感器检测到的数据来确定vi

slam系统的当前跟踪特征的方式,能够得到更加精准的特征;且在本公开实施例中,通过角速度和旋转角度自适应确定相匹配的光流窗口的尺寸的方式,能够进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧的问题。
52.针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
53.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
54.为便于对本实施例进行理解,首先对本公开实施例所公开的一种图像特征的跟踪方法进行详细介绍,本公开实施例所提供的图像特征的跟踪方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该图像特征的跟踪方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
55.下面以执行主体为终端设备为例对本公开实施例提供的图像特征的跟踪方法加以说明。
56.实施例一
57.参见图1所示,为本公开实施例提供的vi

slam系统的结构框图。如图1所示,该vi

slam系统包括:传感器数据获取模块,前端视觉里程计模块,后端非线性优化模块,地图构建模块和回环检测模块,其中,传感器数据获取模块包括惯性测量单元imu传感器和图像传感器。前端视觉里程计模块是vi

slam系统的核心模块,影响整个系统的精度和稳定性能。
58.传感器数据获取模块,被配置成采集imu数据和图像数据。
59.前端视觉里程计模块,被配置估算图像数据中相邻图像间图像传感器的运动位姿。
60.后端非线性优化模块,被配置成接收不同时刻前端视觉里程计模块测量的图像传
感器的运动位姿,以及接收回环检测模块检测到的信息;对获取到的数据进行优化,得到优化结果。
61.地图构建模块,被配置成根据后端非线性优化模块输出的优化结果进行地图的构建。
62.回环检测模块,被配置判断vi

slam系统的移动载体是否到达过去先前的位置,如果检测到回环,则将该位置的信息提供给后端非线性优化模块进行检测。
63.需要说明的是,图像的特征提取过程是前端视觉历程计模块的核心过程,本发明所提出的图像特征的跟踪方法可以应用到上述前端视觉历程计模块中,下面将结合具体实施例介绍该前端视觉历程计模块的工作过程。
64.需要说明的是,本公开实施例所提供的图像特征的跟踪方法可以集成到终端设备(例如,移动终端)的ar/vr系统中,以通过该方法提升vi

slam系统的定位精度。本公开实施例所提供的方法可以降低vi

slam系统的功耗,能够持久稳定地运行,保证应用图像的帧率不降低。
65.实施例二
66.参见图2所示,为本公开实施例提供的图像特征的跟踪方法的流程图,所述方法包括步骤s101~s107,其中:
67.s101:获取定位与地图构建视觉惯性slam系统(visual

inertial slam,vi

slam)检测到的惯性测量单元imu数据和图像传感器检测到的图像数据。
68.如图1所示,在本公开实施例中,在定位与地图构建视觉惯性slam系统(以下均简称为vi

slam系统)中包含:惯性测量单元imu传感器和图像传感器,其中,惯性测量单元imu传感器中包含多种类型的传感器,该多种类型的传感器可以用于检测以下至少一种数据:加速度数据,角速度数据和陀螺仪数据。
69.需要说明的是,在本公开实施例中,如果惯性测量单元imu传感器中包含多种类型的传感器,那么每种类型的传感器的采集频率和图像传感器的采集频率可能是不相同,也即,上述这些传感器在采集数据时,数据采集时间可能是不相同的。
70.s103:通过所述imu数据,确定所述图像数据中当前图像相对于上一帧图像的旋转角度,以及所述图像传感器采集所述当前图像时的角速度。
71.s105:根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口。
72.s107:利用确定出的光流窗口对所述当前图像和所述上一帧图像进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征。
73.在本公开实施例中,可以预先设置至少一个窗口尺寸,然后,根据角速度和旋转角度自适应的在至少一个窗口尺寸中确定与之相匹配的目标窗口尺寸下的光流窗口。本公开实施例通过自适应调整光流窗口的窗口尺寸的方式能够提升光流跟踪效率,从而降低光流跟踪的能耗,同时保证vi

slam系统特征跟踪的鲁棒性,在终端设备(特别是中低端设备)中能够进一步提升ar,vr和mr应用的稳定性能。
74.在本公开实施例中,在获取到vi

slam系统检测到的imu数据和图像数据之后,可以根据imu数据和图像数据计算前后帧图像之间的旋转角度以及图像传感器的角速度,相对于现有技术中仅对图像像素进行处理的方法,本公开实施例结合vi

slam系统内部各个传感器检测到数据来确定vi

slam系统的当前跟踪特征的方式,能够得到更加精准的特征;
且在本公开实施例中,通过角速度和旋转角度自适应确定相匹配的光流窗口的尺寸的方式,能够进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧的问题。
75.实施例三
76.在上述实施例一和实施例二的基础上,如图3所示,在通过所述imu数据,确定所述图像数据中当前图像相对于上一帧图像的旋转角度,以及所述图像传感器采集所述当前图像时的角速度之前,该方法还包括:
77.步骤s301,对所述imu数据和所述图像数据进行数据采集时间对齐处理。
78.在本公开实施例中,在获取到imu数据之后,需要对上述传感器采集到的图像数据和imu数据进行数据采集时间对齐处理。在得到对齐处理后的imu数据和图像数据之后,就可以根据对齐处理后的imu数据确定对齐处理之后的图像数据中当前图像相对于上一帧图像的旋转角度,以及图像传感器采集所述当前图像时的角速度。
79.通过上述描述可知,在本公开实施例中,对imu数据和图像数据进行数据采集时间对齐处理之后,通过对齐处理之后的imu数据确定上述旋转角度和角速度的方式,能够提升数据精度,在终端设备(特别是中低端设备)中能够进一步提升ar,vr和mr应用的稳定性能。
80.在本公开实施例的一个可选的实施方式中,步骤s301,对所述imu数据和所述图像数据进行数据采集时间对齐处理,包括如下过程:
81.步骤s11:将所述imu数据中目标传感器的检测数据所对应的时间戳作为基准时间戳,利用所述基准时间戳对所述imu数据中不同传感器的检测数据进行数据采集时间对齐处理;
82.步骤s12:利用进行数据采集时间对齐之后的imu数据,对所述图像数据进行数据采集时间对齐处理。
83.通过上述描述可知,在本公开实施例中,首先,获取惯性测量单元imu数据和图像传感器检测到的图像数据。在获取到图像数据之后,就可以对图像数据进行矫正畸变处理,得到矫正之后的图像数据。其中,需要说明的是,对图像数据进行矫正畸变处理是指对图像数据的扭曲、变形、不平衡和倾斜等问题进行矫正处理,从而得到更加准确的图像数据,以提高vi

slam系统的特征提取精度。在对图像数据进行矫正畸变之后,就可以对目标数据的数据采集时间进行同步对齐处理。
84.在imu数据中,包含每条数据及其对应的数据采集时间,其中,该数据采集时间可以通过时间戳来表示。因此,在本公开实施例中,可以通过时间戳对目标数据进行数据采集时间对齐处理。
85.通过上述描述可知,由于在imu数据中包括多种传感器检测到的数据,此时,就可以在多种传感器检测到的数据中确定基准数据的时间戳为基准时间戳,其中,在选择基准数据时,可以结合各个传感器的工作频率来选择基准数据,其中,基准数据即为上述目标传感器采集到的数据。
86.在确定出基准时间戳之后,就可以利用基准时间戳对imu数据中不同传感器的检测数据进行数据采集时间对齐处理,得到对齐之后的imu数据;以使对齐之后的imu数据的数据采集时间为基准时间戳。
87.需要说明的是,在本公开实施例中,为了进一步提高vi

slam系统的特征提取精度,还可以在得到对齐之后的imu数据之后,将图像数据和对齐之后的imu数据进行同步对
齐处理。例如,可以将图像数据的时间戳作为基准时间戳,然后,在对齐之后的imu数据中确定与该基准时间戳距离最近的数据作为新的imu数据,从而实现图像数据和对齐之后的ium数据之间的同步对齐处理。
88.通过上述描述可知,在本公开实施例中,上述imu数据可以包括如下数据:加速度计数据、陀螺仪数据和磁力计数据,所述基准数据为所述加速度计数据,在此情况下,步骤s11利用所述基准时间戳对所述imu数据中不同传感器的检测数据进行数据采集时间对齐处理,具体包括如下步骤:
89.首先,确定所述陀螺仪数据和所述磁力计数据中,在所述基准时间戳的两侧分别采集到的目标陀螺仪数据和目标磁力计数据。
90.在本公开实施例中,加速度计数据、陀螺仪数据和磁力计数据为分别通过imu传感器中加速度计、陀螺仪和磁力计检测到的数据。在本公开实施例中,可以以加速度计的时间戳作为基准时间戳,对陀螺仪数据和磁力计数据进行数据采集时间对齐处理。
91.在本公开实施例中,陀螺仪数据、加速度计数据和磁力计数据分别通过数学符号ω、a和m表示,其中,a
i
表示在t
i
时刻的加速度计数据,t
i
时刻表示上述基准时间戳。陀螺仪数据中位于t
i
时刻两侧的数据分别为ω
m
和ω
n
,其中,ω
m
和ω
n
即为上述目标陀螺仪数据;磁力计数据中位于t
i
时刻两侧的数据分别为m
o
和m
p
,其中,m
o
和m
p
即为上述目标磁力计数据。
92.然后,根据在所述基准时间戳的两侧分别采集的所述目标陀螺仪数据和所述目标陀螺仪数据所对应的数据采集时间,确定与所述基准时间戳对应的对齐后陀螺仪数据;以及,根据在所述基准时间戳的两侧分别采集的所述目标磁力计数据和所述目标磁力计数据所对应的数据采集时间,确定与所述基准时间戳对应的对齐后磁力计数据。
93.在按照上述所描述的方法确定目标陀螺仪数据和目标磁力计数据之后,就可以分别确定目标陀螺仪数据ω
m
和ω
n
所对应的数据采集时间t
m
和t
n
,以及目标磁力计数据m
o
和m
p
所对应的数据采集时间t
o
和t
p

94.在本公开实施例中,可以根据数据采集时间t
m
和t
n
,目标陀螺仪数据ω
m
和ω
n
,以及基准时间戳t
i
确定与该基准时间戳对应的对齐后陀螺仪数据ω
i
;并根据数据采集时间t
o
和t
p
,目标磁力计数据m
o
和m
p
,以及基准时间戳t
i
确定与该基准时间戳所对应的对齐后磁力计数据m
i
。如图4所示的即为对齐处理之后的imu数据和对齐处理之后的图像数据。
95.具体地,在本公开实施例中,可以通过下述公式计算对齐后陀螺仪数据ω
i
;以及计算对齐后磁力计数据m
i

[0096][0097]
在按照上述所描述的方式对imu数据和图像数据进行数据采集时间对齐处理,得到对齐处理之后的imu数据和图像数据之后,就可以通过对齐处理之后的imu数据确定图像数据中当前图像相对于上一帧图像的旋转角度,以及确定所述图像传感器采集所述当前图像时的角速度,以根据角速度和所述旋转角度在多个窗口尺寸中确定相匹配的目标窗口尺寸,并利用确定出的目标窗口尺寸下的光流窗口对当前图像和所述上一帧图像进行光流跟踪处理,得到所述vi

slam系统对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征。
[0098]
在本公开实施例中,对imu数据和图像数据进行数据采集时间对齐处理之后,通过对齐处理之后的imu数据确定上述旋转角度和角速度的方式,能够提升数据精度,在终端设备(特别是中低端设备)中能够进一步提升ar,vr和mr应用的稳定性能。
[0099]
实施例四
[0100]
在上述实施例一至实施例三的基础上,如图5所示,步骤s103通过对齐处理之后的所述目标数据确定所述图像数据中当前图像相对于上一帧图像的旋转角度,包括如下步骤:
[0101]
步骤s501,利用所述imu数据中的陀螺仪数据计算所述惯性测量单元imu的方向偏移量,得到第一方向偏移量;
[0102]
步骤s502,对所述imu数据中的加速度计数据和磁力计数据进行计算,得到所述惯性测量单元imu的第二方向偏移量;
[0103]
步骤s503,对所述第一方向偏移量和所述第二方向偏移量进行融合,得到融合偏移量,并将所述融合偏移量由当前imu系统坐标系下变换至所述图像传感器的坐标系下,变换之后得到所述相对旋转角度。
[0104]
通过上述描述可知,在本公开实施例中,首先,获取惯性测量单元imu数据和图像传感器检测到的图像数据。在获取到图像数据之后,就可以对图像数据进行矫正畸变处理,得到矫正之后的图像数据。其中,需要说明的是,对图像数据进行矫正畸变处理是指对图像数据的扭曲、变形、不平衡和倾斜等问题进行矫正处理,从而得到更加准确的图像数据,以提高vi

slam系统的特征提取精度。在对图像数据进行矫正畸变之后,就可以对目标数据的数据采集时间进行同步对齐处理。
[0105]
需要说明的是,在imu数据中,包含每条数据及其对应的数据采集时间,其中,该数据采集时间可以通过时间戳来表示。因此,在本公开实施例中,可以通过时间戳对imu数据和图像数据进行数据采集时间对齐处理。具体地,可以通过上述实施例三中所描述的方式对imu数据和图像数据进行数据采集时间对齐处理,在本实施例中对上述对齐处理过程不再详细赘述。
[0106]
在得到对齐处理之后的imu数据之后,可以对该imu数据进行零偏校正,具体地,可以对对齐处理之后的imu数据中的陀螺仪数据和磁力计数据进行零偏校正。
[0107]
在对对齐处理之后的imu数据中的陀螺仪数据进行零偏校正时,可以通过下述公式进行零偏校正,该公式可以描述为:
[0108]
b
ω
c,t

b
ω
t

b
ω
b,t
,其中,
b
ω
c,t
表示零偏校正之后的陀螺仪数据,
b
ω
t
表示零偏校正之前的陀螺仪数据,
b
ω
b,t
表示陀螺仪随着时间的漂移量。
[0109]
需要说明的是,在本公开实施例中,可以计算陀螺仪在每个数据采集时间检测到的陀螺仪数据与陀螺仪随着时间的漂移量之间的差值,从而将差值确定为零偏校正之后的陀螺仪数据。
[0110]
在一个可选的实施方式中,陀螺仪随着时间的漂移量可以通过以下公式计算:在一个可选的实施方式中,陀螺仪随着时间的漂移量可以通过以下公式计算:表示膨胀系数,为预先设定的数值。
b
ω
ε,t
表示陀螺仪各个轴的预估偏差,δt表示陀螺仪数据的数据采集间隔,表示从t

1时刻(当前时刻的上一时刻)到t时刻(当前时刻)陀螺仪的总漂移量。其中,
b
ω
ε,t
可以通过以下公式确定出:
表示在t时刻陀螺仪各个轴的角偏差,表示在t

1时刻陀螺仪各个轴的角偏差的估计值。在上述公式中,符号b(
·
)表示imu坐标系,符号e(
·
)表示地面坐标系;表示坐标系e相对于坐标系b的单位旋转。
[0111]
需要说明的是,在本公开实施例中,的具体数值与惯性测量单元imu中各个传感器的检测精度相关联。例如,在传感器的检测精度满足预设要求的情况下,可以直接计算陀螺仪在每个数据采集时间检测到的陀螺仪数据与陀螺仪随着时间的漂移量之间的差值,即的具体数值为1。在上述传感器的检测精度不满足预设要求的情况下(例如,中低端终端设备中的传感器),由于该传感器的精度有限,因此需要通过膨胀系数对漂移量做膨胀处理,此时的膨胀系数为大于1的数值,通过该膨胀系数能够使得校正之后的数据更加准确。
[0112]
在对对齐处理之后的imu数据中的磁力计数据进行零偏校正时,可以通过以下过程进行零偏校正:获取当前时刻的上一时刻陀螺仪各个轴的角偏差的估计值;以及获取当前时刻的上一时刻所述图像传感器的位姿数据;根据所述估计值和所述位姿数据,对所述磁力计数据进行零偏校正。
[0113]
具体地址,上述过程可以通过下述公式描述:
[0114]
其中,为在t时刻采集到的磁力计数据,表示t时刻的地磁方向的方向值,h
x
,h
y
,h
z
分别表示三个轴向上的地磁方向的方向值;表示在t

1时刻得到的单位位姿四元数,表示在t

1时刻陀螺仪各个轴的角偏差的估计值。零偏校正之后的磁力计数据可以通过下述公式进行表示:
[0115]
在对对齐之后的imu数据中的陀螺仪数据和磁力计数据进行零偏校正之后,就可以将零偏校正之后的imu数据中的陀螺仪数据确定为图像传感器采集所述当前图像时的角速度;并利用零偏校正之后的imu数据中的陀螺仪数据计算惯性测量单元imu的方向偏移量,得到第一方向偏移量。
[0116]
具体地,在本公开实施例中,可以通过imu的陀螺仪数据中的角速度数据b
ω
=[0,ω
x

y

z
]对应四元数的导数对时间的积分,来计算imu的方向偏移量,得到第一方向偏移量具体计算公式可以表示为:
[0117]
其中,为上述第一方向偏移量,表示在t

1时刻得到的图像传感器的单位位姿四元数,δt表示数据采集间隔;可以通过下述公式表示:其中,
b
ω
t
表示零偏校正之后的陀螺仪数据。
[0118]
在对对齐之后的imu数据中的陀螺仪数据和磁力计数据进行零偏校正之后,就可以对所述imu数据中的加速度计数据和磁力计数据进行计算,得到所述惯性测量单元imu的第二方向偏移量,具体过程描述如下:
[0119]
首先,构建目标函数,其中,所述目标函数用于表征预设函数和所述imu数据中的加速度计数据之间的差值,所述预设函数为基于预设方向偏移量变量和磁力计数据构建的用于计算所述imu数据中的加速度计数据的函数;
[0120]
然后,通过最速下降法对所述目标函数进行最优求解计算,并将计算出的最优解确定为所述第二方向偏移量。
[0121]
具体地,在本公开实施例中,首先,获取目标imu数据中的对齐后加速度计数据:其中,对齐后加速度计数据还可以通过下述公式来进行表示:在该公式中,为预设方向偏移量变量,表示坐标系e相对于坐标系b的单位旋转,表示预设方向偏移量的估计值,表示地面参考下的恒定向量
e
d=[0,d
x
,d
y
,d
z
],该恒定向量表示重力加速度在地面坐标系的三个轴向上的分量,恒定向量用于表征重力加速度在地面坐标系的三个轴向上的分量。
[0122]
需要说明的是,由于地面参考下的恒定向量ed=[0,dx,dy,dz]在工程中可以近似为零偏校正后imu数据中的磁力计数据。因此,在本公开实施例中,公式中的恒定向量可以为零偏校正后imu数据中的磁力计数据。
[0123]
此时,可以基于公式构建一个目标函数f,然后,对该目标函数f进行求解,其中,该目标函数f可以表示为:其中,目标函数中的可以近似为
[0124]
在对目标函数进行求解时,可以通过最速下降法对该目标函数f进行求解,在通过最速下降法对该目标函数f进行求解时,所使用的迭代公式可以表示为:在该迭代公式中,μ是学习因子。
[0125]
在对目标函数f进行求解之后,当迭代次数满足预设迭代次数,或者,的数值满足预设数值要求时,就可以停止迭代,并将停止迭代时变量的结果作为第二方向偏移量
[0126]
在一个可选的实施方式中,学习因子μ可以通过以下方式进行表示:μ
t
表示为当前时刻t所对应的学子因子。其中,α>1,是的发散速度,的收敛速度需要大于的发散速度α是下降系数,则是通过最速下降法计算的的收敛速度。
[0127]
在本公开实施例中,在计算得到第一方向偏移量和第二方向偏移量之后,就可以对第一方向偏移量和所述第二方向偏移量进行融合,得到融合偏移量,并将融合偏移量由当前imu系统坐标系下变换至图像传感器的坐标系下,变换之后得到相对旋转角度。
[0128]
在一个可选的实施方式中,步骤对所述第一方向偏移量和所述第二方向偏移量进行融合,得到融合偏移量,包括如下过程:
[0129]
首先,获取目标融合因子,其中,所述目标融合因子为基于发散速度和收敛速度确定的融合因子,所述发散速度表示在计算所述第一方向偏移量时第一方向偏移量的发散速度,所述收敛速度表示在通过最速下降法计算所述第二方向偏移量时所述第二方向偏移量的收敛速度;
[0130]
然后,根据所述目标融合因子对所述第一方向偏移量和所述第二方向偏移量进行加权计算,得到所述融合偏移量。
[0131]
具体地,在本公开实施例中,可以通过公式将第一方向偏移量和所述第二方向偏移量进行融合,其中,γ
t
为目标融合因子,为融合偏移量。
[0132]
在一个可选的实施方式中,目标融合因子γ
t
可以通过以下公式进行表示:其中,β表示的发散速度四元数的模。
[0133]
在将目标融合因子γ
t
的计算公式代入至之后,融合偏移量的计算公式可以进一步表示为:
[0134]
在本公开实施例中,在按照上述所描述的方式计算得到融合偏移量之后,就可以将融合偏移量由当前imu系统坐标系下变换至所述图像传感器的坐标系下,变换之后得到所述旋转角度。例如,可以将方向偏移通过计算公式变换到图像传感器的坐标系下;表示从imu坐标系下旋转到图像传感器的坐标系下的旋转矩阵,可以通过离线标定的方式获得,符号c(
·
)表示图像传感器的坐标系。
[0135]
在本公开实施例中,在获取到vi

slam系统检测到的imu数据和图像数据之后,可以对imu数据和图像数据进行时间对齐处理,以根据时间对齐处理之后的结果来计算前后帧图像之间的旋转角度以及图像传感器的角速度,相对于现有技术中仅对图像像素进行处理的方法,本公开实施例结合vi

slam系统内部各个传感器检测到数据来确定vi

slam系统的当前跟踪特征的方式,能够得到更加精准的特征。
[0136]
实施例五
[0137]
在上述实施例一至实施例四的基础上,如图6所示,步骤s105,根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口,包括如下步骤:
[0138]
步骤s601,分别将所述角速度和所述旋转角度与对应的预设阈值进行比较,得到阈值比较结果,并根据所述阈值比较结果在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸。
[0139]
在本公开实施例中,可以为角速度和旋转角度对应设置预设阈值,其中,该预设阈值可以包含最大值和最小值,例如,针对角速度来说,该预设阈值可以为最大角速度和最小角速度,针对旋转角度来说,该预设阈值可以为最大旋转角度和最小旋转角度。
[0140]
因此,在本公开实施例中,可以将角速度分别与最大角速度和最小角速度进行比较,从而得到阈值比较结果a1,以及将旋转角度分别与最大旋转角度和最小旋转角度进行比较,从而得到阈值比较结果a2,之后,就可以根据阈值比较结果a1和阈值比较结果a2在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸。
[0141]
在一个可选的实施方式中,可以将旋转角度转化为欧拉角,然后,为该欧拉角设置对应的预设阈值(例如,最大欧拉角和最小欧拉角)。之后,将欧拉角分别与最大欧拉角和最小欧拉角进行比较,从而得到阈值比较结果a3,之后,就可以根据阈值比较结果a1和阈值比较结果a3在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺
寸。
[0142]
在本公开实施例中,可以将角速度和旋转角度分别与对应的预设阈值进行比较,通过阈值比较结果来确定终端设备的运动幅度,通过确定的运动幅度来选择对应的光流窗口,从而实现在保证特征跟踪精度的基础上,尽量减小特征跟踪的计算过程,以进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧的问题。
[0143]
在本公开的一个可选实施方式中,在根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口之前,还可以获取所述vi

slam系统对所述上一帧图像进行图像跟踪得到的目标跟踪特征。
[0144]
在获取到目标跟踪特征之后,可以判断目标跟踪特征的数量是否小于第一数量,其中,该第一数量为预先设定的目标跟踪特征的最小数量值。若所述目标跟踪特征的数量大于或者等于第一数量,则根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口;若目标跟踪特征的数量小于第一数量,则确定光流窗口的尺寸为预设尺寸。
[0145]
需要说明的是,预设尺寸可以为至少一个窗口尺寸中的最大窗口尺寸,例如,该预设尺寸可以为20像素
×
20像素,除此之外,还可以设置为其他大小的尺寸,本公开实施例不做具体限定。
[0146]
需要说明的是,在本公开实施例中,至少一个窗口尺寸可以为预先设定的窗口尺寸,例如,至少一个窗口尺寸可以设定为8像素
×
8像素、12像素
×
12像素、16像素
×
16像素、20像素
×
20像素。至少一个窗口尺寸并不限定为上述4个窗口尺寸,可以设置为3个,5个,或者2个窗口尺寸,具体窗口尺寸的数量可以根据实际需要来进行设定,本公开实施例不做具体限定。
[0147]
在本公开实施例中,在确定出目标跟踪特征的数量小于第一数量时,表明当前跟踪的特征数量较少,也即当前时刻slam系统的跟踪效果差,为了保证跟踪质量,提高slam系统的跟踪性能,需要在确定出目标跟踪特征的数量较少时,选择使用尺寸较大的光流窗口进行跟踪处理,从而提高特征跟踪的精度。
[0148]
在本公开实施例的一个可选实施方式中,根据所述阈值比较结果在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸,包括如下过程:
[0149]
情况一、若所述阈值比较结果为所述旋转角度大于最大旋转角度,和/或,所述角速度大于最大角速度,则在所述至少一个窗口尺寸中确定最大窗口尺寸为所述目标窗口尺寸。
[0150]
在本公开实施例中,如果判断出目标跟踪特征的数量小于或者等于第一数量,则需要继续判断旋转角度与最大旋转角度之间的大小关系,以及判断角速度与最大角速度之间的大小关系。在判断出旋转角度大于最大旋转角度,和/或,所述角速度大于最大角速度的情况下,可以在至少一个窗口尺寸中确定最大窗口尺寸为光流窗口的尺寸。
[0151]
情况二、若所述阈值比较结果为所述旋转角度小于最大旋转角度,以及所述角速度小于最大角速度,则根据所述旋转角度与最小旋转角度,以及所述角速度与最小角速度之间的阈值比较结果在所述至少一个窗口尺寸中确定除所述最大窗口尺寸之外的窗口尺寸中选择所述目标窗口尺寸。
[0152]
在一个可选的实施方式中,上述情况一和情况二所描述的过程可以描述为以下过程:
[0153]
假设,至少一个窗口尺寸包括:依次增大的第一尺寸、第二尺寸、第三尺寸和预设尺寸。
[0154]
(1)、若旋转角度大于或者等于最大旋转角度,则将光流窗口的目标窗口尺寸设置为至少一个窗口尺寸中的最大窗口尺寸(即,上述预设尺寸)。
[0155]
在此情况下,表明终端设备的运动幅度较大,为了保证特征跟踪精度,需要扩大光流窗口的尺寸,进而实现在较大的跟踪区域内进行特征的跟踪。
[0156]
(2)、若旋转角度小于最小旋转角度,则在至少一个窗口尺寸中选择尺寸较小的窗口尺寸作为目标窗口尺寸。
[0157]
在此情况下,表明终端设备的运动幅度较小,因此,通过选择较小尺寸的光流窗口,也依然可以保证较高的特征跟踪精度。此时,还可以减少特征跟踪的计算量,以进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧问题。
[0158]
针对(2)这种情况,还可以分为以下两种子情况:
[0159]
(21)若角速度小于最小角速度,则在至少一个窗口尺寸中选择最小的窗口尺寸作为目标窗口尺寸(即,上述第一尺寸)。
[0160]
在此情况下,可以表明终端设备的运动幅度最小,因此,为了减少特征跟踪的计算量,可以从至少一个窗口尺寸中选择最小的窗口尺寸作为目标窗口尺寸。
[0161]
(22)若角速度大于或者等于最小角速度,则在至少一个窗口尺寸中选择次小的窗口尺寸作为目标窗口尺寸(即,上述第二尺寸)。
[0162]
在此情况下,可以表明终端设备的运动幅度并不是最小,但是仅次于最小运动幅度。因此,为了保证特征跟踪精度,同时为了最小化特征跟踪的计算量,可以从至少一个窗口尺寸中选择次小的窗口尺寸作为目标窗口尺寸。
[0163]
(3)、若旋转角度小于最大旋转角度,且大于或者等于最小旋转角度,则在至少一个窗口尺寸中选择尺寸较大的窗口尺寸作为目标窗口尺寸。
[0164]
在此情况下,表明终端设备的运动幅度较大,因此,为了保证较高的特征跟踪精度,需要选择较大尺寸的光流窗口。
[0165]
针对(3)这种情况,还可以分为以下两种子情况:
[0166]
(31)若角速度小于最大角速度,则在至少一个窗口尺寸中选择次大窗口尺寸作为目标窗口尺寸(即,上述第三尺寸)。
[0167]
在此情况下,可以表明终端设备的运动幅度较大,但是运动幅度并达到最大,因此,为了保证较高的特征跟踪精度,可以从至少一个窗口尺寸中选择次大的窗口尺寸作为目标窗口尺寸。
[0168]
(32)若角速度大于或者等于最大角速度,则在至少一个窗口尺寸中选择最大的窗口尺寸作为目标窗口尺寸(即,上述预设尺寸)。
[0169]
在此情况下,可以表明终端设备的运动幅度较大,为了保证特征跟踪精度,需要扩大光流窗口的尺寸,进而实现在较大的跟踪区域内进行特征的跟踪,此时,就需要将最大的窗口尺寸确定为目标窗口尺寸。
[0170]
与角速度相比,由于旋转角度能够更加直观的反映终端设备的运动幅度,因此,在本公开实施例中,可以设置首先判断旋转角度与最大旋转角度(以及最小旋转角度)之间的大小关系,进而通过该大小关系初步确定出终端设备的运动幅度。在此基础上,再判断角速
度与最大角速度(以及最小角速度)之间的大小关系,通过该大小关系就可以对终端设备的运动幅度进行小粒度划分,从而实现自适应的根据旋转角度和角速度确定光流窗口的目标窗口尺寸。
[0171]
在本公开实施例中,可以将角速度和旋转角度分别与对应的预设阈值进行比较,通过阈值比较结果来确定终端设备的运动幅度,通过确定的运动幅度来选择对应的光流窗口,从而实现在保证特征跟踪精度的基础上,尽量减小特征跟踪的计算过程,以进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧问题。
[0172]
如图7所示的即为至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸下的光流窗口的流程图,如图7所示,该确定过程为如下步骤:
[0173]
步骤s701,判断vi

slam系统是否处于初始化状态;其中,若是,则执行步骤s710,否则,执行步骤s702;
[0174]
步骤s702,判断vi

slam系统对上一帧图像进行图像跟踪得到的目标跟踪特征的特征数量是否小于第一数量;其中,若是,则执行步骤s710,否则,执行步骤s703;
[0175]
步骤s703,判断旋转角度是否小于最大旋转角度;其中,若是,则执行步骤s704,否则,执行步骤s710;
[0176]
步骤s704,判断旋转角度是否小于最小旋转角度;其中,若是,则执行步骤s705,否则,执行步骤s706;
[0177]
步骤s705,判断角速度是否小于最小角速度;其中,若是,则执行步骤s707,否则,执行步骤s708;
[0178]
步骤s706,判断角速度是否小于最大角速度;其中,若是,则执行步骤s709,否则,执行步骤s710;
[0179]
步骤s707,确定目标窗口尺寸为第一尺寸;
[0180]
步骤s708,确定目标窗口尺寸为第二尺寸;
[0181]
步骤s709,确定目标窗口尺寸为第三尺寸;
[0182]
步骤s710,确定目标窗口尺寸为第四尺寸,其中,第四尺寸即为上述所描述的预设尺寸。
[0183]
在本公开实施例中,通过角速度和旋转角度自适应确定相匹配的光流窗口的尺寸的方式,能够进一步降低光流跟踪的能耗,从而避免由于cpu消耗较大导致的掉帧的问题。
[0184]
实施例六
[0185]
在上述实施例一至实施例四的基础上,如图8所示,在利用确定出的光流窗口对所述当前图像和所述上一帧图像进行光流跟踪处理之前,还可以执行步骤s801:获取预先存储的所述上一图像帧的第一特征金字塔,并确定所述当前图像的第二特征金字塔。
[0186]
基于此,步骤s107,利用确定出的光流窗口对所述当前图像和所述上一帧图像进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征,包括如下步骤s802:利用确定出的所述光流窗口对所述第一特征金字塔和所述第二特征金字塔进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征。
[0187]
在本公开实施例中,可以在数据库中获取上一图像帧的第一特征金字塔frame
i
‑1,然后,确定当前图像的第二特征金字塔frame
i
。在确定出第二特征金字塔之后,还可以将第
二特征金字塔存储在数据库中。在slam系统对下一帧图像进行光流跟踪处理时,就可以直接在数据库中提取该第二特征金字塔,以根据光流窗口对当前图像的第二特征金字塔frame
i
和下一帧图像第三特征金字塔frame
i+1
进行光流跟踪处理。
[0188]
在本公开实施例中,在确定出第一特征金字塔和第二特征金字塔之后,就可以利用确定出的述光流窗口对第一特征金字塔和第二特征金字塔进行光流跟踪处理,得到slam系统的当前跟踪特征。
[0189]
通过上述描述可知,在本公开实施例中,在获取到当前图像之后,确定当前图像的特征金字塔(即,上述第二特征金字塔),然后,对当前图像的特征金字塔进行存储,以用于当前图像的下一帧图像光流跟踪,如图9所示;每次存储最新图像帧所构建的金字塔的方式能够进一步节省特征跟踪的时间,提升slam系统的速度。
[0190]
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0191]
基于同一发明构思,本公开实施例中还提供了与图像特征的跟踪方法对应的图像特征的跟踪装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述图像特征的跟踪方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
[0192]
实施例七
[0193]
参照图10所示,为本公开实施例提供的一种图像特征的跟踪装置的架构示意图,所述装置包括:获取模块10、第一确定模块20、第二确定模块30和光流跟踪处理模块40;其中,
[0194]
获取模块10,用于获取惯性测量单元imu数据和图像传感器检测到的图像数据;
[0195]
第一确定模块20,用于通过所述imu数据,确定所述图像数据中当前图像相对于上一帧图像的旋转角度,以及所述图像传感器采集所述当前图像时的角速度;
[0196]
第二确定模块30,用于根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口;
[0197]
光流跟踪处理模块40,用于利用确定出的光流窗口对所述当前图像和所述上一帧图像进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征。
[0198]
一种可能的实施方式中,该装置还用于:在通过所述imu数据,确定所述图像数据中当前图像相对于上一帧图像的旋转角度,以及所述图像传感器采集所述当前图像时的角速度之前,对所述imu数据和所述图像数据进行数据采集时间对齐处理。
[0199]
一种可能的实施方式中,该装置还用于:将所述imu数据中目标传感器的检测数据所对应的时间戳作为基准时间戳,利用所述基准时间戳对所述imu数据中不同传感器的检测数据进行数据采集时间对齐处理;利用进行数据采集时间对齐之后的所述imu数据,对所述图像数据进行数据采集时间对齐处理。
[0200]
一种可能的实施方式中,在imu数据包括:加速度计数据、陀螺仪数据和磁力计数据;所述目标传感器为加速度计的情况下,该装置还用于:确定所述陀螺仪数据和所述磁力计数据中,在所述基准时间戳的两侧分别采集到的目标陀螺仪数据和目标磁力计数据;根据在所述基准时间戳的两侧分别采集的所述目标陀螺仪数据和所述目标陀螺仪数据所对
应的数据采集时间,确定与所述基准时间戳对应的对齐后陀螺仪数据;以及,根据在所述基准时间戳的两侧分别采集的所述目标磁力计数据和所述目标磁力计数据所对应的数据采集时间,确定与所述基准时间戳对应的对齐后磁力计数据。
[0201]
一种可能的实施方式中,该装置还用于:在获取惯性测量单元imu数据之后,对所述imu数据中的陀螺仪数据和/或磁力计数据进行零偏校正。
[0202]
一种可能的实施方式中,该装置还用于:计算陀螺仪在每个数据采集时间检测到的陀螺仪数据与所述陀螺仪的漂移量之间的差值,并将所述差值确定为零偏校正之后的陀螺仪数据。
[0203]
一种可能的实施方式中,该装置还用于:获取当前时刻的上一时刻陀螺仪各个轴的角偏差的估计值;以及获取当前时刻的上一时刻所述图像传感器的位姿数据;根据所述估计值和所述位姿数据,对所述磁力计数据进行零偏校正。
[0204]
一种可能的实施方式中,该装置还用于:获取所述定位与地图构建视觉惯性slam系统对所述上一帧图像进行图像跟踪得到的目标跟踪特征;第二确定模块,还用于:若所述目标跟踪特征的数量大于或者等于第一数量,则在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸下的光流窗口。
[0205]
一种可能的实施方式中,第二确定模块30,还用于:若所述目标跟踪特征的数量小于第一数量,则确定所述光流窗口的尺寸为预设尺寸。
[0206]
一种可能的实施方式中,第二确定模块30,还用于:分别将所述角速度和所述旋转角度与对应的预设阈值进行比较,得到阈值比较结果,并根据所述阈值比较结果在至少一个窗口尺寸中确定与所述角速度和所述旋转角度相匹配的目标窗口尺寸。
[0207]
一种可能的实施方式中,第二确定模块30,还用于:若所述阈值比较结果为所述旋转角度大于最大旋转角度,和/或,所述角速度大于最大角速度,则在所述至少一个窗口尺寸中确定最大窗口尺寸为所述目标窗口尺寸。
[0208]
一种可能的实施方式中,第二确定模块30,还用于:若所述阈值比较结果为所述旋转角度小于最大旋转角度,以及所述角速度小于最大角速度,则根据所述旋转角度与最小旋转角度,以及所述角速度与最小角速度之间的阈值比较结果在所述至少一个窗口尺寸中确定除所述最大窗口尺寸之外的窗口尺寸中选择所述目标窗口尺寸。
[0209]
一种可能的实施方式中,该装置还用于:获取预先存储的所述上一图像帧的第一特征金字塔,并确定所述当前图像的第二特征金字塔;光流跟踪处理模块,还用于:利用确定出的所述光流窗口对所述第一特征金字塔和所述第二特征金字塔进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征。
[0210]
一种可能的实施方式中,第一确定模块20,还用于:利用所述imu数据中的陀螺仪数据计算所述惯性测量单元imu的方向偏移量,得到第一方向偏移量;对所述imu数据中的加速度计数据和磁力计数据进行计算,得到所述惯性测量单元imu的第二方向偏移量;对所述第一方向偏移量和所述第二方向偏移量进行融合,得到融合偏移量,并将所述融合偏移量由当前imu系统坐标系下变换至所述图像传感器的坐标系下,变换之后得到所述相对旋转角度。
[0211]
一种可能的实施方式中,第一确定模块20,还用于:构建目标函数,其中,所述目标函数用于表征预设函数和所述imu数据中的加速度计数据之间的差值,所述预设函数为基
于预设方向偏移量变量和磁力计数据构建的用于计算所述imu数据中的加速度计数据的函数;通过最速下降法对所述目标函数进行最优求解计算,并将计算出的最优解确定为所述第二方向偏移量。
[0212]
一种可能的实施方式中,第一确定模块20,还用于:获取目标融合因子,其中,所述目标融合因子为基于发散速度和收敛速度确定的融合因子,所述发散速度表示在计算所述第一方向偏移量时第一方向偏移量的发散速度,所述收敛速度表示在通过最速下降法计算所述第二方向偏移量时所述第二方向偏移量的收敛速度;根据所述目标融合因子对所述第一方向偏移量和所述第二方向偏移量进行加权计算,得到所述融合偏移量。
[0213]
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
[0214]
实施例八
[0215]
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图11所示,为本公开实施例提供的计算机设备1100的结构示意图,包括处理器1101、存储器1102、和总线1103。其中,存储器1102用于存储执行指令,包括内存11021和外部存储器11022;这里的内存11021也称内存储器,用于暂时存放处理器1101中的运算数据,以及与硬盘等外部存储器11022交换的数据,处理器1101通过内存11021与外部存储器11022进行数据交换,当计算机设备1100运行时,处理器1101与存储器1102之间通过总线1103通信,使得处理器1101在执行以下指令:
[0216]
获取惯性测量单元imu数据和图像传感器检测到的图像数据;通过所述imu数据,确定所述图像数据中当前图像相对于上一帧图像的旋转角度,以及所述图像传感器采集所述当前图像时的角速度;根据所述角速度和所述旋转角度确定目标窗口尺寸下的光流窗口;利用确定出的光流窗口对所述当前图像和所述上一帧图像进行光流跟踪处理,得到对所述上一帧图像和所述当前图像进行特征跟踪时获取到的当前跟踪特征。
[0217]
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的图像特征的跟踪方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
[0218]
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的图像特征的跟踪方法的步骤,具体可参见上述方法实施例,在此不再赘述。
[0219]
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
[0220]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦
合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0221]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0222]
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0223]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0224]
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1