视觉里程计
主要目标:
- 理解图像特征点的意义,掌握单幅图像提取特征点及多幅图像中匹配特征点的方法
- 理解对极几何原理,利用对极约束,恢复图像之间的camera位姿
- 理解PnP问题,利用已知三维结构与图像对应关系,求解camera位姿
- 理解ICP问题,利用点云匹配关系,求解camera位姿
- 理解三角化获得二维图像上对应点的三维结构
图像特征性质:多图可重复、可区别、高效率、本地性
对极几何:从两张RGB图的特征匹配中求解本质矩阵,从而推出R,t.由8组特征匹配对SVD求解有4个可能解,幸运地只有一个解均在两个相机的光轴正向。但因缺乏深度尺度,所以t为单位1.
不稳定的问题:1.初始化纯旋转t为0,三角化R不稳定; 2.多于8个特征匹配点可用最小二乘或者RANSAC方法求E,F,H;
三角测量:将两个二维点对以及之间的位姿变换输入opencv的triangulatePoints中,得到点对的三维空间坐标;由于三角测量由平移产生,引出核心矛盾:平移小,则像素有较大深度不确定性;平移大,则图像外观变化大,特征匹配困难。
PnP:载入两张RGB图及其中一张对齐的Depth图,使用opencv的solvePnP解三维点对及二维点对的外参位姿变化R,t;
Bundle Adjustment:用于最小化重投影误差,将观测到的三维空间点与当前估计位姿投影位置得到的误差。考虑匹配特征点上的最优化重投影。
ICP方法:载入两个位姿状态的RGBD图,图像匹配后获得匹配好的3D点对,直接采用线性代数的求解(SVD)及BA优化获得最佳外参位姿即可。
课后习题
1.图像特征点原理及区别
Harris角点:基于图像灰度的一阶导数滤波检测,主要依赖与移动方向窗口内图像块的相似性。
SIFT/SURF:1.构建高斯差分金字塔 2.准确提取关键点 3.结合邻域构建描述子
2.opencv接口,SIFT::create(nfeatures, nOctavelLayers, constrastThreshold, edgeThreshold, sigma);
特征数量,金字塔最小层数,特征过滤阈值,边缘过滤阈值,高斯层级。
默认参数下,1000个SIFT特征点用时0.15s;
3.如何让特征点分布更均匀:goodFeatureToTrack(GFTT)方法
4.特征匹配方法有哪些?
FLANN快速最近邻搜索包,大数据下比BFMatcher暴力搜索要佳。FLANN主要三种算法:KD tree, k-means tree, hiearachy tree;
5.其他PNP方法:EPNP精度较高,复杂度为O(N).DLT更快,精度下降。
6.G2O可把两图的空间点都加进来一起优化
7.图像误匹配影响整体优化效果,可以通过鲁棒核函数降低影响程度,同时引入RANSAC.
视觉里程计2
本章目标:
- 理解光流法特征点跟踪
- 理解直接法估计相机位姿
- 使用G2O进行直接法计算