1.1.3 智能机器人背后的技术
* 关键词:智能 机器人 家庭 娱乐 技术
* 作者:邵芒
过去的机器人以半自动化的机械性劳动为主,而近年随着图像识别、语音识别、深度学习等技术的快速发展和突破,机器人产业也迎来了关键的历史时期,人工智能技术的快速发展为机器人植入了智能化的“大脑”,智能化将成为机器人产业的升级方向。机器人被赋予了更加智能化的算法,因而能完成很多复杂的任务,各种各样的智能机器人应用及产品层出不穷。
随着几十年工业和科技的进步,神秘的机器人慢慢从科幻作品步入现实社会:笨重的机械臂变得灵巧又精准,已经可以协助医生完成各种高难度的手术;带有自动导航功能的载具可完成自动灌溉、运输货物、设备的损坏检查等一系列需要大量人力的高强度工作;很多家庭也购买了家务机器人,为自己节省了时间。机器人对人们生活的影响,已经覆盖多个层面。接下来介绍一些不那么热门却令人惊叹的智能机器人产品。
1.家庭类
(1)做饭机器人“Moley”
如果你觉得做饭非常麻烦或时常需要面对舍友听见你说“今天我下厨”时的恐惧眼神,那么你或许需要这一款做饭机器人“Moley”:全自动“一条龙”服务,从学习各系菜谱到洗碗,甚至还能学习顶级厨师的烹饪方法。当然,与高档的外观相匹配的是其不菲的价格。
充满科技感的“Moley”包括两只机械手臂,每只手臂上的触感传感器用于反馈触觉信号(如图1-16所示)。除此之外,还包括电子烤箱、烤炉、洗碗机以及一个触屏单元。机械手臂能抓取并使用厨房的各种器具,如打蛋器、菜刀等。Moley Robotics公司未来计划录入2000余种菜谱供用户挑选。目前用户可以通过内置的触屏或手机App来操作该机器人。据Moley Robotics公司的员工介绍,美中不足的是食材仍需要放在指定的位置,食材形状上的差别也会造成抓取失败,并且一旦动作中的某个环节出错将无法恢复原操作,这些问题在未来都将通过机器学习技术来解决。
学习做菜方法是“Moley”的核心技术,它借助三维摄像机和连线的手套等一系列动作捕捉系统来记录人类厨师的动作,并上传到数据库。厨师的动作和工序通过手势和姿态被识别转化成带有时序的数字信号,其技术由斯坦福大学和卡内基梅隆大学共同研发。之后“Moley”便可通过重现整个工序,使用与厨师一模一样的方法来做菜。
图1-16 做饭机器人“Moley”
(来源:Moley Robotics公司官方网站)
动作捕捉系统是一种记录并处理人或其他物体动作的系统,在各个领域都得到了广泛的应用。例如,擅长制作精美的三维动画的梦工厂公司就经常使用类似的系统使虚拟人物的运动如同真人一般流畅。
动作捕捉系统的原理是什么呢?被捕捉动作的对象,如演员,每秒会通过光学或非光学的方式被多次采样记录,一般来说,记录的内容主要是关键点的位置及其运动轨迹。这些数据会被重新处理并映射在虚拟三维模型的各个对应点上,并通过一些算法校正数据的误差使之符合物理上的约束。
其中的第一个关键技术即通过传感器从人或其他物体上捕捉关键点。这里又包括两个分支:光学动作捕捉系统和非光学动作捕捉系统。
光学动作捕捉系统利用多台相机或其他图像传感器接收并通过标记点的位置来估算其在三维空间的对应位置,一般会运用数学中的透视投影算法(如图1-17所示)。估算这个对应位置需要事先获得每个标记点在二维/三维空间的对应坐标,以及相机内参,包括焦距、畸变等,以获得准确的空间信息。
图1-17 光学动作捕捉系统
(来源:Wikipedia)
获取图像上的标记点有以下几种常用方法。
·被动标记:在标记点涂抹后向反射材料反射从相机附近打出的强光,通过改变相机的阈值来过滤皮肤和衣物上的光。
·主动标记:标记点附加LED灯,使捕捉的信噪比更高、范围也更广,通常可以精确到0.1mm。
·时间调制过的标记:通过不同方式闪烁每个标记点,使其获得额外的编号信息。这样可以省去人工对应标记点的工序,甚至可以根据人物动作实时渲染三维模型的动作。这种技术通常依赖于高速的电子快门。
·无标记:捕捉对象不需要佩戴任何设备,后台通过纯图像信息(通常同时包括深度信息)来估算标记点位置。这种技术依赖于计算机视觉的人体姿态识别算法,在现有的深度学习算法框架下可以取得非常可观的效果。
非光学动作捕捉系统可通过惯性系统——佩戴惯性测量单元来采集标记点的相对运动,或是通过穿戴外骨骼装置甚至磁铁来实现同样的功能。
(2)叠衣服机器人“Foldimate”
比起对于很多人来说还是很有乐趣的菜肴制作,洗衣服则是实实在在的家务琐事,每周都要洗衣服、晾衣服、熨衣服、叠衣服,周而复始。“Foldimate”可带你脱离苦海,你只需挨个把衣服塞进去,之后就可以拿出叠得整整齐齐的衣服了,它配合洗衣机和烘干机的使用使洗衣服到叠衣服的过程变得简单、顺畅(如图1-18所示)。
叠衣服机器人看起来很简单,但其中运用的技术却很复杂。有句话说得很贴切,人工智能系统能在最复杂的游戏中打败世界上的顶级天才,却在很多的简单工作中不如一个技能拙劣的工人。叠衣服机器人需要面对的是不同尺寸、厚度、材质、类别的衣服,而识别并寻找正确的入手点其实是一件非常有挑战的事情。
接下来通过一篇来自帝国理工学院的学术论文,介绍一个与自动化叠衣非常相关的冷门技术——衣物识别及标记点检测。这篇论文将自动化叠衣分成了两个步骤:识别衣服种类并检测衣服上合适的标记点,生成叠衣服计划。
图1-18 叠衣服机器人“Foldimate”
(来源:“Foldimate”官方账号)
衣服作为识别/检测目标可以被归类为“三维可形变物体”,这是最具挑战性的类别之一。其他三维物体一般包括以下两类。
·刚性物体:如一个雕像。一般来说,这类物体在真实空间中变化时受到的限制较大(只能旋转、位移,通常不会发生形变),所以映射出的图像的变化也较为简单。
·铰接式物体:如人的手或骨骼。这类物体由刚性物体连接而成,其图像上可能的变化也呈指数级增长。虽说人的手只有十几个关节,但如果需要捕捉一只手的全部角度和可能的手势,组合起来的数据往往也会达到十万级乃至百万级。
这里要讨论的三维可形变物体最为复杂。最典型的就是橡皮泥,它们可以以任意方式变形产生无穷的变化。所以我们首先需要缩小变化的空间,典型的方法之一就是假设它局部是形变很小的刚性物体。
通过图像识别之后,将检测根据衣服种类来定义的适合抓取的标记点(如图1-19所示)。一旦取得了这些标记点,就可以通过机械臂将衣服展开成更容易进行后续处理的状态。论文中运用的识别和检测算法是前些年较为流行的随机森林算法,其优势在于可应对不同机器学习问题的高适应性以及O(log n)的低复杂度,从而能在较快地应对大量数据时维持较高的准确率。在此之后出现了很多更适用于形变物体的标记点检测算法。不过在深度学习热潮爆发的今天,可以使用现有的一些标记点检测算法,如CNN(Convolutional Neural Network,卷积神经网络)算法。
图1-19 衣物上适合抓取的标记点
回到叠衣服机器人上,接下来就出现了两个问题。假如所有标记点或一些标记点被挡住了怎么办?衣服抓起来又该怎么叠?
论文中给出了方案:主动计划。简单来说,需要实现的就是找不到就翻个面,看不到就换个更好的角度,当然,实际操作时要复杂得多。论文作者使用了部分可观察马尔可夫决策过程,让系统通过观测不同状态下的检测结果来确定下一步如何处理可以离最优的结果更近。
当所有标记点都成功找到后,衣服被平铺成标准的模样,叠衣服机器人只需要完成预先设计好的动作(如图1-20所示)。
图1-20 衣服识别及标记点检测
(来源:Autonomous Active Recognition & Unfolding of Clothes using Random Decision Forests & Probabilistic Planning,A.Doumanoglou et.al.)
(3)家政机器人“Aeolus”和“REEM”
小圆盘形状的扫地机器人已经比较常见,而接下来要说的是两款真正的扫地机器“人”。“Aeolus”和“REEM”都是泛用型家政机器人管家,能帮助主人做各种家务琐事(如图1-21所示)。它们拥有具有亲和力的人形外表,可以接待客人,也可以送食物、捡地上的大块垃圾、找丢在地上的钥匙等。最重要的一点是,它们和真正的管家一样,可以通过和主人的接触来了解主人的日常作息、生活习惯,甚至和主人进行简单的对话。
图1-21 家政机器人“Aeolus”和“REEM”
这两款机器人所涉及的技术和算法比较复杂,仅涉及的人工智能相关技术就非常多,如接待客人要用到的技术有:人脸检测,用以发现客人到来;人脸识别,用以认证客人信息;人脸标记点检测,用以辅助人脸识别、判断客人的人脸朝向、判断是否在说话或更多;NLP(Natural Language Processing,自然语言处理),用以判断客人说了什么。捡垃圾要用到的技术有:物体检测,用以判断是否有垃圾、垃圾大概属于什么类别;SLAM(Simultaneous Localization and Mapping,即时定位与地图构建),用以定位和移动到垃圾所在地;六自由度三维物体姿态识别,用以决定从何下手来抓取这个垃圾以及再次更详细地验证这个垃圾的信息。而简单的对话交互系统更是需要成千上万的数据来支持,如苹果公司的Siri和亚马逊公司的Alex,其背后的成本可以说不可估量。
以下简单介绍用途非常广泛、目前相对较成熟的SLAM系统。可以说,只要需要自主行走且不被绊倒、不撞墙的机器人都需要搭载这个系统。
SLAM系统需要解决的是机器人“三大问题”:“我在哪儿?这是哪儿?要去哪儿?”或“定位、地图构建、路径规划”。接下来将介绍和计算机视觉相关的前两部分。
定位:假设有一个参考点作为原点,通过机器人的摄像头怎么得出移动之后相对原点的位置?首先将其简化成更简单的问题:我有两张图像,分别是相机移动前和移动后拍摄的,求相机的姿态(旋转、位移)。目前解决这个问题大多还是使用几十年延续下来的经典方案,基本可以概括如下。
·寻找局部特征点。也就是找到在各种变化下都稳定的小块图像区域,如桌角。这样将相机换个角度或是离远些也还是能找到这个特征点。经典的有角检测和块检测,一般会和特征点抽取配套使用。
·抽取特征点。找到了这些小块图像区域后,为了便于匹配,需要将它们转换成标准的形式,一般称之为特征向量。特征向量需要有“不变性”的特征,也就是在各种条件下,同一个物体的同一个位置对应的特征向量需要尽可能相同。经典的方法如SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)和SURF(Speeded Up Robust Features,加速稳健特征)等,大部分也包括对应的局部特征点的抽取。最近,深度学习领域中也出现了类似提取/描述特征点的网络结构。
·匹配特征点。比对特征向量,找到两个图像局部特征点的对应关系。因为特征向量已经固定,所以简单地计算每个维度之间的差即可。
·计算摄像机矩阵。找到一组匹配的二维—三维点就可以算出图像上的像素和真实世界空间的关系。摄像机矩阵为一个3×4的矩阵,可将真实世界空间的三维坐标映射到二维图像上。
完成上面这几点,就可以算出每次图像改变时,相机到底在什么方向移动了多少距离。当然,这里面包括很多限制。因为是基于图像的,在高速运动或是视觉受到严重干扰的场景中,整个系统就会完全失效,所以很多机器人会同时配备GPS、IMU(Inertial Measurement Unit,惯性测量单元)来辅助定位。
地图构建:通过定位求出了摄像机矩阵,就可以轻松地为图像赋予额外的“深度”信息,也就能知道某个像素距离拍摄处有多远。把每帧的像素都投影到三维空间中就能构建好地图了吗?实际上,问题复杂得多,因为真实环境中充满了干扰。首先环境干扰和相机、算法的限制会导致局部特征点不准确,在此之上求出的摄像机矩阵也就不准确,那么物体在图像上的点会被投影到偏离真实位置的点。累积下来,整个地图必然一片狼藉。
于是有了一系列优化方式来解决这个问题,从经典的EKF(Extended Kalman Filter,扩展卡尔曼滤波器),到之后基于图论的捆绑调整,最终目的都是通过多次观测来拟合出一个最为准确的点。在这期间还衍生出了另一个问题:闭环检测。因为机器人在运动时会持续产生误差,长时间的移动会累积非常大的误差,所以机器人走很远再回来可能就觉得自己到了一个新的地方。于是就要额外增加一个新功能:记住自己到过的地方。然后像蛇咬尾巴一样把途中生成的地图重新连接,做一次全局优化,尽量弥补中间的误差,获得真实数值。通过类似原理实现的微软公司的Kinect Fusion三维物体重构如图1-22所示。
图1-22 通过类似原理实现的微软公司的Kinect Fusion三维物体重构
2.娱乐类
踩在平衡球上欢快的机器人啦啦队员“muRata”,能同步,不互相碰撞,也不摔倒(如图1-23所示)。
图1-23 机器人啦啦队员“muRata”
摇滚乐队“Z-Machines”全部由机器人组成,包括鼓手、键盘手和吉他手(如图1-24所示)。除了外表酷炫,这支乐队还能演奏超越人类水平的乐曲。
世界上著名的魔方手“The Cubinator”也是机器人(如图1-25所示)。2010年,“The Cubinator”在复原三阶魔方时仅用时18.2s。除此之外,它还有一些奇怪的幽默感,如不小心掉在地上时,会发出“Oh Dear”的声音。
图1-24 机器人摇滚乐队“Z-Machines”
图1-25 机器人魔方手“The Cubinator”
此外,人们观看魔方还原时,会有前一帧9个颜色、后一帧1个颜色的感觉(如图1-26所示)。
图1-26 还原魔方装置
3.体育类
乒乓机械臂“KUKA KR AGILUS”和世界冠军泰姆·博尔(Time Boll)打乒乓球打得难分上下(如图1-27所示)。
图1-27 乒乓机械臂 “KUKA KR AGILUS”
4.实用类
看起来不起眼的机器人救生员“E.M.I.L.Y”一年完成了77 192次救生任务(如图1-28所示)。
智能喷水器“Droplet”借助千万气象、土壤信息,能精准地根据植物状况进行灌溉,据说可以省下90%的水(如图1-29所示)。
图1-28 机器人救生员“E.M.I.L.Y”
图1-29 智能喷水器“Droplet”