基于机器视觉的交通拥堵评估系统①

2017-07-19 12:27张建嘉
计算机系统应用 2017年7期
关键词:交通灯分类器交通

叶 锋, 廖 茜, 林 萧, 张建嘉, 汪 敏

1(福建师范大学 数学与计算机科学学院, 福州 350007)

2(福建星网锐捷通讯股份有限公司 通讯产品研究院, 福州 350002)

3(北京邮电大学 多媒体中心, 北京 100876)

基于机器视觉的交通拥堵评估系统①

叶 锋1,2,3, 廖 茜1, 林 萧1, 张建嘉1, 汪 敏1

1(福建师范大学 数学与计算机科学学院, 福州 350007)

2(福建星网锐捷通讯股份有限公司 通讯产品研究院, 福州 350002)

3(北京邮电大学 多媒体中心, 北京 100876)

传统的交通灯采用固定配时模式, 缺乏灵活性、智能性. 针对上述问题, 提出一种基于机器视觉的交通拥堵评估系统对采集到的视频进行智能分析处理. 首先, 利用提取的梯度直方图特征和AdaBoost级联分类器实现对车辆的检测, 并辅以RFID来实现车辆计数; 进而通过Spark大数据分析平台而评估出当前的交通拥堵情况. 实验表明本系统能根据当前的实际交通情况智能调整交通灯的变换时间, 达到动态缓解交通压力的目的.

机器视觉; 梯度直方图; AdaBoost; 车辆检测; 特征提取

引言

传统的交通解决方案例如拓宽道路、加大路网密度、建立立体交通等越来越显示出其局限性, 只有通过利用高科技手段才能改善日趋严重的交通问题, 智能交通系统(Intelligent Traffic Systems, ITS)[1]作为当前世界各国的交通运输领域研究和开发的热点问题, 旨在将先进的信息技术、计算机处理技术、电子自动控制技术、数据通讯传输技术等综合用于整个交通管理系统, 从而建立起一种能够在大范围内全方位, 实时、准确、高效地发挥作用的交通运输综合管理系统.

目前, 人们主要采用各种传感器(如埋在地下的线圈传感器、雷达等)来获得交通量、车速、拥堵程度等信息. 随着视频通信技术的发展, 借助图像处理、机器视觉和模式识别技术, 通过高清摄像头提取多类别交通参数, 进行路段的交通状态的识别成为可能. 美国明尼苏达大学(UMN)运输研究中心于1984年发明Autoscope系统首次将视频处理、模式识别等技术应用到交通控制领域, 实现了对多车道车辆数据的检测[2,3].在车辆特征集中, 方向梯度直方图(HOG)特征[4]、局部二值模式(LBP)特征[5]和Harr-like特征[6]是车辆识别中主流的特征. 训练好的特征主要通过支持向量机(SVM)[7]或Adaboost[8]构建分类器完成最终的车辆检测.

考虑到容易堵车的地方往往是在十字路口装有交通灯的地方. 本文提出了一种基于机器视觉的交通拥堵评估系统: 在十字路口传统交通灯上添加视频传感设备, 主要采用HOG特征和AdaBoost分类器对车辆进行检测. 针对实际路况, 将信息传送到控制中心; 由基于Spark的交通大数据分析平台进行分析、调整, 通过交通灯模块控制以达到缓解交通拥堵的目的.

1 系统总体结构设计与分析

提出的交通拥堵评估系统如图1所示: 包括摄像头、RFID车辆感应模块、算法处理器、存储器、交通大数据分析平台和交通灯设备. 其中, 算法处理器分别与摄像头和RFID车辆感应模块通讯连接, 存储器分别与算法处理器和交通灯设备通讯连接, 交通大数据分析平台为检测算法提供支撑并对当前交通状态进行聚类分析.

图1 系统总体结构图

算法处理器包括线下分类模块、分类器和实时车辆检测模块. 其中, 线下分类模块负责将摄像头获取的历史数据进行样本分类; 分类器分别与线下分类模块和实时车辆检测模块连接, 用于存储样本分类. 算法处理器根据摄像头和RFID车辆感应模块获取的数据运算得到交通灯的变换时间. 实时车辆检测模块用于根据样本分类将摄像头获取的实时数据得到实时的车辆位置.

