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

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

3天内不再提示

关于视觉SLAM直接法的介绍

3D视觉工坊 来源:深蓝AI 作者:专注于人工智能的 2022-11-30 09:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本次内容包括三个部分,分别是三维几何学的基础和特征点法和直接法的对比,直接法的代表工作以及对于未来发展的展望。

三维几何学基础知识

关于基础知识,首先要了解的是刚体运动的基本属性。三维空间的刚体运动通常包括六个自由度,对应的转换矩阵的表达方式在不同的文献中有不同的方式,而在学术写作的时候,不管用哪一种,重要的是一定要保持格式的统一和连贯。此外,转换矩阵所描述的不是某种运动,而是点在不同坐标系的转换。第二个比较重要的基础知识是本质矩阵和对极几何。

考虑下列场景:我们用两个摄像头可以同时观测到一个特征点,利用匹配的特征点,我们将可以建立对极约束,当匹配的特征点足够多时,我们将可以求解本质矩阵,比如使用常用的八点法,当求解完成后,我们就可以从本质矩阵中分解得到两个相机位置相对的位移和旋转。值得注意的是本质矩阵的自由度是5,因为在位移上,我们丢失了一个自由度的尺度信息。

b70e93ba-703c-11ed-8abf-dac502259ad0.png

图1:多视觉几何基础

而关于SLAM,它是英文“同时定位与建图”的缩写。而有时候,我们还会听到VO,SfM等概念,而因此容易混淆。对于这些概念,我的理解是,sfm用于基于图像的三维重建,过程可以是在线或者离线,图像的顺序可以是连续的,也可以是乱序的;视觉slam一般处理的图像是连续的,并且过程也是在线的;视觉里程计中有局部地图生成的模式其实就是slam,而没有地图的模式就是单独的里程计。虽然我们接触到的大部分视觉里程计都是有对应的地图,但是,也有些情况,比如现在的一些深度网络可以通过两张图片直接训练输出相对位姿,这就是单独的里程计信息。

b731305a-703c-11ed-8abf-dac502259ad0.png

图2:SLAM相关概念的关系图

接下来我们来看看特征点法和直接法直接的对比。关于特征点法,通常我们在两张图片上找到特征点以及对应的匹配特征点,从而求两帧图像之间的相对位姿以及特征点的三维位置。当有一个初始的相对位姿估计时,我们可以计算特征投影到另一帧图像的位置,从而可以建立重投影误差。

相比于使用两张图片,当使用多张图片时,重投影误差则包括所有特征点在所有可被观测到的帧上的误差。而针对直接法,我们所关注的误差称为光度误差。如果说特征点法关注的是像素的位置差,那么,直接法关注的则是像素的颜色差。

总结一下,特征点法通常会把图像抽象成特征点的集合,然后去缩小特征点之间的重投影误差;而直接法则通过warp function直接计算像素点在另一张图像上的颜色差,这样就省去了特征提取的步骤。

b775bee6-703c-11ed-8abf-dac502259ad0.png

图3:直接法和特征点法流程对比

直接法的应用

关于直接法的应用,主要介绍的是DSO和大范围DSO。首先关于直接图像对齐(direct image alignment),针对每一个图像的每一个点,我们需要计算像素点颜色的变化,对应点的寻找需要利用warp function,就是将一个点通过相机的内外参数转换到另一个相机的坐标系中,更周全的考虑还需要将两张图的亮度进行一致化处理。然而单目相机还是需要面对一个很棘手的问题,那就是无法恢复尺度信息,并且往往会出现尺度漂移的现象。

为了解决这个问题,一种方式是采用双目摄像头,对此我们需要使用新的能量函数,添加的优化量就是双目相机另一个摄像头投影到它上面的误差,值得注意的是,双目摄像头的相对位置需要已知,并且,通过双目项的添加,会自然的得到尺度的约束。

而实际上,随着双目相机和对尺度约束的引入,相比于ORB-SLAM2和深度LSD,大范围DSO在KITTI等室外场景具备了更好的里程计效果,而经过反思,我们认为通过将双目相机用“聪明”的方式加以利用,我们确实可以得到正确的尺度信息。除了支持里程计信息的获取,双目DSO还能很好的支持三维重建。

b7a33024-703c-11ed-8abf-dac502259ad0.png

