基于图像处理的智能交通信号系统设计

发布者:Haifeeng最新更新时间:2024-07-15 来源: elecfans关键字:图像处理  OpenCV  平台 手机看文章 扫描二维码
随时随地手机看文章

社会经济逐步发展,汽车制造行业兴起,使我国汽车保有量大幅增加,但城市道路因各种原因无法进行扩建,易导致交通拥堵。在早高峰时间可能出现大量车在等红灯,而另一方向路口却很少有车辆通行。这种固定信号周期控制造成的交通拥堵,大大限制了交叉路口的通行能力。若信号灯绿灯时间可以随着车况进行调整,那这种情况将得以改善。由于人工统计车流量易造成遗漏且过于耗费人力,地下线圈统计则安装成本高且维护困难。


由此可见,一个能随着车流变化的智能交通信号系统尤为重要。在车流密集的道路上增长绿灯时间,在车流稀少的路口相应减少。利用视觉处理的方式避免安装传感器带来的高成本、高维护,减少对人力的投入。


1 系统总体方案设计

针对上述背景,设计了基于图像处理的智能交通信号灯控制系统,该系统在OpenCV 平台的基础上,利用Python语言编写,并以树莓派为主控。在使用过程中连接高清摄像头实时捕捉路上车辆行驶的视频图像,经过OpenCV 计算机视觉库对图像的处理,获取车流辆、车辆排队长度,通过智能算法对下一刻汽车的数量进行预测。根据此计算结果,调整交通信号灯的时间,以此实现智能交通信号,改善交通状况,使十字路口通行更加顺畅。

2 硬件控制核心选择

本设计需要对路面进行抓拍、图像处理以及计算等任务。可以使用OpenMV 硬件或树莓派+OpenCV+ 摄像头。OpenCV 是一个跨平台的计算机视觉库,有着多种计算机视觉的算法。而OpenMV 是视觉模块硬件,本质是一个STM32 单片机。在图像处理方面,OpenCV更占优势;在性能方面,OpenMV 在处理大量数据,运行实时性系统会比较吃力,树莓派性能较高可以搭载OpenCV 运行库,对图像数据进行处理,可以运行更多算法。同时,在公路上一般都装载摄像头,可以直接接入树莓派进行使用,更为方便。故采用树莓派+OpenCV+ 摄像头进行开发较为妥当。

3 系统程序设计

首先利用OpenCV 库对视频流进行获取,对路面的车流的每一帧进行处理,调节合适的参数使车辆凸显出来,并使用帧差法实现目标跟踪,用虚拟线圈法进行统计车流量。把得到的平均车流量、车辆排队长度输入到模糊控制器中得到一个更加合理的绿灯时间。程序设计流程如图1 所示:

1682418604387207.png?imageView2/2/w/1000

图1 程序设计流程图

3.1 图像预处理

在图像预处理中,需要对形态学进行了解。这是对图像处理和描述的有力工具,其在计算机视觉、数据处理方面有着广泛的应用。

视觉图像处理就是运用数学形态学,它可分为二值形态学和灰度形态学。其主要的运算就是腐蚀( 式1)、膨胀( 式2)。腐蚀会缩小白色部分,使轮廓更加的细化,一般处理用于处理离散点,将两个不同物体的连接断开。膨胀会增大白色部分,使轮廓更加粗壮,一般处理一个物体内部像素点不全的问题。

1682418701368907.png?imageView2/2/w/1000

在此过程中,设置腐蚀、膨胀内核,使用Numpy 库进行进行卷积核的设定kernel = np.ones((6, 6), np.uint8)更改数值可以对核的形状和尺寸进行设定。即可得到一个尺寸相同的矩阵。这时就可以对矩阵中选定的形态,进行腐蚀、膨胀将形状提取出来。二值化图像如图2 所示、腐蚀膨胀结果如图3 所示:image.png?imageView2/2/w/1000

3.2 车流量检测设计

1)车辆目标跟踪

车辆目标跟踪采用帧差分法进行目标跟随通过cv2.cvtColor()函数对这这一帧与上一帧图像转为灰度图像,并通过高斯滤波消除噪音,以减小光线变化或摄像头轻微晃动引起的噪声,而后使用cv2.absdiff() 对这附近两帧进行差分,得到两张图的差异之处。采用二值化处理,将车辆从图中提取出来。最后将两帧图片变化的地方进行腐蚀、膨胀处理,获得更加明显的差异。并不断迭代形成一个连续的图像。但这种方式精度略低,可以使用改进方法:多帧间差分法[1],将当前帧、前后相邻两帧像素的灰度值进行运算,通过3 帧图像差分得到完整目标轮廓。

