欢迎来到加倍考研网! 北京 上海 广州 深圳 天津
微信二维码
在线客服 40004-98986
推荐适合你的在职研究生专业及院校
SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势禁运品

SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势

机器之心专栏作者:阅面科技赵季SLAM(Simultaneous Localization and Mapping) 是业界公认视觉领域空间定位技术的前沿方向,中文译名为「同步定位与地图构建」,它主要用于解决机器人在未知环境运动时的定位和地图构建问题。本次阅面科技资深研究员赵季也将从 SLAM 方向着手,为大家展现更深层次的技术干货。赵季:阅面科技资深研究员。2012 年获华中科技大学博士学位,2012 年至 2014 年在 CMU 机器人研究所做博士后。曾在三星研究院从事深度相机、SLAM、人机交互方面的研究。目前专注于空间感知技术的研发。目前科技发展速度飞快,想让用户在 AR/VR、机器人、无人机、无人驾驶领域体验加强,还是需要更多前沿技术做支持,SLAM 就是其中之一。实际上,有人就曾打比方,若是手机离开了 WIFI 和数据网络,就像无人车和机器人,离开了 SLAM 一样。SLAM 主要解决的是相机在空间中的定位、以及创建环境的地图。在当前比较热门的一些创业方向中,都可以看到它的身影:在 VR/AR 方面,根据 SLAM 得到地图和当前视角对叠加虚拟物体做相应渲染,这样做可以使得叠加的虚拟物体看起来比较真实,没有违和感。在无人机领域,可以使用 SLAM 构建局部地图,辅助无人机进行自主避障、规划路径。在无人驾驶方面,可以使用 SLAM 技术提供视觉里程计功能,然后跟其他的定位方式融合。机器人定位导航方面,SLAM 可以用于生成环境的地图。基于这个地图,机器人执行路径规划、自主探索、导航等任务。SLAM 技术的发展距今已有 30 余年的历史,涉及的技术领域众多。由于本身包含许多步骤,每一个步骤均可以使用不同算法实现,SLAM 技术也是机器人和计算机视觉领域的热门研究方向。SLAM 技术大解析SLAM 的英文全程是 Simultaneous Localization and Mapping,中文称作「同时定位与地图创建」。SLAM 试图解决这样的问题:一个机器人在未知的环境中运动,如何通过对环境的观测确定自身的运动轨迹,同时构建出环境的地图。SLAM 技术正是为了实现这个目标涉及到的诸多技术的总和。SLAM 技术涵盖的范围非常广,按照不同的传感器、应用场景、核心算法,SLAM 有很多种分类方法。按照传感器的不同,可以分为基于激光雷达的 2D/3D SLAM、基于深度相机的 RGBD SLAM、基于视觉传感器的 visual SLAM(以下简称 vSLAM)、基于视觉传感器和惯性单元的 visual inertial odometry(以下简称 VIO)。基于激光雷达的 2D SLAM 相对成熟,早在 2005 年,Sebastian Thrun 等人的经典著作《概率机器人学》将 2D SLAM 研究和总结得非常透彻,基本确定了激光雷达 SLAM 的框架。目前常用的 Grid Mapping 方法也已经有 10 余年的历史。2016 年,Google 开源了激光雷达 SLAM 程序 Cartographer,可以融合 IMU 信息,统一处理 2D 与 3D SLAM 。目前 2D SLAM 已经成功地应用于扫地机器人中。2006 年使用激光雷达生成的实验室地图基于深度相机的 RGBD SLAM 过去几年也发展迅速。自微软的 Kinect 推出以来,掀起了一波 RGBD SLAM 的研究热潮,短短几年时间内相继出现了几种重要算法,例如 KinectFusion、Kintinuous、Voxel Hashing、DynamicFusion 等。微软的 Hololens 应该集成了 RGBD SLAM,在深度传感器可以工作的场合,它可以达到非常好的效果。视觉传感器包括单目相机、双目相机、鱼眼相机等。由于视觉传感器价格便宜,在室内室外均可以使用,因此 vSLAM 是研究的一大热点。早期的 vSLAM 如 monoSLAM 更多的是延续机器人领域的滤波方法。现在使用更多的是计算机视觉领域的优化方法,具体来说,是运动恢复结构(structure-from-motion)中的光束法平差(bundle adjustment)。在 vSLAM 中,按照视觉特征的提取方式,又可以分为特征法、直接法。当前 vSLAM 的代表算法有 ORB-SLAM、SVO、DSO 等。视觉 SLAM视觉传感器对于无纹理的区域是没有办法工作的。惯性测量单元(IMU)通过内置的陀螺仪和加速度计可以测量角速度和加速度,进而推算相机的姿态,不过推算的姿态存在累计误差。视觉传感器和 IMU 存在很大的互补性,因此将二者测量信息进行融合的 VIO 也是一个研究热点。按照信息融合方式的不同,VIO 又可以分为基于滤波的方法、基于优化的方法。VIO 的代表算法有 EKF、MSCKF、preintegration、OKVIS 等。Google 的 Tango 平板就实现了效果不错 VIO。总的来说,相比于基于激光雷达和基于深度相机的 SLAM,基于视觉传感器的 vSLAM 和 VIO 还不够成熟,操作比较难,通常需要融合其他传感器或者在一些受控的环境中使用。Visual SLAM 为什么比较难?我们通过分析传感器的测量信息做个定性的分析。激光雷达或者 RGBD 相机可以直接获取环境的点云。对于点云中的一个点,它告诉我们在某个方位和距离上存在一个障碍点。而视觉传感器获取的是灰度图像或者彩色图像。对于图像中的一个像素,它只能告诉我们在某个方位有障碍点、障碍点周围的表观(local appearance)如何,但它不能告诉我们这个障碍点的距离。要想计算该点的距离,需要把相机挪动一个位置再对它观察一次,然后按照三角测量的原理进行推算。原理上很清晰,实际做起来并不简单。首先需要在两幅图像中寻找点的对应,这涉及到特征点的提取和匹配、或者准稠密点之间的匹配。计算机视觉发展到今天,其实还不存在性能和速度上很好满足 vSLAM 的特征提取和匹配算法。常见的特征点提取算法,性能上大致可以认为 SIFT>SURF>ORB>FAST,效率上可以认为 FAST>ORB>SURF>SIFT(大于号左边代表更优。性能主要包括匹配精度、特征点的数量和空间分布等)。为了在性能和效率上取得折中,通常采用 FAST 或者 ORB,只能舍弃性能更好的 SIFT、SURF 等。其次,匹配点的图像坐标与空间坐标之间的关系是非线性的,例如 2D-2D 点的对应满足对极几何、2D-3D 点的对应满足 PnP 约束。这些匹配数量较多,前后两帧图像中一般有几十至数百的匹配。这些匹配会引入众多约束关系,使得待估计变量的关系错综复杂。为了得到一个较优的估计,通常需要建立优化问题,整体优化多个变量。说起来这无非是一个非线性最小二乘优化问题,但实现起来并不简单,因为存在非线性约束、约束数量很多、存在误差和野值点,并且要将计算时间控制在允许范围。目前广泛采用关键帧技术,并且通过很多方法来控制问题规模、保持问题的稀疏性等。非线性优化问题的形象图示。圆饼代表待优化的变量(相机姿态、特征点的空间坐标),杆子代表约束(对线几何、PnP 等)。图片来源自 https://www.pinterest.com/81chevycowper/70s-80s-toys/前面分析了 vSLAM 的两个困难。前者导致了前端的特征跟踪不易,后者导致了后端的优化不易。想做出一个高效率、鲁棒的 vSLAM 系统还是一个非常有挑战的任务。效率方面,SLAM 必须是实时运行的。如果不能做到实时,就不能称作 SLAM。不考虑实时性,采用从运动恢复结构(structure-from-motion)效果会更好。鲁棒性方面,一个脆弱的系统会导致用户体验很差,功能有限。使用 structure-from-motion 对玲珑塔进行三维重建vSLAM 的核心算法预备阶段,包括传感器的选型和各种标定。Visual SLAM 自 PTAM 算法以来,框架基本趋于固定。通常包括 3 个线程,前端 tracking 线程、后端 mapping 优化线程、闭环检测(loop closure)线程。前端 tracking 线程主要涉及到:特征的提取、特征的匹配;多视图几何的知识,包括对极几何、PnP、刚体运动、李代数等。后端优化线程涉及到非线性最小二乘优化,属于数值优化的内容。闭环检测线程涉及到地点识别,本质上是图像检索问题。对于 VIO,还涉及到滤波算法、状态估计等内容。将 SLAM 算法拆解了看,用到的技术是偏传统的。与当前大热的深度学习「黑箱模型」不同,SLAM 的各个环节基本都是白箱,能够解释得非常清楚。但 SLAM 算法并不是上述各种算法的简单叠加,而是一个系统工程,里面有很多 tradeoff。如果仅仅跑跑开源程序,没有什么核心竞争力。不论是做产品还是做学术研究,都应当熟悉各种技术,才能有所创造。SLAM 的未来发展趋势VSLAM 的发展感觉是中规中矩,各个环节在前人的基础上一点点优化,同时不断吸收其他方向的最新成果。短期内肯定会在现有框架下不停地改进。至于长远一些的趋势,IEEE TRO 2016 有一篇综述文章 Past, present, and future of SLAM: towards the robust-perception age。几位有声望的学者在文中对 SLAM 的趋势做了非常好的总结。这里仅就自己感兴趣的点提一些个人感想。新型传感器的出现会不停地为 SLAM 注入活力。如果我们能够直接获取高质量的原始信息,SLAM 的运算压力就可以减轻很多。举例来说,近几年在 SLAM 中逐渐有使用低功耗、高帧率的 event camera(又称 dynamic vision system, DVS)。如果这类传感器的成本能降下来,会给 SLAM 的技术格局带来许多变化。自从深度学习在诸多领域所向披靡,不少研究者试图用深度学习中 end-to-end 的思想重构 SLAM 的流程。目前有些工作试图把 SLAM 的某些环节用深度学习代替。不过这些方法没有体现出压倒性优势,传统的几何方法依然是主流。在深度学习的热潮之下,SLAM 涉及的各个环节应该会逐渐吸收深度学习的成果,精度和鲁棒性也会因此提升。也许将来 SLAM 的某些环节会整体被深度学习取代,形成一个新的框架。SLAM 原本只关注环境的几何信息,未来跟语义信息应该有更多的结合。借助于深度学习技术,当前的物体检测、语义分割的技术发展很快,可以从图像中可以获得丰富的语义信息。这些语义信息是可以辅助推断几何信息的,例如已知物体的尺寸就是一个重要的几何线索。

张煐

对比激光SLAM与视觉SLAM:谁会成为未来主流趋势?

本文由机器之心编辑,“机器之心”专注生产人工智能专业性内容,适合开发者和从业者阅读参考。点击右上角即刻关注。SLAM(同步定位与地图构建),是指运动物体根据传感器的信息,一边计算自身位置,一边构建环境地图的过程,解决机器人等在未知环境下运动时的定位与地图构建问题。目前,SLAM 的主要应用于机器人、无人机、无人驾驶、AR、VR 等领域。其用途包括传感器自身的定位,以及后续的路径规划、运动性能、场景理解。 由于传感器种类和安装方式的不同,SLAM 的实现方式和难度会有一定的差异。按传感器来分,SLAM 主要分为激光 SLAM 和 VSLAM 两大类。其中,激光 SLAM 比 VSLAM 起步早,在理论、技术和产品落地上都相对成熟。基于视觉的 SLAM 方案目前主要有两种实现路径,一种是基于 RGBD 的深度摄像机,比如 Kinect;还有一种就是基于单目、双目或者鱼眼摄像头的。VSLAM 目前尚处于进一步研发和应用场景拓展、产品逐渐落地阶段。激光 SLAM:早在 2005 年的时候,激光 SLAM 就已经被研究的比较透彻,框架也已初步确定。激光 SLAM,是目前最稳定、最主流的定位导航方法。激光 SLAM 地图构建VSLAM(基于视觉的定位与建图):随着计算机视觉的迅速发展,视觉 SLAM 因为信息量大,适用范围广等优点受到广泛关注。(1)基于深度摄像机的 Vslam,跟激光 SLAM 类似,通过收集到的点云数据,能直接计算障碍物距离;(2)基于单目、鱼眼相机的 VSLAM 方案,利用多帧图像来估计自身的位姿变化,再通过累计位姿变化来计算距离物体的距离,并进行定位与地图构建;视觉 SLAM 地图构建,图片来源:百度 AI一直以来,不管是产业界还是学术界,对激光 SLAM 和 VSLAM 到底谁更胜一筹,谁是未来的主流趋势这一问题,都有自己的看法和见解。下面就简单从几个方面对比了一下激光 SLAM 和 VSLAM。成本不管是 Sick,北洋,还是 Velodyne,价格从几万到几十万不等,成本相对来说比较高,但目前国内也有低成本激光雷达(RPLIDAR)解决方案。VSLAM 主要是通过摄像头来采集数据信息,跟激光雷达一对比,摄像头的成本显然要低很多。但激光雷达能更高精度的测出障碍点的角度和距离,方便定位导航。应用场景从应用场景来说,VSLAM 的应用场景要丰富很多。VSLAM 在室内外环境下均能开展工作,但是对光的依赖程度高,在暗处或者一些无纹理区域是无法进行工作的。而激光 SLAM 目前主要被应用在室内,用来进行地图构建和导航工作。地图精度激光 SLAM 在构建地图的时候,精度较高,思岚科技的 RPLIDAR 系列构建的地图精度可达到 2cm 左右;VSLAM,比如常见的,大家也用的非常多的深度摄像机 Kinect,(测距范围在 3-12m 之间),地图构建精度约 3cm;所以激光 SLAM 构建的地图精度一般来说比 VSLAM 高,且能直接用于定位导航。易用性激光 SLAM 和基于深度相机的 VSLAM 均是通过直接获取环境中的点云数据,根据生成的点云数据,测算哪里有障碍物以及障碍物的距离。但是基于单目、双目、鱼眼摄像机的 VSLAM 方案,则不能直接获得环境中的点云,而是形成灰色或彩色图像,需要通过不断移动自身的位置,通过提取、匹配特征点,利用三角测距的方法测算出障碍物的距离。安装方式雷达最先开始应用于军事行业,后来逐渐民用。被大家广泛知晓最先应该是从谷歌的无人车上所知道的。当时 Velodyne 雷达体积、重量都较大,应用到一些实际场景中显然不适合。比如无人机、AR、VR 这种,本身体积就很小,再搭载大体积的激光雷达的话,根本无法使用,也影响美感和性能。所以 VSLAM 的出现,利用摄像头测距,弥补了激光雷达的这一缺点,安装方式可以随着场景的不同实现多元化。其他除了上面几点之外,在探测范围、运算强度、实时数据生成、地图累计误差等方面,激光 SLAM 和视觉 SLAM 也会存在一定的差距。比如: 注:左为 Lidar SLAM,右为 VSLAM,数据来源:KITTI可以明显看出,对于同一个场景,VSLAM 在后半程中出现了偏差,这是因为累积误差所引起的,所以 VSLAM 要进行回环检验。激光 SLAM 是目前比较成熟的定位导航方案,视觉 SLAM 是未来研究的一个主流方向。所以,未来,多传感器的融合是一种必然的趋势。取长补短,优势结合,为市场打造出真正好用的、易用的 SLAM 方案。SLAMTEC—思岚科技努力在自己的领域里,把激光 SLAM 定位导航方案进一步优化、升级,结合市场上的优质技术,努力做到为市场提供好用的定位导航解决方案。

