一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

检测VIO系统跟踪状态的方法、系统、电子装置和存储介质与流程

2022-02-20 05:52:28 来源:中国专利 TAG:

检测vio系统跟踪状态的方法、系统、电子装置和存储介质
技术领域
1.本技术涉及计算机视觉技术领域,特别是涉及检测vio系统跟踪状态的方法、系统、电子装置和存储介质。


背景技术:

2.视觉惯性里程计(visual inertial odometry,简称为vio)算法是一种融合相机和惯性测量单元(inertial measurement unit,简称为imu)信息,计算设备在空间中位姿的算法,以其高效鲁棒的特性,被广泛应用于增强现实(augmented reality,简称为ar)、无人车等领域。vio系统在运行过程中可能会因为场景或者自身运动模式的变化导致跟踪状态发生改变,准确的判断出vio系统的跟踪状态是维持vio系统稳定运行极为重要的一个部分,在相关技术中,传统的跟踪状态检测方法,将vio系统内部的一些变量参数做一个简单的检查,用一些笼统的阈值来判断跟踪状态,导致准确率低。
3.目前针对相关技术中传统的跟踪状态检测方法准确率低的问题,尚未提出有效的解决方案。


技术实现要素:

4.本技术实施例提供了一种检测vio系统跟踪状态的方法、系统、电子装置和存储介质,以至少解决相关技术中传统的跟踪状态检测方法准确率低的问题。
5.第一方面,本技术实施例提供了一种检测vio系统跟踪状态的方法,所述方法包括:
6.对源输入数据和系统内部状态信息进行标注,获得训练数据,其中,所述源输入数据包括imu数据和原始图像,所述训练数据包括正样本和负样本,所述正样本为跟踪良好的样本,所述负样本为跟踪失败的样本;
7.将所述训练数据按照机器学习方法进行模型训练,获得训练好的机器学习模型,其中,所述训练好的机器学习模型用于跟踪状态检测;
8.接收待预测数据,通过所述训练好的机器学习模型输出所述待预测数据的得分,根据所述待预测数据的得分,获得所述vio系统的第一跟踪状态。
9.在其中一些实施例中,所述接收待预测数据,通过所述训练好的机器学习模型输出所述待预测数据的得分之后,所述方法还包括:
10.获取系统内部状态信息,将所述系统内部状态信息进行分类,将各分类按照预设规则进行打分,获得各分类的得分;
11.根据所述各分类的得分和预设综合得分策略,获得综合得分,根据所述综合得分判断所述vio系统的第二跟踪状态;
12.根据所述第一跟踪状态和所述第二跟踪状态获得所述vio系统的第三跟踪状态。
13.在其中一些实施例中,根据所述各分类的得分和预设综合得分策略,获得综合得分包括:
14.获取各分类得分的最小得分、最大得分和平均得分;
15.若所述最小得分小于第一预设值,则所述综合得分为所述最小得分;
16.若所述最大得分大于第二预设值,且所述最小得分大于第三预设值,则所述综合得分为所述平均得分;
17.否则,所述综合得分为所有小于所述第三预设值的各分类得分相乘。
18.在其中一些实施例中,获得所述第一跟踪状态、所述第二跟踪状态或所述第三跟踪状态之后,所述方法还包括:
19.根据不同的跟踪状态触发不同的应对策略,所述应对策略用于对所述vio系统进行调整,其中,所述跟踪状态包括所述第一跟踪状态、所述第二跟踪状态或所述第三跟踪状态。
20.在其中一些实施例中,所述根据不同跟踪状态触发不同的应对策略包括:
21.若跟踪状态为跟踪受限,则减弱视觉相机对所述vio系统的约束,并加强imu对所述vio系统的约束;
22.若跟踪状态为跟踪受限严重,则将所述vio系统的6dof退化为3dof;
23.若跟踪状态为跟踪失败,则对所述vio系统进行重定位,若所述重定位后,跟踪状态还是为跟踪失败,则重启所述vio系统。
24.在其中一些实施例中,所述获取系统内部状态信息之后,所述方法还包括:
25.将所述系统内部状态信息以滑动窗口的方式存储。
26.第二方面,本技术实施例提供了一种检测vio系统跟踪状态的系统,所述系统包括机器学习模块,所述机器学习模块包括标注模块、训练模块和检测模块,
27.所述标注模块,用于对源输入数据和系统内部状态信息进行标注,获得训练数据,所述源输入数据包括imu数据和原始图像,所述训练数据包括正样本和负样本,其中,所述正样本为跟踪良好的样本,所述负样本为跟踪失败的样本;
28.所述训练模块,用于将所述训练数据按照机器学习方法进行模型训练,获得训练好的机器学习模型,其中,所述训练好的机器学习模型用于跟踪状态检测;
29.所述检测模块,用于接收待预测数据,通过所述训练好的机器学习模型输出所述待预测数据的得分,根据所述待预测数据的得分,获得所述vio系统的第一跟踪状态。
30.在其中一些实施例中,所述系统还包括系统内部状态信息检测模块和综合判断模块,所述检测模块输出所述待预测数据的得分之后,
31.所述内部状态信息检测模块获取系统内部状态信息,将所述系统内部状态信息进行分类,将各分类按照预设规则进行打分,获得各分类的得分;
32.根据所述各分类的得分和预设综合得分策略,获得综合得分,根据所述综合得分判断所述vio系统的第二跟踪状态
33.所述综合判断模块根据所述第一跟踪状态和所述第二跟踪状态获得所述vio系统的第三跟踪状态。
34.第三方面,本技术实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的检测vio系统跟踪状态的方法。
35.第四方面,本技术实施例提供了一种存储介质,其上存储有计算机程序,该程序被
处理器执行时实现如上述第一方面所述的检测vio系统跟踪状态的方法。
36.相比于相关技术,本技术实施例提供的检测vio系统跟踪状态的方法,通过对源输入数据和系统内部状态信息进行标注,获得训练数据,其中,源输入数据包括imu数据和原始图像,训练数据包括正样本和负样本,正样本为跟踪良好的样本,负样本为跟踪失败的样本;将训练数据按照机器学习方法进行模型训练,获得训练好的机器学习模型,其中,训练好的机器学习模型用于跟踪状态检测;接收待预测数据,通过训练好的机器学习模型输出待预测数据的得分,根据待预测数据的得分,获得vio系统的第一跟踪状态,同时利用了vio系统的源输入数据和部分系统内部状态信息,并且使用了机器学习的方法判断跟踪状态,机器学习的方法可以从大量正负样本中进行学习,从而获得准确检测跟踪状态的能力,提高了检测跟踪状态的准确率。
附图说明
37.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
38.图1是根据本技术实施例的检测vio系统跟踪状态的方法的流程图;
39.图2是根据本技术实施例的检测vio系统跟踪状态的系统的结构框图;
40.图3是根据本技术实施例的另一种检测vio系统跟踪状态的系统的结构框图。
具体实施方式
41.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本技术公开的内容相关的本领域的普通技术人员而言,在本技术揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本技术公开的内容不充分。
42.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本技术所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
43.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属技术领域内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本技术所涉及的“多个”是指大于
或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本技术所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
44.本实施例提供了一种检测vio系统跟踪状态的方法,图1是根据本技术实施例的检测vio系统跟踪状态的方法的流程图,如图1所示,该方法包括如下步骤:
45.步骤s101,对源输入数据和系统内部状态信息进行标注,获得训练数据,其中,源输入数据包括imu数据和原始图像,训练数据包括正样本和负样本,正样本为跟踪良好的样本,负样本为跟踪失败的样本;
46.本实施例中,从vio系统的运行过程中导出系统的源输入数据和一部分系统内部状态信息,源输入数据是视觉相机和imu的raw data(未经处理过的数据),部分系统内部状态信息指的是例如视差、速度、提取的特征点数等raw data经过系统内部算法初步处理的信息,这些信息属于系统内部的信息,是raw data直接派生出来的,可以看做是raw data的提炼,所以具有很高的训练价值;系统的跟踪点数属于系统深度运行和处理的结果,不能看作是raw data的提炼,所以不参与标注和训练。
47.根据源输入数据和一部分系统内部状态信息得到场景的变化、运动模式的变化以及vio系统在运行过程中的表现,其中,vio系统在运行过程中的表现是一种结果表现,是场景变化或者运动模式变化给vio系统造成的结果,例如,白墙场景会导致提取不到特征点,从而导致vio系统因为得不到视觉信息的约束而剧烈抖动甚至飞走;例如,纯旋转会导致vio系统无法三角化地图点或者三角化的地图点位置错误,导致vio系统轨迹抖动或者飞走;而纹理丰富的场景和正确的运动模式会让vio系统稳定运行,运动轨迹光滑无跳变。
48.根据场景的变化、运动模式的变化以及vio系统在运行过程中的表现对数据进行标注,例如,某段数据是白墙场景,则给这段数据的运行结果打上白墙的标签;某段数据是运动过于剧烈的场景,则给这段数据的运行结果打上运动模式过于剧烈的标签,跟踪不好的数据再统一打上负样本的标签,跟踪良好的数据打上正样本的标签。
49.步骤s102,将训练数据按照机器学习方法进行模型训练,获得训练好的机器学习模型,其中,机器学习模型用于跟踪状态检测;本实施例中,可以采用支持向量机(support vector machine,简称svm)算法、朴素贝叶斯分类(naive bayesian classifier,简称nbc)算法、逻辑回归(logistic regress,简称lr)算法、k最近邻(k-nearest neighbor,简称knn)算法或人工神经网络(artificial neural network,ann)算法等机器学习方法进行模型训练,机器学习方法可以从大量正负样本中进行学习,从而获得准确检测vio系统的跟踪状态的能力。
50.步骤s103,接收待预测数据,通过训练好的机器学习模型输出待预测数据的得分,根据待预测数据的得分,获得vio系统的第一跟踪状态。本实施例中,待预测数据为源输入数据和一部分系统内部状态信息,当得分大于第一预设阈值,则第一跟踪状态为跟踪良好,得分在第一预设阈值和第二预设阈值之间,则第一跟踪状态为跟踪受限,得分小于第二预设阈值,则第一跟踪状态为跟踪失败,其中,第一预设阈值大于第二预设阈值。
51.相对于相关技术中,传统的跟踪状态检测方法将vio系统内部的一些变量参数做一个简单的检查,用一些笼统的阈值来判断跟踪状态,例如,用跟踪的点的数量或者视差来简单判断跟踪状态,这种检测方法无法利用vio系统的源输入数据并且对系统内部状态信
息的利用非常有限,导致检测结果准确率不高,而本技术的技术方案中,通过步骤s101至步骤s103,同时利用了vio系统的源输入数据和部分系统内部状态信息,并且使用了机器学习的方法判断跟踪状态,机器学习的方法可以从大量正负样本中进行学习,从而获得准确检测跟踪状态的能力,提高了检测跟踪状态的准确率。
52.在其中一些实施例中,接收待预测数据,通过机器学习模型输出待预测数据的得分之后,获取系统内部状态信息,将系统内部状态信息进行分类,将各分类按照预设规则进行评分,获得各分类的得分;根据各分类的得分和预设综合得分策略,获得综合得分,根据综合得分判断vio系统的第二跟踪状态;根据第一跟踪状态和第二跟踪状态获得vio系统的第三跟踪状态。
53.示例性的,可以将系统内部状态信息分为12类,分别为系统内部矫正过的imu加速度信息acc、系统内部矫正过的imu角速度信息gyr、系统内部根据两帧之间的距离和两帧之间的时间戳计算得到的速度velocity、两帧之间距离position_diff、两帧之间旋转角度orientation_diff、图像纹理丰富程度texture_richness(由粗略提取到的fast角点数量计算得到)、图像分布均匀程度feature_distribution(将原始图像分成4x4=16等份的网格grid,在每个grid里统计fast角点数量)、视差parallax(由光流匹配得到的两个feature之间的像素数量差得到)、视差方差parallax_covariance(描述视差分布的均匀程度)、前端成功跟踪的点的数量frontend_tracks、经过处理的后端成功跟踪的点的数量backend_tracks、场景深度scene_depth(场景越深,得分越低),系统内部状态信息分类后,对上述分类进行粗略打分如下:
54.1.acc_score_raw=acc_rectify.norm()/4.0;
55.2.gyr_score_raw=gyr_rectify.norm()/0.8;
56.3.velocity_score_raw=velocity.norm()/4.0;
57.4.position_diff_score_raw=position_diff.norm()/0.1;
58.5.orientation_diff_score_raw=orientation_diff.norm()/0.5;
59.6.texture_richness_score_raw=source_features_num/1500;
[0060][0061]
8.parallax_score_raw=average_parallax/4.0;
[0062][0063]
10.frontend_tracks_score_raw=frontend_tracked_features/80;
[0064]
11.backend_tracks_score_raw=backend_tracked_features/20;
[0065]
12.scene_depth_score_raw=average_inverse_depth_of_backend_tracked_featur es/0.2;
[0066]
其中,norm函数为向量的范数,经粗略打分后,由8种激活函数分别将线性得分转化为非线性得分,来更好的拟合实际情况,8个基本激活函数如下所示:
[0067][0068][0069][0070][0071][0072][0073][0074][0075]
则由8种激活函数分别将线性得分转化为非线性得分如下所示(满分1分,得分范围为[0,1]):
[0076]
1.acc_score=sigmoid_acc(acc_score_raw);
[0077]
2.gyr_score=sigmoid_acc(gyr_score_raw);
[0078]
3.velocity_score=sigmoid_velocity(velocity_score_raw);
[0079]
4.position_diff_score=sigmoid_pose(position_diff_score_raw);
[0080]
5.orientation_diff_score=sigmoid_pose(orientation_diff_score_raw);
[0081]
6.texture_richness_score=sigmoid_feature(texture_richness_score_raw);
[0082]
7.feature_distribution_score=sigmoid_feature(features_distribution_score_raw);
[0083]
8.parallax_score=sigmoid_parallax(parallax_score_raw);
[0084]
9.parallax_covariance_score=sigmoid_parallax(parallax_covariance_score_raw);
[0085]
10.frontend_tracks_score=sigmoid_tracking(frontend_tracks_score_raw);
[0086]
11.backend_tracks_score=sigmoid_tracking(backend_tracks_score_raw);
[0087]
12.scene_depth_score=sigmoid_depth(scene_depth_score_raw);
[0088]
通过上述12个式子获得各分类的得分后,再根据各分类的得分的权重或者预设综合得分策略,获得综合得分,综合得分大于第一预设阈值,则第二跟踪状态为跟踪良好,综合得分在第一预设阈值和第二预设阈值之间,则第二跟踪状态为跟踪受限,综合得分小于第二预设阈值,则第二跟踪状态为跟踪失败,其中,第一预设阈值大于第二预设阈值。
[0089]
在实际应用中,根据第一跟踪状态或第二跟踪状态都可以对vio跟踪状态进行判断,第一跟踪状态通过机器学习的方法得到,优点是可以学习某种特定的场景和运动模式,当遇到这种场景或运动模式时可以快速且细致地判断出来,缺点是缺少系统内部状态信息的支持,从而无法达到非常精确的程度。例如在纹理较为缺失或者运动模式较为异常时,机器学习的方法由于缺少系统内部状态信息(如跟踪点数)的支持,对这些情况的判断精度不会很高,有可能会跟踪比较好也有可能跟踪比较差,第二跟踪状态通过系统内部状态信息判断的方法得到,优点是能比较直接的判断vio系统跟踪状态的好坏,缺点是无法准确判断出跟踪好坏是哪一种因素造成的。
[0090]
为了解决以上问题,将两种判断方法进行结合,根据第一跟踪状态和第二跟踪状态获得vio系统的第三跟踪状态,进一步提高检测跟踪状态的准确率,根据第一跟踪状态和第二跟踪状态获得vio系统的第三跟踪状态包括:当第一跟踪状态和第二跟踪状态都为跟踪良好时,第三跟踪状态也为跟踪良好;当第一跟踪状态和第二跟踪状态至少有一个为跟踪受限,且都不为跟踪失败时,第三跟踪状态为跟踪受限;当第一跟踪状态和第二跟踪状态至少有一个为跟踪失败,且都不为跟踪良好时,第三跟踪状态为跟踪失败。
[0091]
若存在特殊情况,例如,第一跟踪状态为跟踪良好,第二跟踪状态为跟踪失败,则查看系统内部状态信息的velocity_score和backend_tracks_score是否都小于0.1,若是,则第三跟踪状态为跟踪失败,若否,则第三跟踪状态为跟踪受限,即通过某些单项得分来解决第一跟踪状态和第二跟踪状态判断不一致的问题。
[0092]
典型场景和运动模式判断:
[0093]
类白墙场景判断:机器学习方法判断类白墙场景得分偏高,此时,若系统内部状态信息判断方法中texture_richness_score和feature_distribution_score得分都小于0.2时才正式判断为类白墙场景;
[0094]
深度场景判断:机器学习方法判断当前场景为深度较深场景得分偏高,此时,若系统内部状态信息判断方法中scene_depth_score得分小于0.2分时才正式判断为深度场景;
[0095]
快速运动模式判断:机器学习方法判断快速运动得分偏高,此时,若系统内部状态信息判断方法中velocity_score、parallax_score和parallax_covariance_score得分均小于0.2,且backend_tracks_score小于0.3,则判断为快速运动模式;
[0096]
纯旋转模式判断:机器学习方法判断纯旋转运动得分偏高,此时,若内部状态信息
判断方法中gyr_score得分小于0.1,parallax_score和parallax_covariance_score得分均小于0.2,velocity_score和position_diff_score得分均大于0.85,则判断为纯旋转运动模式,一些其他模式共同判断方案不再赘述,通过两种方法的共同判断,很好地弥补了这两种方法自身的不足,从而达到了准确判断vio系统跟踪状态的目的。
[0097]
在其中一些实施例中,根据各分类的得分和预设综合得分策略,获得综合得分包括:
[0098]
获取各分类得分的最小得分min_score、最大得分max_score和平均得分ave_score;若最小得分小于第一预设值,则综合得分为最小得分;若最大得分大于第二预设值,且最小得分大于第三预设值,则综合得分为平均得分;否则,综合得分为所有小于第三预设值的各分类得分相乘。
[0099]
示例性的,第一预设值为0.1,第二预设值为0.9,第三预设值为0.4,则综合得分策略为:
[0100]
min_score=min(acc_score,gyr_score,velocity_score,position_diff_score,orientation_diff_score,texture_richness_score,feature_distribution_score,parallax_score,parallax_covariance_score,frontend_tracks_score,backend_tracks_score,scene_depth_score);
[0101]
max_score=max(acc_score,gyr_score,velocity_score,position_diff_score,orientation_diff_score,texture_richness_score,feature_distribution_score,parallax_score,parallax_covariance_score,frontend_tracks_score,backend_tracks_score,scene_depth_score);
[0102]
ave_score=sum(acc_score,gyr_score,velocity_score,position_diff_score,orientation_diff_score,image_richness_score,feature_distribution_score,parallax_score,parallax_covariance_score,frontend_tracks_score,backend_tracks_score,scene_depth_score)/12;
[0103]
if min_score《0.1:score=min_score;#如果最小得分小于0.1,则综合得分为最小得分
[0104]
else if max_score》0.9&&min_score》0.4:score=ave_score;#如果最大得分大于0.9,且最小得分大于0.4,则综合得分为平均得分
[0105]
else:
[0106]
score=times_if_score_less_than_0.4(acc_score,gyr_score,velocity_score,position_diff_score,orientation_diff_score,texture_richness_score,feature_distribution_score,parallax_score,parallax_covariance_score,frontend_tracks_score,backend_tracks_score,scene_depth_score);
[0107]
#times_if_score_less_than_0.4表示将所有小于0.4的得分相乘。
[0108]
在其中一些实施例中,获得第一跟踪状态、第二跟踪状态或第三跟踪状态之后,根据不同的跟踪状态触发不同的应对策略,该应对策略用于对vio系统进行调整,其中,跟踪状态包括第一跟踪状态、第二跟踪状态或第三跟踪状态。
[0109]
可选的,跟踪受限的跟踪状态可进一步划分为跟踪受限和跟踪受限严重,根据不同的跟踪状态触发不同的应对策略包括:
[0110]
若跟踪状态为跟踪良好,则vio系统正常运行;
[0111]
若跟踪状态为跟踪受限,则减弱视觉相机对vio系统的约束,并加强imu对vio系统的约束;本实施例中,跟踪受限的情况可能是因为发生在纹理较差或者运动模式较差的情况,此时vio系统提取到的视觉特征点已经很难维持系统的稳定运行了,当准确判断出这种情况后,选择减弱视觉相机对vio系统的约束,加强imu对vio系统的约束(即更加相信imu的观测,因为imu在快速运动或者纯旋转时,imu都能够得到比视觉更可靠的观测),从而减弱跟踪受限状态对vio系统的不利影响,提高vio系统的鲁邦性。
[0112]
若跟踪状态为跟踪受限严重,则将vio系统的6dof退化为3dof;本实施例中,跟踪受限严重即纹理严重缺失,运动模式很不友好,但vio系统并没有飞走的情况,将6dof(6degree of freedom),即3个位移自由度 3个旋转自由度退化为3dof,即3个旋转自由度来处理,因为imu对旋转的观测比较可靠,有较高的置信度,基本可以相信imu提供的旋转信息,在ar场景中vio系统退化为3dof之后,仍然可以看到视频显示三维ar物体,但此时ar物体只会旋转不会位移,但用户仍然能看到ar物体在场景中不至于消失不见。
[0113]
若跟踪状态为跟踪失败,则对vio系统进行重定位,若重定位后,跟踪状态还是为跟踪失败,则重启vio系统。本实施例中,跟踪失败即vio系统跟踪轨迹发生严重跳变甚至飞走,通过重定位方式将vio系统拉回正常的轨迹,当重定位也不起作用时,通过重启vio系统,让vio系统重新开始运行,来阻止vio系统状态的恶化。
[0114]
以上情况的处理都是基于对vio系统跟踪状态的准确判断来进行的,若错误的判断vio系统的跟踪状态,可能会给vio系统带来灾难性的后果,例如,将跟踪良好判断为跟踪受限或者跟踪失败,本来良好的视觉观测可能会被不稳定的imu观测所替代,导致跟踪精度降低甚至重启系统;若是跟踪受限被误判为跟踪良好,本来可以进行弥补的策略无法实施,会导致跟踪精度被错误的观测给带坏;若是跟踪失败被误判为跟踪受限甚至跟踪良好,无法重启算法,导致跟踪飞走,用户看不到ar物体,会使得用户对vio系统的体验极差,因此,准确检测跟踪状态可以维持vio系统稳定运行。
[0115]
在其中一些实施例中,获取系统内部状态信息之后,将系统内部状态信息以滑动窗口的方式存储。其中,滑动窗口比单帧具有更高的鲁棒性,例如,单帧可能会因为imu传感器的异常给出一些异常的数据,从而导致判断的错误,但是整个滑动窗口出错的概率非常小,几乎不可能发生,如果发生了,则很可能是imu传感器损坏了。
[0116]
需要说明的是,本技术方案中的vio算法可以替换为rovio、okvis等vio算法,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0117]
本实施例还提供了一种检测vio系统跟踪状态的系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0118]
图2是根据本技术实施例的检测vio系统跟踪状态的系统的结构框图,如图2所示,该系统包括机器学习模块21,机器学习模块21包括标注模块211、训练模块212和检测模块213,标注模块211,用于对源输入数据和系统内部状态信息进行标注,获得训练数据,源输
入数据包括imu数据和原始图像,训练数据包括正样本和负样本,其中,正样本为跟踪良好的样本,负样本为跟踪失败的样本;训练模块212,用于将训练数据按照机器学习方法进行模型训练,获得训练好的机器学习模型,其中,训练好的机器学习模型用于跟踪状态检测;检测模块213,用于接收待预测数据,通过训练好的机器学习模型输出待预测数据的得分,根据待预测数据的得分,获得vio系统的第一跟踪状态。
[0119]
在其中一些实施例中,图3是根据本技术实施例的另一种检测vio系统跟踪状态的系统的结构框图,如图3所示,该系统还包括系统内部状态信息检测模块31和综合判断模块32,检测模块213输出待预测数据的得分之后,内部状态信息检测模块31获取系统内部状态信息,将系统内部状态信息进行分类,将各分类按照预设规则进行打分,获得各分类的得分;根据各分类的得分和预设综合得分策略,获得综合得分,根据综合得分判断vio系统的第二跟踪状态综合判断模块32根据第一跟踪状态和第二跟踪状态获得vio系统的第三跟踪状态。
[0120]
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
[0121]
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0122]
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0123]
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0124]
另外,结合上述实施例中的检测vio系统跟踪状态的方法,本技术实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种检测vio系统跟踪状态的方法。
[0125]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种检测vio系统跟踪状态的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0126]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom
(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0127]
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0128]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献