提出的系统工作流程如图2所示, 摄像头拍摄得到监控视频帧, 算法处理器采用车辆检测算法分析摄像头采集的图像数据, 并辅以RFID感应模块采集的实时车辆参数, 从而计算出一段时间内的平均车辆数(实时采集到的车辆数按照一定的比例得到每帧的车辆数).

图2 系统工作流程图

算法处理器通过计算一段时间内(即此次交通灯的倒数时间内)的平均车辆数/帧(如: 某路口现为绿灯60秒, 则此时间为60秒)估得到当前交通卡口的车流量、车速、行进过程中车辆之间的距离、车道的时间空间占有率情况. 大数据分析平台根据所有卡口的交通参数(时间占有率、平均车辆数、车速)评估得到交通拥堵情况值(拥堵、较拥堵、轻度拥堵、通畅), 而后动态调整相对应的下一次的交通灯变换时间. 存储器与算法处理器通讯连接将交通参数发送至大数据分析平台; 大数据分析平台将分析后的数据发送给存储器再将对应参数发送至相应的交通灯设备从而控制交通灯的变换时间.

通过对交通路口采集到的车辆视频进行分析可以发现(图3为福州市师大与宝龙地段交通路况图)其具有如下特点:

首先, 车辆被视为唯一在系统中运动的物体[9], 忽略其它; 其次, 路面上的分道线的间距是固定的, 车辆基本上在与车道平行的方向上运动. 根据这些特点, 算法处理器对采集视频进行目标检测, 对视频中的车辆进行识别和计数, 从而获得当前的交通流量参数.

图3 福州市仓山师大与宝龙地段交通路况图

2 交通图像预处理

由于在各交通路口视频采集的过程中会产生一些噪声等而影响图片的质量, 所以需要先对图片进行图像增强、滤波除噪、分割等预处理, 以到达去除噪声,剔除无关背景, 突出检测目标的目的.

1) 灰度化

因为颜色特征在车辆检测中作用不大, 故将彩色图转化为灰度图. 如果是YUV格式, 直接取亮度分量.如果是RGB格式, 将原来彩色图片(RGB颜色空间)转换成灰度图, 其转换公式如下:

其中Y代表灰度图像的像素值, R、G、B分别代表该像素点的三个颜色分量.

2) Gamma校正

为减少光照因素的影响, 更有效的保存图像亮度信息, 将整个图像进行规范化(归一化); 从而调节图像的对比度, 达到降低光照变化和图像局部阴影所造成的影响, 和抑制噪音的干扰的目的. 摄像头采集的车流图片先进行Gamma矫正, 具体公式如下:

当用于Gamma校正的值大于1时, 采集图像的高光部分被压缩而低灰度值部分被扩展, 当Gamma校正值小于1时, 采集图像的高光部分被扩展而低灰度值部分被压缩. 在实际应用中, 通过建立查找表, 根据查找表映射实现快速的Gamma校正.

3 基于HOG特征和AdaBoost的车辆检测模块

3.1 检测流程

经过预处理后的交通采集视频数据在算法处理器中完成车辆检测. 检测流程主要包含两个阶段: 线下的分类器训练阶段和实时的车辆检测阶段.

线下分类器训练: 进行分类学习算法, 通过将大量正、负样本送入分类器, 从而得到针对本训练样本数据分类的最优二类分类器. 训练样本主要提取HOG特征描述子作为关键特征和AdaBoost分类器.

实时车辆检测: 实时检测阶段就是将单一图像或视频序列送入训练好的分类器, 通过缩放图像的尺寸比例以及设定检测窗移动步长, 利用检测窗口在图像不同位置上进行非常密集的集中扫描, 并根据分类器判别结果将这些窗口判别为存在或者不存在车辆, 最后将结果进行融合得出最终的车辆的位置. 采用这种方法能把所有的车辆都检测出来.

3.2 HOG特征提取

方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种进行物体检测的特征描述子, 被广泛应用于行人检测中. 通过计算和统计局部区域的梯度直方图, HOG特征能较好地描述图像车辆的边缘梯度信息, 从而提取车辆的外形信息和运动信息, 形成丰富的特征集. 这里采用HOG特征结合AdaBoost分类器检测目标图像中局部目标的表象和形状. 其主要实现过程如下:

1) 图像像素点的梯度计算

