基于多平面先验的高效VIO工作开源

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

基于多平面先验的高效VIO工作开源

简介

SLAM是增强现实(AR)的关键基础技术。要保证在移动设备上长时间的良好AR体验,SLAM的功耗需要尽可能低。特别是对于某些AR应用来说,并不需要一个完整的SLAM系统,即往往不需要回路闭合和重定位功能,而只需要一个轻量级的视觉惯性里程计(VIO)即可。然而要保证VIO在实际场景中能鲁棒运行是一个很有挑战性的问题。在人造环境中,通常都会有平面结构,如果这些平面信息能够被有效地利用起来,将有助于提升VIO的鲁棒性。为此,我们提出了一个基于多平面先验信息的高效鲁棒的轻量级VIO系统PVIO。在这个工作中,我们提出了一个新颖的视觉-惯性-平面PnP算法来实现快速的定位,同时基于重投影一致性来可靠地扩展平面,从而增强在深度高度不确定情况下的跟踪鲁棒性。此外,在滑动窗口优化模块中提出了一个无结构的平面距离约束项,以及相应的边缘化和滑窗策略,可以有效降低计算复杂度,同时保证良好的精度。EuRoC和TUM-VI两个数据集上的实验结果表明,PVIO在跟踪精度上跟现在的前沿VI-SLAM系统VINS-Mono相当,但只需要单线程运行,效率上具有明显的优势。

基于多平面先验的高效VIO工作开源

PVIO运行效果

系统框架

基于多平面先验的高效VIO工作开源

PVIO系统框架

PVIO系统框架如上图所示。根据输入的在线图像帧和对应的IMU测量数据,系统进行特征跟踪和IMU的预积分,并使用视觉-惯性-平面PnP算法来实时输出当前帧的位姿。在这之后,当前帧将被送入到滑动窗口。如果滑动窗口的最后一帧被判定为关键帧,系统就会使用重投影一致性来扩展平面,并且在执行滑窗优化时,使用无结构的平面距离约束项来约束平面上的三维点。在完成优化后,系统将会进行平面检测,扩充已有的平面地图。

平面检测与扩展

在平面检测步骤,我们使用3点的RANSAC法,并且在内点个数超过一定阈值时添加平面。在平面扩展步骤,由于单目VIO在视差不足时,三角化的深度误差仍然比较大,因此我们使用了重投影一致性检查来作为扩展条件。如果一个三维点投射到平面之后的重投影误差仍然小于给定的阈值或者相比原先的重投影误差没有明显的增大,那么就认为这个点归属于这个平面,这不会影响优化的稳定性。

基于多平面先验的高效VIO工作开源

平面约束

平面约束主要分为两个部分:视觉-惯性-平面PnP和无结构的平面距离约束项。

VIP-PnP(视觉-惯性-平面PnP)

基于多平面先验的高效VIO工作开源

在每帧PnP求解中,我们使用了视觉、惯性和平面的三重约束。对于隶属于平面的三维点,我们直接将其投影到使得重投影误差最小的一个平面上;在解算BA时,我们假设这个点是完美地位于平面上,以此来提升PnP解算的稳定性。

Structureless Plane-Distance Error(无结构的平面距离约束项)

在VIO的滑动窗口优化部分,我们利用了无结构的平面距离约束项。在对极几何里面,我们已知了一个点在多个位置的观测,可以使用三角化的方法求解出其三维点坐标。但是当观测或视差不足时,这个方程的约束会变得不够充分。我们对其增广,把平面的约束也加入到这个Ax=b的结构中,最后再用正规方程得到三维点,并构建点到平面的距离的误差项。

基于多平面先验的高效VIO工作开源

常规的平面约束项,都是在原有的重投影误差项之外,额外再添加一个点到平面的距离误差项,而我们的方法可以把两者合二为一,替代原来的重投影误差项。对于每个在平面上的三维点(Planar landmark)而言,它的m个重投影误差项可以合并为1个无结构的误差项。由于这些平面三维点的状态不再参与到这一误差项中,我们在边缘化时也可以直接跳过这部分点。经实测,该方法对计算效率也有一定的提升。

实验结果

下图展现了PVIO、VINS-Mono和DSO在TUM-VI数据集Outdoors1序列(有2.7公里长)的轨迹恢复结果。从结果上看,PVIO的累积误差比VINS-Mono更小,而DSO则无法正常恢复轨迹。

基于多平面先验的高效VIO工作开源

TUM-VI数据集Outdoors1序列的轨迹恢复结果对比

在整体精度上面,PVIO也优于一些先进的开源算法,定位的均方根误差RMSE(m)如下表所示,其中,“+/-Loop”表示打开或者关闭回路闭合;对于SVO2,“E+P”和“BA”表示使用Edgelet+Prior和集束调整;对于PVIO,“+/- Plane”表示打开或者关闭平面约束;数值放置在括号中,表示轨迹完整性在80%以下;数值为×,表示轨迹完整性在50%以下(跟踪丢失)。

EuRoC和TUM-VI数据集上的精度测试

基于多平面先验的高效VIO工作开源

下面的视频展示了PVIO在EuRoC和TUM-VI数据集上实时恢复的相机运动轨迹。

PVIO的运行速度很快,可以在iPhone7上单线程实时运行。下图展现了基于PVIO的AR效果,其中,一个虚拟的笔记本电脑放置在真实的笔记本电脑旁边。

基于多平面先验的高效VIO工作开源

在智能手机上的AR效果

论文:

Jinyu Li, Bangbang Yang, Kai Huang, Guofeng Zhang, and Hujun Bao*. Robust and Efficient Visual-Inertial Odometry with Multi-plane Priors. PRCV 2019, LNCS 11859, pp. 283–295, 2019.

下载链接:

http://www.cad.zju.edu.cn/home/gfzhang/projects/prcv2019-planeVIO.pdf

代码仓库:

https://www.github.com/zju3dv/PVIO

点击原文打开代码仓库

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

基于多平面先验的高效VIO工作开源

▲长按加微信群或投稿

基于多平面先验的高效VIO工作开源

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

基于多平面先验的高效VIO工作开源

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  基于多平面先验的高效VIO工作开源