0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

计算机视觉方向简介

机器视觉自动化 来源:计算机视觉life 作者:计算机视觉life 2021-04-15 15:14 次阅读

VIO-SLAM

Visual-Inertial Odometry(VIO)即视觉惯性里程计,有时也叫视觉惯性系统(VINS,visual-inertial system),是融合相机和IMU数据实现SLAM的算法,根据融合框架的不同又分为松耦合和紧耦合。

9accbf00-9ce0-11eb-8b86-12bb97331649.jpg

其中VO(visual odometry)指仅视觉的里程计,T表示位置和姿态。松耦合中视觉运动估计和惯导运动估计系统是两个独立的模块,将每个模块的输出结果进行融合。

9afc8f46-9ce0-11eb-8b86-12bb97331649.jpg

紧耦合则是使用两个传感器的原始数据共同估计一组变量,传感器噪声也是相互影响的。紧耦合算法比较复杂,但充分利用了传感器数据,可以实现更好的效果,是目前研究的重点。

相机和IMU的缺点及互补性

9b237160-9ce0-11eb-8b86-12bb97331649.jpg

相机和IMU融合有很好的互补性。首先通过将IMU 估计的位姿序列和相机估计的位姿序列对齐可以估计出相机轨迹的真实尺度,而且IMU 可以很好地预测出图像帧的位姿以及上一时刻特征点在下帧图像的位置,提高特征跟踪算法匹配速度和应对快速旋转的算法鲁棒性,最后IMU 中加速度计提供的重力向量可以将估计的位置转为实际导航需要的世界坐标系中。

随着MEMS器件的快速发展,智能手机等移动终端可以便捷地获取IMU数据和摄像头拍摄数据,融合IMU 和视觉信息的VINS 算法可以很大程度地提高单目SLAM 算法性能,是一种低成本高性能的导航方案,在机器人、AR/VR 领域得到了很大的关注。

算法流程

9b501ac6-9ce0-11eb-8b86-12bb97331649.jpg

整个流程图可以分解为五部分:数据预处理、初始化、局部非线性优化、回环检测和全局优化。

各个模块的主要作用是:

图像和IMU数据预处理:对于图像,提取特征点,利用KLT金字塔进行光流跟踪,为后面仅视觉初始化求解相机位姿做准备。对于IMU,将IMU数据进行预积分,得到当前时刻的位姿、速度、旋转角,同时计算在后端优化中将要用到的相邻帧间的预积分增量,及预积分的协方差矩阵和雅可比矩阵。

初始化:初始化中,首先进行仅视觉的初始化,解算出相机的相对位姿;然后再与IMU预积分进行对齐求解初始化参数

局部非线性优化:对应流程图中滑动窗口的视觉惯导非线性优化,即将视觉约束、IMU约束放在一个大目标函数中进行优化,这里的局部优化也就是只优化当前帧及之前的n帧的窗口中的变量,局部非线性优化输出较为精确的位姿。

回环检测:回环检测是将前面检测的图像关键帧保存起来,当再回到原来经过的同一个地方,通过特征点的匹配关系,判断是否已经来过这里。前面提到的关键帧就是筛选出来的能够记下但又避免冗余的相机帧(关键帧的选择标准是当前帧和上一帧之间的位移超过一定阈值或匹配的特征点数小于一定阈值)。

全局优化:全局优化是在发生回环检测时,利用相机约束和IMU约束,再加上回环检测的约束,进行非线性优化。全局优化在局部优化的基础上进行,输出更为精确的位姿。

算法核心

局部优化会用到边缘化,仅用局部优化精度低,全局一致性差,但是速度快,IMU利用率高;仅用全局优化精度高,全局一致性好,但是速度慢,IMU利用率低;两者侧重点不同,所以将两者结合,可以优势互补。

因此小编设计实验采用局部优化和全局优化融合的方法。

9b869d4e-9ce0-11eb-8b86-12bb97331649.jpg

局部优化是滑动窗口内相机帧的优化,全局优化是所有关键帧的优化,两者结合会产生边缘帧冲突的问题,因为局部优化会固定滑动窗口边缘帧,而全局优化发生回环检测的时候则会固定回环起点的帧。这里的改进就是采用相对的位姿边缘化,即边缘化以后的点是相对于它上一时刻关键帧的位姿而不是全局的位姿,这样局部优化边缘化相对位姿(关键帧),扔给全局优化整体优化。局部边缘化和全局边缘化的结合部分是关键帧。

相对边缘化可以具体解释为,相对边缘化的参考坐标系不再是世界坐标系,而是与当前帧共视且距离最近的一个关键帧的相机系(设为第k0帧)。视觉约束可以表示为:

9c064bca-9ce0-11eb-8b86-12bb97331649.png

区别于绝对边缘化的视觉约束

9c22c6ce-9ce0-11eb-8b86-12bb97331649.png

实验结果与总结

实验一:无人机数据集上的实验

数据集采用了欧盟机器人挑战数据集(EuRoC)。EuRoC 数据集使用 Asctec Firefly 六旋翼飞行器在仓库和房间采集数据,数据集中包括以20Hz采集的相机图像和200Hz的IMU数据,以及运动真值。

实验结果如下:

9c33366c-9ce0-11eb-8b86-12bb97331649.jpg

实验结果可见,融合优化的轨迹和真实轨迹很接近,而仅使用局部优化的定位结果误差不断累积。

