BP神经网络的内场驾考电子教练系统设计

2017-06-27 08:08万子平马丽莎李星宇刘小旭龙哲
单片机与嵌入式系统应用 2017年6期
关键词:嵌入式教练神经网络

万子平, 马丽莎, 李星宇, 刘小旭, 龙哲

(1.长沙机电产品研究开发中心,长沙 410100;2.国防科学技术大学;3.上海工程技术大学)

BP神经网络的内场驾考电子教练系统设计

万子平1,2, 马丽莎3, 李星宇2, 刘小旭1, 龙哲1

(1.长沙机电产品研究开发中心,长沙 410100;2.国防科学技术大学;3.上海工程技术大学)

针对驾考人员在校考方面训练时间、场地大小的不足以及自考方面缺乏合理指导的问题,设计了基于BP神经网络的内场驾考电子教练系统,该系统以S3C2440微处理器为核心硬件平台,介绍了采集(视觉模块和速度模块)、处理(Canny算子、单目摄像头测距算法和Harris算子)、分析判定(BP神经网络算法)、结果输出(语音模块)的流程化方法。最后,结合各模块算法和C-Free5软件对核心控制算法进行了仿真,得到了满足驾驶考试中触边、启停和夹角分析等相关设定的实验结果。

内场驾考电子教练系统;S3C2440微处理器;BP神经网络算法;ARM;嵌入式技术

引 言

中国的车辆基数庞大,交管部对驾驶人员驾驶资格管控严格,而驾照的获取需通过车管所主办的驾驶资格考试。目前驾校练车有场地、训练时间点、训练时间量等诸多限制,因此各种辅助训练设备逐步诞生。驾驶模拟器目前成为驾考训练设备的主流,该设备可以较好起到初步的指导作用,但存在诸多的缺陷,如非真实驾车环境、体积大、造价高、维护性差和自用性差等。随着直考政策提出,内场驾考电子教练系统的必要性和优越性体现出来。系统基于嵌入式技术和神经网络算法,从功能搭建、硬件选型、软件设计和系统开发进行研发,具有可移植性好的突出优点。

1 系统布局及应用过程简析

系统工作环境为真实驾车环境,应用于自学训练相对安全的科目二考试项目中。考试项目包括侧方位停车、坡道定点停车与起步、直角转弯、S弯行驶和倒车入库5个判定标准皆是边界触碰和停车过速的项目。在整车布局中,4个摄像头分别安装于机动车的4个车角点,用于捕捉边界图像;霍尔传感器的磁钢安装于驱动轮毂处,用于发出霍尔信号;扬声器则安装于驾驶室内,用于播放触边警告和纠错方案。

系统在速度控制方面会遇到速度过快超速和速度过慢停车两种状态。在超速和慢速过程中可量化出两条语音指令,比如速度超过15码,请减慢速度行驶。系统在触及边界方面会遇到各种触边情况,但具体归类起来分为:①前进过程中的前轮单轮触边、前轮双轮触边和同侧双轮触边;②倒车过程中的后轮单轮触边、后轮双轮触边和同侧双轮触边。在直行过程中,前轮双轮触边和后轮双轮触边可通过预先停车指令保证训练合格,而在转弯过程中前轮单轮触边、同侧双轮触边和后轮单轮触边则可以归纳出一个共性,即一侧车轮即将触边,方向适量反向转动。这可以量化出8条语音指令,比如右前轮即将触边,方向盘适量左转;系统工作在细节方面会遇到操作不当的情况,在启动系统时,可量化出各种语音指令,比如发动机启动前系好安全带。系统工作在判定方面会遇到合格与不合格两种情况,合格的情况出现于顺利完成项目和项目训练后机动车处于合理位置时,不需要发出指令;当发现车角触边和车边夹角与边界距离不可调两种情况时,系统可发出不合格指令,比如训练不合格,请重新开始。系统布局如图1所示。

图1 系统布局及应用过程示意图

2 系统硬件架构及硬件模块设计

本系统以机动车为载体,由中央处理器模块(S3C2440微处理器)、视觉传感器模块(OV9650型号CMOS摄像头)[1]、速度传感器模块(A3144开关型霍尔传感器、STC12C52021AD速度芯片)、语音播报模块(ISD4004语音芯片、扬声器)和电源(20C2200 mAh的航模锂电池、LM117稳压器)组成。视觉传感器模块采集到的边界信号和速度传感器模块采集到的速度信号通过串口通信传输给中央处理器模块进行快速处理,中央处理器模块利用SDRAM进行临时数据缓存,并实时更新状态。中央处理器模块将处理好的数据通过串口通信传输给语音播报系统,然后通过扬声器进行语音播报。内场驾考电子教练硬件结构如图2所示。

图2 内场驾考电子教练硬件结构框图

图3 视觉传感器模块接口

中央处理器模块为三星公司开发的S3C2440微处理器,具备体积小、成本低、功耗低、资源多等特点[2]。视觉传感器模块为OmniVision公司开发的OV9650型号CMOS摄像头,具有低功耗、低成本、高整合度等特点[3][OV9650中的各引脚(如像素时钟PCLK、帧同步VSYNC等)分别与S3C2440中的各相应引脚直接相连]。速度传感器模块为基于STC12C52021AD速度芯片的开关型霍尔传感器A3144,具有对磁场敏感、频率响应宽,工作温度范围广等特点[A3144的I/O接口引脚直接与STC12C52021AD的引脚(外部中断输入INT X1)连接,STC12C52021AD与S3C2440中的信号传输需通过光耦合器实现[4],光耦合器的ARM-XD和ARM-RXD两个引脚与S3C2440相连]。语音电路模块可采用ISD4004语音芯片,其多电平直接模拟量存储技术可以有效避免量化噪声和金属声。S3C2440的SOUT引脚提供SPI接口的时钟脉冲到ISD4004的SCLK引脚。ISD4004音频输入信号从AIN+、AIN-引入,音频输出信号由ADUOUT引出,经过功放电路LM386输出到扬声器[5]。电源模块以20C2200 mAh的航模锂电池作为供电主电源,提供+12 V电压。可设计稳压电路提供各个模块中所需的+5 V电源、+3.3 V 电源,+2.5 V电源以及+1.8V电源[电源模块可通过稳压电路直接与各模块的I/O电源输入端相连]。传感器模块接口图如图3、图4所示。

图4 速度传感器模块接口

3 系统软件架构及算法设计

内场驾考电子教练系统软件由数据采集、数据处理以及数据发布3个环节组成。数据处理是基于PC机.net 2005的编程,其余两个环节是基于嵌入式操作系统WinCE的编程,用EVC作为编程工具,内场驾考电子教练软件结构如图5所示。

图5 内场驾考电子教练软件结构框图

数据采集模块以ARM(S3C2440)为主控制器。由于ARM与采集视觉以及速度信息的传感器直接通过串口传输数据,因此可用OpenPort()函数打开串口,用CreateEvent()函数创建串口接收线程[6],将接收的视觉和速度信息存储在预先设定的文件中。然后,调用OnSend()函数以读写方式进行数据的传输[7],数据发布模块的程序与采集类似。中央控制模块主要用BP算法将各个传感器模块采集的实时数据作为输入,并对输出指令进行合理的预测,最后将数据存储到数据库(SQL SERVER 2005)[8]中。

3.1 控制算法

内场驾考电子教练系统控制算法基于BP神经网络的非线性分类器预测算法,根据BP算法理论,样本库越大、样本数据越精确,则预测结果越准确。采用的方法是,建立样本库,把每次采集到的信息和控制结果都放进样本库,对科目二各项目练习过程进行控制。控制算法设计分为三个步骤:

① 归一化处理。为避免数据过大造成网络麻痹,使用神经网络预测前需对原始数据进行归一化处理。在归一化处理的过程中,必须保持原数据的特性[9]。归一化算法如下:

(1)

其中,Max和Min分别表示这段时间该原始数据的最大值和最小值。

② 神经网络的训练。神经网络的结构设计主要包括网络层数、输入层节点数以及隐层节点数的确定[10]。本系统选择单隐层的三层神经网络,输入为边界距离X1、车边夹角为X2、当前速度为X3,触边车脚为X4和偏置单元(调节点),用试凑法确定驾考电子教练神经网络隐层神经元数目。在反复训练中,当网络隐层节点数为3加偏置单元时,收敛速度较快,可以在较短时间内达到目标。BP网络的输出层为5个神经元,分别为启动停止Y1、前后行进Y2、左右转向Y3、速度快慢Y4和合格失败Y5。

③ 确定激励函数。激励函数的核心是决定神经元运动功能的神经元[11]。在本方法中,选择常用的Sigmoid函数:

