Semantic SLAM with Autonomous Object-Level Data Association 论文笔记

系列文章

1.使用椭球表示物体的语义SLAM的基础知识
2.QuadricSLAM

摘要&介绍

疫情原因封校,好想出去耍耍呀!哎,心情不好,写篇博客发泄一下

这篇论文发布在2021年的ICRA上,也是使用椭球来表示物体。使用BoW词袋向量来完成数据关联,并且提出了一种新的椭球初始化方法。能够完成实时的语义建图。

系统框架

整体上和ORBSLAM2的框架非常的相似,这里不得不说ORBSLAM2太牛逼了,整体架构,代码可读性等等,真的可以说是VSLAM领域的一件优秀的艺术。
在这里插入图片描述
追踪部分使用的ORBSLAM2,通过并行线程完成目标检测和SLAM的前端追踪。然后在目标检测生成的包围框内提取ORB特征点,并且转化为词袋向量。然后进行物体级别的数据关联并且判断当前帧是否可以作为关键帧来构建语义地图。
语义建图主要是接受语义关键帧,并且基于带线性约束的二次规划完成物体的创建。然后进行BA。
地图中包含着3D物体和语义关键帧。3D物体记录着被观测到的所有的语义关键帧,语义关键帧记录着该帧中所有观测到的3D物体。类似于ORBSLAM中的MapPoints和KeyFrame,构建相互对应的关系,属实是双向奔赴了。

目标检测和追踪

这部分重点介绍了物体级的数据关联。

目标检测

使用ROS接口的YOLOv3完成实时的目标检测。对于每一个输入的图像 I t \boldsymbol I_t It,输出一系列语义测量结果 S t = z k S_t = {z_k} St=zk,对于每一个语义测量,包含 z k = { b k , c k , s k } z_k = \{ b_k,c_k,s_k\} zk={bk,ck,sk},分别表示包围框,物体类别和检测分数。

对于每一个ROI(bbox),按照相同的密度提取FAST角点,并且根据ROI面积调整提取的角点的数目。然后提取ORB描述子。一旦提取到ORB特征点,我们匹配视觉词袋来将他们转化为BoW向量。

物体级数据关联

这部分是整个论文的一大创新点,提出了frame-to-map的匹配方法。

第一步,得到一系列的候选物体。对于每一个语义观测结果 z k = { b k , c k , s k } z_k = \{ b_k,c_k,s_k\} zk={bk,ck,sk},只有与其有相同的类别的物体才能有资格加入到候选物体。这是一个最基本的条件,此外,本文还引入了几何检测来剔除具有相似外表但是位置不准确的物体。考虑如下两种情况。
情况1:物体已经成功初始化,即可以使用椭球来表示。在这种情况下,椭球的中心投影到当前图像 I t \boldsymbol I_t It中应该位于bbox的内部。如图中的虚线所示
情况2:物体没有被初始化,只记录了一些了被观测到的关键帧,那么,最近被观测到的图像的bbox的中心经过投影后应该位于当前观测的包围框的内部(可以理解为单目相机的三角化测量)。上述前提假设是相机不能有剧烈的视角变化,否则,实际上是同一个物体,但是由于视角的剧烈变化,上一帧的中心可能不在当前帧的bbox内。
在这里插入图片描述

第二步:通过上述步骤,我们已经得到了语义观测对应于地图中的一系列候选物体 τ j \tau_j τj,同时,这些候选物体 τ j \tau_j τj包含着一系列被观测到的语义关键帧。这一步要做的就是计算当前语义观测 z k = { b k , c k , s k } z_k = \{ b_k,c_k,s_k\} zk={bk,ck,sk}的词袋向量与 τ j \tau_j τj的语义关键帧中对应的词袋向量的相似度,论文中的公式为
s ( v 1 , v 2 ) = 1 − 0.5 ∣ v 1 ∣ v 1 ∣ − v 2 ∣ v 2 ∣ ∣ s(v_1,v_2)=1-0.5|\frac{v_1}{|v_1|}-\frac{v_2}{|v_2|}| s(v1,v2)=10.5v1v1v2v2
在语义关键帧中最大的得分 c k j c_{kj} ckj被视为数据关联的得分,表示 z k z_k zk与地图中的物体 τ j \tau_j τj可能存在关联。得到这个得分之后,数据关联问题就转化为了一个整数规划问题,对于每一个 z k z_k zk τ j \tau_j τj之间,定义一个0-1变量
在这里插入图片描述
构建整数规划问题,使用的是Or-tools求解。
在这里插入图片描述
其中公式(3)中的两个约束条件分别表示为
(1)每个语义观测 z k z_k zk(因为遍历了所有的j)至多与一个物体相关联
(2)每个物体 τ j \tau_j τj(同理,因为遍历了所有的k)只能与当前图像中的一个语义测量 z k z_k zk相关联。

语义建图

这部分原理和QuadricSLAM类似,只不过没有使用SVD分解,而是构建二次规划问题求解。

这里重点记录下新增加的三个约束条件:

  1. 初始化后的椭球应当在相机的前方
  2. 相机的主平面不应该与椭球相交
  3. 椭球的中心投影到当前图像中,对应的像素点应当在包围框的内部。

约束条件1
在这里插入图片描述
其中, O K i O_{K_i} OKi表示相机中心位置(在世界坐标系下), z K i z_{K_i} zKi表示相机的光轴(可以理解为相机坐标系中的指向前方的z轴,即下图中的 z c z_c zc)在世界坐标系中的方向, O τ j O_{\tau_j} Oτj表示椭球在世界坐标系中的位置。
相机模型
公式(9)表示,由相机中心到物体中心的向量与光轴的方向夹角应当为锐角,所以大于零。

对于相机中心(光心) O K i O_{K_i} OKi,假设相机的位姿表示为
T w c = [ R w c t w c 0 1 ] T_{wc}=\left[ \begin{matrix} R_{wc} & t_{wc} \\ 0 & 1 \end{matrix} \right] Twc=[Rwc0twc1]
相机的光心在相机坐标系中的位置为 P c = [ 0 , 0 , 0 , 1 ] T Pc=[0,0,0,1]^T Pc=[0,0,01]T,那么可以得出在世界坐标系中的位置为
O K i = T w c P c = t w c O_{K_i}=T_{wc}P_c=t_{wc} OKi=TwcPc=twc
另外,我们记
R w c = [ R 11 R 12 R 13 R 21 R 22 R 23 R 31 R 32 R 33 ] R_{wc}=\left[ \begin{matrix} R_{11} &R_{12} &R_{13} \\ R_{21} &R_{22} &R_{23} \\ R_{31} &R_{32} &R_{33} \end{matrix} \right] Rwc=R11R21R31R12R22R32R13R23R33
在相机坐标系中,光轴的方向为 [ 0 , 0 , 1 ] [0,0,1] [0,0,1],那么乘以上述变化矩阵就可以得到世界坐标系中光轴的方向为 [ R 13 , R 23 , R 33 ] T [R_{13},R_{23},R_{33}]^T [R13,R23,R33]T

