国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python+OpenCV的車牌識別技術(shù)的研究

2019-09-25 13:22李曉莎林森
數(shù)字技術(shù)與應用 2019年6期

李曉莎 林森

摘要:通過Python開發(fā)平臺和OpenCV機器視覺庫等技術(shù)對牌照識別進行研究,旨在尋求更為快捷有效的算法。本系統(tǒng)的總體框架分為圖像預處理、車牌定位、字符分割和訓練識別等核心模塊。實驗結(jié)果表明該系統(tǒng)具有良好的時效性和識別效果。

關(guān)鍵詞:Python;OpenCV;圖像預處理;字符分割;訓練識別

中圖分類號:U491 文獻標識碼:A 文章編號:1007-9416(2019)06-0095-03

0 引言

智能交通系統(tǒng)(ITS)是將先進的數(shù)據(jù)通信、電子控制及人工智能等科技綜合運用于整個交通運輸管理體系,使人一車一路有機結(jié)合起來,從而構(gòu)建起一種全方位發(fā)揮作用的精準高效便捷的綜合運輸系統(tǒng)。本文介紹了圖像預處理、牌照定位、字符分割及字符識別四個模塊的原理算法,展示本系統(tǒng)的實現(xiàn)效果,旨在尋求更為快捷有效的算法運用于牌照識別。

1 圖像預處理

1.1 高斯濾波

本文采用高斯濾波對原始圖像進行降噪處理。高斯濾波方法是使用卷積模板遍歷圖像中的每個像素點,將鄰域內(nèi)像素點被模板確定的高斯加權(quán)平均灰度值替換模板中心像素點的值。二維零均值高斯函數(shù)表達式為:? ? ? ? ? ? ? ? ?(1)

OpenCV提供了函數(shù)cv2.GaussianBlur(img,(3,3),0)對圖形進行高斯濾波,這里(3,3)表示高斯矩陣的長與寬都為3,標準差取0時,OpenCV會根據(jù)高斯矩陣的尺寸自行計算。如圖1所示為高斯濾波效果圖。

1.2 灰度化

彩色圖片包含了大量的顏色信息,占用較多的存儲空間。為了提高識別效率,需要對圖片進行預處理。在RGB模型中,若三分量等值時,則顏色呈現(xiàn)為灰度顏色,其灰度值為R=G=B的像素值。目前主流的灰度化方法是加權(quán)平均法[1],將三分量以不同權(quán)值進行加權(quán)平均,即: (2)

其中,分別是讀取RGB的三個通道的分量值。

OpenCV提供了函數(shù)cv2.cvtColor(img,cv2.COLOR_ BGR2GRAY)對圖形進行灰度化處理,處理后的灰度效果如圖2所示。

1.3 形態(tài)學處理

數(shù)學形態(tài)學的基本思想是使用某個結(jié)構(gòu)元素去度量和提取圖像中的對應形狀。結(jié)構(gòu)元素指具有某種確定形狀的基本結(jié)構(gòu),結(jié)構(gòu)元素的原點在其幾何中心處,周圍像素關(guān)于原點對稱[2]。

2 牌照定位和分割

2.1 邊緣檢測

邊緣檢測的目的是標識數(shù)字圖像中亮度變化最明顯的像素點,剔除了自認為不相關(guān)的像素信息,保持圖像原本的結(jié)構(gòu)屬性。本文采用Canny算子進行邊緣檢測。Canny算子是一種多級檢測算法[3],被公認為邊緣檢測的最優(yōu)算法,它不容易受噪聲干擾,能夠檢測到真正的弱邊緣。

OpenCV提供了Canny函數(shù),指定最大和最小閾值為cv2.Canny (img,100,200)。

2.2 輪廓提取

