【论文阅读】CubeSLAM: Monocular 3D Object SLAM

这篇具有很好参考价值的文章主要介绍了【论文阅读】CubeSLAM: Monocular 3D Object SLAM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基于单目图像的3d目标检测

这一部分是论文中最难理解的一章,作者的主要想法,是利用2d图像来生成3d的目标包围框(bounding box),一方面这个思路本身就不是很好懂,另一方面,作者写这一章还是用的倒叙,显得更难理解了。

3d包围框的定义

对于本文的3d包围框,需要使用九个量来定义,可以分为三组:位置(三维场景下的xyz坐标),旋转矩阵R(rpy一共三自由度)以及三个方向上的尺度。简单来说,3d包围框本身是一个立方体,立方体的朝向就对应旋转矩阵R,立方体中心的坐标就是位置,立方体的长宽高对应的就是三个方向上的尺度,所以一共是九个自由度来描述一个空间物体的包围框。

对于这篇论文,我们使用的是图像,所以最基础的包围框应该是2d包围框,文章的3d包围框生成都是基于假设:2d包围框同时也是3d包围框在2d平面上的投影,或者说,3d包围框的投影刚好是2d物体的最小外接矩形。在这个假设的基础上,我们需要使用消失点VP来进行物体的计算。消失点在前面MSC-VO里面也出现过,本身描述的是现实中平行的两条线,由于成像过程的畸变,导致在图像中不再是平行,而在图像中的角点,就被叫做消失点VP。

我们使用的3d包围框,本身是一个规则的立方体,最多可以同时观测到三个面,也就是做多可以计算出3个消失点,根据论文的内容,消失点的坐标可以用相机内参和物体的旋转矩阵进行计算:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM

3d包围框的计算

定义好2d与3d的包围框,接下来就是如何利用2d的包围框去计算出3d的包围框,这篇文章使用的方法是采样计算后利用评分机制选择分数最高的3d包围框。根据物体的朝向,2d下的观测情况一共有三种,文章主要是以最规则的第一种进行的介绍:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
想要恢复3d的包围框,首先需要知道三个消失点以及物体投影最上方的点,也就是图a中最上面的点1,利用这四个点就可以循环计算出来剩余的2-7号点,具体来说就是用线的角点,VP1与点1可以确定一条线,这条线与BC的角点就是2号点,VP2和点1确定的线与AD的交点就是4号点,如此重复计算就可以计算出所有的点,这些点被称为2d边缘点。

得到2d边缘点之后,就可以利用这些点,重新恢复出3d包围框的边缘点,这里论文区分了两种情况:任意物体和地面上的物体。对于任意物体,恢复3d包围框主要是使用pnp进行计算,根据空间位置和当前位置的关系,可以列出3d包围框端点与2d成像平面之间的位置关系:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
一个包围框是九个自由度,也就是说用四个点就可以解出除了尺度以外的八个自由度,所以这里使用的是八对点中随机取四个进行计算的方法。论文也没有仔细讲,为什么计算时不去考虑尺度,只说了四个点进行pnp计算,反正都是在计算,取四个点和取五个点的差别也不会太大,为什么不直接把尺度在这里一起计算。

对于在地面上的物体,由于物体一定会与地面产生联系,所以计算过程可以大大简化,也就是说物体的横滚角roll和俯仰角pitc都是0,论文说可以直接利用反投影线与地面的角点来计算与地面接触的点的坐标:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
考虑到实际实现过程的复杂性,文章后续的实验全都是使用的地面物体,对于与地面没有接触的物体,论文并没有进行提取。可以看出,文章使用的2d包围框到3d包围框的计算,本身是一个比较复杂的计算过程,它需要先得到三个消失点以及最上方的2d边缘点,在此基础上才能计算出剩下的所有点,而VP的计算需要依赖于旋转矩阵R,或者说是3d包围框的朝向,朝向依赖于当前帧的位姿和相机的内参矩阵,在只考虑地面物体的情况下,3d包围框的朝向又会被进一步简化为物体的偏航角,所以说我们需要得到物体的yaw才能进行上面的一大堆计算,但是对于一个物体而言,yaw只有一个,这样说只能计算出来一个3d包围框,就不用谈后续的打分筛选机制,yaw的计算和最上方2d边缘点的计算,写在了第六章里面,yaw和最上方2d边缘点的计算都是一个采样的过程,所以会计算出来多个包围框,这才会与后续的打分机制相对应。

3d包围框的筛选

