本文整理自IEEEFellow优必选悉尼大学人工智能研究院陶大程教授名为《人工智能正驱动机器人发展》稿件。
上一代机器人依赖的是计算智能,这个时代的机器人通过各种传感器在一定程度上实现了感知智能,未来的机器人将进一步实现高性能的感知智能并且实现认知智能的效果。人工智能驱动机器人发展主要是基于人工智能的四个元素:Perceiving(感知)、Learning(学习)、Reasoning(推理)和Behaving(行为)。
机器人感知与交互能力
感知是利用各种各样的传感器来获取环境信息,使得机器人理解外部环境。我们目前关注的是摄像机获取的环境信息,因为利用摄像机获取的环境信息可以做很多东西,比如物体的检测和跟踪、场景分析等,这样机器人就有机会在我们的环境中完成人所需要它完成的任务,达到机器人扩展“人”的智能的目标。
物体检测对人来说轻而易举,我们可以很轻松地从场景中检测到这里有一只杯子,那里有一个人。对于机器人来说,目标是一致的,但是实现高性能的检测却不容易。传统的物体检测是通过窗扫描来实现的。扫描窗从左上角的第一个像素开始,逐像素扫描到右下角的最后一个像素,并且扫描若干次不断调整扫描窗的尺寸。这种方式只适合检测某一种固定的物体,即便如此效率也非常低下。我们知道扫描的过程中产生的各种扫描窗有大量的冗余,且很多扫描窗也不能是物体,这就驱动我们去考虑采用一个体量很小的神经网络来快速找到那些有可能包含我们所关心的物体的图像区域。这个网络就是proposalnetwork,目前已经被广泛地采用了。获得这些可能包含物体的图像区域后,我们就可以使用一个高精度的分类网络,对图像区域进行分类,这样就能够快速地检测场景中的物体。
有了高效的检测框架,我们能干什么事呢?举个例子,一张照片里面有很多人,如果让人来数,时间代价很大。但是用机器数一下就知道了,人脸检测器能够检测出来大约850张人脸。实际上拍这个照片的时候统计为1000人。因为一些人离摄像头太远了,分辨率很低;另外,有些站在后面的人可能被前面的人挡住了。这些人脸要检测出来还是有很多挑战的。除了检测人脸,还可以检测车辆,不分昼夜。
机器人所处的环境是动态的,人和物体都在动,机器人的本体也在运动。机器人需要理解物体和人的行为。要理解实现行为理解,跟踪所有的物体是必不可少的。首先说一下单目标跟踪,这个任务的挑战性来源于多种因素的影响,比如说光线变化、物体的变形等。要想长时间稳定的跟踪运动物体,仅仅靠跟踪是不够的。通常,我们会把跟踪和检测放到一起。
跟踪完单个目标之后,往往还需要跟踪多个目标。比如在这个监控场景里面包含了很多人,很显然,这是一个多目标跟踪的问题。除了单目标跟踪遇到的各种挑战,在多目标跟踪里面,还有运动物体的互相遮挡这一挑战。多目标跟踪有很多应用,比如无人驾驶中,我们需要理解目标区域里面所有人的行为。再问一个问题,我们为什么需要家庭服务机器人,或者社交机器人?我们除了期望这些机器人帮我们完成一些简单的家务之外,我们更加希望这样的机器人能够和我们做一些情感上的交流。
我们看一下这个视频。在这个setup里面,我们首先需要解决多摄像的机拼接问题。这个足球比赛视频用了四台摄像机。这个篮球比赛视频用了两台摄像机。通过摄像机标定,我们可以实现准确的视频拼接。有了这样一个拼接好的视频之后,我们可以理解这些运动员在球场的跑位。配合行人重验证和人脸识别,我们甚至可以知道每个球员是谁。再配合人体姿态估计,我们也能够精细的理解每一位球员的每一个动作。有了这些信息输入之后,机器人就能理解两个队伍的比赛状态,这样的人机交流将是非常有趣的。
机器人要充分理解一个场景,还非常依赖于场景分割。场景分割可以帮助机器人知道场景中有哪些物体、物体在什么位置,包括物体的大小、体量甚至一些详细的属性标签等。目前深度神经网络已经可以做到对静态场景比较精确的标注。在运动场景中,机器也已经能够做到相对比较精准的分割,协助完成,比如自动驾驶。实现高性能的场景分割,我们需要实现高效的多特征、多尺度信息融合。
我们在看一个场景的时候,可以知道哪个物体离我们比较近、哪个离得比较远。场景分割告诉我们有什么物体,这些物体在哪里,我们还需知道场景的深度信息,这样我们就能够知道物体的远近。距离信息对于机器人在场景中的导航定位、物体抓取等都非常重要。我们知道目前大部分机器人只安装了一台摄像机。那么我们需要从单张照片中获取深度信息。我们知道这个问题是非常困难的,但我们可以利用很多历史数据对来训练一个深度神经网络。我们把彩色图像输入到一个深度卷及网络,输出是深度图。如果我们有大量的数据对,似乎感觉就能够实现这样的目标。但即便如此,要想达到很好的效果也很困难。我们在做这个问题时,有两个发现:(1)在高分辨率彩色图像上直接回归这个深度信息是非常不准的,但如果我们把深度信息进行量化,分成若干块,变成一个分类问题,我们却可以达到非常好的效果;(2)我们依然需要连续的深度信息,这时候我们把彩色图像的分辨率降低,在低分辨率的彩色图像上回归连续的深度信息,我们也能够得到非常好的效果。剩下的问题就是如何把两个发现有效的结合起来,实现高精度的单张图像的深度回归。
我们并不期望这样的系统能够替代16线、64线的激光雷达。毕竟回归的精度和激光雷达的测量精度还是有很大差距的。但是,这样的系统对于一些不需要刚精度深度信息的应用却是非常有效的。另外,也可以和激光雷达进行信息融合,得到空间高分辨率的场景深度信息。
现在的机器人识别,比如一个家庭里面的五六个人已经没什么问题了。甚至稍微增加模型的复杂度,除了可以识别家庭成员,还可以识别家庭成员的朋友,大的场景在一定程度上也能够实现,这主要归功于深度神经网络。
人脸识别是身份认证非常直接的手段。当然,还可以通过人的行走的方式,甚至穿着信息。布局多摄像机网络的智慧城市系统中有这样一个问题,一个人穿过若干摄像机,那么如何把这个人的行动轨迹恢复出来?这个问题就可以通过行人重验证来解决,甚至我们可以利用穿着信息去找特定的人。比如找一个上身是蓝色衣服,下身是黑色裤子。我们就可以知道这个人在一定区域内的行动轨迹。在Market1501的数据库上,我们rank-one的识别率已经超过了95%。
人机交互是非常复杂的,因为如何理解人的意图是非常困难。那么把这个问题简化一下,我们首先考虑检测人的关节点、跟踪人的姿态。总的来说,在光线不算糟糕的情况下,基本上可以做到有效跟踪。比如最近CMU的框架,甚至可以识别到手的关节,这样就可以帮我们分析手的动作、甚至做手语识别。有了这样的人体姿态跟踪的框架,我们可以做机器人的控制,还可以分析球场上每个运动员的动作,知道他是射门还是投球。除此之外,还可以做fine-grainedclassification,比如说识别世界上的鸟,利用关键点检测技术,或者说基于我们的pose-net,我们可以检测到鸟的嘴、头和脚等。然后在每个区域上提取精细的特征,这样我们就可以比较准确地识别出鸟的类别。
这些都只是机器视觉感知的一部分。除了视觉感知,还有自然语言理解、语音识别等。在这些例子中,我们对输入的数据是有质量要求的。如果现实中输入图像或者视频数据的质量比较差,比如有噪声、雾霾等,都会给后续的识别造成困扰。所以,我们需要做图像质量评价。
图像分辨率也是一个问题。现在的摄像机已经很好了,一般都可以获取到非常高分辨率的图像和视频,但不都是这样,比如说摄像机离物体比较远。当数据的分辨率低的时候,检测、跟踪、识别都会很难,所以对分辨率的提升就非常关键。
机器人自我学习能力
机器人在感知环境之后,它所获取的信息对于系统性能的提升是有一定帮助的。要进一步提升机器人的性能,就需要机器人自我学习,把不同类型的信息进行有效的整合,这些都和机器学习有很多的关系。
人是一个多任务学习的实体,我们希望机器人也是多任务学习的实体。目前大部分网络都是单一任务驱动的,人脸识别就是人脸识别、表情识别就是表情识别。但是我给你一张照片你能得到很多信息,比如这个人是男的还是女的、戴眼镜没、甚至这个人的属性,这就激发我们要训练支持多任务学习的神经网络。
除了多任务学习,还有多标签学习,给你一个图像或者视频,所涵盖的标签信息非常广泛。这些标签之间也是有关系的,而这个关系就是非对称的因果关系。利用这样的非对称因果关系,我们可以更为有效的进行图像识别和理解。
再就是迁移学习。举个例子,比如我手里有一个东西,它是圆的、红色的,脆的,我问大家这是什么?大家想一想可能不知道是什么。再比如反过来,我手里有一个苹果,大家描述一下这个苹果有什么特征?这个非常直接,你们会告诉我,这是圆的、红的、脆的、非常好吃。传统的迁移学习,都是基于特征包含标签的假设。
当我们的标签数据是没有噪声的时候,我们能够有效的训练模型。如果标签有噪声怎么办?现在是大数据时代,数据的标签都是通过众包获取的,所以有标签噪声很正常。
深度学习提升了系统的性能,但是模型也变得越来越大,存储和计算都变成了问题。有什么办法让深度模型变得很小?我们就要对深度模型进行压缩。通过传统的DCT变换,我们可以对模型进行非常有效的压缩,同时在一定程度上提升了原始模型的泛化能力。
最后是推理和行为。比如人的行为分析:要正确理解视频的内容,比如这个视频是打拳击、洗脸还是玩游戏。
再比如人机交互,我们怎么教机器人来做一些事情?传统的方式,我们通过程序设计,未来的机器人都是试教学习或者是模仿学习,让机器人看一下,它就知道怎么做了。
Image或者Videocaptioning(看图说话)。给机器一个小视频让它来识别,这样的问题难度已经不大了。但如何对内容进行精细地理解、描述,还是很困难的。
除了看图说话,还有看图回答问题。这对计算机来说不容易,你要理解图像,理解问题,知道如何把问题跟图像关联起来。
通过深度学习,结合视频和激光雷达,我们可以检测到所有的人和车,可以估计他们的速度,检测到路线,对场景进行分割,分析安全区域,让无人车完整的感知环境。甚至还可以分析人、车未来要做的动作。无人车、机器人,都给人工智能提供了非常好的展示平台。
总之,人工智能、机器人,给未来带来了无限可能。