第1章 绪论
1.1 人工智能
人工智能(artificial intelligence,AI)是研究和开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用的一门技术科学。
人工智能有着广阔的应用前景,如智能机器人、对弈游戏、语音识别、图像识别、自然语言处理和专家系统等。自其诞生以来,无数科研工作者不断完善和发展人工智能的理论和技术,使人工智能的应用领域不断扩展。目前,很多人工智能技术已经应用到实际生产生活中,极大地提高了生产效率,丰富了人们的生活。
早在人工智能被正式提出之前,图灵就讨论过机器是否可以有人一样的思维,并提出图灵测试。直到今天,图灵测试依然是衡量机器智能的准则之一。图灵测试的内容是让人和机器分别处在两个*立的房间内,让他们直接对话,但不能互相看见对方,如果人不能分辨跟他对话的是人还是机器,就认为机器达到了人类的水平。图灵测试是1950年提出的,但现在看来依然富有挑战性。在一些专业领域,人工智能技术得到了较好的施展,但要想让人工智能真正达到人类的水平,还有很长的路要走。
2017年7月,国务院印发《新一代人工智能发展规划》,指出人工智能的迅速发展将深刻改变人类社会生活、改变世界。人工智能技术的发展进入新阶段,是国际竞争的新焦点,是经济发展的新引擎,带来社会建设的新机遇。我国在人工智能技术方面有一定的基础,但原创性理论较少,关键设备还受制于人。面对新形势、新需求,我们必须主动求变应变,牢牢把握人工智能发展的重大历史机遇,紧扣发展、研判大势、主动谋划、把握方向、抢占先机,引领世界人工智能发展的新潮流,让人工智能技术服务社会经济发展,支撑国家安全,带动国家竞争力的整体跃升和跨越式发展。
1.2 视觉智能
视觉智能又称机器视觉(machine vision,MV)或计算机视觉(computer vision,CV)。在人工智能的众多应用领域中,视觉智能是其中的一个重要方向,即赋予视觉传感器智能的处理能力,代替人眼来做测量和判断。视觉智能通常分为底层视觉和高层视觉两类。底层视觉主要起到图像预处理的作用,如图像分割、图像特征提取。高层视觉是对处理过的图像进行分析和理解[1]。
实现计算机视觉智能的步骤一般是*先由图像获取设备将被拍摄物体转换为图像信号,传输给专用的图像处理系统处理并转化为数字信号;然后传输到数字图像处理系统,对提取像素的分布、亮度和颜色等信息进行运算,获得期望的目标特征;昀后将目标特征的判断结果传输给控制单元,执行相应的动作。
视觉智能是目前运用昀广泛的人工智能技术之一。工业生产中的视觉智能技术可用于工件缺陷检测、几何测量等 [2]。生活场景中常见的应用有条码识别、人脸识别、文字识别和辅助驾驶等。目前,研究人员正致力于把视觉智能技术用于更加复杂、综合性更强的场景中,如图像理解、图像生成和自动追踪定位等。
国外视觉智能技术应用较为成熟,在半导体、电子、汽车和食品等行业都有广泛的应用。国内相关技术虽然起步稍晚,但是发展迅速。随着中国制造业的产业升级,对产品检测和质量的要求不断提高,将极大地促进视觉智能技术的发展[3-7]。
1.3 交通场景环境感知
1.3.1 交通场景的定义
交通场景主要涉及行人、路面行驶的车辆和道路交通标志,非常复杂。任意两个交通场景都不相同,任意两个路口的路况、行人和车流也不相同,因此交通场景是一个极其复杂的系统。这给交通场景理解带来极大的挑战。交通场景中的复杂性问题可以概括为三个方面,分别是行人的复杂性,包括人流的大小和远近、行人行为的不确定性等;路面行驶车辆的复杂性,包括车辆切入、切出、超车,甚至是违规驾驶等随机且多变的驾驶行为;路面的复杂性,包括在路口、隧道、匝道、极端天气、光照影响和路面交通标志的磨损和遮挡等。同时,人、路面行驶的车辆和道路三者之间互相关联、相互影响。这都成为交通场景理解的关键问题和难点,需要进一步加以研究。
1.3.2 交通场景中的视觉认知
在现有的视觉认知算法中,为达到交通场景理解的目的,目标识别是核心任务之一,如道路及道路边沿识别、车道线检测、车辆识别、车辆类型识别、行人识别、交通标志识别、障碍物识别与避让等。视觉认知计算可以很好地解决这些目标的识别问题。基于视觉的交通目标识别系统利用摄像头观测驾驶场景,从实时视频信号中自动识别出目标,为实时智能驾驶提供判别依据。由于城市路况复杂,基于传统模式识别的目标检测方法有局限性,使基于视觉的智能驾驶技术难以得到突破。为了弥补视觉计算技术的不足,多采用雷达系统和导航系统作为补充,但是这会显著增加成本。由于城市道路的建筑物遮挡、隧道信号屏蔽、导航精度等问题,雷达与导航的组合依然达不到预期效果。
基于视觉计算的交通场景语义理解作为一个重要的研究方向受到国内外各研究机构的广泛关注。人们对图像场景理解的研究始于20世纪60年代初,初期主要以计算机视觉为载体,通过计算机模拟人类视觉或灵长类动物视觉开展研究。当前,基于视觉计算的智能驾驶场景语义理解已成为全新的研究领域,主要涉及道路场景的图像分割、道路场景目标检测等方面。该领域已吸引了全球众多知名研究机构、院校和企业,推动着视觉计算领域的快速发展[8-11]。
1.4 本章小结
随着计算机视觉技术的发展,采用卷积神经网络 (convolution neural network,CNN)、深度学习算法和视觉计算等人工智能技术可以通过学习感知路面标志和车辆等目标,进行目标检测和交通场景理解,从而大幅度提升相关算法的准确性。海量交通场景数据的开放、众多基础工具的开源、产业链的更新迭代,以及高性能的人工智能计算芯片、专用摄像头研发和优秀的深度学习算法等技术的进步,使基于视觉计算的交通场景理解具有良好的研究基础,对提升城市交通场景理解算法的识别精确度,更好地发展智能驾驶辅助技术和主动安全技术都具有重要的学术价值。
第2章 神经网络
2.1 感知机
感知机[1]是神经网络和支持向量机 (support vector machine,SVM)的基础,是一种二分类的线性分类模型。其输入为实例的特征向量,输出为实例的类别,类别取1和-1两种。感知机模型是神经网络结构的基础,也是深度神经网络模型的基础。
感知机由两层神经元构成,其结构如图2-1所示。输入层接收到外界输入的信号后传递给输出层。输出层是M-P神经元。感知机接收多个输入信号,输出一个信号。x1、x2是输入信号,y是输出信号,w1、w2是权重。图中的○称为神经元或者节点。输入信号被送往神经元时,会被分别乘以固定的权重(w1、w2)。神经元会计算传送过来的信号的总和,只有当这个总和超过某个阈值.时,才会输出1,称为神经元被激活,即(2-1)
图2-1 感知机结构
感知机是昀简单的线性二分类模型,如果要处理的数据是线性可分的,那么该模型能取得很好的效果;反之,该模型不能收敛。以二维平面为例,如果要分类的数据点能被一条直线分开,直线的一侧是正类,另一侧是负类,则说明数据是线性可分的。感知机就是为了确定这条直线wx.b。当wx.b运算结果大于或等于0时为1,反之为.1,为此引入sign函数,即(2-2)
感知机的训练过程就是确定w和b,从而确定一个平面分离正类和负类。在训练过程中,我们需要注意那些被误分类的点。例如,本来是正类,却被感知机分为负类。下式判断该点是否被误分类,即(2-3)
如果wxb0y为.则整个式子大于0,如果 , ,i1,该点被误分类。wxb0yi为+1,则整个式子小于0,被正确分类。如果不考虑1,式(2-3)则是感知机w的损失函数。如果有M个点,则损失函数为.(,i.i).i(xib)0xyMyw ,对于给定的训练集T,求解参数w、b的过程就是求解损失函数极小值的过程。感知机的算法是由误分类驱动的,*先选取一个超平面w、b,采用随机梯度下降(stochastic gradient descent,SGD)昀小化上式,则损失函数0的0梯度为(2-4)
每当有一个点被分类错误的时候,就更新参数。我们知道,w控制的是直线的斜率,b控制的是直线的平移,对w和b进行更新就是控制直线的旋转和平移。具体学习算法如下,其中.为学习率,控制的是旋转和平移的角度。
输入:训练数据集T,学习率.(0 1)。
输出:w、b,感知机模型fx.sign(wxb().)。
步骤1:选取初值w、b。
步骤2:在训练集中选0取数0据(,xiyi)。
步骤3:如果yw(x b)0:w yxbbiiwii, yi。
步骤4:转步骤2,直到训练集中没有误分类点。
2.2 基于梯度下降的学习方法
神经网络的非线性会导致损失函数非凸,使其无法全局收敛,这意味着神经网络的训练过程通常是迭代的方式。基于梯度优化策略,仅使代价函数达到一个非常小的值,而不是保证全局收敛。
展开