基于深度学习车辆型号识别.docx_第1页
基于深度学习车辆型号识别.docx_第2页
基于深度学习车辆型号识别.docx_第3页
基于深度学习车辆型号识别.docx_第4页
基于深度学习车辆型号识别.docx_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于深度学习的车辆型号识别 摘 要 随着智能交通的发展,车辆型号的识别受到越来越广泛的关注,它能够为个人,企业和政府的车辆使用以及监管提供诸多遍历。因而,如何设计高效算法,对车辆型号进行识别和分类,受到了学术界和工业界的广泛关注。本文主要如何利用深度学习的方法进行车辆型号的识别和分类。首先,介绍了车型识别的应用背景和深度学习的基本理论。之后,为了进行目标识别,我们介绍了常用算法,分析比较了作为图像特征提取常见的算法,总结归纳了他们性能,精度以及相互之间的关联。之后,介绍了在目标识别工作中基本算法,阐明了各种方法的特点和适用场景。之后,我们以深度神经网络为理论依据,分析比较了深度神经网络不同的特征学习方法,并分析了如何使用卷积神经网络训练参数。我们分析比较不同特征学习方法的特点选取k均值聚类算法作为本文使用的特征学习方法,利用卷积神经网络结构搭建深度学习模型。、本文采用大量实测数据作为仿真数据,以确保实验的有效性。同时,基于相同的实测数据我们适用改进SIFT特征匹配算法和深度学习算法进行车型识别。实验结果表明,深度学习算法的准确率高达90%,相对于SIFT匹配算法,深度学习算法的车型识别的准确率大大提高。基于上述仿真结果,我们的到了深度学习算法适用于车辆型号识别领域的结论。 关键词: k 均值聚类,深度学习,卷积神经网络,尺度不变特征变换, 支撑向量机 Abstract With the development of intelligent transportation, the recognition of vehicle model is paid more and more attention. It can provide many ergodic for vehicle use and supervision of individual, enterprise and government. Therefore, how to design efficient algorithms to identify and classify vehicle models has attracted wide attention from both academia and industry. This paper mainly discusses how to use depth learning method to identify and classify vehicle models. First of all, the application background and the basic theory of depth learning are introduced. After that, in order to identify objects, we introduce the common algorithms, analyze and compare the common algorithms for image feature extraction, and summarize their performance, accuracy, and the correlation between them. After that, the basic algorithms in target recognition are introduced, and the characteristics and application scenarios of various methods are clarified. Then, we analyze and compare the different feature learning methods of depth neural networks based on the depth neural network, and analyze how to train parameters using the convolutional neural network. We analyze and compare the characteristics of different feature learning methods, select the K mean clustering algorithm as the feature learning method used in this paper, and build a deep learning model by using the structure of convolutional neural network. In this paper, a large amount of measured data is used as simulation data to ensure the validity of the experiment. At the same time, based on the same measured data, we apply the improved SIFT feature matching algorithm and depth learning algorithm for vehicle recognition. Experimental results show that the accuracy of the depth learning algorithm is as high as 90%. Compared with the SIFT matching algorithm, the accuracy of model recognition is greatly improved by depth learning algorithm. Based on the above simulation results, our depth learning algorithm is applicable to the field of vehicle model recognition.目录第一章 绪论11.1 课题研究背景及意义11.2 深度学习简介31.3 本文主要工作及篇章结构8第二章 目标识别算法92.1. 基于机器学习的分类算法12 2.2. 神经网络算法14 2.3. 卷积神经网络训练算法20 第三章 车型识别算法14 3.1 SIFT特征匹配算法16 3.1.1 原始算法 3.1.2 改进算法 3.2 深度学习算法16 3.2.1 无监督特征学习 3.2.2 基于SVM 卷积的网络优化算法 3.2.3 车型识别在深度学习中的建模 3.2.4 深度学习算法设计 第四章 数值仿真和结果分析224.1基于 SIFT 特征匹配的车型识别仿真4.2 基于深度算法的车型识别仿真 4.3 结果分析以及算法对比第六章 结束语27致 谢28参考文献291. 绪论 1.1. 研究背景及意义 因此,智能交通系统(Intelligent Transportation System,简称ITS)1-3是未来交通系统的发展方向,它是将先进的信息技术、数据通讯传输技术、电子传感技术、控制技术及计算机技术等有效地集成运用于整个地面交通管理系统而建立的一种在大范围内、全方位发挥作用的,实时、准确、高效的综合交通运输管理系统。车辆身份识别5-6系统是智能交通的重要分支,它需要人工智能、图像处理、计算机视觉、模式识别等相关技术的综合应用。目前国内的车牌识别技术已经日益成熟,随着智能交通技术应用的不断加深,工业界迫切希望提取更多元的车辆信息,除车牌号码外,还需要车辆的厂牌、型号以及颜色等信息特征。这些特征在停车场无人管理、交通事故处理、交通肇事逃逸、违章车辆自动记录等领域具有广泛而迫切的应用需求。机动车厂牌型号识别技术分为多个环节,一般是通过对摄像机采集的数字图像进行去噪、增强、车标定位、特征提取、识别等分析完成。为了得到较高的识别率,要求每一个处理步骤要有很高的准确率,而实际背景复杂,四季、昼夜、晴雨等不同情况的光照以及车辆运动速度的快慢等直接影响车辆图像的成像环节,造成车辆图像颜色失真、车身及车标区域灰度不均匀、边缘模糊、粘连等问题,增加了处理难度;反光、逆光、夜晚光照不足、树荫、车身颜色显著区域分布位置不同等情况又增加车身颜色识别难度;再加上车辆类别繁多以及车身本身的污损、遮挡、模糊,也为进一步提高识别率带来诸多困难。针对诸多问题,工业界一般采用了国际先进的人工智能、计算机视觉、图像处理、模式识别、大数据训练、深度学习等等技术来,通过从视频流中检测车辆、车头区域的定位、变形和倾斜校正、去除运动和成像造成的模糊、车辆特征的定位和识别、海量特征的选取和决策等多个环节来实现。在系统的设计和实现过程中,工业界开发应用了当今国际上最先进的计算机视觉技术,并通过超百万的大数据学习样本进行训练,大量实地数据的系统调整和测试,还采集了描述车头、车灯、散热格栅等各个部分的外形轮廓、相对位置、颜色、纹理等多种特征,组成了海量的辅助分类信息,与厂牌型号识别的结果一起最终通过可在线学习的特征决策模块,得到综合可信度评价,从而得到最终的识别结果。浩瀚如海的大数据,结构复杂,种类繁多,单纯依靠人力定义的过程无法处理这海量数据。于是我们采用基于模仿人类神经网络的人工智能算法,让机器从海量数据当中自我学。深度学习的实质,就是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。我们通过利用大数据来深度学习各类信息、特征,更能够刻画数据的丰富内在信息。从而得出更多元更精准的厂牌型号及其他信息。1.2. 深度学习简介深度学习7-10领域的学术研究可以包含四部分:优化(Optimization),泛化(Generalization),表达(Representation)以及应(Applications)。除了应用(Applications)之外每个部分又可以分成实践和理论两个方面。首先我们介绍优化部分。深度学习的问题最后似乎总能变成优化问题,这个时候数值优化的方法就变得尤其重要。从实践方面来说,现在最为推崇的方法依旧是随机梯度递减,这样一个极其简单的方法以其强悍的稳定性深受广大研究者的喜爱,而不同的人还会结合动量(momentum)、伪牛顿方法(Pseudo-Newton)以及自动步长等各种技巧。此外,深度学习模型优化过程的并行化也是一个非常热的点,近年在分布式系统的会议上相关论文也逐渐增多。在理论方面,目前研究的比较清楚的还是凸优化(Convex Optimization),而对于非凸问题的理论还严重空缺,然而深度学习大多数有效的方法都是非凸的。现在有一些对深度学习常用模型及其目标函数的特性研究,期待能够发现非凸问题中局部最优解的相关规律。之后我们介绍泛化过程。一个模型的泛化能力是指它在训练数据集上的误差是否能够接近所有可能测试数据误差的均值。泛化误差大致可以理解成测试数据集误差和训练数据集误差之差。在深度学习领域变流行之前,如何控制泛化误差一直是机器学习领域的主流问题。从实践方面来说,之前许多人担心的深度神经网络泛化能力较差的问题,在现实使用中并没有表现得很明显。这一方面源于大数据时代样本巨大的数量,另一方面近年出现了一些新的在实践上比较有效的控制泛化误差(Regularization)的方法,比如Dropout和DropConnect,以及非常有效的数据扩增(Data Agumentation)技术。是否还有其它实践中会比较有效的泛化误差控制方法一直是研究者们的好奇点,比如是否可以通过博弈法避免过拟合,以及是否可以利用无标记(Unlabeled)样本来辅助泛化误差的控制。从理论方面来说,深度学习的有效性使得PAC学习(Probably Approximately Correct Learning)相关的理论倍受质疑。这些理论无一例外地属于“上界的上界”的一个证明过程,而其本质无外乎各种集中不等式(Concentration Inequality)和复杂性度量(Complexity Measurement)的变种,因此它对深度学习模型有相当不切实际的估计。这不应该是泛函理论已经较为发达的当下出现的状况,因此下一步如何能够从理论上分析深度学习模型的泛化能力也会是一个有趣的问题。而这个研究可能还会牵涉表达(Representation,见下)的一些理论。表达主要指的是深度学习模型和它要解决的问题之间的关系,比如给出一个设计好的深度学习模型,它适合表达什么样的问题,以及给定一个问题是否存在一个可以进行表达的深度学习模型。这方面的实践主要是两个主流,一方面那些笃信无监督学习(Unsupervised Learning)可行性的研究者们一直在寻找更好的无监督学习目标及其评价方法,以使得机器能够自主进行表达学习变得可能。这实际上包括了受限波尔兹曼模型(Restricted Boltzmann Machine),稀疏编码(Sparse Coding)和自编码器(Auto-encoder)等。另一方面,面对实际问题的科学家们一直在凭借直觉设计深度学习模型的结构来解决这些问题。这方面出现了许多成功的例子,比如用于视觉和语音识别的卷积神经网络(Convolutional Neural Network),以及能够进行自我演绎的深度回归神经网络(Recurrent Neural Network)和会自主玩游戏的深度强化学习(Reinforcement Learning)模型。绝大多数的深度学习研究者都集中在这方面,而这些也恰恰能够带来最大的学术影响力。然而,有关表达(Representation)的理论,除了从认知心理学和神经科学借用的一些启发之外,几乎是空白。这主要是因为是否能够存在表达的理论实际上依赖于具体的问题,而面对具体问题的时候目前唯一能做的事情就是去类比现实存在的智能体(人类)是如何解决这一问题的,并设计模型来将它归约为学习算法。我直觉上认为,终极的表达理论就像是拉普拉斯幽灵(Laplaces Demon)一样,如果存在它便无所不知,也因此它的存在会产生矛盾,使得这一理论实际上只能无限逼近。最后,我们介绍深度学习的应用。深度学习应用广泛,主要包括语音识别和视觉处理。2009年,Hinton把深层神经网络介绍给做语音识别的学者们。然后2010年,语音识别就产生了巨大突破。本质上是把传统的混合高斯模型(GMM)替换成了深度神经网络(DNN)模型,但相对识别错误率一下降低20%多,这个改进幅度超过了过去很多年的总和。这里的关键是把原来模型中通过GMM建模的手工特征换成了通过DNN进行更加复杂的特征学习。在此之后,在深度学习框架下,人们还在不断利用更好的模型和更多的训练数据进一步改进结果。现在语音识别已经真正变得比较成熟,并且被广泛商用,且目前所有的商用语音识别算法没有一个不是基于深度学习的。1.3. 本文主要工作及篇章结构本文研究内容主要包括,1)介绍车辆型号识别现状和深度学习理论,提出改进方法;2)研究将深度神经网络引入目标识别和分类问题中的具体方法;3)研究了卷积神经网络的构建方法和训练方法;4)提出针对车型识别的卷积神经网络模型,并通过实验证实该模型在车辆型号分类上的效果;5)与改进的SIFT特征匹配分类方法进行对比本文分为四个章节: 第一章主要介绍了车辆检测和识别的应用背景和目前该领域存在的主要问题和挑战,阐述了研究车辆型号识别的目的和意义,并对当前现有的智能交通系统做了介绍,比较各种车型分类识别的方法,介绍深度学习在特征提取和文字识别上的发展状况,提出车辆分类算法新思路。 第二章对当前的车辆分类特征和算法做了详细的描述。分析各种特征之间的优势和劣势,并对主流的粉类算法的思想做了描述和总结,分析了每类算法的优点和缺点,这些理论研究,可以帮助我们设计基于卷积神经网络的车辆识别算法。 第三章介绍了车型识别算法。我们使用SIFT特征匹配算法和深度学习算法进行车载识别。我们首先介绍了原始SIFT特征匹配算法,分析该模型适用场景和局限,并给出了改进算法。在改改进算法中,我们使用密集采样保证识别精度。之后我们介绍了深度学习算法的理论,并给出基于深度算法的车型识别模型,并设计了算法流程。第四章使用计算机进行仿真。我们采用大量的实测图片和数据作为基准,分别验证了SIFT特征匹配算法和深度学习算法在车型识别中的效果。最后,我们对比了这两种方法的仿真结果。2. 目标识别算法综述 传统的目标识别主要是利用一种或多种特定的特征去表示图片中目标物体区域,然后利用分类器对所得的特征向量进行分类,车辆型号的识别其实就是目标识别的对象为车辆,方法流程基本一致。物体的轮廓线条是可以描述目标特征的全局特征,但是在尺度变换、旋转变换之后变化很大,从而表达能力发生变化。而局部特征由于在一定程度上对尺度和旋转的变化具有鲁棒性,所以作为描述图片的特征更有优势。SIFT 特征的设计及描述方法,并对最常用的机器学习分类器做简单的阐述。 机器学习的核心问题就是让计算机模拟人类大脑工作,为此科学家们构建出人工神经网络模型,算法在提供初始条件后自主从数据学习新知识,不断增强自身的学习和理解能力。深度学习的提出给神经网络的学习能力带来了飞跃。本章会介绍深度学习相关研究,为后文建立基于卷积神经网络进行车型识别提供理论依据。2.1. 基于机器学习的分类算法在本章中,我们介绍机器学习的相关分类算法,主要包括K 近邻算法(K nearest neighbor,KNN)11-13和支撑向量机算法(Support Vector Machine, SVM)14-15。K 近邻(K nearest neighbor,KNN)作为数据挖掘的十大经典算法之一也在图像分类中用的很多,大多数基于特征匹配的分类算法都需要用到 KNN 或者他的变形。K 近邻是从最近邻算法发展而来的,在最近邻算法中,计算测试样本到所有训练样本的距离,找到距离最近的样本所属类别作为分类结果。K 近邻则是寻找 K 个最近邻样本,然后让 K 个样本进行投票决定测试样本点所属类别。在目标分类领域,关键点特征匹配加上 K 近邻的方式非常常用,效果也不错,特别是标记样本数据不充足的时候比基于分类的方法可靠性更高,但是其缺点也很明显,需要存储大量数据,并且计算量也很大。为了优化计算也出现了 K-dtree、VOCtree40, 41等优化算法。 支撑向量机(Support Vector Machine, SVM)使用线性划分的方法。对于不能线性划分的样本,算法寻找映射函数将数据从低维空间映射到一个高维空间,要求在该高维空间中数据线性可分,最后在高维空间中则可以用超平面进行样本分类。另外,SVM 还要求最后得到的判决面是最优的,即所得判决面两侧离判决面最近的样本到超平面距离最大。设训练样本为:,表示样本特征向量,表示样本的标签取值为若存在超平面: (2-10) 则样本线性可分,因此两类的间距可以表示成,因此为了得到最优判决平面就要对类间距进行优化,求解最优判决平面的问题转化为下面这个规划问题: (2-11) 然后用拉格朗日法将上述问题转化为对偶的二次规划问题: (2-12) 优化后求解得到: (2-13) 得到决策函数为: (2-14) 根据判决函数值的正负来确定样本是正样本还是负样本。 当样本线性不可分的时候,有两种方式解决这个问题,第一种方式是采用非线性的核函数,将低位空间线性不可分的样本投影到新的空间,使数据在新的空间中线性可分。因此,判别函数变为: (2-15) 不同的核函数会带来不同的分类效果,但是还没有很好的理论方法去指导核函数的选取,只能通过实验的方式选择合适的核函数。 另一种方法:引入松弛变量解决线性不可分问题,将线性约束变为: (2-16) 当样本分错的时候大于 0,分正确怎为 0;优化的目标函数变为: (2-17) 为惩罚因子,取值越大表明样本越重要,因此,该样本被分错会得到更大的惩罚。 此时优化约束也发生改变,变为: (2-18) 上面讨论可以看到 SVM 是针对二类问题设计的,但是现实中分类往往是多类问题,利用 SVM 解决多类问题一般有两种方法43, 44。第一种是针对多类问题中的每两个类都训练一个二类分类器,这样若是一个 k 类问题则需要训练个分类器,虽然这种方法简单易扩展,但类别很多的时候会需要大量分类器,会有不可分的区域;另一种方法是针对每一个类跟剩下所有其他类间训练二类分类器,则 k 类问题则需要训练 k 个分类器,这种方法需要的分类器少,但对每个类的训练过程复杂类别改变的时候不易扩展,也同样存在不能区分的区域。虽然 SVM 存在计算复杂以及一些识别能力的局限,但总的来说与其他机器学习的分类方法相比还是具有明显的优势。本文的车型识别方法也将会用到 SVM 分类器,并将它与卷积神经网络相结合。 2.1 神经网络算法神经网络(Artificial Neural Network ANN)18-20 是受动物中枢神经系统的启发所设计的一种具有机器学习和模式识别功能的数学模型。一般是由一组互相连通的“神经元”组成。每个“神经元”都有自己的激励函数,它接受其他节点传来的信号,并将信号用自己的激励函数处理后传递给下一级。根据激励函数的形式不同神经元分为:线性神经元、二进制阈值神经元、修正的线性神经元、Sigmoid 函数神经元等,它们的工作原理大同小异,总的归纳起来,神经元工作原理如图 2-5 所示,首先将所有输入进行加权求和,并加上一个偏置并加上一个偏置 b,然后用激励函数处理得到该神经元的输出。 将神经元以一定的方式连接组合就得到了人工神经网络,图 2-6 所示的是最为普遍的前馈神经网络模型。它由一个输入层(input)、一个隐藏层(hidden)和一个输出层(output)组成,每一层的节点激励值都是由其前一层与之相连的节点计算得到的。除了前馈神经网络,还有循环神经网络,这种网络具有环路,它更贴近生物大脑的工作原理但是训练困难;另外还有对称神经网络,它的每个连接都是双向的,包含隐藏层的对称神经网络就是玻尔兹曼机,虽然比不上循环神经网络的学习能力,但是具有简单易学习等优势,因此应用十分广泛。 深度学习就是利用一些方法去构建一个含有多层隐藏层的人工神经网络,网络的每一层都对应着原始数据不同层次的数学抽象,从而达到用特征向量描述图像的目的。在讨论深度学习的具体方法之前,首先要明确两个概念:有监督学习和无监督学习。 所谓有监督学习,是指给定了训练样本数据(data)的同时也已知样本经过学习后的目标值,比如我们进行车辆型号分类的时候给出了一组车辆图片,也给出每张图片对应车辆的型号。一般这些目标值是由人工标记或给出的真值(Ground Truth),也称为样本标签(label)。常见的有监督学习形式有:回归和分类。回归就是要对数据及其标签进行拟合,找到使得下面的函数值最小的函数曲线。 2.3 卷积神经网络算法深度学习有多种学习结构,主要分为三类:第一种是生成型的深度结构,其代表有深度置信网络(DBN)21:它由一系列限制型玻尔兹曼机组成,主要能解决多层神经网络在学习的过程中:标签数据需求量大、收敛速度慢和陷入局部极值等问题。由于其学习的是观测数据和标签的联合概率,所以对先验概率和后验概率都可以进行估计。第二种是区分型模型,下一章使用的卷积神经网络就是其代表,其结构不同于第一类模型,只能对后验概率进行估计,适合应用在识别和分类问题中。生成型结构用于分类问题的时候,可以在后面使用区分型的结构进行参数优化。因此得到第三类混合型结构,它是将上述两种结构用合适的方式组合起来。 卷积神经网络在计算机视觉上的应用已经相当广泛 ,利用卷积神经网络对图像进行特征提取 并且在场景标记 中取得较好的效果;另外也有把这种方式应用在机器人视觉上的研究 。它根据视觉原理定义局部视觉感受域,这个感受域是图像的一个个小区域,这些区域作为最底层的输入,然后在多层网络中逐层做正向传递,得到图片的特征,在同一层的特征图中位置不同但网络参数共享,这样做能减少需要学习的参数数量,同时能够使得特征具有变换不变性。因此,最后通过网络学到的数据特征具有平移、旋转、缩放不变。神经网络算法应用广泛,首先我们介绍特征提取算法。上面已经提到卷积神网络作为区分型的深度学习结构在计算机视觉特别是区分性问题中应用广泛,我们将使用卷积神经网络分析深度学习。我们接下来展现在卷积神经网络,我们如何提取特征向量。 图 2-11 卷积网络特征提取53 上图展示了使用神经网络进行特征提取的流程图。做完卷积运算就得到了 C1,是 8 幅 2828 的图片,因为边长 32 的图片用边长 5 的卷积核卷积后图片大小应为:32-5+1=28.为了减小数据并且得到稳定的局部特征,在 C1 的基础上做 pooling,pooling 有多种方式,常用的有最大/最小值 pooling 和均值 pooling,为了保证整体效果最好,我们采用均值池化。然后为了减少数据维度,在进行特征图的下采样得到下一层 S1,此时数据变为 8 幅 1414 的特征图;接着按类似得到第一层的方式,使用 55 卷积核,并将不同特征图卷积后累加起来得到,操作之后得到 20 幅 1010 特征图,即为 C3 的输出。同样进行下采样将每幅特征图变为大小 55,即为 S4 的输出。然后,最后一层 C5 也是卷积层,其每一幅图跟上一层所有图都连接,得到个特征图大小为 11 的 120 个特征图,拉成一维向量就是学习得到的图片特征。 接下来我们介绍卷积神经网络训练过程卷积神经网络的训练过程就是要对网络的各个参数进行优化,这个过程包括前向传递和后向传播。前向传递的时候网络中的参数保持不变,根据各层节点的激励函数逐级计算得到网络的输出;然后将输出值与已知的数据标签进行比较得到两者的差值,再从最后一层网络一层一层向前根据误差去修改参数,从而达到优化参数的目的。假设一个多类问题,类别数为一共有个训练样本,选取平方误差作为代价函数,则系统误差计算如下: (2-20) 表示对应的第个样本在第类上应该对应的标签,表示系统预测出来的结果。在传统的全连接网络中,通过优化得到网络中的各个连接的权重,假设当前为第层,则当前层的输出为: ,其中 (2-21) 为输出激活函数可以根据具体应用选择不同的函数,使得满足一定的统计特性能够加速训练过程的收敛;是对与当前节点连接的所有前一层节点输出的加权求,具体参见前面对神经元的阐述。这个向前传递的过程就叫卷积神经网络的前向传递。 对系统参数的学习过程就是优化系统误差的过程,因此,每次前向传递后系统的误差会在网络中做后向传播,这时,定义一个变量:节点的“灵敏度”,它是指误差随某个参数变化率,单元偏差值(bias)参数为例,根据求导链式法则定义为: (2-22) 相邻网络层之间的递推关系为: (2-23) 我们使用各个元素一次相乘。然后每一层根据其对应的值用下面的式子对各个连接的权重进行更新,最终训练得到神经网络。 (2-24) (2-25) 根据上面的表达式,我们可以设计出有效的神经网络训练算法。3 车型识别算法 在现实生活中,车型识别有效提高车辆通行效率,增强车辆识别度,减少人工管理及刷卡停车场系统的管理难度,更减少系统误判,具有高效、安全、便捷等特点。他无论对于个人,企业以及政府都有非常有效的作用。如何使用合适的算法,在保证车型识别的精度时,降低开销,如计算复杂度,软硬件实现成本等,是车型识别理论研究和工程实践的重点。接下来,我们分别介绍了两种车型识别算法: SIFT特征匹配识别算法和深度学习算法。这两种算法可以有效地识别车型,适用于不同场景。对于SIFT特征匹配识别算法,我们在车型识别的应用中需要更高的要求,因此,我们首先介绍了SIFT特征匹配识别原始算法,之后提出了改进方案,最后分析了算法性能。对于深度学习算法,我们分别介绍了无监督特征学习和利用 SVM 分类器进行卷积网络优化的背景知识,之后对车型识别进行建模,我们的模型可以有效地利用深度学习反应车载识别的特性。最后,我们也对深度学习算法进行了性能分析。在接下来的章节中,我们详细介绍 SIFT特征匹配识别算法和深度学习算法在车载识别中的应用。3.1. SIFT特征匹配识别算法在智能交通中,SIFT 特征匹配算法应用广泛。尺度不变特征转换(Scale-invariantfeaturetransform或SIFT)22是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由DavidLowe在1999年所发表,2004年完善总结。其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对。SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、些微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。具体而言,SIFT特征匹配算法有如下特点:1.SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;2.独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;3.多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;4.高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;5.可扩展性,可以很方便的与其他形式的特征向量进行联合。由于SIFT 特征匹配算法适用于各种场合的车载识别,我们也对 SIFT 特征匹配算法进行了大量实验,说明基于 SIFT 特征匹配算法在车型识别中存在的问题。 本实验从城市交通车辆监控视频中截取出大量的车辆图片,然后利用 OpenCV 中现有的检测算法配合人工标注的方式得到个常见品牌车头图片,约有10000张图片。基于这些图片进行实验。基于 SIFT 特征匹配算法进行车型识别的流程如图 3-2 所示。 然后将图片与数据库中所有的比对图片进行关键点匹配,具体做法:数据库中已知标签的图片归一化到相同大小都提取得到关键点,并计算各个关键点处的SIFT特征;未知图片归一化到同样的大小并进行相同的操作,然后将未知标签的图片与数据库中的一张图片逐个计算每两个特征点的特征向量的距离,距离小于一定阈值且方向满足一定要求的则认为是匹配成功,并记录这两幅图片匹配特征点的数目。与数据库中所有图片都进行上述的匹配过程,选取匹配特征点最多的图片,将该图片的标签作为未知图片的标签,就得到了未知图片的类别。在SIFT算法中误判主要来源于:首先,多对特征点集中在车标和车牌这些区域,因此会得到很多匹配的特有些同品牌不同型号的车存在外观上的相似。第二个原因是可以接受的,因为长得很像的车人眼也不容易区分,但是第一个原因值得我们关注,因为特征点过于集中在某些区域实际上就是丢失了一些其他区域的信息,而且集中在车标区域带来的问题是:即使可以很好的区分不同品牌的汽车,但同品牌的不同型号就不易进行区分了。 异很大,加上 SIFT 对局部特征描述能力很强所以最后的匹配点明显减少,只需给出匹配线段的一些角度限制还可以抑制掉更多的误匹配。 3.2.1. 算法改进 SIFT算法会具有不稳定的特性。当样本形态颜色等相关特性出现变化时,往往会导致检测结果不稳定。这种不稳定在关键点上表现得更为明显。在车型识别中,由于车辆的特征变化较大,例如,同意品牌的车辆的大小外化以及颜色都会有明显差异,在使用原始SIFT算法进行车型识别的过程中受上述限制, 往往会导致结果的不准确。在原始SIFT算法中,特征向量的旋转角往往非常不准确,因此,我们需要修正相关参数。同时,在在原始SIFT算法中,我们使用特征抽样的方式,当采样率低时,关键点间隔较大,无法准确反映样本特性。基于以上的分析,我们改进SIFT算法,使之适用于我们所研究的车型识别。我们采用更加密集的抽样方式,这样虽然会增加系统的复杂度,但是相对于传统SIFT算法的稀疏抽样,它能够更加准确地获得样本信息,是的车型识别的精度有大量提升。同时,为了增加算法的效率,我们使用特殊的数据结构加速SIFT算法中的匹配过程。具体而言,在本文中,我们使用广为使用的树状结构。树状结构简洁明了,适用于各种分类搜索算法,因此,可以大大加速匹配。在最后的仿真部分,我们会展现原始算法和改进算法的结果。3.2 深度学习算法在车型识别中,我们需要根据已有图像的相关特性,并根据特性进行分裂。深度学习可以提取样本特性,并给出分类。尤其对于图像识别,深度学习拥有大量经过实践证实的有效算法。因此,深度学习可以利用与车型识别。在接下来的章节中,我们主要介绍了无监督特征学习和基于SVM 分类器卷积的网络优化,这是使用深度学习实现特征识别的基础。之后,我们建立了车型识别的深度学习模型。在该模型中,使用卷积神经网络进行优化建模,无监督方法进行低纬的特征提取,之后,我们通过提出的特征表示,使用特定的优化准则进行参数优化,得到高纬的特征值。最后,我们通过大量实验证实了深度学习在车型识别中的有效性和可靠性 3.2.1. 无监督特征学习 无监督特征学习23包括许多有效地算法,其中,最为常用的是k均值聚类算法。在k均值聚类算法使用自适应稀疏编码和限制性玻尔兹曼机对图像进行特征提取。然而,在使用卷积网络进提取图像特征是,当卷积层数较高时,我们需要大规模的训练,进而极大地增加了算法复杂度。为了使得算法可以被有效的使用,我们使用k均值聚类快速提取低纬特征。但是,这些特征无法有效地实现识别分类,尤其是当有突发情况的干扰时,基于k均值聚类快速提取低纬特征的精度非常低。所以,之后我们需要采用参数优化的方法,从这些低纬参数中提取高纬参数,保证识别的可靠性。K均值聚类算法通过不断更新聚类中心实现样本分裂,这是矢量量化(vector quantization)方式。在无监督特征学习过程中,我们将对 k均值聚类算法做改造,通过 k均值聚类算法构建一组向量基,这组向量基重构的重构误差最小。在实际设计中,我们往往会用优化来设计。 k均值聚类算法 可以视作为稀疏编码的推广,差别在于保证稀疏性的区别。稀疏编码最小化来强制稀疏性,而 k均值聚类算法要求码元的非零元素为一。所以,k均值聚类算法可以有效地进行特征学习学习。同时,由于非零元素较小,我们不需要遍历许多情况,所以k均值聚类算法收敛速度快。在k均值聚类算法中,我们可以构建以下优化问题: (4-1) 不难看出,上述问题为凸优化问题,因而,我们可以得到最优化单一码本的形式为: (4-2) 之后,我们可以使用迭代的方法求出所有码本。 当这样的迭代完成,得到训练好的码本,即可利用码本对新的数据进行特征表示。例如一个已经经过预处理的样本,首先跟码本中的每一个码元计算向量相似度,然后利用非线性函数映射到特征空间,得到图片特征向量,计算过程如下: (4-4) 接下来我们采用特例解释k均值聚类算法。以 3232 的图片为例,要在其每个 88 图像块(patch)上进行特征计算,则首先将用来训练的 88 图像块,都拉成 64 维向量,然后聚类得到码本,然后对图像中以为中心的 8 8图像块拉伸成向量后根据公式 4-4 计算该点出的特征,对图像块来说就是在做卷积运算,最后整幅图像被表示成 2525的特征,完成对图片的无监督特征提取。 由上述的分析可见码本的好坏会直接影响提取的特征好坏,下面讨论数据的预处。在使用k聚类均值算法均时,我们往往采用均值池化,图 4-3 给出 55 均值 池化 的示意图,左图为 2525 的特征图,可以不重叠的分割成 25 个 55 小块,每一小块内求取均值代替该区域,就得到了如右图所示的 55 特征图,这样特征维度就大大降低了,并且仍然能有很好的描述能力。 在构建深度神经网络的时候使用卷积运算可以大大减少需要训练的参数数量,但是会导致输出的向量维度大大增加,例如前面举的例子一个 3232 的图像,假设在 88卷积模板上已经学习得到 200 个特征,而每个特征和图像在下一次卷积会得到(32-8+1) (32-8+1)=625 维的特征,因此 200 个特征都处理后,拼起来会得到大小为156800 维特征,如果图片更大、特征数目更多,最后得到的特征维度过高,不利于分类器分类。考虑到图像一般是平稳的概率分布,因此可以用局部的统计特征去替代具体的特征。均值 Pooling 用一个块状区域的均值去替代这个区域,不仅维度得到了降低,也能达到平移不变的效果。因为图像的平稳特性一个地方的统计特征很可能也能在其他区域适用。在进行特征学习的过程中可以使用均值 Pooling 处理对特征降维。将 k均值聚类算法 编码得到的图像特征图进行均值 Pooling 后就完成了无监督特征学习,所得结果则是卷积神经网络的输入。 图 4-3 均值 Pooling 示意图 我们分析了 k均值聚类算法进行无监督特征学习的原理,算法总结如下:算法4-1 k均值聚类算法 无监督特征学习 输入: 训练图片集Training_Set,待提取特征图片P 输出: P 的特征图Feature_maps Begin: Training_Set =ZCA_whiten(Training_Set); /对训练图像进行白化 Patches = generation(Training_Set); /从训练样本生成用于k均值聚类算法 聚类的88 图像块 K_kernels= k_means_clustering(Patches); /利用改造的k均值聚类算法 算法学习卷积核 P_whiten=ZCA_whiten(P); /对原始图像进行白化 For 1 to number of K_kernels Feature_maps = convolution(P_whiten, K_kernels) /将白化后的图片与每个卷积核进行卷积 End Feature_maps =average_pooling(Feature_maps); /进行均值Pooling 降维处理 End 4.2. 基于 SVM 卷积的网络优化算法为了优化k均值聚类算法中,我们可以采用基于 SVM 卷积24的网络优化算法。该算法在在 k均值聚类算法的基础上,在编码层和均值池化层之上,重新使用了新的卷积层和新的均值池化层。下图表示了它们的逻辑关系: 图 4-4 神经网络层连接示意图 我们可以看出,接上例均值池化输出大小 55 的个特征图,当前层要输出个特征图,则一共要优化得到卷积核。特征图进过第二次卷积(使用 22 卷积模板)之后得到一组个大小 4 4 的特征图,但直接拉成一维向量作为图像特征维度过高,所以和无监督特征学习一样,在最后进行均值池化操作,降到适合的维度再拉成向量作为图像特征。 得到图像特征向量后,训练 1-vs-all 的 SVM 多类分类器,通过减小分类误差,达到优化卷积神经网络的目的。基于上述分析,我们可以构造如下优化问题: (4-10) 0 通过调整和的值,使目标函数取值最小。参数则控制边缘最大化(margin maximization)和分类误差最小(error minimization)之间的折中。 神经网络在第一次前向传播的时候,首先随机初始化卷积核,利用初始化的卷积核计算后图片特征,计算 SVM 的分类误差,由于每一层的计算都是可导的,根据链式法则可以逐层求出,误差对每个网络参数的偏导,根据梯度下降算法,通过调整系统参数,使误差逐渐减小。重复上述的前向和后向传递过程,直到结果收敛。注意到,后向传递误差是不包括无监督特征学习部分的,k均值聚类算法 在提取低层次特征时性能已经很好,所以无监督学习部分的参数固定不需要进行调整。这相比传统的多层卷积神经网络,大大简化了训练过程。 4.3.车型识别在深度学习中的建模 根据上述研究,我们构建基于深度学习的车型识别模型。首先对训练图片进行 ZCA 白化处理25,然后利用 k均值聚类算法 进行无监督特征学习得到第一层的特征图,在第一层特征图上做均值 Pooling 得到第二层的特征图,在第二层特征图上再次做卷积,卷积核由基于 SVM 的有监督学习算法完成。为了便于分类器分类,最后在第三层得到的特征图上再次做均值 Pooling,得到图片最终的特征向量,输入到SVM 分类器中进行分类,得到分类结果 。 4.4. 深度学习算法设计k均值聚类算法会受到输入变量大小和训练次数的影响,一般而言,较高的训练次数和较低的变量大小会使得k均值聚类算法有较高的精度。由于本实验的实验样本为5381张图片,数目较少,因此为了减少所需要确定的参数数目保证实验效果,我们需要归一化图片大小。因而,实验步骤可以总结如下:1) 对归一化图片进行ZCA 白化处理; 2) 第一层k均值聚类算法聚类得到88的卷积核,对图像卷积获得2555的特征图; 3) 对各个特征图进行均值池化,处理后我们可以获得大小改变的特征图; 4) 使用 18048 个 22 大小的卷积核,得到 180 个 410 大小的特征图; 5) 分别对每个特征图进行22 区域内均值池化得到大小25的特征图; 6) 所有特征图拉成1800 维特征向量输入到 SVM 分类器进行分类。 接下来,我们分析算法中各个实现步骤对算法的影响。我们主要从从ZAC白化和k均值聚类卷积这两方面分析。首先,我们分析ZAC 白化对特征学习的影响。我么对特定图片进行进行 ZAC 白化处理,然后比较白化和未白化的效果: - s 从图 4-6 可以看出,第一层卷积核提取的正是低层次的图像边缘信息,这与深度学习模型理论是一致的;左图是经过白化处理后学到的卷积核,可以看到卷积核之间都差异很大,说明卷积核相关性低;而右图未经过白化处理可以看到图中圈出的卷积核有较高相似度,说明卷积核有较强的相关性。 接下来我们分析k均值聚类算法中卷积核对特征提取的影响。无监督的核心算法是利用 k均值聚类算法 我们通过训练学习的卷积核,对学习图像边缘、角点等低层次特征。图 4-7 左侧给出车头原始图片以及 k均值聚类算法 方法学习得到的所有卷积模板。每一个方形小块就是一个 八十八 的卷积模板,从图像可以看出,这些模板都是各种各样的边缘及角点图像块,用这些卷积模板对图像做卷积则可以在相应的边缘处得到较高的响应。图 4-7 右图是分别用倾斜边缘卷积模板、水平边缘卷积模板以及垂直边缘卷积模板对图片做卷积的效果,白色区域是对应边缘响应高的位置。可见,k均值聚类算法 确实能够有效地提取低层次图像特征。 图 4-7 k均值聚类算法 卷积结果可视化 4. 数值仿真和结果分析我们的仿真平台如下所示:点击再入图像,选择一幅图像十字光标截取即可识别出车型和年份或者点击一步识别自动选取兴趣区域,实现自动化的识别 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论