作者简介:李寿涛(1975-),男,副教授,博士.研究方向:智能机械及机器人多智能体行为协调与控制,汽车系统动力学与控制.E-mail:list@jlu.edu.cn
在对绿色通道检测系统实测大量数据分析及实验研究的基础上,提出了一种在车辆动态行驶过程中运用BP神经网络进行车长测算的方法。该方法通过模糊自适应的方式调节BP神经网络的学习率以加快算法的收敛速度。本文将该方法应用于吉林省省际收费站的绿色通道检测系统中,通过对绿通车辆大量的实车数据的测试与验证,结果表明本文所提测算方法能够有效地提高在车辆动态穿行过程中车长的测算精度。
Based on the analysis of large number of measured data obtained from a free toll lane of highway detection system and experimental research, a vehicle length measurement method is proposed based on BP neural network, which can measure the length when the vehicle is traveling. This method can accelerate the convergent speed of BP neural network by fuzzy adaptively adjusting the learning rate of BP neural network. A large number of real vehicle data have been obtained after this method was applied to the detection system in the highway toll lane of Lalin River, an exit of Jilin Province to Heilongjiang Province. The results show that the proposed method of dynamic vehicle length measurement can effectively improve the measuring precision of traveling vehicles.
目前通常采用吨位法[1]和无损检测法[2]等技术对过往高速公路绿色通道的车辆进行检测, 然而这些方法往往需要对过往车辆或车厢长度进行测量, 对于车辆车长的测量, 传统方法是进行静态测量, 该方法准确度虽然很高, 但是达不到实时性要求, 同时还存在着很大的缺点, 如耗时、需要大量人力、容易造成道路拥堵等, 因此需要在货车通过绿色通道检测系统过程中能动态并精确地测算出车辆车长。
目前对运动物体实时测量的方法主要有光切法[3]和机器视觉法[4], 但由于我国高速公路上行驶的很多车辆都经过改装, 车身表面不规则、不平整, 使得运用这些方法测量的车长误差较大。
本文在绿色通道检测系统[5]的基础上, 通过对大量实测数据的分析, 提出一种基于模糊逻辑自适应调节学习率的BP神经网络对动态行驶车辆车长进行测算的方法, 最后通过实验验证该方法能够有效地提高测算精度。
由于绿色通道检测系统的车道比较窄, 并且车道两边安装有射线机防护室和线阵机防护室, 这使得大型绿色通道车辆通过检测区域时, 驾驶员会非常谨慎小心, 通过时的速度会急速降低并变化。
在对驾驶员的驾驶行为进行分析的基础上, 对现场大量的绿色通道车辆进行了测试, 得知当绿色通道车辆通过检测区域时, 车速会在一定范围变化, 其变化规律大致如图1中[5]“ U型” 曲线带所示。图中t1为驾驶室到达射线机防护室的时间点; t2为驾驶室完全通过整个射线机防护室时的时间点; t3为车厢完全驶离检测区域时的时间点。绿色通道车辆在进入检测车道直到驾驶室到达射线机防护室时, 车辆基本是匀速通过, 车速维持在3.5~5 m/s; 当车辆驾驶室到达射线机防护室时, 驾驶员调整车身减速通过, 这个过程车速会减小到0.5~1 m/s; 当驾驶室通过整个射线机防护室时, 车速逐渐加大, 在车厢完全通过整个射线机防护室时车速基本达到3.5~5 m/s; 之后车辆加速驶离检测区域。
绿色通道车辆在通过检测区域的过程中, 由于要受到外界条件和驾驶员驾驶习惯的影响, 使得车辆通过检测区域的速度是非匀速的, 故不能简单利用时间与速度的关系来计算车辆长度, 这就使得测算动态行驶车辆的车长具有很大困难。
本文作如下定义:T1和V1分别为货车驾驶室前端从光电传感器节点一位置行驶到光电传感器节点二位置的时间和平均速度; T2和V2分别为货车驾驶室前端从光电传感器节点二位置行驶到光电传感器节点三位置的时间和平均速度; TK为货车车头与车厢之间缝隙通过光电传感器节点一位置的时间; TX为货车货箱部位通过光电传感器节点一位置的时间。
设输入学习样本为p个:x(1), …, x(p), 已知与其对应的导师为t(1), …, t(p), 学习算法是根据实际的输出y(1), …, y(p)与t(1), …, t(p)的误差E(称作总体误差)来修改由其连接权值和阈值构成的权向量w, 使得y(1), …, y(p)与t(1), …, t(p)尽可能地接近; 在此, 总体误差E被看作是权向量w的函数, 即E=E(w)[6, 7]。
设输入的学习样本集为Iα ={
所有α 个样本经正向传递运算后, 网络总误差为:
如果网络误差大于设定的允许期望值, 则应用最速下降法, 反向调整各层连接权值, 使得误差达到最小。反向传播算法以误差修正学习规则对神经元权值进行调整, 即:
式中:η > 0是学习率参数, 该参数用来调节神经网络搜索最优权值的速度和振荡程度; n为迭代次数; ω 为网络任意两个神经元之间的连接权值; wij为网络第i层到第j层的连接权值; Δ ω 为神经元之间的连接权值变化增量。
等效误差按上述推导过程由输出层向输入层反向传播产生, 经过多次调整网络误差最终收敛于期望误差。
用BP神经网络算法进行动态车辆车长测算数据处理的原理是:构建一个由6个节点(T1、V1、T2、V2、TK和TX)的输入层和一个节点(静态车长L)的输出层组成的三层BP神经网络模型, 可表示为六元函数f(V1, V2, T1, T2, TK, TX), 用通过实验获得的样本数据在Matlab上进行多次训练构建六输入单输出的神经网络, 如果训练结果达到系统的误差要求, 则可以确定输出各隐含层和输出层的权值和阈值, 然后就可以利用训练好的网络参数, 根据测得的数据, 获得较为精确的车辆车长。
隐含层选用如下所示的双曲正切型函数tansig:
输出层选用如下所示的线型函数purelin:
学习率η 也称为步长, 在标准BP算法中定为常数, 然而在实际应用中, 学习率不易选择, 选得太小, 收敛速度太慢; 选得过大, 则有可能修正过大, 导致振荡甚至发散[9]。对于一个特定的问题也很难确定一个从始至终都适合的最佳学习率, 为了加速收敛过程, 一个较好的方法是自适应改变学习率[10]。通常调节学习率的准则是:通过检查权值的修正量是否真正降低了误差函数来调节学习率参数, 当误差函数降低时, 则说明所选取的学习率值小了, 可以对其增加学习率; 当误差函数减小非常快时, 学习率保持不变; 而当误差函数不减反增时, 应降低学习率[11, 12]。
由于对学习率的调节不具有精确的数学模型, 因此在此引入模糊控制[13]算法来调节学习率。设误差e的论域为X, 量化为7个等级, 即:
X={-3, -2, -1, 0, 1, 2, 3}
选取控制量lr的论域为Y, 量化为7个等级, 即:
Y={-3, -2, -1, 0, 1, 2, 3}
做出语言变量的隶属函数曲线如图2所示。描述输入变量及输出变量的语言值的模糊子集为{负大(NB), 负小(NS), 零(O), 正小(PS), 正大(PB)}。
由图2可以得到表1模糊变量e及lr的赋值表。经过反复测试调整后得到如表2所示的模糊控制规则。
解模糊化采用最大隶属度法, 即选取模糊子集中隶属度最大的元素作为控制量, 例如模糊子集为C, 所选择的隶属度最大的元素u* 应满足:
若u* 仅为一个, 则选择该值作为控制量。若u* 有多个, 则选取它们的平均值
建立的基于模糊自适应调节学习率的神经网络模型如图3所示。图3中, L为输出的车长; W1为输入层到隐含层的权值; W2为隐含层到输出层的权值; B、BL为隐含层和输出层的阈值; EΣ 为误差; e为偏差量; lr为学习率。
通过Matlab软件内部的神经网络工具箱来对网络进行训练, 把在绿色通道检测现场测得的部分数据作为学习样本数据, 其他的数据作为训练样本数据就可以训练网络, 为了使网络尽快收敛, 所有数据均使用了归一化处理。合理调整网络的学习参数, 经过多次训练达到了目标要求(均方误差在3%以内), 并得到了神经网络模型。神经网络的训练结束后, 即可得到以下各式:
BL=0.1201;
B=
w2=
w1=
这样便可以确定六元函数L=f(V1, V2, T1, T2, TK, TX):
L=purelin
T1
BP算法改进前后的目标训练图如图4所示, 其中蓝色为改进前的目标训练图, 其学习率设置为0.01; 红色为改进后的目标训练图, 采用自适应调节学习率的方法。
图中纵坐标表示每次训练的均方误差, 横坐标表示训练次数。由图中可以看出, 在相同情况下, 改进后的收敛速度明显快于改进前的收敛速度, 改进前需要91 796次训练达到所需的训练精度3%, 而改进后只需要42 751次训练即可达到同样的训练精度。
神经网络的测算数据与测试数据的对比图和误差变化如图5和图6所示。由两图对比可以看出, 车长数据大多数分布在16 m到18 m之间, 误差分布在± 1%之间。
训练精度为3%时测算结果与实际车长部分数据的比较见表3, 由表3可知, 误差在3%以内。
在不同训练精度下改进前后网络训练次数的对比见表4。由表4可以看出:在训练精度为3%到6%之间, 改进后的训练次数明显少于改进前, 收敛速度加快。
提出了一种基于模糊自适应调节学习率的BP神经网络测算动态行驶车辆车长的方法, 该方法能够在车辆通过绿色通道检测系统的动态过程中精确测算出车辆长度。经过训练好的神经网络测算得到的结果与实际车长进行对比, 误差控制在3%以内, 达到了较好的结果, 证明用神经网络方法可以提高动态车辆车长的测算精度。通过模糊逻辑自适应调节学习率改进BP神经网络后, 收敛速度有了很大提升, 能够有效缩短BP神经网络的训练时间。实验表明, 该方法具有较高的计算精度, 能够达到实际应用的要求。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|