计算图像横坐标和纵坐标方向的梯度, 并据此计算每个像素位置的梯度模值和方向值; 此求导操作不仅能够捕获车辆轮廓, 还能进一步弱化光照带来的影响. 图像中(x, y)点处的梯度计算方法如下:

式中Gx(x, y)、Gy(x, y)、G(x, y)和α(x, y)分别是图像在(x, y)处的水平方向梯度、垂直方向梯度、梯度幅值、梯度方向.

2) 统计每个单元格的梯度直方图

按采集视频分辨率将图像划分成不同小单元格(Cells)(720p取6*6像素/单元格).

统计单元格梯度直方图, 将梯度方向按[0→360°]均分成若干个统计区块(Bin)(这里以9 Bin/Cell), 统计落在不同区块中梯度矢量的加权个数, 形成每个单元格的描述子hist[index]:

index为Bin的编号, k为步长, G(x, y)用于做加权投票.

3) 将每几个单元格组成一个区块(block)(例如3×3个单元格/区块), 一个区块内所有单元格的特征描述子串联起来得到该区块的HOG特征描述子.

区块以某一步长在图像上滑动, 直到遍历整个图像. 此时, 将图像内的所有区块的HOG特征串联起来,即可以得到该图像的HOG特征描述子.

3.3 基于Adaboost的级联分类器

HOG特征几乎能够识别出视频中所有的车辆(即召回率很高), 但仍然存在较多的误识别. 因此, 训练采用Adaboost算法筛选可用于目标检测的关键特征.Adaboost算法是一种迭代算法, 其核心思想是针对同一个训练集训练不同的弱分类器, 最后将弱分类器联合起来, 形成一个强分类器. 算法本身是通过改变数据分布实现的. 在初始状况下, 每个训练样本都被赋予一个权重, 若某个样本没有被正确分类, 则在构建下一个训练集时, 就会加大该样本的权重; 反之, 若某样本已经被正确分类, 则在构建下一个训练集时, 将减少该样本的权重. 这样, Adaboost算法就可以排除一些不必要的训练数据, 更加关注分类困难的样本, 从而提高全体样本的识别率. 具体算法描述如下:

For t=1, ..., T

步骤1. 权重值归一化, wt,i为样本数:

步骤2. 对于每个特征j, 训练出其弱分类器hj, 使得误差函数最小.

步骤3. 从上述分类器中, 选择一个分类错误率最小的弱分类器ht.

步骤4. 更新样本权重分布:

其中, 若样本xi被ht正确分类, 则ei=0, 否则ei=1.

步骤5. 求强分类器:

3.4 多尺度遍历检测

根据上述算法, 通过不断调整检测窗口的位置、比例来检测车辆: 用原始大小窗口在图像上按某个步长滑动, 每滑动一次就取出对应块的图像进行识别, 判断有没有目标物体, 遍历完一遍后, 按照距离因子, 缩放窗口大小, 再重复执行上述操作, 最后完成车辆数目的检测.

4 RFID车辆感应计数模块

考虑到基于视频分析的车辆统计存在着漏检的现象, 本系统增加了RFID车辆辅助检测模块(见图4). 通过将电子标签绑定于车辆上, 在道路交叉口等需要重点监控的位置安装阅读器, 当车辆通过阅读器识读区域时, 其信息就被阅读器获取, 并传送到系统分析后台,实现对车辆的实时计数. 该部分包括硬件部分(有源电子标签、阅读器)和软件部分(算法处理器的RFID的车辆计数和信息管理)阅读器数据通过RS232串口或无线(CDMA模块)进行传输. 硬件系统主要实时采集和传输电子标签携带的信息数据; 算法处理器软件系统主要完成采集数据的接收、处理(加工、融合)和存储(管理). 通过硬件系统和软件系统相互配合, 从而实现系统设计要求.

图4 RFID车辆感应模块结构图

通过添加RFID车辆感应计数模块, 辅助对车辆进行计数, 将媒体数据分析与超高频标签数据融合可以大大提高系统的准确率. 通过对RFID数据和摄像头采集数据二次分析数, 可以改进车辆视觉分析系统. 目前,并不是所有车辆都强制安装RFID电子标签, 所以本模块主要作为辅助模块检测车辆个数.

5 基于SPARK集群的车辆大数据分析平台