得到的多个3d包围框,我们使用一个评分标准来选择最合适的包围框,打分公式为:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
这个打分公式由三部分组成:距离偏差、角度偏差以及形状偏差。这里简单说一下这三部分偏差,只能大概看懂怎么计算,但是为什么这么计算,并不能搞清楚。距离偏差的计算,首先需要进行边缘检测和距离变换图的计算,距离变换图可以参考链接,之后对于每个可视的包围框的投影边,均匀采样十个点并在距离变换图的对应位置取和,结果除以2d包围框的对角线,以此作为距离偏差。角度偏差则是在计算场景内长线段和消失点之间的角度关系,对于一个消失点,我们可以计算出一定范围内具有最大倾斜程度和最小倾斜程度的两条线,角度偏差的计算就基于消失点和这两条线的端点:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
除此之外形状偏差则是最好理解的,这个误差主要是为了让3d包围框的形状更加均匀:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
简单来说,对于这部分的2d包围框转3d包围框,首先需要得到三个消失点、最顶端的2d边缘点以及2d包围框,在此基础上,首先利用消失点和边缘点,计算出来剩余的2d边缘点,之后恢复出3d包围框的边缘点,由于消失点和边缘点的计算是基于采样的,所以会计算出来好多个3d包围框,对于这些包围框,利用打分机制,将形状、角度以及距离变换图的结果纳入考虑,从中选择最合适的包围框作为最终物体检测的结果。

二、基于物体的SLAM

在CubeSLAM里面,物体主要是用在了后端的BA优化中,也就是说,前端的跟踪还是ORBSLAM基于点的那一套,而在后端的优化中,物体作为第三个元素,与相机位姿和地图点一起进行优化。其中物体进行优化主要是指对物体包围框的位姿进行优化:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM

相机位姿与物体之间的约束

关于相机位姿与物体之间的约束,文章分了两种情况进行讨论,因为物体的包围框虽然是三维的,但可以通过投影转换到二维平面上,在我们比较与真实位置的偏差时,就有二维平面和三维平面两种情况。

当3d物体的检测比较准确的时候,我们使用3d的偏差,也就是将路标物体转换到相机坐标系下,然后比较相机坐标系下物体的位姿和测量值:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
反之,如果要使用2d的偏差,那么就需要将物体投影到成像平面,比较投影位置和检测出的2d包围框之间的偏差,由于是物体向2d平面投影,所以必然会存在重叠,这里我们使用取最大值的方法去得到2d下的投影包围框:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
投影得到的2d包围框会与检测出来的包围框进行比较,从而得到2d的偏差:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
对于这两种方法,2d偏差由于多了一个投影的过程,本身会丢失一定的信息,但反过来看我们利用2d包围框生成3d包围框的过程本身也是一个存在误差的过程,所以这两种方法没有太多纠结误差谁大谁小的意义。

物体与地图点之间的约束

物体与地图点之间的约束,主要是根据特征点相对于物体的范围,如果一个点落在了物体内部,那么这个点对应的地图点也应该在物体对应的3d包围框中:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
所以根据这个理论,物体与地图点之间的约束可以表示为:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM

相机位姿与地图点之间的约束

这部分约束就是ORBSLAM里面的重投影误差,并没有什么改动。
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
需要注意的是,物体同样需要在帧之间建立联系,相当于特征的匹配,这里使用了一个简单一些的方法,并不是对物体进行语义上的描述,而是利用其内部的特征点。具体来说,首先要将2d包围框附近的特征点与包围框建立联系,如果包围框内部的特征点能够在连续两帧内被观测到且空间坐标距离物体中心的距离不超过1m,就认为这个特征点是属于这个物体的,那么在匹配物体时,就可以利用这些特征点,如果特征点匹配数目超过阈值,就认为物体也是匹配的。

三、动态物体SLAM

一般动态特征在SLAM里面都会认为是对系统产生负面影响的特征,在CubeSLAM里面,作者单独对动态物体进行了处理,使用动态物体的运动模型来对物体包围框进行计算上的修正:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
基于这种运动模型,运动物体包围框的偏差公式就变为了:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM
同时动态物体上的特征点也变为:
【论文阅读】CubeSLAM: Monocular 3D Object SLAM文章来源地址https://www.toymoban.com/news/detail-470465.html