实验二:车载数据上的实验

该车载数据是在北京市朝阳区某小区采集的,在数据采集阶段,车辆以5km/h 到 30km/h 的速度行驶,一共行驶2271m。

实验结果如下:

9ca8ddcc-9ce0-11eb-8b86-12bb97331649.jpg

实验结果可见,融合优化后的定位结果明显优于仅使用局部优化的定位结果,融合优化中误差得到及时修正。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2662

    浏览量

    47317
  • 算法
    +关注

    关注

    23

    文章

    4595

    浏览量

    92580
  • 计算机视觉
    +关注

    关注

    8

    文章

    1696

    浏览量

    45918

原文标题:计算机视觉方向简介 | 视觉惯性里程计(VIO)

文章出处:【微信号:jiqishijue2020,微信公众号:机器视觉自动化】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    计算机视觉有哪些优缺点

    计算机视觉作为人工智能领域的一个重要分支,旨在使计算机能够像人类一样理解和解释图像和视频中的信息。这一技术的发展不仅推动了多个行业的变革,也带来了诸多优势,但同时也伴随着一些挑战和局限性。以下是对
    的头像 发表于 08-14 09:49 690次阅读

    机器视觉计算机视觉有什么区别

    机器视觉计算机视觉是两个密切相关但又有所区别的概念。 一、定义 机器视觉 机器视觉,又称为计算机
    的头像 发表于 07-16 10:23 456次阅读

    计算机视觉的五大技术

    计算机视觉作为深度学习领域最热门的研究方向之一,其技术涵盖了多个方面,为人工智能的发展开拓了广阔的道路。以下是对计算机视觉五大技术的详细解析
    的头像 发表于 07-10 18:26 1164次阅读

    计算机视觉的工作原理和应用

    计算机视觉(Computer Vision,简称CV)是一门跨学科的研究领域,它利用计算机和数学算法来模拟人类视觉系统对图像和视频进行识别、理解、分析和处理。其核心目标在于使
    的头像 发表于 07-10 18:24 1573次阅读

    计算机视觉与人工智能的关系是什么

    引言 计算机视觉是一门研究如何使计算机能够理解和解释视觉信息的学科。它涉及到图像处理、模式识别、机器学习等多个领域的知识。人工智能则是研究如何使计算
    的头像 发表于 07-09 09:25 498次阅读

    计算机视觉与智能感知是干嘛的

    引言 计算机视觉(Computer Vision)是一门研究如何使计算机能够理解和解释视觉信息的学科。它涉及到图像处理、模式识别、机器学习等多个领域,是人工智能的重要组成部分。智能
    的头像 发表于 07-09 09:23 736次阅读

    计算机视觉和机器视觉区别在哪

    计算机视觉和机器视觉是两个密切相关但又有明显区别的领域。 一、定义 计算机视觉 计算机
    的头像 发表于 07-09 09:22 397次阅读

    计算机视觉和图像处理的区别和联系

    计算机视觉和图像处理是两个密切相关但又有明显区别的领域。 1. 基本概念 1.1 计算机视觉 计算机视觉
    的头像 发表于 07-09 09:16 1115次阅读

    计算机视觉属于人工智能吗

    属于,计算机视觉是人工智能领域的一个重要分支。 引言 计算机视觉是一门研究如何使计算机具有视觉
    的头像 发表于 07-09 09:11 1102次阅读

    深度学习在计算机视觉领域的应用

    随着人工智能技术的飞速发展,深度学习作为其中的核心技术之一,已经在计算机视觉领域取得了显著的成果。计算机视觉,作为计算机科学的一个重要分支,
    的头像 发表于 07-01 11:38 656次阅读

    机器视觉计算机视觉的区别

    在人工智能和自动化技术的快速发展中,机器视觉(Machine Vision, MV)和计算机视觉(Computer Vision, CV)作为两个重要的分支领域,都扮演着至关重要的角色。尽管它们在
    的头像 发表于 06-06 17:24 1196次阅读

    计算机视觉的主要研究方向

    计算机视觉(Computer Vision, CV)作为人工智能领域的一个重要分支,致力于使计算机能够像人眼一样理解和解释图像和视频中的信息。随着深度学习、大数据等技术的快速发展,计算机
    的头像 发表于 06-06 17:17 828次阅读

    计算机视觉的十大算法

    随着科技的不断发展,计算机视觉领域也取得了长足的进步。本文将介绍计算机视觉领域的十大算法,包括它们的基本原理、应用场景和优缺点。这些算法在图像处理、目标检测、人脸识别等领域有着广泛的应
    的头像 发表于 02-19 13:26 1193次阅读
    <b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>的十大算法

    机器视觉、工业视觉计算机视觉这三者的关系

    机器视觉、工业视觉计算机视觉这三者的关系
    的头像 发表于 01-24 10:51 1163次阅读
    机器<b class='flag-5'>视觉</b>、工业<b class='flag-5'>视觉</b>和<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>这三者的关系

    工业视觉计算机视觉的区别

    工业视觉主要解决以往需要人眼进行的工件的定位、测量、检测等重复性劳动;计算机视觉的主要任务是赋予智能机器人视觉,利用测距、物体标定与识别等功能实现对于外界位置信息、图像信息等的识别与判
    发表于 01-16 10:06 527次阅读
    工业<b class='flag-5'>视觉</b>与<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>的区别