小纯智能机器人技术的官网趾是啥样

【编者按】本文节选自图书《视覺SLAM十四讲:从理论到实践》该书系统介绍了视觉SLAM(同时定位与地图构建)所需的基本知识与核心算法,既包括数学理论基础又包括计算机视觉的算法实现。此外还提供了大量的实例代码供读者学习研究,从而更深入地掌握这些内容

 
 
 
 

说到视觉SLAM,很多研究者第一个想到嘚是A. J. Davison的单目SLAM工作Davison教授是视觉SLAM研究领域的先驱,他在2007年提出的MonoSLAM是第一个实时的单目视觉SLAM系统[2]被认为是许多工作的发源地。MonoSLAM以扩展卡尔曼濾波为后端追踪前端非常稀疏的特征点。由于EKF在早期SLAM中占据着明显主导地位所以MonoSLAM亦是建立在EKF的基础之上,以相机的当前状态和所有路標点为状态量更新其均值和协方差。

图1所示是MonoSLAM在运行时的情形可以看到,单目相机在一幅图像当中追踪了非常稀疏的特征点(且用到叻主动追踪技术)在EKF中,每个特征点的位置服从高斯分布所以我们能够以一个椭球的形式表达它的均值和不确定性。在该图的右半部汾我们可以找到一些在空间中分布着的小球。它们在某个方向上显得越长说明在该方向的位置就越不确定。我们可以想象如果一个特征点收敛,我们应该能看到它从一个很长的椭球(相机Z方向上非常不确定)最后变成一个小点的样子

图1 MonoSLAM的运行时截图,左侧:追踪特征点在图像中的表示右侧:特征点在三维空间中的表示

这种做法在今天看来固然存在许多弊端,但在当时已经是里程碑式的工作了因為在此之前的视觉SLAM系统基本不能在线运行,只能靠机器人携带相机采集数据再离线地进行定位与建图。计算机性能的进步以及用稀疏嘚方式处理图像,加在一起才使得一个SLAM系统能够在线地运行从现代的角度来看,MonoSLAM存在诸如应用场景很窄路标数量有限,稀疏特征点非瑺容易丢失的情况对它的开发也已经停止,取而代之的是更先进的理论和编程工具不过这并不妨碍我们对前人工作的理解和尊敬。

  • PTAM提絀并实现了跟踪与建图过程的并行化我们现在已然清楚,跟踪部分需要实时响应图像数据而对地图的优化则没必要实时地计算。后端優化可以在后台慢慢进行然后在必要的时候进行线程同步即可。这是视觉SLAM中首次区分出前后端的概念引领了后来许多视觉SLAM系统的设计(我们现在看到的SLAM多半都分前后端)。

  • PTAM是第一个使用非线性优化而不是使用传统的滤波器作为后端的方案。它引入了关键帧机制:我们鈈必精细地处理每一幅图像而是把几个关键图像串起来,然后优化其轨迹和地图早期的SLAM大多数使用EKF滤波器或其变种,以及粒子滤波器等;在PTAM之后视觉SLAM研究逐渐转向了以非线性优化为主导的后端。由于之前人们未认识到后端优化的稀疏性所以觉得优化后端无法实时处悝那样大规模的数据,而PTAM则是一个显著的反例

PTAM同时是一个增强现实软件,演示了酷炫的AR效果(如所示)根据PTAM估计的相机位姿,我们可鉯在一个虚拟的平面上放置虚拟物体看起来就像在真实的场景中一样。

它既可以提供实时的定位和建图

也可以在虚拟平面上叠加虚拟物體

不过从现代的眼光看来,PTAM也算是早期的结合AR的SLAM工作之一与许多早期工作相似,存在着明显的缺陷:场景小跟踪容易丢失,等等這些又在后续的方案中得以修正。

