彭 博,張媛媛,唐 聚,謝濟銘,王玉婷
(1.山地城市交通系統與安全重慶市重點實驗室,重慶 400074;2.重慶交通大學 交通運輸學院,重慶 400074)
隨著城市的快速發展,城市機動車保有量持續增長,交通擁堵愈發嚴重。為了緩解交通擁擠、避免交通癱瘓,需要及時有效地識別道路交通狀態。目前,國內外基于微波檢測器[1]、地磁感應線圈[2]、視頻檢測器[3]、RFID[4]和浮動車[5]等技術手段提取的數據,對交通狀態識別展開了大量研究。其中,隨著城市交通視頻資源越來越豐富,以及視頻處理技術的快速發展,基于視頻圖像的交通狀態識別研究獲得了廣泛關注。
國內外學者基于視頻圖像進行了一系列交通狀態識別研究,Morton(2005)基于航拍圖像實現了交通狀態識別[6];Reinartz(2006)從航拍圖像中獲得高質量的交通數據[7];Lozano(2009)基于k-均值聚類方法提高了交通擁堵狀態識別系統的魯棒性[8];Liao(2014)利用支持向量機和遺傳學算法建立了交通視頻圖像擁擠識別模型[9];Quiros(2016)基于模糊邏輯提出視頻圖像交通狀態識別方法[10];崔華(2017)利用模糊C均值聚類算法對靜態圖像進行交通狀態識別[11]。總體而言,這些研究可從圖像中提取車輛位置、流量、速度等交通參數,進而識別交通狀態。由于視頻圖像內容復雜多樣,快速準確提取交通特征可能較為困難,不易實時處理快速增長的海量交通視頻。
視頻圖像具有維度高、信息冗余復雜等特征,考慮到及時高效識別交通狀態的重要性,一些學者嘗試對視頻圖像進行有效降維。其中,自編碼器是一種非線性無監督神經網絡模型,能夠對視頻圖像數據有效降維,進而實現圖像分類,因此,基于自編碼器的圖像降維與模式識別研究受關注較多:Wang(2012)提出了一種基于傳統自動編碼器對稱結構的折疊自動編碼器,減小尺寸并降低了降維的計算成本[12];Gao(2015)提出一種基于有監督堆疊自動編碼器的面部識別方法[13];Zhao(2017)將隨機森林分類器引入堆疊式稀疏自動編碼器以實現高光譜圖像分類[14];Ge(2019)提出一種雙重對抗性自動編碼器用于圖像聚類,并能達到有監督CNN算法的聚類精度[15]。由此可見,自編碼器可有效獲取圖像降維特征、避免“維數災難”,將其與聚類方法結合,可快速高效實現視頻圖像交通狀態的無監督識別。
綜上所述,為了有效降低圖像維度、自動快速識別交通狀態,本研究基于自編碼器與k-means聚類提出了一種視頻交通狀態自動識別方法,并構建數據集進行測試分析。
主要利用自編碼器對高維度圖像進行特征壓縮,基于壓縮后的低維數據,利用k-means聚類算法識別交通狀態,流程如圖1所示,主要包含3個步驟。

圖1 方法流程
(1)自編碼器圖像數據集構建:將交通視頻轉化成幀圖像,根據車輛密度及車間距等參數與人工經驗對每一幀圖像進行交通狀態判定,形成包含暢通、緩行、擁堵3種交通狀態的數據集。
(2)自編碼器模型構建與測試:根據模型的主要結構參量,包括輸入數據維度、隱藏層數量、降維數據維度等,構建自編碼器備選模型,并進行測試與選優。
(3)k-means聚類:將最優自編碼器輸出的降維數據進行k-means聚類,獲得圖像交通狀態。
交通狀態識別模型主要包含自編碼器和k-means聚類兩部分,訓練自編碼器獲得編碼數據,以作為k-means聚類的輸入數據,進而判定圖像交通狀態。
構建自編碼器以交通視頻圖像為輸入,編碼與解碼過程均有N個隱藏層,各層之間采用全連接結構,如圖2所示。對于樣本量為Q的圖像集中第g張圖像為例,自編碼器運算過程如下。

圖2 自編碼器結構
(1)將第g張圖像轉化為1×M的一維向量Xg,g∈[1,Q],M=τ1×τ2,τ1和τ2為圖像的寬度(像素)和高度(像素);

(1)


(2)


(3)
根據輸入數據維度、隱藏層數量、降維數據維度設計48個自編碼器模型結構,如表1所示。基于數據集A1對這些模型結構進行測試,結果顯示當輸入數據維度為64×64、降維數據維度為3維或者5維時測試效果較好,因此確定了6個備選模型,結構如表2所示。

表1 自編碼器交叉試驗


表2 自編碼器備選模型結構參數

(4)
式中,p=(bp1,bp2,…,bpv)和q=(bq1,bq2,…,bqv)為兩個具有v維特征的向量。
(4)遍歷完數據集中所有對象后,利用式(5)更新簇中心。
(5)

(5)根據最近鄰原則,重新將數據集中的對象進行劃分,并計算新的簇中心,直到平方誤差準則函數滿足要求。平方誤差準則函數定義如下:
(6)

