一年后......
SLAM不是算法,它是一种方法,分步实现目标 . 每个步骤都允许您选择许多合适的算法之一,每个算法都具有不同的特性,如性能,准确度等 .
SLAM可以是视觉单筒眼SLAM(monoSLAM),SLAM的一个专门分支,与视觉测距有关 .
您可以从特征检测器和描述符提取器算法开始,如FAST&BRIEF . 更多的算法做了两件事,比如ORB和AKAZE .
因此,您从帧中提取并描绘图像中的点 Cloud .
然后你匹配两个(比如说连续的)帧的点,用匹配器,像蛮力汉明距离匹配器,获得类似速度矢量的东西 .
然后应用像PnP求解器这样的算法来获得解释相对相机运动的旋转变换矩阵 . 现在,您为每个要素都有一个3D位置矢量 .
您可以从检测到的特征中选择地标,开始构建3d点 Cloud 基础 Map ,每个 Map 都有其错误分布 . 然后你应用一些像sba一样的捆绑调整 .
这是低水平的起点 . 你需要 Build 一个带有纹理的3D世界,你需要准确地关闭路径,你需要对运动部件(如peolple,车辆)的稳健性......
所有你梦寐以求的,在这里等着你自己开发:)