劉 暢 朱海峰 劉彥斌 溫熙華 韋學武 陳鵬飛
(中電??导瘓F研究院 杭州 310012)
交通數據是交通監測與控制的基礎.但因檢測器覆蓋率低、損壞、傳輸延遲等問題,獲取到的交通數據常常存在缺失,無法滿足配時優化的需求.選用可靠的方法對缺失數據進行補全,能夠提高數據的完整性和可用性,更好地服務于交通管理和決策.
交通數據具有時空相關性,對缺失數據修復即是根據已有數據和缺失數據的時間或空間相關性對缺失數據進行滿足一定可靠度的估計或預測[1].Wei等[2]采用K均值聚類技術,對具有相似交通流模式的路段進行分組.針對每組路段構造了一個基于疊加去噪自編碼的深度學習模型用于預測缺失的數據點.Asif等[3]提出了基于矩陣和張量的方法,通過提取大型路網中常見的交通模式來估計缺失數據的值.Tak等[4]利用改進的K近鄰算法實現了一種基于路段時空相關性的數據插補方法.該方法能夠對一條路段上多個相互關聯的檢測器的缺失數據同時進行修補.吳堅等[5]基于空間自相關分析方法和RBF 神經網絡擬合相結合的方法對交通流殘缺信息進行修補.劉家東[6]通過分析卡口數據缺失的原因,提出了基于時間序列、基于歷史數據以及基于空間位置的旅行時間數據修復方法.楊帥等[7]基于卡口數據針對出行車輛的旅行軌跡不完整現象,建立了一種OWA算子和TOPSIS算法相結合的軌跡重構模型.王龍飛等[8]結合調查點布設方案、路網拓撲結構、車輛行經各調查點的時距關系以及車輛路徑選擇行為,提出了一種基于車牌照信息的丟點軌跡還原方法.高子玉[9]基于監控視頻數據,以車輛換道次數、加速度變化及安全距作為A*算法決策函數重構道路交通流.陳浩然[10]分析了卡口數據的特性,介紹了基于卡口數據的路段車流行程速度的計算方法,并對異常數據和缺失數據進行了剔除和修復.
文中基于電子警察數據提出了一種過車記錄缺失下的瓶頸路段流量分析方法,用于分析路段流量關系,確定造成瓶頸產生的關鍵路段,制定瓶頸控制、區域控制方案.
瓶頸路段指早晚高峰期間易出現過飽和狀態、其車輛排隊長度約等于路段長度的路段或由事故和突發流量引起的、車輛排隊長度約等于路段長度的路段[11].瓶頸若不能得到及時消散,會引起排隊蔓延,造成路網癱瘓[12].瓶頸控制的關鍵是分析瓶頸路段流量的來源和去向,從而對上游限流、下游泄流,達到疏散瓶頸的目的.關聯度作為衡量路段與瓶頸之間關系的指標,為在時間段T內,通過上游路段且進入瓶頸路段的車輛數與瓶頸路段車輛數的比值,或通過下游路段且從瓶頸駛出的車輛數與瓶頸路段車輛數的比值.所以上游路段與瓶頸路段的關聯度為
(1)
式中:b為瓶頸路段;a為瓶頸上游路段;αa,b為路段a與瓶頸b的關聯度;Qin為時間間隔T1內駛入b的總車輛數;Qa,b為在時間間隔T2內從a駛入b的車輛數.T1,T2的參考取值分別為:5,20 min.下游路段與瓶頸的關聯度為
(2)
式中:c為瓶頸下游路段;αb,c為瓶頸路段b與路段c的關聯度;Qout為時間間隔T3內駛出路段b的總車輛數;Qb,c為在時間間隔T4內從b駛入c的車輛數.T3,T4的參考取值分別為:15,5 min.在路口檢測設備完好,能夠獲得每輛車的過車記錄時,可以很容易地通過匹配車牌信息,獲得關聯度.在路口檢測設備缺失,獲取不到通過的車輛數時,無法計算關聯度,判斷上、下游路段與瓶頸路段的關系,故需要利用補全算法通過已知數據推出未知數據,提高數據的完整性.補全步驟為:①根據每輛車的過車記錄,補全車輛的行駛軌跡;②計算每條路段的轉向流量,根據轉向關系補全和修正流量數據;③根據路網的靜態數據和動態數據,存儲每條路段上、下游的路段編號和各個轉向的流量情況,標記數據缺失路段;④在瓶頸被識別后,計算瓶頸上下游與瓶頸路段的關聯度,根據瓶頸出現的位置對路段進行分層.⑤遍歷分層結構,根據數據缺失路段所在的層級、位置及其與其他路段的關系,將缺失的關聯度數據進行補全和修正.
電子警察又稱智能交通違章監攝管理系統,通常安裝在信號控制交叉口,對機動車的違章行為實現全天候監視,捕捉車輛違章圖文信息.每輛通過裝有電子警察的交叉口的車輛都會在數據庫中產生一條過車記錄,至少包含:過車時刻、車牌號碼、交叉口名稱、車道編號、方向等信息.通過對過車記錄進行統計,可以獲得交叉口的總流量,方向流量,轉向流量,過車記錄見表1.