约束条件2
相机主平面,即在相机模型图像中的 o c , x c , y c o_c,x_c,y_c oc,xc,yc构成的平面。
在这里插入图片描述
由于使用的是对偶空间中的椭球表示,所以如果相机主平面与椭球不相交的话,应当是等于零。
在论文中,在世界坐标系中,相机的主平面表示为
在这里插入图片描述
下面记录下推导过程
考虑世界坐标系中,相机主平面上的一点 P w = [ x w , y w , z w , 1 ] T P_w=[x_w,y_w,z_w,1]^T Pw=[xw,yw,zw,1]T。再考虑在相机坐标系中,相机的主平面应当与图像平面( x − y − p x-y-p xyp构成的平面)是平行的,即图像应当在无穷远处相交。那么投影关系可以记作
[ u v 0 ] = K [ R c w ∣ t c w ] P w \left[ \begin{matrix} u \\ v \\ 0 \end{matrix} \right]=K[R_{cw}|t_{cw}]P_w uv0=K[Rcwtcw]Pw
其中 t c w = − R w c T t w c t_{cw}=-R_{wc}^Tt_{wc} tcw=RwcTtwc,记 P = K [ R c w ∣ t c w ] = [ P 1 , P 2 , P 3 ] T P=K[R_{cw}|t_{cw}]=[P_1,P_2,P_3]^T P=K[Rcwtcw]=[P1,P2,P3]T,那么上述投影关系可以表示为
[ u v 0 ] = [ P 1 P 2 P 3 ] P w = [ P 1 P w P 2 P w P 3 P w ] \left[ \begin{matrix} u \\ v \\ 0 \end{matrix} \right]= \left[ \begin{matrix} P_1\\ P_2\\P_3 \end{matrix} \right]P_w= \left[ \begin{matrix} P_1P_w\\ P_2P_w\\P_3P_w \end{matrix} \right] uv0=P1P2P3Pw=P1PwP2PwP3Pw
通过上述公式可以看到, P 3 P w = 0 P_3P_w=0 P3Pw=0,由于 P w P_w Pw表示世界坐标系中主平面上的点,那么P_3则表示世界坐标系中的相机主平面。由于 P 3 P_3 P3表示投影矩阵的第三行,代入 R w c , t w c R_{wc},t_{wc} Rwc,twc即可得到论文中的表示。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ORB-SLAM2_with_semantic_label是一种基于ORB-SLAM2的视觉SLAM系统,它使用语义标签信息来增强场景理解和地图构建。该系统通过将每个地图点与语义标签相对应,从而为地图中的每个区域提供更多的上下文信息。这有助于提高系统的鲁棒性和场景理解能力,并可以在机器人导航、自动驾驶等领域得到广泛应用。 ### 回答2: ORB-SLAM2是一种视觉SLAM算法,可以实现从单个或多个摄像头的图像序列中实时重建3D地图,同时在该地图中定位相机。它广泛应用于机器人导航、增强现实、自动驾驶等领域。然而,在某些现实场景中,例如室内场景、城市环境等,只有3D地图是不够的,需要利用语义信息来更好地理解环境。 因此,ORB-SLAM2的研究人员进行了扩展,开发了一种ORB-SLAM2_with_semantic_label算法,以结合视觉SLAM和语义信息。该算法的目标是在ORB-SLAM2中增加对语义信息的支持,从而允许机器理解其所在环境中的物体及其特征。该算法的一个重要应用是在机器人导航中,机器人可以利用语义标签对其周围环境进行更准确、更可靠的理解,从而更好地规划路径。 该算法的关键步骤包括以下几个方面。首先,需要将语义分割模型与ORB-SLAM2进行集成,产生语义标记的地图,这可以在ORB-SLAM2映射初始化期间完成。其次,需要利用深度学习技术提取图像的语义特征,用于在传统视觉SLAM系统中增加语义信息。接着,需要将ORB-SLAM2中的回环检测模块改进,以考虑语义信息来消除误报。最后,需要使用机器学习算法,通过对特定环境中所遇到的物体的历史观测进行学习,从而使机器人能够在不同环境中尽可能准确地识别物体。 该算法的优点是可以在不增加太多计算量的情况下增加语义信息,从而使机器能够自然地与人类进行交互。但是,该算法的缺点是需要对语义标注数据进行精确的手动标注,这是一项非常耗时的任务。此外,该算法对光照和尺度变化非常敏感,因此在实际应用中需要特别注意。 ### 回答3: ORB-SLAM2是一种基于视觉SLAM技术的实时多目标跟踪和定位系统,它结合了ORB特征提取器和BoW词袋模型,使得系统具有高效的实时位姿估计能力。而ORB-SLAM2 with Semantic Label则是在ORB-SLAM2的基础上,加入了语义标签的支持。 语义标签是指对环境元素的分类标注,例如标注图像中的建筑、人、车等。加入语义标签的目的是提高系统对环境信息的理解和描述能力。在ORB-SLAM2 with Semantic Label中,可以通过在输入图像中标记语义标签信息,并将其存储到地图数据中,从而实现地图的语义化描述。同时,语义标签可以通过深度学习等技术来实现自动分类。 与传统的视觉SLAM系统相比,ORB-SLAM2 with Semantic Label可以更好地应对复杂的环境场景。在城市街道和室内场所等环境中,ORB-SLAM2 with Semantic Label可以对人、车辆和建筑等复杂元素进行识别,并在建立地图时,将这些语义信息一同存储在地图中。这样可以提供更为精确的地图信息,使得系统的位置估计更加准确、稳定。 总之,ORB-SLAM2 with Semantic Label是一种具有语义理解能力的SLAM系统,可以为机器人的自主导航和环境理解等方面的应用提供更为准确、可靠的基础支撑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值