通过上述方法获得差异,利用cv2.findContours 进行对所有轮廓点的储存,并将轮廓添加到原始帧中,从而持续跟踪目标。目标跟踪算法如图4 所示:

1682419049702868.png?imageView2/2/w/1000

图4 目标跟踪算法

2)虚拟线圈计数法

这种方法与传统的在路面下方安置物理线圈类似,但物理线圈有着维护费用高,易造成道路损坏等问题。使用虚拟线圈计数成本低,检测也更为方便。运用视觉处理,以道路单一方向的车流为基础,在视频的中央处垂直与车道线画一条虚拟检测线。每当车辆穿过这条检测线时,车流量计数加一,并在这辆车离开摄像头的范围将其计数减一。通过这种方式实时记录车流量。

在判断车辆是否穿过这条虚拟检测线,利用数学几何中的叉乘。以下为正方向时,车辆1 在线圈上方AC×AD 即为正、车辆2 在线圈下方BC×BD 为负。可得知在线圈上方时结果为正,下方为负。所以当观察到的目标计算值由正变为负时,就可以确定有车穿过了虚拟线圈,进而实现计数功能。虚拟线圈理论示意图如图5 所示、车流量计数测试图如图6 所示:

image.png?imageView2/2/w/1000

3.3 车辆排队长度获取

要完成对车队长度的测量,需将图像二值化处理将背景与车辆进行分离。利用基于模板的快速单车道提取[5], 这是一种模板化的方法,由于车道线在任意一帧图像中的位置是不变的,因此可以利用模板图像对任意一帧图像进行模板化处理,以直接完成该帧图像的单车道提取。由于图片的横向缺失故需进行膨胀处理,使白色图像更加丰满,最后对像素长度进行获取,得到图片中车辆的排队长度。车辆排队长度程序设计流程图如图7所示:

1682419240853855.png?imageView2/2/w/1000

图7 车辆排队长度程序设计流程图

3.4 模糊控制器设计

一般十字路口变化基本为:①南北直行绿灯、东西直行红灯50 s。②南北路口黄灯闪烁3 s、东西路口继续红灯。③南北直行路口红灯、东西直行路口绿灯50 s。④南北直行红灯、东西路口黄灯闪烁。这4 个反复循环是十字路口的基本规则,南北或东西路口的左转、右转都穿插在这直行信号之间,使各个车辆能够安全地通过。但车流量会随着交通情况实时改变,很难建立一个完美的信号周期。由于模糊控制是一种基于特定规则和专家经验的控制思路,于人们的认知诞生的算法,它不需要特别精确的数学模型也可以得到想要的效果。故采用模糊控制策略得出相对合理的、符合当时道路的交通信号周期。

1)参数设置

模糊化处理是将获取到的南北通行平均车流量Rsn 、东西通行平均车流量Rew 、南北车辆排队长度Lsn、东西车辆排队长度Lew 这4 个参数进行模糊评级。将车流量密集程度分为4 个等级拥堵、稠密、正常、基本没有车辆通行并对其分别赋值9、6、3、0。给车辆排队长度也分为4 个等级极长、长、一般、基本没有车辆停止,也分别赋值为4、3、2、1。在进行模糊化后开始模糊推理,由于模糊推理的输出结果是模糊量,需要使用式(3)(4)得出清晰化结果。模糊控制器算法设计图如图8 所示:

1682419399240981.png?imageView2/2/w/1000

图8 模糊控制器算法设计图

2)参数获取与优化算法

当处于①信号状态时,获取南北通行平均车流量Rsn 处于②状态时获取东西车辆排队长度Lew 、处于③状态时获取东西通行平均车流量Rew 、处于④状态时获取南北车辆排队长度Lsn 。

在进行①②③状态后于④状态的黄灯时间,整理获取到交通情况的各个参数后,开始对新一轮的南北绿灯时间Tsn和东西绿灯时间Tew进行评估(K 默认为1)。

1682419577754120.png?imageView2/2/w/1000