图4:双目DSO三维重建效果

在实现了比较好的三维重建后,接下来值得继续研究的方向之一就是语义重建。基于视觉SLAM的语义重建的流程包括实现定位和地图后,通过点云信息来进行语义分割,基于分割好的点云,我们将进一步参数化,抽象化。

总之,我们希望实现对于点云比较简洁的参数化描述。

我们接下来的一个工作是试图从输入的图像直接得到想要的语义信息。对应的输入包括双目相机获取的左右图像,初始的位姿和形状估计,以及物体的语义分割结果。而误差的计算则包括两张图片光度投影的误差,和将物体估计的形状投影到图像上的误差,以及关于车的形状和位置的先验知识。利用构建的误差,我们可以通过高斯牛顿法进行优化。

而这里,涉及到的问题包括构建车辆的模型来进行参数化表达,一种方式是利用有效距离场对于形状以高维度向量的形式进行描述,然后采用PCA模型进行降维压缩。而在利用能量函数建立优化问题后,我们需要计算雅可比进行二阶优化,由于待优化的变量较多,所以雅可比推导很复杂,不过在我们的论文 DirectShape: Direct Photometric Alignment of Shape Priors for Visual Vehicle Pose and Shape Estimation中,对于所有优化变量的雅可比的求解都进行了推导,从而提供了优化问题的闭环解,感兴趣的同学可以自行阅读。而实验效果也实现了很好的场景描述效果,包括在物体被部分遮挡的情况下。

b7c3f318-703c-11ed-8abf-dac502259ad0.png

图5:语义重建的输入信息

接下来一个主题是关于特征点法和直接法的结合,第一个工作是结合特征点实现的相机的在线光度标定。要理解光度标定,就要理解数码摄像机的成像过程,首先光源发射到物体上的光会反射到镜片上,经过镜头后,光亮会发生变化,然后打到传感器上,一定时间内形成能量积累,经过响应函数的处理从而得到对应的光照强度。

从物体表面反射的光通常称为辐射亮度(radiance),而发射到传感器上的光通常称为辐射照度(irradiance)。这一过程涉及到三个参数,包括是镜头的暗角V,曝光时间E,镜头的响应函数f。

b7f42db2-703c-11ed-8abf-dac502259ad0.png

图6:数码相机的成像过程

而相机的光度标定的目标就是求得相机的三个参数,并利用这三个参数对于图像进行矫正,从而确保输出图像的光度一致性。

为什么我们要进行光度标定呢?因为直接法SLAM的假设就是光度的一致性,即对应的点在不同的图像中颜色要一致。已有的方法在进行光度标定时,我们需要至少10分钟的时间完成全部的复杂操作。而当相机安装在无人机上,或者曝光时间无法控制时,操作将更加复杂。我们所提出的在线光度标定的方法是基于特征点在不同图片中对应的观察,能量函数是所有的点在所有图像中的实际颜色与模型估计出的颜色的误差和。在定义了能量函数后,我们需要怎样进行建模呢?

首先对于响应函数的建模还是利用主成分分析,我们收集一百个相机的响应函数进行PCA,任意一个相机的响应函数都可以用四个主成分的线性组合来进行描述。对于暗角的建模是基于暗角是完全对称的假设,并用四阶多项式来描述。在对能量函数进行参数化后,我们就可以进行优化求解。而实际的效果也证明优化参数可以很快收敛成真值。在进行光度标定后,DSO在Euroc等数据集上也实现了更好的定位和建图效果。

b817f8b4-703c-11ed-8abf-dac502259ad0.png

图7:光度标定后的成像效果

最后一个分享的课题是:如何在采用直接法的同时进行回环检测?直接法中因为没有描述子,所以很难利用进行数据关联和回环检测,一种思路就是对部分采样的点添加描述子,在高翔博士的工作LDSO:Direct sparse odmetry with loop closure中,我们把采样的点一部分换成角点,对于角点我们会建立描述子,从而得到整个图像的描述子,然后就可以检测回环,进行全局的位姿图优化。

而实际效果说明,特征的替换并不会影响DSO的效果,并且还增加了新的回环检测的功能。此外,还有一种思路是通过直接法得到的点云进行三维特征点的检测,并且抽取局部特征点的描述子,从而合并成全局特征点的描述子。