登山侠

入坑slam,一位博士小姐姐的科研和成长分享(读研+读博)

来源:公众号3D视觉工坊作者:Amber「3D视觉工坊」技术交流群已经成立,目前大约有12000人,方向主要涉及3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等。春去秋来,不知不觉已经在南京2年多了,这两年,经历了考研、硕士入学、硕转博、博士焦虑,到现在,内心已经平静。在这篇文章里,就想和大家分享一下我的经历,我的心路历程,或许你也在考研的过程中想要放弃过,或许你也在要不要读博士的选择中迷茫过,或许你也在博士入学不知前方路在哪里而焦虑过。没事,师姐在这里,这些,我都经历过,请你慢慢听我说。一、考研2017年是我过得最辛苦也是最快乐的一年,这一年,我决定考研。本科是一所上海的双非,在上海也不算差,我考研的原因很奇葩——为了在同学聚会中坐的靠C位一些。我高中是在所谓的菁华班上的,我们班的学生不是很团结,大家表面上和气融融,背地里勾心斗角,而这,表现在了毕业以后的高中同学聚会上。大一结束,高中同学组织聚会,我以为长时间的分别换来的应该是思念,哦,我错了,我还是太天真了。大家都分别凑成一团,而这每一团也很有意思:985的一起聊天,211的一起聊天,双非被迫在一起聊天。座次更有意思,C位是央财的,接着是华中科技大的,再往下是中国药科的。。。反正我坐门口(我们班没有二本的,全是一本)。总之,一个聚会就让我体会到了小时代的感觉,哦,原来这就是成年人的世界,神奇。后来这就成了我想考研的一个主要原因,我想坐C位。当然了,每个人的考研都是有原因的,我可能也不算很奇葩的那一个。总之,就开始了我的漫漫长路。现在回想起考研,除了记得自己很刻苦以外没有什么了,我觉得很开心,很充实。虽然也因为政治选择做不对哭过,英语作文不知道怎么写哭过,但是嘛,女孩子嘛,哭一哭,很正常,哈哈哈哈哈。如果有人想要详细听我的考研旅程,可以留言,我看心情分享一波~~~~~主要想说的是考研的心态。我在考研时,习惯用一个小本子记录我的心情,会给自己打气。我记得当时别人说了一句话,考研途中,大家都是抹黑前行,谁也不知道前方的路在哪里,走到哪里才是头,但只要你认准一个方向,继续前进,等你摘下眼罩的时候,你看到的就是光明。我也曾嫉妒过别人,别人学的少,还学得好。我只能安慰自己,人与人是不一样的,我除了换脑,也就只能接受自己这平庸的学习能力了。当然,偶尔看看不如自己的小伙伴,找找成就感,还是很开心的。考研复习时,请多告诉自己,尽人事,听天命。二、研究生入学研究生入学之后,我们实验室属于放养式管理,前半学期,我沉浸在换城市和考研结束的喜悦中,但后来我发现,同学们都开始学习了,于是,我也走上了14讲的道路。师姐其实不算一个很聪明的人,只能说一般聪明。我在入学时,是不知道web of science的,只知道中国知网。所以说,其实很多人都比我优秀。我们课题组每周有分享会,大家会说一下最近研究的内容,我刚入学去听,什么,what,这是啥?满脸全是问号,但我有一个很好的习惯,希望大家也能培养一下:记下你觉得陌生的名词或者知识点,课下自己补充。我们实验室有两个大方向:传统导航和视觉导航。传统导航做的人多,视觉人很少。我问老板方向,老板很亲切的告诉我,多看论文,你就有方向了。当年天真的我,以为老板说的对!于是,我就开始看论文, 那么,问题来了,看什么论文呢?知网上随便搜?但老板可不会手把手教你怎么看论文。于是,我请教了我的师兄们,他们豪气的甩给我几篇视觉和导航的论文。看到导航和视觉的论文以后,我开开心心选了视觉,为什么呢?我喜欢图像。视觉方向也有很多,在我粗略看了14讲以后,我又和老师促膝长谈了一波:老板,这个视觉方向分很多种,前端,后端…(此处省略5000字),老师,你觉得哪个方向好一些,您推荐一下。老师很亲切的告诉我,多看论文,你就有方向了。可是我已经不在天真了,于是我带着经典假笑,出了老板办公室,嗯,和老板交流,真开心。是的,你没看错,在一开始入学时,师姐也找不到人生的方向,考研是飞蛾扑火,你就朝着一个方向飞就对了,研究生我就变成了无头苍蝇,不知道往哪儿飞。以上,是想告诉大家,其实每个人都一样,刚入学都是没有方向,不知道前路在何方,看别人感觉比人都已经有了人生目标,准备攀登巅峰了,其实大家都一样。没有方向的我又一次抱起了14讲,试图从书中得到点启发。对于没有方向的阶段,我的第一条准则就是:先做好当下可以做的事。研一的我,看论文一头雾水,只能努力看懂基础知识,14讲的前8章我看了近4、5遍,慢慢的,我发现,组会我可以听懂了,师兄们分享的算法我在书上看到过相关知识。这件事给我树立了极大地信心。准则二:找一个检验阶段成果的方式,树立信心。此时,遇到了我的心得难关:要不要转博士。我们最早可以在研究生第二年转入博士,已经研一下学期的我,还没考虑好。我想读博士的原因很简单:我感觉博士师兄们对问题的理解要比硕士师兄更全面,更深刻一些,我想成为他们那样的人。不想读的原因是:不知道前方会是什么样子。可能很多人都会在继续读书和工作之中徘徊,不知道哪一条路会更适合自己。其实没有哪个人还未出发就已知道终点。我们大多数人都是普通人,没有显赫的家世,没有很出众的样貌,没有异于常人的高智商,不过好在我们不孤独,这个世界上有太多太多这样的人了,我们只是芸芸众生中的一粒尘埃。如果没有生活压力,没有很排斥读书,我还是推荐继续读博士的,原因是在校时间越长,你的青春会越长。校园之中不管是人际关系还是压力,相比于社会,都是略微小一些的,压力小,皱纹就少一些,这是现阶段我们这种贫苦大学生的驻颜秘籍了。研究生3年是很短暂的,虽然我没有完全读完研究生三年,但我还是认为,每一个人的青春都不该被懒惰而改变,其实你可以很优秀。三、博士第一年博士入学,我才发现,一切并不是我想象中的那样顺利。同门师兄和我方向不一致,和我方向一致的其他实验室的师兄又不擅于交流,于是,我的博士起步极其艰辛。正式进入博士圈子我才发现,接踵而至的不是论文,而是压力,同时伴随着焦虑。刚入学的阶段,因为不知道方向,没有项目支撑,论文找不到思路,代码调试失败等原因,我时常失眠。晚上睡不好,白天没精神,总会在睡梦中惊醒,不知道自己身处何地。一度疯狂脱发,脾气暴躁,总觉得周围人无法理解我,都是站在成功的角度指点我的人生。我去医院看了精神科,中度焦虑中度抑郁,开了300多块的药,没有起色。一时间,我都曾有了退学的念头。但我忍住了,我始终坚信:既来之则安之。其实这也是我今天想和大家说的,或许我所经历的这些正是大家正在经历或曾经经历过的,基本上每个人博士入学都会经历这样的心里路程,我想在这里交流一下我的调整方案。首先,给自己时间去放纵去休息,让自己的焦虑和压力得到释放,不要憋在心里。我焦虑的时候喜欢吃东西,我买了很多零食放在实验室,每当觉得自己焦虑时,就狂吃零食。其实,释放焦虑是一种减少焦虑的很好的办法,很多人会觉得,我正是因为学不懂才焦虑,我吃东西了更学的少了,反而会引起焦虑,这时候就需要第二点。第二,适当缓解焦虑后,会得到短暂的内心平静的时间,你需要在这段时间理清楚当下最想解决的问题,比如不知道如何找新论文的思路,不知道如何推导论文中含糊的公式等。不需要总结的很全面,总结一两个点即可。第三,大胆寻求他人帮助,博士阶段大家都是从焦虑中走过的,经历过焦虑,才知道什么样的生活是最适合自己的。基本上每位博士在焦虑时都不是一个人度过的,或许和伴侣倾诉,或许和亲人倾诉,或许和朋友倾诉,然而只有经历过这些的人才能真正的感同身受。学习是一件寂寞的事,正因如此,更要和周围人多交流多沟通,只有这样,你才不会被孤寂所吞噬。第四,如果不知道做什么,就看论文吧。在焦虑中度过和在论文中度过,都是一天,但前者只会让你更焦虑,随便一篇相关论文,先别去想对你到底有多少帮助,静下心来去用半天的时间读懂这篇论文,给自己一个事忙活,不让自己陷入焦虑的死循环中,当你读懂了一篇论文,你会得到一些心灵上的安慰:至少,你还能读懂论文。至于前路何方,这是漫漫人生路都在找寻的东西,不急于一时。第五,设定阶段性目标。量变达到质变,量变的过程很漫长,或许不能很快看到结果,这时候很多人会丧失信心,感觉自己的努力没有作用,其实你在变强了。可以设定阶段性目标,比如,看完14讲第一遍,可以在脑海中大致勾勒出SLAM系统有哪些部分组成,每个部分的作用是什么。达到目标也是增强信心的一种,别着急,只要努力,一定可以达到想要的结果。虽然每个人都是独一无二的,但每个人的经历,或许别人都多多少少经历过,在人来人往的时间长河中,别让自己感到孤单,如果你觉得学习上生活上有无法战胜的地方,欢迎留言,你永远不是一个人,我们所有人都在和你一起成长,共同进步。愿每一位学子,学业有成,前程似锦!备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区本文仅做学术分享,如有侵权,请联系删文。

不暇

自动驾驶未来研究方向

