译文
描述
首先指出了为什么要使用线特征:
- 对于ORB-SLAM,如果在低纹理场景,或者是图像有运动模糊时,系统就会失效,但是在这些场景中往往还有线条,所以就希望能够应用线特征。
- 同时,论文中说明了使用的线特征的难点在哪里:
- 1)要找到合适的线条检测子和参数化方式
- 2)从线匹配去计算位姿的可靠性是低于用点的,而且这些线特征对遮挡非常敏感
- 3)使用端点还可以对orb点特征的代码进行部分复用
- 最终,选择了用端点来参数化,原因是:这种方式对于遮挡和无检测的情况更加鲁棒。
在PL-SLAM中,与线特征相关的处理包括了:
检测:使用LSD的方法,时间复杂度是 O ( n ) O(n) O(n),n为图片中像素的个数。
三角化:
匹配:
Line Band Descriptors
为基础的方法,通过一个关系图(relational graph)当前的线会和已经在地图中的线进行配对。map-to-image
的线特征对集合后,所有在局部地图中的线都被投影到图像上,进一步寻找匹配对,然后,如果这个图片有足够多的新环境信息,他就会被标记为关键帧,它对应的线会被三角化并添加进地图。线的剔除:从少于三个视点或少于 25% 的帧中看到的线会被丢弃(剔除)。
优化:线在地图中的位置使用局部BA进行优化。
重定位: 注意,因为对整个地图进行线的匹配的计算量非常大,所以回环检测中只使用点特征。
1、线段代替直线
2、计算直线齐次方程
我们假设 P , Q ∈ R 3 P, Q \in R^3 P,Q∈R3 是空间直线的两个端点, p d , q d ∈ R 2 p_d, q_d \in R^2 pd,qd∈R2是其在图像中的投影坐标,另外,记 p d h , q d h ∈ R 3 p_d^h, q_d^h \in R^3 pdh,qdh∈R3 是对应的齐次坐标。于是,我们可以得到直线的参数:
其次坐标说明:
- 对于向量(x,y,1),可以在几何意义上理解为是在【第三维为常数的】平面上的一个二维向量。
- 这种用3维向量表示2维向量,或者一般而言,用一个n+1维的向量表示一个n维向量的方法称为齐次坐标表示法。。
3、有了直线参数,下面再来看线的重投影误差,它是点到线距离之和。
3.1 图像说明误差
左图:
右图:
3.2 定义线的重投影误差
投影线段的端点与在图像中检测到的直线之间的点到直线距离之和:
E line ( P , Q , I , θ , k ) = E p l 2 ( P , I , θ , k ) + E p l 2 ( Q , I , θ , k ) ( 2 ) E_{\text {line }}(P, Q, I, \theta, k)=E_{p l}^2(P, I, \theta, k)+E_{p l}^2(Q, I, \theta, k) \space \space \space(2) Eline (P,Q,I,θ,k)=Epl2(P,I,θ,k)+Epl2(Q,I,θ,k) (2)
而 E p l ( P , I , θ , k ) = I T π ( P , θ , K ) E_{p l}(P, I, \theta, k)=I^T \pi(P, \theta, K) Epl