?

基于手機APP 的車牌識別系統設計

2024-04-16 03:25孟令權熊威喻亞云程宇昊胡安正陳傳亮
電子制作 2024年6期
關鍵詞:車牌字符運算

孟令權,熊威,喻亞云,程宇昊,胡安正,陳傳亮

(湖北文理學院 物理與電子工程學院,湖北襄陽,441053)

0 引言

隨著經濟的飛速發展,汽車的數量在不斷增加,它的增加會造成亂停車的現象,而在日常的智能交通管理系統中,大多數采用固定式的智能監控設備,就是在停車場入口或高速公路入口處設立長期的車牌識別裝置,如高速公路入口處的ETC 通道,優點在于無需人工值守,并且可針對任意網絡覆蓋路段實行全天監控。但仍然有許多缺點,其制造成本較高,且靈活性不足,不能對路邊違停車輛及商場周邊的臨時停車車輛進行及時有效地管理,所以針對這些固定式識別設備的缺點,移動便攜式車輛牌照識別裝置將有很大的發展空間。

1 基于手機APP 的車牌識別系統總體設計思路

該車牌識別系統核心主要分為兩大部分,前臺手機APP 的設計和后臺裝置的車輛監管系統。前端手機app 實現車牌照片的拍攝、與后臺裝置的數據交換以及人機交互等功能;后臺裝置實現車牌號識別、數據管理和數據收發操作。前臺手機APP 的設計是采用Qt 開發平臺設計,采用C++和QML 混合編程制作Android 和IOS 多平臺通用的移動客戶端。通過客戶端拍攝并上傳目標車輛的車牌照片至網絡服務器端,然后后臺裝置對傳輸來的圖片進行預處理,利用邊緣特征和顏色特征算法結合定位車牌,使用優化后卷積神經網絡中的LeNet-5 模型,應用于字符識別,具有很高的正確率。接著輸出車牌數據給警務平臺,警務平臺查詢該車牌號,獲取車主信息和車輛數據,將其發送到前端手機APP,進而可以判斷目標車輛是否是為正常車輛。系統總體流程圖如圖1 所示。此外,針對車輛管理系統,建立了基于MySQL 的車輛數據庫,在接收到信息之后會將數據上傳到MySQL 數據庫中,封裝查詢、修改、添加等操作API,方便車輛管理系統調用?;贛ySQL 的車輛數據庫在時代趨勢下具有可靠性、可擴展性、性能優化、開源性和兼容性等優點,能夠滿足車輛數據管理的需求,并適應不斷變化的時代趨勢。

圖1 系統總體框圖

2 后臺裝置的車輛監管系統的設計介紹

■2.1 基于邊緣檢測與顏色特征識別的車牌區域檢測

2.1.1 基于邊緣檢測的車牌區域檢測算法介紹

首先對圖像進行預處理,通過高斯濾波去除圖像中的噪聲,獲取目標特征,然后對圖像進行灰度化處理,然灰度圖只有一個顏色等級,但是灰度圖像的描述與彩色圖像一樣仍然反映了整幅圖像的整體和局部的色度和亮度等級的分布和特征。然后通過搜索圖像中灰度值變化波動較大的點,從而檢測出圖像中事物的邊界。由于Canny 算子具有圖像降噪、增強、檢測等多環節作用,并且其圖像結構清晰,因此選用Canny 算子進行邊緣檢測。

然后,對圖像進行開閉運算。開運算是先腐蝕再膨脹,閉運算則與開運算相反。通過應用開閉運算,可以使圖像的輪廓更加光滑,并去除小的孔洞。在這里,可以20×20 的全1 結構對圖像進行開運算,再選用4×19 的全1 結構對圖像進行一次閉運算和開運算。

完成開閉運算后,圖像上會形成一些連通區域??梢酝ㄟ^輪廓檢測獲取所有邊界連續的像素序列,并生成最小外接矩形。計算矩形的面積,并排除面積最小的矩形。根據車牌的形狀特征,可以計算矩形的寬高比,進一步排除非車牌區域的矩形。通過這些步驟,可以粗略地定位車牌區域,如圖2 所示。

圖2 粗略定位車牌

2.1.2 基于顏色特征的車牌區域檢測算法介紹