据统计, 一个大城市每天会产生近8000万的通行数据包括许多视频、图片以及通行记录. 海量的交通数据不仅仅是一种处理对象, 而应当转变成一种基础资源[11]. 提出的交通大数据分析决策平台在交通灯智能处理算法的基础上, 对整个交通灯网络的数据进行整合、分类、存储、管理、共享以及数据挖掘. 为了达到高效的处理方式, 本文尝试使用Berkeley的Spark[10]开源框架对本系统中交通运行中的全体车辆数据进行分布式存储、监测、分析.

Apache Spark系统是基于内存计算上的可扩展的开源的集群计算系统. 该系统针对了Map Reduce的不足与缺点, 解决了由大量的网络传输以及磁盘I/O导致的效率低效问题, Spark系统采用内存进行数据计算以获得更快速的处理和查询, 能做到实时返回分析结果.Spark系统提供了比Hadoop系统更高层次的API, 相同的算法在Spark系统中的运行速度比Hadoop系统要快10倍~100倍. Spark系统在技术层面兼容了Hadoop系统的存储层API, 因此可访问HDFS、Sequence File、HBASE等. Spark-Shell终端可以开启交互式Spark命令的环境, 能够提供良好的交互式查询.

实验平台通过部署了5个节点的Spark集群模拟对对车流量信息的采集、存储与实时计算. 1台机器一台充当Master节点, 另外4台充当Worker节点, 系统采用Ubuntu 14.04, Spark版本采用1.6.2(Hadoop 2.6.5). 如图5所示, 由于视频流数据存储在HDFS文件系统中,Spark流采用批次的方法, 采用基于TCP sockets方式接入数据源, 使用Map-Reduce分布式计算模型来进行智能视频分析. 交通视频图像数据经过Map方法, 按5分钟切片, 然后接入提出的HOG和Adaboost算法进行处理, 处理结果传递到Reduce方法进行自动汇聚, 数据存储(车辆分析检测后的信息存储在HBASE数据库). 不同节点的车辆数据信息可以通过Spark中MLBase库提供的聚类算法判断当前卡口的交通拥堵情况并发送交通灯控制信号.

图5 车辆分析决策MapReduce示意图

为了在处理结果能尽量快地反映到具体交通灯变化上. Spark大数据分析平台对大量的数据上进行离线分析, 构造短时交通流预测模型预测未来几分钟、几小时甚至几天的车流量情况:

6 检测结果分析

本系统检测算法在OpenCV 2.4.9上编写, 服务器CPU配置为Intel Core i5 2520M 2.5 GHz, 每台节点为4 G内存. 本次验证共选取海康高清摄像机4个时段的视频视频格式为720p(1280×720), 25帧/s, 对应于3条主车道. 系统车辆检测效果、交通灯控制模拟装置和检测统计表如图6、图7和表1所示. 通过上表统计的数据可知, 该系统对于稀疏车辆的检测准确率高, 但对于密集车辆时准确率大大降低. 通过分析, 存在漏检现象的原因在于: 在训练的过程中, 样本为单一车辆, 且外界干扰小. 而在实际检测时, 存在以下几个问题: 1)车辆车型复杂; 2)周围环境的干扰: 噪声、恶劣天气(阴雨天、沙尘暴)等影响; 3)车辆重叠现象. 由于上述问题的存在, 易导致出现车辆漏检现象, 降低了车辆识别的准确率. to为经过本系统平台分析后的车辆检测时间, 可以发现本系统可以满足采集帧率为8帧/s的检测应用.

图6 车辆检测结果(图注: 本系统通过画框的方式对车数进行统计, 一个矩阵框代表一辆车.)

图7 交通灯控制模拟装置

表1 系统车辆检测统计表

传统的拥堵评价技术中, 特征指标构建中有很多的数据项来自于仅经过简单处理的实时交通监测数据,比如道路的平均行程速度、道路的平均停车时间以及交叉口的平均等待时间、常规公共的交通准点率等.而基于Spark的大数据分析技术为交通拥堵评价的数据项提供了支撑, 能确保交通拥堵评价中所使用的相关数据的采集、传输、存储、处理、分析等流程于高速状态进行, 进而服务于交通平台.

7 结语

