SLAM学习基础(一)——《图像局部不变性特征与描述》、《计算机视觉中的多视图几何》、《opencv3编程入门》读后感

(1)《图像局部不变性特征与描述》_淘宝

粗通《图像局部不变性特征与描述》这本书以后,我觉得所谓局部不变性,就是指在图像中提取的特征在光照、旋转、仿射、尺度发生变化时,仍然能被精确定位,进而被用来作为描述一个物体与另一个物体或者环境的独立特征。

比如说harris角点检测,仅仅是提供了一种确定特征位置的方法,实际上,对特征位置的确定,学名是特征检测。SUSAN是一种基于二值化的角点检测方法。不同的检测原理,但也只能用于定位。

而现在最为有名的是SIFT(效果好)、SURF(速度快)这两类斑点检测算法。在本书的第六章介绍了特征点的描述方法,当然SIFT和SURF的描述方法是重点,对特征检测获得的位置附近像素的特征进行描述,学名是特征描述。是进行特征匹配的基础。

如果我们想要完成三维重建任务,则需要进行每每两张图之间的特征匹配。换言之,就是不同图像上相同物体上相同特征位置的对应关系确定。根据确定的对应关系可以用于《计算机视觉中的多视图几何》中的模型估计:F、E、R、t。

特征匹配最常用的是FLANN(最近邻算法)。

(2)《计算机视觉中的多视图几何》_淘宝

在看这本书之前,建议先看一下《由2维影像建立3维模型》这本书,书里有些写的比较奇怪的东西,可能我认识有限,哈哈。但是我们能对三维重建(SFM)这个问题有初步的感知认识。

第0篇:
对于1至4章。我觉得第三章是重点,当然一二章跳不过去,因为我们要理解2D和3D空间中存在的射影变换形式,以及即使拍摄的图像发生仿射、相似、欧式变换,在2D和3D空间中仍然有一些点、曲线、曲面是保持不变的。对他们在图像中位置的辨识加粗样式,又利于我们恢复对事物本身的认识。

比如说第三章,就是利用辨识出的对应点,恢复两张图像之间的射影变换矩阵P,当然其中涉及到了经典的DLT和鲁棒估计算法RANSAC,并且以及提出针对代价函数利用Levenberg-Marquardt算法进行非线性优化。
第1篇:
第5章,介绍了相机模型。个人感觉使用一般的仿射相机就能满足一般的任务要求。

第6章,本质上是利用已知的3D空间对应关系,对与相机参数矩阵K相关的射影矩阵P进行估计(原理与第3章相似)。

第7章,7.4强调了摄像机中心的重要性,其位置变化是图像产生视差变化,进行实现三维重建的前提。换言之,仅仅发生摄像机中心的旋转不能实现三维重建,这个动动脑子就能想出来。另外还介绍了两种比较经典的、不同于第6章P矩阵的相机参数矩阵K确定方法。使用消影点和消影线和使用绝对二次曲线对摄像机进行模型估计,使用绝对二次曲线在18章自标定中会使用。

(3)《opencv3编程入门》_毛星云

这是我接触的第一个开源程序库,所以很多东西都是边摸索边搞的。

《opencv3编程入门》这本书,是基于vs2010写的,但是由于我后期,准备在Linux-ubuntu下,完成三维重建工程搭建,因此,或许调用头文件和配置链接库的方式可能有所不同。

第3第至5章很重要。第3章:图像存取;第4章:基于C++的opencv库的类Mat以及其他常见的类Point、Size、Scalar等等;第5章:如何访问图像像素及一些基本操作,作为一个菜鸟,当时好像在感兴趣区域上纠结了一下下。

当然,针对具体任务,我直接上手了10和11章。其中11章需要使用opencv2.4.9,其实配置方法类似,就之前按vs2017少了组件Windows 8.1 SDK 和 UCRT SDK,出了点小问题。(其实,我到2018年8月1日,对windows下,进行应用开发,vs需要安装什么组件仍然不是很清楚。。。,以后搞明白吧)

另外,如果想要在vs2017下运行opencv2.4.9,需要安装vs2013的平台工具集,网上有教程。

注:有些代码虽然在vs2017下能跑,但是到了SURF和SIFT代码验证时,vs2017会报错,呵呵!

通过这本书的学习,可能最大的收获是对C++类的概念有了一个更为明晰的感知,环境如何进行配置,以及初步了解了库这个东西该如何调用。

但是,或许Linux下又是另一个操作套路了,对于如何在linux下使用o pencv和非线性优化库ceres(或许这个库不应该在这里出现,哈哈哈),例如环境配置问题,需要参考《视觉SLAM十四讲》了。

如何,在windows和Linux下使用Cmake,对开源库进行重新编译和然后对修改代码进行调用,是我当前遇到的小问题,毕竟非计算机专业,,,
不过,慢慢来,有志者,事竟成。

补充1:windows下,使用cmake对opencv2.4.9进行修改和调用的方法:

补充2:6至9章,imgproc组件学习体会:

补充3:windows下,进行应用开发,vs需要安装什么组件

你可能感兴趣的:(SLAM学习基础)