一种基于单目vio的移动端AR方法与流程

文档序号:13878192阅读:1498来源:国知局

本发明涉及一种ar方法,尤其是一种基于单目vio的移动端ar方法。



背景技术:

slam(simultaneouslocalizationandmapping)分为两大功能:定位与建图。其中建图主要作用是对周边环境的理解,建立周边环境与空间的对应关系;定位主要是根据建好的图,判断设备在地图中的位姿,从而得到相机在环境中的信息。

slam分为dense和sparse两种,基于计算能力的考虑,移动端一般选择sparseslam。sparseslam虽然速度快,但是效果很依赖环境:在比较复杂,特征点多的环境下,sparseslam效果很好,而对于白墙、光滑平面等特征点比较少的环境,其效果很差,很难准确的估算出相机的姿态。



技术实现要素:

本发明的目的在于提供一种基于单目vio的移动端ar方法,能够弥补vslam的缺点,在短时间内,定位效果很好且不受环境特征点的影响。

为了实现上述发明目的,本发明提供了一种基于单目vio的移动端ar方法,包括如下步骤:

步骤1,利用相机和imu分别进行图像采集和惯性数据采集,且imu的采集频率大于相机的采集频率;

步骤2,提取相机获取的每一帧图像的特征点,并用光流法对各个特征点进行跟踪,并将成功跟踪的帧设置为关键帧;

步骤3,对imu得到的多组imu数据进行预积分,计算出两帧图像对应的imu位置和速度分别为:

式中,pk和pk+1分别表示第k和k+1帧时imu的位置,vk和vk+1表示第k和k+1帧时imu的速度,δt为k与k+1帧之间的时间间隔,rt为t时刻旋转矩阵,at为t时刻的加速度,g为重力加速度;

步骤4,利用sfm算法获取关键帧中跟踪的特征点,并根据该特征点计算出每个关键帧的位姿其中表示关键帧的位置,为表示关键帧的四元数,代表关键帧的旋转信息;

步骤5,根据imu测得的两帧之间的imu位置相减计算获得位移,再根据imu得到的位移和旋转信息与相机测得两帧之间的位移和旋转信息相等算出相机与imu之间的外参外参的计算公式为:

式中,s为尺度因子,表示相机坐标系下imu的四元数,即相机与imu之间的旋转关系,为相机与imu之间的位置关系,为imu测量的位置,为imu测量的四元数,表示旋转信息;

步骤6,初始化imu的速度、加速度以及尺度因子,初始化公式为:

式中,表示imu预积分结果,预积分结果包括两项,分别表示imu在第k与k+1帧之间的位置约束和速度约束,为测量矩阵,表示imu在第k帧下的四元数,的逆,则表示imu在第k、k+1帧下的位置,为两帧图像之间的时间,χi为估算参数,分别为imu在第k和k+1帧时对应的速度,gv为加速度,s为尺度因子,为高斯噪声;

步骤7,利用紧耦合非线性优化imu测量数据以及相机测量数据得到相机姿态,优化公式为:

式中,分别为imu测量与相机测量的残差,优化上式得到相机的姿态,从而根据相机姿态叠加虚拟物体实现ar效果。

进一步地,步骤1中,相机以30hz的速度获取图像,即1秒30帧的速度;imu以100hz的速度获取数据,即1秒100组imu数据。

进一步地,步骤2中,光流法假设同一个特征点的灰度不变,对于t时刻位于(x,y)处的像素,假设t+dt时刻他运动到(x+dx,y+dy)处,灰度值不变,表示式为:

i(x+dx,y+dy,t+dt)=i(x,y,t)