未来的工作方向

而关于直接法的局限性,我认为直接法做全局的优化是很有挑战性的,因为没有描述子,做回环检测和地图的重定位不是很直观。而且在极端的光照条件下,它的鲁棒性没有保证,还有一点就是目前的直接法采样点都是随机采样,这就意味着采样没有决定性,这就会为之后的重定位引入误差。

此外,直接法得到的点云如何得到更具备实际意义的表述形式?因为目前得到的点云还是无法直接使用的。直接法需不需要存储历史图像?特征点法只需要保留特征点和描述子,而直接法如果需要全局优化,那么就需要存储图像与历史信息进行对照,而一旦存储图像,就会导致存储数据的增加,那么这个问题该如何解决?

关于直接法未来的研究方向,一个可行的工作是增加点的描述性,如果能将之前不具备描述性的图像的颜色信息,换成具备描述性的描述子信息,那么将可以开展很多新工作。有了这些东西,我们就可以进行跨季节,跨时间,跨天气的回环检测。

此外,直接法获取的点云质量通常较高,但现在依旧没有充分挖掘这些点云信息的潜力,所以未来如果能够提取这些点云的描述子,并且和图像的描述子结合,那么就可以对场景实现更好的描述性,点云还有可能的潜在用途就是提供简洁的场景描述。此外,目前点的采样具有随机性,而未来,是否可以实现具有确定性的点的采样?从而实现更准确的重定位?还有就是直接法的全局地图该如何更新和维护,现在还没有解决。





审核编辑:刘清

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

    关注

    0

    文章

    30

    浏览量

    23777
  • SLAM
    +关注

    关注

    24

    文章

    455

    浏览量

    33184
  • orb
    orb
    +关注

    关注

    0

    文章

    21

    浏览量

    10147

