2017年12月11日,国际知名机器人专家、美国卡耐基梅隆大学机器人研究所所长马歇尔·赫伯特教授和首席科学家大卫·伯恩教授访问了中国科学技术大学参观中科大机器人实验室发表了题目为“人工智能的前沿技术与实例分析”的演讲。
【马歇尔·赫伯特教授现场演讲实录】
大家下午好!很高兴能来这里,谢谢能给我做这个演讲的机会。今天,我将要介绍卡内基梅隆大学机器人研究所中进行的研究的主要方向。我希望能让大家了解我们研究的关键方向和尝试解决的核心挑战。首先,我将说明机器人学,尤其是机器人学的应用,指的是什么。基本上,我们尝试着眼于工作、科学和生活的所有领域中机器人学的应用。
现场机器人学,这个领域中机器人代替人类完成危险或困难的工作,像建筑、采矿、农业等等。建筑业中,机器人和人类合作实现更快更好的建筑任务。我的演讲之后Bourne将详细介绍这一部分。运输和物流业中,自动驾驶汽车等设备在改善交通运输。医疗机器人领域,机器人和人类一起工作。还有基础设施监控领域。我们考察所有这些机器人应用。
让我展示一些例子。这是从事采矿和设施部署的自动驾驶卡车。这是可以组装和拆卸物体的操作系统。这是另一个大型项目,完成飞机检查、喷漆和去漆任务,这些任务需要非常大的机器人相互协作。这是一个更加复杂的机器人,具有操作、局部运动、感知等功能,可以完成在这种环境中的复杂任务。以上例子向大家展示了我们为了领域中多种多样的应用场景建造的机器人系统。
今天我希望能让大家对我们为了建立这样的机器人系统而进行的研究有一个认识。这些研究可以被分为这些类别。在底层,我们关心机器人的硬件构造,以及如何进行控制,这部分称为动作(action)。在现实中,机器人的硬件构造只是我们研究的一小部分。其他大部分研究中我们关心机器人的智能,而不只是机器人的硬件结构。这包括了机器人的感知(perception),也就是机器人利用传感器感知和理解环境的能力;机器学习(learning),即从数据中学习模型的能力,机器人可以学会如何移动、观察、决策;自主性(autonomy),即自主决策和对环境做出反应的能力;最后,是人机交互(human interaction)。很多机器人需要处理的问题都是和人而不是和机器人相关的。它们需要理解人类行为,并和人类进行交互。这是机器人学中发展最快的研究领域之一。我将展示在以上这些领域中我们基础研究的主要方向。
一、机器人运动部分,即机器人的硬件构造和控制
我们主要关注三个主要的领域。第一个是让机器人可以和人类一样完成非常复杂和精细的操作。这个例子是机器人展示一个没有应用价值的操作,但是它展示了这个操作的难度。这个任务需要对机器人控制和硬件的物理性质有极高的理解。这些关于机器人精细操作的研究是一个很大的研究领域。
第二个领域是设计能在困难的环境中完成任务的机器人。这是我们仿生机器人实验室(BioRobotics Lab)中的一项研究,一个可以像蛇一样运动的蛇形机器人。这个机器人可以像蛇一样运动,完成一些复杂任务。这项技术可以用于环境检查、制造业、救援等场景中,机器人可以进入一些十分复杂的环境中。最近墨西哥城地震后,这个机器人参与了对损毁建筑的搜救工作。这个领域的研究有很多应用。在这个领域的研究中,如果我们可以设计出非常精妙的机器人结构,我们就可以制造出非常多有趣的机器人,它们可以应用到很多领域当中。
想象一下,如果缩小机器人的尺寸,小到它可以进入人类的身体当中,就可以造出这款机器人。背景中的搏动是心脏的跳动,这个机器人正在心脏上方爬行。上方的图像是机器人的相机看到的场景。我希望这对大家来说并不是太血腥。这是我们对机器人学研究的看法的一个例子。
我们从多自由度机械结构这些基本概念出发,将它们应用到各种各样的应用场景当中,最后建成完整的系统。这款机器人已经得到了商业化应用,并已经获得了在手术中应用的许可。匹兹堡大学的一个团队已经使用这款机器人完成十分复杂的手术,如癌症组织的切除。这款机器人可以在不进行切割的情况下完成手术,这是手术技术很大的进步。以上就是我们工作的第二部分,设计具有精妙结构的机器人,来完成现在完全无法完成的任务。比如在不切割的情况下进行手术,搜救,检查等等,这些任务现之前是无法完成的。
机器人运动中的第三个研究领域是机器人的模块化,和机器人的重新组装。这在实际中是在机器人研究中取得进展的一项主要障碍。像在制造业中,为了某个特定应用场景设计机器人时,需要花费大量成本和努力来对机器人进行设计和编程。完成之后,如果需要对机器人生产的产品进行一个很小的改动,整个系统都需要进行成本很高的重新设计和安装,显然这是不符合可持续性要求的。除非有大量的资源和人力,这并不是一个合理的方式。解决方案和软件设计中的设计模式类似。在软件开发中,我们可以从软件库和模块开发十分复杂的应用程序。我们希望从机器人模块出发实现类似的事情。
这些红色的部件都是机器人的一个模块,包括了硬件和软件。当我们将它们连接到一起时,它们可以互相通讯。可以对它们进行十分快速的编程,所以可以以很快的速度搭建机器人系统。这是一场革命,正如60年前软件行业放弃从头编写程序的工作模式,开始从软件库和模块开始构建软件一样。这其中的挑战是模块不再只是软件,而也是硬件。这是一个应用的例子。
这段视频展示了在不到30分钟的时间内搭建一台全功能的物体操作机器人并对他进行编程。这就相当于从现有的模块开始快速完成编程。此前这对于机器人来说是不可能的,因为机器人的硬件结构。这也是我们关心的一个大的领域。将这些想法和其他一些想法结合(其中一些之后Bourne会在机器人协作制造业中为大家介绍),我们建立了一个新的高级机器人制造研究院。这个研究院关心如何更加灵活地使用机器人,比如如何快速重组机器人系统,让机器人和人紧密协作。以上是机器人硬件结构和控制领域。
二、智能机器人的感知、理解环境的能力
我们在机器人感知领域有一个很大的团队,关注4个大的核心方向。第一个是环境理解和物体识别。这是一个自动驾驶的例子。左边是输入视频,右边则是对视频内容的理解,每个不同的物体和区域用不同的颜色标出。为了能让机器人做出智能的决策,对环境有着尽可能详细的理解十分关键。
你们可能对深度学习技术十分熟悉。过去几年中,这项技术是革命性的,而且正在快速发展,多亏了神经网络,机器学习,深度学习技术。这项技术的一个关键问题是它需要非常多的数据进行训练。而在有些人期望的场景中,如交通信号或者区分这个物体和那个物体,设计这个系统的方法很有限,而且很难扩展,很难真正的适用于实际场景。我们想做的是使用非常少的样本训练出识别的系统。例如,当我在能识别这个物体之前,我不需要看关于这个物体的上百万个样本。我只要看过这个物体一次,今后就能认出它。怎么在计算机视觉,在感知中做到这些,是我们的一个主要研究方向,也是一个现在面临的主要挑战。
之前我们讲的识别环境,理解环境是感知的第一个关键领域。下面我要讲述的另一个关键领域是时空重建。时空重建意味着,你能通过一系列传感器数据,尽可能精确的重建出世界模型。这里的例子,用的是三维点云,这实际上是一座桥,有一个飞行器从桥下以一个自然的速度飞过。这里的挑战是,重建精确世界模型的系统需要越简单越好,越便宜越好,越小型越好。用一个价值百万的非常复杂的传感器系统来做这些是没什么应用价值的,而这里用的是一个非常便宜的无人机计算出来的。这是另一个自动驾驶的例子。自动驾驶中的一个关键问题是在没有GPS的情况下,只从传感器数据,实时的,尽可能精确的进行定位和建图。这是一个汽车以大约100km/h的速度在匹兹堡的街道上行驶的例子,结合激光数据和视觉数据,进行一次非常精确的重建工作。这是一项最新技术的例子。这家无人机以60km/h的速度运行,这里的重建是实时的,在飞行中重建出了当时的3D环境。
上面是我们的60km/h速度的实时3D场景重建技术,它被用在无人机控制中。和静态3D场景重建相比,更具挑战性的是动态场景的重建。场景是动态的,动态指的是场景里的物体是运动的。这里花费了我们很多的精力。这是一个全世界独有的设备,叫做全景工作室(Panoptic Studio)。图里面的你能看到的每一个黑色小点都是一个摄像头,在这个穹顶当中有500个摄像头同时对场景进行观测。这是一个示例场景,现在有很多东西都在运动,我们有这个场景的500个不同视角的同步观测结果。从这些观察数据中,我们不仅能重构出这个场景的三维结构,还能构建出更细节的东西,场景中物体的瞬时动作。这里面的每一个轨迹都是场景中每一个特征的运动轨迹。可以看出,我们重建的非常的精确,场景中的任何物体都被构建了出来。Facebook Oculus的Oculus VR就是受这项技术启发开发的。
以上我们展示的是固定在实验室中的固定摄像头。我们还可以使用来自网上的视频。这是一系列拍摄城市的视频。他们可以来自汽车、公共设施。我们要做的是将所有的这些数据整合成一个完整的世界模型。我们不但能三维重建环境,还能三维重建任何在环境中运动的物体。这可以看出我们可以通过整合传感器数据,重建出很精确的模型。这是我们的第二个关键领域。
第三个关键领域是对人的理解。我之前提到了,机器人学中一个非常大的领域是和人进行交互。为了能与人交互,系统必须能理解人,理解人是如何运动的,理解人的面部表情,我在看向什么地方,理解人的意图,理解人的内部状态等等。一个重要的动作是理解面部特征,这是一个例子,实时跟踪,视频中只显示了一部分的特征。事实上他会跟踪更多的信息,跟踪几乎所有的面部肌肉运动,从这里面我们就能提取出人的情感,人的意图。这个例子是在导航过程中,观察驾驶员并推测驾驶员的状态。这是我这里的基本思想,理解面部表情。说说关于这项工作的两件事。第一点是这项技术所需的主要突破是推进在底层使用的学习技术中使用的优化算法。第二点是这项技术是来自另一个做面部矩阵(Facial Matrix)的公司(最近被Facebook收购了),所以这项技术在不久将来很快就能加进各位的Facebook平台中。
理解面部表情是理解人的一个重要部分,但是另一个重要部分是理解人的姿态和动作。如果机器人和我一起走,我希望它能理解我的所有动作,我是怎么运动的。这是另一个工作。这是我们最新的一个叫OpenPose的软件,现在它世界中各种各样的场合都有所应用。这个工作是同时跟踪多数的目标的姿态。一旦你做到了这点,就可以做很多很多应用。对于自动驾驶的汽车,你能够检测到诸如行人在做什么的细节;对于家庭机器人,它可以理解人是怎么运动的,怎么和机器人进行交互的。
然而这还是不够。如果你想要知道人在做什么,你需要理解人的手是怎么运动的,是如何和环境进行交互的。我们在人的每根独立的手指与环境交互的尺度上理解更多人动作的细节。你可以想象,现在系统能够通过人操纵物体的过程,理解人在做什么,能够从细节上理解制造业的操作中人与物体的交互过程。以上第三个感知的关键领域,让机器能理解人。
第四部分是传感器。为了做到上面提到的技术,我们需要传感器。我需要摄像头,3D传感器,RGBD传感器来给我足够好的数据来支持上述的各项技术。众所周知,伴随着智能机行业,消费性电子行业的发展,我们在摄像头,深度传感器的数据质量上取得了长足的进步。我们现在有非常好的摄像头,非常好的深度传感器,例如Kinect,realsense。从表面上看,传感器问题已经被解决了,我们有很好的传感器能用。然而实际上并不是这样的。事实上在现实中的机器人应用中,当我们需要他们时,这些传感器并不能在我们需要的场景中使用。
首先,在我们希望使用这些传感器的实际场合中,有非常复杂的照明和光线条件。我们还要能处理观测难度高的透明的物体,如金属制的反光物体。我们想能处理重要的物流或零售应用。我们需要能处理各种极难处理的物体,这些物体是透明的,表面还会反射出人的倒影。在室外自动驾驶场景中,我们要处理非常困难的逆光场景。在这些所有的条件下(例如坏天气下雨下雪,室外场景)在这些所有条件下,现有的传感系统基本上都会失效。任何现有的RGBD传感器,像Kinect或realsense,在这些场景里都会失效。这些真实世界的环境条件就是我们想要处理的条件。
很多的大家知道的解决方案像激光扫描设备(例如Velodyne),他们的问题是依赖于机械,很大,很复杂。而像Kinect这样的则在这些条件下表现的不好。为了搭建鲁棒的机器人系统,我们需要更好的传感器。这是我们面对的一个主要挑战。我们花费了大量的精力在传感器技术中。基本思路是如何精巧地构建透射出去的光线和观测反射回来的光线。基本的想法是试图区分出什么光是我们关心的,什么光是我们不关心的。如果你试图透过尘土或者雨观察,有一部分光会被灰尘反射、折射,这些光我们是不关心的,我们关心的是场景反射回的光。
所以这项工作的关键就是,我们要尝试设计一个能区分这两部分光的系统。这是一个叫Episcan的传感器。它的工作原理十分简单,一个非常可靠的激光发射器和一个相机非常仔细地同步到一起。这样它可以将光和目标物体的深度信息从环境中其他的干扰反射中区分出来。这是我们的一个例子,传感器试图获取灯的数据。
如果是通常的摄像机效果是这样的。所有的东西都被灯光掩盖住了。而我们的传感器可以做到看见台灯的内部细节,尽管我们投射的能量的强度并没有左边那么强,而且我们能够得到这个台灯的三维形状,即使在存在强光干扰的情况下。这里是另外一个例子,测量户外环境的三维数据。我们没有办法用Kinect或者realsense等等来测量。最重要的部分是,这一类工作致力于开发在所有情况下都能展示清晰结构和形状的流明摄像机,无论室内还是室外,无论物体什么类别。这种在所有情形下都能工作的检测能力是很重要的。让我们来看看我们在其他领域所做的事情。刚才所讲的呢就是感知的领域,理解环境、重构环境,包含了存在任意的移动,理解人的行为和其他比较麻烦的分析。
三、机器学习
这里要注意的是我们不可能显式地对机器人编程,我们能做的,是从数据中学习,以及从数据中学会如何对环境做出反馈。这是我们工作的重心。基本想法是要赋予机器人孩童那样从经历中学习的能力。靠玩耍和与环境互动,孩童学会了如何抓东西。这就是我们在机器学习中想要做类似的事。这不意味着你要让一个机器人从零开始学习,而是说如果我们能够学习一些策略,学习如何反馈环境,我们能够让机器人适应力更强,对变换的环境更适应,同时让他们从错误中吸取教训。这就是这类研究的基本想法。让我们来看一些例子。这是一个学习如何抓取物品的例子。这里我们让机器人花了七百小时来尝试抓取物品,有时成功,有时失败,总共尝试了有5万次左右。如果你尝试得足够多,你就有了足够多的成功和失败的案例,你就能从中学习到如何对一个特定输入采取行动的策略。
从这张图能看到我们失败和成功的案例。然后我们就学会了如何抓取物体。现在屏幕上的物品是之前机器人没有见过的,但是机器人却知道如何通过之前的训练来判断如何抓取他们。这篇论文(Lerrel Pinto and Abhinav Gupta,Supersizing Self-supervision:Learning to Grasp from 50K Tries and 700 Robot Hours)在2016年的IEEE ICRA会议上获得了最佳论文奖。现在我们看到了如何从经历中学习。但是现在更令人兴奋的是能够学习一些更复杂的策略。就拿这个例子来说,只是学习了抓东西,而没有学如何把东西拿稳,如何稳定地操控。事实上我们可以走的更远。这里我们让机器人学习如何抵抗逆境,从而学会如何把东西抓稳。这就跟小孩子如何学会判断怎么抓,哪个方向更稳是一样的。这就是利用物理互动和对抗来学习更多复杂的策略。
现在为止讲了操控和抓取的例子。另外一个我想提一下的是,多任务学习。在这里机器人除了能抓取,还能推,或者戳一个物体。所以一个研究领域就是如何跨任务地学习,掌握多种技能。刚才讲的都是操控相关的,你也可以学一些飞行之类的技能。这是个学习飞行的系统。和刚才讲的抓取一样,这个也是靠不断尝试和犯错来学习飞行策略的,利用深度学习的方法来学习策略。等到无人机学习了很多成功失败之后,它便能仅仅利用搜集和学习到的数据真正自主飞行了。这些学到的复杂技能向我们展示了学习的强大之处。这些便是机器人系统的另一个重要部分。重申一下,我们的目标不是让机器人从零开始,我们的目的是让机器人从数据中学习从而更有适应性,更灵活。
四、自主性,自己决策的能力
这里有一个十年前的例子——DARPA挑战赛。在第一个自动驾驶的公开赛中,我们当时获得了冠军,这个队伍后来到Google公司参与无人车研发,开启了整个无人车领域的工业和研究的发展。这个例子里展示的自主性就是自动驾驶。自动驾驶其实开始于很久以前。这是1986年,也就是三十多年前的例子,一个在CMU开发的叫做NavLab的系统。车上面有基本的计算系统,还有个超大的摄像头,用蓝色方框标出的是一个激光雷达,应该是第一个用于自动驾驶的激光雷达。这算是Velodyne的祖先,也是现在很多自动驾驶雷达的前身。它可以提供60x256的距离测量能力。如图便是这个三十年前的自动驾驶的视频。
这是利用神经网络的自动驾驶,以摄像头拍摄的图片为输入,输出控制方向的行为。这算是现在用于自动驾驶的模仿学习,深度学习的初代版本。这是激光雷达看到的深度图像。这也是一个证明时代科技发展的案例,从三十年前到现在。如果你们曾经抱怨计算资源不够,GPU不够,这是当时在NavLab系统内部的情况,我们使用的是工作站来运行。
讲了一些历史之后,我们现在又在做些什么呢?我们现在基本在关注三个主要的挑战。第一个挑战是自动驾驶现在不能实现安全的驾驶,比如不会碰撞,不会发生事故。我们想要的是让驾驶的过程很自然,我们想生成自然的、能够为其他驾驶员理解并合作的驾驶习惯。第二个难点是要能让模型把握环境的细节,这对于在拥堵环境下的自动驾驶尤为重要。有许多的行人、许多复杂的反应,不仅需要知道物体在哪里,还要知道环境中物体的可能意图和行为,比如预测行人或者其他车辆的活动、行为和相互作用。最后,利用其他数据和其他车辆交流,也是一个重要的领域。我们整合尽可能多的数据和信息用于自主决策。这些就是在自主性中我们要关注的三个主要的领域。
五、机器人和人类的互动
能够和人类互动是在机器人和其扩展领域中很关键的课题。我们关注的是深入理解人类行为,特别是人类的意图。比如我把手像现在这样移动,你应该能猜到我要拿鼠标,我们大脑有一个内部的模型知道我的行为和意图。第一个要做的就是如何构建这样一个理解人类的模型,特别是能够预测意图和行为的模型。第二个要做的事如何利用这个预测模型与人互动,这和一些机器人合作的方式和技术有关。我这里举个例子,一个让机器人系统和人类控制合作的极端条件下的例子,把人类的意图和系统控制相结合。这是匹兹堡大学的瘫痪病人,她不能移动自己的手和脚,完全没有行动能力。你能看到她拥有一个和她大脑相连的机械手臂,能够接收大脑的信号,并根据信号来控制手臂。这个脑部连接技术是之前被使用过的,这个技术的问题在于她仅仅能比较粗略地控制手臂,不可能用大脑信号来做一些非常精确的操作。即使病人经过了训练,她也不能够成功完成有用的任务,因为你没办法达到人类本身的控制水平。
这里的想法就是利用我之前所讲的所有东西。先有一个视觉系统来捕捉和理解整个场景,加上一个意图识别系统来理解人的意图。就像我开始这样移动,可能是要抓起这个鼠标,这个系统对人的意图会有一些概率的预测。给定意图之后,系统就能控制手臂、执行任务。极端的来说,一个人在想他要抓鼠标,然后系统知道了这一意图并且执行了任务。这是一种对来自大脑信号的控制和人工智能的控制的独特的整合。
接下来是一个视频的展示。右边是完全来自大脑信号的机械手臂控制,左边是整合了大脑信号和人工智能系统的手臂控制,也就是刚才讲的意图识别,场景理解等。右边的情况下她不能抓取目标物体,而左边她可以顺利完成。仅仅是这个简单的抓取,对纯大脑信号来说都是不可能的,却在与人工智能系统的整合后变得可能了。这就是我在开头所说的,我们真正感兴趣的是我们以前不可能有的新技能,做这么多操作以前对这个病人来说是不可能的,这就是我说的赋予人新技能的机器人技术。
不过,抓一个东西显然不是非常让人兴奋的操作。这里有一个更难的,对纯大脑信号完全不可能的操作,开门就是一个这样的例子。这里是整合了大脑信号和智能系统(这里是病人的头部和大脑植入物体)。她即将使用整合了大脑信号和意图识别等的系统来开门。这是一个听起来不难但实际很难的操作,因为它包含了两种不同的运动,将旋转和平移如此精确地同时执行,纯粹的大脑信号控制是不可能做到的。
刚才讲的分别是一个极端的例子和不那么极端的例子。让我用这些技术整合起来的系统来结束这个话题。当我们拥有了这么多科学技术,我们需要把它们整合成一个完整的系统,我目前为止讲的都只是其中的成分之一,感知,学习等等。很多工作落在一些基本的事件上。这些图片展示了一些完整系统,采矿业,农业,制造业,以及探测业(一个非常大且重要的方面)。我们在不同的设备上做了很多工作,在国家机器人工程中心(在CMU),在这里我们能够用刚才讲到的来做一个更大的机器人系统。
我们来看看这些实际的机器人系统的主要挑战又有什么。很重要的一点便是安全性和信任。在经典的软件系统和经典的工程系统,我们建立了良好的测试、验证证明这些系统的框架,有一些正规化的、公式化的验证软件。问题是,我们如何设计正规化的验证框架,验证那些不仅仅是由软硬件组成的系统,而是基于数据学习的系统。因为现在一个系统的表现不仅仅取决于软硬件的正确运行,也依赖于那些用来学习的数据。更难办的是,如何去评估一个适应时间改变的系统。基于观察的数据能够随着时间改变自己表现的系统,我们如何评估这些复杂的有不同方向用处的系统,这些就是我们在建立系统时主要关注的一些领域,这是一个新兴的致力于打造可信赖机器人的领域。这是一些我们的大项目的图片,和验证软件一样,验证机器人系统。
我们需要有事实依据来验证证明系统的表现,从而使系统具有可预测的、能被人类所信赖和利用的表现。这是一个很小的例子,有一个人在与非常危险的工作环境互动,当然是在保证安全的情况下,从而我们能更好观测系统的表现,得到一个可信赖的系统。这是另外一个无人机的例子。对于自动的系统来说,适应所有环境显然是很困难的,所以我们需要有一个内省或者叫做自我评估的系统,让系统能够自己评价自己的表现,然后在系统即将陷入困境、失败之前采取正确措施。比如你在开车,突然你被大雾包围,你立刻就能知道你的视觉系统肯定会失效。我们需要赋予机器人同样的能力,让机器人能自我评估,并且在知道其表现会受影响的情况采取正确措施。这便是这一类工作的思想所在。
在图中这里例子里,左边的视频是无人机的单目图像,右边是从无人机单眼摄像得到的三维图像,最右边是代表了可能失败的概率,越高代表概率越大。无人机一边飞行一边检测自己的飞行表现,就像你开车时能知道视野如何,自己开车的表现会如何。这是我们在理解、衡量以及增强一个自动系统时关注的一方面。
更普遍来讲,我们致力于建立自主系统的集成科学。它带给我们正规化的工具和方法,把之前说的那些技术成分整合进在现实应用中能被真正信赖的系统。以上就是我想和大家分享的。主要关注一些基础的研究和方向,动作、感知、机器学习、自主性以及和人的交互,以及在技术集成领域的一些主要挑战,如何把技术成分融合成实际应用的系统。我的演讲就到此结束。