通过这样的方式不改变信号周期的总时长 ,当哪个方位车流量增多,并以排队时间之比进行倍增,对于不同情况可以调节K 值,减小或增大ΔT 的范围,提高了本优化算法的适应性,使其更加适合交通情况。


4 结束语

本文主要介绍了基于图像处理的智能交通信号系统,利用目标跟踪与虚拟线圈法得到路口车流量的稠密程度,并设计了模糊控制器,它可以根据车流量、车辆排队长度对路口的绿灯时间进行适当调整,这种能够按照交通路口拥堵程度自行更改绿信比的智能交通信号系统可以大大提升十字路口的通行效率,使社会资源分配的更加合理,有效解决交通拥堵的现象。

参考文献:

[1] 宫金良,陈涛,张彦斐,等.一种基于多区域信息融合约束的改进帧间差分目标检测与跟踪算法[J].江苏大学学报(自然科学版),2022,43(3):302-309.

[2] 文丰,王乐群,张凯华.基于ZYNQ加速的帧差法运动目标检测[J].单片机与嵌入式系统应用,2022,22(6):74-78.

[3] 李春明,杨姗,远松灵.结合帧差法与窗口搜索的车道线跟踪方法[J].太赫兹科学与电子信息学报,2022,20(4):372-377.

[4] 黄大君,吴昊.基于虚拟线圈的车速检测算法研究[J].兰州文理学院学报(自然科学版),2020,34(1):76-81.

[5] 林彬.基于图像处理的智能交通信号灯控制系统的研究[D].哈尔滨:哈尔滨工业大学,2011.


关键字:图像处理  OpenCV  平台 引用地址:基于图像处理的智能交通信号系统设计

上一篇:燃油汽车和电动汽车的热管理系统有何不同?
下一篇:Lin总线介绍与静电浪涌保护专用器件

推荐阅读最新更新时间:2026-03-24 15:02