原文标题:视觉SLAM直接法及未来发展

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    关于NFC镍锌铁氧体片的介绍

    关于NFC镍锌铁氧体片的介绍
    的头像 发表于 12-04 10:52 29次阅读
    <b class='flag-5'>关于</b>NFC镍锌铁氧体片的<b class='flag-5'>介绍</b>

    FPGA和GPU加速的视觉SLAM系统中特征检测器研究

    特征检测是SLAM系统中常见但耗时的模块,随着SLAM技术日益广泛应用于无人机等功耗受限平台,其效率优化尤为重要。本文首次针对视觉SLAM流程开展硬件加速特征检测器的对比研究,通过对比
    的头像 发表于 10-31 09:30 293次阅读
    FPGA和GPU加速的<b class='flag-5'>视觉</b><b class='flag-5'>SLAM</b>系统中特征检测器研究

    关于系统链接脚本的介绍

    一、队伍介绍 本篇为蜂鸟E203系列分享第四篇,本篇介绍的内容是系统链接脚本。 二、如何实现不同的下载模式? 实现三种不同的程序运行方式,可通过makefile的命令行指定不同的链接脚本,从而实现
    发表于 10-30 08:26

    自动驾驶中如何将稀疏地图与视觉SLAM相结合?

    [首发于智驾最前沿微信公众号]在自动驾驶场景中,稀疏地图通常是由一系列关键帧和若干三维稀疏特征点构成的地图,每个特征点包含三维坐标和描述外观的描述子;而视觉SLAM是运行在车辆上的实时算法,它一边
    的头像 发表于 10-28 09:07 454次阅读
    自动驾驶中如何将稀疏地图与<b class='flag-5'>视觉</b><b class='flag-5'>SLAM</b>相结合?

    全新轻量级ViSTA-SLAM系统介绍

    无需相机内参、极致轻量的前端(前端模型大小仅为同类35%),实时单目视觉SLAM,ViSTA-SLAM。与现有方法相比,ViSTA-SLAM不仅更轻、更快,在相机跟踪和密集3D重建质量
    的头像 发表于 09-22 15:53 624次阅读
    全新轻量级ViSTA-<b class='flag-5'>SLAM</b>系统<b class='flag-5'>介绍</b>

    一种适用于动态环境的自适应先验场景-对象SLAM框架

    由于传统视觉SLAM在动态场景中容易会出现严重的定位漂移,本文提出了一种新颖的基于场景-对象的可靠性评估框架,该框架通过当前帧质量指标以及相对于可靠参考帧的场景变化,全面评估SLAM的稳定性。
    的头像 发表于 08-19 14:17 636次阅读
    一种适用于动态环境的自适应先验场景-对象<b class='flag-5'>SLAM</b>框架

    基于深度学习的增强版ORB-SLAM3详解

    ORB-SLAM3虽是当前最先进的SLAM之一,但由于使用传统的ORB(定向FAST和旋转BRIEF)特征,在尺度、旋转和光照发生显著变化时可能会表现出局限性。
    的头像 发表于 07-14 17:21 1259次阅读
    基于深度学习的增强版ORB-<b class='flag-5'>SLAM</b>3详解

    一种适用于动态环境的实时RGB-D SLAM系统

    近期用于视觉SLAM的3D高斯泼溅(3DGS)技术在跟踪和高保真建图方面取得了显著进展。然而,其顺序优化框架以及对动态物体的敏感性限制了其在现实场景中的实时性能和鲁棒性。为此,我们提出
    的头像 发表于 07-04 15:14 957次阅读
    一种适用于动态环境的实时RGB-D <b class='flag-5'>SLAM</b>系统

    三维高斯泼溅大规模视觉SLAM系统解析

    近期兴起的神经辐射场(NeRF)与三维高斯泼溅(3DGS)技术在视觉SLAM中展现出令人鼓舞的突破性成果。然而,当前主流方法多依赖RGBD传感器,并且仅适用于室内环境。在大规模室外场景中的重建鲁棒性
    的头像 发表于 05-27 14:13 1128次阅读
    三维高斯泼溅大规模<b class='flag-5'>视觉</b><b class='flag-5'>SLAM</b>系统解析

    【「# ROS 2智能机器人开发实践」阅读体验】视觉实现的基础算法的应用

    相机标定是视觉系统的基石,直接影响后续图像处理的精度。书中详细介绍了单目和双目相机的标定流程,包括标定板的使用、参数优化以及标定文件的应用。 实际应用中,标定误差可能导致机器人定位偏差,因此标定过程
    发表于 05-03 19:41

    【「# ROS 2智能机器人开发实践」阅读体验】+ROS2应用案例

    地图构建,包括算法原理介绍、安装与配置方法、仿真环境中的SLAM以及真实机器人上的SLAM。 这一过程不仅涉及到计算机视觉和机器人学的知识,还需要对ROS 2的节点管理和数据处理有一定
    发表于 04-27 11:42

    一种基于点、线和消失点特征的单目SLAM系统设计

    本文提出了一种稳健的单目视觉SLAM系统,该系统同时利用点、线和消失点特征来进行精确的相机位姿估计和地图构建,有效解决了传统基于点特征的SLAM的局限性。
    的头像 发表于 03-21 17:07 829次阅读
    一种基于点、线和消失点特征的单目<b class='flag-5'>SLAM</b>系统设计

    一种基于MASt3R的实时稠密SLAM系统

    本文提出了一种即插即用的单目SLAM系统,能够在15FPS的帧率下生成全局一致的位姿和稠密几何图形。 01   本文核心内容 视觉SLAM乃是当今机器人技术与增强现实产品的基础性构建模块。通过
    的头像 发表于 12-27 15:25 2275次阅读

    用于任意排列多相机的通用视觉里程计系统

    如何让多相机视觉SLAM系统更易于部署且对环境更具鲁棒性?本文提出了一种适用于任意排列多相机的通用视觉里程计系统。在KITTI-360和MultiCamData数据集上验证了该方法对于任意放置相机的鲁棒性。与其他立体和多相机
    的头像 发表于 12-13 11:22 1144次阅读
    用于任意排列多相机的通用<b class='flag-5'>视觉</b>里程计系统

    利用VLM和MLLMs实现SLAM语义增强

    语义同步定位与建图(SLAM)系统在对邻近的语义相似物体进行建图时面临困境,特别是在复杂的室内环境中。本文提出了一种面向对象SLAM的语义增强(SEO-SLAM)的新型SLAM系统,借
    的头像 发表于 12-05 10:00 2168次阅读
    利用VLM和MLLMs实现<b class='flag-5'>SLAM</b>语义增强