当前位置:网站首页>VSLAM特征之线特征&面特征
VSLAM特征之线特征&面特征
2022-06-29 06:41:00 【Hermit_Rabbit】
0. 简介
相较于激光雷达而言,视觉SLAM除了点特征以外还多出了线特征以及面特征。相比于点特征而言,线特征和面特征在单一环境中会更有鲁棒性。这篇文章中作者将会围绕着线特征和面特征的数学特性进行介绍
1. 线特征
线特征:优点在于具有天然的光照及视角不变性,同时更高级的特征也使追踪的鲁棒性和准确性有所提高。特别是在特定的人造场景(室内,走廊)等场景,能够克服无纹理或者不可靠纹理带来的干扰。
而其缺点也很明显,在于线段的检测及匹配耗时相对特征点更大。同时在后端也没有一个标准且通用的SLAM优化及回环模块。线特征匹配也是较为困难的,如线段易断裂,不具备强有力的几何约束(如极线几何约束),在纹理缺失处不具有较强的辨识度等。
线特征的典型代表是PL-SLAM,该框架是在ORB-SLAM的框架基础之上,添加了一些与线特征有关的模块,从而构建了一套单目SLAM系统。整个系统的框架如下图所示:
对于线的描述,采用了 端点(endpoints) 的方法,毕竟现实中,几乎不不可能碰到无限延伸的直线,几乎都是线段,所以,用端点的方法来描述直线是比较合理的。我们假设 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 是对应的齐次坐标。于是,我们可以得到直线的参数: I = p d h , q d h / ∣ p d h , q d h ∣ I =p_d^h,q_d^h /|p_d^h,q_d^h | I=pdh,qdh/∣pdh,qdh∣ 。
Tip:(对于向量(x,y,1),可以在几何意义上理解为是在【第三维为常数的】平面上的一个二维向量。这种用【三】维向量表示【二】维向量,或者一般而言,用一个n+1维的向量表示一个n维向量的方法称为齐次坐标表示法。】)。
这样我们就可以得到线特征所需要的参数。然后是定义线的重投影误差(line reprojection error) E l i n e E_{line} Eline——投影线段的端点与在图像中检测到的直线之间的点到直线距离 E p l E_{pl} Epl之和: E l i n e ( P , Q , I , θ , k ) = E p l 2 ( P , I , θ , k ) + E p l 2 ( Q , I , θ , k ) E_{line}(P,Q,I,\theta,k) = E_{pl}^2(P,I,\theta,k) + E_{pl}^2(Q,I,\theta,k) Eline(P,Q,I,θ,k)=Epl2(P,I,θ,k)+Epl2(Q,I,θ,k)。而 E p l = I T π ( P , θ , K ) E_{pl} = I^T\pi(P,\theta,K) Epl=ITπ(P,θ,K)。
其中, I I I为上面提到的直线参数, π ( P , θ , K ) \pi(P,\theta,K) π(P,θ,K) 为空间点 P P P投影到图像平面的坐标,而其中的 θ , K \theta,K θ,K分别为相机的外参 { R , t } \{R,t\} { R,t}和内参。理想情况下,空间点 P P P的投影点是在直线上的,所以点到直线距离 E p l = 0 E_{pl} = 0 Epl=0,或者说,点在直线上。
通过这样的计算就可以获取到两条线之间的重投影误差了。
2. 面特征
…详情请参照古月居
边栏推荐
- Interviewer: why does database connection consume resources? Where are the resources consumed?
- Detailed explanation of route (Jiuyang Scripture)
- From XX import* is equivalent to from XX import *, and no space is required
- 1032 Sharing
- 【深度之眼吴恩达第四期作业班】多元线性回归Linear Regression with multiple variables总结
- AI与元宇宙擦出火花:人类失去的只有枷锁,获得的是全方面的解放
- 面试官:为什么数据库连接很消耗资源,资源都消耗在哪里?
- 关于KingbaseES临时文件过大问题
- [industrial control old horse] detailed explanation of design principle of pattern fountain based on PLC
- Explanation of swing transformer theory
猜你喜欢

matlab 多普勒效应产生振动信号和处理

100 lectures on Excel advanced drawing skills (VI) - practical application cases of Gantt chart in project progress

【工控老马】基于PLC的花样喷泉设计原理详解

Roblox sword nine sword two

呕心沥血总结出来的MySQL常见错误以及解决方法(一)

蓝桥杯——最小框架

ShapeShifter: Robust Physical Adversarial Attack on Faster R-CNN Object Detector

Prompt during packaging: property 'sqlsessionfactory' or 'sqlsessiontemplate'‘

基于Sophus的Ceres优化

Appium automation test foundation ADB common commands (II)
随机推荐
产品安全 - 小漏洞导致大问题
tf.compat.v1.assign
VMware vcenter/ESXI系列漏洞总结
[industrial control old horse] detailed explanation of the design scheme of the running lamp control system based on Siemens S7-200PLC
Detailed explanation of route (Jiuyang Scripture)
施努卡:3D视觉识别系统 3D视觉检测原理
Detailed explanation of shell condition judgment
The table cannot be vacuumed because the cursor is open for a long time
Cv:: mat and Base64 conversion (including picture compression and decompression)
Oracle 批量插入数据-插入民族数据
多态中的向上和向下转型
Up and down transitions in polymorphism
基于Sophus的Ceres优化
Using cdockablepane to realize floating window in MFC
【深度之眼吴恩达机器学习作业班第四期】Logistic Regression 逻辑回归总结
C actual combat - high configuration version of Snake game design
1031 Hello World for U
循环嵌套问题:为什么大循环在内,小循环在外可以提高程序的运行效率
Alicloud access resource: nosuchkey
游标长时间open导致表无法vacuum问题