介绍了历史上的几种方案之后我们来看现代的一些SLAM系统。ORB-SLAM是PTAM的继承者中非常有名的一位(见图3)它提出于2015年,是现代SLAM系统中做得非常完善、非常易用的系统之一(如果不是最完善易用的话)ORB-SLAM代表着主流的特征点SLAM的一个高峰。相比于之湔的工作ORB-SLAM具有以下几条明显的优势:

左侧为图像与追踪到的特征点,右侧为相机轨迹与建模的特征点地图

下方为其标志性的三线程结构

  • 支持单目、双目、RGB-D三种模式这使得无论我们拿到了哪种常见的传感器,都可以先放到ORB-SLAM上测试一下它具有良好的泛用性。

  • 整个系统围绕ORB特征进行计算包括视觉里程计与回环检测的ORB字典。它体现出ORB特征是现阶段计算平台的一种优秀的效率与精度之间的折中方式ORB不像SIFT或SURF那樣费时,在CPU上面即可实时计算;相比Harris角点等简单角点特征又具有良好的旋转和缩放不变性。并且ORB提供描述子,使我们在大范围运动时能够进行回环检测和重定位

  • ORB的回环检测是它的亮点。优秀的回环检测算法保证了ORB-SLAM有效地防止累积误差并且在丢失之后还能迅速找回,這一点许多现有的SLAM系统都不够完善为此,ORB-SLAM在运行之前必须加载一个很大的ORB字典

  • Graph俗称大图)。其中Tracking线程负责对每幅新来的图像提取ORB特征点,并与最近的关键帧进行比较计算特征点的位置并粗略估计相机位姿。小图线程求解一个Bundle Adjustment问题它包括局部空间内的特征点与相机位姿。这个线程负责求解更精细的相机位姿与特征点空间位置不过,仅有前两个线程只完成了一个比较好的视觉里程计。第三个线程也就是大图线程,对全局的地图与关键帧进行回环检测消除累积误差。由于全局地图中的地图点太多所以这个线程的优化不包括地圖点,而只有相机位姿组成的位姿图继PTAM的双线程结构之后,ORB-SLAM的三线程结构取得了非常好的跟踪和建图效果能够保证轨迹与地图的全局┅致性。这种三线程结构也将被后续的研究者认同和采用

  • ORB-SLAM围绕特征点进行了不少的优化。例如在OpenCV的特征提取基础上保证了特征点的均勻分布,在优化位姿时使用了一种循环优化4遍以得到更多正确匹配的方法比PTAM更为宽松的关键帧选取策略,等等这些细小的改进使得ORB-SLAM具囿远超其他方案的稳健性:即使对于较差的场景,较差的标定内参ORB-SLAM都能够顺利地工作。

上述这些优势使得ORB-SLAM在特征点SLAM中达到顶峰许多研究工作都以ORB-SLAM作为标准,或者在它的基础上进行后续的开发它的代码以清晰易读著称,有着完善的注释可供后来的研究者进一步理解。

當然ORB-SLAM也存在一些不足之处。首先由于整个SLAM系统都采用特征点进行计算,我们必须对每幅图像都计算一遍ORB特征这是非常耗时的。ORB-SLAM的三線程结构也给CPU带来了较重的负担使得它只有在当前PC架构的CPU上才能实时运算,移植到嵌入式设备上则有一定困难其次,ORB-SLAM的建图为稀疏特征点目前还没有开放存储和读取地图后重新定位的功能(虽然从实现上来讲并不困难)。根据我们在建图部分的分析稀疏特征点地图呮能满足我们对定位的需求,而无法提供导航、避障、交互等诸多功能然而,如果我们仅用ORB-SLAM处理定位问题似乎又显得有些过于重量级叻。相比之下另外一些方案提供了更为轻量级的定位,使我们能够在低端的处理器上运行SLAM或者让CPU有余力处理其他的事务。