式中,(x+dx,y+dy表示运动后的坐标,(x,y)表示运动前坐标,t表示运动前时刻,t+dt表示运动后时刻。

本发明的有益效果在于:采用imu(惯性测量单元)正好弥补了vslam的缺点,在短时间内,其效果很好且不受环境特征点的影响;在时间长时,可利用vslam与imu对齐,防止偏移;结合vslam与imu的vio系统(visual-inertialodometry),可保证算法在移动端实时运行,且效果很稳定。

附图说明

图1为本发明的方法流程图。

具体实施方式

如图1所示,本发明提供了一种基于单目vio的移动端ar方法,包括如下步骤:

步骤1,利用相机和imu分别进行图像采集和惯性数据采集,且imu的采集频率大于相机的采集频率;

步骤2,提取相机获取的每一帧图像的特征点,并用光流法对各个特征点进行跟踪,并将成功跟踪的帧设置为关键帧;

步骤3,由于imu的频率远高于相机获取图像的速度,所以当获取到两帧图像时,往往会得到多组imu数据,因此对imu得到的多组imu数据进行预积分,计算出两帧图像对应的imu位置和速度分别为:

式中,pk和pk+1分别表示第k和k+1帧时imu的位置,vk和vk+1表示第k和k+1帧时imu的速度,δt为k与k+1帧之间的时间间隔,rt为t时刻旋转矩阵,at为t时刻的加速度,g为重力加速度;

步骤4,利用sfm算法获取关键帧中跟踪的特征点,并根据该特征点计算出每个关键帧的位姿位姿此处的计算方法为本领域的常规计算,此处不再细述,其中表示关键帧的位置,为表示关键帧的四元数,代表关键帧的旋转信息;

步骤5,根据imu测得的两帧之间的imu位置相减计算获得位移,再根据imu得到的位移和旋转信息与相机测得两帧之间的位移和旋转信息相等算出相机与imu之间的外参外参的计算公式为:

式中,s为尺度因子,可由步骤6的初始化公式计算获得,表示相机坐标系下imu的四元数,即相机与imu之间的旋转关系,为相机与imu之间的位置关系,为imu测量的位置,由步骤3获得,为imu测量的四元数,表示旋转信息,旋转信息包括速度值和方向信息,有步骤3中的旋转矩阵rt计算获得,该计算方法为本领域常规计算,此处不再细述;

步骤6,判断是否已经进行过初始化,若还未进行初始化,则初始化imu的速度、加速度以及尺度因子,若已经进行过初始化,则直接进入步骤7,初始化公式为:

式中,表示imu预积分结果,预积分结果包括两项,分别表示imu在第k与k+1帧之间的位置约束和速度约束,由步骤3计算获得,计算方法为本领域常规计算,此处不再细述,为测量矩阵,中的表示imu在第k帧下的四元数,由步骤4中的sfm结果以及步骤5中第一个公式计算得到,该计算方法为本领域常规计算,此处不再细述,的逆,则表示imu在第k、k+1帧下的位置,且满足步骤5中第二个公式的约束,为两帧图像之间的时间,χi为估算参数,分别为imu在第k和k+1帧时对应的速度,gv为加速度,s为尺度因子,为高斯噪声,在计算时可忽略;

步骤7,利用紧耦合非线性优化imu测量数据以及相机测量数据得到相机姿态,相机测量数据由sfm算法根据相机拍摄的图像计算得到,优化公式为:

式中,分别为imu测量与相机测量的残差,相机测量的残差由相机的基本参数计算获得,为本领域常规计算方法,此处不再细述,优化上式得到相机的姿态,从而根据相机姿态叠加虚拟物体实现ar效果。

进一步地,步骤1中,相机以30hz的速度获取图像,即1秒30帧的速度;imu以100hz的速度获取数据,即1秒100组imu数据。

进一步地,步骤2中,光流法假设同一个特征点的灰度不变,对于t时刻位于(x,y)处的像素,假设t+dt时刻他运动到(x+dx,y+dy)处,灰度值不变,表示式为:

1(x+dx,y+dy,t+dt)=1(x,y,t)

式中,(x+dx,y+dy)表示运动后的坐标,(x,y)表示运动前坐标,t表示运动前时刻,t+dt表示运动后时刻。

本发明采用imu(惯性测量单元)正好弥补了vslam的缺点,在短时间内,其效果很好且不受环境特征点的影响;在时间长时,可利用vslam与imu对齐,防止偏移;结合vslam与imu的vio系统(visual-inertialodometry),可保证算法在移动端实时运行,且效果很稳定。

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