对于人类来说眼睛是获取外界信息的主要来源。通过眼睛我们不仅可以看到五彩缤纷的世界,还可以让我们对事物产生联系判断,规避自然界中相关障碍物。也正是通过眼睛接受到的信息传递给大脑,让我们在这个世界上来去自如。其实对于机器来说也是同理,有了眼睛就能规避很多障碍,穿行于特定空间。比如视觉SLAM用于机器上就相当于人类的眼睛,它可以从环境中获取海量的、富于冗余的纹理信息,拥有超强的场景辨识能力。
现在我们就来聊一聊,相当于人类眼睛的视觉SLAM到底是什么?
视觉SLAM主要是基于相机来完成环境的感知工作,相对而言,相机成本较低,容易放到产品硬件上,且图像信息丰富,因此视觉SLAM也备受关注。
目前,视觉SLAM可分为单目、双目(多目)、RGBD这三类,另还有鱼眼、全景等特殊相机,但目前在研究和产品中还属于少数,此外,结合惯性测量器件(Inertial Measurement Unit,IMU)的视觉SLAM也是现在研究热点之一。从实现难度上来说,大致将这三类方法排序为:单目视觉>双目视觉>RGBD。
单目相机SLAM简称MonoSLAM,仅用一支摄像头就能完成SLAM。最大的优点是传感器简单且成本低廉,但同时也有个大问题,就是不能确切的得到深度。
一方面是由于绝对深度未知,单目SLAM不能得到机器人运动轨迹及地图的真实大小,如果把轨迹和房间同时放大两倍,单目看到的图像是一样的,因此,单目SLAM只能估计一个相对深度。另一方面,单目相机无法依靠一张图像获得图像中物体离自己的相对距离。为了估计这个相对深度,单目SLAM要靠运动中的三角测量,来求解相机运动并估计像素的空间位置。即是说,它的轨迹和地图,只有在相机运动之后才能收敛,如果相机不进行运动时,就无法得知像素的位置。同时,相机运动还不能是纯粹的旋转,这就给单目SLAM的应用带来了一些麻烦。
而双目相机与单目不同的是,立体视觉既可以在运动时估计深度,亦可在静止时估计,不仅消除了单目视觉的许多麻烦,而且相关算法,运用功能丝毫未减。
RGBD相机是2010年左右开始兴起的一种相机,它最大的特点是可以通过红外结构光或TOF原理,直接测出图像中各像素离相机的距离。
神秘的视觉SLAM是怎么工作的呢?
大多数视觉SLAM系统的工作方式是通过连续的相机帧,跟踪设置关键点,以三角算法定位其3D位置,同时使用此信息来逼近推测相机自己的姿态。简单来说,这些系统的目标是绘制与自身位置相关的环境地图。这个地图可以用于机器人、无人机等系统在该环境中导航作用。与其他形式的SLAM技术不同,只需一个3D视觉摄像头,就可以做到这一点。
通过跟踪摄像头视频帧中足够数量的关键点,可以快速了解传感器的方向和周围物理环境的结构。所有视觉SLAM系统都在不断的工作,以使重新投影误差(Reprojection Error)或投影点与实际点之间的差异最小化,通常是通过一种称为Bundle Adjustment(BA)的算法解决方案。视觉SLAM系统需要实时操作,这涉及到大量的运算,因此位置数据和映射数据经常分别进行Bundle Adjustment,但同时进行,便于在最终合并之前加快处理速度。
明白了它的工作原理,那视觉SLAM到底有哪些优势呢?
1、视觉SLAM的优点是它所利用的丰富纹理信息。例如两块尺寸相同内容却不同的广告牌,基于点云的激光SLAM算法无法区别他们,而视觉SLAM则可以轻易分辨。这带来了重定位、场景分类上无可比拟的巨大优势。
2、视觉信息可以较为容易的被用来跟踪和预测场景中的动态目标,如行人、车辆等,对于在复杂动态场景中的应用这是至关重要的。
3、视觉的投影模型理论上可以让无限远处的物体都进入视觉画面中,在合理的配置下(如长基线的双目相机)可以进行很大尺度场景的定位与地图构建。
视觉SLAM这么厉害,那它目前在科技领域的发展状况如何?
追溯历史,对于定位、定向等需求人们其实在千年前就有了,最早时期,古人提出了夜观天象,基于遥远恒星的方位推断自身所处的位置,进而演变出一门博大精深的学科“牵星术”,用牵星板测量星星实现纬度估计。直到1964年,美国建立了全球定位系统GPS,利用RTK的实时相位差分技术,甚至能实现厘米的定位精度,基本上解决了室外的定位问题。但针对室内定位就较为复杂,为了实现室内的定位,当时涌现出了一大批技术,而SLAM技术就在那时脱颖而出,很多专家学者也针对SLAM技术不断提出新的算法与研究。
2007年A.J.Davison提出的MonoSLAM是第一个实时的单目视觉SLAM系统。
特点:扩展卡尔曼滤波为后端,追踪前端非常稀疏的特征点。
意义:之前的SLAM系统基本不能在线运行,只能靠机器人携带相机采集数据,再离线的定位和建图。现在看来,应用场景窄,已经停止对其开发。
同年推出PTAM (单目 -非线性优化)实现了跟踪与建图过程的并行化;第一个使用非线性优化,而不是使用传统的滤波器作为后端的方案。引入了关键帧机制,不必精细的处理每幅图像,而是把几个关键图像串起来,然后优化其轨迹和地图,在PTAM之后,视觉SLAM转向以非线性优化为主导的后端。
PTAM同时是一个增强现实软件,演示了炫酷的AR效果。根据PTAM估计的相机位姿,我们可以在一个虚拟的平面上放置虚拟物体,看起来就跟真实的场景中一样。
2015年推出ORB-SLAM(单目为主-特征点-图优化)是现代SLAM系统中做得非常完善的系统之一。
为什么说ORB-SLAM是比较完善的系统之一?
(1)支持单目、双目、RGB-D三种模式;
(2)整个系统围绕ORB特征进行计算,包括视觉里程计与回环检测ORB字典。ORB特征不像SURF或SIFT费时,可在CPU上实时计算;相比Harris等简单角点特征,又具有良好的旋转和缩放不变性;ORB提供描述子,使在大范围运动时能够回环检测和重定位。
(3)ORB的回环检测是它的亮点,优秀的回环检测算法保证了ORB-SLAM有效的防止累计误差,并且在丢失后还能迅速找回。为此,ORB-SLAM在运行前需要加载一个很大的ORB字典文件。
(4)ORB创新使用了3个线程完成了SLAM:实时跟踪特征点的Tracking线程,局部Bundle Adjustment的优化线程(俗称小图),全局Pose Graph的回环检测与线性优化(俗称大图。)
Tracking线程:对每幅新来的图像提取ORB特征点,并与最近的关键帧进行比较,计算特征点的位置并粗略的估计相机位姿。
小图线程:求解一个Bundle Adjustment问题,包括局部空间内的特征点与相机位姿,负责求解更精细的相机位姿与特征点空间位置。前面的这两个线程完成了比较好的视觉里程计。
大图线程:对全局的地图与关键帧进行回环检测,消除累积误差。由于全局中地图点太多了,所以优化不包括地图点,只有相机位姿组成的位姿图。
SLAM技术目前应用于哪些行业?
SLAM技术目前主要用于解决机器人、无人机等在未知环境运动时的定位和地图构建问题。先已入侵了多个行业,包括机器人、无人驾驶、无人机、AR/VR以及AGV等多领域。
在机器人定位导航领域,SLAM可以辅助机器人执行路径规划、自主探索、导航等任务。国内的科沃斯、塔米以及新晋品牌岚豹都采用了SLAM结合激光雷达或者摄像头的方法,让扫地机高效绘制室内地图,智能分析和规划扫地环境,从而成功让自己步入了智能导航的阵列。
在无人驾驶领域,可以使用SLAM提供视觉里程计功能,然后跟其他的定位方式融合。从而满足无人驾驶精准定位的需求。例如,应用了基于激光雷达技术Google无人驾驶车以及牛津大学MobileRoboticsGroup11年改装的无人驾驶汽车野猫(Wildcat)均已成功路测。
在无人机领域,可以使用SLAM构建局部地图,辅助无人机进行自主避障、路径规划。曾经刷爆美国朋友圈的Hovercamera无人机,就应用到了SLAM技术
随着SLAM技术重要性的凸显,国内越来越多的企业纷纷投入SLAM技术的研发中,在这些企业当中除了一些移动机器人厂商作为自用研发,也不乏一些有科研实力的企业,专门针对无人机教学研究这块开发出基于视觉SLAM的教学应用平台。平台不仅集无人机、无人车、双目视觉、机载AI视觉处理板卡于一体,形成全套的无人平台控制、通讯链路、视觉图像采集、图像识别、三维重建、定位解算等软件算法解决方案。而且具备立体视觉、运动估计、稠密重建、SLAM导航、路径规划、自主避碍等功能。还可提供全套的学科教学课程以及示例算法等,帮助老师快速展开相关课程设计,进行实际教学应用阶段。基于视觉开发的教研平台,硬件完善、功能齐全、开发环境完整、全系统全功能的开发测试环境,帮助各科研团队更专注于slam导航避障算法研究。后续所开发出的这些教育应用平台也将对上述文章中提到的ORB-SLAM,和目前比较热门的VINS,ROVIO等SLAM算法进行试验,届时平台将提供以上SLAM框架的实例,降低学校教师或学生学习SLAM的门槛。
SLAM技术将赋予为机器人、无人机和智能体前所未有的行动能力。作为当前SLAM框架的主要类型,视觉SLAM必将在相互竞争和融合中发展,必将带来无人技术和人工智能技术的真正革命。
免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。