本文調(diào)用OpenCV函數(shù)cv2.findContours(img, cv2.RETR_ TREE, cv2.CHAIN_APPR-OX_SIMPLE) 查找所有封閉區(qū)域的外輪廓。cv2.findContours()函數(shù)返回的輪廓坐標值保存在countours集合對象當中,然后調(diào)用函數(shù)cv2.contourArea()計算輪廓面積,以及函數(shù)cv2.minAreaRect()獲取矩形輪廓的中心坐標、寬度、高度、旋轉(zhuǎn)角度,并根據(jù)預設區(qū)域面積及縱橫比判別候選區(qū)域。依據(jù)所測試圖片的紋理特征作為先驗知識,設定牌照區(qū)域的長寬比范圍在2到5.5之間,同時設置牌照區(qū)域允許最大面積為2000像素,經(jīng)判斷對比排除不在理想范圍內(nèi)的連通區(qū)域。使用函數(shù)cv2.drawContours(img,[box],-1,(0,0,255),thickness=2)進行輪廓的顏色填充,查看全部候選輪廓提取效果如圖3所示。

2.3 傾斜矯正

基于仿射變換的傾斜矯正能夠保持二維圖形的平行性及平直性。仿射變換代表的是兩幅圖之間的映射關(guān)系,通常使用2×3矩陣來表示仿射變換,算法公式如下:

式中,,分別表示待轉(zhuǎn)換和轉(zhuǎn)換后的坐標,為仿射變換矩陣。

OpenCV提供了仿射變換方法cv2.getAffineTransform(pos1,pos2),根據(jù)變換前后三個點的對應關(guān)系來自動求解仿射矩陣,然后使用函數(shù)cv2.warpAffine(img,M,(pic_width, pic_hight))將原有圖像旋轉(zhuǎn)變換,達到傾斜矯正的目的。

2.4 顏色定位

在OpenCV中由RGB轉(zhuǎn)換到HSV的過程中,圖像以8位三通道的形式保存,每個顏色分量占用8位,值的范圍為0~255,所以OpenCV將H值的范圍縮小了一半,變?yōu)?°~180°。根據(jù)資料和實驗數(shù)據(jù),獲取OpenCV庫中HSV空間的藍黃綠色域值,作為辨別有色牌照的定位依據(jù)。具體色域值如表1所示。

2.5 字符分割與識別

2.5.1 字符提取分割

(1)水平投影分析:對二值化圖像作水平投影分析,是從獲取的投影直方圖上計算出每個牌照上字符的開始(上升點)、結(jié)束(下降點)位置、字符高度(峰寬度)、字符上下邊框位置等參數(shù)。

(2)垂直投影分析:本文所選取的垂直投影的最佳閾值是該方向投影直方圖的平均值和最小值的五分之一。利用閾值分割出各個字符區(qū)域,其中包括左右邊框、字符分割點和固定車牌的鉚釘。通過對比寬度大小,一一排除無效干擾區(qū)域。切割后的車牌字符圖像如圖4所示。

2.5.2 字符歸一化

本文調(diào)用函數(shù)cv2.copyMakeBorder(part_card,0,0,w,w, cv2.BORDER_CONSTANT,value=[0,0,0]),給各字符填充左右方向上的黑色邊緣,長度為原字符寬度減去標準尺寸的絕對值的一半,然后使用cv2.resize()函數(shù)將字符圖像統(tǒng)一尺寸大小,以便在訓練識別時提高效率和精度。字符歸一化處理如圖5所示。

2.5.3 字符特征提取

(1)Gamma校正:本文采用平方根的方式進行Gamma標準化。Gamma校正公式為:? ? ? ? ? ? ? ? ? ? ?(5)

(2)計算圖像梯度:該步驟主要是為了進一步減弱噪聲干擾,獲取輪廓像素信息。梯度計算公式如下:

(6)

(7)

式中,分別為像素點的水平梯度、垂直梯度及像素值。本文利用Sobel算子對字符圖像進行模板卷積,由以下公式計算得到每個像素點處的梯度方向和幅值。水平邊緣算子為,垂直邊緣算子為。

(8)

(9)

其中,為梯度強度,為梯度方向。

(3)統(tǒng)計梯度方向投影:本文將每個字符圖像劃分成四個子圖方塊,對于每個子圖計算梯度方向直方圖,并將該直方圖轉(zhuǎn)換成極坐標量化到圓上,根據(jù)需要分割成16個bins(每組的角度范圍為360°/bins),即整個直方圖包含16維特征向量。然后計算加權(quán)其幅度的方向直方圖(16bins)。因此,每個子圖就會提供一個包含16維數(shù)的特征向量,如圖6所示。

2.5.4 SVM算法

支持向量機(Support Vector Machine, SVM)是一種訓練機器學習的二分類模型,其決策邊界是對學習樣本求解的最大邊距超平面。

本文構(gòu)建字符分類器采用高斯核來訓練機器學習,高斯核函數(shù)的計算公式為:

(10)

選用高斯核訓練時,須要指定的參數(shù)。無論使用哪種核函數(shù),訓練時都要指定一個正實數(shù)的懲罰因子。

預測時的分類判別函數(shù)為:

(11)

(12)

其中,為超平面的法向量,為分類函數(shù)在軸的截距,sgn為符號函數(shù)。

2.5.5 字符識別

為了降低計算量,本文采用一對多分類器,即65種樣本類別的任意一種與其他64種構(gòu)成二分類器,即只需構(gòu)造65個二分類器,其中針對漢字分類器31個,針對數(shù)字與英文字母混合分類器34個。

訓練分類器之前,需要對每個字符樣本提取特征數(shù)據(jù),將樣本的特征參數(shù)保存到相應的.dat文件。針對切割好的字符圖像,相繼提取分類器所需要的特征參數(shù),按照字符排列順序逐個代入分類函數(shù)式中,計算后即可獲得相應預測值。字符牌照識別效果如圖7-圖9所示。

3 結(jié)語

車牌識別系統(tǒng)是現(xiàn)代智能交通工程領(lǐng)域中研究的重點問題之一,對車輛的自動化管理起到了關(guān)鍵作用。本文對于圖像預處理、牌照定位、字符分割以及字符訓練識別過程進行了闡述研究,從而在系統(tǒng)測試時力爭達到預期可觀的顯著效果。

參考文獻

[1] 夏澤舉,董蘭芳.彩色灰度交叉融合的彩色圖像漸變技術(shù)[J].計算機仿真,2010,27(12):245-249.

[2] 崔屹.圖象處理與分析:數(shù)學形態(tài)學方法及應用[M].科學出版社,2000.

[3] 王文豪,姜明新,趙文東.基于Canny算子改進的邊緣檢測算法[J].中國科技論文,2017,12(08):910-915.

Research on License Plate Recognition Technology Based on Python+OpenCV

LI Xiao-sha,LIN Sen

(School of Fundamental Sciences, Shengli College China University of Petroleum, Dongying Shandong 257061)

Abstract:This paper studies license plate recognition through Python development platform and OpenCV machine vision library, aiming at finding faster andmore efficient algorithms. The overall framework of the system is divided into core modules such as image preprocessing, license plate location, character segmentation and training recognition. The experimental results show thatthe system has good timeliness and recognition effect.

Key words:Python;OpenCV;Image preprocessing;Character segmentation;Training recognition

东乌珠穆沁旗| 兰考县| 东山县| 沂源县| 农安县| 永德县| 新乡县| 湾仔区| 武穴市| 华池县| 股票| 嘉义县| 浦江县| 梁河县| 西畴县| 金昌市| 岫岩| 礼泉县| 普洱| 合山市| 龙山县| 扶余县| 乐都县| 金川县| 夏津县| 丰镇市| 白朗县| 来凤县| 吉林市| 万州区| 扎兰屯市| 隆德县| 嵊泗县| 江北区| 尼玛县| 桃园市| 辽源市| 浦江县| 常德市| 华容县| 于都县|