李曉宇 孟令軍 王佳軍 薛志凌
(中北大學(xué)儀器與電子學(xué)院 太原 030051)
智慧城市的建設(shè)、出行方式的改變、生活質(zhì)量的提高等因素使我國機(jī)動(dòng)車保有量逐年遞增,伴生出交通擁堵、車位短缺、停車?yán)щy、停車位置遺忘等社會(huì)問題。目前,基于各類物聯(lián)網(wǎng)技術(shù)的智能停車場(chǎng)車位管理系統(tǒng)是民生建設(shè)領(lǐng)域的研究熱點(diǎn)。大連交通大學(xué)史添添等[1]設(shè)計(jì)了利用GPRS無線網(wǎng)絡(luò)將地磁感應(yīng)裝置的檢測(cè)數(shù)據(jù)實(shí)時(shí)傳至信息管理平臺(tái)的智能停車場(chǎng)車位信息檢測(cè)及管理系統(tǒng);安徽理工大學(xué)程瑤[2]設(shè)計(jì)了利用NB-IOT-ZigBee 物聯(lián)網(wǎng)技術(shù)完成車位信息的采集、傳輸、管理、發(fā)布完整流程的人機(jī)交互性停車場(chǎng)管理系統(tǒng);蔡雪香等[3]設(shè)計(jì)了利用RFID 射頻技術(shù)和嵌入式控制的實(shí)現(xiàn)停取車、收費(fèi)、管理統(tǒng)籌的智能立體停車場(chǎng)出入口管理機(jī);Karim Hammoudi等[4]設(shè)計(jì)出基于網(wǎng)絡(luò)攝像頭的低成本、非接觸式的自適應(yīng)停車場(chǎng)車位管理監(jiān)控系統(tǒng)。上述車位管理系統(tǒng)設(shè)備成本和后期維護(hù)費(fèi)高昂,需要人員實(shí)時(shí)管理。因此,本文設(shè)計(jì)的基于ZigBee 的立體停車場(chǎng)車位管理系統(tǒng)不僅成本低和無需人員管理,還很好地緩解了空車位混亂、停車難、尋車難的問題,同時(shí)對(duì)停車場(chǎng)的運(yùn)行效率起積極推動(dòng)作用。
立體停車場(chǎng)車位管理系統(tǒng)由車牌識(shí)別和車位狀態(tài)檢測(cè)組成,其中車牌識(shí)別包括車輛圖像采集、車牌定位、字符分割識(shí)別等過程,車位狀態(tài)檢測(cè)包括距離檢測(cè)、數(shù)據(jù)傳輸、閾值判斷、信息顯示等過程。車牌識(shí)別硬件使用Raspberry Pi 3B+和IMX477R圖像傳感器對(duì)車輛前身感應(yīng)拍照并顯示[5];軟件編程經(jīng)高斯模糊、灰度二值化、Sobel 邊緣檢測(cè)、形態(tài)學(xué)操作、Canny 算子、統(tǒng)一尺寸操作后分割成單字符進(jìn)行識(shí)別組合[6]。車位狀態(tài)檢測(cè)硬件使用單片機(jī)、超聲傳感器、紅外傳感器、ZigBee 模塊和Wi-Fi模塊;軟件編程經(jīng)A/D 采集轉(zhuǎn)換的距離數(shù)據(jù)通過ZigBee 技術(shù)傳輸給計(jì)算機(jī)并通過Wi-Fi 發(fā)送給上位機(jī),車主根據(jù)信息引導(dǎo)停到指定車位。系統(tǒng)硬件總體框圖如圖1所示。
圖1 系統(tǒng)硬件總體框圖
車牌由漢字、字母、數(shù)字編碼組成七字序列,用于車輛編號(hào)和信息登記。第一個(gè)字符為中文,代表省份簡(jiǎn)稱;第二個(gè)字符為字母,代表城市代碼;第三到第七個(gè)字符為字母數(shù)字編碼,代表區(qū)域車輛編號(hào)。車牌顏色根據(jù)用途不同分為多種,藍(lán)牌外形尺寸為440mm×140mm,鋁質(zhì)材質(zhì),藍(lán)底白字白框線,字符寬高為45mm×90mm,間隔符直徑為10mm,字符間間隔距為12mm,除了第二個(gè)和第三個(gè)字符間隔為34mm,四個(gè)固封螺絲將其固定在車輛上,位于車身前后,垂直固定,因此不存在較大的旋轉(zhuǎn)或變形。識(shí)別是對(duì)編碼序列進(jìn)行分割提取比對(duì)獲得車牌信息。通過計(jì)算圖像中垂直邊緣較多的矩形框和面積比例獲取疑似車牌區(qū)域圖像,對(duì)其進(jìn)行支持向量機(jī)(SVM),通過一系列條件判斷后得到真實(shí)車牌區(qū)域,分割后利用ANN 神經(jīng)網(wǎng)絡(luò)識(shí)別出字符以組成車牌號(hào)。車牌識(shí)別流程如圖2所示。
圖2 車牌識(shí)別流程圖
便捷停車必須遵守停放規(guī)則、共享車位信息和增強(qiáng)車位管理,但現(xiàn)實(shí)中很多車主隨意停放且時(shí)間一長便忘記停放位置,給自己和他人造成不便。立體停車場(chǎng)車位長5.3m、寬2.5m、層高2.5m,車位狀態(tài)檢測(cè)系統(tǒng)硬件主要有紅外傳感器、超聲傳感器HC-SR04、單片機(jī)系統(tǒng)CH32F103C8T6、ZigBee 模塊HZB001[7]、Wi-Fi 模塊ESP8266,組成原理圖如圖3 所示。紅外傳感器位于車位底部和超聲傳感器位于車位頂部,設(shè)置距離閾值分別為0.25m、1.5m,綜合判斷可以準(zhǔn)確檢測(cè)車位狀態(tài)以防止誤觸發(fā)。紅外傳感器模塊檢測(cè)距離2cm~30cm,檢測(cè)角度35°,通過主動(dòng)式紅外線反射探測(cè)到上方車輛障礙物后,輸出端口持續(xù)輸出低電平信號(hào),反之高電平信號(hào),同時(shí)喚醒超聲測(cè)距。超聲傳感器感測(cè)距離2cm~400cm,探測(cè)角度60°,通過單片機(jī)給TRIG 引腳一個(gè)至少10us 以上的高電平信號(hào)啟動(dòng)并發(fā)出八個(gè)40KHz 的方波,ECHO 引腳檢測(cè)到回波信號(hào)并持續(xù)輸出一個(gè)高電平信號(hào),根據(jù)高電平信號(hào)時(shí)間計(jì)算出距離[8]。單片機(jī)為國產(chǎn)南京沁恒公司生產(chǎn),ADC精度12 位,與STM 芯片兼容,并且價(jià)格便宜。Zig-Bee 以CC2530 為主控,多節(jié)點(diǎn)通信,全雙工透?jìng)鳎?20 米通信距離,超低功耗,波特率設(shè)置為115200,從模塊網(wǎng)絡(luò)ID 為0×0001、0×0002、…,主模塊目的地址為0×0000。Wi-Fi 模塊采用ESP8266 為主控,將數(shù)據(jù)發(fā)送到上位機(jī)。
圖3 車位狀態(tài)檢測(cè)原理圖
立體停車場(chǎng)出入口采集的車輛圖像往往含有與車牌面積特征相近的干擾因素,如車燈輪廓、后視鏡輪廓、車標(biāo)、進(jìn)氣柵格等。不排除干擾會(huì)增加硬件資源,延長計(jì)算時(shí)間,降低準(zhǔn)確率,因此采用高斯模糊、灰度二值化、Sobel 邊緣檢測(cè)、形態(tài)學(xué)圖像處理、Canny 算子等操作去除干擾。車輛圖像以圖4為例,尺寸為640×480像素,以時(shí)間命名方式存入SD卡中。
圖4 采集的車輛初始圖像
首先對(duì)車輛初始圖像進(jìn)行高斯模糊操作以減少圖像噪聲、降低細(xì)節(jié)層次,使邊緣變得平滑。具體步驟為:1)獲得原像素點(diǎn)的RGB 三通道值;2)邊緣像素進(jìn)行鏡像擴(kuò)充,以防模板核在邊緣處卷積出錯(cuò);3)設(shè)模糊半徑為3,模板為7*7,根據(jù)模板像素坐標(biāo)和二維高斯函數(shù)式(1)計(jì)算出權(quán)重矩陣;4)圖像內(nèi)像素點(diǎn)通道值與對(duì)應(yīng)權(quán)重相乘和得到新像素點(diǎn)通道值,得到高斯模糊效果圖像如圖5 所示,明顯看出細(xì)節(jié)處模糊,顏色邊緣層次過渡自然,亮度變暗。
圖5 高斯模糊效果圖像
式中,(i,j)為模板內(nèi)像素點(diǎn)坐標(biāo),(i0,j0)為中心點(diǎn)坐標(biāo),σ為1.5。
其次進(jìn)行灰度化[9]以減輕計(jì)算復(fù)雜度,提高識(shí)別效率,即R、G、B 三分量以不同的權(quán)重進(jìn)行加權(quán)平均,見式(2)。得到灰度化圖像如圖6 所示。車牌顏色損失的后果不影響本系統(tǒng)后續(xù)處理步驟同時(shí)也可以處理不同車牌。
圖6 灰度化圖像
式中,ωr=0.299,ωg=0.587,ωb=0.114,且三者之和為1。
然后對(duì)灰度化圖像進(jìn)行Sobel邊緣檢測(cè)以檢測(cè)出不同像素點(diǎn)邊緣值,即求水平和垂直方向上的灰度矢量以得到圖形邊緣[10]。采用周邊值加權(quán)和卷積法,見式(3)。本系統(tǒng)中水平和垂直方向梯度權(quán)重占比為0.5。
式中,G(i,j)為新灰度值,和為水平和垂直方向的卷積因子,A(i,j)為像素點(diǎn)初始灰度值。如果G(i,j)在上下、左右鄰點(diǎn)達(dá)到極值即該像素點(diǎn)為邊緣點(diǎn)。Sobel邊緣檢測(cè)效果如圖7 所示。結(jié)果表現(xiàn)出有些邊緣線不連續(xù)和顏色梯度分差小。因此采用自適應(yīng)閾值二值法優(yōu)化,使邊緣線連續(xù)明顯以利于準(zhǔn)確選取車牌區(qū)域。將小于閾值的值變?yōu)?(黑色),大于閾值的值變?yōu)?(白色)。二值化結(jié)果如圖8所示。
圖7 Sobel邊緣檢測(cè)結(jié)果圖
圖8 自適應(yīng)閾值二值化結(jié)果圖
再用形態(tài)學(xué)操作中的開閉操作對(duì)圖像進(jìn)行膨脹腐蝕,使白色邊緣線形成連通域。閉操作用來填充目標(biāo)內(nèi)部的細(xì)小孔洞,將斷開的鄰近目標(biāo)連接,在不明顯改變物體面積和形狀的情況下平滑其邊界,模板大小為18×4;開操作用來消除圖像中細(xì)小對(duì)象,在纖細(xì)點(diǎn)處分離物體和平滑較大物體的邊界而有不明顯改變其面積和形狀,模板大小為10×3。通過形態(tài)學(xué)操作后細(xì)小邊緣線演變成塊狀區(qū)域,將所有可能區(qū)域全部包含進(jìn)去。形態(tài)學(xué)操作結(jié)果如圖9 所示??闯鲇行┰緣K狀區(qū)域變成連通域,減少了判斷輪廓時(shí)間。
圖9 形態(tài)學(xué)操作結(jié)果圖
最后進(jìn)行取輪廓,通過Canny 算法將連通域的邊界描繪出來。操作步驟:1)高斯濾波器平滑圖像;2)計(jì)算梯度幅度和梯度角度;3)對(duì)梯度幅度圖像應(yīng)用非極大值抑制;4)使用雙閾值來檢測(cè)和連通性連接邊緣,設(shè)定閾值為100、150。形成外接矩形,對(duì)其進(jìn)行尺寸判斷,排除不是車牌的矩形以提高準(zhǔn)確率和效率。由于車牌尺寸為440mm×140mm,寬高比為3.14,設(shè)定一個(gè)偏差率和面積率,偏差率為寬高比的最小和最大值,面積率為矩形輪廓面積最小和最大值,滿足所有條件保留下來的輪廓統(tǒng)稱疑似區(qū)域。再對(duì)疑似區(qū)域進(jìn)行角度判斷,正常情況下車牌不會(huì)有很大的傾斜變形,設(shè)置角度閾值30°,小于閾值的為疑似車牌區(qū)域。通過一系列條件篩選后,包含車牌區(qū)域的結(jié)果已選出,結(jié)果如圖10 所示。最后對(duì)符合條件的矩形區(qū)位置映射到原始圖像中取出,統(tǒng)一尺寸為136 ×34 像素,如圖11所示。
圖10 疑似車牌區(qū)域框選結(jié)果
圖11 車牌區(qū)域
在車牌定位部分,車型不同最后可能會(huì)產(chǎn)生不止一個(gè)疑似車牌區(qū)域,因此需要支持向量機(jī)(SVM)[11~12]來準(zhǔn)確獲得車牌區(qū)域。本文使用的是OpenCV 中的CVSVM,分為訓(xùn)練和預(yù)測(cè)兩個(gè)過程,訓(xùn)練過程首先設(shè)置訓(xùn)練樣本數(shù)據(jù),準(zhǔn)備1000 張圖像,其中700張為車牌作為正樣本,300張為車輛其他部位作為負(fù)樣本;SVM 參數(shù)調(diào)優(yōu)和利用CVSVMPararms 類實(shí)現(xiàn)類內(nèi)的成員變量表示;調(diào)用CvS-VM::train 函數(shù)建立SVM 模型,第一個(gè)參數(shù)是圖像全部像素,第二個(gè)參數(shù)是分類結(jié)果;調(diào)用CvSVM::predict 實(shí)現(xiàn)分類。預(yù)測(cè)過程是將測(cè)試樣本輸入到SVM模型中通過結(jié)果驗(yàn)證模型準(zhǔn)確性,通過不斷調(diào)參和優(yōu)化以得到正確車牌。
對(duì)車牌進(jìn)行字符分割,輸入歸一化車牌進(jìn)行顏色判斷,然后進(jìn)行灰度化,再利用顏色判斷結(jié)果確定閾值參數(shù)而進(jìn)行二值化,利用findContours 函數(shù)獲取字符輪廓,最后通過最小外接矩形分割出每個(gè)字符并對(duì)矩形的寬高比和面積進(jìn)行驗(yàn)證以歸一化保存,每個(gè)字符尺寸為15*24 像素,字符分割結(jié)果如圖12所示。
圖12 字符分割結(jié)果
對(duì)車牌進(jìn)行字符識(shí)別,使用ANN 人工神經(jīng)網(wǎng)絡(luò)對(duì)字符進(jìn)行訓(xùn)練識(shí)別[13~14],ANN 的特征設(shè)為字符的水平方向與垂直方向的累計(jì)直方圖和低分辨率圖像,設(shè)置12 個(gè)隱藏層,通過ANN.train 函數(shù)并設(shè)置相應(yīng)參數(shù)對(duì)字符訓(xùn)練,使用ANN.predict 函數(shù)對(duì)各個(gè)車牌特征進(jìn)行預(yù)測(cè)。每層傳播過程如式(4)所示。
式中,Wi為系數(shù)矩陣的第i行,由in在該層的位置決定,b為偏置項(xiàng),activation()為激活函數(shù),x為每層的輸出。
至此車牌信息已經(jīng)獲取,引導(dǎo)車輛停在指定空車位便是傳感器所做工作。系統(tǒng)使用兩類傳感器,分別為紅外傳感器和超聲傳感器。通過CH32單片機(jī)控制低功耗穩(wěn)定工作,由紅外傳感器先粗略檢測(cè)再觸發(fā)超聲傳感器精確檢測(cè),紅外傳感器每隔1s檢測(cè)一次,檢測(cè)到車位上有車輛后,指示燈亮起,超聲傳感器發(fā)出超聲波,單片機(jī)計(jì)算回波信號(hào)高電平時(shí)間,環(huán)境溫度由DS18b20 采集,室溫下超聲波在空氣中傳播速度為334m/s,但其傳播速度受溫度、濕度影響較大,因此距離計(jì)算采用溫度補(bǔ)償式[15],如式(5)。
式中,S 為距離,單位m/s,T 為溫度,單位℃,t 為高電平時(shí)間,單位ms。通過從ZigBee 模塊將距離數(shù)據(jù)傳輸給主ZigBee模塊,判定閾值后將車位信息更新至上位機(jī)。反之,紅外傳感器沒有檢測(cè)到車輛,指示燈滅,超聲傳感器不工作,因此上位機(jī)顯示該車位為空。
車牌識(shí)別中的測(cè)試數(shù)據(jù)選自開源的EasyPR 中的車牌數(shù)據(jù)集[16]和本系統(tǒng)采集處理的20 張車輛圖像,從中選出1000 張圖像(700 張是車牌,300 張不是車牌)作為樣本集用于SVM 模型調(diào)優(yōu)和ANN 神經(jīng)網(wǎng)絡(luò)訓(xùn)練以達(dá)到高定位準(zhǔn)確率。其中300 張不是車牌圖像作為干擾因素以提高模型判斷魯棒性。由于車牌具有豐富的垂直邊緣的原因使干擾圖像在SVM 中排除。ANN 神經(jīng)網(wǎng)絡(luò)中對(duì)省份簡(jiǎn)稱、數(shù)字、大寫字母進(jìn)行了特征標(biāo)識(shí),但偶爾會(huì)在0與D、1 與I,8 與B 等字符上混淆識(shí)別錯(cuò)誤,本系統(tǒng)對(duì)特殊字符進(jìn)行了加強(qiáng)優(yōu)化和閾值縮小,使車牌識(shí)別準(zhǔn)確率達(dá)93%。超聲測(cè)距部分具有雙重判斷和溫度補(bǔ)償及ZigBee 技術(shù)穩(wěn)定傳輸使車位狀態(tài)檢測(cè)準(zhǔn)確率達(dá)98%。
軟 件 環(huán) 境 使 用 python3.6、OpenCV4.1、2019-09-26-raspbian-buster、numpy、image、CVSVM、matplotlib 等,使用python 和C 語言編程。經(jīng)過器件選型,系統(tǒng)搭建,程序編寫,參數(shù)優(yōu)化等設(shè)計(jì)出一種基于ZigBee的立體停車場(chǎng)管理系統(tǒng),系統(tǒng)實(shí)物如圖13所示。
圖13 系統(tǒng)實(shí)物圖
上位機(jī)使用成熟的機(jī)智云App,車主可以在上位機(jī)上查閱到當(dāng)前停車場(chǎng)信息(空車位名稱、總車位數(shù)量、車位引導(dǎo)、空車位數(shù)量),方便快捷。上位機(jī)界面效果如圖14所示。
圖14 上位機(jī)效果圖
立體停車場(chǎng)是智慧城市建設(shè)的需求,相比較普通停車場(chǎng)具有占地小、車位多、管理便捷等優(yōu)勢(shì)。本文設(shè)計(jì)了一種基于ZigBee 的立體停車場(chǎng)車位管理系統(tǒng),既降低硬件成本又提高運(yùn)算速率,具有應(yīng)用價(jià)值。通過對(duì)車牌圖像多重處理和車位實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)融合,實(shí)現(xiàn)車輛停放管理。未來希望在新能源車牌識(shí)別和環(huán)境自適應(yīng)上進(jìn)一步研究設(shè)計(jì)。