学习记录-视觉SLAM十四讲第2版(九)


前言

系统环境:ubuntu20.04
鸽了好久的视觉SLAM十四讲的第7讲好歹是发出来了,这一节真的好长,而且说实话好难,第一遍看完还是有些晕,估计得后面自己真的用上了,再好好体会感悟一遍。


一、实践部分

其他使用imshow展示的图片截图太麻烦了,就不展示了。

1.orb_cv项目

这里值得注意的是描述子之间的距离是有上下限的,尤其是会设置一个下限经验值30。
在这里插入图片描述

2.orb_self项目

在这里插入图片描述

3.pose_estimation_2d2d项目

在这里插入图片描述

4.triangulation项目

在这里插入图片描述

5.pose_estimation_3d2d项目

在这里插入图片描述

6.pose_estimation_3d3d项目

在这里插入图片描述

二、第7讲的普通习题

1.其他特征点

常见的特征点还有FAST特征点、SIFT特征点。SIFT和SURF的原理如下:
SIFT(尺度不变特征变换):Sift是一种基于尺度空间的,对图像缩放、旋转、甚至仿射变换保持不变性的图像局部特征描述算子。分为特征点提取、特征点描述和特征点匹配三个步骤。
SURF(加速稳健特征):Surf是对David Lowe在1999年提出的Sift算法的改进,提升了算法的执行效率,为算法在实时计算机视觉系统中应用提供了可能。SURF在两个地方进行了改进,一个是积分图在Hessian(黑塞矩阵)上的使用,一个是降维的特征描述子的使用。
三种之间的比较:
计算速度:ORB>>SURF>>SIFT(各差一个量级)
旋转鲁棒性:SURF>ORB~SIFT(表示差不多)
模糊鲁棒性:SURF>ORB~SIFT
尺度变换鲁棒性:SURF>SIFT>ORB(ORB并不具备尺度变换性)
参考资料:
1、图像特征点
2、3种特征点的比较
3、Surf算法特征点检测与匹配

2.统计提取1000个特征点的耗时

我这边看了opencv的一些介绍,使用了BRISK,一开始还担心不知道特征点够不够1000个,因此把数量输出来看了一下。

Ptr<FeatureDetector> detector =  BRISK::create();
Ptr<DescriptorExtractor> descriptor = BRISK::create();

在这里插入图片描述
参考资料:相关函数的介绍

4.其他加速匹配的方式

FLANN算法主要内嵌了随机k-d树算法、优先搜索k-means树算法、层次聚类树这三种算法,并且对这些分类匹配算法都进行了优化,因此能够加速匹配。此外除了这个方法还可以通过GPU进行加速。
参考资料:FLANN算法说明

5.其他PnP方法

打开了这个函数的详细解释,发现其默认的参数是SOLVEPNP_ITERATIVE也就是使用列文伯格马夸尔特法迭代求解。这里让我们换其他方法进行求解。
在这里插入图片描述
可以发现除了SOLVEPNP_ITERATIVE这个方法可以选之外还有SOLVEPNP_EPNP、SOLVEPNP_P3P 、SOLVEPNP_DLS、SOLVEPNP_UPNP、SOLVEPNP_AP3P、SOLVEPNP_IPPE、SOLVEPNP_IPPE_SQUARE、SOLVEPNP_SQPNP一共八个。
在这里插入图片描述
对比了一下上面,发现比原本默认的那个迭代方法还要慢。。。
EPNP:是将所有的3D点都转化为用四个非共面的点进行表示,后面对这四个点进行优化,因此比较高效。
参考资料:Epnp

6.在PnP中考虑第一个相机的观测

待补充,一遇到改代码的题,头就疼,看了半天还是没有多大理解。

7.在ICP中考虑空间点的优化

待补充,一遇到改代码的题,头就疼,看了半天还是没有多大理解。


总结

本文对7.2,7.4,7.6,7.8,7.10等小节的实践部分进行验证,同时对第7讲部分普通习题作了总结,欠了2道实在抱歉,后面会修改的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值