我们在前几节中介绍了自动驾驶的方法在寻找路径、选择最佳操纵和构建可行轨迹方面具有良好的效果。然而,自动驾驶仍然存在局限性,自动驾驶还远没有达到人类驾驶能力的水平。我们将在本节中描述一些已确定的局限性需要未来持续的研究方向。风险评估今天发生的许多事故都是人类驾驶员错误的感知和决策造成的。由于准确的风险评估对于防止碰撞至关重要,因此,自动驾驶被认为可以大大减少此类错误。虽然目前的系统已经成功地应用于在真实环境中寻找路径和探测障碍物,但是碰撞仍然会发生。因此,必须更加重视实时准确的风险评估。现有的大多数风险评估方法预测轨迹,然后检测可能的碰撞。然而,这种方法会产生巨大的计算成本,并检查所有可能的轨迹。一个有用的建议是,只有在检测到异常或危险的操纵(Lefèvre et al.,2012a)或交通状况被标记为危险时,才执行轨迹计算和碰撞检查,而不是详尽地计算和预测每个历元(感应周期)的其他交通参与者的轨迹从运输工程的角度来看。还应利用适当的数学基础,如贝叶斯博弈论(Harsanyi,1967);此类概念已成功地应用于机器人学中的许多基于agent的问题中(Antoniades等人,2003;Emery Montemerlo,2005)。这种方法有助于实时处理交互作用,例如在交叉口、汇入交通流或在感知受限的情况下超车。此外,考虑到ego车辆(自动驾驶本业内称配合自动驾驶测试的车辆为ego)不仅会与其他自动驾驶车辆互动,还会与人类驾驶的车辆、摩托车驾驶员、骑自行车的人和行人互动,规划算法应探索人类(作为驾驶员/驾驶员或行人在不同的交通场景和操作环境下)行为模型的推理能力,并应以轨迹预测或推断其他道路参与者在交叉路口的行为的形式使用所产生的智能。现有的路径规划问题的方法源于机器人技术的早期发展,这些技术将车辆视为一个独立的实体。实际上,自动驾驶车辆将成为更广泛(混合)交通系统的参与者。因此,未来的研究必须探索交通工程概念的结合,如碰撞前兆的识别、间隙接受度和网络级碰撞预测,从而在风险评估和碰撞预测中考虑周围交通系统的复杂性。可以为车辆即将进行的每一次操纵提供行为模型(例如Hidas,2002;Llorca等人,2014;Saifulgaman和Zheng,2014),以将操纵标记为标称或非标称。可以指示危险情况的实时高度分解交通流数据和历史碰撞数据可以轻松地在自主车辆软件体系结构的规划模块中实现,从而提高作为危险路段早期指示的决策能力。实时交通事故预测是交通工程师多年来一直在研究的一个问题,由此产生了久经考验的方法,能够准确地指示网络级的碰撞风险(图12)。这些模型可以应用于自动驾驶车辆规划,简化了车辆危险情况的实时计算和评估,同时也增加了自我车辆的感知视野。轨迹规划也将受益于从车辆级到网络级分散方法的相同精神。优化过程可以在空间上扩展,而不是试图在单个独立的车辆轨迹上优化和评估风险。在这一概念中,共享公共交通系统(例如路段、特定公路、城镇或城市)的车辆的一系列轨迹可以优化。就风险指标而言,为了克服TTC的局限性(什么是TTC 点击自动驾驶机动动作规划和决策),可以探索微分几何的应用。应用微分几何可以研究质点在曲线上运动的运动特性。考虑到这一概念,可以采用Frenét frame11,而不是使用全球坐标系中的直线来计算距离(对于TTC)。使用Frenét框架,可以在描述道路几何结构的曲线上计算距离,从而描述车辆的运动。使用曲线上的距离计算TTC的方法如图13所示。与使用到车辆1的直线距离(D1)不同,距离Dc可用于计算TTC,因为它更能代表车辆路径。此外,如果使用直线距离(D2),则第2车可能被认为是对ego车辆的“威胁”。如果采用沿道路的弯曲距离,则情况并非如此。此外,将风险评估与空间探索相结合的方法可以得到有效利用。这类方法的例子有风险RRT(Rios Martinez等人,2011年),它已经成功地测试了行人中的移动机器人,以及包含车辆移动性变化的知情状态格(Howard,2009年)。缩减搜索空间现有的局部路径搜索和轨迹级技术(点击了解自动驾驶实时路径规划算法简介(Local search局部搜索))大多是在规划的最底层应用动作空间搜索。因此,保证安全性的状态空间也可以与模型预测控制相关的轨迹生成一起进一步研究,例如Howard(2009)中用于行星探测器的轨迹生成。模型预测控制可以确保终端状态的必要输入由机器人小车本身确定,并且在控制过程中也可以提供反馈,以应对规划过程中可能出现的噪声。此外,更复杂的操作可以嵌入到规划中,因此,对状态空间进行采样可以变得更快、更有效。此外,在道路或车道边界内构造先验搜索空间,通过处理状态空间的穷尽采样和贪婪搜索,可以提高路径搜索技术的效率。穷举抽样使用了太多的计算资源,贪婪的搜索可能导致不可行的路径(即那些位于道路边界之外或与障碍物相交的路径),因此基于道路或车道的搜索空间可以潜在地解决这些问题,而不会损失计算能力,并且必须在线丢弃路径。传感和V2X通信(V2X 了解自动驾驶的三种解决方案)传感器是自动驾驶车辆的眼睛和耳朵,因此必须采取一切措施确保它们正确“看到”。这可以通过使用高精度(尽管昂贵)的传感器来实现,或者通过使用增强的传感器融合技术,通过整合现成的低成本(尽管是多个)收集的相对不准确的数据,传感器无论原理是什么的,车载传感器受其视线和范围的限制。在保持传感系统低成本的同时,需要在全天候昼夜进行高性能传感,这可能导致采用带有热传感器或声学传感器的摄像机。在红外探测条件下,它比普通的红外摄像机(BES-2015)的光照影响更小。热像仪已成功应用于目标识别(如Besbes等人,2015)和道路检测(Peláez等人,2015)。通过使用热摄像头,机动(如车辆)和非机动物体(如行人、骑车人和动物)可以很容易地通过其发射的热能进行识别,而不受照明条件的影响。另一方面,声学摄像头实时可视化声音的来源和强度(GFaI tech,2014)。因此,这些摄像头可以证明是一个有前途的替代方案,以取代所有道路使用者的近距离感测,因为它们会发出声音。因此,在所有照明条件下,即使自动驾驶车辆“看不见”,也可以从其发动机的声音中检测到机动车辆。因此,在追求无碰撞路径规划过程中,将热摄像机和声学摄像机作为传感元件将提供额外的完整性。但应注意的是,这些摄像机对天气条件非常敏感,因为降水可能会改变障碍物的热能和声音检测,从而导致数据不可靠(Eskandarian,2012)。因此,必须进一步研究和验证它们在规划数据可靠性和完整性方面的实时应用车辆通信系统主要是通过临时手段建立起来的,通过增加感知视界和增加智能,为当前传感技术的局限性提供了一个有希望的帮助。车辆将能够通过车辆对车辆(V2V)通信与周围车辆通信,通过车辆到基础设施(V2I)通信与周围的基础设施(例如红绿灯)以及非机动交通参与者(即行人或骑自行车者)通过车辆到设备通信(V2D)携带的设备。V2V、V2I和V2D通信统称为V2X通信。这种被称为车辆自组织网络(VANETs)的adhoc网络采用了许多网络技术,例如Wi-Fi、WiMax、蓝牙,尤其是专用短程通信(DSRC)(一种Wi-Fi技术)。DSRC技术主要是由美国运输部(DoT)开发和推广的,用于延迟敏感的车辆通信(如安全信息)。DSRC的射程约为300米,旨在提高当前传感技术的传感范围和前瞻能力。最近的研究表明,将感知到的智能和周围环境(包括基础设施)的能力结合起来,可以有效地实现精确定位(尤其是在城市峡谷等缺少GPS的情况下)、盲点检测和环顾角落。预计V2X通信将改善对非机动交通参与者(例如行人、骑自行车的人、动物)的检测,尤其是通过扩展通信网络(包括非机动交通参与者)从盲区接近时。除了提高自动驾驶车辆的感应能力外,车辆通信还可以通过准确的长期风险评估来提高规划方法的性能(Lefèvre等人,2012b)。风险评估和规划的一个重要部分是检测障碍物,然后预测障碍物的轨迹。目前的技术依赖于车载传感器感知,由于感知数据的不准确,缺乏长期预测能力。未来的发展必须着眼于通过车辆通信,从周围障碍物或车辆实时获取障碍物的实际状态、实际操纵和更准确和更长期的轨迹预测。在操纵规划和决策过程中,车辆通信可以帮助例如在车辆接近信号交叉口时进行速度调整,以便车辆在绿灯期间到达交叉口。这样做可以节省决策(停止或加速)的努力,也可以通过减少中途停车的行动来节省燃料(Rakha和Kamalanathsharma,2011;Ilgin Guler等人,2014)。在无信号交叉口中,所有参与者的操纵应事先知道,从而减少拥挤和碰撞(Wu等人,2013年)。车辆之间的通信也可用于分享有关道路状况的信息,如漏油、停放车辆和临时道路堵塞(Drobot等人,2012年;Marshall,2014年)。如图14所示,检测到道路异常或湿滑路面的第一车辆可以将该信息传送给后面的车辆,以便提前提供更好的态势感知,以便规划沿着该路段的安全路径或轨迹。V2X通信应用于自动车辆感知和控制的示例如图14所示(Kim等人,2013年)。在使用运输工程技术来估计风险的情况下,车辆通信可以证明是在线收集交通流数据并将其传输给交通管理机构或该地区其他车辆的有效媒介。虽然已经进行了大量的研究,但大部分的验证都是在受控的模拟环境中进行的。现在有必要增加在真实环境中的实验量,考虑到不符合标准交通模型的偶尔的混沌交通。此外,升级基础设施(例如采用V2I通信)成本高昂,并且需要设计规划技术,依赖于无基础设施的车辆通信,从而在交叉口实现无缝移动。然而,需要进行研究来评估车辆通信的实时实施及其对规划的影响。通信干扰、实时约束、通信速度和检测性能只是车辆通信的几个方面,需要在将其纳入自主车辆规划模块之前进行检查,并将其纳入依赖它们的方法中。整合来自V2X和车载传感器的信息以提供更好的信息将是一个研究挑战。然而,随着V2X技术的全面推广,在改善车辆及其规划模块之间的协调方面有着巨大的潜力。车辆建模单车模型已经被证明是一个有效的模型,虽然简单化,汽车类车辆。研究人员专注于车辆运动的运动学性质,但也应考虑到动力学。动态建模车辆可以从规划阶段模拟车辆的真实能力,从而使轨迹模块更容易跟踪和跟踪为车辆指定的路径或轨迹。同时考虑到车辆发动机的动力、轮胎和路面之间的相互作用或真实汽车的转弯能力的模型可能会在计算中增加一点负担(由于车辆模型中增加了尺寸),但可能会提高自动驾驶车辆的整体道路性能。对于操纵而言,这一点变得更加重要,尤其是在受限空间内进行的操纵或包括车辆之间的密切相互作用。可以看出,在诸如避免碰撞的操纵中,必须考虑车辆的动力学和其他性能。测试以及验证如前所述,自动驾驶技术的测试需要在经过模拟和控制实验测试后,针对真实世界的实验。由于现场试验可能能够证明自动驾驶车辆是一种安全可靠的运输方式(Dokic等人,2015年),因此需要进行更多的试验。首先,应考虑在所有天气和能见度条件下自动驾驶。碰撞预测(Yu et al.,2015)中对雨雪或雾天驾驶进行了调查,但除了路线确定层面(e.g.Maddern et al.,2014),尚未将其纳入自动驾驶车辆的规划方法中。到目前为止,已经对高速公路、交叉口、环形交叉口和合流方案进行了测试,但立交桥、让路方案和分流路段可以提高规划方法的适用性和自主性开车。最后,还应研究基础设施的准备程度,以及应对紧急情况,以涵盖所有驾驶情况。处理动态和不确定环境 自动驾驶车辆在动态和不确定的运输环境中运行。这不仅是由于道路信号等环境的变化,以及其他道路使用者的出现和消失,还因为车辆不断地以潜在的高速从一个地方移动到另一个地方。态势感知和评估是为车辆规划算法提供必要信息的关键。人类驾驶员不仅要了解他们的意图和现状,而且要预测他们可能去的地方,从而保持与其他道路使用者的安全隔离自动驾驶车辆在动态和不确定的运输环境中运行。这不仅是由于道路信号等环境的变化,以及其他道路使用者的出现和消失,还因为车辆不断地以潜在的高速从一个地方移动到另一个地方。态势感知和评估是为车辆规划算法提供必要信息的关键。人类驾驶员不仅要了解他们的意图和当前状况,而且要预测他们可能移动的地方,以及他们在不久的将来可能的位置,从而保持与其他道路使用者的安全隔离。在了解静态环境和了解ego车辆的位置和状态方面,相对于SLAM等局部环境,已经取得了很好的进展。在跟踪和预测移动物体(如行人、自行车和其他车辆)方面需要进行更多的研究。多目标跟踪将在提高态势感知方面发挥重要作用(Ding和Chen,2013;Ding等人,2015)。此外,背景/背景知识(例如道路状况、交通法规和当地地图/设施)可用于更好地理解其他用户的意图,从而减少对其未来行动的预期的不确定性(Ding等人,2015年;Liu等人,2013年)。滚动时域概念或模型预测控制为解决车辆规划的动态性和不确定性问题提供了最有前途的方法之一。在这种方法中,规划是通过基于所有可用信息的固定时间范围来制定的(Liu et al.,2010a,b),但仅实施规划的前一小部分。在新的信息到达后,通过再次展望地平线来重复计划。有几个特性使这种方法非常有吸引力。首先,所有车载传感器的范围有限,信息超出已知范围(Liu和Chen,2013)。其次,即使在地平线内,由于交通环境的动态性和不确定性,仍然需要重新规划以应对变化;例如,自动驾驶车辆在接近红绿灯时,会通过重新规划其行动来应对交通灯的变化。第三,有限视界的使用可以减少规划中的计算负担,这使得实现一些计算广泛的规划算法成为可能。尽管在这一领域开展了大量的前期工作(例如,Werling和Liccardo,2012;Kim,2013;Nilsson等人,2013),但还需要进行更多的研究,以充分探索后退地平线概念的潜力。总结自动驾驶或自动驾驶车辆的规划模块应确保乘客的安全性和舒适性。它还应使车辆处于与车辆周围的运动学和运动模型约束相关的正确行为。本文批判性地回顾了DARPA城市挑战里程碑之后应用于道路自主驾驶的现有规划方法,并着重介绍了最常用的技术。重点放在增量和局部路径搜索,以及行为和轨迹规划,因为文献中已经讨论了O-D对之间的全局路由。文中指出,增量路径规划依赖于对树或格等数据结构的搜索,而局部路径规划通常是在连续的空间中进行,并从最终状态进行采样。在大多数情况下,机动规划包括障碍物预测和碰撞估计,而大多数方法都缺少上下文。最后,在轨迹层面上,大多数方法都是针对静态或动态障碍物对给定的几何曲线进行优化或变形。由于决策和动态障碍物的处理被发现是主要关注的领域,因此提出了基于agent的数学公式的实现和交通工程方面的融合。此外,有人建议使用其他传感方式,例如车辆通信,这将增强车辆的视野,并提高其估计能力和定位性能。最后,提出了将动态模型纳入规划的方向,以提高现有方法的实际性能。需要注意的是,在模拟、模型车环境、试车跑道以及最后的真实世界实验中进行了大量的测试之后,建议的增强功能应逐步纳入自动驾驶中。参考文章Real-time motion planning methods for autonomous on-road driving: State-of-the-art and future research directions -Christos Katrakazas a , Mohammed Quds a, , Wen-Hua Chen b,1 , Lipika Deka aLearningaboutrisk:Machinelearningforriskassessment- NicolaPaltrinieria,,LouiseComfortb,GenserikReniersc,d,eDriving Automation Systems Validation Overview - Altran文中部分图片版权归其所有*未经准许严禁转载和摘录-加入我们的知识星球Vehicle可以下载以上参考资料。>>>>

事而无传

SLAM与路径规划多技术融合趋势下 扫地机器人市场格局生变