(6)將所有樣本聚類為k簇,即k類交通狀態S1,S2,…,Sk。
道路交通視頻原始數據來源于某城市主要干道的交通視頻,圖像分辨率為704×576像素。為提高運行效率,裁剪提取目標區域圖像并劃分為暢通、緩行、擁堵3種交通狀態,記為狀態0,1,2。據此構建了3個數據集A1,A2,A3,樣本量Qj(j=1,2,3)分別為1 500,3 000,4 500。數據集制作過程與結果如圖3所示。

圖3 圖像數據集制作
試驗平臺為64位windows7操作系統的工作站,內存4 GB+CPU Nvidia GeForce 820M,配置Pytorch+Spyder3.6等環境,搭建Pytorch深度學習框架,采用Python 3.5作為編程語言。
針對數據集A1,A2,A3與模型Ⅰ~模型Ⅵ,進行了18組訓練試驗。為了對比備選模型效果,針對每個樣本集的模型Ⅰ~模型Ⅵ均采用相同的訓練參數,如表3所示。

表3 訓練參數
訓練過程中采用Adam迭代優化算法[16],利用梯度的一階矩估計和二階矩估計動態調整每個參數的學習率,其公式如下:
mt=λ×mt-1+(1-λ)×gt,
(7)
(8)
(9)
(10)
(11)

針對模型Ⅰ~模型Ⅵ在數據集A1,A2,A3下的測試情況,采用兼顧準確率和召回率的平均F1值作為效果評價指標,計算過程如下。
(1)計算模型對數據集每類交通狀態的樣本聚類準確率、召回率與F1值。
(12)
(13)
(14)

(2)計算模型對各個數據集的交通狀態平均分類準確率、召回率及F1值。
(15)
(16)
(17)

基于數據集A1,對前文2.1節的48個自編碼器模型結構進行測試,計算F1值,結果顯示,F1值高于0.9的試驗自編碼器結構為(64×64,64),(64,64),(64,12),(12,5),即輸入數據維度64×64、8個編碼及解碼隱藏層、5維編碼數據;其次,F1值介于0.8~0.9時,模型降維數據均為3維或5維。據此,設計了6個自編碼器備選模型,即模型Ⅰ~模型Ⅵ。


表4 備選模型評價指標值
為進一步驗證AE*對每一類交通狀態的識別效果,基于數據集A3計算分析各類狀態的識別準確率、召回率與F1值,結果如表5所示。可以看出,AE*對暢通、緩行、擁堵的識別準確率為0.87~1.00,對緩行狀態識別準確率最高;AE*對暢通、緩行、擁堵的識別召回率為0.86~1.00,對暢通狀態識別召回率最高。綜合來看,AE*對暢通、緩行、擁堵的F1值為0.89~0.96,對每類交通狀態識別效果均較好。

表5 AE*對數據集A3的評價指標
將本文AE*與k-means相結合的交通狀態識別模型命名為AE*-k-means,同理,將AE*與SVM[17],DNN_Linear[18],Linear[18]相結合的模型分別命名為AE*-SVM,AE*-DNN_Linear,AE*-Linear。利用數據集A1,A2,A3對上述模型進行訓練測試,計算每個數據集的交通狀態識別準確率、召回率以及F1值,結果如圖4~圖6所示。

圖4 AE*結合各分類器的準確率

圖5 AE*結合各分類器的召回率

圖6 AE*結合各分類器的F1值
可以看出,平均F1值優劣排序為AE*-SVM(0.927),AE*-k-means(0.924),AE*-DNN_Linear (0.921),AE*-Linear(0.918),4個模型性能相近,AE*-k-means準確率、召回率處于最優或次優水平,表明AE*對圖像降維效果較好,可為k-means,SVM,Linear,DNN_Linear等提供有效的特征數據。此外,k-means是一種典型的無監督聚類方法,而SVM,Linear,DNN_Linear則為有監督分類方法,與AE*-SVM,AE*-DNN_Linear,AE*-Linear相比,AE*-k-means在保證交通狀態識別準確率和召回率的基礎上,可有效減少人工數據標定、有監督訓練等工作量及運算成本。
為進一步驗證模型對暢通、緩行、擁堵3種交通狀態識別效果,基于數據集A3進行了測試,結果顯示,對于暢通狀態,4個模型F1值為0.93~0.99,效果均較好;對于緩行狀態,AE*-k-means的F1值為0.96,高出其余模型6%~9%;對于擁堵狀態,AE*-k-means和AE*-SVM的F1值為0.89,比其余模型高4%。因此,對于數據集A3,AE*-k-means對3種交通狀態識別效果總體最優。
針對道路交通視頻,提出了一種基于自編碼器與k-means聚類的視頻交通狀態識別方法,可實現無監督條件下的視頻交通狀態快速自動識別。測試顯示,本研究模型交通狀態識別準確率、召回率及F1值均較高,既可有效減少人工數據標定,有效監督訓練等工作量及運算成本,也可以獲得較優的交通狀態識別準確率、召回率和F1值。
本研究方法可有效降低算法復雜度、避免“維數災難”,保證運行效率與識別效果,對于視頻交通狀態識別具有較大的理論和現實意義。由于交通場景復雜多樣,對于自編碼器結構、優化結合自編碼器與分類器、構建海量數據集等方面還需進一步研究。