齊佳鑫,張志華,付金尉,賀紫菡,司志廣,王藝雄
(遼寧科技大學(xué)電子與信息工程學(xué)院,遼寧 鞍山 114051)
隨著城市交通的快速發(fā)展和車(chē)輛數(shù)量的不斷增加,交通管理和安全監(jiān)控需求增加,車(chē)牌識(shí)別技術(shù)在智能交通系統(tǒng)中變得至關(guān)重要,扮演著重要的角色。車(chē)牌識(shí)別技術(shù)可以實(shí)現(xiàn)對(duì)車(chē)輛的自動(dòng)識(shí)別和追蹤,為交通管理、安全監(jiān)控、道路收費(fèi)等領(lǐng)域提供了有效的解決方案。因此,車(chē)牌識(shí)別技術(shù)尤為重要,本文將利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)設(shè)計(jì)一種準(zhǔn)確率較高的車(chē)牌識(shí)別系統(tǒng)。車(chē)牌識(shí)別的流程主要包括以下3 個(gè)部分:圖像預(yù)處理、車(chē)牌定位與分割、車(chē)牌字符識(shí)別。圖1 為車(chē)牌識(shí)別流程。
圖1 車(chē)牌識(shí)別流程
在圖像預(yù)處理階段,噪聲去除和圖像增強(qiáng)是重要的步驟,可以提高車(chē)牌識(shí)別系統(tǒng)的準(zhǔn)確性和穩(wěn)定性。圖2 為汽車(chē)圖像的原圖。
圖2 汽車(chē)圖像的原圖
常見(jiàn)濾波降噪的方式包括中值濾波、均值濾波以及高斯濾波等。本文采用的方式為高斯濾波[1]。高斯濾波是一種常用的線性圖像濾波方法,用于平滑圖像并去除高頻噪聲。其原理是使用高斯函數(shù)對(duì)像素周?chē)徲騼?nèi)的像素進(jìn)行加權(quán)平均,以降低圖像中的高頻成分。對(duì)于圖像中的每個(gè)像素,高斯濾波器會(huì)取該像素周?chē)徲虻南袼刂?,并根?jù)高斯函數(shù)的權(quán)重對(duì)鄰域內(nèi)的像素進(jìn)行加權(quán)平均。在高斯濾波中,像素周?chē)徲騼?nèi)的像素值與高斯函數(shù)的權(quán)重進(jìn)行加權(quán)平均,以得到平滑后的像素值。高斯濾波的公式為
式中:I'(x,y)是經(jīng)過(guò)高斯濾波后的圖像的像素值;(x,y)是當(dāng)前像素的坐標(biāo);(a,b)是鄰域內(nèi)的像素的坐標(biāo);I(a,b)是鄰域內(nèi)的像素的原始值;G(a,b)是高斯函數(shù)的權(quán)重,表示鄰域內(nèi)的像素與當(dāng)前像素的距離和標(biāo)準(zhǔn)差的關(guān)系。高斯函數(shù)的公式為
式中:σ 為高斯函數(shù)的標(biāo)準(zhǔn)差,其大小決定了函數(shù)曲線的寬度;π 為圓周率。圖3 為高斯濾波后的效果圖像。
圖3 高斯濾波后的效果圖像
顏色空間轉(zhuǎn)換可以將圖像從原始顏色空間轉(zhuǎn)換到更適合車(chē)牌識(shí)別的顏色空間。常用的顏色空間包括RGB、HSV、YUV 等。本文采用的是從RGB 到灰度的轉(zhuǎn)換[2]:將彩色圖像轉(zhuǎn)換為灰度圖像,可以減少計(jì)算復(fù)雜度,并且在一些情況下,灰度圖像對(duì)車(chē)牌區(qū)域的邊緣和紋理信息更加敏感。圖4 為灰度圖像。
圖4 灰度圖像
1)邊緣檢測(cè)。邊緣檢測(cè)是車(chē)牌定位[3]與分割的重要步驟,常用的方法有Sobel 算子、Canny 算子、Laplacian 算子等。根據(jù)Sobel 算子[4-5]的原理,對(duì)圖像像素點(diǎn)做卷積,卷積核見(jiàn)圖5。
圖5 Sobel 算子的卷積核
然后,對(duì)生成的新像素灰度值做閾值運(yùn)算,其公式為
以此來(lái)確定邊緣信息。本文采用Sobel 算子進(jìn)行邊緣檢測(cè),Sobel 算子邊緣檢測(cè)后的效果圖像見(jiàn)圖6。
圖6 Sobel 算子邊緣檢測(cè)后的效果圖像
2)圖像形態(tài)學(xué)處理[6]。邊界定位是在檢測(cè)到邊緣后,對(duì)于邊緣檢測(cè)后的圖像進(jìn)行閉運(yùn)算,進(jìn)行先膨脹再腐蝕的操作,將白色部分煉成一個(gè)整體。圖7 為閉運(yùn)算后的效果圖像。
3)輪廓檢測(cè)。輪廓檢測(cè)方法:利用OpenCV庫(kù)中的FindContours () 函數(shù)檢測(cè)到閉運(yùn)算處理后的連續(xù)邊緣,并在原圖中繪制出可能為車(chē)牌圖像的外輪廓。圖8 為輪廓檢測(cè)效果圖像。
圖8 輪廓檢測(cè)效果圖像
4)車(chē)牌定位。根據(jù)車(chē)牌的面積、長(zhǎng)寬比等特征,識(shí)別出車(chē)牌位置,并進(jìn)行切割。車(chē)牌定位結(jié)果圖像見(jiàn)圖9。
圖9 車(chē)牌定位結(jié)果圖像
字符分割[7]是將圖片圖像中的每一個(gè)字符分割出來(lái),以便于后期進(jìn)行字符的識(shí)別。在車(chē)牌字符分割部分,本文主要運(yùn)用邊緣檢測(cè)方法,首先使用中值濾波方法對(duì)圖像進(jìn)行降噪;其次對(duì)圖像進(jìn)行二值化處理,形成非黑即白的圖像,減小數(shù)據(jù)量;最后采用輪廓檢測(cè)方法對(duì)字符進(jìn)行分割,并且存儲(chǔ)到同一文件夾下。圖10 為中值濾波后的二值化圖像;圖11 為邊緣檢測(cè)結(jié)果圖像;圖12 為字符分割結(jié)果圖像。
圖10 中值濾波后的二值化圖像
圖11 邊緣檢測(cè)結(jié)果圖像
圖12 字符分割結(jié)果圖像
卷積層是卷積神經(jīng)網(wǎng)絡(luò)[8]的核心組件之一。它通過(guò)濾波器在輸入圖像上進(jìn)行卷積操作,提取圖像中的特征。卷積操作可以捕捉到局部特征和空間關(guān)系,實(shí)現(xiàn)特征的平移不變性。卷積層通常包括多個(gè)濾波器,每個(gè)濾波器可以學(xué)習(xí)不同的特征。在卷積過(guò)程中,通過(guò)設(shè)置步長(zhǎng)(stride)和填充(padding)來(lái)控制輸出特征圖的大小。如果輸入的圖像的大小為X1×Y1×Z1,則輸出的特征圖的大小為X2×Y2×Z2.,特征圖的大小可以用公式表示為
式中:F 為卷積核的大?。籔 為填充值;S 為步長(zhǎng);numbers 為卷積核的數(shù)量。假設(shè)輸入為3×3 的圖像,用2×2 的卷積核進(jìn)行卷積運(yùn)算,步長(zhǎng)為1,最終生成2×2 的特征圖。圖13 為卷積過(guò)程示意圖。
圖13 卷積過(guò)程示意圖
池化層[9]用于減小特征圖的尺寸,并提取更加顯著的特征。常用的池化操作包括最大池化和平均池化,它們分別從局部區(qū)域中選擇最大值或平均值作為輸出。池化層可以降低特征圖的維度,減少計(jì)算量,并且增強(qiáng)模型的魯棒性。圖14 池化過(guò)程示意圖。
圖14 池化過(guò)程示意圖
激活函數(shù)(activation functions)是卷積神經(jīng)網(wǎng)絡(luò)中不可缺少的組成部分,增強(qiáng)了神經(jīng)網(wǎng)絡(luò)的非線性表達(dá)能力,通常使用非線性方式激活特征提取單元,傳遞提取到的特征信息,提升了卷積神經(jīng)網(wǎng)絡(luò)的泛化學(xué)習(xí)能力。常用的激活函數(shù)有RELU 函數(shù)、Sigmoid 函數(shù)、Tanh 函數(shù),其計(jì)算公式分別為
全連接層通常位于卷積神經(jīng)網(wǎng)絡(luò)的末尾,用于將卷積層和池化層的輸出連接到最終的輸出層。全連接層的神經(jīng)元之間的連接是密集連接的,每個(gè)神經(jīng)元都與前一層的所有神經(jīng)元相連。全連接層可以學(xué)習(xí)更高級(jí)別的特征表示,并進(jìn)行最終的分類或回歸。圖15 為全連接層示意圖。
圖15 全連接層示意圖
本文車(chē)牌數(shù)據(jù)集總共16 149 張圖片,數(shù)據(jù)集中包含31 個(gè)漢字(內(nèi)地各省、自治區(qū)、直轄市簡(jiǎn)稱),以及24 個(gè)英文字母(其中不包含O 和I)和9 個(gè)數(shù)字。本文首先采用TensorFlow 庫(kù)對(duì)漢字、數(shù)字和字母搭建卷積神經(jīng)網(wǎng)絡(luò),然后進(jìn)行訓(xùn)練,最后利用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行車(chē)牌識(shí)別。圖16 為卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖16 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
輸入圖像尺寸為20×20 像素,第一層卷積設(shè)定32 個(gè)大小為3×3 的卷積核;第二層為最大池化層,減小特征圖的尺寸;第三層卷積設(shè)定32 個(gè)大小為3×3 的卷積核;第四層采用最大池化操作。全連接層用Softmax 激活函數(shù)實(shí)現(xiàn)特征分類。
數(shù)據(jù)集中包含2 973 張漢字圖片,13 176 張字母和數(shù)字圖片,訓(xùn)練集選取其中80%的數(shù)據(jù),測(cè)試集選取其中20%的數(shù)據(jù),最終漢字識(shí)別的準(zhǔn)確率為91.4%,數(shù)字和字母識(shí)別的準(zhǔn)確率為95.5%。圖17為車(chē)牌識(shí)別結(jié)果。
圖17 車(chē)牌識(shí)別結(jié)果
本文充分利用了OpenCV 模塊實(shí)現(xiàn)對(duì)汽車(chē)圖像進(jìn)行預(yù)處理,采用形態(tài)學(xué)運(yùn)算、邊緣檢測(cè)方法實(shí)現(xiàn)對(duì)車(chē)牌定位以及字符分割,搭建卷積神經(jīng)網(wǎng)絡(luò)模型分別對(duì)漢字、數(shù)字和字母進(jìn)行訓(xùn)練和評(píng)估,經(jīng)檢驗(yàn)?zāi)P妥R(shí)別準(zhǔn)確率較高。在整個(gè)車(chē)牌識(shí)別流程中發(fā)現(xiàn),形態(tài)學(xué)運(yùn)算參數(shù)設(shè)置比較關(guān)鍵,會(huì)嚴(yán)重影響到車(chē)牌定位以及字符分割的效果。此外,本文分別對(duì)漢字、數(shù)字和字母搭建了神經(jīng)網(wǎng)絡(luò)模型,測(cè)試結(jié)果表明漢字的識(shí)別率為91.4%,數(shù)字和字母的識(shí)別率為95.5%,顯示漢字的識(shí)別率比較低。在后期的研究中會(huì)對(duì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行調(diào)整,并進(jìn)一步優(yōu)化。