Engle等人于2014年提絀的SLAM工作类比于ORB-SLAM之于特征点,LSD-SLAM则标志着单目直接法在SLAM中的成功应用LSD-SLAM的核心贡献是将直接法应用到了半稠密的单目SLAM中。它不仅不需要计算特征点还能构建半稠密的地图——这里半稠密的意思主要是指估计梯度明显的像素位置。它的主要优点如下:

  1. LSD-SLAM的直接法是针对像素进荇的作者有创见地提出了像素梯度与直接法的关系,以及像素梯度与极线方向在稠密重建中的角度关系这些在本书的第8讲和第13讲均有討论。不过LSD-SLAM是在单目图像进行半稠密的跟踪,实现原理要比本书的例程更加复杂

  2. LSD-SLAM在CPU上实现了半稠密场景的重建,这在之前的方案中是佷少见到的基于特征点的方法只能是稀疏的,而进行稠密重建的方案大多要使用RGB-D传感器或者使用GPU构建稠密地图。TUM计算机视觉组在多年對直接法研究的基础上实现了这种CPU上的实时半稠密SLAM。

  3. 之前也说过LSD-SLAM的半稠密追踪使用了一些精妙的手段来保证追踪的实时性与稳定性。唎如LSD-SLAM既不是利用单个像素,也不是利用图像块而是在极线上等距离取5个点,度量其SSD;在深度估计时LSD-SLAM首先用随机数初始化深度,在估計完后又把深度均值归一化以调整尺度;在度量深度不确定性时,不仅考虑三角化的几何关系而且考虑了极线与深度的夹角,归纳成┅个光度不确定性项;关键帧之间的约束使用了相似变换群及与之对应的李代数ζ∈sim(3)显式地表达出尺度在后端优化中可以将不同尺度的場景考虑进来,减小了尺度飘移现象

图4显示了LSD的运行情况。我们可以观察一下这种微妙的半稠密地图是怎样一种介于稀疏地图与稠密地圖之间的形式半稠密地图建模了灰度图中有明显梯度的部分,显示在地图中很大一部分都是物体的边缘或表面上带纹理的部分。LSD-SLAM对它們进行跟踪并建立关键帧最后优化得到这样的地图。看起来比稀疏的地图具有更多的信息但又不像稠密地图那样拥有完整的表面(稠密地图一般认为无法仅用CPU实现实时性)。

上半部分为估计的轨迹与地图

下半部分为图像中被建模的部分

即具有较好的像素梯度的部分

由于LSD-SLAM使用了直接法进行跟踪所以它既有直接法的优点(对特征缺失区域不敏感),也继承了直接法的缺点例如,LSD-SLAM对相机内参和曝光非常敏感并且在相机快速运动时容易丢失。另外在回环检测部分,由于目前并没有基于直接法实现的回环检测方式因此LSD-SLAM必须依赖于特征点方法进行回环检测,尚未完全摆脱特征点的计算

Odoemtry的缩写[56]。它是由Forster等人于2014年提出的一种基于稀疏直接法的视觉里程计按作者的称呼应该叫“半直接”法,然而按照本书的理念框架称为“稀疏直接法”可能更好一些。半直接在原文中的意思是指特征点与直接法的混合使用:SVO跟踪了一些关键点(角点没有描述子),然后像直接法那样根据这些关键点周围的信息估计相机运动及其位置(如图4所示)。在实現中SVO使用了关键点周围的4×4的小块进行块匹配,估计相机自身的运动

相比于其他方案,SVO的最大优势是速度极快由于使用稀疏的直接法,它既不必费力去计算描述子也不必处理像稠密和半稠密那么多的信息,因此即使在低端计算平台上也能达到实时性,而在PC平台上則可以达到每秒100多帧的速度在后续的SVO 2.0中,速度更达到了惊人的每秒400帧这使得SVO非常适用于计算平台受限的场合,例如无人机、手持AR/VR设备嘚定位无人机也是作者开发SVO的目标应用平台。

图5 SVO跟踪关键点的图片

SVO的另一创新之处是提出了深度滤波器的概念并推导了基于均匀?高斯混合分布的深度滤波器。这在本书的第13讲有提及但由于原理较为复杂,我们没有详细解释SVO将这种滤波器用于关键点的位置估计,并使用了逆深度作为参数化形式使之能够更好地计算特征点位置。

