基于深度学习的智能交通的控制系统研究
2022-11-03胡宇博刘志东殷婉婷
胡宇博,刘志东,殷婉婷
(吉林农业科技学院 电气与信息工程学院,吉林 吉林 132101)
0 引言
现如今,城市中绝大多数路口的交通信号灯系统采用的是固定时间变化方式,这种系统不能根据交叉路口的车辆情况进行灵活地改变,各个方向道路的通行时间是一成不变的,给居民的日常出行和生活带来了极大的不便,影响我国社会经济的发展[1-3]。 这种交通灯分布不合理的现象造成了大量的能源浪费,使得交通效率低下。 如何智能化交通灯控制系统已成为解决交通路口拥堵问题的关键因素之一[4-6]。
基于机器视觉的交通流检测属于非接触检测技术,交通流图像由安装在十字路口的摄像机获取。 当摄像机检测到车辆已进入规定的拍摄范围时,会立即捕捉到该车辆,并将所捕捉到的图像数据发送到控制器进行相应的处理和分析,以获取用于智能调节的路段交通灯[7-8]。
1 系统总体方案
1.1 系统设计方案
本系统功能的实现主要基于树莓Pi 的图像处理功能和ZigBee 的数据传输与处理功能的结合。 1,2,3 和4 分别对应交通路段的4 个十字路口。 设备是:摄像机、ZigBee 从机、交通灯、数码管。 这4 个路段的功能实现过程主要是负责该路段的摄像机每5 s 钟采集一次该路段的路况,并将图像通过有线传输到树莓Pi 控制板,树莓Pi 控制板提取4 个路段的路况图像。 根据预编程程序处理交通流数据,获得每个路段的交通灯持续时间指令,再将交通灯持续时间指令通过有线传输到ZigBee 主机,ZigBee 主机进行无线传输。 该命令发送给相应路段中的ZigBee 从机,每个路段上的ZigBee 从机控制该路段交通灯的持续时间和颜色变化。 通过这种方式,可以实现智能控制交通灯时间的效果。 每次数据提取和命令传输只会影响下一个红绿灯持续时间,即在此时间段内每5 s 更新一次下一个红绿灯持续时间命令。 命令替换,使用最新命令作为当前持续时间结束时的下一个红绿灯持续时间[9-10]。
1.2 开发环境
树莓派安装Linux。 在Linux 环境下开发,具有很大的扩展性,可以调用别人已经编写好的、成熟的技术库,方便发展[11]。
在树莓派中安装OpenCV。 OpenCV 是一个在BSD许可下分发的跨平台计算机视觉库,可在众多主流的操作系统上运行。 它是由一系列的C 函数和少量的C++类组成的视觉库。 除此之外,OpenCV 还提供了Python,Ruby,Matlab 等语言的接口,十分方便快捷,并借此实现了图像处理和计算机视觉中非常多的常用算法。 OpenCV _ creatsamples 生 成 器 和 OpenCV _trainCASCADE 分类器用于训练分类器以识别汽车。TensorFlow 是谷歌于2015 年9 月为其研发的二代人工智能系统发布的开源机器学习软件库。 它既是执行的框架,又是实现机器学习算法的接口。 TensorFlow 支持多种开发语言,支持移植到异构系统上并可以进行异构分布式系统部署。 TensorFlow 同时支持线性回归、逻辑回归、随机森林等深度学习算法,用于构建深度学习网络,实现红绿灯根据变化的实时学习和优化功能的交通流量。
1.3 训练级联分类器
OpenCV_createsamples 用于准备正样本数据和训练测试数据。 OpenCV_createsamples 能生成OpenCV_haartraining和OpenCV_traincascade 程序支持的正样本数据。
OpenCV_performance 可评估分类器的质量,但只能评估OpenCV_haartraining 的分类器输出。 它读取一组带标签的图像,运行分类器并报告性能,比如检测到的对象的数量、漏检的数量、误报的数量以及其他信息。
2 软件设计
传统的背景去除算法是从当前图像中减去背景图像,剩下的就是车辆图像。 在很多情况下,背景提取并不是那么理想,而且经常会夹杂一些其他的残留阴影。 传统的背景提取算法无法避免背景中残留的运动车辆信息,因此难以区分前后背景中的数据信息。 本设计采用顺序轮廓差异捕获算法来避免背景提取的多变量元素。
2.1 边缘提取
使用边缘提取能大幅度地提升车辆图像捕捉的成功率。 鉴于摄像头一般安装在道路的一侧,所以在提取的图像中,车辆的行驶路线都是按图像的对角线行驶。因此可以采用Robert 算子进行边缘检测。 Robert 算子是一种最简单的基本算子,利用局部差分算子寻找到边缘算子。 Robert 边缘算子是一个2×2 的模板,采用的是对角方向相邻的两个像素之差。 从图像处理的实际效果来看,边缘定位较准,更容易识别成块物体的图像。
具体实现如下:
其中,G(i,j)为经Robert 处理后的图像,(i,j)为像素点。
2.2 二值化处理
首先,利用OTSU 确定阈值:
其中,u为整个图像的均值;w0为前景点占图像比例;u0为前景均值;w1为背景点占图像比例;u1为背景均值;t为前景与背景的分割阈值。
g(t)就是分割阈值为t时的类间方差表达式。OTSU 算法使得g(t)取得全局最大值,当g(t)为最大时所对应的t为最佳阈值,从而得到汽车的基本轮廓。
2.3 序列轮廓差分捕捉
使用前后两帧图像对比,进行差影检测:
其中D(i,j,k+1)为轮廓捕捉的后一帧图像。P(i,j,k)为该时刻的图像,k为时间变量。 在实现二值化后,车辆轮廓所在像素值为1,而背景图像像素值为0。当拍摄移动车辆的时候,该时刻图像的车尾处像素值为1。 随着车辆向前运动,后一帧图像的相对位置就变成了公路(背景)为0。 此方法可以避免背景轮廓对车辆轮廓识别的干扰,如栏杆,车道,斑马线等。 提高了车辆捕捉的正确率。
2.4 利用训练好的car.xml 分类器识别路口的车辆
3 交通灯控制程序
无线传输模块是检测红绿灯和树莓派的数据连接部分,主要传输控制命令、状态信息和检测数据。ZigBee 主模块采用The SerialApp 协议栈提供的ZigBee无线串口数据透传、全双工通信和流控。 在数据超时或丢包的情况下,具有数据重复功能,实现一个协调器和一个节点之间的数据传输。 在一般的 ZigBee 通信中,默认使用密钥设备来查找目的节点的地址。 由于系统硬件不同,设备不使用关键外设,所以屏蔽了通过关键模式获取目标地址的方法,采用上电自动地址匹配的方法(见图1)。
图1 ZigBee 程序流程
4 结语
本设计有别于传统红绿灯的控制方法,提出了基于人工智能中深度学习方面的机器视觉红绿灯时长智能控制系统的设计方案。 基于机器视觉的交通流量监测与红绿灯智能控制系统实现闭环控制,有效解决了时序控制方式适应性差、时间分配不合理、感应控制方式不足等问题。 可根据路段的车流量实时调整各路段的交通信号灯时间,解决人流较少的路段绿灯时间长造成的交通拥堵和资源浪费问题,提高交通出行效率,缓解道路交通压力。