到了这里,关于【论文阅读】CubeSLAM: Monocular 3D Object SLAM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • On Moving Object Segmentation from Monocular Video with Transformers 论文阅读

    标题 :On Moving Object Segmentation from Monocular Video with Transformers 作者 : 来源 :ICCV 时间 :2023 代码地址 :暂无 通过单个移动摄像机进行移动对象检测和分割是一项具有挑战性的任务,需要了解识别、运动和 3D 几何。将识别和重建结合起来可以归结为融合问题,其中需要结合外

    2024年02月08日
    浏览(38)
  • Monocular 3D Object Detection with Depth from Motion 论文学习

    论文链接:Monocular 3D Object Detection with Depth from Motion 从单目输入感知 3D 目标对于自动驾驶非常重要,因为单目 3D 的成本要比多传感器的方案低许多。但单目方法很难取得令人满意的效果,因为单张图像并没有提供任何关于深度的信息,该方案实现起来非常困难。 Two view 场景

    2024年02月17日
    浏览(26)
  • 论文笔记 - :DIGGING INTO OUTPUT REPRESENTATION FOR MONOCULAR 3D OBJECT DETECTION

    Title: 深入研究单目 3D 物体检测的 输出表示 单目 3D 对象检测旨在从单个图像中识别和定位 3D 空间中的对象。最近的研究取得了显着的进展,而所有这些研究都遵循基于 LiDAR 的 3D 检测中的典型输出表示。 然而,在本文中,我们认为现有的离散输出表示不适合单目 3D 检测。具

    2024年04月09日
    浏览(33)
  • MonoDTR Monocular 3D Object Detection with Depth-Aware Transformer 论文学习

    论文链接:MonoDTR: Monocular 3D Object Detection with Depth-Aware Transformer 单目 3D 目标检测对于自动驾驶很重要,也很有挑战性。 现有的一些方法通过深度预测网络得到深度信息,然后辅助 3D 检测,这造成计算量激增,不适合实际部署。此外,如果深度先验不准确的话,也会影响算法

    2024年02月17日
    浏览(29)
  • MonoDETR: Depth-guided Transformer for Monocular 3D Object Detection 论文解读

    单目目标检测在自动驾驶领域,一直是一个具有挑战的任务。现在大部分的方式都是沿用基于卷积的2D 检测器,首先检测物体中心,后通过中心附近的特征去预测3D属性。 但是仅仅通过局部的特征去预测3D特征是不高效的,且并没有考虑一些长距离的物体之间的深度关系,丢

    2024年02月09日
    浏览(28)
  • 论文精读 《CaDNN: Categorical Depth Distribution Network for Monocular 3D Object Detection》

    研究动机:单目3D目标检测难以预测物体的深度 单目 3D 目标检测是自动驾驶领域的一个关键问题,因为它与典型的多传感器系统相比配置比较简单。 单目 3D 检测的主要挑战在于准确预测物体深度 ,由于缺乏直接的距离测量,因此必须从物体和场景线索推断出物体深度。许多

    2023年04月22日
    浏览(67)
  • 论文精读:《FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection》

    单目三维目标检测具有成本低的优点,是自动驾驶的一项重要任务。 由于其固有的不适定特性,其主要表现为缺乏深度信息,因而比传统的二维情形更具挑 战性。 二维检测的最新进展为更好地解决这一问题提供了机会。 然而,使一个通用的自适应二维探测器在这种三维任务

    2024年02月06日
    浏览(39)
  • 凩读论文第3篇《M3DSSD: Monocular 3D Single Stage Object Detector》

    论文地址(CVPR2021) 代码实现(PyTorch版) 本文提出一种带有特征对齐及非对称非局部注意力机制的单目三维单阶段目标检测器(Monocular 3D Single Stage object Detector, M3DSSD)。现有的anchor-based单目三维目标检测方法存在特征不匹配的问题。为了解决这种问题,作者提出了一种两步特征对齐

    2024年02月04日
    浏览(29)
  • 论文阅读:Offboard 3D Object Detection from Point Cloud Sequences

    目录 概要 Motivation 整体架构流程 技术细节 3D Auto Labeling Pipeline The static object auto labeling model The dynamic object auto labeling model 小结 论文地址: [2103.05073] Offboard 3D Object Detection from Point Cloud Sequences (arxiv.org)     该论文提出了一种利用点云序列数据进行离线三维物体检测的方法,称

    2024年02月06日
    浏览(35)
  • 【论文阅读】【3d目标检测】Embracing Single Stride 3D Object Detector with Sparse Transformer

    论文标题:Embracing Single Stride 3D Object Detector with Sparse Transformer 源码地址:https://github.com/TuSimple/SST CVPR2022 文章写得很好! 文章从2d 3d目标检测目标的尺寸的不同入手,在2d目标检测中确实由于图像近大远小的尺寸关系 存在着图像中物体尺寸长尾的问题: 如coco数据集中,大小

    2023年04月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包