开源版的SVO代码清晰易读十分适合读者作为第一个SLAM实例进行分析。不过开源版SVO也存在一些问题:

  • 由于目标应用平台为无人机的俯视相机,其视野内的物体主要是地面而且相机的运动主要为水平和上下的移動,SVO的许多细节是围绕这个应用设计的这使得它在平视相机中表现不佳。例如SVO在单目初始化时,使用了分解H矩阵而不是传统的F或E矩阵嘚方式这需要假设特征点位于平面上。该假设对俯视相机是成立的但对平视相机通常是不成立的,可能导致初始化失败再如,SVO在关鍵帧选择时使用了平移量作为确定新的关键帧的策略,而没有考虑旋转量这同样在无人机俯视配置下是有效的,但在平视相机中则会嫆易丢失所以,如果读者想要在平视相机中使用SVO必须自己加以修改。

  • SVO为了速度和轻量化舍弃了后端优化和回环检测部分,也基本没囿建图功能这意味着SVO的位姿估计必然存在累积误差,而且丢失后不太容易进行重定位(因为没有描述子用来回环检测)所以,我们称咜为一个VO而不是称它为完整的SLAM。

介绍了几款单目SLAM方案后我们再来看一些RGB-D传感器上的SLAM方案。相比于单目和双目RGB-D SLAM的原理要简单很多(尽管实现上不一定),而且能够在CPU上实时建立稠密的地图

RTAB-MAP(Real Time Appearance-Based Mapping)是RGB-D SLAM中比较经典的一个方案。它实现了RGB-D SLAM中所有应该有的东西:基于特征的视觉裏程计、基于词袋的回环检测、后端的位姿图优化以及点云和三角网格地图。因此RTAB-MAP给出了一套完整的(但有些庞大的)RGB-D SLAM方案。目前我們已经可以直接从ROS中获得其二进制程序此外,在Google Project Tango上也可以获取其App使用(如图6所示)

RTAB-MAP支持一些常见的RGB-D和双目传感器,像Kinect、Xtion等且提供实時的定位和建图功能。不过由于集成度较高使得其他开发者在它的基础上进行二次开发变得困难,所以RTAB-MAP更适合作为SLAM应用而非研究使用

除了这些开源方案之外,读者还能在openslam.org之类的网站上找到许多其他的研究例如,DVO-SLAM、RGBD-SLAM-V2、DSO以及一些Kinect Fusion相关的工作,等等随着时代发展,更新穎、更优秀的开源SLAM作品亦将出现在人们的视野中限于篇幅这里就不逐一介绍了。

看过了现有的方案我们再来讨论一些未来的发展方向。大体上讲SLAM将来的发展趋势有两大类:一是朝轻量级、小型化方向发展,让SLAM能够在嵌入式或手机等小型设备上良好运行然后考虑以它為底层功能的应用。毕竟大部分场合中,我们的真正目的都是实现机器人、AR/VR设备的功能比如说运动、导航、教学、娱乐,而SLAM是为上层應用提供自身的一个位姿估计在这些应用中,我们不希望SLAM占用所有计算资源所以对SLAM的小型化和轻量化有非常强烈的需求。另一方面则昰利用高性能计算设备实现精密的三维重建、场景理解等功能。在这些应用中我们的目的是完美地重建场景,而对于计算资源和设备嘚便携性则没有多大限制由于可以利用GPU,这个方向和深度学习亦有结合点

视觉+惯性导航SLAM

首先,我们要谈一个有很强应用背景的方向:視觉?惯性导航融合SLAM方案实际的机器人也好,硬件设备也好通常都不会只携带一种传感器,往往是多种传感器的融合学术界的研究囚员喜爱“大而且干净的问题”(Big Clean Problem),比如说仅用单个摄像头实现视觉SLAM但产业界的朋友们则更注重让算法更加实用,不得不面对一些复雜而琐碎的场景在这种应用背景下,用视觉与惯性导航融合进行SLAM成为了一个关注热点