本算法使用了兩種空間模型進行了對車牌進行粗定位,一種是RGB 顏色空間模型,該顏色空間屬于基色顏色空間,其顏色顯示原理同彩色顯示器顯示色彩相同,由R、G、B相加混色而成。在RGB 顏色空間中,任意顏色都可以通過R、G、B 三個不同的分量表示。另一種是HSV 顏色空間模型,它是一種基于感知的顏色模型,該顏色空間可用圖3 來描述。

圖3 HSV 顏色空間模型

RGB 顏色空間根據物理原理表示,采用R、G、B 三色混合,適合彩色顯像管工作。然而這種表示不利于人的視覺感知特點,與RGB 顏色空間相比,HSV 顏色空間更類似人類感覺顏色的方式,便于顏色的對比。因此將RGB 轉化為適合進行顏色對比的HSV 空間,其轉換公式為:

針對不同顏色的車牌設定不同的閾值,根據閾值設定掩膜的參數,利用掩膜與圖像進行操作,保留需要的像素,剔除非需要像素。經過HSV 閾值處理后的車牌圖像還包含許多細小的孔洞,為了填充這些細小的孔洞、聯通車牌區域、使車牌區域更加平滑,本文采用圖像開閉運算來解決上述問題,采用20×20的全1結構對圖像進行一次閉運算和開運算。

最后通過輪廓檢測獲取所有邊界連續的像素序列,將獲取的所有邊界輪廓生成最小外接矩形,計算矩形面積并排出最小面積的矩形;根據車牌的形狀特征,計算矩形的寬高比,進一步排除非車牌區域的矩形。最終粗略定位結果如圖4 所示。

圖4 粗略定位結果

■2.1.3 精確定位車牌區域

基于邊緣檢測的車牌區域檢測算法具有噪聲抑制、適應暗環境和快速處理的優勢,能檢測多個候選區域。但邊緣檢測定位的車牌區域通常不止一個,需要進一步篩選?;陬伾卣鞯能嚺茀^域檢測算法在光線好的情況下準確,但在光線暗、車牌褪色等情況下不準確??赏ㄟ^結合邊緣和顏色特征實現初步定位。

拍攝不同車輛時,由于條件不同,距離和角度差異,導致車牌圖片傾斜、不利于定位和字符分割。采用仿射變換解決車牌圖像的垂直傾斜問題。通過粗定位獲取車牌區域的四個角點,確定車牌的傾斜極性。根據傾斜方向選擇矯正后車牌的參考點,并計算其他角點的坐標。通過仿射變換將原始車牌圖像的角點映射到矯正后的角點,實現車牌圖像的矯正。

本文將經過矯正的車牌區域圖像轉換為HSV顏色空間,并設定黃牌、藍牌、綠牌的顏色閾值。通過統計符合各顏色閾值的像素數量來確定車牌的顏色。然后,根據識別的車牌顏色設定分割閾值,逐行和逐列掃描車牌區域圖像,統計符合閾值的像素數量,保留達標的行列,剔除不達標的區域。最終得到精確定位的結果如圖5 所示。

圖5 精確定位結果

■2.2 基于投影法的車牌字符分割

本文提出了基于投影法的動態閾值字符切割方法。首先將車牌區域的做水平投影,根據像素分布自動設定閾值,去除車牌上下邊框;然后進行垂直投影,自動設定閾值并分割邊框及字符。該方法解決了字符過分分割的問題。字符歸一化部分通過計算寬高比,并采用圖像邊界擴展和雙線性插值法,將字符歸一化為32×40 像素大小的圖片。最終實現字符分割和歸一化。

■2.3 基于改進LENET-5 網絡的車牌號碼識別

本文字符的識別采用了LeNet-5,這是一個經典的卷積神經網絡模型。經過激活函數和損失函數的選擇和優化后,對字符的大小進行了調整,將輸入層的尺寸修改為40×32 像素的灰度圖像。為適應字符檢測的圖片,進行左右填充和縮放等操作,從而優化了輸入層。此外,還添加了dropout 層,以有效防止過擬合問題,尤其是在訓練樣本較少的情況下。最后,在自行創建的字符數據集上,經過改進的LeNet-5 算法進行實驗。

第一步歸一化數據集的顏色深度及大小,第二步建立模型結構,第三步創建Session,第四步輸入數據集訓練和測試模型,第五步保存模型參數,具體模型訓練流程圖如圖6 所示。