表1 過車記錄
在城市道路中,除信號控制交叉口外還有部分無信號控制交叉口,一般沒有檢測設備,給交通數據分析造成困難.文中所述的缺失,指沒有檢測設備造成的數據缺失,已知數據缺失點的位置和數量.
圖1為過車記錄缺失示意圖, 1和3為信號控制交叉口,各個方向均布設有電子警察,2為無信號控制交叉口沒有視頻檢測設備.車輛依次通過交叉口1,2,3在數據庫中只產生兩條記錄,此時可以根據路段鄰接關系進行過車記錄補全.

圖1 過車記錄缺失示意圖
路段鄰接關系存儲在數據庫中,每條數據至少包含路段編號,車道數量,起始交叉口編號,終點交叉口編號,方向,路段信息見表2.

表2 路段信息
因路段關系明確,且每條過車記錄都清楚地標記了車輛所在車道和方向,若相鄰兩條過車記錄之間只缺失一個點位,可以準確地補出缺失軌跡所在位置,見圖2.

圖2 缺失一個點位補全示意圖
由圖2可知,9個交叉口,其中交叉口5數據缺失,若通過查詢發現車輛的軌跡為交叉口4西向東直行,交叉口2南向北直行,則可以判斷出中間缺失過車記錄為交叉口5西向東左轉;若軌跡為交叉口4西向東直行,交叉口6西向東直行,則可以判斷中間缺失過車記錄為交叉口5西向東直行;若軌跡為交叉口4西向東直行,交叉口8北向南直行,則可以判斷中間缺失過車記錄為交叉口5西向東右轉.在確定車輛位置后,可以根據路段長度估計車輛通過數據缺失交叉口的時刻.設車輛通過交叉口4的時刻為t1,通過交叉口6的時刻為t2,交叉口4和5之間路段長度為L1,交叉口5和6之間路段長度為L2,那么車輛通過交叉口5的時刻為
(3)
若兩條過車記錄之間缺失的點位數大于1,則可能有不止一條可行路徑存在,需要根據最短路算法補全車輛行駛軌跡.考慮到實際路網中因出行者對行程時間和路段長度估計的偏差,不會全部選擇最短路,故采用K最短路算法[13],以路段長度為權值,篩選出k條備選路徑,并按照Logit模型[14]以一定概率進行路徑選擇,補全路徑上缺失點位的過車記錄.算法步驟為
步驟1查詢過去T時段內的所有過車記錄,根據車牌匹配出每輛車的行駛軌跡,并按時間先后順序存儲過車記錄.
步驟2對每輛車,參考路段信息依次檢查相鄰的兩條過車記錄是否屬于有鄰接關系的路段.若前一條記錄的終點交叉口編號和后一條記錄的起始交叉口編號相同,則判斷路段相鄰,數據正常;反之,則判斷中間有點位缺失.
步驟3根據路段鄰接關系確定缺失點位個數.若缺失的點位數為1,按照路段鄰接關系進行過車記錄補全;若缺失點位數大于1,按照K最短路算法和Logit模型在路徑選擇后補全過車記錄.
在過車記錄補全完成后,數據得到了一定程度的恢復,但受車牌識別率限制,部分車輛在通過交叉口時留下了過車記錄,但沒有被識別出車牌號[15],見表3.
過車記錄補全只能填補識別到車牌的車輛軌跡,而無法處理不能識別到車牌的數據,所以補全的流量q′通常會小于其真實值q,因此,需要進一步根據路段轉向關系對流量數據進行修正,見圖3.