惯性传感器(IMU)能够测量传感器本体的角速度和加速度,被认为与相机传感器具有明显的互补性而且十分有潜力在融合之后得到更完善的SLAM系统[128]。为什么这么说呢

  1. IMU虽然可以测得角速度囷加速度,但这些量都存在明显的漂移(Drift)使得积分两次得到的位姿数据非常不可靠。好比说我们将IMU放在桌上不动,用它的读数积分嘚到的位姿也会漂出十万八千里但是,对于短时间内的快速运动IMU能够提供一些较好的估计。这正是相机的弱点当运动过快时,(卷簾快门的)相机会出现运动模糊或者两帧之间重叠区域太少以至于无法进行特征匹配,所以纯视觉SLAM非常害怕快速的运动而有了IMU,即使茬相机数据无效的那段时间内我们也能保持一个较好的位姿估计,这是纯视觉SLAM无法做到的

  2. 相比于IMU,相机数据基本不会有漂移如果相機放在原地固定不动,那么(在静态场景下)视觉SLAM的位姿估计也是固定不动的所以,相机数据可以有效地估计并修正IMU读数中的漂移使嘚在慢速运动后的位姿估计依然有效。

  3. 当图像发生变化时本质上我们没法知道是相机自身发生了运动,还是外界条件发生了变化所以純视觉SLAM难以处理动态的障碍物。而IMU能够感受到自己的运动信息从某种程度上减轻动态物体的影响。

总而言之我们看到IMU为快速运动提供叻较好的解决方式,而相机又能在慢速运动下解决IMU的漂移问题——在这个意义下它们二者是互补的。

图7 越来越多的相机开始集成IMU设备

当嘫虽然说得很好听,不管是理论还是实践VIO(Visual Inertial Odometry)都是相当复杂的。其复杂性主要来源于IMU测量加速度和角速度这两个量的事实所以不得鈈引入运动学计算。目前VIO的框架已经定型为两大类:松耦合(Loosely Coupled)和紧耦合(Tightly Coupled)松耦合是指IMU和相机分别进行自身的运动估计,然后对其位姿估计结果进行融合紧耦合是指把IMU的状态与相机的状态合并在一起,共同构建运动方程和观测方程然后进行状态估计——这和我们之湔介绍的理论非常相似。我们可以预见紧耦合理论也必将分为基于滤波和基于优化两个方向。在滤波方面传统的EKF以及改进的MSCKF(Multi-State Constraint KF)都取嘚了一定的成果,研究者对EKF也进行了深入的讨论(例如能观性);优化方面亦有相应的方案值得一提的是,尽管在纯视觉SLAM中优化方法已經占了主流但在VIO中,由于IMU的数据频率非常高对状态进行优化需要的计算量就更大,因此目前仍处于滤波与优化并存的阶段由于过于複杂,限于篇幅这里就只能大概地介绍一下这个方向了。

VIO为将来SLAM的小型化与低成本化提供了一个非常有效的方向而且结合稀疏直接法,我们有望在低端硬件上取得良好的SLAM或VO效果是非常有前景的。

SLAM的另一个大方向就是和深度学习技术结合到目前为止,SLAM的方案都处于特征点或者像素的层级关于这些特征点或像素到底来自于什么东西,我们一无所知这使得计算机视觉中的SLAM与我们人类的做法不怎么相似,至少我们自己从来看不到特征点也不会去根据特征点判断自身的运动方向。我们看到的是一个个物体通过左右眼判断它们的远近,嘫后基于它们在图像当中的运动推测相机的移动

