利索能及
我要发布
收藏
专利号: 2020105521528
申请人: 济南大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-01
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种感知场景信息的方法,其特征在于,所述的方法包括:S1:通过摄像头获取场景图像数据;

S2:基于场景图像数据,计算虚拟物体在场景中的位置坐标;

S3:根据虚拟手与待操作的实验区域之间的距离将虚拟场景划分为三个区域,通过多通道场景感知算法感知用户所处虚拟实验场景;

所述的步骤S2的具体实现过程为:

S21:单目相机初始化;

S22:获取相机的位姿;

S23:使用NeedNewKeyFrame()方法判断当前帧是否能够作为关键帧输出;

S24:将关键帧位姿传入Viewer线程中,将当前帧相机的旋转和平移矩阵按照列优先的顺序存入M矩阵中,对M矩阵中的矩阵进行处理,得到相机坐标并存入Coordinate[3]中;

S25:调用SocketSend方法,将Coordinate[3]发送至Unity;

S26:在Unity虚拟平台中获取当前虚拟物体的坐标,通过json字符串解析将相机坐标的x,y,z坐标值对应加到当前虚拟物体的坐标值上;

S27:将处理过的坐标值通过transform.position方法赋值给虚拟环境中虚拟物体的坐标。

2.根据权利要求1所述的一种感知场景信息的方法,其特征在于,步骤S21的具体实现过程为:S211:创建mpInitializer;

S212:判断单目初始化器mpInitializer是否被创建,若是,确定当前帧为第一帧并进入步骤S215;若否,进入步骤S213:S213:设定当前帧图像为第一帧;

S214:使用mCurrentFrame.mvKeys.size()方法判断当前帧图像的特征点数是否大于

100,若特征点数目小于100,则等待MonocularInitialization()函数执行完毕后返回步骤S211;若特征点数目大于100,则确定当前帧为第一帧;

S125:设定当前帧的下一帧为第二帧;

S216:使用mCurrentFrame.mvKeys.size()方法判断第二帧图像的特征点数是否大于

100,若特征点数目小于100,则将mpInitializer释放,将步骤S212确定的第一帧丢弃,返回步骤S211;若特征点数目大于100,则确定S215中设定的为第二帧;

S217:将第一帧与第二帧使用SearchForInitializatio()方法做特征点匹配,若匹配的对数小于100,则释放mpInitializer并返回步骤S211;若匹配的对数大于100,则最开始的两帧确定成功;

S218:mpInitializer调用Initialize(),使用DLT和八点法来计算单应矩阵H和基础矩阵F,计算得到模型评分 ;

S219:计算分数比 ;

S2110:若 大于0.45,则认为这两帧的大部分特征点全在一个平面上,并且两帧的视差较小,此时应选单应矩阵,否则选择基础矩阵;

S2111:将选中的两帧设为关键帧,计算两帧的DBoW,将关键帧添加到map中;

S2112:遍历这两帧的每一组匹配点,用它们创建3D地图点并添加到地图mpMap;

S2113:使用UpdateConnections()方法更新关键帧之间的连接权重;

S2114:调用Optimizer::GlobalBundleAdjustemnt()方法对所有的地图点(MapPoints)和关键帧(Keyframes)联合进行优化;

S2115:如果得到的地图点大于100,则使用invMedianDepth()方法更新基线baseline以及地图点,并将追踪状态trackingState设置为OK。

3.根据权利要求1所述的一种感知场景信息的方法,其特征在于,步骤S22的具体实现过程为:当mState为OK时,假定前后两帧的相对运动相同即相机处于匀速运动,调用matcher.SearchByProjection()方法,通过投影来与上一帧看到的地图点进行匹配;

若匹配点数目大于等于20个,则调用TrackWithMotionModel()方法进行相机跟踪,根据上一帧的位姿和速度预测当前相机的位姿,同样将匹配地图点和位姿加入到图优化中得到当前帧的位姿以及匹配内点;

若匹配点数目少于20个,则调用TrackReferenceKeyFrame()方法进行跟踪,首先计算当前帧的Bow,然后利用Bow来进行匹配根据参考关键帧与当前帧匹配得到匹配地图点,之后将上一参考帧位姿作为当前帧的初始位姿,然后将匹配点和位姿同时进行图优化,得到当前帧的位姿以及匹配内点;

当mState为Lost时,调用Relocalization()方法进行重定位跟踪,获取相机位姿,首先计算当前帧的Bow,然后查询关键帧进行匹配,若匹配点对不小于15,则将该关键帧作为候选关键帧,之后根据ORB匹配点计算关键帧对应的地图点,使用PnP算法,利用 Ransac迭代以及非线性最小二乘优化计算相机位姿。

4.根据权利要求3所述的一种感知场景信息的方法,其特征在于,步骤S22的实现过程中,当相机发生运动时,需要调用Optimizer::PoseOptimization(&mCurrentFrame),对相机位姿进行优化,并根据优化的相机位姿更新恒速运动模型TrackWithMotionModel()及参考关键帧,若跟踪成功则记录当前位姿信息,若跟踪失败则使用上一次位姿值。

5.根据权利要求4所述的一种感知场景信息的方法,其特征在于,对相机位姿进行优化的具体过程为:更新地图中的关键帧;

更新局部地图点;

将局部地图点与当前帧进行匹配;

调用PoseOptimization()方法进行相机位姿调整。

6.根据权利要求5所述的一种感知场景信息的方法,其特征在于,更新地图中关键帧的具体实现原理为:设置当前不能接受新的关键帧到系统中;

建立新的关键帧及其属性,并更新地图点的属性并加入全局map;

检测当前关键帧对应的地图点是否是好的,检测项目为:地图点是否是好的、地图点的查找率是否大于0.25、该地图点的第一关键帧与当前帧id的相隔距离以及该关键点的被观察到的次数;

使用对极约束检测特征点,并建立地图点加入到全局map中;

在每组关键帧处理完成之后,对当前关键帧进行关键帧的融合,对地图点进行融合;

将上一步骤中处理过的关键帧传递给回环检测线程;

设置当前系统可以接受新的关键帧。

7.根据权利要求1所述的一种感知场景信息的方法,其特征在于,步骤S3的具体实现过程为:S31:初始化实验场景区域范围,分别记为实验用品准备范围A、实验操作准备范围B、实验区范围C;

S32:获取用户语音指令进行处理;

S33:获取用户当前进行实验的实验步骤;

S34:将实验步骤与语音指令进行匹配,根据用户指令判定用户实验步骤是否正确,并输出语音提示;

S35:获取当前虚拟手的位置,判定用户当前所处操作区域;若处于实验用品准备范围A内,则判定用户当前操作行为正误;若用户处于实验操作准备范围B内,则向用户输出相对位置关系;若用户处于实验区范围C内,则辅助用户到达正确的操作位置。

8.一种仿真装置,其特征在于,基于权利要求1‑7任意一项所述的方法来构建虚拟环境或虚拟物体的位置关系。

9.一种机器人,其特征在于,基于权利要求1‑7任意一项所述的方法构建场景地图,并基于该场景地图执行动作。