| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> [LiteratureReview]CubeSLAM Monocular 3-D Object SLAM -> 正文阅读 |
|
[人工智能][LiteratureReview]CubeSLAM Monocular 3-D Object SLAM |
[LiteratureReview]CubeSLAM: Monocular 3-D Object SLAM出处:2019 IEEE Transactions on Robotics,(截止到2022-3-30)Google论文被引162次; P.S:相比RAL这种接收短文的期刊,IEEE Transactions on Robotics现在只接收长文,Cube-SLAM这篇论文正文13页; 作者主页:https://shichaoy.github.io/ Code:https://github.com/shichaoy/cube_slam Cube-SLAM作者相关的其他论文(下列所有论文都可以在作者主页上找到):
Introduction方法概述:CubeSLAM利用目标检测算法生 成 2D boundingbox ,通过消失点法 ( Vanishing points,VP)生成物体3D Boundingbox,根据与图像边缘的对齐情况对提案进行进一步评分和选择,并将objects作为landmarks,结合物体约束信息与几何信息,融合到一个 最小二乘公式中 ,改善相机位姿估计 ,提高 了 SLAM 的定位精度,该方法在静态和动态环境下都可以工作;与基于特征点的 SLAM 系统相比,物体级 SLAM 系统可以提供更多的几何约束和尺度一致性,所提算法在公开数据集上得到了较好的位姿估计精度,同时还提高了 3D 物体的检测精度; Object以两种方式使用:
CubeSLAM主要贡献:
Related WorkA. Single Image 3-D Object Detection与2D相比,从单张图片中进行3D物体检测更加有挑战,因为需要 考虑更多的object的位姿变量和相机投影几何;现有的3D检测可以分为两类:有形状先验(如CAD)和没有形状先验的;
B. Multiview Object SLAMObject-augmented mapping主要有两种:
最近有一些基于end-to-end深度学习没有object表示的SLAM,例如DVSO[28]和DeepVO [29],其在 KITTI 数据集上取得了很好的表现,但是还不清楚能否推广到新的环境。 C. Dynamic Environment SLAM大多数现有的方法[4], [30], [31]将动态区域特征视为outliers,and only utilize static background for pose estimation;最近有一项工作[34]基于刚性形状和恒定运动假设 ,利用动态点 BA 来改进相机位姿估计,但是该论文显示了有限的真实数据集结果,并且没有明确表示地图中的object; MethodsSINGLE IMAGE 3-D OBJECT DETECTIONA. 3-D Box Proposal Generation
其中Rcol(i)是 R 的第 i 列;
? 这里更详细地解释图 2(a),假设三个 VPs和顶角p1是已知的或估计的,× 表示两条线的交点,所以p2 = (VP1, p1) × (B, C), 同理,对于p4. p3 = (VP1, p4) × (VP2, p2), p5 = (VP3, p3) × (C, D);类似的可以得到其他角点;
4.Sample VP and Summary:从前两节的分析来看,盒子估计问题变成了如何得到三个 VP 和一个 top 2-D corner,因为在得到 VP 之后,我们可以使用 Section III-A2 来计算 2-D corners,那么使用 Section III-A3 计算 3-D 框。由(1)式可知,VP 由对象旋转矩阵 R 决定。虽然深度网络可以通过大量数据训练直接预测它们,但作者选择手动对其进行采样,然后对它们进行评分(排名)以达到泛化的目的;对于一般物体,我们需要对完整的旋转矩阵 R 进行采样,但是对于地面物体,使用相机的 roll/pitch 和物体的 yaw 进行采样来计算 R,更重要的是,在 SUN RGBD 或 KITTI 等数据集中,相机滚动/pitch 已经提供;对于多视图视频数据,作者使用 SLAM 来估计相机位姿,因此采样空间大大减少,也变得更加准确;在本文的实验中,作者只考虑地面物体。 B. Proposal ScoringOBJECT SLAM作者将 single image 3-D object detection应用到multiview object SLAM用于jointly optimize object pose and camera pose;CubeSLAM整个系统建立在ORB-SLAM上,主要修改的是在BA中包含 objects、points和camera pose一起; A. BA Formulation作者将一组camera poses、3-D cuboids和points表示为 C = {Ci}, O = {Oj }, P = {Pk},则 BA 可以表示为非线性最小二乘优化问题 其中e(c, o)、e(c, p)和e(o, p)分别表示相机物体、相机点、物体点的测量误差;Σ 是不同误差测量的协方差矩阵; B. Measurement Errors
其中 zm 是 3-D 点 P 的观察到的像素坐标; C. Data AssociationData association across frames 是SLAM另一个重要部分;与点匹配相比,object association因为包含更多纹理并且可以使用许多二维对象跟踪或模板匹配方法显得更加容易,即使是 2-D 框重叠也可以在一些简单的场景中工作;然而,如果重复对象存在严重的对象遮挡,这些方法并不鲁棒,如图 5 所示;此外,需要检测动态对象并将其从当前的 SLAM 优化中移除,但标准的object tracking 方法无法分类是否为静态对象与否,除非使用特定的运动分割; 作者提出另一种基于特征点匹配的object association method,如果在 2-D object DYNAMIC SLAM上一节涉及 static object SLAM SLAM,在本节中,作者提出了一种联合估计相机位姿和动态物体轨迹的方法;作者的方法对物体进行了一些假设,以减少未知数并使问题可解决,两个常用的假设是物体是刚性的并且遵循一些物理上可行的运动模型,刚体假设表明点在其关联对象上的位置不会随着时间而改变。这使能够利用标准的 3-D 地图点重投影误差来优化其位置;对于运动模型,最简单的形式是匀速恒定运动模型。对于某些特定物体,例如车辆,它还受到非完整车轮模型的额外约束(带有一些侧滑)。 A. Notations这里新定义了一些地图元素; B. SLAM Optimization动态对象估计的因子图如图6所示。蓝色节点是静态SLAM组件,而红色节点代表动态对象、点和运动速度。绿色方块是测量因子,包括(10)中的相机-物体因子、(14)中的物体-速度因子和(15)中的点-相机-物体因子,下面将进行解释。有了这些因素,相机位姿也可以受到动态元素的限制。
其中 T jc 是第 j 个相机位姿,zkj 是该点的观察像素 C. Dynamic Data Association通过实验,我们发现第IV-C节中的静态环境关联方法由于难以匹配动态点特征而不适用于动态情况。跟踪特征点的典型方法是预测其投影位置,搜索与描述符匹配的附近特征,然后检查对极几何约束 [4]。然而,对于单目动态情况,难以准确预测物体和点的运动,当物体运动不准确时,极线几何也不准确。 因此,我们为点和对象关联设计了不同的方法。特征点直接通过2-D KLT稀疏光流算法跟踪,不需要3-D点位置。在像素跟踪之后,动态特征的 3-D 位置将考虑到对象的移动进行三角测量。在数学上,假设两帧的投影矩阵是 M1 和 M2。这两帧中的 3-D 点位置是 P1,P2,对应的像素观测值是 z1,z2。两帧之间的物体运动变换矩阵为ΔT,那么我们可以推断出P2 = ΔT P1。基于投影规则,我们有: 如果我们将 M2ΔT 视为修正的相机位姿补偿对象运动,则上述方程是标准的两视图三角剖分问题 [35],可以通过 SVD 解决 当像素位移较大时,KLT 跟踪可能仍会失败,例如,当另一辆车靠近并靠近摄像头时。因此,对于动态对象跟踪,我们不使用第 IV -C 节中的共享特征点匹配方法。相反,我们直接利用视觉对象跟踪算法[40]。跟踪对象的二维边界框,并从前一帧预测其位置,然后将其与当前帧中检测到的具有最大重叠率的边界框进行匹配。 IMPLEMENTATIONSA. Object Detection2-D object detection:在室内场景中使用YOLO detector [41],概率阈值为 0.25;在户外 KITTI 上使用MS-CNN [42],概率是0.5;两者都是实时在GPU上运行的; 在已知accurate camera pose下(如SUN RGBD dataset):只需要采样对象偏航来计算 VPs,如第 III-A4 节所述;如第 IV -B1 节所述,将 90° 范围内的 15 个对象偏航样本生成为可以旋转的长方体,然后在二维边界框的顶部边缘采样十个点;请注意,并非所有样本都可以形成有效的长方体提议,因为一些长方体角可能位于二维框之外; 在没有ground truth camera pose provided下:需要在最初估计的角度周围的 ±20° 范围内对相机滚动/俯仰进行采样;对于没有先验信息的单个图像,作者简单地估计相机与地面平行,对于多视图场景,SLAM 用于估计相机位姿;作者的方法的一个优点是它不需要大量的训练数据,因为只需要调整 (4) 中的两个成本权重,它还可以实时运行,包括二维物体检测和边缘检测; B. Object SLAM整个 SLAM 算法的流程如图 4(a) 所示,Cube-SLAM系统建立在ORB-SLAM2的基础上,并且没有修改the camera tracking 和keyframe creation modules;对于新创建的关键帧,Cube-SLAM检测长方体物体,将它们关联,然后使用相机姿势和点执行 BA;对于动态物体,Cube-SLAM可以根据不同的任务选择重构或忽略它们;当立体基线或视差角小于阈值时,长方体还用于初始化难以三角测量的特征点的深度;如实验所示,这可以提高某些具有挑战性的场景中的鲁棒性,例如大相机旋转;由于对象的数量远少于点,对象关联和BA优化实时高效运行;为了获得单目 SLAM 的绝对地图比例,提供初始帧的相机高度来缩放地图;请注意,Cube-SLAM也可以在没有点的情况下独立工作,在一些特征点较少的具有挑战性的环境中,ORB SLAM 无法工作,但我Cube-SLAM仍然可以仅使用物体-相机测量来估计相机位姿; 优化中有不同的成本(见第四节),其中一些在像素空间,例如(10),而一些在欧几里德空间,例如(8)和(11),因此有必要调整它们之间的权重。由于难以分析长方体检测不确定性,作者主要通过检查测量的数量和幅度来手动调整物体成本权重,以便不同类型的测量贡献大致相同;例如,与点相比,只有少数对象,但它们在(10)中的重投影误差与点相比要大得多。根据我们的实验,物体相机和点相机测量具有相似的权重; C. Dynamic ObjectDynamic objects的部署大都沿用上一节,只有以下几点不同:恒定运动模型假设可能不适用于实际数据集,因为对象可能会加速和减速(例如在图 13 中);通过ground truth object velocity分析,作者发现速度在大约 5 秒内大致保持不变;因此,在CubeSLAM 中,运动模型约束仅适用于最后 5 秒的观察结果。 ExperimentCube-SLAM的实验分为两个部分,单图像3D目标检测和整体SLAM精度评测;单图像3D目标检测实验,作者使用了SUN RGBD(室内) 和 KITTI(室外);SLAM精度实验在TUM(室内)和KITTI(室外)上进行;综合效果上来看, Cube-SLAM在 SUN RGBD 子数据集达到了3D目标检测的最高精度,并且 在KITTI odometry datasets上实现了相机位姿估计的最高精度; EXPERIMENTS—SINGLE VIEW DETECTIONSUN RGBD [43] and KITTI object [44] data两个数据集提供 3-D bounding box 注释以供做单图像物体检测评估;3-D intersection over union (IoU)和average precision (AP)作为评估指标,而不是很多work中使用仅旋转或视点评估;由于没有深度数据,因此作者将正确检测的 3-D IoU 阈值调整为 25% [12]、[43];因为Cube-SLAM不依赖先验的物体模型,为了获得物体位置和尺寸的绝对比例,作者只能评估已知相机高度的地面物体,如第 III-A 节所述;KITTI 数据集,这个假设已经满足;使用了常用的由[2]、[13]分割的训练和验证指标;对于 SUN RGBD 数据集,作者选择了 1670 张具有可见地平面和完全在视野中的地面物体的图像。 A. Proposal Recall首先,作者评估了SUN RGBD 数据集下生成提案的质量,很明显,如果 2-D 边界框不准确, 3-D 长方体精度也会受到影响;通过评估 2-D IoU 大于阈值 τ 的物体的 3-D 召回来分析这种效果,如图 7(a) 所示;正如预期的那样,更大的 τ 会导致更高的 3-D 召回率,当 2-D IoU 为 0.6 时,作者的方法可以使用大约 50 个长方体提案实现 90% 的 3-D 召回率; 然后,作者在 KITTI 数据集上评估和比较提案质量,如图 7(b)所示;由于与CubeSLAM相比,Mono3D [12] 和 3DoP [45] 使用不同的验证指标,作者只评估常见图像 (1848);根据测试,不同的图像索引只会导致小的结果变化,其他算法的结果取自他们的论文;请注意,Mono3D 首先对大量长方体提案(~14 k)进行详尽的采样,然后在根据语义和实例分割对最佳提案进行评分和选择后报告召回率;因此,作者还评估了评分前后的召回率。在评分之前(绿线),Cube-SLAM的方法可以达到 90% 的召回率,每张图像有 800 个原始提案,大约 每个物体有200 个提案;评分后(红线),作者只需使用 20 个提案就可以达到相同的召回率,与 [12] 相比要少得多;这有两个主要原因。首先,作者的 3-D 提议是高质量的,因为它们保证与 2-D 检测框相匹配;其次,作者有更有效的评分功能;请注意,作者的方法有一个上限,如图 7(b)所示,因为 2-D 检测器可能会遗漏一些对象; B. Final Detection然后,作者评估最佳选择提案的最终准确性;据作者所知,SUN RGBD 中没有经过训练的 3-D 检测算法,因此,作者比较了两种公共方法,UN primitive [10] 和 3-D Geometric Phrases (3DGP) [46],,它们都是像Cube-SLAM这样的基于模型的算法;此外,3DGP 使用固定的先验物体模型,作者修改他们的代码以在检测和不投影到 3-D 空间时使用实际的相机位姿和校准矩阵。 对于 3-D IoU 评估,为了消除 2-D 检测器的影响,作者仅对 2-D 矩形 IoU > 0.7 的对象评估 3-D IoU;如表 I 和图 8 所示,作者的方法可以生成更多准确的长方体,其他方法 [10]、[46] 只能在 SUN RGBD 子集数据集中检测到大约 200 个长方体,而作者的算法检测到十倍以上;与使用先验模型的 3DGP 相比,作者的平均 3-D object IoU 更小,但如果仅通过 3DGP 对相同检测到的图像(≈200)进行评估,则更高,与 AP 类似,作者仅在检测到 3-D 物体的图像上评估其他方法,否则与作者在整个数据集上的 27% 相比,它们的 AP 值将非常低(<5%)。 在KITTI dataset上,作者与使用深度网络的其他单目算法 [2]、[12]、[13] 进行比较,SubCNN 还使用先验的模型;预测结果由他们的作者提供;AP是在中等大小汽车类上评估的;从表 I 中,Cube-SLAM的表现类似于 SubCNN 和 Mono3D;由于 SubCNN 产生许多误报检测,它们的 AP 值很低,表现最好的方法是 Deep3D [13],它使用深度网络直接预测车辆的方向和尺寸,由于只有一个物体类别“汽车”具有固定的相机姿势和对象形状,因此 CNN 预测比CubeSLAM手工设计的特征效果更好,最后一行是对作者选择的前十个长方体提案的评估,以表明Cube-SLAM的提案生成部分仍然可以生成高质量的提案; EXPERIMENTS—OBJECT SLAM评估指标:camera pose estimation和3-D object IoU;对于camera pose使用的参数是均方根误差 (Root mean squared error RMSE) [47] 和 KITTI 平移误差(KITTI translation error) [44]; 作者从第一帧的相机高度获得了地图比例,所以直接评估绝对轨迹误差(我觉得这里的原因就是使用绝对轨迹误差能更好的凸显尺度优化的效果);为了更好地评估单目姿态漂移,关闭了 ORB SLAM2中的回环模块; A. TUM RGBD and ICL-NUIM Dataset[47]、[48] 数据集具有用于评估的ground truth camera pose trajectory,作者仅将 RGB 图像用于 SLAM 算法,对于object的ground truth,3-D 长方体在深度图像的注册全局点云中手动标记。 TUM fr3_cabinet数据集上(如图9所示): 这是一个低纹理数据集,现有的单目 SLAM 算法都因点特征少而失败;object是唯一的 SLAM landmark,使用第 IV 节 -B1 中的 3-D 物体-相机测量,因为它可以提供比 2-D 测量更多的约束;图 9 的左侧显示了作者使用来自 SLAM 的估计相机位姿在某些帧中在线检测到的长方体,底部图像明显存在较大的检测误差,经过多视图优化后,地图中的红色立方体几乎与地面实况点云匹配;从表 II 中的“fr3/cabinet”行来看,与单图像长方体检测相比,SLAM 优化后的 3-D objectIoU 从 0.46 提高到 0.64。绝对相机位姿误差为 0.17 m; ICL-NUIM Dataset上:这是一个通用的功能丰富的场景,由于单目 DSO 或 ORB SLAM 没有绝对尺度,作者在尺度对齐后计算它们的位姿误差 [15];Cube-SLAM提高了对象检测精度,同时由于不完美的对象测量而牺牲了一些相机位姿精度;从图 1(a) 中 ICL 数据的映射结果可以看出,作者的方法能够检测不同的物体,包括沙发、椅子和盆栽植物,展示了CUbe-SLAM在没有先验模型的情况下进行 3-D 检测的优势; B. Collected Chair Dataset该部分是作者使用Kinect RGBD 相机收集两个椅子数据集,如图 10 所示,RGBD版本的ORB SLAM 结果用作相机位姿的 ground truth,第二个数据集包含大的相机旋转,这对于大多数单目 SLAM 来说是具有挑战性的;如图 10(a) 所示,优化后的长方体可以紧密拟合相关的 3-D 点,表明object和点估计相互受益;定量误差显示在表 II 的底部两行,DSO 能够在第一个数据集中工作,但在第二个数据集中表现不佳,因为相机旋转较大,Mono ORB SLAM 在这两种情况下都无法初始化,而Cube-SLAM的长方体检测甚至可以为单个图像中的点提供深度初始化,与之前类似,BA 后 3-D object IoU 也得到了改进; C. KITTI Dataset作者在两个KITTI数据集上进行了测试,一个短的序列提供了object注释的groundtruth,另一个长的数据集是一个标准的odometry benchmark没有提供object注释;第 IV -B1 节中的 2-D 物体相机测量用于 BA,因为与用于车辆检测的 3-D 测量相比,它的不确定性较低;作者还通过第一帧相机高度(在作者的实现中为 1.7 m)缩放 ORB SLAM 的初始地图,以评估其绝对位姿误差;在图 11 中,可以观察到第一次转弯之前的初始轨迹段与地面实况很好地匹配,表明 ORB 的初始地图缩放是正确的,对于 KITTI 数据集,作者额外使用先前的汽车尺寸(在我们的实现中 w = 3.9,l = 1.6,h = 1.5)初始化对象尺寸以保持长期规模一致性,这也用于其他object SLAM 工作 [21], [22],当在某些序列中不经常观察object时,这非常有用;
D. Dynamic Object动态场景情况下在图12(a)中的KITTI datasets;作者选择了一些长时间多dynamic objects的raw sequences,数据如表5;序列的全名是“2011_0926_00xx”,前四个序列也对应于 KITTI tracking dataset中的 Seq 3、4、5、18,这些序列中的大多数汽车都在移动,Ground truth object annotations可用于所有或部分帧,ground truth camera poses由 GPS/INS 提供;
E. Time Analysis测试电脑: Intel i7-4790 CPU at 4.0 GHz;2D object detection 时间取决于 GPU 能力和 CNN 模型复杂度,很多算法(例如Yolo)可以实时;得到 2-Dboundingbox后,3-D cuboid detection每张图像大约需要 20 毫秒,它的主要计算是边缘检测;表VII 中显示了时间使用情况;计算强烈依赖于具有不同图像大小和纹理的数据集,作者选择两个代表性序列:Outdoor KITTI 07 at 10 Hz shown in Fig. 1(b) and indoor ICL-NUIM livingroom dataset at 30 Hz shown in Fig. 1(a);平均两个数据集中的每个local BA optimization中都有五个 object landmarks;The tracking thread包括ORB点特征检测和每帧的相机位姿跟踪,可以从表中实时运行;BA 地图优化发生在创建新的关键帧时,因此它不需要实时运行;在静态环境中,将object添加到系统中只会增加 7% 的优化,这是合理的,因为局部地图优化中只有少数object;对于动态场景的情况,由于许多新变量和动态点的测量,计算量增加了两倍; Conclusion总结(其他点):
未来工作:使用Objects的稠密建图,更加完整的场景理解和SLAM优化相结合;object作为landmarks如何从初始化、tracking、重定位、优化和回环上发挥作用。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:04:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |