摘 要:交通阻塞通常是由于城市路口实际通行能力不足造成的,针对这一现状,设计了基于计算机视觉和深度学习的流量监控智能交通灯系统。近年来,计算机视觉以及神经网络技术[1]越来越成熟,对车辆以及行人的识别与检测[2]越来越准确。本文模拟实际的道路交通路口,使用树莓派[3]为主要控制器搭建模拟路口场景,将摄像头采集的数据通过图像处理以及神经网络,确定行车道路以及行人道路上的车辆数目和行人数目。通过数学建模确定交通灯的时延,动态设定交通灯亮灭的时长,彻底改变传统的交通灯控制模式,从而有效地缓解交通阻塞。结果表明,本系统根据车辆和行人数目动态优化交通灯时延,达到了实现交通灯智能化的目的。
关键词:图像处理;神经网络;树莓派;目标识别
中图分类号:TP391 文献标识码:A
Design and Implementation of Intelligent Traffic Light System for
Traffic Monitoring based on Computer Vision
QIN Xiaohui
(School of Computer Engineer, Taiyuan institute of technology, Taiyuan 030008, China)
qinxh@tit.edu.cn
Abstract: Traffic jams are usually caused by insufficient actual traffic capacity at urban intersections. Aiming at this problem, this paper proposes to design an intelligent traffic light system for traffic monitoring based on computer vision and deep learning. In recent years, with the increasing maturity of computer vision and neural network technology[1], recognition and detection[2] of vehicles and pedestrians have become more and more accurate. Actual road traffic intersections are simulated in this paper, and Raspberry Pi[3] is used as the main controller to build the simulated intersection scene. Data collected by camera determines the number of vehicles and pedestrians on driving and pedestrian roads through image processing and neural network. Delay of the traffic light is determined through mathematical modeling and duration of traffic lights on and off is dynamically set. Thus, traditional traffic light control mode is completely changed, so to effectively alleviate traffic jams. Results show that the system dynamically optimizes traffic lights delay according to the number of vehicles and pedestrians, and achieves the goal of intellectualizing traffic lights.
Keywords: image processing; neural network; Raspberry Pi; target recognition
1 引言(Introduction)
隨着经济的快速发展,城市机动车数量迅速增加,交通拥堵问题日益严重,导致交通事故和环境污染等负面影响日益突出[4]。城市交通问题直接制约着城市的建设和经济的发展,与人们的日常生活息息相关。如何有效缓解城市交通拥堵,合理地处理人与人、人与车的关系,在城市交通中已经是特别常见的问题。交通灯是交通系统的主要部分,在缓解交通拥堵方面起着至关重要的作用。如今,在车水马龙的道路上交通灯随处可见,但交通灯变更时间长、效率低,造成很多资源浪费[5]。从20世纪开始,随着计算机视觉技术和网络技术的进步,以及相关理论的不断完善,智能交通系统迅速发展,出现了越来越多的智能控制方式来解决现实交通拥堵的问题。该系统通过对车辆和行人进行目标识别,根据识别到的车道上车辆的数量和人行道上行人的数量对交通信号灯进行实时控制,实现道路资源利用最大化,达到构建智能社会的目的。
2 主要技术(Main techniques)
2.1 神经网络模型
目前流行的神经网络有很多种,如CNN卷积神经网络、RNN卷积神经网络、FCN全连接神经网络、SVM支持向量机等,还有很多成熟的网络结构,如VGG网络结构、SSD(Single Shot MultiBox Detector)网络结构、YOLO网络结构等。本系统采用SSD[6]目标检测网络实现对路口车辆和行人进行检测和统计。SSD里的Single Shot是指SSD算法属于one-stage方法,MultiBox是指SSD算法是基于多框检测的一种算法。SSD采用的主干网络是VGG 16网络,但是SSD用到的VGG 16网络相比普通的VGG 16网络在神经网络层上有一定的改进。
2.2 socket套接字网络通信
本系统采用socket套接字进行网络通信[7]。socket是一个网络通信的套接字,一般由IP地址和端口号两部分组成。
2.3 Raspberry Pi的GPIO控制
树莓派的输入输出针脚编号有两种,一种是BOARD编号,另一种是BCM编号。本系统采用的是BCM编号。在使用一個输入输出针脚的时候,要设置其是输入还是输出,通过电压差点亮一个LED灯或者是驱动某些设备。当程序运行结束的时候,要将所有的GPIO引脚都设置为输入端,防止GPIO引脚相互接触导致短路而损坏树莓派。
3 方案设计(Schematic design)
3.1 智能交通灯系统框架设计
本系统共有四个模块:视频采集模块、图像处理模块、延时计算模块以及网络通信模块。视频采集模块是用摄像头实时采集道路上的车辆和行人的情况,实现数据采集;图像处理模块用神经网络模型实现,实现车辆和行人数目的计算;延时计算模块用于控制交通灯的亮灭;网络通信模块用于检测车辆和行人的图像处理器进行通信,如图1所示。
3.2 技术方案
本系统采用树莓派做主要控制器,通过四个主控制器来控制交通灯系统,其中两个主控制器分别控制东西方向和南北方向车行道上的交通灯,另外两个主控制器分别控制东西方向和南北方向人行道上的交通灯。同时,使用工业摄像头来进行数据的采集,将采集到的数据分别输入四个主控制器,对路口车辆和行人进行预测,将预测出来的结果通过socket套接字输入延时计算模型中计算出交通灯的时延,实现动态设定交通灯的时长。
车辆数目与交通灯时延的数学模型为c_model,详见式(1):
(1)
其中,m为检测到车辆的数目,k为每辆车的启动时间,d为两个行车交通灯系统的距离,B为每辆车的长度(只考虑小轿车),v是每辆车的行驶速度。
行人数目与交通灯时延的数学模型为p_model,详见式(2):
(2)
其中,s为人行道的长度,w为人行道的宽度,n为行人的个数,v为行人的平均速度,a表示一个行人所占人行道的长度,b表示一个行人所占人行道的宽度,c为一个固定的时长,为1—3 s,系统的鲁棒性最高。
图2给出了该系统模拟实际十字路口的示意图。图中包括东西向、南北向的行车道和人行道、4 个车行道的智能交通灯和8 个人行道的智能交通灯,4 个车行道的交通灯用来监测车流量,1和7用于监测东西向的车流量,4和10用于监测南北向的车流量;8 个人行道的交通灯用来监测人流量,3、5、9、11用于监测东西向的人流量,2、6、8、12用于监测南北向的人流量。
3.3 数据流图
本文以东西方向上流通、南北方向上阻塞为例说明系统的详细数据流图,如图3所示。当南北方向上的交通灯为绿色,东西方向上的交通灯为红色的时候,东西方向上的摄像头1、7、3、5、9、11开始采集数据,将依次采集到的数据命名为数据1、数据7、数据3、数据5、数据9、数据11。将数据1和数据7依次输入神经网络模型c_network进行车辆的监测与识别,并分别统计识别到的车辆数,数据1对应的车辆数记为CN1,数据7对应的车辆数记为CN7;将CN1和CN7输入比较器获得最大车辆数,最大车辆数记为CNmax;将CNmax作为车辆数输入c_model中,通过c_model模型的计算,得到在行车道上通过所有的车辆所用的时间Tc。与此同时,数据3、数据5、数据9和数据11也会依次输入神经网络模型p_network进行行人的监测与识别,并分别统计识别到的行人数,数据3对应的行人数记为PN3,数据5对应的行人数记为PN5,数据9对应的行人数记为PN9,数据11对应的行人数记为PN11;将PN3、PN5、PN9和PN11输入比较器获得最大的行人数,最大行人数记为PNmax;将PNmax作为行人数输入p_model中,通过p_model模型的计算,得到在人行道上通过所有行人所用的时间Tp。随后,主控制器1和主控制器2利用网络通信socket套接字计算行车道上所有车辆通过所用的时间Tc与人行道上所有行人通过所用的时间Tp的最大值,记为T。此时的T就对应东西向交通灯绿灯亮的时长和南北向交通灯红灯亮的时长,最后将T输入智能交通灯的控制系统实现交通灯的控制,从而控制东西向交通灯绿灯亮的时长,以及南北向交通灯红灯亮的时长。在南北向交通灯为红灯的时候,执行上述步骤,只需将图3中的摄像头1、7、3、5、9、11换成对应的工业摄像头4、10、2、6、8、12,主控制器1和主控制器2换成对应的主控器3和主控制器4,就可以进行后续相同的操作。
3.4 车辆和行人的预测
车辆和行人的预测结果如图4所示。
经多次实验证明,本文开发的基于计算机视觉的流量监控智能交通灯系统能够实现较好的监测效果,但仍存在很大的改进空间。
首先,进一步优化神经网络,调整网络的层数,在保证识别准确度的前提下,尽量减少神经网络结构的层数,减少内存的消耗[8]。其次,虽然本文构建的实物模型取得了较好的效果,但智能交通灯最后是要应用到现实的生活中,所以未来应该将该模型应用于实际交通路口场景中。
参考文献(References)
[1] 李炳臻,刘克,顾佼佼,等.卷积神经网络研究综述[J].计算机时代,2021(04):8-12,17.
[2] 谢娟英,刘然.基于深度学习的目标检测算法研究进展[J].陕西师范大学学报(自然科学版),2019,47(05):1-9.
[3] 张敏,孙宁,张涌.基于树莓派的十字路口车辆调度系统[J].智能计算机与应用,2020,10(08):224-226,230.
[4] 缪茸.交通信号灯智能控制系统的研究[J].科学技术创新,2019(32):77-78.
[5] 王思甜,赵禹平,刘云飞.基于图像处理的城市智能化交通系统设计[J].科技与创新,2019(09):42-44.
[6] LIU W, ANGUELOV D, ERHAN D, et al. SSD: Single shot multibox detector[J]. Computer Vision, 2016, 9905(12):21-37.
[7] 王璇,王亮,杨玻.Linux环境下基于Socket的数据传输软件设计[J].数码世界,2020(11):15-16.
[8] 吴进,钱雪忠.紧凑型深度卷积神经网络在图像识别中的应用[J].计算机科学与探索,2019,13(02):275-284.
作者简介:
秦晓晖(1987-),女,硕士,讲师.研究领域:中文信息处理,人工智能.