基于OPenCV的交通灯绿信比智能调节装置的设计
2020-03-02祝朝坤李宗贤
祝朝坤 李宗贤
摘要:基于树莓派为核心器件来设计的智能交通灯控制器,采用摄像头来实时的捕捉路口的照片,发送给树莓派,在树莓派上运行OpenCV视觉库来处理分析路口车辆的数目。通过串口发送给STM32F103C8T6微控制器来设置红绿灯亮灭的时长,最后可以通过屏幕显示车流量,等待时间等信息。设备可靠性高、实用性强、操作简单。
关键词:交通灯;树莓派;OpenCV
0引言
国内应用和研究城市交通控制系统的工作起步较晚,20世纪80年代以来,国家一方面进行以改善城市市中心交通为核心的UTSM(urban traffic systemmanage)技术研究:另一方面采取引进与开发相结合的方针,建立了一些城市道路交通控制系统。以北京、上海为代表的大城市,交通控制系统主要是简易单点信号机、SCOOT系统、TRANSYT系统和SCATS系统其中几个结合使用;而如湘潭、岳阳等国内中小城市,交通控制系统主要还是使用国产的简易单点信号机和集中协调式信号机。这些信号系统虽然取得了较好的效果,但我国实际情况决定了需要对这些系统进行改进。另外在一些城市中,有些红绿灯装有信号控制系统,在所有道路资源都充分使用的条件下,红绿灯的转换频率只能按时间分配,不可能让道路变得更加通畅,不能合理的红绿灯配时让道路的通行率大大降低,同时会延长机动车和行人等候通行的时间,降低了交通通行效率。比如道路东西方向的车辆已经通行完毕,但对于南北方向的汽车来说,依然处于红灯状态,不能通行,必须等到绿灯。这段时间就白白浪费掉了,妨碍了人们出行和工作:同时汽车在等待期间为的尾气排放,对于城市环境和市民的健康带来了巨大的隐患:汽车在等待期间能源浪费;因为抢道而引发交通事故,等等一系列的问题。
1功能概述及结构框图
产品为软硬件结合的城市交通路口智能调节装置,模拟了交通路口的环境情况。整体由树莓派3B,树莓派红外感光夜视摄像头,STM32F103RCT6最小系统板,等主要模块构成。基于树莓派使用OpenCV视觉库实时对采集到的路口图像进行处理,识别路口的车辆状况,处理后的结果送下位机,下位机在各个时间合理的智能调节红绿灯时间的长短,及时缓解路口的拥堵的设备。如图1所示
该交通通路口识别设备具备学习功能,有一定的数据分析功能力。可以实时对路口的状况进行图像采集与识别分析,识别后的数据会以一定的时间间隔发送到树莓派中。上位机通过调用摄像头实时的对路口的车流量进行检测识别,并且将车辆数量信息,红绿灯等待时间,拥堵情况等显示在屏幕上。识别的结果发送到人机交互的下位机中。下位机负责驱动红绿灯,合理的规划红绿灯的时间间隔。从而一定程度缓解交通拥堵情况。
通过对晴天,阴天,雨天等,不同的天气状况来每一个小时采集一张路口没有车辆的照片作为模板,然后通过树莓派的视频流实时的采集照片.将采集的照片和与他时间,天气状况相对应的模板做对比。然后使用OpenCV视觉库对实时采集到图片与模板进行图片相减,降噪滤波,图片的灰度,阈值化,漫水填充,二值化等,最终经过一系列的算法对图像处理,根据处理得到的车辆长度,大小,颜色等,来判断出路口车辆的多少。然后通过串口将数据发送给下位机,下位机经过一系列的运算之后得出合理的红绿灯时长.然后通过引脚来控制红绿灯。
2设备硬件设计及原理图
2.1整体外部构造
在树莓派上运行基于Python的OpenCV的视觉库,用来处理数据。树莓派端接有摄像头,屏幕,下位机STM32F103RCT6核心板。摄像头负责十字路口的图像采集:屏幕负责进行人机交互,显示路口车辆信息与等
2.2树莓派
在主控方面我选择了树莓派。树莓派(Raspbe rryPi)是只有信用卡大小的微型电脑,其系统基于Linux。当然还可以选择比较容易一些的OpenMV来进行图像处理,不过OpenMV处理能力有限,进行数据量大或者实时性要求高的图像处理的话就捉襟见肘了。因此设备的软件方面就调用OpenCV视觉库来处理图像,需要强大的运算速度和内存,选用了树莓派来做为处理器。直接在官网下载镜像烧录之后运行,系统里边直接就预装了很多编译软件,这里是直接使用Python语言来进行编译.此次设计中是通过Python脚本语言来调用OpenCV视觉库来完成处理.然后在通过控制树莓派引脚的硬件串口功能將处理得到的数据发给下位机。
2.3STM32F103RCT6核心板
在红绿灯的控制板选择上有F4和F1两个系列。相比与F4,F1价格方面优惠很多,还有F4虽然功能更加的强大,内部资源也更丰富,可是此装置由F1来控制完全能够胜任,避免造成资源的浪费。因此选择了STM32F103RCT6,主频是72M Hz,这个核心板是64引脚的.并且体积小,可以将它安装在红绿灯内部进行控制。在软件方面,可以使用标准库来进行编写代码,操作简单。次此设备主要用到它的定时器,引脚,串口,中断等资源。主要是采用核心板来控制红绿灯的亮灭和数码管的倒计时,通过串口接收到树莓派发来的数据之后,在中断里边进行判断,确定是有用的信息的话就返回给主函数,运算之后通过引脚输出来控制红绿灯的亮灭.和数码管显示时间。
2.4CSI摄像头
在摄像头的选择上有普通的USB摄像头和CSI摄像头。但是经过试验发现USB摄像头像素低,存在电源无法带动的问题,而且夜间拍摄效果差,还有USB摄像头,占USB带宽,CPU使用率会高一些。所以便采用了树莓派CSI摄像头,CSI的CPU使用率会低一些,而且配置起来免驱动,更加方便。同时具备红外夜视.红外灯补光,可调焦等功能,在各个时间段都能够清晰的获取路面的图像。
2.5主要原理图
主要原理图如图3。
3设备软件设计
主要采用数字图像处理又称为计算机图像处理.它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。用计算机进行图像处理的前提是图像必须以数字格式存储,把以数字格式存放的图像称之为数字图像。数字图像处理技术得到了广泛的应用。在日常生活中见到的图像一般是连续形式的模拟图像,所以数字图像处理的一个先决条件就是将连续图像离散化.转换为数字图像。图像的数字化包括采样和量化两个过程。
3.1上位机图像处理
加载原始图像,获取图像的高和宽。进行低通滤波处理,进行滤波去掉噪声和清除背景。转换成灰度图,此时目标图像周围有写不光滑,还有一些噪声,因此进行开闭运算,得到比较光滑的目标.接着转换成二值图以便于获取图像的轮廓,最后进行轮廓提取,抓取到目标。再通过对轮廓外形无限逼近,删除非关键点、得到轮廓的关键点。最后通过过图像几何距是图像的几何特征,高阶几何距中心化之后具有特征不变性,产生弧距输出,用于形状匹配等操作,这里我们通过计算一阶几何距得到指定轮廓的中心位。如图4所示:
3.2上位机屏幕显示数据
屏幕使用的是7英寸高清屏,是直接使用树莓派上的HDMI接口来进行扩展的,数据是通过STM32核心板计算出来的红绿灯时间长短通过串口返回给树莓派的.然后在树莓派上通过调用Pvthon的GUI库来实时的在屏幕上显示不同时间段的路面车辆状况,和红黄绿灯的具体时间,以便更好地进行人机交互。如图4图5所示。
4设备的优势
4.1相比传统交通灯更高效更安全
本装置加快了汽车通过路口效率,缓解城市交通拥堵问题。装置通过对城市红绿灯的有效实时调控,根据车流量的变化规律,给出相应的红绿灯最佳控制方案。从而缓解城市交通压力并在一定程度上解决塞车,堵车问题,同时还能减少尾气的排放,使市民出行更加方便,安全,快捷。
4.2安装成本低
传统的红绿灯改造成智能交通灯好处很多.但对于智慧红绿灯的改造大都是“局部”的。因为目前受制于改造成本(一个路口的智慧信号灯改造需要接近100万元),要在大城市全面推进智慧信号灯改造,似乎并不现实。我们的产品使用树莓派作为主控板,大大降低了开发成本,并且经测试,其也能够长时间的稳定工作,可靠性高、维护方便、扩展功能也较强。
5结论
在随着人工智能、物联网等新一代信息技术加速应用,发展智能交通也将是极其重要的一环。如果没有智能化交通网络的支撑,智慧城市建设也就无法顺利展开。因此,智能交通概念走向落地是当务之急。而其中,无论是打造智能交通管理系统,还是着力解决道路拥堵,智能交通灯的设计又是其关键所在。因此,该设计为智能交通设备的应用提供了广阔的发展前景。