作为服务机器人市场的首发单品,扫地机器人如今已渗透千家万户,并随着技术及市场的日臻成熟而深入人心。如今,在小米、360及科沃斯等巨头的持续推动下,支撑扫地机发挥关键性能的核心技术--自主导航定位和路径规划也呈现出新的发展态势,演变为行业标配的同时也开始向多传感器融合方向深入发展。而软件方面,随着深度学习算法的产品化,AI加持下的扫地机器人技术也为行业发展注入了新的生机。巨头入局掀起价格战“狂潮” 2018年行业或迎洗牌期扫地机器人短短几年便火遍全国已是不争的事实。据统计,经过2014年市场销售额的一波爆发式增长后,2015年扫地机器人依旧热度不减,特别是上半年,线上智能扫地机器人的主流价格区间集中于2000元以上,销售占比为41.1%;而到了2016年上半年,随着行业竞争的加剧以及市场对低价位产品需求的攀升,主流价格区间降到了1000—1500元之间,销售占比为35.3%,而2000元以上扫地机器人占比也下降至32.4%,这进一步带动了扫地机销量的增长及渗透率的提升,而2017年这种演变趋势也在不断深化。科沃斯国际事业部总裁钱程科沃斯国际事业部总裁钱程告诉记者:“据我们长期的市场调研来看,目前国内消费者对扫地机器人的接受程度已经很高了,因为这个市场在国内已经培养了很多年。而当前的国内用户更多看重技术型的产品,要导航、扫拖一体,更要智能化。在2017年的双十一,我们的全网成交总额达到了5.28亿元,其中扫地机占据绝大多数,领跑全网双十一生活电器榜。同时,在美国的‘黑五’购物节上,我们在亚马逊平台上相比去年更是取得了超过400%增长的成绩,产品成交额相当于去年的5倍,创下历史新高。因此,我们预计2018年,随着技术成本的不断压低以及用户的广泛认可,扫地机器人业务将为我们创造更多的利润增长。”在应用方面,“扫得干不干净”和“好不好用”无疑是用户自始至终最为关注的两个指标,钱程表示:“前者更多取决于机器人自身的清洁技术,而后者则更多是由机器人的智能程度决定的。在扫地机器人最初流行的时候,人们主要的关注点还是在前者,但随着技术不断的升级迭代,加上人工智能概念的越发火热,用户如今对后者的要求越来越严苛,这也就进一步要求业内厂商开始用更多智能化技术来给扫地机赋能,拥有智能规划清扫功能的扫地机也日渐占据绝大多数份额。”因此今年以来,我们可以看到业内各大主流厂商已经全线转战智能规划式扫地机产品的研发,而不具备智能规划技术的扫地机市场份额正逐步降低,未来也将逐渐淡出市场。正如钱程所言,自去年小米入局以来,这种趋势就已在酝酿之中。而随着2017年12月18日安全巨头360公司的强势杀入,编者预计2018年该趋势将会得到进一步的深化,届时市场也将迎来新一轮的洗牌,低端的“盲扫”产品将逐渐退市,而拥有资本与技术实力的厂商将真正存活下来,共同分食残余的扫地机市场。对此,有业内人士对上述观点表示赞同,与之前阿里和京东主导的智能音箱市场混战套路类似,小米和360两家巨头用低价策略打入扫地机市场,掀起价格战,旨在掌控整个市场的主导权,让自身品牌更快的向用户群渗透。而在技术方案上,两家公司都清一色采用的是单线激光雷达来进行同步定位与地图构建SLAM(SLAM即Simultaneous localization and mapping),事实上这种方案在市面上的成本不低,据渠道方面了解大概在400-600元左右。而近期,小米还在进一步的压低市场价格,预计明年360也将采取同样的方式,而这将倒逼业内其他厂商在定价上做出更多妥协,并有望大幅带动2018年整个行业中高端档次产品价位的进一步降低,届时携带自主定位及规划功能的智能扫地机出货量将快速攀升,而当前遍地都是的“盲扫”扫地机也将以更快的速度淡出市场。功耗及成本是瓶颈 软硬结合助力精准化应用尽管智能规划式清扫正成为当前扫地机的标配,但在实际应用当中,仍有很多问题亟待解决,比如功耗、成本等。站在专业厂商的角度考虑,上海思岚科技有限公司CEO陈士凯认为:“对于消费级的产品,我们更关注的是如何将同样的功能以更低的代价/价格、开发周期以及使用难易度变成一个具体的产品。因此,在产品设计和研发上,我们需要尽可能的讲求‘零配置’来满足广大普通用户‘拿来即用’的需求。而目前,就家庭应用场景而言,尽管配备了激光雷达等技术,扫地机导航定位系统仍然面临着诸多待解的问题。对此,我们做过很多努力,比如在成本上,我们现有的激光雷达成本已经能够做得更低,可以在一定程度上解决导航定位模块使用成本的问题。我们最早是做激光雷达的,目前我们的A2激光雷达能够实现16米半径的测距,而测量平距今年则能够做到8K,并且不会在体积和外观尺寸上有任何变化。”上海思岚科技有限公司CEO陈士凯除了成本问题以外,功耗也是当前的一大突出问题。陈士凯强调:“目前,无论SLAM的算法还是路径规划系统,其复杂度都比较高。拿现在主流的笔记本电脑跑都有点吃力。SLAM里面的凸优化算法还不能够在线进行运作,必须靠离线式进行运算,因此把技术使用到实际产品中的时候就会遇到问题。比如我们给出的是上百瓦的级别,但是一个扫地机器人电池本身的容量可能只有20多瓦时的规模,如果让扫地机器人上装一个笔记本跑SLAM算法,可能一个小时不到就没有电了,这是完全不被接受的。”“我们的解决方式是通过高度算法优化和集成,把导航定位系统的体积和运算性能负荷上做到最小。”陈士凯进一步补充到,现在在硬币大的SLAM WARE里面可以实现传统信息机和开源算法,可以在2瓦下完成SLAM规划的所有事情,同时体积和发热情况都可以有很大的改善。而从一些案例来看,比如我们最新发布的一个基于激光雷达和导航定位系统的开源参考平台,这是目前能实现的最小具有激光自主定位导航的系统,它的特点是只需要干电池就可以供电,并且实现两个小时以上的待机时间。前面功耗的问题就可以得到很大的解决,实际产品中,现在不会让用户使用干电池,很多用户会使用可充电式的锂离子电池,让机器人可以实现8小时以上的待机时间。另一方面,在实际使用场景下,对导航定位问题来说,机器人开机以后对家里的环境构造是完全不清楚的,这就对路径规划算法提出了一个共同的要求,需要把地图预先绘制出来。对此,陈世凯解释到:“这是一个矛盾点,我既希望这个机器人在环境位置的时候展开工作,但一些主流算法还是需要对地图或者环境有一个预先的构建或者预先的探索,才可以展开一些算法。因此产业界就需要做一些额外的工作,我们在现有的SLAM WARE系统里加载了新的路径规划系统,就像玩《星际争霸》一样,可以给一个初级的路径规划,随着机器人持续探索,路径可以逐步进行细化,能够在地图甚至完全未知和部分未知时就可以展开行动。除了这个比较基础的功能以外,还需要很多其他的算法进行配合,比如自主环境探索和地图构建,这是目前带有导航定位扫地机器人的标配。因为对于未知环境,必须先对环境进行探索,框定清扫区域。另外还有一个非计算的问题,比如地图如何去呈现,而目前使用任何新的技术都会带来成本上升,成本的上升往往伴随着功能溢价,所以厂家必须把新的功能提升到让用户有感知的水平。如果机器人具备了激光导航和地图构建能力,在使用当中,都会非常希望让用户看到机器人真正的绘制地图。这时候就有一个心理上的问题,一张图是一个人认为机器人绘制的地图效果,但实际上很多时候SLAM系统给出的地图虽然不算差,但也称不上很好。如果我展现的是这样的地图,那在用户心理上就会产生很大的障碍,他会觉得这个产品看上去是不是不值这个价格。而且,在实现导航定位系统的时候,也会关注另外一件事情,这件事情机器人不会考虑,但是对于人来说比较注重,那就是构图的精细程度,这是目前思岚在尝试努力的方向。”作为国内扫地机市场的头羊,科沃斯则更看好“全局规划”的方式。钱程表示:“目前在扫地机市场上,有着琳琅满目的规划式设计的产品,但各品牌之间也存在较大的差异,比如全局规划和普通的路径规划就不太一样。而对于传统扫地机这种本身不具备视觉能力的产品,我们则从人工智能的角度赋予其探测、认知并记忆整体家居环境的能力,从而实现‘全局规划’,我们认为这是当前行业在技术层面上的主流发展趋势。”针对具体的产品化方案,钱程告诉记者:“比如,在DG3上,我们首次配置了应用在智能手机、智能电脑、数字电视等家用产品,以及汽车电子、航天航空等领域的同类型Cortex-A9处理器,相比常规芯片的低效处理单任务来说,Cortex-A9 能够处理多任务执行,并且处理速度也有了大幅度的提升,这块芯片让‘全局规划’更加高效。此外,我们也配置了现在业内使用较多的LDS激光雷达测距传感器,并配合SLAM算法,可智能识别家居环境,实现精准快速建立家居地图、智能分区。简单来说,Smart Navi 2.0意味着扫地机器人DG3在快速建立家居地图的同时,通过我们的APP端即可实现指定区域清扫,想扫哪间点哪间,并可精确到指定点,想扫哪里点哪里,同时可随心设置虚拟墙或虚拟区、标注无需清扫的区域,哪里不扫也由用户说了算。”多传感器融合大势所趋 深度学习助力扫地机“更智能”诚如上述,为实现更好的SLAM建图、定位以及规划效果,业内主流厂商正纷纷转向“LiDar SLAM+软件算法”的方案。不过,针对扫地机的应用而言,激光雷达方案也存在动态环境难以定位、重定位能力差、缺乏回环检测能力等问题,而视觉方案虽然也有自身的问题,但可以很好的弥补LiDar存在的这些缺陷,这点在火热的智能驾驶领域就得到了广泛验证。对于以家庭应用场景为核心的扫地机而言,这种应用趋势也开始崭露头角。深圳市大道智创科技有限公司研发总监龙建睿认为:“毫无疑问,激光SLAM对于计算性能的需求大大低于视觉SLAM,比如主流的激光SLAM可以在普通ARM CPU上实时运行,而视觉SLAM基本都需要较为强劲的准桌面级CPU或者GPU支持。因此,业界也看到了这其中蕴藏的巨大机会,为视觉处理定制的ASIC市场已经蠢蠢欲动,一个很好的例子是Intel旗下的Movidius,他们设计了一种特殊的架构来进行图像、视频与深度神经网络的处理,在瓦级的超低功耗下达到桌面级GPU才拥有的吞吐量,DJI的精灵4系列产品就是使用这类专用芯片,实现了高速低功耗的视觉计算,为无人机避障和近地面场景导航提供根据。”不过,针对未来技术方案的演变,龙建睿则更看好V SLAM和LIDAR SLAM的多传感器融合的方式。他表示:“虽然这两种技术都有优缺点,激光的缺点毋庸置疑,传统激光雷达很贵而且很多方面不大灵活,目前为止技术的发展也不成熟;而对环境光影的变化或者室内比较昏暗的场景,V SLAM技术也都没办法使用。但如果把这两种SLAM技术融合在一起,并且配以目前低成本的传感器,就可以解决扫地机应用中的很多问题。而当前,业内有不少厂商都在进行这方面的探索,相信这种融合式的SLAM方式会是未来几年比较重要的演变趋势。”除此,随着深度学习技术产品化的飞速演进,AI加持下的智能扫地机也正向产业持续注入新的生机。龙建睿表示:“这一两年,深度学习成为人工智能的代名词。而在这个行业,前几年还是以比较传统的概率学,或者控制论的方式进行机器人自主定位导航。但这里展现的是完全通过深度学习,直接通过摄像头数据作为信号输入,再通过神经网络直接产生出机器人的控制信号。其中像SLAM的过程、路径规划的过程,完全通过学习的方式就可以进行实现,因此我认为这种技术也会成为未来的一种潮流。”陈士凯对此也颇为认同,并强调:“在这一两年我们看到很多巨头都在做神经网络,尤其英特尔在芯片这一块的性能是非常给力的,在功耗和性能上都让我们非常吃惊,相信在不远的将来,我们在扫地机导航定位这个领域也会非常广泛的使用深度学习,包括SLAM,以及像路径规划这方面的应用。另外是行业中的情况,比如基于深度学习的路径规划也都在不断萌芽之中,相信未来几年会有一个比较明显的突破。”而在这方面,科沃斯则先发制人实现了深度学习技术的产品化,将AI算法下沉到硬件当中,为扫地机全方位赋能,钱程表示:“目前,我们的DG3扫地机产品已成功被赋予了自主学习的能力,首次搭载了OTA在线升级技术,能够基于对用户使用数据进行采集和分析,并通过客户端快捷升级产品功能,从而使DG3伴随用户的实际使用而进行自主深度学习,不断更新扩充自身的功能,从而更好的适应家庭环境,打造更为优质的智能体验。”

同滥而浴

用机器人研究机器人?加拿大推出价值16万美元的SLAM研究机器人

对人类来说,走路是一件无需思考的事情,看到是平地就能走,看到障碍物就避开,似乎一切都是那么水到渠成。但对于机器人却不是这样,人们需要给机器人设计各种各样环境,让机器人能感知环境、设计路线、避开障碍,从而进行移动。在研究过程中,人们需要一个完善的机器人模型,来一次次进行实验。近日,加拿大的机器人公司Kinova Robotics展示了一款双臂轮式机器人Movo,专门用于机器人研究。Kinova Robotic推出的Movo机器人Movo可配备独臂或双臂,可以根据需要从1.09米升高到1.58米,并能进行最高速度为2米/秒的全方向移动。此外,其底座上配备一个激光雷达装置,以及一个安装在方向架上的深度感应Kinect One摄像头,可以探测障碍物并感知其环境。与此同时,英特尔CPU可帮助它理解所有事物并协调其运动。Movo机器人可根据需要进行升降“许多研究人员将其用于SLAM(即时定位与地图构建)研究,”Kinova的创新顾问Jérme Bedard说道:“Movo是一个完整的模型,可以帮助人们研究机器人如何扫描环境并在其周围移动。”SLAM相关的研究一直都是机器人领域的热门选题。无论是清洁机器人或是配送机器人,涉及到需要规划移动的机器人,SLAM都是研发过程中的核心。目前,SLAM主要通过两种方案实现。一种是激光雷达SLAM,其原理是通过旋转激光发射器不断发射激光,红外摄像头拍摄反射光并成像,利用几何测距原理测量物体和机器本身的相对位置,据此绘制完整边界的地图和确定机器在地图中的位置;另一种是VSLAM(视觉SLAM),主要通过RGB摄像机,不断移动自身的位置进行拍摄,提取和匹配相邻帧图片特征点、利用三角测距原理测算出障碍物的距离。例如,领先的家用扫地机器人品牌科沃斯,激光雷达和VSLAM两种方案之一对产品进行设计;而商用机器人如普渡科技的“欢乐送”送餐机器人,则采用了两个方案结合的方式,自主研发了PuSLAM的多传感器融合算法,以提高地图构建的精度与定位的准确性,适应多种餐厅的环境。“欢乐送”能根据SLAM优化路径Movo推出的意义在于,激光雷达与Kinect One摄像头能够承载两种主流的SLAM方案,无论是单方案测试或者是多方案融合,Movo可以成为通用性极高的SLAM方案测试设备,让研究者可以专注在SLAM的算法设计。目前,Movo已经上市,搭载了双臂的机器人型号售价约为16万美元。同时,Kinova也表示,如果研究小组愿意分享他们的研究结果,会给予他们更加优惠的折扣价格。

狼人镇

