1. introduction
读完总结,感觉这篇文章的主要思想是,提出数据关联,并根据语义的类别结果计算数据关联的概率,然后在优化过程中,根据之前的数据关联作为概率权重,引入与目标检测位置有关的误差项,从而让目标检测来辅助位姿估计。
数据关联和识别问题是不同类别之间离散的,而传统SLAM是连续优化的。
本文的目标是利用目标检测,整合尺度(metric)信息和语义(semantic)信息,用于传感器位姿估计和地图点位置估计。具有语义标签的路标点能够用于解决传统几何SLAM的两个问题:一是数据关联问题,即匹配传感器的观测与路标。二是回环检测,即用于识别之前已经去过的地方。
传统基于位姿图的非线性优化方法,依赖于运动模型和观测模型的线性化,而对于离散的目标检测结果,这就成为了一个问题。
本文的贡献如下:
- 紧密结合了惯性传感器、几何信息、语义观测,于一个单独的优化框架之中。
- 对于联合的尺度-语义SLAM问题,将其分解为两个子问题:连续的位姿优化问题,离散的数据关联和语义标签优化问题。
2. probabilistic data association in SLAM
文章给了一个SLAM问题的定义:
拥有一组地图点: L = { l m } m = 1 M L=\{l_m\}_{m=1}^{M} L={ lm}m=1M
一组传感器观测: Z = { z k } k = 1 K Z=\{z_k\}_{k=1}^{K} Z={ zk}k=1K
一组相机位姿: X = { x t } t = 1 T X=\{x_t\}_{t=1}^{T} X={ xt}t=1T
一组数据关联: D = { ( α k , β k ) } k = 1 K D=\{(\alpha_k,\beta_k)\}_{k=1}^{K} D={ (αk,βk)}k=1K
这里数据关联表示,在第k个观测下,从位姿 x α k x_{\alpha _k} xαk观测到路标点 l β k l_{\beta_k} lβk。正常情况下这个从哪能观测到什么是不知道的,比如我从某个观测k的位姿上观测,可能观测到椅子的一个点,也可能观测到杯子的一个点。感觉这里把位姿和观测联想在一起会容易理解一点,观测是在不同位姿下进行的,而它所能观测到的物体是不确定的。这里数据关联和地图点坐标、相机位姿一样,也是待优化的随机变量。
传统SLAM是估计地图点的位姿和相机位姿,但没有考虑数据关联。引入数据关联后,SLAM问题就变成:
x , l , d = a r g m a x x , l , d l o g p ( z ∣ x , l , d ) x,l,d=argmax_{x,l,d}logp(z|x,l,d) x,l,d=argmaxx,l,dlogp(z∣x,l,d)
文章提出了三种求解方法:
第一种是分为两步:
D ′ = a r g m a x D p ( D ∣ X 0 , L 0 , z ) D'=argmax_D p(D|X^{0},L^{0},z) D′=argmaxDp(D∣X0,L0,z)
X ′ , L ′ = a r g m a x X , L l o g p ( Z ∣ X , L , D ′ ) X',L'=argmax_{X,L} logp(Z|X,L,D') X′,L′=argmaxX,Llogp(Z∣X,L,D′)
即先根据初始的位姿和路标以及观测,求出数据关联的最优值,再把这个求出的数据关联当作已知条件,求出路标和位姿的最优值。
比如,先根据初始的位姿和路标,确定观测到的是椅子的点还是桌子的点,从而根据椅子或桌子在地图种的位置,来估计相机位姿。
这种方法存在的问题是,如果估计错了数据关联,则对后续的位姿和路标点估计影响很大。同时,模糊的观测会被舍去,以避免错误的数据关联估计,那这些信息就完全无法发挥作用了。
第二种方法解决了第一个问题,它采用迭代的坐标下降法:
D i + 1 = a r g m a x D p ( D ∣ x i , L i , Z ) D^{i+1}=argmax_D p(D|x^{i},L^{i},Z) Di+1=argmaxDp(D∣xi,Li,Z)
x i + 1 , L i + 1 = a r g m a x X , L l o g p ( Z ∣ X , L , D i + 1 ) x^{i+1},L^{i+1}=argmax_{X,L}logp(Z|X,L,D^{i+1}) xi+1,Li+1=ar