劉 暢 朱海峰 劉彥斌 溫熙華 韋學(xué)武 陳鵬飛
(中電海康集團研究院 杭州 310012)
交通數(shù)據(jù)是交通監(jiān)測與控制的基礎(chǔ).但因檢測器覆蓋率低、損壞、傳輸延遲等問題,獲取到的交通數(shù)據(jù)常常存在缺失,無法滿足配時優(yōu)化的需求.選用可靠的方法對缺失數(shù)據(jù)進行補全,能夠提高數(shù)據(jù)的完整性和可用性,更好地服務(wù)于交通管理和決策.
交通數(shù)據(jù)具有時空相關(guān)性,對缺失數(shù)據(jù)修復(fù)即是根據(jù)已有數(shù)據(jù)和缺失數(shù)據(jù)的時間或空間相關(guān)性對缺失數(shù)據(jù)進行滿足一定可靠度的估計或預(yù)測[1].Wei等[2]采用K均值聚類技術(shù),對具有相似交通流模式的路段進行分組.針對每組路段構(gòu)造了一個基于疊加去噪自編碼的深度學(xué)習(xí)模型用于預(yù)測缺失的數(shù)據(jù)點.Asif等[3]提出了基于矩陣和張量的方法,通過提取大型路網(wǎng)中常見的交通模式來估計缺失數(shù)據(jù)的值.Tak等[4]利用改進的K近鄰算法實現(xiàn)了一種基于路段時空相關(guān)性的數(shù)據(jù)插補方法.該方法能夠?qū)σ粭l路段上多個相互關(guān)聯(lián)的檢測器的缺失數(shù)據(jù)同時進行修補.吳堅等[5]基于空間自相關(guān)分析方法和RBF 神經(jīng)網(wǎng)絡(luò)擬合相結(jié)合的方法對交通流殘缺信息進行修補.劉家東[6]通過分析卡口數(shù)據(jù)缺失的原因,提出了基于時間序列、基于歷史數(shù)據(jù)以及基于空間位置的旅行時間數(shù)據(jù)修復(fù)方法.楊帥等[7]基于卡口數(shù)據(jù)針對出行車輛的旅行軌跡不完整現(xiàn)象,建立了一種OWA算子和TOPSIS算法相結(jié)合的軌跡重構(gòu)模型.王龍飛等[8]結(jié)合調(diào)查點布設(shè)方案、路網(wǎng)拓?fù)浣Y(jié)構(gòu)、車輛行經(jīng)各調(diào)查點的時距關(guān)系以及車輛路徑選擇行為,提出了一種基于車牌照信息的丟點軌跡還原方法.高子玉[9]基于監(jiān)控視頻數(shù)據(jù),以車輛換道次數(shù)、加速度變化及安全距作為A*算法決策函數(shù)重構(gòu)道路交通流.陳浩然[10]分析了卡口數(shù)據(jù)的特性,介紹了基于卡口數(shù)據(jù)的路段車流行程速度的計算方法,并對異常數(shù)據(jù)和缺失數(shù)據(jù)進行了剔除和修復(fù).
文中基于電子警察數(shù)據(jù)提出了一種過車記錄缺失下的瓶頸路段流量分析方法,用于分析路段流量關(guān)系,確定造成瓶頸產(chǎn)生的關(guān)鍵路段,制定瓶頸控制、區(qū)域控制方案.
瓶頸路段指早晚高峰期間易出現(xiàn)過飽和狀態(tài)、其車輛排隊長度約等于路段長度的路段或由事故和突發(fā)流量引起的、車輛排隊長度約等于路段長度的路段[11].瓶頸若不能得到及時消散,會引起排隊蔓延,造成路網(wǎng)癱瘓[12].瓶頸控制的關(guān)鍵是分析瓶頸路段流量的來源和去向,從而對上游限流、下游泄流,達(dá)到疏散瓶頸的目的.關(guān)聯(lián)度作為衡量路段與瓶頸之間關(guān)系的指標(biāo),為在時間段T內(nèi),通過上游路段且進入瓶頸路段的車輛數(shù)與瓶頸路段車輛數(shù)的比值,或通過下游路段且從瓶頸駛出的車輛數(shù)與瓶頸路段車輛數(shù)的比值.所以上游路段與瓶頸路段的關(guān)聯(lián)度為
(1)
式中:b為瓶頸路段;a為瓶頸上游路段;αa,b為路段a與瓶頸b的關(guān)聯(lián)度;Qin為時間間隔T1內(nèi)駛?cè)隻的總車輛數(shù);Qa,b為在時間間隔T2內(nèi)從a駛?cè)隻的車輛數(shù).T1,T2的參考取值分別為:5,20 min.下游路段與瓶頸的關(guān)聯(lián)度為
(2)
式中:c為瓶頸下游路段;αb,c為瓶頸路段b與路段c的關(guān)聯(lián)度;Qout為時間間隔T3內(nèi)駛出路段b的總車輛數(shù);Qb,c為在時間間隔T4內(nèi)從b駛?cè)隿的車輛數(shù).T3,T4的參考取值分別為:15,5 min.在路口檢測設(shè)備完好,能夠獲得每輛車的過車記錄時,可以很容易地通過匹配車牌信息,獲得關(guān)聯(lián)度.在路口檢測設(shè)備缺失,獲取不到通過的車輛數(shù)時,無法計算關(guān)聯(lián)度,判斷上、下游路段與瓶頸路段的關(guān)系,故需要利用補全算法通過已知數(shù)據(jù)推出未知數(shù)據(jù),提高數(shù)據(jù)的完整性.補全步驟為:①根據(jù)每輛車的過車記錄,補全車輛的行駛軌跡;②計算每條路段的轉(zhuǎn)向流量,根據(jù)轉(zhuǎn)向關(guān)系補全和修正流量數(shù)據(jù);③根據(jù)路網(wǎng)的靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù),存儲每條路段上、下游的路段編號和各個轉(zhuǎn)向的流量情況,標(biāo)記數(shù)據(jù)缺失路段;④在瓶頸被識別后,計算瓶頸上下游與瓶頸路段的關(guān)聯(lián)度,根據(jù)瓶頸出現(xiàn)的位置對路段進行分層.⑤遍歷分層結(jié)構(gòu),根據(jù)數(shù)據(jù)缺失路段所在的層級、位置及其與其他路段的關(guān)系,將缺失的關(guān)聯(lián)度數(shù)據(jù)進行補全和修正.
電子警察又稱智能交通違章監(jiān)攝管理系統(tǒng),通常安裝在信號控制交叉口,對機動車的違章行為實現(xiàn)全天候監(jiān)視,捕捉車輛違章圖文信息.每輛通過裝有電子警察的交叉口的車輛都會在數(shù)據(jù)庫中產(chǎn)生一條過車記錄,至少包含:過車時刻、車牌號碼、交叉口名稱、車道編號、方向等信息.通過對過車記錄進行統(tǒng)計,可以獲得交叉口的總流量,方向流量,轉(zhuǎn)向流量,過車記錄見表1.
表1 過車記錄
在城市道路中,除信號控制交叉口外還有部分無信號控制交叉口,一般沒有檢測設(shè)備,給交通數(shù)據(jù)分析造成困難.文中所述的缺失,指沒有檢測設(shè)備造成的數(shù)據(jù)缺失,已知數(shù)據(jù)缺失點的位置和數(shù)量.
圖1為過車記錄缺失示意圖, 1和3為信號控制交叉口,各個方向均布設(shè)有電子警察,2為無信號控制交叉口沒有視頻檢測設(shè)備.車輛依次通過交叉口1,2,3在數(shù)據(jù)庫中只產(chǎn)生兩條記錄,此時可以根據(jù)路段鄰接關(guān)系進行過車記錄補全.
圖1 過車記錄缺失示意圖
路段鄰接關(guān)系存儲在數(shù)據(jù)庫中,每條數(shù)據(jù)至少包含路段編號,車道數(shù)量,起始交叉口編號,終點交叉口編號,方向,路段信息見表2.
表2 路段信息
因路段關(guān)系明確,且每條過車記錄都清楚地標(biāo)記了車輛所在車道和方向,若相鄰兩條過車記錄之間只缺失一個點位,可以準(zhǔn)確地補出缺失軌跡所在位置,見圖2.
圖2 缺失一個點位補全示意圖
由圖2可知,9個交叉口,其中交叉口5數(shù)據(jù)缺失,若通過查詢發(fā)現(xiàn)車輛的軌跡為交叉口4西向東直行,交叉口2南向北直行,則可以判斷出中間缺失過車記錄為交叉口5西向東左轉(zhuǎn);若軌跡為交叉口4西向東直行,交叉口6西向東直行,則可以判斷中間缺失過車記錄為交叉口5西向東直行;若軌跡為交叉口4西向東直行,交叉口8北向南直行,則可以判斷中間缺失過車記錄為交叉口5西向東右轉(zhuǎn).在確定車輛位置后,可以根據(jù)路段長度估計車輛通過數(shù)據(jù)缺失交叉口的時刻.設(shè)車輛通過交叉口4的時刻為t1,通過交叉口6的時刻為t2,交叉口4和5之間路段長度為L1,交叉口5和6之間路段長度為L2,那么車輛通過交叉口5的時刻為
(3)
若兩條過車記錄之間缺失的點位數(shù)大于1,則可能有不止一條可行路徑存在,需要根據(jù)最短路算法補全車輛行駛軌跡.考慮到實際路網(wǎng)中因出行者對行程時間和路段長度估計的偏差,不會全部選擇最短路,故采用K最短路算法[13],以路段長度為權(quán)值,篩選出k條備選路徑,并按照Logit模型[14]以一定概率進行路徑選擇,補全路徑上缺失點位的過車記錄.算法步驟為
步驟1查詢過去T時段內(nèi)的所有過車記錄,根據(jù)車牌匹配出每輛車的行駛軌跡,并按時間先后順序存儲過車記錄.
步驟2對每輛車,參考路段信息依次檢查相鄰的兩條過車記錄是否屬于有鄰接關(guān)系的路段.若前一條記錄的終點交叉口編號和后一條記錄的起始交叉口編號相同,則判斷路段相鄰,數(shù)據(jù)正常;反之,則判斷中間有點位缺失.
步驟3根據(jù)路段鄰接關(guān)系確定缺失點位個數(shù).若缺失的點位數(shù)為1,按照路段鄰接關(guān)系進行過車記錄補全;若缺失點位數(shù)大于1,按照K最短路算法和Logit模型在路徑選擇后補全過車記錄.
在過車記錄補全完成后,數(shù)據(jù)得到了一定程度的恢復(fù),但受車牌識別率限制,部分車輛在通過交叉口時留下了過車記錄,但沒有被識別出車牌號[15],見表3.
過車記錄補全只能填補識別到車牌的車輛軌跡,而無法處理不能識別到車牌的數(shù)據(jù),所以補全的流量q′通常會小于其真實值q,因此,需要進一步根據(jù)路段轉(zhuǎn)向關(guān)系對流量數(shù)據(jù)進行修正,見圖3.
表3 沒有識別出車牌的過車記錄
圖3 流量關(guān)系示意圖
若交叉口檢測器完全,由圖3可知,流量應(yīng)為
qh1+qa2+qf3=qb
(4)
(5)
(6)
同理,若式(4)中有三個流量是缺失的,也按比例進行修正.
若在過車記錄補全之后,仍然有部分路段沒有流量,由圖3的轉(zhuǎn)向關(guān)系可知,利用真實流量數(shù)據(jù)q,補全的流量數(shù)據(jù)q′,推導(dǎo)出二次補全的流量數(shù)據(jù)q″.
至此,利用空間信息對補全的過車記錄統(tǒng)計得到的流量進行修正,同時對過車記錄無法補全的部分,進行流量補全.
每條路計算并存儲見圖4.
圖4 路段數(shù)據(jù)存儲結(jié)構(gòu)
圖5為路段數(shù)據(jù)信息,以圖5中路段b為例,上游共3條路段,右轉(zhuǎn)路段編號a1,轉(zhuǎn)向流量Qa1;直行路段編號a2,轉(zhuǎn)向流量Qa2;左轉(zhuǎn)路段編號a3,轉(zhuǎn)向流量Qa3.下游共3條路段,右轉(zhuǎn)路段編號c1,轉(zhuǎn)向流量Qc1;直行路段編號c2,轉(zhuǎn)向流量Qc2;左轉(zhuǎn)路段編號c3,轉(zhuǎn)向流量Qc3.
圖5 路段數(shù)據(jù)信息
瓶頸被識別后,匹配車牌,按照式(1)~(2)計算上、下游路段和瓶頸路段的關(guān)聯(lián)度,并根據(jù)瓶頸位置和路段之間的連接關(guān)系進分層.瓶頸路段為第0層,與之直接相連的上游或下游路段為第一層,依次類推.每一層的分支總數(shù)為上一層的路段總數(shù).存儲完成后得到兩個樹形結(jié)構(gòu),一個上游,一個下游,見圖6.
圖6 路段分層結(jié)構(gòu)
在上游分層過程中標(biāo)記每條路段的瓶頸相關(guān)轉(zhuǎn)向.上游路段相關(guān)轉(zhuǎn)向是指通過此轉(zhuǎn)向駛離上游路段的車輛最終會進入瓶頸路段.因路網(wǎng)的結(jié)構(gòu)特點,一條路段可能會同時出現(xiàn)在不同層,同時有不止一個轉(zhuǎn)向是瓶頸相關(guān)轉(zhuǎn)向,此時只記錄其第一次出現(xiàn)的位置和轉(zhuǎn)向.在下游分層過程中,每條路段同樣只記錄一次,但因所有轉(zhuǎn)向都是相關(guān)轉(zhuǎn)向,所以不需要對此進行標(biāo)記.下游路段相關(guān)轉(zhuǎn)向是指從瓶頸路段駛出的車輛最終會經(jīng)過該轉(zhuǎn)向駛離下游路段.
圖7為相關(guān)轉(zhuǎn)向關(guān)系,相關(guān)以上游為例,圖7中路段編號A-B,A為路段所在層級,B為路段在其層級中的序號.1-1即為1層1號路段.在圖中路段1-1的相關(guān)轉(zhuǎn)向為左轉(zhuǎn),1-2的相關(guān)轉(zhuǎn)向為直行,1-3的相關(guān)轉(zhuǎn)向為右轉(zhuǎn).
圖7 相關(guān)轉(zhuǎn)向關(guān)系
關(guān)聯(lián)度通過過車記錄匹配得到,過車記錄中包含真實的記錄和補全的記錄.由真實記錄計算出的關(guān)聯(lián)度記為δ,由補全的記錄計算出的關(guān)聯(lián)度記為δ′.通過路段分層結(jié)構(gòu)可以知道,父路段的關(guān)聯(lián)度等于其所有子路段關(guān)聯(lián)度的和.圖8為路段關(guān)聯(lián)度示意圖,對路段a2有:
δa2=δa4+δa5+δa6
(7)
δa2=δa0-δa1-δa3
(8)
圖8 路段關(guān)聯(lián)度示意圖
因此可以流量修正的原理,對δ′進行修正.
在某路段關(guān)聯(lián)度缺失,但其上下游關(guān)聯(lián)度完整的情況下,可以根據(jù)路段分層結(jié)構(gòu)用已知關(guān)聯(lián)度(包括真實關(guān)聯(lián)度和對補全數(shù)據(jù)修正后的關(guān)聯(lián)度),根據(jù)式(7)~(8)推導(dǎo)出缺失關(guān)聯(lián)度.
關(guān)聯(lián)度修正和補全步驟見圖9.
圖9 用已知關(guān)聯(lián)度補全未知關(guān)聯(lián)度
4.5.1上游路段關(guān)系及關(guān)聯(lián)度推導(dǎo)
父路段和子路段同屬一個交叉口,父路段為交叉口的出口路段,子路段為流量可能流入父路段的交叉口入口路段.若父路段屬于第f層,那么子路段屬于第f+1層.圖10為上游路段關(guān)系示意圖,路段a1為父路段,路段a2,a3,a4為子路段.
圖10 上游路段關(guān)系示意圖
設(shè)a為瓶頸路段的上游路段(子路段);b為瓶頸路段(父路段);qb,in為瓶頸路段流入流量;qa,out,i為路段a出口轉(zhuǎn)向i的流量.按照路段存儲結(jié)構(gòu),從第一層開始,計算關(guān)聯(lián)度δa,1:
(9)
更一般地,從第二層開始路段關(guān)聯(lián)度為
(10)
依次遞推.從第二層開始,路段的關(guān)聯(lián)度可以由本路段出口相關(guān)轉(zhuǎn)向的流量,父路段出口總流量,父路段關(guān)聯(lián)度,三個參數(shù)計算得到.
4.5.2下游路段關(guān)系及關(guān)聯(lián)度推導(dǎo)
父路段和子路段同屬一個交叉口,父路段為交叉口的進口路段,子路段為從父路段出來的車輛可能駛向的交叉口出口路段.若父路段屬于第f層,那么子路段屬于第f+1層.圖11為下游路段關(guān)系示意圖,a1為父路段,a2,a3,a4為子路段.
圖11 下游路段關(guān)系示意圖
設(shè)c為下游路段,b為瓶頸路段,qb,out為瓶頸路段流出流量,qc,in,i為路段入口轉(zhuǎn)向i的流量.按照路段存儲結(jié)構(gòu),從第一層開始,計算關(guān)聯(lián)度δc,i:
(11)
從第二層開始路段關(guān)聯(lián)度:
(12)
從第二層開始,路段的關(guān)聯(lián)度可以由父路段出口相關(guān)轉(zhuǎn)向的流量,父路段出口總流量,父路段關(guān)聯(lián)度,三個參數(shù)計算得到.
在4.5.1和4.5.2中,需要用父路段關(guān)聯(lián)度計算當(dāng)前路段關(guān)聯(lián)度,經(jīng)過多層累積會存在誤差增大的情況,因此可用4.3節(jié)中可信度較高的關(guān)聯(lián)度來替換父路段的關(guān)聯(lián)度,以減小累積誤差.在所有路段的關(guān)聯(lián)度計算完成后,與4.3,4.4計算得到關(guān)聯(lián)度進行對比.若根據(jù)4.5未給出關(guān)聯(lián)度值,以4.4計算結(jié)果為準(zhǔn);若4.3與4.4均給出計算結(jié)果,用它們的均值作為關(guān)聯(lián)度的最終結(jié)果.
采用浙江省某市的路網(wǎng)數(shù)據(jù)結(jié)合VISSIM交通仿真軟件進行算法驗證.路網(wǎng)包含57個交叉口,其中信號控制交叉口34個,無信號控制交叉口23個.有過車記錄的交叉口26個,無過車記錄的交叉口31個.圖12為路網(wǎng)衛(wèi)星圖,圖13為路網(wǎng)簡化的拓?fù)鋱D,有編號的交叉口為信號控制交叉口,黑色圓點覆蓋的交叉口為有過車記錄的交叉口,圓點上的數(shù)字為交叉口編號.
圖12 路網(wǎng)衛(wèi)星圖
圖13 路網(wǎng)數(shù)據(jù)覆蓋情況
在算法運行前,建立基礎(chǔ)數(shù)據(jù)表tb_cross存儲路口信息,見表4.tb_road存儲路段信息,見表2.tb_lane存儲車道信息,見表5.
表4 路口信息
表5 車道信息
算法每5 min運行一次,讀取30 min之前到當(dāng)前時刻的所有過車記錄,進行過車數(shù)據(jù)填補和流量填補,并把計算結(jié)果寫入數(shù)據(jù)庫.在49號交叉口西向東的路段被識別為瓶頸路段后,開始進行路段分層.上、下游分層結(jié)果見圖14.其中箭頭方向表示車流方向,數(shù)字表示路段在分層結(jié)構(gòu)中所在層級.瓶頸路段為第0層,與之直接相連的路段為第1層,依次類推.因路網(wǎng)較大只展示到第3層.
圖14 上、下游路段分層
以上游為例,分層結(jié)構(gòu)見圖15.
圖15 上游路段關(guān)系
其中路段與路口的關(guān)系見表6.
表6 路段與路口關(guān)系
為驗證數(shù)據(jù)補算法的有效性,做兩組實驗進行對比.第一組實驗為在仿真條件下,沒有數(shù)據(jù)缺失,所有交叉口均能采集到數(shù)據(jù),直接計算出各個路段與瓶頸路段的關(guān)聯(lián)度.第二組實驗在仿真條件下,有數(shù)據(jù)缺失,不采集無信號控制交叉口的數(shù)據(jù),利用數(shù)據(jù)補全算法補全缺失關(guān)聯(lián)度.下面將第一組的結(jié)果稱為真實值,將第二組的結(jié)果稱為計算值.數(shù)據(jù)結(jié)果見圖16,結(jié)果對比見表7.
圖16 數(shù)據(jù)結(jié)果
表7 結(jié)果對比
由表7可知,數(shù)據(jù)補全算法能夠有效地對缺失關(guān)聯(lián)度進行補全.
為分析瓶頸路段流量的來源和去向,考慮到實際應(yīng)用中交叉口視頻檢測設(shè)備存在覆蓋率低、錯檢、漏檢等情況,導(dǎo)致數(shù)據(jù)缺失,提出了一種過車記錄缺失下的路段關(guān)聯(lián)度計算方法.通過過車記錄補全,流量補全和修正,最終達(dá)到關(guān)聯(lián)度補全和修正的目的.算例分析表明,補全算法能夠有效地提高數(shù)據(jù)完整性.