葉 鋒, 廖 茜, 林 蕭, 張建嘉, 汪 敏
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所示: 包括攝像頭、RFID車輛感應模塊、算法處理器、存儲器、交通大數據分析平臺和交通燈設備. 其中, 算法處理器分別與攝像頭和RFID車輛感應模塊通訊連接, 存儲器分別與算法處理器和交通燈設備通訊連接, 交通大數據分析平臺為檢測算法提供支撐并對當前交通狀態進行聚類分析.

圖1 系統總體結構圖
算法處理器包括線下分類模塊、分類器和實時車輛檢測模塊. 其中, 線下分類模塊負責將攝像頭獲取的歷史數據進行樣本分類; 分類器分別與線下分類模塊和實時車輛檢測模塊連接, 用于存儲樣本分類. 算法處理器根據攝像頭和RFID車輛感應模塊獲取的數據運算得到交通燈的變換時間. 實時車輛檢測模塊用于根據樣本分類將攝像頭獲取的實時數據得到實時的車輛位置.
提出的系統工作流程如圖2所示, 攝像頭拍攝得到監控視頻幀, 算法處理器采用車輛檢測算法分析攝像頭采集的圖像數據, 并輔以RFID感應模塊采集的實時車輛參數, 從而計算出一段時間內的平均車輛數(實時采集到的車輛數按照一定的比例得到每幀的車輛數).

圖2 系統工作流程圖
算法處理器通過計算一段時間內(即此次交通燈的倒數時間內)的平均車輛數/幀(如: 某路口現為綠燈60秒, 則此時間為60秒)估得到當前交通卡口的車流量、車速、行進過程中車輛之間的距離、車道的時間空間占有率情況. 大數據分析平臺根據所有卡口的交通參數(時間占有率、平均車輛數、車速)評估得到交通擁堵情況值(擁堵、較擁堵、輕度擁堵、通暢), 而后動態調整相對應的下一次的交通燈變換時間. 存儲器與算法處理器通訊連接將交通參數發送至大數據分析平臺; 大數據分析平臺將分析后的數據發送給存儲器再將對應參數發送至相應的交通燈設備從而控制交通燈的變換時間.
通過對交通路口采集到的車輛視頻進行分析可以發現(圖3為福州市師大與寶龍地段交通路況圖)其具有如下特點:
首先, 車輛被視為唯一在系統中運動的物體[9], 忽略其它; 其次, 路面上的分道線的間距是固定的, 車輛基本上在與車道平行的方向上運動. 根據這些特點, 算法處理器對采集視頻進行目標檢測, 對視頻中的車輛進行識別和計數, 從而獲得當前的交通流量參數.

圖3 福州市倉山師大與寶龍地段交通路況圖
由于在各交通路口視頻采集的過程中會產生一些噪聲等而影響圖片的質量, 所以需要先對圖片進行圖像增強、濾波除噪、分割等預處理, 以到達去除噪聲,剔除無關背景, 突出檢測目標的目的.
1) 灰度化
因為顏色特征在車輛檢測中作用不大, 故將彩色圖轉化為灰度圖. 如果是YUV格式, 直接取亮度分量.如果是RGB格式, 將原來彩色圖片(RGB顏色空間)轉換成灰度圖, 其轉換公式如下:

其中Y代表灰度圖像的像素值, R、G、B分別代表該像素點的三個顏色分量.
2) Gamma校正
為減少光照因素的影響, 更有效的保存圖像亮度信息, 將整個圖像進行規范化(歸一化); 從而調節圖像的對比度, 達到降低光照變化和圖像局部陰影所造成的影響, 和抑制噪音的干擾的目的. 攝像頭采集的車流圖片先進行Gamma矯正, 具體公式如下:

當用于Gamma校正的值大于1時, 采集圖像的高光部分被壓縮而低灰度值部分被擴展, 當Gamma校正值小于1時, 采集圖像的高光部分被擴展而低灰度值部分被壓縮. 在實際應用中, 通過建立查找表, 根據查找表映射實現快速的Gamma校正.
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 多尺度遍歷檢測
根據上述算法, 通過不斷調整檢測窗口的位置、比例來檢測車輛: 用原始大小窗口在圖像上按某個步長滑動, 每滑動一次就取出對應塊的圖像進行識別, 判斷有沒有目標物體, 遍歷完一遍后, 按照距離因子, 縮放窗口大小, 再重復執行上述操作, 最后完成車輛數目的檢測.
考慮到基于視頻分析的車輛統計存在著漏檢的現象, 本系統增加了RFID車輛輔助檢測模塊(見圖4). 通過將電子標簽綁定于車輛上, 在道路交叉口等需要重點監控的位置安裝閱讀器, 當車輛通過閱讀器識讀區域時, 其信息就被閱讀器獲取, 并傳送到系統分析后臺,實現對車輛的實時計數. 該部分包括硬件部分(有源電子標簽、閱讀器)和軟件部分(算法處理器的RFID的車輛計數和信息管理)閱讀器數據通過RS232串口或無線(CDMA模塊)進行傳輸. 硬件系統主要實時采集和傳輸電子標簽攜帶的信息數據; 算法處理器軟件系統主要完成采集數據的接收、處理(加工、融合)和存儲(管理). 通過硬件系統和軟件系統相互配合, 從而實現系統設計要求.

圖4 RFID車輛感應模塊結構圖
通過添加RFID車輛感應計數模塊, 輔助對車輛進行計數, 將媒體數據分析與超高頻標簽數據融合可以大大提高系統的準確率. 通過對RFID數據和攝像頭采集數據二次分析數, 可以改進車輛視覺分析系統. 目前,并不是所有車輛都強制安裝RFID電子標簽, 所以本模塊主要作為輔助模塊檢測車輛個數.
據統計, 一個大城市每天會產生近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大數據分析平臺對大量的數據上進行離線分析, 構造短時交通流預測模型預測未來幾分鐘、幾小時甚至幾天的車流量情況:

本系統檢測算法在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的大數據分析技術為交通擁堵評價的數據項提供了支撐, 能確保交通擁堵評價中所使用的相關數據的采集、傳輸、存儲、處理、分析等流程于高速狀態進行, 進而服務于交通平臺.
本文提出了一種基于機器視覺的交通擁堵評估系統, 傳統的交通燈采用固定制, 缺乏靈活性、智能性.本系統是通過給交通燈加上可視設備, 在已有視頻采集模塊的基礎之上, 利用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