交通灯运行时间自适应算法及其控制系统①
2020-06-20齐保良汪晴晴蔺玉璞
齐保良,孙 悦,汪晴晴,蔺玉璞
(山东建筑大学 信息与电气工程学院,济南 250101)
交叉口作为整个城市中路网节点,具有事故多发,极易造成交通拥堵的特性[1].红灯停绿灯行,黄灯主要起缓冲、过渡作用,使得司机能够平稳通过交叉口.通常情况下当前方向驶入交叉口的车辆在黄灯持续的时间内基本能够全部驶出交叉口,不会对下一方向驶来的车辆造成阻碍.然而交通系统是一个非线性系统,一个细微的参数波动都可能带来“蝴蝶效应”,具有强不确定性[2];恶劣天气或交叉口发生交通事故时,车辆行驶速度慢,当前方向的车辆已经越过停止线可以继续前进行驶,黄灯时间内无法驶出交叉口,而下一方向的车辆由于绿灯已亮起,又涌进交叉口,因此造成车辆在交叉口区域相互交叉缠绕、堵塞交通.目前,路口发生拥塞时经常需要人工指挥交通,加重了交警的工作量,且指挥调度不及时工作效率低.本文在现有视频处理算法[3-6]的基础上,利用交叉口车辆的空间占有率及其行驶速度对路口的交通状况进行评估,研究平面交叉口交通堵塞情况下多方向红灯运行时间的自适应算法,设计相应控制系统,根据交叉口道路交通拥堵情况自动适时调度车辆通行,避免车辆堵塞道路平面交叉口.
1 路口红绿黄灯切换逻辑
一般平面交叉路口(以下简称路口)主要分为东、西、南、北4 个方向,选取如图1所示的平面交叉口作为研究对象.南北方向交通信号灯设为信号1,东西方向交通信号灯设为信号2,n1~n8 为参与路口交通的8 个车道.通常情况下路口的通行顺序为:信号1 允许车辆通过→信号2 允许车辆通过→信号1 允许车辆通过,依次循环.
图1 十字路口交通图
图2是交通瘫痪示意图.特殊天气、交通事故等特殊情况使得路口需要更多的时间基本清空拥塞在交叉口的车辆,如果不能及时将冲突方向的车辆排出,就会使得来自各个方向的车辆相互交叉缠绕,导致各个方向的车辆都无法通行,造成了资源浪费、空气污染、尾气排放等等一系列后果.
图2 交通瘫痪示意图
发生拥堵时,疏散交通示意图如图3所示,即由图3(a)信号1 允许通行,切换到图3(b)黄灯缓冲状态;若此时道路拥堵(如图3(c)所示),信号1 的黄灯切换为红灯,整个交叉路口4 个方向的交通灯都是红灯,在此情况下,已经驶过停止线的车辆可以继续行驶,直至驶出交叉口;未驶过停止线的车辆则需要排队等候.通过此方法,已经驶过停止线的车辆以及正停留在交叉口的车辆可以驶出交叉口,实现在恶劣天气下路口的清空,保证后续车辆能够顺畅通过路口.
图3 疏散交通示意图
如图3(a)所示,南北直行方向为绿灯,绿灯结束的同时黄灯点亮,黄灯的持续时间为2~3 s,起到过渡缓冲的作用.考虑到进行路口拥塞状况的判断需要时间,因此绿灯结束的瞬间计算机读取路口实时状态,计算机能够在黄灯熄灭之前将路口状况判断完毕.计算机对获取到的视频图像进行处理,通过车速及路口车辆空间占有率检测算法判定路口是否处于拥堵状态,若处于拥堵状态,则待黄灯结束后,将4 个方向的交通灯都设置为红灯,交叉口的车辆利用这段时间驶出,直至计算机检测到路口顺畅,则将下一方向的红灯切换为绿灯,整个路口的红绿灯时长恢复正常控制逻辑;若绿灯结束时计算机检测得到路口顺畅,则无需采取红灯自适应控制算法,待本方向黄灯结束后,下个方向的红灯直接切换为绿灯.流程图如图4所示.
图4 系统逻辑控制图
当路口所有交通灯都设置为红灯时,停滞在交叉口的车辆可驶出路口,而其他方向的车辆不得驶入交叉口,所以拥塞在交叉口的车辆可及时驶出,达到疏散交通的目的.例如:图5所示为信号1 绿灯结束的瞬间,计算机读取路口车辆的平均车速度和路口空间占有率得知,该路口处于拥堵状态,信号2 车辆的允许通行时间需要延迟.信号1 绿灯结束时,信号1 灯即切换为黄灯,信号2 仍保持为红灯(如图6所示),若路口拥堵,则信号1 与信号2 均保持为红灯,清空拥塞在交叉口的车辆(如图7所示),直至读取到计算机数据:当路口各项参数在拥堵标准以下时,信号1 保持为红灯,信号2 由红灯切换至绿灯,这样即达到疏散交通的目的.
图5 方向1 通行结束瞬间
图6 信号1 的黄灯缓冲时间
图7 路口交通灯均设置为红灯
若路口不拥堵,则继续执行当前系统先前的红绿灯切换时间:方向1 的绿灯时间结束后,方向1 的交通灯由绿灯切换为黄灯,黄灯运行2 s (根据路口需求可以适当调整)之后再切换为红灯;方向2 的交通灯则在方向1 黄灯时间结束之后,直接由红灯切换为绿灯.
2 路口车辆拥堵检测方法
本文综合利用车速及车辆的空间占有率共同对路口的交通状况进行评估,采取的车速检测算法重点关注感兴趣区域内车辆变化因而计算量小;由于车灯的图像亮度大而对称,故通过检测车灯来检测车辆准确性高,且便于对视频角度进行校正,结合路口车辆的面积在整个路口中的占比,能够更加准确判定路口是否拥塞.
由于每条道路的设计服务水平是不同的,因此同样的车速在快速路与普通道路上行驶,给司机带来完全不同的驾驶体验.为方便计算,将判定为拥堵的平面交叉口车速阈值设置为v1,交叉口的占有率阈值设置为s1.采用车速、车辆在交叉口的占有率两种参数综合测评平面交叉口是否处于拥塞状况.
当车速较快时(大于v1),占有率高说明此时有很多车辆快速通过路口,占有率低说明有少数车辆以较快速度通过路口,这两种情况下,由于平均车速较快,因此路口顺畅,不必对多方向红灯运行时间进行干预;当车速较慢,且路口车辆的占有率较大(大于s1)时,说明路口有大量的车辆拥塞在路口,需要及时疏通;当车速较小且占有率较小的情况下,说明有较少车辆在路口低速行驶,这种状况称之为缓行,由于路口并不拥塞,车辆能够利用黄灯缓冲时间驶出交叉口,因此无需对其进行疏导.及时疏导路口车辆的关键在于准确而快速的判断路口的车速以及路口车辆的空间占有率.
2.1 基于视频的车速检测
现阶段车速检测的方法有雷达检测、激光检测、感应线圈法等.这些专业设备安装工作量大且维护成本高.基于视频的车速检测算法安装简易,检测精度满足系统的要求,且安装的摄像机同时可用于交通违法拍照等用途,能充分利用其性能.
检测车速的基本步骤:
(1)选择某一帧视频图像帧,检测车辆位置.
(2)按照一定间隔取出下一帧视频图像帧,检测对应车辆位置.
(3)把车辆移动的距离从图像坐标映射到世界坐标[7],得到车辆实际移动的距离.
(4)已知相邻帧的时间间隔以及车辆位移,则当前车速可求当前速度.
2.1.1 实时测速的难点
(1)找到视频中对应的块或对应点.找到对应的块或点才能得到车辆移动图像上的距离,从而映射到实际世界坐标中,计算当前车速.如何在视频帧中找到合适的对应块可以在对应帧中实现跟踪定位是一个难点.
(2)定位到块的时效性.定位到对应块的算法计算量小,才能满足测试运动车辆实时速度的要求.在视频的视野范围内,车速非常快的车辆出现的时间约20~30 ms,只有减少计算量才能实现较好的定位效果.
(3)车道倾斜角度的矫正.实际应用场景中,摄像头的拍摄角度不完全是垂直车道线的,会有一定的角度偏差,因此需要对此进行角度补偿[7-9].
2.1.2 车灯定位算法
视频测速的关键在于对应块的定位,先验知识(车灯、纹理、阴影、以及其他几何特征)对于车辆的定位是非常有用的提示.由于车灯包含的信息量大,且具有天然的对称性,因此利用车灯作为块去跟踪,能够满足车速检测系统的实时性要求.根据大量样本图形分析,车灯区域有以下特点:
(1)两帧图像的车灯区域一般都是对称的.
(2)相对于路面和车身而言,车灯部分亮度较大.
(3)车灯对应块在视野的上下方向运动,对竖直方向偏斜比较小.
利用车灯这些优良特征,有利于提高搜索对应块的准确率和效率.
2.1.3 视频图像预处理
(1)灰度图转换.将彩色图像转换为灰度图,并进行高斯平滑去噪声.经灰度转换后的路口图像图像如图8所示.
(2)感兴趣区域划分.交通视频中存在很多交叉口之外的图像信息,并且对于监控视频而言所拍摄到的车道方向是固定不变的.为降低算法计算量,人为标定车道线,如图9所示.在图中标定平面交叉口的点A、B、C,则交叉口的一条边界的直线方程为ax+by+p=0,系数a,b,p分别是:
图8 灰度转换后图像
图9 感兴趣区域划分
另外3 条路口边缘线以及车道线的延长线,在平面交叉口中的坐标表示方法的约束方程同理可求.4 条线围成的区域即是感兴趣区域.
2.1.4 感兴趣区域内车速检测算法
由于车速检测算法既要获得车辆的准确速度,又要在较短的时间内完成视频内车灯的定位,根据实验数据分析视频帧间隔2~3 帧较好.平面交叉口即为感兴趣区域.在感兴趣区域内可能会出现有多辆车辆驶入,会造成车灯带定位的误差.因此从图像的底部开始检测车灯,当检测到有车灯带存在时,不继续检测,每帧图像只有一个车灯带,车辆在图像上的移动距离如图10所示.
图10中,z为车灯带宽度,分别对在两幅图像中的车灯位置相减得到移动的距离x,对应的时间间隔t,则图像上的移动速度vt如式(3)所示.
单位为:像素/s.t=(前一帧处理帧帧数-当前处理帧帧数)/帧率.其中处理帧数及帧率都已知,t可求.用于判定路口是否拥堵的v1是是将此时路口多辆车的速度vtn取算术平均的结果,用算术平均取代某一固定值,v1更具有代表性.
图10 车辆在图像上的移动距离
图9所选取的3 点A,B,C为等距离选取.图像中3 点A、B、C实际距离相等,通过实测得到实际距离为6 m.摄像机在对平面交叉口进行标定时,将车道线延长至整个平面交叉口.图中A,B,C所在的直线为左二车道的延长线,根据这些条件推导距离.推导过程如图11所示.
图11 由图像距离推算至实际距离
EJ和FL辅助线与直线AD平行,O点是摄像机的焦点.A,B,C所对应的是实际路面的3 点H、G、F,其中FG=GH=6 m.在两帧图像中利用车灯对应块定位对应具体位置.只要把x转换到实际世界坐标中,进行摄像机标定即可.实际车辆的运动轨迹是直线或者近似直线,因此文中利用摄像机的透视关系,推导出摄像机的图像坐标与世界坐标的转换关系式.利用三角形相似,对应边成比例可以几何求解计算出视频图像中的像素距离DC所对应的实际距离EF.
D在C点右侧及A点左侧,D点在AB之间都有:
D点在B和C之间,有:
至此,可求出经过平面交叉口的车辆的平均车速.
2.2 路口车辆空间占有率的计算方法
路口车辆空间占有率表示的是车辆占用的面积Sij与路口整体可用面积Ti的比率,公式如式(7)所示.比率越高说明路口的车辆越多.
车辆空间占有率的计算步骤如下:
(1)当新一帧图像被读入时,先利用双边滤波进行预处理,随后进行背景重构,在完成图像背景提取与更新的同时,选取待检测的感兴趣区域;
(2)提取感兴趣区域中的车辆轮廓;
(3)形态学处理.将上述提取的车辆前景图像进行形态学处理,减少车体边缘噪声点;
(4)利用式(7)即可求得路口空间占有率.
3 红绿灯切换方法的实现
结构系统框架如图12所示,路口高清网络数字摄像机采集的图像信息通过交换机上传至计算机处理中心,计算机处理中心利用图像处理软件对图像进行分析处理之后,根据式(1)判定规则,判断路口是否拥堵,是否需要将路口交通灯都设置为红灯.计算机将控制指令通过以太网下发至交通灯控制器,控制器将信号下发给路口4 个方向的交通灯,实现疏散交通的目的.
图12 系统硬件设备结构图
摄像机安装在路口支架上,能够监控整个路口的实时路况.摄像机采集的视频图像信息通过以太网、接入交换机上传至计算机处理中心.计算机处理中心设置于区域的中心机房内.计算机处理中心将所获得的数据利用上述基于图像纹理的处理算法进行处理,获得路口车辆的空间占有率和最后一辆车距离当前停止线的距离.根据此参数判断路口是否需将整个路口的交通灯都设置为红灯.计算机将判断结果通过以太网下发至交通灯控制器,交通灯控制器的引脚连接控制着路口的交通灯.交通灯控制系统选用AT89C51单片机为主控芯片,该单片机体积小,功耗小,处理速度快,因此选用此单片机作为交通灯控制器.
3.1 硬件设备选型
前端信息采集:在平面交叉口路口安装高清网络数字监控系统.高清网络数字监控设备拍摄的清晰度高,对各种环境影响都有过滤算法,尤其是恶劣天气下,照片的清晰度等参数明显优于其他类型摄像机的识别能力.摄像机采用POE 供电,摄像机将采集的信息经网线、交换机上传至计算机.计算机将图像信息上传至数据库进行存储.摄像机的数量根据路口的大小合理安装,球形摄像机的监控半径在20 m 左右,建议路口安装3~5 个摄像机为宜.
交换机的选型:路口的摄像机种类繁多,在此选用24 口接入交换机将摄像机接入到网络系统中,交换机与计算机处理中心之间通过以太网通信.
计算机处理中心:计算机处理中心通过对路口图像的处理,做出是否将红灯时长延长的判断.计算机选用的是CPU 型号为i7-8550u,速度为2.53 GHz 的图像处理计算机,处理速度能够满足系统的要求,由此来完成图像处理工作.视频的采样频率设置为25 帧/s.
交通灯控制系统:交通灯控制芯片选用AT89 C51单片机,外接外部电路,单片机控制系统控制着一个路口的交通灯时长.单片机通过导入.hex 文件,与Keil 进行联调,仿真实验证明该布线方案与软件编程方案可行.
路况信息管理数据库的设计:摄像机采集的图像信息经计算机处理之后,将被存储到路况信息管理数据库.路况信息管理数据库存储的信息包括:时间、车辆占路口面积的百分比、统计意义下的车速、车牌号、车辆颜色、车辆进入交叉口时间、驶出交叉口时间等信息.我们选用开源的最常用的MySQL 数据库管理系统来建立一个路况信息管理数据库.用create databases trafficinformation 语句创建一个名字为trafficinformation 的数据库;再用create table carinformation语句创建一个名字为carinformation 的表.表格中有时间、车辆占路口百分比、车速、车牌号、车辆颜色等字段,车辆的信息存储于此,管理员可以查看后台数据,发现异常及时处理,日常情况下计算机对数据库采集的信息进行分析处理,判断路口的通行状况,及时作出优化方案.
3.2 软件设计
系统的软件流程图如图4所示.若路口没有意外情况发生,则系统将持续对绿灯是否结束进行判断.若绿灯结束,则判断路口是否拥堵,若绿灯没有结束,则返回持续对绿灯的运行状况进行判断,直至绿灯结束.若路口拥堵,则启动红灯运行时间自适应算法,将整个路口的交通灯都设置为红灯,再去判断路口的交通情况,直至路口不再拥塞,则将下一方向的交通灯设置为绿灯,系统再去判断绿灯结束之后路口的交通状况.这样,无论是哪个方向的绿灯,只要是绿灯结束,本系统就对路口的交通状况进行检测判别,实现了对路口全天候的监控管理.
4 仿真模拟
首先在VB 中编写红灯运行时间自适应算法程序,然后利用VB 和VISSIM 之间的接口对VISSIM 搭建的路网进行实时控制.比较两种控制方法下的路口车辆通过率.当输入的车辆数量较大时,车辆在交叉口汇合时会产生交织,为了保证行车安全,部分车辆必须停车,比较两种方案下,在相同时间内通过交叉口的车辆数目.首先建立仿真模型,将在CAD 中画好的双向四车道底图(如图1所示)作为仿真背景导入VISSIM,使用路段和链接器链接各进口道与出口道道路.每个车道宽度为3.5 米,调节车速和车辆数量,得出在车速以及车辆数量不同的情况下,是否采用红绿灯切换时间自适应算法的情况下,相同时间内通过的车辆数量.结果如表1所示.
表1 两种红灯运行时间下通过路口车辆数目对比
表1从车速和车辆在路口的空间占有率(为便于统计,占有率用每个进口的车辆数量来表征)两个参数的角度,比较了传统的红灯切换策略与红灯切换时间自适应算法下相同时间内通过交叉口的车辆对比.仿真结果表明,当路口较顺畅时,两者的通行效率几乎一致;当车速慢且车辆增多时,采取红灯运行时间自适应算法的通行效率明显高于传统红灯运行时间算法.
5 结语
本文提出了一种拥堵状态下的红绿灯切换时间配置策略.通过该策略,能够大大提高在车辆在即将发生拥塞或者已经拥塞时的通行效率.我们将摄像机录制的图像进行图像处理,计算出此时道路上车辆占整个道路的时间占有率以及车辆在路口中的速度,以此作为是否将整个路口的所有交通灯设置为红灯的标准.前端信息采集采用的是摄像机,图像处理与分析以及疏散策略由计算机进行控制.计算机将处理的数据存储至路况信息管理数据库.该数据库负责存储路口的车辆多少、车牌号、车辆颜色等信息,便于管理员查看以及进行数据分析.计算机通过图像分析作出是否进行红绿灯切换时间干预,相应的判决信号由前向通道接口电路发送至单片机,单片机控制路口各个交通灯的亮灭情况.实验结果分析表明,在路口发生拥塞时,该方法能够大幅提高车辆的通行效率.在未来的工作中,可以考虑将红绿灯切换策略由单点控制切换至区域控制,期望能更有效的减少恶劣天气对交通的阻碍.