表3 沒有識別出車牌的過車記錄

圖3 流量關系示意圖
若交叉口檢測器完全,由圖3可知,流量應為
qh1+qa2+qf3=qb
(4)

(5)
(6)
同理,若式(4)中有三個流量是缺失的,也按比例進行修正.
若在過車記錄補全之后,仍然有部分路段沒有流量,由圖3的轉向關系可知,利用真實流量數據q,補全的流量數據q′,推導出二次補全的流量數據q″.
至此,利用空間信息對補全的過車記錄統計得到的流量進行修正,同時對過車記錄無法補全的部分,進行流量補全.
每條路計算并存儲見圖4.

圖4 路段數據存儲結構
圖5為路段數據信息,以圖5中路段b為例,上游共3條路段,右轉路段編號a1,轉向流量Qa1;直行路段編號a2,轉向流量Qa2;左轉路段編號a3,轉向流量Qa3.下游共3條路段,右轉路段編號c1,轉向流量Qc1;直行路段編號c2,轉向流量Qc2;左轉路段編號c3,轉向流量Qc3.

圖5 路段數據信息
瓶頸被識別后,匹配車牌,按照式(1)~(2)計算上、下游路段和瓶頸路段的關聯度,并根據瓶頸位置和路段之間的連接關系進分層.瓶頸路段為第0層,與之直接相連的上游或下游路段為第一層,依次類推.每一層的分支總數為上一層的路段總數.存儲完成后得到兩個樹形結構,一個上游,一個下游,見圖6.

圖6 路段分層結構
在上游分層過程中標記每條路段的瓶頸相關轉向.上游路段相關轉向是指通過此轉向駛離上游路段的車輛最終會進入瓶頸路段.因路網的結構特點,一條路段可能會同時出現在不同層,同時有不止一個轉向是瓶頸相關轉向,此時只記錄其第一次出現的位置和轉向.在下游分層過程中,每條路段同樣只記錄一次,但因所有轉向都是相關轉向,所以不需要對此進行標記.下游路段相關轉向是指從瓶頸路段駛出的車輛最終會經過該轉向駛離下游路段.
圖7為相關轉向關系,相關以上游為例,圖7中路段編號A-B,A為路段所在層級,B為路段在其層級中的序號.1-1即為1層1號路段.在圖中路段1-1的相關轉向為左轉,1-2的相關轉向為直行,1-3的相關轉向為右轉.

圖7 相關轉向關系
關聯度通過過車記錄匹配得到,過車記錄中包含真實的記錄和補全的記錄.由真實記錄計算出的關聯度記為δ,由補全的記錄計算出的關聯度記為δ′.通過路段分層結構可以知道,父路段的關聯度等于其所有子路段關聯度的和.圖8為路段關聯度示意圖,對路段a2有:
δa2=δa4+δa5+δa6
(7)
δa2=δa0-δa1-δa3
(8)

圖8 路段關聯度示意圖
因此可以流量修正的原理,對δ′進行修正.
在某路段關聯度缺失,但其上下游關聯度完整的情況下,可以根據路段分層結構用已知關聯度(包括真實關聯度和對補全數據修正后的關聯度),根據式(7)~(8)推導出缺失關聯度.
關聯度修正和補全步驟見圖9.

圖9 用已知關聯度補全未知關聯度
4.5.1上游路段關系及關聯度推導
父路段和子路段同屬一個交叉口,父路段為交叉口的出口路段,子路段為流量可能流入父路段的交叉口入口路段.若父路段屬于第f層,那么子路段屬于第f+1層.圖10為上游路段關系示意圖,路段a1為父路段,路段a2,a3,a4為子路段.