论文翻译|多鱼眼相机的全景SLAM

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达1摘要提出了一种基于特征的全景图像序列同时定位和建图系统,该系统是在宽基线移动建图系统中从多鱼眼相机平台获得的.首先,所开发的鱼眼镜头校准方法结合了等距投影模型和三角多项式,以实现从鱼眼镜头到等效理想帧相机的高精度校准,这保证了从鱼眼镜头图像到相应全景图像的精确转换.其次我们开发了全景相机模型、具有特定反向传播误差函数的相应束调整以及线性姿态初始化算法.第三,实现的基于特征的SLAM由初始化、特征匹配、帧跟踪和闭环等几个特定的策略和算法组成,以克服跟踪宽基线全景图像序列的困难.我们在超过15公里轨迹的大规模彩信数据集和14000幅全景图像以及小规模公共视频数据集上进行了实验.我们的结果表明,所开发的SLAM系统PAN-SLAM可以在小规模室内和大规模室外环境中实现全自动摄像机定位和稀疏地图重建,包括具有挑战性的场景(如黑暗隧道),而无需任何其他传感器的帮助.定位精度由绝对轨迹误差(ATE)测量,类似于0.1米的高精度全球导航卫星系统/惯性导航系统参考.PAN-SLAM还优于几种基于特征的鱼眼和单目SLAM系统,在各种环境下具有不可比拟的鲁棒性.该系统可被视为一个强大的补充解决方案和昂贵的商业导航系统的替代品,特别是在城市环境中,信号障碍和干扰是常见的.2介绍大多数视觉SLAM系统都受到普通针孔摄像机视场有限的影响,这很容易由于视角的突然变化或捕捉无纹理场景而导致跟踪过程失败.在用于测绘的移动测绘系统(MMS)中,由于成像和存储器访问速度有限,大尺寸传感器(例如与计算机视觉中使用的640×480传感器相比,8000×4000像素)需要宽基线拍摄模式,这一问题会加剧.因此,宽FoV的光学传感器,如鱼眼或全景/全向相机,成为一个很好的选择.全景相机可以一次拍摄360°的场景,越来越多地应用于街景地图收集、交通监控、虚拟现实和机器人导航.官方视频展示:此外,据我们所知,没有专门为全景相机开发的完整的基于特征的SLAM系统.介绍了一种新的基于特征的全景SLAM系统,称为PAN-SLAM,该系统利用多鱼眼相机平台实现全方位成像,提取特征点跟踪新帧和构建地图,并使用束调整实现全局优化.同样重要的是,PAN-SLAM旨在减轻当前彩信技术对全球导航卫星系统/惯性导航系统信号质量的高度依赖.主要贡献如下:我们开发了一系列技术,包括精确的特征匹配和跟踪、闭环检测以及BA的可靠姿态初始化,用于基于多摄像机平台的全景摄像机,该摄像机能够在复杂的室外环境中实现高度鲁棒的性能提出了一种新颖的鱼眼镜头标定方法,实现了亚像素精度,保证了BA的平滑跟踪和高精度在大规模宽基线全景图像序列数据集和从多鱼眼相机平台捕获的开源小规模视频数据集上,我们的PAN-SLAM系统的鲁棒性优于当前的几种其他方法.此外,PAN-SLAM是唯一能够跟踪所有图像序列的系统.PAN-SLAM的定位精度为0.1米,已被证明与昂贵的商用全球导航卫星系统/惯性导航系统跟踪系统一样高,在信号阻塞情况下更加鲁棒.它有可能成为当前商用全球导航卫星系统/惯性导航系统的一个强有力的补充和替代解决方案.3算法流程1全景相机的成像图2: (a)全景相机模型 (b)两个相邻鱼眼相机边缘影像上的投影不确定性多镜头组合式全景相机由一系列独立、固定的鱼眼镜头组成,多个镜头独立成像,再拼接为全景图.每个镜头具有各自的投影中心C,在实际制造过程中难以保证与球心S完全重合. 物理上三点共线是C,Uc,P'. 所以为了实现统一的全景坐标系, 需要将实际像素坐标Uc投影到某个指定半径的球面上得到U. 为了避免不共心导致的定位误差, 通过事先标定单个相机中心在一个全景相机坐标系下的旋转Ri和位置Ti, 得到表述共线条件方程的光束仍然是CUcP'首先将每个鱼眼影像上的像点转换到半径为r的球面上,然后计算球面点的极坐标,最后根据给定的全景图像宽高计算二维平面坐标. 对于全景图像难免存在融合误差, 如图1(b)所示, 不过在连接点提取过程中排除该误差, 不会影响鱼眼相机到全景相机之间的刚体几何转换.鱼眼相机标定为使得核线误差降低到1像素以下,本文对该模型加以改进,提出一种更为精确的鱼眼相机检校方法,显式地加入了鱼眼相机的成像过程BA类似ORB-SLAM优化方法, 不过改进g2o库使其适用于全景成像模型, 给出重投影误差函数式的解析导数形式, 即误差函数对于位姿即地图点的雅可比矩阵.图3: 三角形节点代表位姿,圆形节点代表地图点,边代表误差项 (a)位姿优化 (b)局部光束法平差 (c) 本质图优化 (d)全局光束法平差本文实现的优化算法包含4类:图3(a) : 单帧位姿优化(仅根据匹配的地图点计算当前帧的精确位姿)图3(b): 局部地图优化和平差(根据局部共视关键帧优化位姿与局部地图点)图3(c): 本质图优化(用于检测闭环后,对全局关键帧的位姿进行调整)图3(d) : 全局光束法平差(优化所有位姿和地图点)鱼眼图像上不同位置投射到球面上的变形不同,因此不同的点采用不同的误差阈值.2全景SLAM流程系统分为3个线程并行工作,分别为跟踪、局部地图构建、闭环. 所有步骤都经过调整, 可以在复杂的室外环境中对宽基线全景图像序列进行准确稳健的跟踪和定位.初始化将 ORB特征用于PAN-SLAM 系统的特征提取.鱼眼相机变形较大,匹配难度高,误匹配数量大.因此采用三帧而非两帧进行初始化.地图点跟踪关键帧选择本文的全景影像框幅高达8000×4000像素,由于车辆高速行驶,存在内存读写的限制,因此采用较大的采样间隔(1~3m ).局部地图构建根据全景相机的特殊情形,本文设定共视关键帧必须同时满足: ①与当前关键帧的共视点数≥50个;②与当前关键帧在图像序列中的间隔关键帧不超过40个;③其与当前关键帧的共视点在两帧所在金字塔层数差异>2的特征点数不超过总共视点数85%闭环检测我们使用类似于ORB-SLAM的循环检测过程, 但针对从不同方向捕获的全景图像引入了特殊的匹配策略. 在实践中, 即使对于针孔相机, 基于BoW的方法也无法很好地识别横向或反向闭环. 使用全景相机时,情况变得更糟.我们在这里采用了一种简单的对齐策略, 即将当前球面图像展开为搜索到的先前帧的方向的2D图像. 附带说明的是, 此过程相对较慢. 因此, 如果检测到足够的循环, 则可以跳过此步骤.4实验图2: 一个多鱼眼相机装备的例子. 该相机由五个鱼眼相机组成, 覆盖水平360°场景, 一个相机指向上方, 底部一行显示了展开和缝合的全景图像.第一个数据集作为由四个序列组成的主数据集, 是从三个不同城市的复杂街道场景中的宽基线车载Ladybug 相机(池田等人,2003)收集的. 在这四个序列中, 柏瓦序列是在东京大学柏瓦校区拍摄的, 由498幅基线约为2米的全景图像组成.使用这些数据集, 我们的PAN-SLAM系统主要与两个相关系统进行比较, 为多摄像机相机设计的Multicol-SLAM和为大视场摄像机设计的Cubemap-SLAM.该比较还包括单目ORB-SLAM2和校正后的鱼眼相机图像作为输入, 以展示全向相机相对于普通针孔相机的优势. 这三个SLAM系统都是用各自作者提供的开源代码实现的. 至于我们的PAN-SLAM系统,我们使用了两种模式, 鱼眼镜头和全景.鱼眼模式将水平鱼眼图像作为输入,从而提取和匹配特征.所有其他计算,包括基本矩阵计算和束调整,都在统一的全景坐标系中执行.在全景模式下,特征提取和跟踪直接在拼接全景图像中进行.另外两个序列:彩虹路和万柳路序列. 在中国天津采集.分别由3556和2610个Ladybug5全景图像组成, 基线为0.6米. 这两个序列用于我们的定性测试, 因为由于城市峡谷和隧道造成的遮挡和多径效应, 它们的全球定位系统测量不准确.第二个数据集由来自名为拉菲达(Urban and Jutzi,2017)的开源多鱼眼相机数据集的所有六个视频序列组成.两个室内序列:in_dynamic,in_static和四个室外序列:out_static、out_static2、out_rotation、out_large_loop. 是从三个紧紧安装在头盔上的鱼眼镜头相机上拍摄的,以754 × 480像素的相同分辨率均匀地覆盖了360个水平场景. 拉菲达数据集中使用的鱼眼相机的视场为185°, 焦距为1.25毫米. 视频序列以每秒25帧的速率采集, 室内环境的基线长度设置为0.03米, 室外环境的基线长度设置为0.05米. 拉菲达数据集的基本事实是通过高精度运动捕捉获得的(Urban and Jutzi,2017). 表2列出了五个数据集的信息.为了评估空间激光测距结果的定位精度, 选择了最少数量的全球导航卫星系统点, 通过3D相似性转换将空间激光测距坐标与地理参考坐标对齐, 并使用所有剩余的全球导航卫星系统/惯性导航系统点进行验证.我们的全景SLAM系统运行在Ubuntu 16.04平台上. 所有测试均采用2.8 GHz Intel CPU和8 Gb内存的笔记本电脑, 鱼眼或全景模式下的平均执行效率为每秒1帧. 对于每一帧, 处理5幅1616 × 1232鱼眼图像或4000 × 2000全景图像.表3比较了校正瓢虫3和瓢虫5鱼眼图像的不同模型. 利用棋盘上63个均匀分布的控制点求解模型;剩余的角点用于评估重新投影的准确性. 从表3可以看出, 当使用通用相机校准模型(Kannala和Brandt,2006)时,Ladybug3号相机的RMSE为0.88像素,而使用我们的模型时为0.50像素. 此外当使用通用模型时,Cam1和Cam 4的平均误差超过1像素.在Ladybug5相机实验中,我们的方法在RMSE的表现优于通用模型0.14像素(20%)。等距模型与失真参数的组合表现最差. 我们的标定方法通过引入最合适的物理鱼眼投影模型来补偿一般多项式的限制, 将所有鱼眼相机的平均重投影误差降低到1个像素以下,这是高精度全景SLAM系统的先决条件.(图六)图6显示了离群点消除后三幅相邻全景图像的匹配结果. 可以看出, 在由全景成像引起的近距离场景中, 由于较大的几何失真(红色边界框,图6), 仅保留了少数近距离特征.在鱼眼镜头模式下, 在摄像机4和5中能够匹配的点非常少(图6a). 这种情况偶尔会发生在五个鱼眼镜头相机, 这意味着任何单个鱼眼镜头相机在跟踪时都会遇到这些困难, 而360°全景图像则更加鲁棒. 图6(b)示出了全景模式下的匹配结果, 其中充分且均匀分布的特征可以被很好地跟踪.(图七)图七显示了使用不同策略的循环检测结果. 在柏洼数据集中, 由DBoW2 (Mark and Paul,2010)检测到52个循环, 其中大循环在相反方向上被访问了两次. 在Omiya数据集中有203个循环, 在彩虹道路数据集中有0个循环, 具有短的遍历轨迹(图7的第一行). 当使用我们的方向对齐策略时, 在柏洼数据集中检测到285个循环, 在彩虹道路数据集中检测到5个循环(图7的第二行). 由于没有遍历或反向轨迹, 在Omiya数据集中检测到的循环数量保持不变. 表4显示了以100%精度检测到的循环的召回率. 测试结果表明, 原始的BoW方法无法检测到从不同方向展开的全景图像中的大部分环, 而通过我们简单的对齐策略, 可以在横向或反向驱动下检测到足够数量的环.表5显示了室外环境的柏和Omiya序列上每个系统的定位精度、旋转精度和成功跟踪的地图点和帧的数量. 由于Multcol-SLAM无法跟踪其中任何一个(初始化后不久就丢失了), 我们没有列出它. 我们用鱼眼模式表示我们的PAN-SLAM,用全景模式表示PAN-SLAM.与其他系统相比,这两种模式都显示出明显更好的结果.对于Cubemap, 我们对全景图进行了预处理将图像转换成立方体大小为800 × 800 × 800像素的cubemap作为系统输入. 使用此设置,我们发现系统在我们的数据集中获得了最佳性能.Cubemap-SLAM以高定位精度跟踪两个序列中的许多帧和地图点,但是当柏瓦序列发生急转弯时, 跟踪丢失. ORB-SLAM只跟踪了两个序列中漂移很大的非常小的片段, 因为它只处理了FoV有限的校正前视摄像机. PAN-SLAM是唯一完成整个柏瓦序列的系统, 也达到了0.14米ATE的高定位精度.PAN-SLAM和Cubemap-SLAM都在Omiya序列的第5283帧停止, 因为有几幅图像曝光过度, 这是一个极具挑战性的场景. 然而我们的系统保存了以前跟踪的地图, 并在跟踪丢失时重新初始化以继续跟踪剩余的序列. 我们为跟踪的路段选择了15个均匀分布的地面控制点, 以产生一个一致的全局地图, 其自动目标高度为0.17米. 每个SLAM系统的相应轨迹如图8所示. 由于这两种模式的轨迹是相似的, 我们只显示了鱼眼镜头轨迹.(图八)除了ATE指标, 我们还评估了在柏瓦序列中使用3D GCPs的定位精度. 如图9所示, 五个控制点位于房屋角落(HC 1、2、3、4、5), 三个控制点位于路标处(RM 1、2、3). 控制点的像素坐标是在两个相邻的全景关键帧上手动测量的, 3D坐标是用SLAM姿态三角测量的, 并且计算它们与地面真实情况之间的距离, 如表6所示. 平均定位误差和RMSE分别为0.147米和0.157. 相交角度较大的点比相交角度较小的点更精确.拉菲达数据集上的SLAM系统的性能也与自动测试设备度量进行了比较(表7), 它们的跟踪轨迹如图10所示. 考虑到三个185 FoV鱼眼相机生成的全景图像会丢失大量信息(相机之间的大重叠区域), 并会导致明显的拼接偏差, 我们仅使用PAN-SLAM的鱼眼模式进行比较. 由于Cubemap-SLAM的性能随着cube大小的不同而变化, 经过人工试错, 我们选择了最好的(650 × 650 × 650)进行比较. 由于拉菲达数据集非常小, 那些无法跟踪三分之一帧的系统会失败, 并在表中用“X”表示. 从ORB-SLAM的轨迹显示出明显的大漂移, 并且ATe明显大于其他的.在out_large_loop序列中,它只跟踪了3176帧中的三分之二.在六个序列中的五个序列中,Multicol-SLAM的ATE比Cubemap-SLAM和我们的系统大.它也无法跟踪out_large_loop序列.Cubemap-SLAM在六个序列中的三个序列中获得了最低的ATE. 但是它在out_rotation序列中失败.我们的PAN-SLAM比所有其他系统都更鲁棒,在六个序列中的三个序列中实现了最低的ATE, 并跟踪了许多地图点. 所有的系统获得了类似的旋转精度.(图十)总之与其他相比,我们的PAN-SLAM表现出了显著的优势, 特别是在不同尺度、室内和室外环境以及视频和宽基线模式下的无与伦比的鲁棒性.在不考虑鲁棒性的情况下,Cubemap-SLAM的定位精度与我们的系统相当.单目ORB-SLAM2和多目SLAM都不能处理所有复杂的情况.利用天津市彩虹路和万柳路数据集研究了全球导航卫星系统弱区域系统的鲁棒性, 这两个数据集的地理配准精度较低. 在彩虹道路测试中(图11), 全球导航卫星系统信号受到峡谷效应的严重损害(见谷歌地图上的鸟瞰图像). 相比之下, 我们的PAN-SLAM获得了更平滑的跟踪结果(见矩形), 并且在这个数据集中没有任何跟踪丢失的情况下平滑运行.Cubemap-SLAM也表现不错, ORB-SLAM2和Multicol-SLAM在初始化后不久就失败了.万柳路数据集(图12)是一个具有挑战性的数据集, 覆盖了一条长隧道(矩形区域). 那里的全球导航卫星系统信号完全被屏蔽了. 隧道很暗, 导致成像效果很差, 如直立的角落所示. 尽管如此, 我们的PAN-SLAM在隧道中运行非常平稳,并跟踪了一张轨迹图类似于谷歌地图上的鸟瞰图. 相比之下,Cubemap-SLAM在黑暗的隧道中间迷失了方向,ORBSLAM2和Multicol-SLAM在初始化后不久再次失败当应用于从三个鱼眼相机获得的小规模视频序列时,只有第4节中描述的几个参数(例如,公式(14)中的误差阈值和球体半径)必须重置, 这些参数是专门为我们的PAN_SLAM中的宽基线全景图像序列设计的. 这表明我们的系统可以推广到大多数使用多鱼眼相机的情况.与我们系统中使用的统一球体模型类似, 立方体模型用于Cubemap-SLAM中, 以实现其对宽基线模式的鲁棒性. 然而Cubemap-SLAM只支持每帧输入一幅鱼眼镜头图像,不能处理多摄像机设备.此外它只处理立方体的五个面(前、左、右、顶、底)上的要素,这导致与我们的系统相比, 被跟踪的地图点更少. 当急转弯和低纹理场景出现时, 跟踪特征的不足最终导致无法完成柏和万柳_路的整个序列. 在相比之下, 我们的系统可以处理单目鱼眼镜头相机、多目鱼眼镜头相机和全景相机输入,并适应360 FoV的所有特征,从而确保平滑跟踪.我们跟踪全景图像序列的特殊修改有助于PAN-SLAM系统的成功. 首先我们使用抑制冗余帧和不稳定地图点的限制来更新第4.4节中描述的关键帧连接,以提高输出的效率和鲁棒性.在图13(a)中, 减少的关键帧连接减轻了计算成本. 但更重要的是,它可以降低弱几何形状的风险(例如共同可见的点位于彼此远离的两个帧的中心的中点). 二、动态窗口搜索策略(Eq(15)), 而不是固定的窗口, 提高了匹配质量, 增加了8%的内联(图13(b)), 这对于在提取的特征稀少的一些具有挑战性的情况下的平滑跟踪是至关重要的.挑战在四个大规模数据集和六个小规模数据集中, 我们的PAN-SLAM系统遇到了五个中断,这些中断只发生在彩虹路和Omiya序列中, 其中两个通过特定的改进得到了修复. 第一次中断发生在万柳路序列(图14中的顶行)进入隧道时, 此时突然的亮度变化导致特征匹配困难.我们预先计算了伽玛非线性响应曲线, 并校准了图像的光度偏差. 在应用伽马校正之后, 如图14所示, 曝光质量显著提高, 以确保成功跟踪. 第二个中断发生在Omiya序列中, 从移动的车辆中提取的太多特征导致匹配失败. 为了解决这个问题, 我们使用了一个预先训练好的面罩模型在COCO数据集(林等,2014)上预测车辆的遮挡, 并排除运动车辆上的那些特征,实现平滑跟踪.剩下的三个中断, 还没有修复, 都是由Omiya序列上极度曝光不足或曝光过度的情况引起的, 如图14所示.即使在应用伽马校正来提高曝光质量时,也跟踪不到足够的特征.5结论我们开发了一个基于特征的全景SLAM系统,称为PAN-SLAM,它处理从安装在MMS-mounted鱼眼镜头拍摄的宽基线全景图像序列. 我们的PAN-SLAM系统为跟踪、建图和优化提供了一个自动和完整的解决方案. 我们证明了我们的系统达到的定位精度相当于昂贵的商用全球导航卫星系统/惯性测量单元跟踪系统.SLAM系统不仅适用于大型室外环境中的全景摄像机,也适用于小型受控环境中的多摄像机设备.与单个大型FoV摄像机的Cubemap-SLAM和多鱼眼摄像机的Multicol-SLAM相比,我们的系统在大规模宽基线数据集和小规模视频数据集的配置中表现出更高的鲁棒性.此外,我们将ORBSLAM2与单目鱼眼相机进行比较,表明全向相机优于普通相机.本文仅做学术分享,如有侵权,请联系删文。下载1学习3D视觉核心技术,扫描查看介绍,3天内无条件退款圈里有高质量教程资料、可答疑解惑、助你高效解决问题

