视觉SLAM十四讲-习题

阅读《视觉SLAM十四讲》中遇到的问题及习题资源整理,或为原创,或来自网络,如有问题请与我联系,会在第一时间加以修正。

第一讲

1.线性方程的解:转载自宋洋鹏(youngpan1101),了解线性代数可关注B站3Blue1Brown,以及线性代数,知乎上有其精细笔记。

2.高斯分布参考这位博主Johnny-Cuii的文章,具体学习可去  四川大学概率论与数理统计。

3.C++的学习可参考C++Primer(第五版)STL华山大师兄

4.以前用VS写。

5.参考C++11新特性老师说这是他的老师。

6.这个参考鸟哥的讲解

7.参考鸟哥1-2,5-8章节。

8.同上。

9.这个好多教程,参考这位博主。

第二讲

1.文献[1]主要专注于对基于单目视觉的 SLAM 方法的分析和讨论, 系统地介绍和分析目前 3 类(基于滤波,关键帧BA,直接跟踪)主流单目 V-SLAM 方法的优缺点, 并对它们的代表性系统进行性能分析和比较.另外, 也介绍和讨论了 V-SLAM 技术的最新研究热点和发展趋势, 并进行总结和展望.

文献[14]从帧间配准、环形闭合检测以及图优化技术3方面出发, 对基于图优化的SLAM技术进行综述.

2.文献[9]将SLAM发展分为三个年代,目前处于鲁棒性时代。·文献[15]大同小异。文献[16]介绍了拓扑地图,以解决度量地图计算量大的问题。[17]卡尔曼的介绍,[18]分类和介绍视觉SLAM技术的四个主要框架:卡尔曼滤波器(KF)为基础,圆锥滤波器(PF)为基础,基于期望最大化(EM)和基于成员资格的方案.

3. g++参数 

使用-o来更改生成的文件名,如g++ -o hello hello.cpp

4.好

5.哦哦额

6.undefined reference

7.看了忘,忘了看

8.hao

9.10.11 根据实际自行操作。

第三讲

1.验证旋转矩阵是正交矩阵

2.罗德里格斯公式的推导

3.验证四元数旋转某个点后,结果是一个虚四元数

4.自制图片传不上来,太大了?成功了,的确太大会上传失败。

5.这个可以用block()

#include <iostream>
#include "/usr/include/eigen3/Eigen/Dense"
using namespace std;
using namespace Eigen;

int main()
{
    Matrix4d matrix_44 = Matrix4d::Constant(0.5);
    cout << "Here is a matrix:\n" << matrix_44 << endl;
    Matrix3d matrix_33 = Matrix3d::Constant(0.1);
    matrix_44.block(0,0,3,3) = matrix_33;
    cout << "左上角3×3的块取出来赋值为Matrix3_3\n" << matrix_44 << endl;
    return 0;
}

发现这位博主的更好

6.有6种做法:我不能实现,但他太优秀了,路漫漫.......

7.编程实现

第四讲

1.验证SO(3),SE(3)和Sim(3)关于乘法成群

2.验证(R^3,R,X)构成李代数

3.验证so(3)和se(3)(李代数)满足李代数雅的性质,se(3)同so(3)证明相似。

4.验证性质(4.20)和(4.21)

5.直观的来讲,反对称矩阵p和Rp相似,相似表示的是不同基下相同的变换,此式表达的是在以R为基的(Rp)^变换与原变换p^相同,公式推导在这里。外文有给了一种简单的推导。这个性质将在图优化用到。

6.这里有链接

7.希望有伙伴可以帮我检验一下是否正确。

SO(3)右扰动:

SE(3)右扰动:

8.参考CMake实践,或搜索相关关键字

第五讲

1.笔记本摄像头的标定

// 获取相机图像代码
    cv::VideoCapture cap(0);    // change to 1 if you want to use USB camera.

2.相机内参的物理意义:一点从相机坐标系到像素坐标系上的坐标变换。

fx,fy变为原来的两倍。

3.鱼眼相机的标定,区别体现在畸变系数。全景相机的标定,图像变形非常大。

4.全局快门相机和卷帘快门相机的异同。一般情况下使用卷帘快门,拍摄高速运动场景选择全局快门。

5.Kinerct相机标定

6.遍历图像方法

7.《OoenCV3编程入门》。

第六讲

1.系数矩阵超定时,求最小二乘法

2.参考这两篇文章A,B;常用的优化库:liblbfgs; NLopt...

最速下降法,牛顿法:优:直观方便,求解增量时只需解线性方程即可。

最速下降法:缺:过于贪心,容易走出锯齿路线,反而增加迭代次数。

牛顿法:缺:需要计算目标函数的海塞矩阵,在问题规模较大时非常困难。

高斯牛顿法:优:用J^TJ作为牛顿法H矩阵的近似。

      缺:实际中该近似只有半正定性。

列文伯格-马夸尔特法:优:一定程度上避免系数矩阵的非奇异和病态问题。

          缺:收敛速度较慢。

3.and B(为什么不正定),几何含义(MIT线代)解不稳定 这里不太清楚,下去补相关知识。

4.DogLeg优化方法:相关材料

5.Ceres-tutorial

6.g2o回来再看

7.代码注释版

第七讲

1.斑点和角点是局部特征中比较流行的两种。

斑点是与周围区域有颜色和灰度上的差别:最广泛的是LOG和DOH。

角点是两条边的交点:常用Harris和FAST角点检测方法。

描述子有浮点型和二进制字符串特征描述子。

常用的特征提取和匹配算法有SIFT,SURF和ORB算法。

SIFT:使用斑点检测方法和浮点型特征描述子,在建立高斯差分空间金字塔的基础上提取初具有尺度不变性的特征点,然后对特征点邻域内的点的梯度方向进行直方图统计。特征点的主方向就是直方图中比重最大的方向,必要时可选一个辅方向。SIFT特征集旋转不变性,尺度不变性,对图像变形和光照鲁棒鲁等优点于一身,不足之处是计算量大,计算速度慢,需要GPU加速才可满足实时性需求。

SURF:使用基于DoH的斑点特征检测方法,在特征点的描述上,SURF算法通过积分图,利用两个方向上的Harr小波模型进行梯度计算,然后对邻域内点的梯度方向以扇形的方式进行统计,得到特征点的主方向。其算法速度快且稳定性好。

2.OpenCV调用特征点

3.用熵来度量局部信息量大小,将图像分为若干网格,计算每个网格图像的熵,在熵较大的区域内提取特征点。若局部依旧集中可再次划分网格,在没有特征的网格中,强行提取一个兴趣值最大的特征点。

4.FLANN算法基于K均值树或KD_TREE搜索操作所实现的,可以根据数据集的分布特点,对映射精度和空间资源消耗的要求来推荐索引类型和检索参数,在高维空间最近邻查找不受局部敏感哈希影响。

加速匹配的方法:预排序图像检索.....

 

第讲

第五讲

第五讲

第五讲

第五讲

猜你喜欢

转载自blog.csdn.net/jiahao62/article/details/80655542