Direct Line Guidance Odometry
加入直线结构提供整个SLAM系统定位的精度和鲁棒性;
相关的工作
ECCV 2016 PnPL
对于3D线段的一个表示
两个端点
投影到二维上,表示成齐次坐标的形式
重投影误差
检测出来的对应的直线
投影直线两个端点
直线重投影误差的定义
误检测、遮挡问题呢?
如果在二维上表示,相比三维更不准确
2D的直线不是很准确
将3D直线作为基准
然后对3D直线求重投影误差
求解PnPL demo
https://github.com/symao/PnPL
PL-SLAM 点线结合的SLAM系统
在图像中提取直线
把它当做一种特征点处理
Line Extractor :LSD算法
Line Descriptor : LBD算法
特征点提取的方法
把直线结构当做特征点一样
用类似特征点的处理方法来处理直线
对于直线处理的方式跟对于点的处理是类似的
我的工作
省略计算描述子和matching的一个过程
直接法、特征点法
直接法:比较弱的约束
把直线信息当做一种比较弱的约束加入到系统 中去
对整个系统 的运行效率影响不大
因为整个系统是直接法—direct
比较弱的直线的约束—
dso—–里程计 —-把点划分为两类—-参与优化的和不参与优化的
为什么?
在直线上采样点作为特征点
直接法提取的点是梯度比较大,边缘上的点梯度比较大,
在直线上的点梯度比较大;
在直线上的点,保持共线的特点
当前帧和下一帧直线上的点维持共线的状态
几何上的约束
对于点跟线跟踪
dso方式
在直线上的点,会加入共线的约束
绿色的线是通过LSD提取出来的直线
直线的提取
输入图像高斯模糊
LSD算法检测直线
很多直线不需要
过短不需要remove
有的直线离同一个边缘很近
下一帧移动这种直线会跑出去
对我们帮助不是很大
删掉保证简单性
同一个区域保留最长的一条直线
180°划分为5°的小格子,把提取来的所有直线放在此栅格里,太近的直线,短的remove
重投影误差
保留最近的两条直线的距离
d1+d2作为距离
Line Adjustment
对直线上的点作跟踪