机器之心专栏
来源:计算机视觉life
本文详细介绍了SLAM的定义、工作流程、算法以及相关技术在自动驾驶高精度定位、机器人自主导航等前沿热门领域的应用。此外,本文还为读者提供了SLAM学习知识树和更多扩展阅读材料。
什么是 SLAM?
SLAM 是 Simultaneous Localization And Mapping 的 缩写,一般翻译为:同时定位与建图、同时定位与地图构建。
SLAM 的典型过程是这样的:当某种移动设备(如机器人 / 无人机、手机、汽车等)从一个未知环境里的未知地点出发,在运动过程中通过传感器(如激光雷达、摄像头等)观测定位自身在三维空间中的位置和姿态,再根据自身位置进行增量式的三维地图构建,从而达到同时定位和地图构建的目的。
传统的视觉算法主要是对针对二维图像的处理,借助深度学习在分类识别方面取得了超越人眼精度的巨大成就,就像人眼是通过双眼立体视觉来感知三维世界一样,智能移动终端(比如智能手机、无人汽车、无人机、智能机器人)需要能够像人类一样利用 SLAM 算法来快速精确的感知、理解三维空间。
最近几年,以双目相机、结构光 / TOF 相机、激光雷达为代表的三维传感器硬件迭代更新迅猛,国内外已经形成了成熟的上下游产业链。三维视觉传感器也逐渐走入普通人的生活,在智能手机、智能眼镜等设备上应用越来越多,以手机为例,苹果、华为、小米、OPPO、VIVO 等手机大厂都在积极推动结构光 / TOF 相机在手机上的普及。
SLAM 技术为核心的三维视觉在学术界也是一个热门方向,从最近几年计算机视觉相关的顶级会议 CVPR, ICCV, ECCV,IROS, ICRA 录用论文来看,视觉定位、三维点云识别分割、单目深度估计、无人驾驶高精度导航、语义 SLAM 等相关论文占比越来越高。
因此 SLAM 技术在最近几年发展迅猛,广泛应用于增强现实感知、自动驾驶高精度定位、机器人自主导航、无人机智能飞行等前沿热门领域。
关于 SLAM 的入门介绍及应用案例解析,可以看笔者在一次线下分享中,做的一个入门视频介绍,时长约 55 分钟。
SLAM 学习知识树
SLAM 是涵盖图像处理、多视角视觉几何、机器人学等综合性非常强的交叉学科。
学习 SLAM 涉及线性代数矩阵运算、李群李代数求导、三维空间刚体变换、相机成像模型、特征提取匹配、多视角几何、非线性优化、回环检测、集束调整、三维重建等专业知识。SLAM 是强实践学科,需要具有一定的 C 编程能力,掌握 Linux 操作系统、Eigen, Sophus, OpenCV, Dbow, g2o, ceres 等第三方库,能够快速定位问题,解决 bug。
我们总结了 SLAM 学习资源树,包括需要掌握的知识点、主要研究方向、知名研究实验室、知名会议期刊等信息,(点击看大图)
国内 SLAM 领域企业涉及到智能驾驶、增强现实、地面移动机器人、无人机、相机设备厂商等领域。以下是笔者总结的国内目前 SLAM 领域优秀企业列表(点开查看大图)