圖6 模型訓練流程圖

實驗結果顯示,漢字的平均識別率達到了97.8%,而字符和數字的平均識別率則為98.9%。這表明該方法在字符識別方面取得了良好的效果。

■2.4 基于MySQL 的車輛數據庫

MySQL,這是一種關系型數據庫管理系統。MySQL 支持多種開發語言,包括C、C++、Java、Python 等,而且可以在多種平臺上運行。它具有許多優點,包括簡單易用、對個人用戶基本免費、體積小、支持查詢語言、性能強、安全性高和速度快等。

車輛管理數據庫是使用Python 語言隨機生成的。該數據庫包含了各種信息,如姓名、電話、性別、民族、準駕車型、出生日期、領證日期、駕駛證有效日期等等。這些信息將有助于車輛管理系統有效地跟蹤和管理車輛和相關的駕駛人員信息。

3 前端手機APP 的設計

■3.1 軟件設計總體方案

在手機APP 的前端設計方面,主要采用了Qt 開發平臺,Qt 是一個強大的跨平臺應用程序開發框架,支持多種操作系統,包括Windows、Mac OS X、Linux、Android、iOS以及WP 等。Qt Quick 則是一項新技術,特別適用于移動終端應用的設計,具備支持動態觸摸式界面的能力。

UI 界面的設計采用了QML 語言,這種語言提供了高度的自由度,使得輕松進行布局和控件繪制成為可能。同時,它也支持與Qt 的無縫集成,讓界面設計變得更加靈活。

為了實現與服務器的通信,采用了Qt 中的QTcpSocket類作為客戶端,用于連接服務器并建立通信套接字。這確保了APP 能夠有效地與后端進行數據傳輸,從而實現車牌圖片的傳輸、識別以及車主和車輛信息的匹配功能。

在進行APP 測試時,采用了iOS 操作系統,并運行于iPhone 6S 設備上,連接了WiFi 網絡以保證順暢地通信。用戶通過APP 可以輕松地拍攝車牌圖片,系統將自動識別車牌并與相應的車主和車輛信息進行匹配。此外,APP 提供了多個功能界面,包括登錄、主界面、拍攝和信息展示界面,以便用戶可以方便地使用各項功能。

■3.2 手機APP

本文采用的是QML 設計的UI 界面,QML 可以使用代碼輕松布局繪制控件,自由度極高,也可以直接使用Qt 進行布局,自動生成代碼。通過C++實現的TCP/IP 通信,然后QML 與C++進行交互QML 與C++交互有多種方式,本文將C++中的類注冊一個QML 類型,通過qmlRegisterType()注冊一個非單例類型,下面是注冊QML 類型的相應代碼:

qmlRegisterType("an.qt.LPR", 1, 0,"LPR");

上面代碼將C++中LPR 類注冊為QML 類LPR,主版本為1,次版本為0,包名為an.qt.LPR。在QML 代碼中引入包名,即可使用LPR 類。手機APP 的程序流程圖如圖7所示,APP 的信息界面如圖8 所示。

圖7 手機APP 的程序流程圖

圖8 信息界面圖

4 結束語

本文設計了基于前端手機app 和后臺裝置的車輛監管系統。執法人員使用手機作為拍攝裝置,將拍攝的車輛圖片通過互聯網發送至后臺裝置進行處理和識別,然后將識別結果與數據庫對比,并將車輛信息發送給手機端。該系統具有制作成本低、靈活性高、識別率高和便于管理的特點,能夠支持執法人員隨時隨地處理違規車輛,并記錄相關信息,提高工作效率。

該系統具有廣闊的應用前景,特別是在交警處理違停車輛方面。因此,設計、研究并制作基于前端手機APP 和后臺裝置的車輛監管系統實物模型對于實現這一目標非常必要。

猜你喜歡
車牌字符運算
尋找更強的字符映射管理器
重視運算與推理,解決數列求和題
有趣的運算
字符代表幾
一種USB接口字符液晶控制器設計
數字圖像處理技術在車牌識別系統中的應用
消失的殖民村莊和神秘字符
第一張車牌
“整式的乘法與因式分解”知識歸納
基于MATLAB 的車牌識別系統研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合