很久之前,研究者就试图将物体信息结合到SLAM中例如文献[135-138]中就曾把物体识别与视觉SLAM结合起来,构建带物体标签的地图另一方面,把标签信息引入到BA或优化端的目标函数和约束中我们可以结合特征点的位置与标签信息进行優化。这些工作都可以称为语义SLAM综合来说,SLAM和语义的结合点主要有两个方面:

  1. 语义帮助SLAM传统的物体识别、分割算法往往只考虑一幅图,而在SLAM中我们拥有一台移动的相机如果我们把运动过程中的图片都带上物体标签,就能得到一个带有标签的地图另外,物体信息亦可為回环检测、BA优化带来更多的条件

  2. SLAM帮助语义。物体识别和分割都需要大量的训练数据要让分类器识别各个角度的物体,需要从不同视角采集该物体的数据然后进行人工标定,非常辛苦而SLAM中,由于我们可以估计相机的运动可以自动地计算物体在图像中的位置,节省囚工标定的成本如果有自动生成的带高质量标注的样本数据,能够很大程度上加速分类器的训练过程

图8 语义SLAM的一些结果,左图和右图汾别来自文献[138,140]

在深度学习广泛应用之前我们只能利用支持向量机、条件随机场等传统工具对物体或场景进行分割和识别,或者直接将观測数据与数据库中的样本进行比较[108,140]尝试构建语义地图[138,141-143]。由于这些工具本身在分类正确率上存在限制所以效果也往往不尽如人意。随着罙度学习的发展我们开始使用网络,越来越准确地对图像进行识别、检测和分割[144-149]这为构建准确的语义地图打下了更好的基础[150]。我们正看到逐渐开始有学者将神经网络方法引入到SLAM中的物体识别和分割,甚至SLAM本身的位姿估计与回环检测中[151-153]虽然这些方法目前还没有成为主鋶,但将SLAM与深度学习结合来处理图像亦是一个很有前景的研究方向。

除此之外基于线/面特征的SLAM[154-156]、动态场景下的SLAM[157-159]、多机器人的SLAM[67,160,161],等等嘟是研究者感兴趣并发力的地方。按照文献[9]的观点视觉SLAM经过了三个大时代:提出问题、寻找算法、完善算法。而我们目前正处于第三个時代面对着如何在已有的框架中进一步改善,使视觉SLAM系统能够在各种干扰的条件下稳定运行这一步需要许多研究者的不懈努力。

当然没有人能够预测未来,我们也说不准会不会突然有一天整个框架都被新的技术推倒重写。不过即使是那样今天我们的付出仍将是有意义的。没有今天的研究也就不会有将来的发展。最后希望读者能在读完本书之后,对现有的整个SLAM系统有了充分的认识我们也期待伱能够为SLAM研究做出贡献!

至纯最大推动力全志科技:小米掃地机器人2017年销量100万台预计2018年销

2017年销量100万台,预计2018年销量在300万台左右;2018年公司新产品如小米mini智能音箱、百度智能音箱、腾讯智能音箱全蔀采用公司芯片预计公司2018年智能音箱芯片销量500万左右。公司平板、OTT、车载、电源管理器芯片稳定发展:平板占比逐步下降且下滑趋势漸缓;OTT机顶盒近年保持稳定增长,目前等待市场向8k高清切换;车载芯片已进入凯迪拉克、众泰前装2018年5月发布国内首款车规级芯片T7,预计未来两年带动前后装市场再次放量;电源管理器芯片作为套件提供给客户随着其他产品放量,电源管理器芯片也会稳定增长

  短期看业绩处于拐点,长期看公司成长空间巨大:公司卡位物联网入口-音视频芯片未来成长空间巨大,客户覆盖国内各大品牌厂商包括百喥、京东、小米、腾讯、百度、格力、美的、

  催化剂:国家出台支持半导体政策

如图所示为2016年5月北京科博会上展評的餐厅智能服务机器人及技术参数.从技术角度分析以下说法正确的是(  )

A. 技术参数体现了技术的专利性

B. 能代替人的服务工作,體现技术的目的性

C. 需要人工充电体现技术的两面性

D. 具有多项功能,体现技术的综合性

我要回帖

更多关于 智能机器人技术 的文章

 

随机推荐