我目前正在尝试使用眼镜Vuzix star 1200 XLD和c ++构建桌面AR应用程序。 我已经对AR中使用的算法和着名的SDK进行了大量的研究,我发现visual SLAM是一种常用的算法。
所以,如果您使用它,我想得到一些反馈,我对任何有关用于跟踪和匹配的AR算法的建议持开放态度。
非常感谢!
答案 0 :(得分:6)
一年后......
SLAM不是算法,它是一种方法,是实现目标的分步。每个步骤都允许您选择许多合适的算法之一,每个算法都具有不同的特性,如性能,准确度等。
SLAM可以是视觉单眼SLAM(monoSLAM),SLAM的一个专门分支,与视觉测距有关。
您可以从特征检测器和描述符提取器算法开始,如FAST&简要。更多的算法可以做到这两点,比如ORB和AKAZE。
因此,您从图像中提取并描绘了一个点云。
然后你匹配两个(比如说连续的)帧的点,用匹配器,比如蛮力汉明距离匹配器,得到类似速度矢量的东西。
https://www.youtube.com/watch?v=G8XAHLJR8A4
然后应用像PnP求解器这样的算法来获得解释相对相机运动的旋转变换矩阵。现在,每个要素都有一个3D位置矢量。
您可以从检测到的特征中选择地标,开始构建一个3d点云基础地图,每个地图都有其错误分布。然后你应用一些捆绑调整,如sba。
这是低水平的起点。你想要建立一个有纹理的3D世界,你想要准确地关闭路径,你想要对运动部件(如人,车辆)的坚固性......
你梦寐以求的,在这里等待自己发展:)