摘要:近年來,很多人將共享單車作為短途代步工具,這些單車會階段性地聚集在人流密集的交通樞紐,共享單車立體車庫可將這些車輛收容,減少擁堵,但現(xiàn)階段的共享單車立體車庫車輛出入庫速度較慢,調(diào)度不當(dāng)?shù)脑挄斐捎脩舻却龝r間過長。現(xiàn)有的調(diào)度算法主要是為小型車立體車庫設(shè)計(jì),不適合共享單車立體車庫。共享單車立體車庫的調(diào)度算法需要能夠識別車輛類型,預(yù)測下一時段不同類型車輛的出入庫情況,在空閑階段調(diào)整車輛存放位置,保證車輛能夠快速入庫、快速出庫。本文基于深度學(xué)習(xí)技術(shù)實(shí)現(xiàn)共享單車識別模型、共享單車出入庫預(yù)測模型,并基于該預(yù)測模型設(shè)計(jì)結(jié)果,結(jié)合調(diào)度論體系實(shí)現(xiàn)一種共享單車立體車庫調(diào)度策略。通過實(shí)驗(yàn)驗(yàn)證,本文提出的調(diào)度算法有效地避免了調(diào)度不當(dāng)問題,減少了用戶等待時間。
關(guān)鍵詞:共享單車立體車庫;識別;預(yù)測;調(diào)度
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 背景
近年來共享單車種類和數(shù)量越來越多,由于租借容易,使用方便,容易找到,很多人將其作為短途代步工具。但隨著人流流動,這些共享單車會階段性地聚集在人流密集的交通樞紐,如地鐵站、公交站,最終導(dǎo)致大量道路面積被占用,嚴(yán)重時會妨礙車輛行人通行,造成交通擁堵。
共享單車立體車庫可將這些共享單車收容,減少車輛占用道路面積。本文所述的共享單車立體車庫為具有如下特征的立體車庫:立體車庫只有一個通行口;自行車出庫/入庫操作是串行的,即一輛車出庫/入庫之后才能出庫/入庫第二輛;每一個車位只能存放一輛自行車;同一車位上車輛的出庫時間和入庫時間相等;立體車庫中,不同車位上的車輛出庫時間不同;立體車庫的容量大。
由于共享單車立體車庫容量大、存放的車輛類型不單一、立體車庫中距離通行口遠(yuǎn)的車位出庫/入庫時間很長,所以當(dāng)調(diào)度不當(dāng)時,會導(dǎo)致共享單車出庫/入庫時間過長,致使用戶長時間等待。因此,如何合理地進(jìn)行立體車庫內(nèi)的車位調(diào)度就成為亟待解決的問題。
2 相關(guān)工作
目前,現(xiàn)有的立體車庫調(diào)度算法大多是為小型車立體車庫設(shè)計(jì)的,主要算法包括基于隊(duì)列的調(diào)度算法、基于窮搜的調(diào)度算法、遺傳算法和蟻群算法[1、4、5、8]。
這些調(diào)度算法并不能直接應(yīng)用于共享單車立體車庫的調(diào)度。和小汽車立體車庫不同,共享單車立體車庫中存放的車輛屬于多個類別,出庫時只需出庫同一類型車輛中的任意一輛即可。共享單車的存取會受到早晚上下班高峰、天氣、節(jié)假日等因素的影響,具有規(guī)律性,調(diào)度算法需要根據(jù)歷史信息預(yù)測下一時刻的車輛出入庫情況,根據(jù)預(yù)測結(jié)果調(diào)整立體車庫中共享單車存放位置。因?yàn)橛脩舸嫒牍蚕韱诬嚂r輸入的車輛類型很有可能和實(shí)際入庫的車輛類型不一致,所以,在收集歷史信息時,算法要能夠根據(jù)車輛入庫時立體車庫拍攝的圖片主動識別車輛類型。
綜上所述,必須為共享單車立體車庫設(shè)計(jì)專門的車輛出入庫調(diào)度算法。該算法需要能夠識別車輛類型,預(yù)測下一時段車輛的出入庫情況,在空閑階段調(diào)整車輛存放位置,保證車輛快速出庫/入庫,縮短用戶等待時間。本文闡述的算法可以滿足以上需求。
3 算法描述
本文提出的調(diào)度算法由三部分組成:調(diào)度策略、共享單車出入庫預(yù)測、共享單車識別。其中,調(diào)度策略需要依賴共享單車出入庫預(yù)測部分提供的預(yù)測信息,后者又需要依賴共享單車識別部分提供的識別信息。
3.1 調(diào)度策略描述
建立數(shù)組T,T的大小為共享單車立體車庫中車位的數(shù)量n。為車位編號,按照每個車位上車輛出庫時間,由小到大對車位進(jìn)行排序,然后將數(shù)組T的下標(biāo)按順序[0,1,…,n-1]分配給排好序的車位,0號車位上車輛出庫時間最短,(n-1)號車位上車輛出庫時間最長。T[i]表示第i號車位的狀態(tài),若i號車位上有共享單車,則T[i]的值為該共享單車的類型,即T[i]=共享單車類型;若i號車位上無車,則T[i]的值為0,即T[i]=0。
共享單車立體車庫有三種狀態(tài):出庫、入庫、空閑。
當(dāng)出庫時,設(shè)出庫車輛類型為type_i,遍歷數(shù)組T,找到第一個值為type_i的元素T[m],將車位m上的自行車出庫,并設(shè)置T[m]=0。
當(dāng)入庫時,設(shè)入庫車輛類型為type_j,遍歷數(shù)組T,找到第一個值為0的元素T[m],將自行車入庫到m號車位,并設(shè)置T[m]=type_j。
當(dāng)空閑時,調(diào)整立體車庫中自行車的位置。使用共享單車出入庫預(yù)測模塊預(yù)測下一時刻每種類型車輛的出入庫情況bicycle_ini和bicycle_outi。bicycle_ini表示第i種類型共享單車的入庫量,bicycle_outi表示第i種類型共享單車的出庫量。將立體車庫中的車位分成兩部分:0到(r-1)號車位為首部,r到(n-1)號車位為尾部。設(shè)r的粗略值為r_e,r_e的計(jì)算公式如下:
設(shè)為b_r _in為需要調(diào)整的0到(r_e-1)號車位中,應(yīng)當(dāng)處于空閑的車位的個數(shù),其計(jì)算公式為:
設(shè)為b_r_outi為需要調(diào)整的0到(r_e-1)號車位中,應(yīng)當(dāng)存放的每種共享單車的個數(shù),其計(jì)算公式為:
設(shè)r的實(shí)際值為rreal,rreal的計(jì)算公式為:
檢索T[0,…,rreal-1],若空閑車位小于b_r_in,則檢索T[0,…,rreal-1]中的每種共享單車的車輛個數(shù),找到個數(shù)大于對應(yīng)的b_r_outi的共享單車類型,將下標(biāo)最大的元素對應(yīng)的車輛放入T[rreal,…,n -1]中第一個檢索到的空閑車位。然后檢索T[0,…, rreal-1]中的每種共享單車的車輛個數(shù),找到個數(shù)小于對應(yīng)的b_r_outi的共享單車類型,從T[rreal,…,n -1]中找到第一個該類型的共享單車放到T[0,…, rreal-1]中下標(biāo)最大的空閑車位中。
3.2 共享單車出入庫預(yù)測描述
共享單車出入庫預(yù)測使用深度學(xué)習(xí)技術(shù),一種共享單車類型建立一個預(yù)測模型,設(shè)共享單車類型為m,則需要m個共享單車出入庫預(yù)測模型,所有預(yù)測模型采用同一種網(wǎng)絡(luò)結(jié)構(gòu)[2],具體結(jié)構(gòu)如圖1所示。
圖1 共享單車出入庫預(yù)測模型網(wǎng)絡(luò)結(jié)構(gòu)
3.3 共享單車識別描述
共享單車識別使用深度學(xué)習(xí)技術(shù),由兩個模型(自行車檢測模型和自行車識別模型)組成,采用級聯(lián)方式[3]。自行車檢測模型Bicycle_Detect_Net(BDN)用來檢測圖像中的自行車,輸出自行車在圖像中的坐標(biāo)。自行車識別模型 Bicycle_Recognize_Net(BRN)用來識別輸入的自行車屬于哪種共享單車。整體流程為:輸入圖片到BDN中,根據(jù)輸出坐標(biāo)截取圖片中對應(yīng)的車輛,然后將截取出的圖像輸入到BRN中,識別出自行車所屬的共享單車類型,如圖2所示。
圖2 共享單車識別描述
4 算法實(shí)現(xiàn)
4.1 共享單車識別
4.1.1 訓(xùn)練樣本的制作
拍攝各個種類的共享單車的視頻,拍攝的視頻需要滿足:包含共享單車各個角度、不同遠(yuǎn)近、無干擾物品的僅包含共享單車的圖片。將視頻按幀拆分成圖片,并剔除相似度高的、有遮擋的或有噪聲的圖片,要求篩選后的每類共享單車的圖片數(shù)量在2000以上[6]。之后使用標(biāo)注工具,標(biāo)注篩選后的圖片,標(biāo)注需要滿足標(biāo)注框緊貼圖片中共享單車的邊緣。將標(biāo)注后的圖片按照9:1的比例分為訓(xùn)練集和驗(yàn)證集。
4.1.2 模型的訓(xùn)練
自行車檢測模型和自行車識別模型分開訓(xùn)練。首先訓(xùn)練自行車檢測模型,然后訓(xùn)練自行車識別模型。當(dāng)增加一個新類型的共享單車時,自行車檢測模型不需要重新訓(xùn)練,自行車識別模型需要重新訓(xùn)練。
4.1.3 模型的使用
輸入圖片到自行車檢測模型,得到自行車在圖片中的坐標(biāo),截取出自行車所在的那部分圖像,縮放并填充截圖,得到一個正方形圖,將該正方形圖輸入到自行車識別模型,最后輸出共享單車的類型。
4.2 共享單車出入庫預(yù)測
4.2.1 訓(xùn)練樣本的制作
訓(xùn)練樣本需要從共享單車立體車庫和網(wǎng)絡(luò)實(shí)時收集數(shù)據(jù),需要收集的數(shù)據(jù)主要包括車輛出/入庫時間、車輛類型、車輛位置、天氣信息(陰晴雨雪、溫度、濕度、風(fēng)速、風(fēng)向)、PM2.5、是否節(jié)假日、周邊事故個數(shù)、周邊擁堵程度等[7]。其中,車輛類型由共享單車識別模塊檢測識別得到。以十分鐘為一個單位時間段,其中t0表示00:00-00:10,t1表示00:10-00:20,以此類推。將上述信息按照單位時間段進(jìn)行統(tǒng)計(jì)。每條樣本數(shù)據(jù)包括(tx、時間距離、陰晴雨雪、溫度、濕度、風(fēng)速、風(fēng)向、PM2.5、是否節(jié)假日、……),tx表示第x個時間段,時間距離表示當(dāng)前日期距離數(shù)據(jù)采集日期的天數(shù)。每條樣本對應(yīng)的標(biāo)簽為車輛類型1的出庫數(shù)量、車輛類型1的入庫數(shù)量、車輛類型2的出庫數(shù)量、車輛類型2的入庫數(shù)量……車輛類型k的出庫數(shù)量、車輛類型k的入庫數(shù)量。
4.2.2 模型的結(jié)構(gòu)
預(yù)測模型的隱藏層由8層組成,每層都采用全連接網(wǎng)絡(luò),激活函數(shù)都采用ReLU,每層包含的神經(jīng)元個數(shù)分別為:512、512、256、256、128、128、64、64。輸出層的神經(jīng)元個數(shù)為2k,k為共享單車類型總數(shù)。
4.2.3 模型的訓(xùn)練
模型訓(xùn)練時,訓(xùn)練集不做特殊要求,校驗(yàn)集有特殊要求,校驗(yàn)集需要選用距離當(dāng)前時刻較近的樣本,即時間距離值較小的樣本。訓(xùn)練頻率為每3天一次。每次訓(xùn)練時,訓(xùn)練樣本需要重新制作,需要添加最近3天的共享單車立體車庫出入庫信息、天氣信息、交通信息等,訓(xùn)練樣本中的“時間距離”也需要重新計(jì)算,校驗(yàn)集也要重新選擇。
4.2.4 模型的使用
輸入當(dāng)前時刻的(tx、時間距離、陰晴雨雪、溫度、濕度、風(fēng)速、風(fēng)向、PM2.5、是否節(jié)假日等)到預(yù)測模型中,獲得模型輸出的每種共享單車出入庫預(yù)測情況,包括車輛類型1的出庫數(shù)量、車輛類型1的入庫數(shù)量……車輛類型k的出庫數(shù)量、車輛類型k的入庫數(shù)量。
4.3 調(diào)度策略
調(diào)度策略包含三部分:出庫策略、入庫策略和空閑時的調(diào)整策略。
4.3.1 出庫
若系統(tǒng)發(fā)出出庫指令,出庫車輛的類型為type_k,則從前到后檢索數(shù)組T,找到值為type_k的元素的下標(biāo),出庫對應(yīng)下標(biāo)的車位上的自行車,同時該元素的值設(shè)置為0。
4.3.2 入庫
若系統(tǒng)發(fā)出入庫指令,入庫車輛的類型為type_g,則從前到后檢索數(shù)組T,找到值為0的元素的下標(biāo),將自行車入庫到對應(yīng)下標(biāo)的車位上,同時該元素的值設(shè)置為type_g。
4.3.3 調(diào)整
當(dāng)共享單車立體車庫進(jìn)入空閑階段時,調(diào)用共享單車出入庫預(yù)測部分,獲得每種共享單車的出入庫數(shù)量。由公式1,2,3,4計(jì)算得到rreal、b_r_in、 b_r_outi。具體調(diào)整過程如偽代碼所示:
while (未收到入庫指令 && 未收到出庫指令):
if 空閑車位數(shù) < b_r_in:
for i in [1,2,…,k]:
if T[0,…,rreal-1]中i種類型車輛總數(shù) > b_r_outi:
將T[0,…,rreal-1]中i種類型車輛下標(biāo)最大的元素對應(yīng)的車輛放入T[rreal,…,n -1]中第一個檢索到的空閑車位。
for i in [1,2,…,k]:
if T[0,…,rreal-1]中類型i的車輛個數(shù) <b_ r_outi:
從T[rreal,…,n -1]中找到第一個該類型的共享單車放到T[0,…,rreal-1]中下標(biāo)最大的空閑車位中。
5 實(shí)驗(yàn)
以層高5層,每層10個車位的共享單車立體車庫進(jìn)行測試。測試結(jié)果如表1所示。
表1 D表示日期(天), S表示出入庫等待時間(秒), A表示算法
通過表1可以發(fā)現(xiàn),隨著時間的推移,使用貪心算法的調(diào)度,車輛出入庫平均等待時間在變長,最終穩(wěn)定在70s左右,最長等待時間達(dá)100s以上;使用本文算法的調(diào)度,平均等待時間是穩(wěn)定的,最大等待時間也是穩(wěn)定的,并且遠(yuǎn)遠(yuǎn)小于使用貪心算法的調(diào)度。
6 結(jié)論
本文提出的算法能夠識別共享單車車輛類型;預(yù)測下一時段不同類型車輛的出入庫情況,并且預(yù)測模型每3天更新一次,做到根據(jù)近期車輛出入庫規(guī)律及時調(diào)節(jié);在空閑階段調(diào)整車輛存放位置,保證車輛能夠快速入庫、快速出庫,縮短用戶等待時間。
7 未來工作
本文提出的算法在共享單車立體車庫調(diào)整車輛位置階段,對r_e的選值比較固定,不夠靈活,這部分有改進(jìn)的空間。在共享單車識別部分,每增加一種車輛類型,就需要人工標(biāo)注新類型的車輛,制作訓(xùn)練樣本,然后重新訓(xùn)練自行車識別模型,這部分也有改進(jìn)的空間。
參考文獻(xiàn):
[1] 王相峰, 劉勝永, 李曉寧, 等. 一種應(yīng)用于堆垛式立體車庫AC-TSP算法的研究[J]. 廣西科技大學(xué)學(xué)報(bào), 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]刁瑞興, 徐海峰. 自動化立體車庫調(diào)度策略淺析[J]. 科技資訊, 2017 (14) : 68 - 69.
[5]萬方. 基于蟻群算法的自動化立體車庫監(jiān)控軟件的優(yōu)化設(shè)計(jì)[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2017 (2) : 64 - 65.
[6] 彭博, 臧笛. 基于深度學(xué)習(xí)的車標(biāo)識別方法研究[J]. 計(jì)算機(jī)科學(xué), 2015, 42 (4) : 268 - 273.
[7] 譚娟, 王勝春. 基于深度學(xué)習(xí)的交通擁堵預(yù)測模型研究[J]. 計(jì)算機(jī)應(yīng)用研究, 2015, 32 (10) : 2951 - 2954.
[8] 宋揚(yáng), 田野, 蘇瑞聰. 公交立體車庫調(diào)度算法的研究與實(shí)現(xiàn)[J]. 技術(shù)縱橫, 2018,(299) : 118 - 122.
作者簡介:
宋 揚(yáng)(1990-),男,吉林長春人,碩士,現(xiàn)任首鋼自動化信息技術(shù)有限公司智慧城市創(chuàng)新中心大數(shù)據(jù)人工智能研發(fā)室副主任,主要研究方向?yàn)楦咝阅苡?jì)算。
田 野(1990-),男,遼寧海城人,研究生,現(xiàn)就職于百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司智能云業(yè)務(wù)運(yùn)營部,主要研究方向?yàn)橛?jì)算機(jī)科學(xué)。
陳 星(1987-),男,河北遵化人,碩士,現(xiàn)任首鋼自動化信息技術(shù)有限公司智慧城市創(chuàng)新中心大數(shù)據(jù)人工智能研發(fā)室算法架構(gòu)師,主要研究方向?yàn)橛?jì)算機(jī)視覺。
蘇睿聰(1991-),男,吉林長春人,碩士,現(xiàn)任首鋼自動化信息技術(shù)有限公司智慧城市創(chuàng)新中心大數(shù)據(jù)人工智能研發(fā)室算法架構(gòu)師,主要研究方向?yàn)橛?jì)算機(jī)科學(xué)。
摘自《自動化博覽》2018年12月刊