苏舆

一个超干货的3D视觉学习社区

成立近两年来,工坊深挖3D视觉的各个领域,主要涉及计算机视觉与深度学习、点云处理、SLAM、三维重建、结构光、双目视觉、深度估计、3D检测、自动驾驶、多传感器融合等,在校的童鞋和已经工作的小伙伴为我们提出了很多非常有价值的问题,在这里给大家做了汇总(可能有点烧脑哦……)点云处理篇点云补全有哪些常用的算法?常用的点云分割算法有哪些?如何对点云进行线面拟合?有哪些方式?点云配准的常用方法有哪些?哪一种算法在速度和精度上占优势?点云的特征提取方式有哪些?有哪些描述子?基于深度学习的点云分割算法有哪些?精度如何?常用的点云分类算法有哪些?准确率如何?怎么测量点云的体积?如何测量点云拟合平面的面积?您好,请问有有关3D点云的缺陷检测和点云补全的资料吗?想问下有没有三维激光雷达点云配准拼接的代码工程之类的?现在有没有对于sfm或者slam之后得到的点云进行补全处理的工作啊?你好,请问点云表面重建有哪些方法呀?请问怎么把点云投影到一个以点云平均点为圆心的球面上,然后再对球面进行三角网格化。请问一下,有没有关于点云增强方面的综述性质的文章或者帖子呢?针对点云增强这一点云和深度图怎么转换呢?请问如果想要为点云图中某个物体的边界处的稀疏点云进行加密,通俗一点说就是使物体边界处的点云更加稠密,有什么相关的论文和方法吗?点云增强这个领域,除了点云补全,还有哪些具体的方向呢? ……SLAM请问现在比较新且效果较好的Visual SLAM /Visual+Inertial SLAM 算法有哪些呢?如果能支持双目RGB或RGB-D的更好!请问怎么用单目普通相机的slam来做三维重建呢,对比sfm改做何区别比较好?您好,我想问下视觉惯性vio非线性优化这块,原理不是很懂,想知道他到底做了什么事?大佬好,最近又遇到难题了。项目需求是有轨小车的障碍物检测项目,需要检测小车四周是否有障碍物,并输出障碍物的距离值,距离值精度要求很低。目前的困难是相机视场角太小,怎样才能做到类似全景检测?请大佬给个思路,谢谢您。想请问下有没有无人机三维建模的开源项目?……三维重建篇基于图像的三维重建中,由稀疏点云获得稠密点云的原理和实现的技术方式都是什么呢?可以用MATLAB做基于多视角图片的三维重建吗?就是用SFM+MVS。或者,老师有推荐的建模工具吗?使用mvsnet做三维重建,在估计自采数据的深度范围时,有合适的取值范围参考吗?近期,室内三维重建融合语义的开源方案有哪些?老师让我做的课题是用给定视频进行水下的场景重建。但是水下场景颜色比较单一,用colmap进行重建时候数据集中能用在重建的图片较少,导致点云相比实际有误差。那这种情况下要怎么对点云进行矫正和漏洞补全呢?有近景摄影测量相关的公式推导吗?比如前方交会,后方交会,相对定向等?我想请问一下在单目三维重建过程中,对投影仪的标定,一般用什么来评价所用方法对投影仪标定精度的有效性? ……姿态估计篇目前做物体6D姿态估计的网络中,有没有应用深度补全来提升精度以及提升遮挡下的识别效果的呢?如何自己制作6D位姿估计的深度学习的数据集?请问谁有论文A method for 6D pose estimateof free-form rigid objects using point pair features on range data 的复现代码?请问有人有做过基于RGB-D的目标定位和位姿估计?现有基于RGB、RGBD、点云数据的姿态估计算法都有哪些?深度学习方式的姿态估计算法有哪些?精度怎么样?可以应用到工业上吗?PPF算法的改进点有哪些?有哪些改进算法?机器人视觉引导中的姿态识别思路是什么?计算速度怎么样? ……结构光篇为什么有的格雷码三维重建的方法需要投射水平和竖直条纹呢,而有的只需要竖直条纹呢?最近研究生导师让我研究一下结构光编码相关的内容,请问您在空间编码和时序编码这两方面,重点是空间编码这边有什么论文或资料推荐嘛?想请问一下在结构光单目三维重建中有没有不标定投影仪而实现标定的,我目前的课题是由一个高速相机和一个投射光栅条纹的激光器组成的系统,传统逆向标定投影仪的方法不能使用,所以希望大佬们给一些标定上的建议。我使用的是格雷码+相移编码光栅,在经过解码得到绝对相位后,怎么计算得到深度图?立体匹配,三维重建后发现类似摩尔纹的情况,请问这种情况怎么处理?请问有关于线结构光传感器标定的综述论文可以推荐吗?目前在做双目结合结构光(格雷码)的三维重建,该怎么把格雷码和双目立体匹配融合呢?您好!想问一下这个结构光检测缺陷时候,图像和激光点云的关系是怎么样的,他和普通的基于图像的检测有什么不同吗?用双目结构光多频外差单视角重建出来的点云有分层现象,是什么原因呢?是深度方向分辨率低吗?刚开始学习双目结构光,不是很清楚应该如何学习,有没有什么书籍视频资料之类的希望能给推荐一下? ……双目视觉篇一直搞不懂,双目拍得一组的两幅图像,提取特征点、立体匹配、三维重建之后。这一组图片结果与其他组图片结果,用什么方法融合在一起呀?请问有没有什么经典的双目估计深度的文章可以推荐一下?双目视觉,对于遮挡区域的视差估计或者遮挡区域的深度补全,有比较新的论文推荐吗?有没有双目三维目标检测的实战算法?双目视觉三维重建时,想要获得点云是左右视差图都要用到吗?双目视觉的瓶颈在哪里?如何改进?你好,最近看到一些基于深度学习方式的双目重建,速度很快,这种方式有应用价值吗?立体视觉的匹配速度有哪些改进的方式? ……深度估计篇请问有没有什么经典的双目估计深度的文章可以推荐一下?请问深度估计输出的深度值,是点到相机平面的垂直距离,还是到相机镜头的距离?对于双目深度估计任务端到端,非端到端模式区别在哪里?有哪些自监督方式的单目深度估计算法?请问现在关于单目图像深度估计比较领先的算法和开源工具有哪些?哪些算法在特征点很少的图像中表现比较更好?打算用无监督学习来做深度估计,但是数据集没有真值,这样做出来的结果怎么做定量评估呢?有没有除了真值以外的评价深度估计算法效果的方法呢?我想请问一下,现在基于深度学习的单目视觉估计能够应用在工业实际项目中了?如何解决单目深度估计远距离误差大的问题? ……3D检测篇我想问一下有哪种比较好落地的3D目标检测算法,最后实现的效果是能获取目标的姿态估计这样的效果基于Lidar点云数据的3D检测算法有哪些?基于双目和单目的3D检测算法有哪些?基于多模态数据融合的3D检测算法有哪些?如何使用Radar和Camera融合数据进行3D检测? ……自动驾驶与多传感器融合篇Lidar和Camera的标定方式和工具有哪些?Lidar和Radar的标定方式有哪些?多相机标定方式有哪些?Lidar和双目相机标定融合的paper有推荐吗?激光雷达、Camera、毫米波雷达融合怎么做融合?手眼标定方式有哪些?Laser和相机的标定方式?IMU、Camera的融合代码有吗? ……百篇综述paper双目视觉的匹配算法综述基于立体视觉深度估计的深度学习技术研究(综述)单目图像的深度图估计:综述机器视觉表面缺陷检测综述最新机器人抓取点检测、物体6D姿态估计paper汇总:堆叠场景、遮挡场景、单目图像、深度学习方式等基于视觉的机器人抓取,从目标定位、姿态估计、抓取检测到运动规划类综述超详细的3D Machine Learning教程:涉及数据集集合、三维模型、三维场景、三维姿态估计、单目标分类、多目标检测、场景/对象语义分割、三维几何合成/重建;A Review on Object PoseRecovery: from 3D Bounding Box Detectors to Full 6D Pose EstimatorsA Survey on Deep Learning forLocalization and Mapping:Towards the Age of Spatial Machine IntelligenceA survey of variational andCNN-based optical flow techniquesMultisensor data fusion: Areview of the state-of-the-artA Review of Data FusionTechniquesReview: deep learning on 3Dpoint clouds3D indoor scene modeling fromRGB-D data:a surveyAutomatic Target Recognition onSynthetic Aperture Radar Imagery: A SurveyEvent-based Vision: A SurveySelf-Driving Cars: A SurveyRGB-D Odometry and SLAM:基于RGB-D的视觉里程计和SLAM综述Image-based 3D Object Reconstruction:State-of-the-Art and Trends in the Deep Learning Era4Deep Learning for Image andPoint Cloud Fusion in Autonomous Driving: A ReviewA Survey of SimultaneousLocalization and Mapping with an Envision in 6G Wireless NetworksGraph-based SLAM: a surveyVisual simultaneouslocalization and mapping a surveyTopological simultaneouslocalization and mapping a surveyKalman Filter for Robot Vision:A SurveyTarget-less registration ofpoint clouds: A review【点云无目标配准综述】A Review of Point Cloud SemanticSegmentation#【基于点云的语义分割综述】 ……「3D视觉从入门到精通」知识星球超全的资料和答案获取,请移步到「3D视觉从入门到精通」知识星球:一个超干货的3D视觉社区,目前已有近2000+的小伙伴加入学习,每天都有新知识分享。什么是知识星球?知识星球是一个高度活跃的社区平台,在这里你可以和相同研究方向的小伙伴一起探讨科研工作难题、交流最新领域进展、分享paper资料、发布高质量的求职就业信息,当然还可以侃侃而谈,吐槽学习工作生活。3D视觉从入门到精通知识星球这是国内最大的3D视觉领域学习交流的社区平台,目前已有近2000名活跃的成员,主要涉及3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、缺陷检测、视觉产品落地、视觉竞赛、硬件选型、学术交流、求职交流等领域。星球内部汇集了众多实战问题(相信一定能帮你少走很多弯路),以及各个模块的学习资料:论文、书籍、源码、视频等。针对小白,星球推出了学习路线,能够帮助新人逐渐进阶学习,我们的vip群更是营造了良好的学术交流环境。针对需要进阶的童鞋,星球汇总了大量的前沿技术资源,相信这些内容一定能够帮助到个人的成长发展。星球的成员组成星球汇集了国内外各个高校的研究生、博士生,包括但不限于清华大学、上海交通大学、华中科技大学、武汉大学、南京大学、北京理工大学、北京航空航天大学;以及国外留学的小伙伴,主要就读于南加州大学、墨尔本大学、慕尼黑工业大学、亚琛工业大学等。除此之外,还有很多一线工作的算法工程师、开发人员,包括但不限于百度、旷视、华为、奥比中光、云从、阿丘科技等。星球的主要嘉宾「3D视觉从入门到精通」知识星球是一个技术社区,在这里你可以讨论任何3D视觉相关的难题、前沿技术。星球邀请了国内外高校博士(北航、慕尼黑工业大学等)、CV独角兽公司CTO/CEO、以及各大厂的算法工程师解惑。在这里,你可以一对一和大佬交流,提出自己在工作学习上的疑问。合作企业知识星球现已和众多公司建立了良好的合作关系,公司内的算法负责人会不定期的来内部进行前沿技术/产品分享,除此之外,星球也为公司推荐合格的算法/开发人才。现有合作企业包括但不限于:华为云、腾讯、图漾科技、镭神智能、中科慧眼、INDEMIND、迁移科技、追势科技等~为什么给大家推荐「3D视觉从入门到精通」知识星球呢?下面先简单以几张图片总结星球的主要内容:往期干货展示:二 视频课程:更多干货汇总:随着我们队伍的不断壮大,目前星球嘉宾及合伙人,主要包括多个大厂的计算机视觉算法工程师、深度学习算法工程师、结构光三维重建算法工程师、资深VSLAM算法工程师、3D视觉测量方向的点云后处理资深算法工程师、标定算法工程师以及国内外知名高校博士等近20多位成员。星球主要关注3D视觉、vSLAM、三维重建、点云处理、立体视觉、结构光、深度学习、计算机视觉和图像处理等方向。日常分享各个领域的最新进展和经典论文,会员可以免费对嘉宾进行技术提问,完成一对一的指导解答,星球的初衷是让更多的童鞋能够尽快熟悉自己研究的3D视觉领域,少走一些弯路。目前我们的星球嘉宾已经陆续为我们的星球成员带去了线上课程,包括:基于深度学习物体抓取位置估计、相机标定的基本原理与经验分享、基于点云的三维物体表示与生成模型、聊聊目标检测与秋招那些事儿、基于激光雷达的感知与定位导航应用、图像对齐算法、中科慧眼崔峰博士详解深度相机原理及其应用、......后期会陆续针对星球里的内容,进行进一步讲解与指导。同时,我们的星球更是入驻了多个企业的创始人及CTO,优秀的学员,我们将优先内推到企业。「3D视觉从入门到精通」知识星球星球是目前唯一以3D视觉系统化学习为主题的高质量知识星球,目前已经有近2000个小伙伴进入学习。主要有以下几个亮点:1、星主及合伙人共同答疑。星球的合伙人先后就职于国内知名研究机构、自动驾驶公司、海康研究院,主要研究方向为深度学习、目标检测、语义分割、图像处理、自动驾驶感知算法,同时也是CSDN博客专家。星主先后任职于国内知名研究院、知名大厂,一直致力于3D视觉算法、VSLAM算法的开发,涉及相机标定、手眼标定、结构光视觉、点云后处理、编程优化等相关领域的研究。对于星球里的提问,将由星球和合伙人协同作答,星球成员一起探讨,直至得到最佳解。2、技术介绍不枯燥、详细且有趣。该系列以最基础的知识开始介绍,单个帖子介绍一个具体的知识点,尽量做到图文并茂,生动有趣,并将结合视频课程,对3D视觉的每个重要技术细节一点点深挖。平时再忙没关系,业余时间可以反复观看。(从加入起,有效期一年,到期后,之前已发布内容仍可查看)。3、技术内容重实践、实操性强。笔者及合伙人会根据不同的知识点设计一些可实践性的练习题,俗话说,实践出真知,只有在实践中获得的认知才是最真切的,假以时日,高效提升解决问题的能力才是王道。4、精选3D视觉项目常见问题。3D视觉理论到产品落地,这中间会涉及方方面面的细节问题,比如编程优化加速、相机硬件选型、编程工具等,这些是一个优秀开发者需要具备的综合技能。笔者与合伙人会结合各自的项目经历做定期分享,帮助大家提升综合能力。5、高质量的交流、讨论、学习社区。星球内所有成员都可以进行发布问题、分享知识、上传资源、点赞、留言、评论等操作。对于小伙伴提出的问题,我们大家皆可以参与交流、讨论。所有的交流讨论及问题、资源分享等,星主都将会定期整理,方便日后快速查询。小伙伴们在学习或者项目中遇到问题都可以在星球里免费提问,星主看到后及时答疑解惑。尾注1、 新进星球的同学请查看置顶帖子「内容快速导航」,尽早跟上节奏。我们将隔一段时间对星球里的知识点和帖子进行整理,更新,所以大家务必请关注置顶帖子。2、 本课程的优势:非常完善的3D视觉学习路线,逐步攻克3D视觉中的每个重要知识点。鉴于星球里截止目前已经分享了近1500个帖子,涉及SLAM、三维重建、3D深度学习、多传感器融合、双目视觉、多视图几何、图像处理、编程调试技巧、点云后处理、针孔模型及鱼眼镜头标定、读书心得、项目实战、招聘需求等,以后会不间断增加其他知识点,减少知识盲区。对于择业、研究方向选择等问题,星球里都可以免费提问,让你进一步避免踩坑。知识星球需付费,越早越优惠。学习切忌单打独斗,一个优质的学习圈子助你快速入门、高效解决问题,少走弯路。只要每天不到几毛钱,即可把握住时代的风口,与优秀的小伙伴一起交流、进步,为就业增添砝码。下面是星球内部交流讨论部分截图:备注:加入星球后,可获取星球独家学习视频。

