彭瑾



關鍵詞:智慧停車場;STM32;深度學習
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2023)20-0057-03
0 引言
隨著我國經濟的快速發展,汽車成為人們生活中的必備品,對于停車位的需求也大量增加。傳統的停車場管理系統通常是人工進行管理,智慧化程度不高[1-2]。物聯網技術的飛速發展帶動了各個領域的智慧化改造,智慧化停車場管理系統的需求成為新的發展方向[3]。停車行業存在供需矛盾顯著,資源利用不均,信息化、智能化程度不足,信息無法共享,管理效率較低,產業鏈新技術快速發展,需求多樣化,停車行業能力不足等諸多問題。智慧停車場管理系統是將車輛檢測、車牌識別、管理顯示等功能集成的自主運營總成系統,具有無人化管理、精準計費、遠程監控等突出優勢[4-5]。
本文將詳細介紹基于STM32的智慧停車場管理系統的設計、實現,采用圖像識別技術檢測車輛多參量信息(車牌、車型等),通過深度學習神經網絡算法進行車牌檢測和車牌識別,設計多媒體顯示界面,將車牌識別結果顯示在LCD屏幕上并語音播報,根據識別結果對閘機進行控制,從而實現停車場系統的無人化自動管理功能。
1 系統總體設計方案
根據設計思路,智慧停車場管理系統的開發流程如圖1所示。
根據開發流程,智慧停車場管理系統可以分為三個模塊,模塊一是車牌識別模型部署;模塊二是閘機控制系統的構建;模塊三是智慧停車場管理系統項目開發(車牌識別功能插件構建、閘機控制功能插件構建和功能集成)。
2 各模塊解決方案
2.1 車牌識別和模型部署
車牌識別技術是智慧停車場系統中的重要組成部分。車牌識別模型部署主要分為三個步驟:首先,提取圖像中的車牌大致位置。然后,加載車牌識別模型,提取車牌的精確位置。最后,利用OCR字符識別方法識別車牌號并輸出。
2.1.1 車牌粗提取
對采集到的車牌要進行初步檢測定位,目的是檢測出車牌大致位置,對圖像進行一些插補和調整比例,其中,核心部分就是cascade級聯分類器的應用。這里的級聯分類器基于Haar+Adaboost構成,也即cas?cade.xml文件,該文件存放了一些車牌的Haar特征。
這里,我們采用了cascade.xml 檢測模型,然后使用OpenCV的detectMultiscale方法對圖像進行滑動窗口遍歷尋找車牌,實現車牌的粗定位。
其中,detectMultiscale()函數為多尺度多目標檢測。通常,多尺度搜索目標的模板尺寸大小是固定的,但不同圖片大小不同,目標對象的大小也不固定,因此,多尺度即不斷縮放圖片大小(縮放到與模板匹配),通過模板滑動窗函數搜索匹配。同一幅圖片可能在不同尺度下都可以得到匹配值,所以多尺度檢測函數detectMultiscale()是多尺度合并的結果。
因此,cascade.xml這個文件是通過很多的正樣本車牌圖片和負樣本非車牌圖片轉換的cascade.xml文件,其中的Haar特征數據已經通過Adaboost處理。通過這個xml文件可以訓練出一個級聯分類器,該分類器的判別車牌標準是通過計算大量車牌特征后得出的一個閾值,大于這個閾值判別為車牌,否則判別為非車牌,如圖2所示,通過該方法得到了圖像中車牌的粗定位。
2.1.2 車牌精提取
對車牌進行粗定位后,再對車牌進行精定位。這里的精定位是切掉原來粗定位后車牌的多余部分,首先,使用透視變換矯正車牌位置。然后,調用tflite模型實現垂直精細繪圖方法輸出車牌精定位。使用OpenCV 的getPerspectiveTransform()和warpPerspective()函數實現透視變換,矯正圖像中的車牌位置。
2.1.3 車牌識別實現
確定好車牌位置后,對該車牌字符信息進行識別,最終輸出車牌號。車牌字符信息識別采用OCR字符識別技術,也就是在不分割字符的前提下能夠識別出車牌七個字符。傳統的車牌字符識別是先分割字符然后再逐一使用分類算法進行識別。不分割字符直接識別方式的優點是僅需較少的字符樣本即可用于分類器的訓練。目前,大多數商業車牌識別軟件采用的就是這種方法。在某些惡劣的自然情況下,車牌字符的分割和識別變得尤其困難,在傳統的方法不能取得很好的結果時,可以采用整體識別方式。通常,車牌由七個字符組成,可以采用多標簽分類的方法直接輸出多個標簽,如圖 3所示。
2.2 閘機控制系統構建
閘機系統采用了智能節點核心控制板、舵機執行器、LCD顯示屏、語音識別模塊攝像頭等硬件模塊。
1) 智能節點核心控制板
核心板采用ARM-Cortex-M4內核的STM32F407ZET6為主控芯片,主要實現與項目軟件部分進行通信,獲取車牌識別結果并上傳閘機狀態,同時通過串口控制舵機執行器開關,控制LCD顯示屏顯示車牌號等功能。
2) 舵機執行器
舵機是一種位置(角度)伺服的驅動器,適用于一些需要角度不斷變化并可以保持的控制系統。舵機實際上是一種俗稱,其是一種伺服馬達。
舵機SG90由三根線控制。暗灰色線為GND,地線;紅色線為VCC,電源線,工作電壓為4.8~7.2V,通常情況下使用+5V做電源電壓;橙黃色線為控制線,通過該線輸入脈沖信號,從而控制舵機轉動,其轉動角度為180°。
3) LCD顯示屏
TFT-LCD即薄膜晶體管液晶顯示器,主要實現車牌號和車位數顯示功能。閘機控制系統構建效果如圖4所示。
2.3 基于車牌識別的道閘控制系統
2.3.1 車牌識別功能插件構建
實現第一個功能插件,車牌圖像獲取功能插件。調用攝像頭獲取車牌圖像,獲取車牌識別結果消息隊列,并調用函數實現車牌識別結果繪制。
2.3.2 車牌識別模型推理功能插件實現
首先,獲取待識別車牌圖像,調用車牌識別函數實現車牌識別,并將識別結果傳遞到消息隊列。然后,定義車牌識別模型推理函數,輸入待識別車輛圖像,調用車牌檢測級聯分類器模型提取車牌圖像,再對提取出的車牌圖像進行矯正和精提取。最后,調用OCR字符識別模型和字符標簽文件輸出車牌號。
識別到車牌后,將識別結果傳遞到q_rec識別結果消息隊列,車牌圖像獲取線程就會對識別結果進行繪制。根據返回的車牌位置坐標,利用OpenCV繪制出矩形框選出車牌框,再將車牌號顯示到矩形框上方,從而實現車牌識別結果的可視化顯示。
2.3.3 道閘控制系統功能插件構建
實現嵌入式設備數據傳遞插件,將車牌識別結果以及閘機控制指令傳遞給閘機控制系統。
3 系統設計結果展示
車牌識別結果如圖5所示,當檢測到正確的車牌后,控制閘機系統打開舵機。
4 結束語
本文的智慧停車場管理系統開發項目結合人工智能技術和嵌入式硬件設備模擬實現智慧停車場管理系統。首先,利用深度學習神經網絡算法進行車牌檢測和車牌識別。然后,根據識別結果對閘機進行控制以及LCD屏幕顯示車牌識別結果和當前車位占領情況。最后,結合Web端進行數據分析和可視化。其中,車牌識別技術不但可以用于智慧停車場,還可以在智慧交通、智能駕駛等場景使用,具有較高的參考價值。