本文提出了一种基于机器视觉的交通拥堵评估系统, 传统的交通灯采用固定制, 缺乏灵活性、智能性.本系统是通过给交通灯加上可视设备, 在已有视频采集模块的基础之上, 利用HOG特征和Adaboost理论, 对采集的视频进行智能分析处理并辅以RFID车辆感应模块来实现车辆计数. 通过Spark大数据平台分析当前实际的路况智能得到交通灯的变换时间, 从而实现代替传统的交通灯系统, 减少不必要的时间的目的. 系统的最大优点在于能够24小时随时随地工作, 维护简单方便且性能稳定, 受到恶劣天气等影响较小. 不足之处在于对于车辆识别的准确率, 还需要对其完善, 提高识别率.

1陆化普, 李瑞敏. 城市智能交通系统的发展现状与趋势. 工程研究-跨学科视野中的工程, 2014, 6(1): 6–19.

2姜桂艳. 道路交通状态判别技术与应用. 北京: 人民交通出版社, 2004.

3Davies ER. Computer and machine vision: Theory,algorithms, practicalities. 4th ed. Singapore: Elsevier, 2012.

4李星, 郭晓松, 郭君斌. 基于HOG特征和SVM的前向车辆识别方法. 计算机科学, 2013, 40(11A): 329–332.

5杨尚斌, 刘秉瀚. 融合颜色和CS-LBP纹理的运动阴影检测.计算机系统应用, 2015, 24(9): 201–205.

6李光瑞, 蔡安东, 黄梅. 基于Haar-like矩形特征的交通标志识别. 现代计算机, 2014, (7): 62–65.

7Cortes C, Vapnik V. Support-vector networks. Machine Learning, 1995, 20(3): 273–297.

8杨新武, 马壮, 袁顺. 基于弱分类器调整的多分类Adaboos t算法. 电子与信息学报, 2016, 38(2): 373–380.

9黄同愿, 黄席樾, 袁荣棣, 等. 高速公路紧急事件与安全系统探索. 重庆大学学报, 2003, 26(9): 126–129. [doi: 10.11835/j.issn.1000-582X.2003.09.033]

10Zaharia M, Chowdhury M, Franklin MJ, et al. Spark: Cluster computing with working sets. Proc. of the 2nd USENIX Conference on Hot Topics in Cloud Computing. Berkeley,CA, USA. 2010, 10.

11赵鹏军, 李铠. 大数据方法对于缓解城市交通拥堵的作用的理论分析. 现代城市研究, 2014, (10): 25–30. [doi: 10.3969/j.issn.1009-6000.2014.10.006]

Traffic Congestion Evaluation System Based on Machine Vision

YE Feng1,2,3, LIAO Xi1, LIN Xiao1, ZHANG Jian-Jia1, WANG Min1

1(School of Mathematics and Computer Science, Fujian Normal University, Fuzhou 350007, China)
2(Fujian STAR-NET Communications Co. Ltd., Fuzhou 350002, China)
3(Multimedia Center, Beijing University of Posts and Telecommunication, Beijing 100876, China)

The traditional traffic light systems are poor in flexibility and intelligencefor their fixed timing modes. In view of the above problems, a machine-vision-based traffic congestion evaluation system is presented to evaluate the current situation of traffic jams in this paper based on the collected video intelligent analysis and processing. Vehicle counting is firstly realized by HOG-feature analysis, AdaBoost method and RFID technology. Traffic states are evaluated in the Spark platform. The result of the experiments shows that our system can realize adjusted transformation time of traffic lights according to actual situation of the current traffic environment, then achieve the purpose of relieving traffic pressure dynamically.

machine vision; HOG; AdaBoost; detecting test of vehicle; feature extraction

叶锋,廖茜,林萧,张建嘉,汪敏.基于机器视觉的交通拥堵评估系统.计算机系统应用,2017,26(7):78–83. http://www.c-s-a.org.cn/1003-3254/5841.html

福建省引导项目(2016Y0031); 福建省教育厅项目(JA15136); 福建师范大学教学改革研究项目(I201602015)

2016-10-19; 收到修改稿时间: 2016-11-29

猜你喜欢
交通灯分类器交通
学贯中西(6):阐述ML分类器的工作流程
基于朴素Bayes组合的简易集成分类器①
繁忙的交通
基于单片机的交通灯模糊控制器研究
基于遗传算法的智能交通灯控制研究
矿工灯
小小交通劝导员
为什么交通灯是红黄蓝三种颜色?
基于差异性测度的遥感自适应分类器选择
浅谈多分类器动态集成技术