1700044667
物体识别的挑战
1700044668
1700044669
中层控制软件需要指导无人驾驶汽车,穿行于具有无限可能性的复杂真实情景中。想要体会研发人员所面临的艰巨挑战,只需想象一下编写软件来指导汽车通过一个繁忙的十字路口是何感觉。既然软件应该与一个驾驶员保持相同的标准,那么它就必须遵守车辆管理局制定的一系列标准化交通规则。
1700044670
1700044671
减速、准备停车、避让已经在十字路口或刚进入十字路口的机动车辆和行人。而且,还需避让排在前面的机动车辆和自行车,以及在右边道路上同一时间到达十字路口的机动车辆和自行车。
1700044672
1700044673
很简单,对吗?但当你将过程步骤分解,问题就变得略微复杂了。第一个任务是编写代码使汽车能够“意识到”即将抵达十字路口,这样它可以“放慢脚步,准备停车”,这一过程可以通过设计GPS定位点和包含十字路口详细信息的数字地图来实现。停车标志或者红灯这样的视觉线索也能起到一定帮助。这一步实际上还没有什么特别难的问题。
1700044674
1700044675
现在开始转向下一个任务:避让已经在十字路口或刚进入十字路口的机动车辆和行人。在这一点上,问题开始变得棘手了。首先,什么算是“机动车辆”?软件如何能识别出“行人”这一类群体呢?
1700044676
1700044677
为了达到人类驾驶员的驾驶效果,我们假设中层控制软件必须通过某种方式正确地将机动车辆、行人或自行车进行归类。解决这个问题的一种方法是基于规则方法编写一个人工智能程序。为了将无人驾驶汽车可能会遇到的每一种行人、机动车辆和具体交通状况归类,我们必须编写一个尽量详尽的清单,也就是程序员称之为“如果-则编程语句(if-then statements)”。
1700044678
1700044679
现在转向下一个问题:你必须通过某种方式描述这些类别,软件才可以识别它们。识别“机动车辆”或“行人”这些分类的一种方式,可能是根据它们看起来更像是什么。例如,机动车辆是“10~20英尺长的矩形物体”,行人是“2英尺宽度以内、2~7英尺高度的两条腿物体”。
1700044680
1700044681
对于在过去几十年内一直致力于研究人工智能的研究人员来说,类别定义方式并非在任何情境下都适用。不可避免地会出现一些特殊情况,让精心构建的最全面的如果-则编程语句失策。例如在十字路口,一个行人可能拄着拐杖,另一个行人可能携带着笨重的包裹,这样他们的总宽度就会增加而超过2英尺;又或者一辆7英尺长的摩托车(因太短而不会被当作汽车)在十字路口呼啸而过,但是软件无法将其识别为机动车辆。
1700044682
1700044683
基于规则编写的人工智能软件的核心问题在于,如果没有一个概括性的方法将汽车可能遇到的一切情况进行分类,那么也就无法编写出指导汽车作出反应的全面规则。
1700044684
1700044685
由于我们的软件无法每次都准确识别遇到的是汽车还是自行车,所以它也就无法按照道路规则给汽车提供适当反应的建议。这就是研发人员为什么会说这样的话——
1700044686
1700044687
如果生活总是条理清晰,那么编写中层控制软件就很简单。但事实并非如此,在任何一个城市的任何一条繁忙的街道,总是会出现各种新奇的个案超出人们事先的界定。之所以我们总认为感知活动理所当然,再简单不过,是因为人类已经掌握了感知这一复杂的艺术。
1700044688
1700044689
Palm公司的创始人杰夫·霍金斯(Jeff Hawkins)在他的著作《智能时代》(On Intelligence)里列出了机器感知领域最持久的难题之一:不变性识别(Invariant Representation)。不变性识别是指我们的大脑具备准确辨认同一图像、声音或感觉的能力,即使是在陌生的环境遇到它们或者从一个新的角度体验它们。不变性识别的一个事例便是我们总是能在一瞬间认出朋友的脸,即使她把金色的头发染成了黑色。
1700044690
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
[
上一页 ]
[ :1.700044666e+09 ]
[
下一页 ]