打字猴:1.700044691e+09
1700044691 人类的眼睛在向大脑传递数据流时十分流畅自然,以至于我们不需要有意识地拆开视觉场景来理解它。然而电脑通过视觉传感器读取数据流时,则要做大量的加工。视觉数据流在本质上是一个数值数组。机器视觉软件默默地处理这些数值数组,但无法理解数字描述的视觉场景,这是人工智能核心研究的一个难题。
1700044692
1700044693 对于人类如何实现几乎完美的场景理解能力这个谜题,几个世纪以来一直困扰着哲学家和科学家。自从第一台计算机被发明出来后,人工智能研究者一直试图用各种技术破解场景理解能力难题,以及与之紧密相关的物体识别问题。有些技术采用逻辑法(如果物体有三个尖角,那么它肯定是……);有些技术则采用强力破解,即将机器人可能遇到的物体图像尽可能多地存储,并且基于一些比对规则将新遇到的视觉信息与储存的数据库进行比较。这两种方法都会有些作用,但是效率不高,而且无法为机器人提供一项关键能力——在不熟悉的场景中依然准确地识别熟悉场景中见过的目标物。
1700044694
1700044695 为了使机器能够自动化地识别物体,开发一款可以从原始数据中提取视觉信息以识别所描述物体的软件是很有必要的。多年来,为了实现这项功能,研究人员已经尝试了各种方法。20世纪60年代,计算机视觉识别软件就开始了其早期开发和研究,其工作原理是从数字图像中提取简单的线条。
1700044696
1700044697 这种方法的著名案例是一个名为沙基(Shakey)的机器人,创造者是斯坦福大学研究员查尔斯·罗森(Charles Rosen),他颇为自信地将沙基称为“第一个电子机器人”。沙基的“身体”由一堆架在小车上的沉重箱子组成,里面装有各种电子设备。箱子的上面是沙基的“脑袋”,一根又高又细的桅杆上架设着相机和电缆。机器人沙基的视觉传感器是一台20世纪70年代的电视摄像机,可以持续采集图像,但生成的图像只有几百像素。
1700044698
1700044699
1700044700
1700044701
1700044702 图 4.1  机器人沙基在运动过程中的定格影像(大约摄于1970年)
1700044703
1700044704 来源:斯坦福国际研究所
1700044705
1700044706 沙基的表现震惊了机器视觉研究界。它对输入其系统内的指令“去找一个红色方块”做出了回应:电视摄像机慢慢转动方向,四处寻找红色方块,当其视觉系统得出结论,确实看到了要找的目标时,沙基将发出任务完成的信号。这在20世纪70年代是一项十分不错的技术。
1700044707
1700044708 沙基使用的是一种被称为“边缘检测(Edge Detection)”的人工智能技术,隶属于“模板感知(Template Based Perception)”这一视觉识别技术的大家族。通过分析电视摄像机采集的图像,并将其简化为简单的线条图,沙基可以识别特定形状或颜色的物体。一旦图像被分解,沙基就可以将其与线条图数据库中的锥体、长方体、圆柱体进行比较,进而识别出眼前的这个物体究竟是什么。
1700044709
1700044710 边缘检测需要的计算能力、内存和有效的数据存储库相对较小。边缘检测是一种从原始视觉数据中提取有用信息的快速方式,特别是当时沙基的硬件设备还很不成熟,这一特点更为明显。分析一个完整的数字图像要花几分钟。将图像分解成简单的线条画后,让沙基能够在人类还算满意的时间内及时对指令作出反应。
1700044711
1700044712 基于边缘检测技术的模板匹配方案,有着显而易见的局限性。沙基只能在一个专门设定好的环境中发挥作用,需要识别的对象只能是它熟悉的,并且没有额外的背景干扰。如果沙基“看到”的对象无法与它储备的线条图库匹配,其软件就会尝试作出最可能的猜测。当在这个环境中投入新的障碍物,比如一个圆柱体、一只猫、飘着的塑料袋,或同事无意中在上午晚些时候漫步走进实验室,沙基的传感器都将捕获这些不熟悉的目标,但中层控制软件却无法识别出到底是什么。
1700044713
1700044714 仿照机器人沙基的设计思路,人工智能研究人员研发改善了基于规则的人工智能软件程序,使其可以处理许多不同的数据格式,包括数字图像文件、三维点云(3D point clouds)和视频。有些机器视觉软件可以根据三维深度数据进行深度的测量计算;有些软件专门研究识别数码照片的不同纹理;还有些程序专门用于识别特定视觉特征的有无与否,并将其与数据库中存取的物体特征进行比对。
1700044715
1700044716 许多类似技术得到了很好的应用。事实上,现代工业机器人仍然应用这些技术来执行具体的任务,如检查复杂的电路板或将机器零件分类装进箱里。然而,基于规则(或模板)的机器视觉软件的关键局限性是它最适合结构化的环境,这样机器人的机器视觉只需处理一组内置选定的物体对象。给一个只负责区分螺母和螺栓的工业机器人呈现一只香蕉,它会发现图像库里没有图像能与这个奇怪的黄色物体匹配,就只能干瞪眼了。
1700044717
1700044718 当需要为无人驾驶汽车提供情境识别的能力时,基于规则的人工智能研发进展尤其缓慢。在观看2007年DARPA挑战赛时,我目睹了基于规则的人工智能程序在理解交通场景方面的完败(请原谅我使用了这个词语),即因一个失误导致两辆自动驾驶车辆相撞。
1700044719
1700044720 早在2007年,计算机视觉软件大多还是基于规则设计的。随着比赛的进行,来自我的母校(康奈尔大学)一辆叫天网(Skynet)的车缓慢谨慎地走在路上,紧随其后的是一辆来自麻省理工学院的汽车塔洛斯(Talos)。突然,康奈尔大学的车无缘无故地停了下来、后退,接着蹒跚前进,然后再次停止,麻省理工学院的汽车试图越过这辆蹒跚前行的车辆。但当后者慢慢要超车时,康奈尔大学的车毫无预兆地又开始移动了,于是塔洛斯撞上了天网的侧面。幸运的是没有人受伤,(后来)两支队伍还都挺享受地成为这次事件的参与者,因为这可能是历史上第一次“无人驾驶汽车对无人驾驶汽车”的事故。对这两辆汽车驾驶日志的分析表明,汽车碰撞是因为它们的机器视觉软件未能出色地完成工作。在事后分析中,康奈尔大学的团队得出的结论是,汽车突然刹车的原因是“一个测量任务的错误导致天网‘看到’了一个并不存在的障碍物,时不时地堵住了天网的道路”。麻省理工学院团队总结道:“塔洛斯把天网当作了一堆静态物体。”
1700044721
1700044722 如果指导麻省理工学院汽车的软件正确地把康奈尔大学汽车识别为移动车辆,事故就不会发生,反之亦然。这个例子充分说明了一件事,即具备识别道路上及其两侧物体的能力对于无人驾驶汽车的中层控制系统是多么的重要。“停着的摩托车”与“行驶中的摩托车”,这两个相似目标之间微小却又关键性的差别或许就会引发人命关天的大事件。
1700044723
1700044724 无人驾驶:人工智能将从颠覆驾驶开始,全面重构人类生活 [:1700043790]
1700044725 中层控制系统
1700044726
1700044727 我们将通过四个组成模块来解释中层控制系统的工作原理:第一个模块是占据栅格的软件工具;第二个模块是一个软件程序,用于识别并标记流入占据栅格的原始数据;第三个模块使用预测性的人工智能软件对障碍物用不确定性锥(Cones of Uncertainty)做替代;最后,第四个模块由一个短期轨迹规划器(Short-term Trajectory Planner)组成,负责引导汽车绕过感知到的障碍,同时保证遵守相应的交通规则。
1700044728
1700044729 我们先来谈谈第一个模块,占据栅格。占据栅格是一种软件工具,针对汽车外部环境进行实时、持续更新的三维数字建模。类似于一个包含了数字记录的后端数据库,占据栅格是一个存储了汽车周围实体对象信息的数字存储库。它既可以与中层控制软件的其他模块相配合,也能作为程序员的视觉参照模型。
1700044730
1700044731 流入占据栅格的数据,一些是源于已经存储的高清地图的静态数据,其他数据则来源于汽车视觉传感器的实时导入。随着数据从各种来源流入占据栅格,大多数程序员会使用颜色编码和容易识别的图标,在建立占据栅格模块时代替高频次出现在道路上的物体。
1700044732
1700044733
1700044734
1700044735
1700044736 图4.2  以十字路口识别的物体形成的一个占据栅格,同时叠加了高清地图数据和传感器数据
1700044737
1700044738 来源:谷歌公司
1700044739
1700044740 二十年前,通常的占据栅格是块状显示,而且画面粗糙,视觉感官水平跟老式游戏机中的吃豆人(Pac-Man)一样。在20世纪80年代,那时的无人驾驶汽车配置的是很重的小型计算机和电视摄像机,用于数据建模的占据栅格描绘出的汽车外场景是一帧一帧静态图像断续拼凑而成的。如今的占据栅格能够实时运行,通过列出汽车附近所有物体的滚动更新清单建立一个环境的动态模型。
[ 上一页 ]  [ :1.700044691e+09 ]  [ 下一页 ]