圖10 上游路段關系示意圖
設a為瓶頸路段的上游路段(子路段);b為瓶頸路段(父路段);qb,in為瓶頸路段流入流量;qa,out,i為路段a出口轉向i的流量.按照路段存儲結構,從第一層開始,計算關聯度δa,1:
(9)
更一般地,從第二層開始路段關聯度為
(10)
依次遞推.從第二層開始,路段的關聯度可以由本路段出口相關轉向的流量,父路段出口總流量,父路段關聯度,三個參數計算得到.
4.5.2下游路段關系及關聯度推導
父路段和子路段同屬一個交叉口,父路段為交叉口的進口路段,子路段為從父路段出來的車輛可能駛向的交叉口出口路段.若父路段屬于第f層,那么子路段屬于第f+1層.圖11為下游路段關系示意圖,a1為父路段,a2,a3,a4為子路段.

圖11 下游路段關系示意圖
設c為下游路段,b為瓶頸路段,qb,out為瓶頸路段流出流量,qc,in,i為路段入口轉向i的流量.按照路段存儲結構,從第一層開始,計算關聯度δc,i:
(11)
從第二層開始路段關聯度:
(12)
從第二層開始,路段的關聯度可以由父路段出口相關轉向的流量,父路段出口總流量,父路段關聯度,三個參數計算得到.
在4.5.1和4.5.2中,需要用父路段關聯度計算當前路段關聯度,經過多層累積會存在誤差增大的情況,因此可用4.3節中可信度較高的關聯度來替換父路段的關聯度,以減小累積誤差.在所有路段的關聯度計算完成后,與4.3,4.4計算得到關聯度進行對比.若根據4.5未給出關聯度值,以4.4計算結果為準;若4.3與4.4均給出計算結果,用它們的均值作為關聯度的最終結果.
采用浙江省某市的路網數據結合VISSIM交通仿真軟件進行算法驗證.路網包含57個交叉口,其中信號控制交叉口34個,無信號控制交叉口23個.有過車記錄的交叉口26個,無過車記錄的交叉口31個.圖12為路網衛星圖,圖13為路網簡化的拓撲圖,有編號的交叉口為信號控制交叉口,黑色圓點覆蓋的交叉口為有過車記錄的交叉口,圓點上的數字為交叉口編號.

圖12 路網衛星圖

圖13 路網數據覆蓋情況
在算法運行前,建立基礎數據表tb_cross存儲路口信息,見表4.tb_road存儲路段信息,見表2.tb_lane存儲車道信息,見表5.

表4 路口信息

表5 車道信息
算法每5 min運行一次,讀取30 min之前到當前時刻的所有過車記錄,進行過車數據填補和流量填補,并把計算結果寫入數據庫.在49號交叉口西向東的路段被識別為瓶頸路段后,開始進行路段分層.上、下游分層結果見圖14.其中箭頭方向表示車流方向,數字表示路段在分層結構中所在層級.瓶頸路段為第0層,與之直接相連的路段為第1層,依次類推.因路網較大只展示到第3層.

圖14 上、下游路段分層
以上游為例,分層結構見圖15.

圖15 上游路段關系
其中路段與路口的關系見表6.

表6 路段與路口關系
為驗證數據補算法的有效性,做兩組實驗進行對比.第一組實驗為在仿真條件下,沒有數據缺失,所有交叉口均能采集到數據,直接計算出各個路段與瓶頸路段的關聯度.第二組實驗在仿真條件下,有數據缺失,不采集無信號控制交叉口的數據,利用數據補全算法補全缺失關聯度.下面將第一組的結果稱為真實值,將第二組的結果稱為計算值.數據結果見圖16,結果對比見表7.

圖16 數據結果

表7 結果對比
由表7可知,數據補全算法能夠有效地對缺失關聯度進行補全.
為分析瓶頸路段流量的來源和去向,考慮到實際應用中交叉口視頻檢測設備存在覆蓋率低、錯檢、漏檢等情況,導致數據缺失,提出了一種過車記錄缺失下的路段關聯度計算方法.通過過車記錄補全,流量補全和修正,最終達到關聯度補全和修正的目的.算例分析表明,補全算法能夠有效地提高數據完整性.