摘要:近年來,很多人將共享單車作為短途代步工具,這些單車會階段性地聚集在人流密集的交通樞紐,共享單車立體車庫可將這些車輛收容,減少擁堵,但現階段的共享單車立體車庫車輛出入庫速度較慢,調度不當的話會造成用戶等待時間過長。現有的調度算法主要是為小型車立體車庫設計,不適合共享單車立體車庫。共享單車立體車庫的調度算法需要能夠識別車輛類型,預測下一時段不同類型車輛的出入庫情況,在空閑階段調整車輛存放位置,保證車輛能夠快速入庫、快速出庫。本文基于深度學習技術實現共享單車識別模型、共享單車出入庫預測模型,并基于該預測模型設計結果,結合調度論體系實現一種共享單車立體車庫調度策略。通過實驗驗證,本文提出的調度算法有效地避免了調度不當問題,減少了用戶等待時間。
關鍵詞:共享單車立體車庫;識別;預測;調度
Abstract: In recent years, many people use shared bicycles as a short-distance transportation tool, and these bicycles will be gathered in traffic hubs with dense traffics periodically. Stereo Garage for Shared Bicycle (SGSB) can accommodate these bicycles and reduce congestion. However, the speed of entering and leaving the SGSB is slow, therefore, it will be time-consuming of improper dispatch. Basically, the existing scheduling algorithms are mainly designed for Stereo Garage for Car, which is not suitable for SGSB. The scheduling algorithm of SGSB needs to identify the type of bicycles, predict the number of in-out bicycles at the next period, adjust the storage location of bicycles at the idle stage, and ensure that bicycles can enter and leave the garage quickly. Based on deep learning, this paper implements a recognition model and a loading and unloading prediction model of shared bicycles.Besides, a scheduling strategy of SGSB based on the prediction model and the dispatching theory system is also proposed. Experimental results show that the proposed scheduling algorithm avoids the problem of improper scheduling effectively and reduces the waiting time of users.
Key words: Stereo garage for shared bicycle; Recognition; Prediction; Scheduling
1 背景
近年來共享單車種類和數量越來越多,由于租借容易,使用方便,容易找到,很多人將其作為短途代步工具。但隨著人流流動,這些共享單車會階段性地聚集在人流密集的交通樞紐,如地鐵站、公交站,最終導致大量道路面積被占用,嚴重時會妨礙車輛行人通行,造成交通擁堵。
共享單車立體車庫可將這些共享單車收容,減少車輛占用道路面積。本文所述的共享單車立體車庫為具有如下特征的立體車庫:立體車庫只有一個通行口;自行車出庫/入庫操作是串行的,即一輛車出庫/入庫之后才能出庫/入庫第二輛;每一個車位只能存放一輛自行車;同一車位上車輛的出庫時間和入庫時間相等;立體車庫中,不同車位上的車輛出庫時間不同;立體車庫的容量大。
由于共享單車立體車庫容量大、存放的車輛類型不單一、立體車庫中距離通行口遠的車位出庫/入庫時間很長,所以當調度不當時,會導致共享單車出庫/入庫時間過長,致使用戶長時間等待。因此,如何合理地進行立體車庫內的車位調度就成為亟待解決的問題。
2 相關工作
目前,現有的立體車庫調度算法大多是為小型車立體車庫設計的,主要算法包括基于隊列的調度算法、基于窮搜的調度算法、遺傳算法和蟻群算法[1、4、5、8]。
這些調度算法并不能直接應用于共享單車立體車庫的調度。和小汽車立體車庫不同,共享單車立體車庫中存放的車輛屬于多個類別,出庫時只需出庫同一類型車輛中的任意一輛即可。共享單車的存取會受到早晚上下班高峰、天氣、節假日等因素的影響,具有規律性,調度算法需要根據歷史信息預測下一時刻的車輛出入庫情況,根據預測結果調整立體車庫中共享單車存放位置。因為用戶存入共享單車時輸入的車輛類型很有可能和實際入庫的車輛類型不一致,所以,在收集歷史信息時,算法要能夠根據車輛入庫時立體車庫拍攝的圖片主動識別車輛類型。
綜上所述,必須為共享單車立體車庫設計專門的車輛出入庫調度算法。該算法需要能夠識別車輛類型,預測下一時段車輛的出入庫情況,在空閑階段調整車輛存放位置,保證車輛快速出庫/入庫,縮短用戶等待時間。本文闡述的算法可以滿足以上需求。
3 算法描述
本文提出的調度算法由三部分組成:調度策略、共享單車出入庫預測、共享單車識別。其中,調度策略需要依賴共享單車出入庫預測部分提供的預測信息,后者又需要依賴共享單車識別部分提供的識別信息。
3.1 調度策略描述
建立數組T,T的大小為共享單車立體車庫中車位的數量n。為車位編號,按照每個車位上車輛出庫時間,由小到大對車位進行排序,然后將數組T的下標按順序[0,1,…,n-1]分配給排好序的車位,0號車位上車輛出庫時間最短,(n-1)號車位上車輛出庫時間最長。T[i]表示第i號車位的狀態,若i號車位上有共享單車,則T[i]的值為該共享單車的類型,即T[i]=共享單車類型;若i號車位上無車,則T[i]的值為0,即T[i]=0。
共享單車立體車庫有三種狀態:出庫、入庫、空閑。
當出庫時,設出庫車輛類型為type_i,遍歷數組T,找到第一個值為type_i的元素T[m],將車位m上的自行車出庫,并設置T[m]=0。
當入庫時,設入庫車輛類型為type_j,遍歷數組T,找到第一個值為0的元素T[m],將自行車入庫到m號車位,并設置T[m]=type_j。
當空閑時,調整立體車庫中自行車的位置。使用共享單車出入庫預測模塊預測下一時刻每種類型車輛的出入庫情況bicycle_ini和bicycle_outi。bicycle_ini表示第i種類型共享單車的入庫量,bicycle_outi表示第i種類型共享單車的出庫量。將立體車庫中的車位分成兩部分:0到(r-1)號車位為首部,r到(n-1)號車位為尾部。設r的粗略值為r_e,r_e的計算公式如下:
設為b_r _in為需要調整的0到(r_e-1)號車位中,應當處于空閑的車位的個數,其計算公式為:
設為b_r_outi為需要調整的0到(r_e-1)號車位中,應當存放的每種共享單車的個數,其計算公式為:
設r的實際值為rreal,rreal的計算公式為:
檢索T[0,…,rreal-1],若空閑車位小于b_r_in,則檢索T[0,…,rreal-1]中的每種共享單車的車輛個數,找到個數大于對應的b_r_outi的共享單車類型,將下標最大的元素對應的車輛放入T[rreal,…,n -1]中第一個檢索到的空閑車位。然后檢索T[0,…, rreal-1]中的每種共享單車的車輛個數,找到個數小于對應的b_r_outi的共享單車類型,從T[rreal,…,n -1]中找到第一個該類型的共享單車放到T[0,…, rreal-1]中下標最大的空閑車位中。
3.2 共享單車出入庫預測描述
共享單車出入庫預測使用深度學習技術,一種共享單車類型建立一個預測模型,設共享單車類型為m,則需要m個共享單車出入庫預測模型,所有預測模型采用同一種網絡結構[2],具體結構如圖1所示。
圖1 共享單車出入庫預測模型網絡結構
3.3 共享單車識別描述
共享單車識別使用深度學習技術,由兩個模型(自行車檢測模型和自行車識別模型)組成,采用級聯方式[3]。自行車檢測模型Bicycle_Detect_Net(BDN)用來檢測圖像中的自行車,輸出自行車在圖像中的坐標。自行車識別模型 Bicycle_Recognize_Net(BRN)用來識別輸入的自行車屬于哪種共享單車。整體流程為:輸入圖片到BDN中,根據輸出坐標截取圖片中對應的車輛,然后將截取出的圖像輸入到BRN中,識別出自行車所屬的共享單車類型,如圖2所示。
圖2 共享單車識別描述
4 算法實現
4.1 共享單車識別
4.1.1 訓練樣本的制作
拍攝各個種類的共享單車的視頻,拍攝的視頻需要滿足:包含共享單車各個角度、不同遠近、無干擾物品的僅包含共享單車的圖片。將視頻按幀拆分成圖片,并剔除相似度高的、有遮擋的或有噪聲的圖片,要求篩選后的每類共享單車的圖片數量在2000以上[6]。之后使用標注工具,標注篩選后的圖片,標注需要滿足標注框緊貼圖片中共享單車的邊緣。將標注后的圖片按照9:1的比例分為訓練集和驗證集。
4.1.2 模型的訓練
自行車檢測模型和自行車識別模型分開訓練。首先訓練自行車檢測模型,然后訓練自行車識別模型。當增加一個新類型的共享單車時,自行車檢測模型不需要重新訓練,自行車識別模型需要重新訓練。
4.1.3 模型的使用
輸入圖片到自行車檢測模型,得到自行車在圖片中的坐標,截取出自行車所在的那部分圖像,縮放并填充截圖,得到一個正方形圖,將該正方形圖輸入到自行車識別模型,最后輸出共享單車的類型。
4.2 共享單車出入庫預測
4.2.1 訓練樣本的制作
訓練樣本需要從共享單車立體車庫和網絡實時收集數據,需要收集的數據主要包括車輛出/入庫時間、車輛類型、車輛位置、天氣信息(陰晴雨雪、溫度、濕度、風速、風向)、PM2.5、是否節假日、周邊事故個數、周邊擁堵程度等[7]。其中,車輛類型由共享單車識別模塊檢測識別得到。以十分鐘為一個單位時間段,其中t0表示00:00-00:10,t1表示00:10-00:20,以此類推。將上述信息按照單位時間段進行統計。每條樣本數據包括(tx、時間距離、陰晴雨雪、溫度、濕度、風速、風向、PM2.5、是否節假日、……),tx表示第x個時間段,時間距離表示當前日期距離數據采集日期的天數。每條樣本對應的標簽為車輛類型1的出庫數量、車輛類型1的入庫數量、車輛類型2的出庫數量、車輛類型2的入庫數量……車輛類型k的出庫數量、車輛類型k的入庫數量。
4.2.2 模型的結構
預測模型的隱藏層由8層組成,每層都采用全連接網絡,激活函數都采用ReLU,每層包含的神經元個數分別為:512、512、256、256、128、128、64、64。輸出層的神經元個數為2k,k為共享單車類型總數。
4.2.3 模型的訓練
模型訓練時,訓練集不做特殊要求,校驗集有特殊要求,校驗集需要選用距離當前時刻較近的樣本,即時間距離值較小的樣本。訓練頻率為每3天一次。每次訓練時,訓練樣本需要重新制作,需要添加最近3天的共享單車立體車庫出入庫信息、天氣信息、交通信息等,訓練樣本中的“時間距離”也需要重新計算,校驗集也要重新選擇。
4.2.4 模型的使用
輸入當前時刻的(tx、時間距離、陰晴雨雪、溫度、濕度、風速、風向、PM2.5、是否節假日等)到預測模型中,獲得模型輸出的每種共享單車出入庫預測情況,包括車輛類型1的出庫數量、車輛類型1的入庫數量……車輛類型k的出庫數量、車輛類型k的入庫數量。
4.3 調度策略
調度策略包含三部分:出庫策略、入庫策略和空閑時的調整策略。
4.3.1 出庫
若系統發出出庫指令,出庫車輛的類型為type_k,則從前到后檢索數組T,找到值為type_k的元素的下標,出庫對應下標的車位上的自行車,同時該元素的值設置為0。
4.3.2 入庫
若系統發出入庫指令,入庫車輛的類型為type_g,則從前到后檢索數組T,找到值為0的元素的下標,將自行車入庫到對應下標的車位上,同時該元素的值設置為type_g。
4.3.3 調整
當共享單車立體車庫進入空閑階段時,調用共享單車出入庫預測部分,獲得每種共享單車的出入庫數量。由公式1,2,3,4計算得到rreal、b_r_in、 b_r_outi。具體調整過程如偽代碼所示:
while (未收到入庫指令 && 未收到出庫指令):
if 空閑車位數 < b_r_in:
for i in [1,2,…,k]:
if T[0,…,rreal-1]中i種類型車輛總數 > b_r_outi:
將T[0,…,rreal-1]中i種類型車輛下標最大的元素對應的車輛放入T[rreal,…,n -1]中第一個檢索到的空閑車位。
for i in [1,2,…,k]:
if T[0,…,rreal-1]中類型i的車輛個數 <b_ r_outi:
從T[rreal,…,n -1]中找到第一個該類型的共享單車放到T[0,…,rreal-1]中下標最大的空閑車位中。
5 實驗
以層高5層,每層10個車位的共享單車立體車庫進行測試。測試結果如表1所示。
表1 D表示日期(天), S表示出入庫等待時間(秒), A表示算法
通過表1可以發現,隨著時間的推移,使用貪心算法的調度,車輛出入庫平均等待時間在變長,最終穩定在70s左右,最長等待時間達100s以上;使用本文算法的調度,平均等待時間是穩定的,最大等待時間也是穩定的,并且遠遠小于使用貪心算法的調度。
6 結論
本文提出的算法能夠識別共享單車車輛類型;預測下一時段不同類型車輛的出入庫情況,并且預測模型每3天更新一次,做到根據近期車輛出入庫規律及時調節;在空閑階段調整車輛存放位置,保證車輛能夠快速入庫、快速出庫,縮短用戶等待時間。
7 未來工作
本文提出的算法在共享單車立體車庫調整車輛位置階段,對r_e的選值比較固定,不夠靈活,這部分有改進的空間。在共享單車識別部分,每增加一種車輛類型,就需要人工標注新類型的車輛,制作訓練樣本,然后重新訓練自行車識別模型,這部分也有改進的空間。
參考文獻:
[1] 王相峰, 劉勝永, 李曉寧, 等. 一種應用于堆垛式立體車庫AC-TSP算法的研究[J]. 廣西科技大學學報, 2015 (2) : 53 - 59.
[2] LeCun Y, Yann L, Yoshua B, Geoffrey H. Deep Learning[J]. Nature. 2015, 521 (7553) : 436 - 444.
[3] Kaipeng Zhang, Zhanpeng Zhang, Zhifeng Li, Senior Member, and Yu Qiao. Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks[C]. ECCV. 2016.
[4]刁瑞興, 徐海峰. 自動化立體車庫調度策略淺析[J]. 科技資訊, 2017 (14) : 68 - 69.
[5]萬方. 基于蟻群算法的自動化立體車庫監控軟件的優化設計[J]. 網絡安全技術與應用, 2017 (2) : 64 - 65.
[6] 彭博, 臧笛. 基于深度學習的車標識別方法研究[J]. 計算機科學, 2015, 42 (4) : 268 - 273.
[7] 譚娟, 王勝春. 基于深度學習的交通擁堵預測模型研究[J]. 計算機應用研究, 2015, 32 (10) : 2951 - 2954.
[8] 宋揚, 田野, 蘇瑞聰. 公交立體車庫調度算法的研究與實現[J]. 技術縱橫, 2018,(299) : 118 - 122.
作者簡介:
宋 揚(1990-),男,吉林長春人,碩士,現任首鋼自動化信息技術有限公司智慧城市創新中心大數據人工智能研發室副主任,主要研究方向為高性能計算。
田 野(1990-),男,遼寧海城人,研究生,現就職于百度在線網絡技術(北京)有限公司智能云業務運營部,主要研究方向為計算機科學。
陳 星(1987-),男,河北遵化人,碩士,現任首鋼自動化信息技術有限公司智慧城市創新中心大數據人工智能研發室算法架構師,主要研究方向為計算機視覺。
蘇睿聰(1991-),男,吉林長春人,碩士,現任首鋼自動化信息技術有限公司智慧城市創新中心大數據人工智能研發室算法架構師,主要研究方向為計算機科學。
摘自《自動化博覽》2018年12月刊