閆江南,楊 帥,崔育帥
(天津工業大學 計算機科學與軟件學院,天津 300387)
(1)研究背景及意義
日益突出的交通問題,使得我們越來越意識到優化調度的方法存在滯后的毛病,除卻提高公交出行比例外,思考如何提高實時數據處理是極為重要的。因此一款智能交通系統的設計變得十分有意義,我們通過采集各個路段不同公交線路,車站站牌的人流量,加以不同時間段,季節分析,可以得到多維度的測量數據,利用系統去進行統計分析,從而對客流調度、乘客行為預測、商圈規劃都邁出了戰略性的一步。
通過建立正確的模型來分析客流特征,并用所嵌入的高清攝像頭進行人群信息采集,實時地進行數據回傳,利用改進的算法可以大幅提高人數統計的精確度,從而滿足城市公交的智能化發展。
(2)國內外研究情況
1. 國內情況
國內的統計情況可能略顯單薄:一是人工跟車法,二是駐點式目測客流調查法[1]。這兩者無疑都消耗了巨大的人力、財力,而且還有可能造成統計上的不準確,數據上的偏差等等,具有強烈干擾性。
2. 國外情況
關于西方國家常用的測重技術、紅外技術、圖像技術,以下是一些闡述:
①車輛測重計數器:空氣彈簧的氣路上安裝有壓力傳感器[2],通過檢測氣囊的壓縮程度,對比支撐截面與溫度補償,傾斜補償等等數據換算成重量,再進行計數。
②紅外線客流計數器:利用紅外光幕通過發射頭向區域外發散定波波長的紅外線,之后用傳感器收集反射回來的光線,從而可以識別上下車的方向,達到統計人數目的。
③3D傳感客流計數器:圖像識別與前兩種相比要顯得較為高端一些,同樣是通過傳感器檢測,不同的是掃描人體輪廓進而得出立體的人體數據,再參照立體反射面的駝峰形狀,進而用單片機計算,從而判斷出人數。
(3)總結比較
傳統的采集方法及弊端:
調查周期,后期維護,實時程度這每一項都是人工調查的硬傷,如果再加上天氣等不可控因素,就會導致調度人員無法做出準確的反饋。而對于壓力側重計數這種方式,有著不能判斷上下車方向、多人情況偏差、可維護性差的缺陷。另外由于紅外設備的造價高昂,并且軍民一體可能引發技術敏感問題,所以導致其在具體應用上受到很大限制。
由此可知,傳統的采集方法很可能無法滿足當下的管理需求,如果使客流信息化,可統計性是亟待解決的問題。因而在本系統中運用了車載設備來解決這個難點。
本系統將通過在公交車前后門的上部嵌入攝像頭,利用傳感器檢測從乘客身上反射回來的光線以及對乘客進行一系列操作,包括形體捕捉和特征提取[3],從而識別并統計乘客上下車方向及人數。這種方法可以有效地規避環境光線,溫度等影響,對于識別多人,同反向,滯留等狀態具有較強的干擾性與極高的識別度。
本系統的主要功能是基于移動端出行記錄數據與攝像頭定點數據的反饋采集,數據庫的存儲策略主要分兩條信息網,一是以個人發散的軌跡網,二是以站臺反饋的數據網,人群與站臺屬于交界點的兩個直觀審查元素,又相互耦合,所以選擇一條出行記錄作為記錄分子:

圖1 記錄分子所記錄的內容Fig.1 Recorded contents of molecule
記錄分子的數據來源于移動端出行的記錄,系統通過對用戶的上車點與下車點進行監控[4],每當用戶發出一條導航信息或者查看到站信息的時候,會對當前用戶基礎信息、地理信息、站臺及線路等字段進行時間戳標記,方便對區域斷面數據做出整理統計。其主體功能由三部分組成:
(1)到站提醒
所謂移動導航,目前只有兩種:GPS定位和基站定位[5]。GPS定位是通過 GPS衛星鎖定手機的GPS芯片,這是最準確的定位方法,誤差理論上可以達到一米的距離。同時基本上所有的軟件都是可以用GPS導航的。而基站定位則是通過手機的移動數據獲取周圍的基站從而鎖定乘客的位置。這個誤差就很大,所以不能用這個導航。本系統中,把每一條公交線路抽象成一條線,線上的每個節點當作公交站臺。當乘客所在位置快到公交站臺的時候,當作一個閾值范圍,并以手機廣播(broadcast)的方式進行消息推送。
當本系統在開發需要和服務器交互的應用程序時,基本上都需要獲取服務器端的數據,一般來說有兩種方法:第一種是客戶端使用 Pull(拉)的方式,也就是隔一段時間就去服務器上獲取一下信息,看是否有更新的信息出現。第二種就是服務器使用Push(推送)的方式,如果服務器端收到新信息,則把最新的信息Push到客戶端上。這樣,客戶端就能自動的接收到消息。
(2)地圖導航與POI檢索
對用戶而言,POI的存在,能快速找到目的地從而便捷出行。實現區域檢索大致分為以下幾個步驟:
①根據點的坐標信息,分配到全國的區縣行政區劃中去;
②對于每個行政區劃中的點數據,以行政區劃多邊形和點集為對象,建立Voronoi圖;
③記錄 Voronoi圖面積最小對應的點,并認定其重要性最低;
④最后刪除重要性最低的點,再次建立 Voronoi圖[6]。
這樣就可以理解為將所有的點要素數據做一個重要性框選與排序。與此相比,導航只需要獲取到起點和終點的經緯度信息,然后分別把起點和終點當做這條導航路線的兩個節點,并把這兩個節點加入到一個節點集合中去,然后再把該集合傳入到一個路線規劃監聽接口類中,該接口類會根據內部封裝的路徑算法,然后再把各個途徑各個節點加入到該集合中。如是再三,就可以確定每一個點的重要性信息。其構造過程分為三個步驟:
①發起算路:算路設置起、終點,算路偏好,是否模擬導航等參數,然后在回調函數中設置跳轉至誘導。
②開始導航:創建誘導View,并接收回調事件。在activity生命周期內調用誘導BNRouteGuiderManager對應的生命周期函數。核心代碼為:
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);createHandler();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {}
View view = BNRouteGuideManager.getInstance().onCreate(this, new OnNavigationListener() {
@Override
public void onNaviGuideEnd() {
finish();
}
@Override
public void notifyOtherAction(int action-
Type, int arg1, int arg2, Object obj) {
}
});
③直至最后設置播報模式即可成功規劃線路。(3)擁擠度呈現
該功能基于乘客起始點的地理位置,對周圍不同范圍內的公交線路進行信息回傳,隨信號點位置大小排列,擁擠度利用傳統的紅綠黃三色對用戶進行必要提示。
客流統計是系統實時采集數據的根本,其來源于車載攝像頭的實時分析,通過計算每個站臺視頻畫面中人數的流量從而對車上擁擠度進行準確判斷。而精確度的關鍵在于攝像頭所識別出的人數是否與實際匹配,其度量需要經過三個步驟:目標檢測、目標跟蹤、乘客行為分析。
目標檢測是計算機視覺處理極其重要的一環,其焦點置于所選目標的位置及劃定范圍,其基本過程與模式識別極為相似,包括了圖像數據、預處理、特征提取、分類器訓練、目標檢測五部分[7],其中的特征提取與分類器訓練都是影響最后準確度的主要因素,因此如何讓算法得到提升變得極為重要。
以公交車為例,在前后車門各安裝一組攝像頭,針對人體的頭部和肩部進行特征提取,因為軀干部分往往容易在人流密集時期被遮擋,所以將乘客明顯特征作為目標正樣本,這樣會降低膚色、光照、噪聲以及陰影的影響。
為了獲得真正意義上的邊緣前景,增強其干擾性,對當前幀的邊緣圖像與背景的邊緣圖像進行了做差計算。之后利用圓檢測進行輪廓識別,有效的進行了目標檢測,相比其他方法更易于操作,識別率高,為客流統計系統提供了強有力的依據。
一旦記錄分子有了數據基礎,我們就可以對結果進行統計分析。PC端的主體功能為:實現對用戶數據、站臺數據、遷徙路線的可視化分析,可以為決策者提供管理結局方案。
但是我們從什么角度進行數據分析呢?眾所周知,公交客流受到諸多因素的影響,預測時段越短,客流特征變化的隨機性和不可預測性就會越強[8],只有找出短時客流變化中最具相關的影響元素,才能去做行為預測。
為了對數據進行合理評估,本系統根據車載攝像頭采集的客流數據,將上車人數記為點 E,將下車人數記為點 O,預計到站記為點 S,到站時間記為點 T,標記站臺的斷面客流量,分析周圍商圈記錄人群的趨向,從而利用車載攝像頭采集的數據和GPS結合來對日時段、周時段、月時段的變化規律做出有效歸納,為公交調度提供良好的解決方案。

圖2 記錄客流數據的模擬圖Fig.2 Simulation graph of recording passenger flow data
(1)數據推送部分
系統中使用移動通訊的云巴服務進行開發。Android SDK會啟動一個后臺的Service,創建并保持到服務器的長連接,從而保證了消息推送的實時性。云巴采用MQTT協議,其特點有:二進制,非常精簡,適合做大量節點弱網絡差的場景,適用于現有移動互聯網的基礎設施;MQTT是天然的訂閱發布系統,有權限的人都可以發消息;開源的協議和實現;擴展方便且輕量級。因為協議精簡,相比XMPP本身標簽和編解碼不耗費流量,使用云巴做實時通訊在節省流量的同時也減少了耗電。

圖3 數據推送流程圖Fig.3 Data push flow chart
(2)線路規劃部分
百度Andriod 導航SDK為Android移動端應用提供了一套簡單易用的導航服務接口,本系統引入地圖與POI功能對用戶的使用習慣進行記錄,用戶可以將隨行地點收藏至常用地,利用歷史檢索進行sug建議。針對個性化出行模式引入線路方案推薦,從而節省了用戶的時間成本。
(3)實時公交部分

圖4 線路規劃部分成果圖Fig.4 Partial results graph of line planning
本系統用到站距離與估測時間提示乘客合理安排自己的時間,以便能夠及時乘坐相應的公車線路。對于擁擠程度本系統加入了信號燈標識車上的人數,用戶可通過處于[紅色,黃色,綠色]區間的顏色做出判斷是否乘車,一方面便利了民眾出行,另一方面有效地降低了交通擁堵發生的概率。期間設置了一個時間閾值,利用站臺與站臺所用時間做方差,限制請求頻率,及時地為乘客推送更新的線路信息。

圖5 實時公交部分成果圖Fig.5 Partial results graph of real time bus
(4)數據分析部分
按理來說只有單調的數據是無法為公交調度呈現出直觀參考的,為此本系統推行的方向是數據可視化,其主要旨在借助于圖形化手段,清晰有效地傳達與溝通信息。ECharts作為國內應用最廣泛的前端可視化生成工具,提供了豐富的圖表展現方式和便捷的圖表操作。
本系統通過對時節分段、線路分流的統計方法對所手機的信息進行了圖表處理,有針對性地選擇合適的方案。公交客流的分布特性分析從時間分布特性,人群分布特性及影響因素[9]分析入手。由于線路類型、運營時間、站點數目等的不同,各條公交線路的客流分布必然存在差異,因此有必要根據線路號,對其各個時段的客流量進行進行統計分析,以觀察各條線路客流的特征并做對比。

圖6 某線路各個時段客流量數據分析樣圖Fig.6 Analysis sample graph of passenger flow data of each different time section of a line
由于人群早出與晚歸流向基本處于相反的一致性,所以在工作日公交客流呈現比較明顯的特征,具有時空周期的規律性,給分析帶來了極大方便。考慮到用地環境這一因素,根據已有研究,乘客的下車概率會根據途經站點的數量服從泊松分布[10],如公式(1)所示:

其中等式左邊的 i站點在上車 j站點下車的概率,λ表示出行途經站點數量,當i站點以后的數量小于平均站點數時,λ = m - i 。
(5)商圈規劃
本系統在移動端出行中加入了常用地點及收藏等功能,不僅僅是便利用戶體驗,更重要的方面在于記錄出行因子,用戶收藏的常用地點標志著每日的出行軌跡,是用作考量公交調度的重要影響因素之一,由此建立起來的數據報表可以為商圈規劃提供參考依據,用戶建立的每一條地址條目會被用來做行為預測的自變量,為智慧出行做出隱形的貢獻。
本文利用了車載攝像頭采集的人數流量與GPS數據,加以時間上的同步性,匹配站臺、線路,對不同日時段、周時段、月時段進行客流分析,找出了其時空分布的不均衡特性和周期變化規律。在目標檢測領域應用了改進的Hough圓變換檢測[11]從而提升了算法精確度,利用收集的客流數據為系統的可視化統計提供了強力支持,為視頻客流分析領域提供了結合互聯網的新思路。