(2)

神经网络预测系统的性能评价指标(误差平方和SEE)为:

(3)

其中,SEE取0.01,学习系数为0.1,允许最大学习次数为3 000,实际值为(X1,X2,...,Xn),预测值为(Y1,Y2,...,Yn)。驾考电子教练的神经网络结构图如图6所示。

图6 驾考电子教练神经网络结构图

3.2 边缘检测、测定距离算法和边车夹角检测算法

内场驾考电子教练系统边缘距离算法基于固定摄像头单目测距算法。算法步骤如下:

首先,将摄像头镜头固定到可行的高度尺寸H,并通过摄像头对地面进行垂直拍摄。通过2α视角拍摄的整个画面计算出半个视角中长度尺寸M。

(4)

然后,将M分成N个等长的像素集合,长度越短越好,每个长度等于L。

(5)

最后,通过边界目标直线所处的第N1个像素集合位置计算出机动车的边界距离S。

(6)

内场驾考电子教练系统边车夹角检测算法基于Harris角度检测算法[13]。算法步骤如下:首先,在CMOS摄像头的加装存储器中存入标尺线程序,然后将标尺线程序安放于摄像头采集四方图像最外界,利用标尺线与车身平行的原理,进行标尺线与目标边线直观夹角的提取与计算。角度运算公式如下:

(7)

其中,w(x,y)表示移动窗口,I(x,y)表示像素灰度值强度,范围为0~255。根据泰勒级数计算一阶到N阶的偏导数,得到一个Harris矩阵:

(8)

根据Harris矩阵计算特征值λ1、λ2,然后计算Harris角度响应值:

(9)

其中,k为系数值,取值范围为0.04~0.06。

4 系统软件流程及仿真结果分析

4.1 系统软件流程

系统主要应用了嵌入式WinCE开发环境。在WinCE模拟器上和实际目标平台上编译和运行程序,同时可以通过ActiveSync在设备上调试程序[14]。系统运行过程为:启动程序,中央处理器模块(S3C2440)初始化;中央处理器模块(S3C2440)对接收视觉传感器所采集图像信号和速度传感器所采集速度信号进行分析,并判断车辆位置是否合格,若合格,则直接结束,若不合格,则形成相关指令通过串口编码后发送给语音播报模块;语音播报模块(ISD4004)通过对处理器发出的指令进行相应的语音匹配,形成相关指令发送到扬声器,对驾车人员进行提醒。

4.2 仿真实验结果分析

因为硬件设备限制且算法应用相对成熟,所以本文仅对控制算法部分进行仿真实验,实验环境的操作系统为Win7旗舰版,运行内存为2.0GB,硬盘大小为320GB,软件版本为C-Free5[15]。为了验证驾考电子教练输出结果的正确性,本文进行了1000次实验,下面列出部分实验结果,如表1所列。

表1 仿真实验部分结果

基于BP神经网络的预测控制算法的驾考电子教练三种情况下的输出结果如图7所示[16]。

图7 程序运行结果

从图7中可以看出,当学习次数为878次时,误差值为0.0099,小于允许的最大误差值0.01,可以认为驾考电子教练系统完成了特定训练情况下的正确输出。此外,在允许的最大学习次数为1000次和反复实验次数为1000次时,输出结果失败率为9.2%,虽然并不能保证系统输出的完全正确,但是能够缩短程序的运行时间,这对大样本、多模式输入有重要意义。当允许最大学习次数增大为3000次和反复实验次数为1000次时,输出结果失败率为0.0%,系统输出完全正确。

结 语

[1] 张莹.基于嵌入式技术的导盲机器人设计[D].杭州:浙江工业大学,2011.

[2] 付衍辉,陈新.基于ARM9的嵌入式网络语音终端系统设计[J].单片机与嵌入式系统应用,2014(10):49-52.

[3] 胡哲光.基于S3C2440与OV9650的嵌入式监控设计[J].轻工机械,2012,30(2):50-53.

[4] 李文,张建泽.基于S3C2440的嵌入式Linux系统移植[J].化工自动化及仪表,2010,37(9):88-92.

[5] 宋晓梅,秦启云,张瑜,等.ISD4004系列语音芯片批量拷贝的设计[J].电声技术,2011,35(10):51-54.

[6] 罗旋,程广河,孙祥,等.基于ARM嵌入式系统的一体化PLC研究与开发[J].电子制作,2014(14):47-48.

[7] 陈宇.基于S3C2440和Windows CE6.0图像信息采集手持系统设计[D].桂林:广西师范大学,2012.

[8] 黄兴荣,李昌领.基于SQL Server 2005的数据挖掘的研究[J].计算机与现代化,2010(5):195-198.

[9] 柳小桐.BP神经网络输入层数据归一化研究[J].机械工程与自动化,2010(3):122- 123.

[10] 邓万宇,郑庆华,陈琳,等.神经网络极速学习方法研究[J].计算机学报,2010,33(2):279 -287.

[11] 许楠,刘丽杰,徐耀群,等.高斯激励混沌神经元系统及其应用[J].哈尔滨商业大学学报:自然科学版,2014(5):599-603.

[12] 唐路路,张启灿,胡松,等.一种自适应阈值的Canny边缘检测算法[J].光电工程,2011,38(5):127-132.

[13] 赵呈,吴锡生.基于Harris算法的图像角度计算方法[J].计算机工程,2013,39(12):167-170.

[14] 叶子,许家昌.嵌入式WinCE多线程编程研究与实现[J].数字技术与应用,2010(1):45-46.

[15] 邴守东,李国林.不完全微分PID控制算法研究与仿真实验[J].电子工业专用设备,2013,42(1):46-50.

[16] 谢宇希,黄顺,陈列尊,等.基于项目化教学的单片机应用技术课程的“驾考模式”考核评价探索[J].价值工程,2016,35(7):224-225.

万子平(助理工程师),研究方向为信息获取、处理与电路实现技术和智能机械与数字化设计。

[8] 王予彬,王人卫.运动创伤学[M].北京:北京人民军医出版社,2006:172-174.

[9] 孙小康.颈椎病的预防与健康教育[J].基层医学论坛,2012,16(2):268.

[10] 王宇澄,房纬,张玮.颈椎生理曲度在青少年颈椎病复发阶段与Northwick Park颈痛量表的相关性研究[J].天津中医药,2013,30(4):212-213.

[11] 全晓彬,木荣华,曹大成,等.正骨推拿治疗青少年颈椎病及颈曲与症状相关性分析[J].山东中医药大学学报,2012,36(1):38-39.

[12] 卢潭城,刘鹏,高翔,等.基于AD8232芯片的便携式信电监护仪设计[J].实验技术与管理,2015,32(3):114.

[13] 崔阳,张维华,白云峰.一种基于Arduino的智能家居控制系统[J].电子技术应用,2014,40(4):123-124.

[14] 付久强.基于Arduino平台的智能硬件设计研究[J].包装工程,2015,36(10):77.

[15] 李戈琦,张燕,向伦伦.基于Arduino的土壤湿度远程检测系统设计[J].湖北农业科学,2015,54(16):4060-4062.

邓开连(硕士),主要研究方向为嵌入式系统设计与应用、现代电子技术与系统、实验室管理与实验教学研究。

(责任编辑:杨迪娜 收稿日期:2017-02-09)

Driving Test Electronic Training System Based on BP Neural Network

Wan Ziping1,2,Ma Lisha3,Li Xingyu2,Liu Xiaoxu1,Long Zhe1

(1.Research and Development Center of Mechanical and Electrical Products in Changsha,Changsha 410100,China;2.National University of Defense Technology;3.Shanghai University of Engineering Science)

Aiming at the problems such as the lack of training time and space in school examination and the limitation of reasonable guidance in college examination for the self-taught,the driving test electronic training system based on BP neural network is designed,which adopts the S3C2440 microprocessor as the core hardware platform.The procedural approaches are introduced such as the collection(visual module and speed module),the processing(Canny operator,monocular camera ranging algorithm and Harris operator),the analysis and judgement (BP neural network algorithm) and the result output(voice module).Finally,the algorithm for each module and C-Free5 software are combined to simulate core control algorithm,the results of rim,the starting and stopping as well as the angle analysis in driving test are got.

driving test electronic coach system;S3C2440 microprocessor;BP neural network algorithm;ARM;embedded technology

TN98

A

�士然

2017-02-20)

猜你喜欢
嵌入式教练神经网络
Coach,Where Are You?教练,你在哪儿?
神经网络抑制无线通信干扰探究
犀利的机器人教练
贪玩教练
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
加油
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定