在TQ2440实验板上进行linux+qtopia++ov9650+opencv图像处理系统
项目关键的地方主要是能够在ARM9(TQ2440)上根据所采集(OV9650)的图像和我预先给的模板,来判断图像中是否有我给的模板的内容在,有的话框出来。其实这个我在Windows下,最常用的就是两个函数:cvMatchShapes(速度慢)和cvMatchTemplate(速度快)。但是由于这次的项目小车是运动的,所以目标相对小车,它的大小是变化的,但是形状不会变。还有我们使用两个摄像头(这也是我们项目的创新点),对目标进行多角度的匹配。使用Opencv的函数来进行模式识别,在Windows平台上基本基本没有什么值得考虑的地方,但是在嵌入式平台上,一定的考虑处理器的速度问题。像现在我们arm9的频率在500M左右,我以前在Win
[单片机]
在TQ2440实验板上进行linux+qtopia++ov9650+<font color='red'>opencv</font>的<font color='red'>图像处理</font>系统
基于ARM嵌入式图像处理平台的太阳跟踪系统
0 引言 随着社会的发展和进步,环保节能已经成为人类可持续发展的必要条件。目前,再生能源的开发和利用越来越受到人们的关注。太阳能由于其普遍、无害、无限、长久等特点,成为最绿色、最理想、最可靠的替代能源。但太阳能同时存在分散,不稳定,效率低等特点,太阳能光伏系统为解决这一问题提供了条件。 就目前的太阳能光伏系统而言,如何最大限度提高太阳能的转换率,仍是国内外的研究热点。有研究表明,和始终朝南的固定表面相比,与太阳辐射方向始终保持垂直的表面对太阳能的利用率提高约33%。太阳跟踪装置可以保证太阳辐射方向始终垂直于太阳能电池板平面,使接收到的太阳辐射大大增加,提高了太阳能的接受率与利用率,因而得到广泛的应用。 太阳跟踪装置的分类
[单片机]
基于ARM嵌入式<font color='red'>图像处理</font><font color='red'>平台</font>的太阳跟踪系统
一种基于高速DSP的图像处理应用平台的设计
1引言 完成某一特定任务的图像处理系统,其硬件方案大体上有三种:使用通用计算机 、使用ASIC(Application Specific Integrated Circuit) 和使用DSP(Digital Signal Processor) 。使用通用计算机的方案可以应用现有的硬件设备,选择合适的操作系统,只需要进行应用程序的开发。其优点在于开发周期短,费用较低,而且产品易于维护和升级;缺点是运算速度受到限制,对于算法的运算量和复杂度很高的应用场合,难以达到实时性要求。该方案有二种应用场合:算法开发初中期阶段及一些实时性要求不高的领域。使用ASIC的方案中,所有的运算都由硬件实现,因此实时性会非常好,但硬件的设计是一
[嵌入式]
一种基于高速DSP的<font color='red'>图像处理</font>应用<font color='red'>平台</font>的设计
OpenCV手势识别方案--基于米尔全志T527开发板
本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志 T527开发板)的OpenCV手势识别方案测试。 米尔基于全志T527开发板 一、软件环境安装 1.安装OpenCV sudo apt-get install libopencv-dev python3-opencv 2.安装pip sudo apt-get install python3-pip 二、OpenCV手势识别步骤 1.图像获取:从摄像头或其他图像源获取手部图像。使用OpenCV的VideoCapture类可以捕获视频流,或者使用imread函数加载图像。 2.图像预处理:对图像进行预处理,以提高特征提取的准确性。常用的预处理
[嵌入式]
<font color='red'>OpenCV</font>手势识别方案--基于米尔全志T527开发板
迅为4412开发板项目实战-制作支持百度AI和opencv的文件系统
项目名称;图像识别项目 硬件平台:iTOP-4412开发板 本节课我们需要使用前面编译的好库,本节课也给大家提供了编译好的库,可以直接使用。接下来我们开始制作支持opencv和百度AI的文件系统。 环境:迅为提供的ubuntu16.04 制作根文件系统大家可以参考系统编程里面的制作最小文件系统的视频,这里就不再重新制作了。 一.添加openssl到文件系统 我们把制作好的根文件系统拷贝到ubuntu,这里我拷贝到了/home/baidu/root下面,如下图所示: 输入以下命令解压并进入解压生成的目录, tar -vxf iTOP-4412-QtE5.7_4412_elite.tgz cd root/ 把编
[单片机]
迅为4412开发板项目实战-制作支持百度AI和<font color='red'>opencv</font>的文件系统
基于OpenCV和VC6.0的数据监控系统设计
0 引言     近几年来,计算机监控系统已广泛应用于交通、医疗、航天、军事等诸多领域,而其中的实时的图像处理、计算机视觉程序起着举足轻重的作用,OpenCV(Open Source Computer Vision Library)作为Intel开源计算机视觉库,由一系列C函数和少量的C++类构成,是可实现图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括300多个C函数的、跨平台的中、高层API,它不依赖任何其它外部库,是开放源代码,对非商业应用和商业应用都是免费的,具有基于Intel处理器指令集开发的优化代码,统一的结构和功能定义,强大的图像和矩阵运算能力以及方便灵活的用户接口。同时,OpenCV可以支持Windows
[嵌入式]
基于OpenCV的人脸识别设计方案
人脸识别的研究可以追溯到上个世纪六、七十年代,经过几十年的曲折发展已日趋成熟,构建人脸识别系统需要用到一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等 。而人脸识别在基于内容的检索、数字视频处理、视频检测等方面有着重要的应用价值,可广泛应用于各类监控场合,因此具有广泛的应用前景。OpenCV是Intel 公司支持的开源计算机视觉库。它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法,作为一个基本的计算机视觉、图像处理和模式识别的开源项目,OpenCV 可以直接应用于很多领域,其中就包括很多可以应用于人脸识别的算法实现,是作为第二次开发的理想工
[嵌入式]
基于FPGA多路机载冗余图像处理系统的设计与实现
0 引言 DVI(数字视频接口)是当前数字显示领域研究和应用的热点,面向DVI输出的视频处理技术不仅解决了显示器高分辨率、高刷新率等问题,而且提高了稳定性和显示性能,并进一步降低了平板显示器的成本。因此,面向DVI输出的视频控制器的研究具有十分重要的现实意义。 根据DVI标准,一条TMDS通道可以达到165 MHz的工作频率和10 b接口,也就是可以提供1.65 Gb/s的带宽,这足以应付1 920x1 080@60 Hz(23寸LCD)的显示要求。另外,为了扩充兼容性,DVI还可以使用第二条TMDS通道,这样其带宽将会超过3 Gb/s。也正是由于其较高的带宽优势,目前DVI已经成为了IT业界最具前途的规范。 DVI具有支持高
[嵌入式]
基于FPGA多路机载冗余<font color='red'>图像处理</font>系统的设计与实现
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved