詹玉 吴钦木
摘 要:交通灯的识别对人工智能以及无人驾驶都有着举足轻重的作用,本文研究交通识别中的红绿灯判断,用于改善驾驶员疲劳以及维护交通秩序从而提高驾驶安全系数减少交通事故的发生。通过机器视觉采集红绿灯交通信号图,运用Matlab进行图片处理截取红绿灯区域,提取每张图片的121个像素点RGB值,运用1和2分别表示绿灯和红灯,建立红绿灯样本训练库,通过Matlab自带的数据拟合工具nftool进行神经网絡训练,调整训练、验证、测试数据比例,最终得到识别效果较好的神经网络算法。运用样本均值进行测试也能够得到较好的识别。
关键词: 机器视觉;红绿灯识别;RGB值;数据拟合工具nftool;神经网络
文章编号: 2095-2163(2021)01-0032-04 中图分类号:TP391.41 文献标志码:A
【Abstract】The identification of traffic lights plays a decisive role in both artificial intelligence and unmanned driving. This paper studies the judgment of traffic lights in traffic identification, which can be used to improve driver fatigue and maintain traffic order so as to improve the driving safety coefficient and reduce the occurrence of traffic accidents.By machine vision gathering traffic signal of traffic light, using Matlab image processing to crop traffic area, in each image RGB values of 121 pixels are extracted, 1 and 2 are used to represent the traffic lights respectively, and red and green traffic light sample training library in built, through the Matlab's own data fitting tool nftool neural network training is conducted, the ratio among training, validation, test data is adjusted, so the neural network algorithm with better identification effect is achieved.Using the sample mean for testing can also be well identified.
【Key words】machine vision; traffic light identification; RGB values; nftool, a data fitting tool; the neural network
0 引 言
在道路交通信息中,作为重要交通信号标志的红绿灯出现得最为频繁,及时且准确地识别红绿灯对保障交通安全与交通秩序稳定具有重要意义。因此,本文基于神经网络对红绿灯识别开展研究。以红绿灯颜色为研究对象,通过机器视觉系统采集红绿灯图像数据,建立红绿灯的图像数据库作为训练样本,利用神经网络学习训练模型,实现对红灯与绿灯的识别。
在颜色识别中,传统方法是对图片进行处理,转换颜色空间运用算法进行识别,涉及的方法包括模糊隶属度函数[1]、归一化方法[2]、高斯分布建模方法[3]、残差法[4]、k均值聚类法[5]。这些方法都是通过图像处理来进行颜色识别,在车联网中识别速度有待提高。对比传统方法,神经网络学习优势就在于能够通过大量样本进行训练,训练出的算法识别精度也较高,例如支持向量机[6]、深度学习[7]等。因此,本文将机器学习与神经网络相结合来训练红绿灯识别网络,最终得到了识别效果较好的算法。
1 机器视觉系统
机器视觉运用光学装置和非接触的传感器装置通过视觉镜头对目标物体的图像进行采集,将模拟信号自动转换为计算机可以识别的数字信号,而后进行特征提取以获得所需要的信息。一个典型的机器视觉应用系统包括光源系统、视觉传感器、图像采集系统、图像处理系统、以及控制系统等模块,如图1所示。
本文研究的机器视觉主要完成图像采集,选择白天在适合的天气条件下对各个路口的红绿灯进行图像采集,采用CCD、CMOS传感器的摄像头根据拍摄当天的光照强度和红绿灯的位置调好摄像头的焦距、光圈等,尽可能地拍摄出符合要求的图片。
2 建立训练样本集
RGB空间是一种色光表色模式,现已广泛用于社会生活中。计算机定义颜色时,R、G、 B三种成分的取值范围是0~255,0表示没有刺激量,255表示刺激量达到最大值。RGB模式是一种加色法模式,通过R、G、B的辐射量,可描述出任一颜色。
将采集到的图片运用Matlab进行处理,提取出红灯和绿灯区域,将提取的图片分为RGB三层提取像素点R、G、B的值。本次研究中,采集到的绿灯图片见图2,提取的绿灯区域见图3,采集的红灯图片见图4,提取的红灯区域见图5。
进而得到,Matlab提取红绿灯图片区域代码如下:
clearall
clc
a=imread('16.bmp');
a_gray=rgb2gray(a);
[m,n]=size(a_gray(:,:));
a_new=a(m/2-5:m/2+5,n/2-5:n/2+5,:);
将20张红绿灯图片作为样本数据,其中红灯和绿灯分别为10张。每张图片提取121个像素点RGB值,总共2420个样本进行训练。由此得到RGB部分训练样本见表1。表1中,1表示绿灯图片,2表示红灯图片。
3 基于nftool的神经网络红绿灯判断系统设计
目前,机器學习研究的是如何通过计算手段,利用经验来改善系统自身的性能,神经网络即是机器学习的一种。其主要研究内容可概括为:是关于在计算机上从数据中产生“模型”的算法,即学习算法。也就是将经验数据提供给学习算法,如此就能基于数据产生模型,当有新的情况时,模型就能做出相应的判断[8]。
3.1 Matlab神经网络工具箱
神经网络数据拟合工具nftool用于数据拟合问题,也就是采用前向神经网络实现输入数据到输出数据的映射。通过R、G、B三个值的范围进行颜色评估,R、G、B属于一个数据群,是神经网络的输入,红色和绿色所对应的数字则是另一个数据集,是神经网络的输出。
3.2 神经网络训练
将样本分为3部分,即:训练、验证和测试。训练部分的数据提供给神经网络,网络根据误差进行调整。验证数据用于测量网络泛化,并在泛化停止改进时结束训练。在训练期间和训练后,训练数据提供一个独立的网络性能测量。这里,将神经网络训练样本中的85%用作训练,5%用作验证,10%用作测试。
3.2.1 学习算法
研究中选择Levenberg-Marquardt。Levenberg-Marquardt学习算法本质上是一种拟牛顿算法,该算法的步骤可简述如下:
Step 1 随机给定初始权值w0,设定目标误差ε,k=1。
Step 2 对于如下n元方程组,计算其对权值向量w的Jacobi矩阵J。此时需要用到:
Step 3 按公式(2)进行搜索:
Step 4 若E(w(k)≤ε),则算法终止,得到满足精度要求的权值向量;否则,转Step 5。
3.2.2 神经网络结构设置
神经网络是由自带适应性的简单单元组成的广泛并行互连的网络,在整体上能够模拟生物神经系统对真实世界物体所做出的交互反应。将神经网络结构分为3层,即:输入层、隐含层、输出层。其中,隐含层神经元个数设置为10,其结构如图6所示。
3.2.3 训练结果
数据拟合图见图7,误差直方图见图8,训练数据、验证数据、测试数据以及所有样本数据回归图则详见图9。由图7可知,在第37步时,最好的验证值为1.6092e-13。
通过训练结果分析后可知,在误差直方图中误差很小的数据都集中在一起,训练效果理想,数据回归图中所有R=1,数据相关性好,训练后的网络不仅能识别原有样本,将训练样本的每张图片取RGB均值作为输入,测试所训练的神经网络,训练的算法也能够完全识别,部分识别结果见表2。
4 结束语
本文通过机器视觉采集红绿灯图片,将红绿灯图片通过Matlab算法进行预处理,将图片分成R、G、B三层提取RGB值制作样本训练集,运用神经网络数据拟合工具nftool进行训练,得到的红绿灯识别算法能够精确地识别样本,将每张样本红绿灯图片的RGB均值作为神经网络输入也能够精准地识别红绿灯图片,本文为车联网的红绿灯识别研究提供了一种思路,利用神经网络能够训练出高效、快速的算法,相较于传统图像处理识别更具优势。
参考文献
[1]HU Mingdi, ZHANG M, LOU Y. Retrieval of vehicle images based on color space fuzzy quantification in criminal investigation[J]. International Journal of Performability Engineering , 2017,13(6):823-831.
[2]OMACHI M, OMACHI S. Traffic light detection with color and edge information[C]//2009 2nd IEEE International Conference on Computer Science and Information Technology(ICCSIT 2009). Beijing, China:IEEE, 2009:945-948.
[3]SHEN Yehu, OZGUNER U, REDMILL K, et al. A robust video based traffic light detection algorithm for intelligent vehicles[C]//2009 IEEE Intelligent Vehicles Symposium. Xi'an, China: IEEE,2019:521-526.
[4]薛旭琴. 基于机器学习的车辆颜色识别方案的研究[D]. 北京:北京邮电大学,2018.
[5]佀君淑,朱文兴,沙永贺.复杂背景下的交通信号灯综合识别方法[J].山东大学学报(工学版),2014,44(2):64-68,75.
[6]HU Chuanping,BAI Xiang, QI Li,et al.Vehicle color recognition with spatial pyramid deep learning[J]. IEEE Transactions on Intelligent Transportation Systems, 2015,16(5):2925-2934.
[7]KIM H K, PARK J H, JUNG H Y,et al. An efficient color space for deep-learning based traffic light recognition[J]. Journal of Advanced Transportation, 2018, 2018:2365414.
[8]周志华. 机器学习[M]. 北京:清华大学出版社,2016.
[9]陈攀. 自然场景下车辆颜色识别研究[D]. 武汉:华中科技大学,2016.
[10]祝匡熙. 智能车辆的交通信号灯识别[D]. 上海:上海交通大学,2012.
[11]WANG Xiaoqiang, CHENG Xianghui, WU Xue, et al. Design of traffic light identification scheme based on TensorFlow and HSV color space[J]. Journal of Physics Conference Series,2018, 1074(1):012081.