老哨卡

如何在Gazebo里仿真ROS机器人的SLAM建图和导航

上一节我们介绍了wpr_simulation这个开源项目的简单使用,这一节我们继续深入,在Gazebo里进行SLAM建图和Navigation导航的仿真。一、代码更新项目wpr_simulation的代码为这次实验进行了更新,需要重新下载。如果之前有下载了老版本的代码,可以进入~/catkin_ws/src,直接删除wpr_simulation文件夹,然后按照下面操作下载新的代码。从Ubuntu桌面左侧的启动栏里点击“Terminal”终端图标,启动终端程序(也可以通过同时按下键盘组合键“Ctrl + Alt + T”来启动),输入如下指令下载项目源码:其中“catkin_ws”为ROS的工作空间,请根据电脑的环境设置进行修改。这个项目的源码是从Github网站下载的,所以下载过程需要连接互联网。然后是启智ROS机器人的源码包wpb_home,这个项目如果之前已经下载过,这次不用更新,使用以前的代码也可以。所有源码下载完成后,运行如下指令进行源码工程的编译:这个开源工程,用到了Gazebo,如果之前安装的ROS是完整版本,则会很顺利的编译通过。如果编译过程中提示缺少某些依赖项,可以通过如下指令补充完整:二、SLAM原理简介在进行具体实验之前,我们先简单介绍一下原理。“SLAM”,英文全称是“Simultaneous Localization And Mapping”,翻译过来就是“即时定位与地图构建”。SLAM最早由Smith、Self和Cheeseman于1988年提出,由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。要理解SLAM,先得理解激光雷达的数据特点,激光雷达的扫描数据可以理解为一个障碍物分布的切面图,其反映的是在一个特定高度上,障碍物面向雷达的面的边缘形状和分布位置。所以,当携带激光雷达的机器人在环境中运动时,它在某一个时刻,只能得到有限范围内的障碍物的部分轮廓和其在机器人本体坐标系里的相对位置。比如在下图中,反映了一个机器人在相邻比较近得A、B、C三个位置激光雷达扫描到的障碍物轮廓。虽然此时我们还不知道位置A、B、C的相互关系,但是通过仔细观察,可以发现在A、B、C三个位置所扫描到的障碍物轮廓,某一些部分,是可以匹配重合的。因为这三个位置离得比较近,我们就假设扫描到的障碍物轮廓的相似部分就是同一个障碍物,这样就可以试着将相似部分的障碍物轮廓叠加重合在一起,得到一个更大的障碍物轮廓图案。比如位置A和位置B的障碍物轮廓叠加后如下:再比如,位置B和位置C的障碍物轮廓叠加后如下:按照上述的方法,将连续的多个位置激光雷达扫描到的障碍物轮廓拼合在一起,就能形成一个比较完整的平面地图。这个地图是一个二维平面上的地图,其反映的是在激光雷达的扫描面上,整个环境里的障碍物轮廓和分布情况。在构建地图的过程中,还可以根据障碍物轮廓的重合关系,反推出机器人所走过的这几个位置之间的相互关系以及机器人在地图中所处的位置,这就同时完成了地图构建和机器人的自身实时定位这两项功能,这也就是“SLAM”全称“Simultaneous Localization And Mapping”的由来。同样以前面的A、B、C三个位置为例,将三个位置的激光雷达扫描轮廓拼合在一起,就能得到一个相对更完整的平面地图,同时也得出A、B、C三个位置在这个地图中的位置:ROS支持多种SLAM算法,其中主流的是Hector SLAM和Gmapping,其中Hector SLAM仅依靠激光雷达就能工作,其原理和前面描述的方法比较类似;Gmapping则是在上述方法的基础上,还融合了电机码盘里程计等信息,其建图的稳定性要高于Hector SLAM。在这一节实验里,我们主要使用Gmapping。三、SLAM建图的仿真我们先进行SLAM建图的仿真。在这个仿真中,我们将使用Gmapping算法,需要使用USB手柄来控制机器人在场景中进行移动,遍历所有活动区域,建立环境地图。将手柄接到电脑USB上之后,通过如下指令启动SLAM建图的仿真场景启动后,会弹出Gazebo窗口,里面显示的是一个模拟RoboCup@Home比赛环境的场景。场景中共有四个房间,分别为客厅、卧室、餐厅和厨房,在每个房间里都放置了一些床、柜子之类的家具。这个场景还有两个出入口,我们的机器人初始位置就位于靠近客厅的这个入口。我们建图的效果,主要是在Rviz里进行观察。在Ubuntu的左侧任务栏里,可以看到Rviz的程序图标,用鼠标点击将Rviz界面唤回前台显示。在Rviz里,可以看到机器人面前大片的地面基准都是深灰色,只有机器人脚下出现一片白色图案。这个图案,是由很多条线段叠加而成,这些线段是机器人本体中心地面投影和每一个激光雷达红色障碍点的连线,也就是测距激光飞行的轨迹,表示这条线段内部没有障碍物。我们可以使用USB手柄遥控机器人移动,在场景里巡游,Gmapping会调用内部的SLAM算法,把整个场景的地图都扫描出来。如果没有USB手柄怎么办?没关系,这里准备个程序,可以使用键盘控制机器人完成巡游移动。在Ubuntu里再打开一个终端,输入如下指令:回车执行后,会提示控制机器人移动对应的按键列表。需要注意的是,在控制过程中,必须让这个终端程序位于Gazebo窗口前面,处于选中状态。这样才能让这个终端程序能够持续获得按键信号。用键盘控制机器人移动的时候,只需要点一下键盘按键就可以让机器人沿着对应方向移动,不需要一直按着不放,必要的时候使用空格键刹车。机器人在场景里巡游一遍之后,可以看到建好的地图如下:我们把地图保存下来,后面进行自主导航时会用到。保存地图时,需要保持Gmapping的程序仍在运行,不能关闭建好图的Rviz界面。启动一个终端程序,输入以下指令:按下回车键,确认保存。保存完毕后,会在Ubuntu系统的“主文件目录”里生成两个新文件,一个名为“map.pgm”,另一个名为“map.yaml”,这就是我们使用Gmapping建好的环境地图。现在我们可以关闭Gazebo和Rviz窗口,准备进行导航的仿真。SLAM建图仿真视频四、Navigation导航仿真首先,将“主文件目录”里的“map.pgm”和“map.yaml”两个文件都拷贝到工作目录“catkin_ws/src/wpr_simulation/maps”里:这个复制操作也可以在“文件管理器”里用鼠标完成:地图文件放置完毕,输入以下指令启动导航仿真:按下回车键,系统会启动Gazebo窗口,可以看到机器人又回到初始的那个入口。在Ubuntu的左侧任务栏里,可以看到Rviz的程序图标,用鼠标点击将Rviz界面唤回前台显示。在Rviz窗口中,可以看到机器人位于我们刚才建好的地图当中。再仔细看看此时的地图,在原来的黑色图案(静态障碍物轮廓)的周围,出现了蓝色的色带,这个色带表示的是安全边界,色带宽度和机器人的半径大致相等。也就是说如果机器人进入这个色带,就有可能和静态障碍物(墙壁或桌椅腿)发生碰撞,这个安全边界在后面机器人规划路径时会用到。另外一个可以注意到的,Rviz中机器人的当前位置在地图中央,这个和实际机器人位置不符。我们需要在导航前将机器人设置到正确的位置,点击Rviz界面上方工具栏条里的“2D Pos Estimate”按钮:然后再点击Rviz的地图里,现实机器人所处的位置。这时,会出现一个绿色大箭头,代表的是机器人在初始位置的朝向。按住鼠标键不放,在屏幕上拖动画圈,可以控制绿色箭头的朝向。在Rviz中拖动绿色箭头,选择好朝向,松开按键,机器人模型就会定位到我们选择的位置。调整虚拟机器人的初始位置,直到红色的激光雷达数据点和静态障碍物的轮廓大致贴合。设置好机器人的初始位置后,可以开始为机器人指定导航的目标地点。点击Rviz界面上方工具条里的“2D Nav Goal”按钮:然后点击Rviz里地图上的导航目标点(通常在白色区域里选择一个地点)。此时会再次出现绿色箭头,和前面的操作一样,按住不放在屏幕上拖动画圈,设置机器人移动到终点后的朝向。选择完目标朝向后,松开点击,全局规划器会自动规划出一条紫色的路径,这条路径从机器人当前点出发,绕开蓝色的安全边界,一直到移动目标点结束。路径规划完毕后,机器人会开始沿着这条路径移动,此时切换到Gazebo窗口,可以看到仿真环境里的机器人也开始沿着这条路径移动。机器人到终点后,会原地旋转,调整航向角,最终朝向刚才设置目标点时绿色箭头的方向。Navigation导航仿真视频五、用代码控制机器人进行导航ROS中的Navigation导航过程是可以通过代码来控制的,这里有个简单的导航程序可以供我们参考,它的源代码位置:我们可以用Visual Studio Code之类的IDE打开这个源码文件:(1) 代码的开始部分,先include了三个头文件,第一个是ros的系统头文件,第二个是导航目标结构体move_base_msgs::MoveBaseGoal的定义文件,第三个是actionlib::SimpleActionClient的定义文件。(2) ROS节点的主体函数是int main(int argc, char** argv),其参数定义和其他C++程序一样。(3) main函数里,首先调用ros::init(argc, argv, "demo_simple_goal");进行该节点的初始化操作,函数的第三个参数是节点名称。(4) 接下来声明一个MoveBaseClient对象ac,用来调用和主管监控导航功能的服务。(5) 在请求导航服务前,需要确认导航服务已经开启,所以这里调用ac.waitForServer()函数来查询导航服务的状态。ros::Duration()是睡眠函数,参数的单位为秒,表示睡眠一段时间,这段时间若被某个信号打断(在这个例程里,这个信号就是导航服务已经启动的信号),则中断睡眠。所以ac.waitForServer(ros::Duration(5.0));的意思就是:休眠5秒,若期间导航服务启动了,则中断睡眠,开始后面的操作。用while循环来嵌套,可以让程序在休眠5秒后,若导航服务未启动,则继续进入下一个5秒睡眠,直到导航服务启动才中断睡眠。(6) 确认导航服务启动后,我们声明一个move_base_msgs::MoveBaseGoal类型结构体对象goal,用来传递我们要导航去的目标信息。goal.target_pose.header.frame_id表示这个目标位置的坐标是基于哪个坐标系,例程里赋值“map”表示这是一个基于全局地图的导航目标位置。goal.target_pose.header.stamp赋值当前时间戳。goal.target_pose.pose.position.x 赋值-3.0,表示本次导航的目的地是以地图坐标系为基础,向X轴反方向移动3.0米。goal.target_pose.pose.position的y赋值2.0,表示本次导航的目的地是以地图坐标系为基础,向Y轴正方向移动2.0米。goal.target_pose.pose.position的z未赋值,则默认是0;goal.target_pose.pose.orientation.w 赋值1.0,则导航的目标姿态是机器人面朝X轴的正方向(正前方)。(7) ac.sendGoal(goal);将导航目标信息传递给导航服务的客户端ac,由ac来监控后面的导航过程。(8) ac.waitForResult();等待MoveBase的导航结果,这个函数会保持阻塞,就是卡在这,直到整个导航过程结束,或者导航过程被其他原因中断。(9) ac.waitForResult()阻塞结束后,调用ac.getState()获取导航服务的结果,如果是“SUCCEEDED”说明导航顺利到达目的地,输出结果“Mission complete!”;若不是这个结果,输出结果“Mission failed ...”。下面试着在我们的仿真环境里运行这个程序。首先和刚才一样,先通过下面的指令打开仿真环境:在Ubuntu的左侧任务栏里,可以看到Rviz的程序图标,用鼠标点击将Rviz界面唤回前台显示。通过Rviz界面上方工具栏条里的“2D Pos Estimate”按钮将机器人设置到地图的入口处。下面运行demo_simple_goal程序,驱动机器人完成导航任务。启动终端程序,输入以下指令:按下回车键后,可以看到demo_simple_goal节点发出导航服务请求的提示“Sending goal”。此时再查看Rviz的显示界面,可以看到一条紫红色的线条从机器人脚下延伸到目标点,路径规划成功。切换到Gazebo窗口,可以看到机器人沿着规划的路径,缓慢移动到目标点。机器人到达目标点后,可以看到显示顺利到达导航目的地的信息“Mission complete!”六、仿真场景的改变这个实验的场景里的家具是可以进行移动调整的,在Gazebo窗口的工具栏里,点击“移动”图标。然后再点击场景里的任意物体(家具),会看到物体身上出现了xyz三个轴的正方向箭头。点击其中任意一个方向,按住鼠标拖动,就能够移动这个物体。场景布局改变后,我们可以再次进行建图和导航的仿真,对比不同环境下的运行效果。七、问题反馈至此,关于这个仿真项目的建图导航部分就介绍完了,如果同学们在安装和使用过程中遇到问题,可以在这个项目的Github主页上提交issuse,我们会及时回复,让其他遇到类似问题的小伙伴也能看到。提交issuse的方法:(1) 在浏览器中打开项目的Github主页:https://github.com/6-robot/wpr_simulation(2) 点击分页栏的第二项“Issues”切换页面:(3) 在“Issues”页面中点击“New issue”即可提交新的issuse:八、结尾这一节我们只是使用Navigation系统完成了一个导航任务,下一节我们会深入剖析ROS的Navigation系统,让同学们能详细了解整个导航过程中都是那些模块参与了工作,它们之间的协作关系又是如何。如果你喜欢这个项目,麻烦不要吝啬手中的鼠标,赏给我们一颗小星星!您的满意是我们持续更新的最大动力!谢谢~~我们下次再见!(继续比心)

何邪

44篇论文强势进击CVPR 2018,商汤科技的研究员都在做哪些研究?

机器之心原创作者:邱陆陆6 月,计算机视觉领域重要会议之一 CVPR 2018 正在美国盐湖城火热举办,目前会议日程已接近尾声。近年来,随着计算机视觉算法从实验室走向商用,这朵「高岭之花」逐渐走进「寻常百姓家」,我们毫不意外地看到越来越多的商业公司出现在学术会议上。国外,我们能看到谷歌、Facebook 的大批论文;国内,我们能看到腾讯、阿里巴巴、商汤等巨头与创业公司在论文接收量与挑战赛成绩上不输于国外巨头,其中商汤科技的论文接收数量达到创纪录的 44 篇。值此大会期间,机器之心走进商汤,尝试从 44 篇接收论文中找出商汤近期的主攻方向,分析公司为 3-5 年乃至更长期的发展进行了哪些战略技术储备,也观照 CVPR 会议,乃至视觉领域的关注点迁移趋势。同时我们采访了三位来自商汤入选本届 CVPR oral / spotlight 环节的论文作者,与他们谈了自己的研究,如何进行开发,以及对 CVPR 乃至 CVPR 之外整个视觉领域研究现状的看法。自 2012 年以来,经过视觉领域诸多学者们的不懈努力,「物体识别」、「人脸检测」等传统任务的性能在一定程度上达到饱和,因此纵观本届 979 篇入选论文,我们会看到研究者们纷纷将目光转向近年来的一些新兴问题。在今年,商汤的研究者们就大规模分布式训练、人体理解与行人再识别、三维场景理解与分析、底层视觉算法、物体检测、识别与跟踪、深度生成式模型、视频与行为理解等多个问题展示了自己的最新工作。而纵观 CVPR,已经有一批从实际应用场景出发的、有针对性的新问题受到了广泛关注,一些数据模态和模型结构设计已经形成了声势浩大的热门子领域。例如,CVPR 2018 总共有超过 30 篇论文探讨如何解决行人再识别问题,其中 7 篇来自商汤。行人识别问题的难度某种程度上胜于人脸识别这个视觉领域的传统研究热点:大多数情况下,行人属于非合作状态,视角比人脸更多样;同时因为人体关节的活动范围远大于面部肌肉的活动范围,即使视角相同,不同动作的同一行人差异也会非常大。行人再识别无疑是继人脸识别之后,另一个有着广阔应用场景的研究课题,在智慧城市中,其可以应用于多摄像头联动的行人追踪;在智能零售行业里,也可以用于调研用户的行为轨迹,为分析顾客购物需求与商品关注度提供宝贵的数据。本届行人再识别领域唯一一篇 oral 论文就来自商汤,第一作者 Dapeng Chen 近三年都在从事行人再识别中相似性测度部分的研究,在后文的采访中,他也提到,自己的研究逐渐从非深度学习方法转向深度学习方法,从小数据集延伸到大规模数据集。除了行人再识别之外,商汤入选论文中也有 4 篇涉及三维场景理解与分析。在 CVPR 收录的论文中,有高达 83 篇以「3D」为名,涉及三维视觉的工作则超过 90 篇,占据了全体收录论文的近 1/10。三维视觉研究的再度火热一方面归功于三维传感器的快速发展,另一方面也来自于自动驾驶等三维应用场景快速发展衍生的强烈需求。能够处理无序三维点云数据的新算法不断涌现,三维检测、三维分割等问题的精度与效率均在快速提升中。面向传统的三维视觉问题,如运动恢复结构(Sturcture from Motion)、同步定位与地图构建(SLAM)、基于单目图像的三维结构恢复等问题,研究人员也基于深度学习技术提出众多新颖算法,不断突破原有算法的性能瓶颈。商汤的 spotlight 论文 Single View Stereo Matching 就关注自动驾驶场景下基于单目图像的深度估计。基于视觉的自动辅助驾驶系统通常使用单目摄像头获取图像,判断当前车辆与周围车辆、行人和障碍物的距离,该论文提出了一种能够大幅度提升单目图像深度估计精度的算法。此外,商汤科技还有 3 篇文章基于对抗生成网络提出了新颖算法,而 CVPR 共有 81 篇文章使用了对抗生成网络。图像生成是经典的视觉问题,而对抗式方法的引入让研究者得以生成分辨率更高、与真实图像更接近的图像。基于对抗式生成网络的图像生成已经成为数据增强的有效手段之一,数据生成的进步意味着研究者在一定程度上可以摆脱深度学习模型对巨型数据集的需求这一制约条件。对抗性损失函数也可以帮助其他视觉问题(如检测、分割、识别等)增强性能与鲁棒性。这些与实践紧密结合的工作反映了商汤如何把实践中遇到的问题抽象为研究问题,以及如何利用研究推动自身的商业边界。而除了自身应用息息相关的相关问题之外,当商业公司趋向成熟,也会以支持基础研究的形式吸引最优秀的研究者来到公司,进行前沿的基础研究也是公司「秀技术肌肉」的好方法。当前深度神经网络的结构往往对最终结果有着重要影响,神经网络自动设计算法因此在近年引发大量关注。商汤科技本次 CVPR 三篇 oral 论文之一,Practical Block-wise Neural Network Architecture Generation 就致力于解决面向自动设计网络结构的难题。论文第一作者 Zhao Zhong 在采访中特别强调了商汤为研究提供的大量计算资源:这是商业公司相比于实验室在基础研究方面的一个重要优势。除了从宏观的角度对商汤的全体论文进行解读之外,机器之心向三位来自商汤、主攻不同研究方向的本届 CVPR oral/spotlight 环节入选论文作者提出了 几个问题,呈现一线研究者视角下的 CVPR。三位研究者分别是:Zhao Zhong:Practical Block-wise Neural Network Architecture Generation 第一作者,自动化网络设计方向Dapeng Chen:Group Consistent Similarity Learning via Deep CRFs for Person Re-Identification 第一作者,行人再识别方向Chao Dong:Crafting a Toolchain for Image Restoration by Deep Reinforcement Learning 第二作者,底层计算机视觉与强化学习方向能否用一句话概括一下你本次 CVPR 的文章主题,并用一段话简述一下文章内容。Zhao Zhong(简称 Z):自动设计网络结构的算法框架 BlockQNN。本次我作为第一作者发表的论文提出了一种基于强化学习的网络结构自动设计算法,通过「网络块」的设计思想,让搜索空间大大降低,并且使设计的网络具有非常强的可迁移性。同时,我们使用了「提前停止」和分布式架构来加速整个网络结构学习过程,达到了百倍于之前算法的速度(32 块 GPU,3 天的训练)。实验表面,其生成的网络结构在 CIFAR 数据集上达到并且超越人类设计的网络结构的精度,并且结构可以迁移到大规模的 ImageNet 数据上,取得优异的分类性能。Dapeng Chen(简称 D):引入组一致性约束条件的高精度行人再识别。行人再识别是新一代智慧城市系统中的重要组件之一。给定一幅行人图像,行人再识别要求跨不同摄像头,对同一行人基于其视觉外观进行准确匹配和识别。现有深度学习算法通常使用过于局部的约束损失函数进行行人特征学习,因而不能精确的学习行人图像之间的视觉相似度。本次我们的这篇论文针对该问题提出一种新颖的组一致性约束条件,并通过连续条件随机场对该约束条件进行建模。将该随机场加入深度神经网络,实现了该深度模型的端对端训练。实验结果表明提出的一致性条件在训练与测试中均能够大幅度提升最终视觉特征的鲁棒性与判别性,实现高精度的行人再识别。该论文是本次 CVPR 大会在行人再识别方向唯一的一篇 oral 论文。Chao Dong(简称 C):使用多个小型 CNN 专家以协作方式解决困难的真实图像复原任务。在底层视觉算法领域,卷积神经网络(CNN)近年取得了巨大的进展,在诸如去模糊、去噪、去 JPEG 失真、超分辨率等图像复原任务上已经达到了优异的性能。但是现实图像中的失真往往更加复杂,例如,经过多个图像降质过程后,图像可能包含模糊、噪声、JPEG 压缩的混合失真。这类混合失真图像对目前的图像复原算法仍然充满挑战性。近期的一些图像复原工作(如 VDSR、DnCNN 等)证实了一个 CNN 网络可以处理多种失真类型或不同失真程度的降质图像,这为解决混合失真问题提供了新的思路。但是,这类算法均选用了复杂度较高的网络模型,带来了较大的计算开销。另外,这些算法的网络均使用同一结构处理所有图像,未考虑一些降质程度较低的图像可以使用更小的网络进行复原。针对现有图像复原 CNN 算法模型复杂,计算复杂度高的问题,这篇论文我提出的 RL-Restore 算法弥补了这些不足,以更加高效灵活的方式解决了复杂的图像复原问题。你的研究方向是什么?本次 CVPR 投稿论文在你的研究方向上处于什么位置?Z:我的研究方向是自动化网络设计。这篇文章在投稿时是性能先进的自动网络结构设计算法。但过了半年多,后续又出现了很多新的优秀工作,我们本身也在继续迭代研究新的方法。D:我的研究方向集中在视频监控中的行人再识别问题。近三年来我一直从事行人再识别问题中相似性测度学习的研究,之前的研究以非深度学习的方法对测度学习的形式和空间约束等进行研究(发表论文收录于 CVPR'15、CVPR'16、IJCV'17),主要应用于小规模训练数据。这次的投稿是将深度神经网络与传统概率图模型相结合,以样本之间的相似性为对象构建条件随机场,约束行人特征的学习过程。C:我的研究方向是底层计算机视觉,包括图像和视频等画质增强,超分率,去噪等。本次投稿论文对我来讲是非常重要的一篇工作,我们首次利用增强学习的方法解决图像处理问题,是用一种全新的思路解决,更加贴近真实场景的实际问题,也是一次大胆的尝试,我们希望它能够激发更多人的灵感,带来更多优秀的成果。如果让你对今年 CVPR 的近一千篇论文进行分类,你会以什么为标准进行分类?分成哪些类别?Z:我会按照题目和方法的创新度来分类:1)提出新问题用老方法解;2)在老问题上提出新方法;3)在别人的已有方法基础上做修改;4)发现新问题提出新方法解决。D:根据不同方法解决问题的数据模态,我将方法进行了分类,这是因为不同数据类型所包含的信息有各自的特点,因此处理的方式很有很大的不同。不同数据的模态包括:图像数据、视频数据、点云数据、文字数据以及音频数据C:我可以简单的把 CVPR 论文分成三类,一类是理论性较强的论证性论文,一类是偏重应用但关注的仍是传统问题或数据集的论文,最后一类是提出并尝试解决一些真实问题的论文,这些论文在今年越来越多,人们开始关注那些真实的场景,比如去噪方面已经不再局限在高斯噪声,而是关注拍照应用场景中的实际噪声,并有新的数据集出现。在你的研究中,除了深度学习之外,还引入了哪些机器学习/数学/物理学概念?为什么考虑结合深度学习与这个特定概念?Z:我还引入了强化学习,其能够自动设计网络结构而没有确定的优化方式,所以基于试错的强化学习是一种比较合理的解决方案。D:我引入了经典图模型中的条件随机场模型。条件随机场是一种能够描述变量之间依赖关系的数学工具,与深度学习结合在图像语义分割等问题中已经得到了一定的应用。这次投稿的论文中,深度条件随机场的用法与众不同: 之前深度条件随机场通常将像素值建模为模型中的随机变量,建立一张图像中像素与像素之间的依赖关系。而这篇论文提出的方法以不同图像之间的相似性作为随机变量,建立了不同样本之间相似性的依赖关系进行特征学习。C:我这两年在关注增强学习,并尝试结合增强学习与深度学习,解决一些单一深度学习框架不能解决的问题。深度学习对于动态规划决策一类的问题无法很好的解决,而增强学习可以弥补这个缺陷,将深度学习的模型融入增强学习的框架中,可以延伸深度学习解决问题的范畴,发挥更大的力量。你在与同行交流你的这篇工作时被问到最多的问题是什么?Z:该工作用了多少 GPU 卡?自动设计的网络以后真的能取代调参侠么?我们在工作中使用了 32 块 GPU,从目前该方向的发展趋势来看,自动设计的网络架构能够在 1-2 年内替代人类的手工设计。D:为什么在这篇论文中要提出群组相似性的概念而使用 CRF 建模?因为图像之间的相似性本身很难定义。两张图片是否相似往往能够通过与更多的图片比较获得,因此建立利用更多图片并建立它们之间的依赖关系能够建立更加合理的相似性描述。C:增强学习的框架是否很难训练,初学者如何上手?我们的论文网页上提供相应的训练和测试代码,会帮助想学习的人快速起步,掌握要领。除了自己的研究方向外,本届 CVPR 你最感兴趣的方向是什么?为什么?Z:深度学习的可解释性,深度学习火了这么多年还是没有在原理上解释的突破,而且学界也非常想从原理上来指导设计网络结构。D:3D 视觉方向。首先,3D 信息能够展示与图像不同维度的信息,是对图像信息的进一步补充,与图像结合具有更加广阔的研究空间。此外,在目前自动驾驶和机器人研究火热的氛围中,3D 视觉领域的应用有着强烈的应用需求,更有可能将研究的成果应用到实际的产品中,实现研究对社会的价值。C:我开始关注人脸编辑这个方向,比如美妆,美颜,人脸老化等。主要原因是这个方向的产品开始逐渐增多,也越来越受到大众的喜爱。商汤为你的研究带来了哪些帮助?自己有哪些提升和感受?Z:感谢商汤给我的研究提供了大量的计算资源,没有这些 GPU,这个工作单单在高校实验室是不可能完成的。还有就是和商汤研究院里研究员们的讨论氛围非常浓,容易产生更多的研究想法。D:商汤科技有着天然的应用需求,强大的深度学习平台和硬件支持,鼓励创新的氛围以及一起奋斗的小伙伴。C:商汤提供了一个非常广阔的平台,我们可以和客户面对面的交流互动,深入了解客户的需求,清楚实际问题和论文的差距。同时商汤有非常多优秀的员工和实习生,与他们在一起工作是很开心的事情。当然,商汤的工作也是非常紧张快节奏的。