安旭驍,鄧洪敏,史興宇
近些年私家車大量增加,但在城市停車位有限的情況下,使得在現(xiàn)實生活中尋找空車位非常耗時。隨著智能城市的推廣,攝像頭、無線網(wǎng)及手機在生活中被廣泛使用,通過算法將三者有效地結(jié)合起來以快捷地查找車位已經(jīng)成為重要研究方向[1]。對空車位的檢測有諸多研究,主要分為機器學習和多傳感器方式兩種。
在機器學習方面,最廣泛使用的是支持向量機(Support Vector Machine, SVM)方法,由于不涉及概率和大數(shù)定律等統(tǒng)計方法,簡化了通常的分類,且SVM分類可轉(zhuǎn)化為凸優(yōu)化問題來獲得全局最小值,在處理二分類問題中性能表現(xiàn)較好。Dan[2]使用SVM的方法來實現(xiàn)對空車位的識別,后來Wu等[3]通過將SVM和馬爾可夫隨機場(Markov Random Field, MRF)框架及Paulo等[4]將SVM與高斯初始化的局部二值模式等方法結(jié)合來提高檢測效率。而在車位識別中,攝像頭所拍攝的圖片容易受光線、天氣、遮擋的影響。文獻[5]中使用傳統(tǒng)的神經(jīng)網(wǎng)絡進行特征提取并判斷空車位,在這篇文章中作者特別考慮到了光線對于空車位檢測的影響,通過自動匹配路面像素值來計算車位和車道距離并通過合并相似特征值光照充足和不足的部分提高圖片亮度,取得了較好的效果,但文中只涉及150個車位且訓練樣本較少。車輛在進入車庫時很容易被其他車輛遮擋,文獻[6]采用基于事件識別(Event Recognition, ER)的方法來檢測車離開車位和進入車位的狀態(tài)。傳統(tǒng)神經(jīng)網(wǎng)絡及機器學習方法結(jié)構(gòu)單一,網(wǎng)絡結(jié)構(gòu)中所能存儲的特征信息有限,對于環(huán)境變化比較敏感,泛化能力較弱。
相對于機器學習的方式,多傳感器方式不易受到環(huán)境干擾。Abad等[7]使用傳感器三維建模的方式,通過計算兩車位之間的距離并對比本身車長的方式來確定兩車之間的空間是否足夠用作為空車位的檢測方法。Caicedo等[8]通過在地面及車上安裝傳感器來識別空車位。多傳感器識別率較高,但硬件成本也較高,使用范圍比較局限。
以上兩類方法均具有一定的局限性,而深度學習具有強大的特征提取能力,使得它比傳統(tǒng)的算法和神經(jīng)網(wǎng)絡有更強的魯棒性。卷積神經(jīng)網(wǎng)絡是深度學習中一種有監(jiān)督的學習模型,在視覺處理和圖像分類中性能優(yōu)越,其多層結(jié)構(gòu)可有效學習和反映輸入和輸出的復雜關(guān)系[9-10]。但通常的卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)的運算量巨大,需要造價不菲的硬件設備,限制了它在實際中的應用?;诖?,本文提出迷你型CNN(Mini CNN, MCNN)來實現(xiàn)車位檢測,不僅大幅減小了CNN的規(guī)模,還可將訓練好的網(wǎng)絡移值到廉價的智能攝像頭,實時監(jiān)測空車位。
深度學習由Hinton等在2006年提出[11],隨后Lecun等提出的卷積神經(jīng)網(wǎng)絡是第一個真正意義上的深層結(jié)構(gòu)網(wǎng)絡。卷積神經(jīng)網(wǎng)絡借鑒人的視覺演變而來的,對事物的歸類與人腦有相似性,但深度學習卻能提取到人眼所觀察不到的特征。卷積神經(jīng)網(wǎng)絡是監(jiān)督式學習網(wǎng)絡,包含有輸入層、隱含層和輸出層。其中隱含層是通過卷積運算而獲得的特征圖,隱含層的深度代表的是由淺入深不同層次圖像特征,其卷積運算如式(1)所示:
(1)
其中:wk為卷積核的第k個卷積矩陣;xk為第k個輸入矩陣;n為輸入矩陣個數(shù);s(i,j)為對應輸出的卷積值。
每個特征圖所有單元共享權(quán)值,不同特征圖使用不同特征,稱之為共享權(quán)值。權(quán)值共享可減少權(quán)重參數(shù)數(shù)量。為加速收斂,將卷積運算后的加權(quán)和傳遞給修正線性單元(Rectified Linear Unit, RELU),即激活函數(shù)層。之后數(shù)值傳遞給池化層,用于壓縮數(shù)據(jù)和參數(shù)的量,減少過擬合并保留主要特征。池化方法如式(2)所示:
(2)
式(2)表示每個神經(jīng)元在s×s不重合區(qū)域進行采樣,采樣中取區(qū)域最大值作為特征值即第i個輸出特征值yi。圖1為2×2區(qū)域池化前后變化。
卷積層、激活函數(shù)層、池化層在表征一層隱含層時是連在一起使用的。為了表述方便,本文在圖2和圖3中將它們并在一起來表示一層。
圖2為標準卷積神經(jīng)網(wǎng)絡模型。圖2中n表示隱含層層數(shù),在大型CNN模型如AlexNet中n為5,VGG(Visual Geometry Group)[12]中n為16,ResNet中n上千[12-13]。
圖2 標準的CNN卷積神經(jīng)網(wǎng)絡模型
MCNN共包含5層(3層卷積層和2層全連接層)。每個卷積層包括有卷積運算層、激活函數(shù)層、局部響應歸一化(Local Response Normalization, LRN)層、最大池化(max pooling)層。最后輸出層是Softmax分類器。分類器中最終輸出為兩類:0和1(0代表車位為空,1代表該車位被占用)。MCNN模型結(jié)構(gòu)如圖3所示。
圖3 MCNN網(wǎng)絡結(jié)構(gòu)
在網(wǎng)絡訓練時輸入層采用PKLot樣本集[4],每次輸入的樣本是單個車位,每個樣本的大小為256×256,為了能夠擴大樣本量,在網(wǎng)絡訓練時可通過對輸入樣本進行水平和旋轉(zhuǎn)切割成224×224大小的圖片作為輸入,樣本可擴展多倍。
將訓練好的網(wǎng)絡移植到攝像頭進行識別時,需要對攝像頭傳來的幀畫面進行切割處理。在文獻[3]中使用主成分分析(Principal Component Analysis, PCA)方法通過固定車位掃描區(qū)域,來分割車位作為SVM的輸入。這種方法對于離攝像頭較遠的車位,容易出現(xiàn)分割誤差??紤]到停車場車位和攝像頭的相對位置是保持不變的,因此本文提出對幀圖手動設置掩碼,掩碼的區(qū)域根據(jù)距離攝像頭拍攝的遠近作調(diào)整。在OpenCV環(huán)境中將掩碼圖與原圖合并,并通過Canny邊緣檢測對圖片自動切割輸出[12],如圖4所示。
圖4 掩碼設置和邊緣切割示例
經(jīng)過切割后輸出的結(jié)果為單個車位,將大小不同的圖歸一化調(diào)整為224×224同樣大小的圖片輸入到網(wǎng)絡進行預測。
實驗結(jié)果表明,在卷積層中使用較小的卷積如常用的11×11、7×7、5×5、3×3等,能夠提取到更多圖像的紋理細節(jié),但太小的卷積核會導致參數(shù)極大增加。MCNN在第一個全連接層選擇使用3×3的卷積核。相對于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡,如AlexNet,包含5層卷積層、3層全連接層其8層的網(wǎng)絡結(jié)構(gòu),而MCNN只需要3層卷積層及2層全連接層共5層。參數(shù)由AlexNet的6 000萬個減少為MCNN的6萬多個,減少至原來的1/1 000。
LRN層模仿生物神經(jīng)系統(tǒng)的側(cè)抑制機制,為局部神經(jīng)元活動創(chuàng)建競爭機制,使得神經(jīng)元中響應較大的變得相對更大,并對反饋較小的神經(jīng)元進行抑制。由于車位檢測對明亮度比較敏感,可以通過LRN層提供明度校正,增強模型泛化能力。
最后一層全連接層的輸出是2個類的值。網(wǎng)絡訓練時通過標簽進行誤差對比,類似BP網(wǎng)絡的形式將誤差求解偏導并逐層向下傳遞,不斷更新權(quán)值直到訓練完成。
以上網(wǎng)絡訓練使用caffe工具體包,訓練平臺配置為CPU i7-7700k, GPU為Nivida GTX 1080Ti,內(nèi)存為32 GB且配置CUDNN計算加速平臺的服務器。學習參數(shù):初始學習率為0.001,權(quán)值衰減為0.000 5,學習動量為0.001。參數(shù)之間的關(guān)系如式(3)~(4)所示:
(3)
wi+1=wi+vi+1
(4)
表2 不同算法識別率對比 %
由于SVM自身的局限性無法在概率框架下工作,所以在文獻[4]中使用歸一化的局部相位量(Local Phase Quantization with respectively Uniform, LPQU)和高斯初始化的局部二值(Local Binary Pattern with Gaussian initialization, LBPG)來提取的紋理特征作為SVM的輸入,這兩種方法較文獻[4]中其他如平均值化(mean rule)、最大值化(max rule)等方法能取得較高的識別率,因此本文就在識別率方面與這兩種方法進行對比。為了能有效對比不同算法的識別率,本文采用該文獻中同樣的樣本(PKLot)及樣本分類方式。
每個樣本集合中均包含有晴天、遮擋、雨天三種不同環(huán)境下的車位,如UFPR04集合中:晴天車位30 851個(占用車位16 524個,空車位14 327個);遮擋車位22 065個(占用車位6 989個,空車位15 076個);雨天車位3 594個(占用車位1 041個,空車位2 553個),雨天車位在晚上歸于遮擋車位。不同環(huán)境分類樣例如圖5所示。
圖5 不同環(huán)境下車位圖
實驗中訓練樣本和測試樣本總量如表1所示。
表1 PKLot訓練和測試樣本量及分類
UFPR04、UFPR05、PUCPR樣本集合中各50%作為訓練集和測試集。使用以上三個不同訓練樣本中一個來訓練后,再用不同的三個測試集分別來測試。表2為三種算法在不同集合中的正確率。
根據(jù)表2可得出結(jié)論,在不同天氣情況下,MCNN的識別率較其他兩種算法高3~8個百分點,且識別率平均值為96.77%。
在車位檢測中,光線的變化可能會導致結(jié)果的誤判,如光線的反射或陽光照射不同角度所產(chǎn)生陰影的不同,同樣天氣原因如雨天地面積水變化會使得提取的特征有細微變化導致結(jié)果誤判。為了驗證MCNN的魯棒性,以PUCPR樣本集中三種不同環(huán)境中的一種作為訓練集,來測試網(wǎng)絡在其他兩種環(huán)境中的識別率。結(jié)果如表3所示。從表3可以看出,網(wǎng)絡在不同環(huán)境下識別率變化并不大,保持在92%以上,也充分說明MCNN具有較強的魯棒性。
卷積網(wǎng)絡在圖像分類中較傳統(tǒng)機器學習方法比較大的優(yōu)勢在于卷積特征提取和逐層抽象,其多隱含層能存儲更多特征信息。對于卷積神經(jīng)網(wǎng)絡而言,隱含層越多,抽象能力越強,其分類的結(jié)果也越準確;但隱含層增多,其網(wǎng)絡參數(shù)大量增加如在圖像分類挑戰(zhàn)賽上贏得了2012屆的冠軍的AlexNet網(wǎng)絡結(jié)構(gòu)模型包含有5層卷積層6 000萬個參數(shù),限制了它的應用空間。本文針對車位測試,提出只含有3層卷積層的MCNN,可以實現(xiàn)在參數(shù)較少的情況下較好的車位識別率,這也是本文方法的優(yōu)勢。表4為三種算法同等條件下識別率、訓練參數(shù)和訓練時間對比。
表3 對PUCPR不同環(huán)境下MCNN識別率 %
表4 三種算法同等條件下識別率,訓練參數(shù)和訓練時間對比
從表4可看出:AlexNet的總體識別率約比MCNN高0.9%,但相對于AlexNet所消耗的巨大計算量而言,這樣的損失是可以接受的, MCNN可以移植到智能攝像頭進行識別。從總體而言,MCNN實現(xiàn)了對空車位識別率較高的提升。
本文將深度學習應用于空車位檢測中,提出了改進的卷積神經(jīng)網(wǎng)絡MCNN。在實際視頻檢測處理時,對獲得的幀圖進行掩碼切割處理,使用訓練好的網(wǎng)絡,完成對車位檢測。實驗結(jié)果表明,相對對傳統(tǒng)的方法,本文算法能較準確地檢測空車位,而且計算量小,正確率高。下一步的工作中,將編寫APP,并將檢測的結(jié)果集成在APP中,以實現(xiàn)實時查看車位信息。
參考文獻(References)
[1] BLUMER K, HALASEH R H, AHSAN U M, et al. Cost-effective single-camera multi-car parking monitoring and vacancy detection towards real-world parking statistics and real-time reporting[C]// ICONIP 2012: Proceedings of the 19th International Conference on Neural Information Processing, LNCS 7667. Berlin: Springer, 2012: 506-515.
[2] DAN N. Parking management system and method: US, 200301448980AI[P]. 2002- 01- 31.
[3] WU Q, HUANG C, WANG S Y, et al. Robust parking space detection considering inter-space correlation [C]// ICME 2007: Proceedings of the 2007 IEEE International Conference on Multimedia & Expo. Piscataway, NJ: IEEE, 2007: 659-662.
[4] PAULO R L. de ALMEIDA P R, OLIVEIRA L S, et al. PKLot — a robust dataset for parking lot classification[J]. Expert Systems with Applications, 2015, 42(11): 4937-4949.
[5] JERMSURAWONG J, AHSAN U, HAIDAR A, et al. One-day long statistical analysis of parking demand by using single-camera vacancy detection[J]. Journal of Transportation Systems Engineering and Information Technology, 2014, 14(2): 33 44.
[6] FORESTI G, MICHELONI C, SNIDARO L. Event classification for automatic visual-based surveillance of parking lots [C]// ICPRP 2004: Proceedings of the 17th International Conference on Pattern Recognition. Piscataway, NJ: IEEE, 2004: 2128-2132.
[7] ABAD F, BENDAHAN R, WYBO S, et al. Parking space detection[EB/OL]. [2017- 05- 10]. https: //www.researchgate.net/publication/228716676_Parking_space_detection.
[8] CAICEDO F, BLAZQUEZ C, MIRANDA P. Prediction of parking space availability in real time[J]. Expert Systems with Applications, 2012, 39(8): 7281-7290.
[9] 俞汝劼,楊貞. 基于深度卷積神經(jīng)網(wǎng)絡的航空器的識別和檢測[J]. 計算機應用, 2017, 37(6): 1702-1707, 1715.(YU R J, YANG Z. Aircraft detection and recognition based on deep convolutional neural networks[J]. Journal of Computer Applications, 2017, 37(6): 1702-1707, 1715.)
[10] 李玉鑑, 張婷. 深度學習導論及案例分析[M]. 北京: 機械工業(yè)出版社, 2017: 1-7, 79-85.(LI Y J, ZHANG T. Introduction to Depth Learning and Case Study [M]. Beijing: China Machine Press, 2017: 1-7, 79-85.)
[11] HINTON G E,SALAKHUTDINOV R R. Reducing the dimensionality of data with neural networks [J]. Science, 2006,313(2586):504-507.
[12] SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[EB/OL]. [2016- 12- 10]. https://arxiv.org/abs/1409.1556.
[13] HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[EB/OL]. [2016- 12- 10]. https://arxiv.org/abs/1512.03385.
[14] CANNY J. A computational approach to edge detection[J]. IEEE Transaction on Pattern Analysis and Machine Intelligence, 1986, 8(6): 679-698.
This work is partially supported by the National Natural Science Foundation of China (61174025)。