基于车型识别的BP算法Matlab实现Word格式.docx
《基于车型识别的BP算法Matlab实现Word格式.docx》由会员分享,可在线阅读,更多相关《基于车型识别的BP算法Matlab实现Word格式.docx(4页珍藏版)》请在冰点文库上搜索。
![基于车型识别的BP算法Matlab实现Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/205a269c-0b7b-4e04-bab8-5b4fbf74b968/205a269c-0b7b-4e04-bab8-5b4fbf74b9681.gif)
Abstract:
VehicletypeRecognitionhasawidefutureapplicationprospect.BPartificialneuralnetworkcanimprovetherecognitionrateofvehicletypeintheVehicleTypeAutomaticRecognitionSystem.Anyvehicletypecanbeabstractedintoa"
工"
-shapedmode.ThreerelativeparametersareusedastheinputparametersofBPANN.Athreelayered3-8-3BPANNisadoptedandistrainedby14pairinputparameters.TheBPANNistestedby4pairinputparametersandthensomeexpectedvaluesareobtainedinthisprocessing.
Keywords:
VehicleTypeRecognition;
BPNeuralNetwork;
0引言
车型识别在现代交通监控和管理中有着非常广阔的应用前景,可应用于高速公路、过桥过路等各类车辆收费站以及大型停车场的自动收费系统。
另外,BP神经网络已被人们研究了几十年,技术成熟,是应用最为广泛的一种人工神经网络,在许多科学领域中均具有重要的实用意义,其学习能力和容错能力对模式识别具有独到之处[1]。
Matlab作为一个强大的工具软件,具备了数字图像图形和人工神经网络等方面的处理功能,受到了人们的欢迎与追捧。
1汽车车型分析
特征提取是目标识别中一个非常重要的环节,一个识别系统的识别能力与特征矢量的选取有直接关系。
选取的特征要求具有高度的代表性、典型性及稳定性。
因此,特征提取是模式识别的关键步骤之一。
为了便于分类,必须收集各种车辆的主要技术参数。
经过实地观察测量和查找有关车辆的类型数据及资料,通常各类车辆,其车身侧视图可提供车型的一些参数,如:
顶蓬长度、车辆长度、车辆高度等信息。
由于图像在拍摄时,镜头与车辆间的距离、角度等的微小变化都会造成同一车辆在两次拍摄图像时,上述各参数的绝对大小有可能不相同,这就决定着不能用绝对长度或绝对高度等参数作为车型的识别特征。
按汽车的应用功能进行大致的分类,可分为客车、轿车和货车三类。
对这三类车型的统计分析,通常选取的特征是:
顶蓬长度与车辆长度之比,称之为顶长比;
以顶蓬的中垂线为界,前后两部分之比,称之为前后比;
顶蓬长度与车辆高度之比,称之为顶高比[1]。
按此规则,任何车型大致都可以抽象成一个“工”字型,并使用车辆的顶蓬长度为d,前底长为C1、后底长为C2、高度为h(取顶长中点作中垂线)这四个绝对参数构成三个相对参数。
通过对轿车、货车、客车外形的分析,处理了相关的数据,得出车型识别技术的特征值。
取各车型的侧视图来进行分析,取特征值d/(C1+C2),d/h,C1/C2作为BP网络的输入,其中d代表顶长,C1、C2分别代表各车自顶长中垂线所分的前后长度,h代表轿车的高度,把各种车抽象成“工”字形,如图1~图3。
图1抽象成“工”字形轿车模型
图2抽象成“工”字形货车模型
图3抽象成“工”字形的客车模型
2主要程序思路
BP网络中各层结点数的选择对网络的性能影响很大。
对输入结点,输入层的结点数通常是由问题的本身决定的。
取d/(C1+C2),d/h,C1/C2作为输入的特征值,将选取的特征作为网络的输入向量X={X1,X2,X3},其中X1为顶长比,X2为顶高比,X3为前后比;
网络的期望输出为Y1=[100],Y2=[010],Y3=[001],其中Y1,Y2,Y3分别代表卡车,客车和轿车,因此输入层的节点数为3,输出层的节点数也为3[2]。
车型的识别结果有3种,所以输出层结点数为3;
隐层的结点数是BP网络构建中最具挑战性的问题,隐单元直接影响着网络的容量、学习速度、和输出性能等。
首先要确定隐层数,一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络更加复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向,隐层数应该有最优值。
Hornik等早已证明:
若输入层和输出层采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层的MLP网络能够以任意精度逼近任何有理函数。
显然,这是一个存在性结论。
在设计BP网络时可参考这一点,应优先考虑3层BP网络,即只有1个隐层。
一般情况下,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。
对于没有隐层的神经网络模型,实际上就是一个线性或非线性(取决于输出层采用线性或非线性转换函数型式)回归模型。
在此,仅选取了一个隐层进行BP神经网络的构建。
对于隐层节点数目的选择也是一个十分复杂的问题,根据前人的经验,可以参照以下公式设计:
(其中n为隐含层神经元数,ni为输入神经元数,n0为输出神经元数,a是1~10之间的常数)。
隐含单元数与问题的要求输入输出单元的多少都有直接的关系。
隐层节点数太少,网络可能训练不出来,因为隐层节点数少时,局部极小就多,或者不“鲁棒”,不能识别以前没有看到过的样本,容错性差。
增加隐层节点数可能改善网络与训练组匹配的精确度,但是隐层节点数太多又使学习时间过长,误差也不一定最佳。
隐含层网络的选择原则是在能够解决问题的前提下,再加上一个到两个神经元以加快误差的下降速度即可[3]。
为了找到合适的隐层节点数目,最好的办法是在网络的学习过程中,根据自己的结构,最后得到一个大小合适的神经网络模型。
根据实际情况,采用三层的BP网络[4],输入结点数为3,隐层结点数为8,输出节点数为3,即3-8-3的网络结构;
输入层至隐层以及隐层至输出层,均采用Sigmoid函数。
3主要核心代码
P为用于训练的车型数据,T为期望输出目标值。
net为建立的3-8-3BP神经网络,系统每50步显示一次训练误差的变化曲线,学习率设置为0.6,最大训练循环次数设置为5000,设置目标误差为0.001。
Q为4对未知车辆的相关输入参数,B为生成得到的值,B′为期望输出值。
P=[0.86450.83290.94980.87350.77970.88050.74530.84560.14730.15260.34210.31640.23110.15340.30050.39620.39620.36870.44440.29210.33190.37450.27470.3331;
2.30531.99632.40152.43421.51031.59031.37711.73660.43720.45721.00060.92500.94590.52800.83571.02770.75000.81381.00120.98451.07541.38270.95661.1811;
0.92880.96250.94660.89560.93150.94660.95430.97210.39260.45880.51660.18750.13060.51720.18740.18751.52382.88232.18182.30001.48781.36001.48781.5531];
%用于训练的车型数据P
T=[111111110000000000000000;
000000001111111100000000;
000000000000000011111111];
%期望目标值T
net=newff(minmax(P),[8,3],{'
tansig'
'
},'
traingdx'
);
%建立3-8-3BP神经网络
net.trainParam.show=50;
%系统每50步显示一次训练误差的变化曲线
net.trainParam.lr=0.6;
%设置学习率
net.trainParam.mc=0.9;
%设置动量系数
net.trainParam.epochs=5000;
%设置最大训练循环次数
net.trainParam.goal=1e-3;
%设置目标误差
[net,tr]=train(net,P,T);
%训练BP网络
A=sim(net,P);
Q=[0.88190.91120.93400.9740;
2.35882.43932.8122.5451;
0.91560.95470.99120.9702];
%新车型的相关参数
B=sim(net,Q)
%生成得到值B
B=
0.98960.99080.99540.9923
0.0151-0.0775-0.3423-0.1395
0.0215-0.0693-0.3540-0.1185
%B′=[1111;
0000;
0000]
4结束语
任何车型大致都可以抽象成一个“工”字型,取顶长比、前后比和顶高比这三项相对参数作为BP神经网络[5]的输入参数。
另外,还采用了三层3-8-3的BP神经网络,并用14对输入参数离线训练之,再用4对新数据进行检验,均得到了期望的结果。
经证明,此Matlab程序能够很好地完成相关任务,并取得了良好的效果。
参考文献
[1]周红晓.基于BP神经网络的汽车车型识别方法[J].微电子学与计算机.2003,(4):
39-41.
[2]霍炜,刘大维,王江涛.复杂背景下的车型自动分类研究[J].青岛理工大学学报.2008,29
(1):
107-110.
[3]胡方明,简琴,张秀君.基于BP神经网络的车型分类器[J].西安电子科技大学学报(自然科学版).2005,32(3):
440-442.
[4]杜华英.基于PSO算法的BP神经网络研究[J].现代计算机(专业版).2009,(02).
[5]杜华英,赵跃龙.人工神经网络典型模型的比较研究.计算机技术与发展.2006,(05).
[6]李在铭等.数字图像处理压缩与识别技术[M].西安电子科技大学出版社.2000.
[7]蒋宗礼.人工神经网络导论[M].高等教育出版社.2001.
[8]陶清平,陶白云.基于模糊神经网络的汽车类型自动识别分类系统[J].计算机工程与应用.1998,11.
[9]王年,任彬.基于神经网络的汽车车型图像自动识别[J].中国图像图形学报.1998,8.
[10]傅明等.一种基于分形与神经网络的汽车车型图像识别法.湖南交通科技.2001,3.
[11]张立明.人工神经网络模型及应用[M].复旦大学出版社.1993.
[12]苏亮,宋绪丁.基本Matlab的概率神经网络的实现及应用[J].计算机与现代化.2011,(11).
[13]全星慧,范武君,张华.基于Matlab的数字图像处理课件设计[J].计算机与现代化.2008,(7).
[14]戴永伟,雷志勇.BP网络学习算法研究及其图像模式识别应用[J].计算机与现代化.2006,(11).
[15]张海波,董槐林等.基于BP神经网络的较低识别研究[J].计算机与现代化.2008,(5).