




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于MATLAB的字符識別研究汽車牌照識別程序的設(shè)計醫(yī)藥信息工程學院醫(yī)藥軟件07丘春林學號:摘要:本次課程設(shè)計的目的是通過對基于MATLAB的字符識別的研究,以汽車牌照識別的設(shè)計為實例,詳細介紹字符識別的相關(guān)原理。整個汽車牌照識別的過程分為預(yù)處理、邊緣提取、車牌定位、字符分割、字符識別五大模塊,用MATLAB軟件編程來實現(xiàn)每一個部分,最后識別出汽車牌照。在研究的同時對其中出現(xiàn)的問題進行了具體分析,處理。尋找出對于具體的汽車牌照識別過程的最好的方法。關(guān)鍵詞:MATLAB字符識別車牌識別神經(jīng)網(wǎng)絡(luò)圖像處理引言在MATLAB的字符識別研究中,汽車牌照的識別是最經(jīng)典的樣例,因為車輛牌照識別系統(tǒng)(Lice
2、nse Plate Recognition System,簡稱LPRS)是建設(shè)智能交通系統(tǒng)不可或缺的部分?;?MATLAB 圖像處理的汽車牌照識別系統(tǒng)是通過引入數(shù)字攝像技術(shù)和計算機信息管理技術(shù),采用先進的圖像處理 模式識別和人工智能技術(shù),通過對圖像的采集和處理,獲得更多的信息,從而達到更高的智能化管理程度。車牌識別系統(tǒng)整個處理過程分為預(yù)處理、邊緣提取、車牌定位、字符分割、字符識別五大模塊,用 MATLAB軟件編程來實現(xiàn)每一個部分處理工程,最后識別出汽車牌照。一、 MATLAB及其圖像處理工具概述MATLAB 是 MATrix LABoratory (矩陣實驗室)的縮寫,是 Math Work
3、s 公司開發(fā)的一種功能強 效率高 簡單易學的數(shù)學軟件。MATLAB 的圖像處理工具箱,功能十分強大,支持的圖像文件格式豐富,如 *.BMP、*.JPG、 *.JPEG、 *.GIF、 *.TIF 、*.TIFF、 *.PNG 、*.PCX、 *.XWD、 *.HDF、*.ICO 、*.CUR 等。MATLAB 7.X 提供了20 多類的圖像處理函數(shù),幾乎涵蓋了圖像處理的所有技術(shù)方法,是學習和研究圖像處理的人員難得的寶貴資料和加工工具箱。這些函數(shù)按其功能可分為:圖像顯示、 圖像文件 I/O、圖像算術(shù)運算、幾何變換、圖像登記、像素值與統(tǒng)計 圖像分析、圖像增強、線性濾波、線性二元濾波設(shè)計、圖像去模糊
4、、圖像變換、鄰域與塊處理、灰度與二值圖像的形態(tài)學運算、基于邊緣的處理、色彩映射表操作 色彩空間變換 圖像類型與類型轉(zhuǎn)換。MATLAB 還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。本文將給出 MATLAB 的圖像處理工具箱中的圖像處理函數(shù)實現(xiàn)圖像處理與分析的應(yīng)用技術(shù)實例。二、 基于 MATLAB圖像處理的汽車牌照識別系統(tǒng)1. 系統(tǒng)組成基于 MATLAB圖像處理的汽車牌照識別系統(tǒng)主要包括車牌定位 字符車牌分割和車牌字符識別三個關(guān)鍵環(huán)節(jié)其識別流程圖如圖 1所示。原始圖像圖像預(yù)處理車牌定位字符分割字符數(shù)據(jù)庫字符識別圖1 識別流程圖其中,(1) 原始圖像
5、:由數(shù)碼相機或其它掃描裝置拍攝到的圖像;(2) 圖像預(yù)處理:對動態(tài)采集到的圖像進行濾波、邊界增強等處理以克服圖像干擾;(3) 車牌定位:計算邊緣圖像的投影面積,尋找峰谷點,大致確定車牌位置,再計算此連通域內(nèi)的寬高比,剔除不在域值范圍內(nèi)的連通域,最后得到的便為車牌區(qū)域;(4) 字符分割:利用投影檢測的字符定位分割方法得到單個的字符;(5) 字符數(shù)據(jù)庫:為第6步的字符識別建立字符模板數(shù)據(jù)庫;(6) 字符識別:通過基于模板匹配的OCR算法或基于人工神經(jīng)網(wǎng)絡(luò)的OCR算法,通過特征對比或訓練識別出相關(guān)的字符,得到最后的汽車牌照,包括英文字母和數(shù)字。2. 圖像預(yù)處理圖像在形成 傳輸或變換過程中,受多種因素
6、的影響,如:光學系統(tǒng)失真、系統(tǒng)噪聲、曝光不足或過量、相對運動等,往往會與原始景物之間或圖像與原始圖像之間產(chǎn)生了某種差異,這種差異稱為降質(zhì)或退化。因此在圖像處理之前必須進行預(yù)處理,包括去除噪音、邊界增強、增加亮度等等。輸入的彩色圖像包含大量顏色信息,會占用較多的存儲空間,且處理時也會降低系統(tǒng)的執(zhí)行速度,因此對圖像進行識別等處理時,常將彩色圖像轉(zhuǎn)換為灰度圖像,以加快處理速度。對圖像進行灰度化處理、邊緣提取、再利用形態(tài)學方法對車牌進行定位。具體步驟如下:首先對圖像進行灰度轉(zhuǎn)換,二值化處理然后采用4X1的結(jié)構(gòu)元素對圖像進行腐蝕,去除圖像的噪聲。采用25X25的結(jié)構(gòu)元素,對圖像進行閉合應(yīng)算使車牌所在的區(qū)
7、域形成連通。再進行形態(tài)學濾波去除其它區(qū)域。I=imread('CAR/0.jpg');%讀取圖片I1=rgb2gray(I); %轉(zhuǎn)化為灰度圖像I2=edge(I1,'robert',0.09,'both'); %采用robert算子進行邊緣檢測se=1;1;1; %線型結(jié)構(gòu)元素 I3=imerode(I2,se); %腐蝕圖像se=strel('rectangle',25,25); %矩形結(jié)構(gòu)元素I4=imclose(I3,se); %圖像聚類、填充圖像I5=bwareaopen(I4,2000); %去除聚團灰度值小于2000
8、的部分通過對比原始圖片,我們可以發(fā)現(xiàn)形態(tài)濾波后的圖像已經(jīng)很接近正確的車牌位置了,因此后期處理將通過這張圖來找出車牌位置。3. 車牌定位觀察經(jīng)過預(yù)處理后得到的圖像發(fā)現(xiàn)車牌位置有明顯的矩形有明顯的矩形圖樣,通過對矩形區(qū)域的定位即可獲得具體的車牌位置。(1) 車牌的行起始和終止位置的確定y,x,=size(I5);I6=double(I5);%繪制行曲線圖Y1=zeros(y,1);for i=1:y for j=1:x if(I6(i,j,1)=1) Y1(i,1)= Y1(i,1)+1; end endendfigure();subplot(1,3,1);plot(0:y-1,Y1),title
9、('行像素灰度值累計'),xlabel('行值'),ylabel('像素和'); temp, MaxY=max(Y1);PY1=MaxY;while (Y1(PY1,1)>=80)&&(PY1>1)PY1=PY1-7;endPY2=MaxY;while (Y1(PY2,1)>=80)&&(PY2<y)PY2=PY2+7;end(2) 車牌的列起始位置和終止位置的確定%繪制列曲線圖X1=zeros(1,x);for j=1:x for i=PY1:PY2 if(I6(i,j,1)=1) X1(
10、1,j)= X1(1,j)+1; end endendsubplot(1,3,2);plot(0:x-1,X1),title('列像素灰度值累計'),xlabel('列值'),ylabel('像數(shù)和');PX1=1;while (X1(1,PX1)<3)&&(PX1<x)PX1=PX1+7;endPX2=x;while (X1(1,PX2)<3)&&(PX2>PX1)PX2=PX2-7;end(3) 最后拼合獲取的車牌在圖像的行列位置DW=I(PY1:PY2,PX1:PX2,:);subpl
11、ot(1,3,3);imshow(DW),title('車牌定位后圖像');4. 字符分割在汽車牌照自動識別過程中,字符分割有承前啟后的作用。它在前期牌照定位的基礎(chǔ)上進行字符的分割,然后再利用分割的結(jié)果進行字符識別。% 車牌圖像轉(zhuǎn)為灰度if isrgb(I)I1 = rgb2gray(I);elseI1 = I;end% 二值化車牌圖像I1 = im2bw(I1,graythresh(I1);%二值化圖像I2 = bwareaopen(I1,16);%去除小于16像素的區(qū)塊figure();subplot(1,2,1);imshow(I2),title('二值化車牌圖像
12、');% 分割字符按行積累量y,x=size(I2);I3=double(I2);X1=zeros(1,x);for j=1:xfor i=1:y if(I3(i,j,1)=1) X1(1,j)= X1(1,j)+1; endendendsubplot(1,2,2);plot(0:x-1,X1),title('車牌列像素點累計'),xlabel('列值'),ylabel('像素和');% 分割字符Px0=1;Px1=1;figure();for i=1:7while (X1(1,Px0)<3)&&(Px0<x)
13、 Px0=Px0+1;endPx1=Px0;while (X1(1,Px1)>=3)&&(Px1<x)|(Px1-Px0)<10) Px1=Px1+1;endZ=I2(:,Px0:Px1,:);switch strcat('Z',num2str(i) case 'Z1' PIN0=Z; case 'Z2' PIN1=Z; case 'Z3' PIN2=Z; case 'Z4' PIN3=Z; case 'Z5' PIN4=Z; case 'Z6' P
14、IN5=Z; otherwise PIN6=Z;endsubplot(1,7,i);imshow(Z);Px0=Px1;end分割成七塊后的車牌圖像5. 建立字符模板數(shù)據(jù)庫模板庫的合理建造是字符識別準確的關(guān)鍵之一,所以在字符識別之前必須把模板庫設(shè)置好。汽車牌照的字符一般有 7 個,大部分車牌第一位是漢字,通常代表車輛所屬省份,或是軍種 警別等有特定含義的字符簡稱;緊接其后的為字母與數(shù)字。車牌字符識別與一般文字識別在于它的字符數(shù)有限, 十個阿拉伯數(shù)字09, 26 個大寫英文字母 AZ 以及相關(guān)的車牌用漢字:京、滬、蘇、臺、港、澳、甲、乙、丙、使、領(lǐng)、學、試、境、消、邊、警等,以及新式軍牌中的漢字
15、南、蘭、廣、北、沈、濟、空、海等;車牌顏色:藍、白、黑、黃等。所以建立字符模板庫也極為方便。通過前面實驗獲取的幾幅不同的車牌圖片截取到的圖片加上使用PhotoShop制作的部分圖片如下: 建立模板數(shù)據(jù)庫時必須對這些圖片進行統(tǒng)一處理,因為對前面處理分割后的車牌圖像的測量得知單個字符的最佳寬高比是1:2,所以將這些圖片歸一化為50×25大??;因為之后的字符識別考慮使用神經(jīng)網(wǎng)絡(luò)算法進行字符識別,所以再將上面歸一化后的模板圖像的樣本排列在一起構(gòu)成1250×18的矩陣樣本,程序設(shè)計如下:function inpt = Pretreatment(I)% 訓練樣本前期處理if isrgb
16、(I) I1 = rgb2gray(I);elseI1=I;endI1=imresize(I1,50 25);%將圖片統(tǒng)一劃為50*25大小I1=im2bw(I1,0.9);m,n=size(I1);inpt=zeros(1,m*n);% 將圖像按列轉(zhuǎn)換成一個行向量for j=1:nfor i=1:m inpt(1,m*(j-1)+i)=I1(i,j);endend這是一個自定義函數(shù)的Pretreatment.m 文件,可以解決頻繁寫重復(fù)代碼的問題,前面的圖像預(yù)處理及車牌定位的代碼可以寫進Location.m文件中,通過代碼DW = Location(I); 取得車牌定位后的圖像;同時字符分割
17、的代碼亦可寫進StringSplit.m 文件中,可以通過代碼PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6=StringSplit(DW); 取得的字符分割后的圖像。6. 字符識別字符的識別目前用于車牌字符識別(OCR)中的算法主要有基于模板匹配的OCR算法以及基于人工神經(jīng)網(wǎng)絡(luò)的OCR算法?;谀0迤ヅ涞腛CR的基本過程是:首先對待識別字符進行二值化并將其尺寸大小縮放為字符數(shù)據(jù)庫中模板的大小,然后與所有的模板進行匹配,最后選最佳匹配作為結(jié)果。用人工神經(jīng)網(wǎng)絡(luò)進行字符識別主要有兩種方法:一種方法是先對待識別字符進行特征提取,然后用所獲得的特征來訓練神經(jīng)網(wǎng)絡(luò)分類器。識別效果與
18、字符特征的提取有關(guān),而字符特征提取往往比較耗時。因此,字符特征的提取就成為研究的關(guān)鍵。另一種方法則充分利用神經(jīng)網(wǎng)絡(luò)的特點,直接把待處理圖像輸入網(wǎng)絡(luò),由網(wǎng)絡(luò)自動實現(xiàn)特征提取直至識別。本文主要研究基于人工神經(jīng)網(wǎng)絡(luò)的方法來識別車牌字符。設(shè)計代碼如下:close all;clear all;% 歸一化訓練樣本I0=pretreatment(imread('BP/0.jpg');I1=pretreatment(imread('BP/1.jpg');I2=pretreatment(imread('BP/2.jpg');I3=pretreatment(imre
19、ad('BP/3.jpg');I4=pretreatment(imread('BP/4.jpg');I5=pretreatment(imread('BP/5.jpg');I6=pretreatment(imread('BP/6.jpg');I7=pretreatment(imread('BP/7.jpg');I8=pretreatment(imread('BP/8.jpg');I9=pretreatment(imread('BP/9.jpg');I10=pretreatment(im
20、read('BP/A.jpg');I11=pretreatment(imread('BP/B.jpg');I12=pretreatment(imread('BP/C.jpg');I13=pretreatment(imread('BP/D.jpg');I14=pretreatment(imread('BP/G.jpg');I15=pretreatment(imread('BP/K.jpg');I16=pretreatment(imread('BP/L.jpg');I17=pretrea
21、tment(imread('BP/M.jpg');P=I0',I1',I2',I3',I4',I5',I6',I7',I8',I9',I10',I11',I12',I13',I14',I15',I16',I17'T=eye(18,18); %輸出樣本% bp神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置net=newff(minmax(P),1250,32,18,'logsig','logsig','logsig',&
22、#39;trainrp');net.inputWeights1,1.initFcn ='randnr'net.layerWeights2,1.initFcn ='randnr'net.trainparam.epochs=5000;net.trainparam.show=50;%net.trainparam.lr=0.003;net.trainparam.goal=0.;net=init(net);net,tr=train(net,P,T);%訓練樣本% 測試I=imread('CAR/0.jpg');DW=Location(I);%車牌定
23、位PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6=StringSplit(DW);%字符分割及處理% 測試字符,得到識別數(shù)值PIN0=pretreatment(PIN0);PIN1=pretreatment(PIN1);PIN2=pretreatment(PIN2);PIN3=pretreatment(PIN3);PIN4=pretreatment(PIN4);PIN5=pretreatment(PIN5);PIN6=pretreatment(PIN6);P0=PIN0',PIN1',PIN2',PIN3',PIN4',PIN5
24、39;,PIN6'for i=2:7 T0= sim(net ,P0(:,i); T1 = compet (T0) ; d = find(T1 = 1) - 1; if (d=10) str='A' elseif (d=11) str='B' elseif (d=12) str='C' elseif (d=13) str='D' elseif (d=14) str='G' elseif (d=15) str='K' elseif (d=16) str='L' elseif (
25、d=17) str='M' elseif (d=0) str='0' elseif (d=1) str='1' elseif (d=2) str='2' elseif (d=3) str='3' elseif (d=4) str='4' elseif (d=5) str='5' elseif (d=6) str='6' elseif (d=7) str='7' elseif (d=8) str='8' elseif (d=9) str=
26、'9' else str=num2str(d); end switch i case 2 str2=str; case 3 str3=str; case 4 str4=str; case 5 str5=str; case 6 str6=str; otherwise str7=str; endend% 識別出的結(jié)果以標題形式顯示在圖上S=strcat('粵',str2,str3,str4,str5,str6,str7); figure();imshow(DW),title(S);第一次訓練后識別出的車牌號碼:發(fā)現(xiàn)第二個字符識別錯誤,在進行第二次識別:可以看出完成了準確識別車牌的目的。三、 總結(jié)在汽車車牌識別的整個過程中,查找了很多資料,綜合了各方面的信息。車牌實現(xiàn)的每一步都有許多的方法,各種方法都有其優(yōu)劣,但是對于具體的圖像處理,并不是每一種理論在實踐中都可以實現(xiàn),即使實現(xiàn)了也很難說哪一種方法最合適,還得在具體的實驗中比較選擇。第二點在程序調(diào)試的過程中要耐心的檢查每一個錯誤。測試結(jié)果表明,本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度時尚消費品代理進口及市場布局合同
- 二零二五年度退休科研人員合作研發(fā)聘用合同
- 二零二五學年度學生校車安全乘車環(huán)境改善與優(yōu)化協(xié)議
- 股權(quán)代持協(xié)議書標準模板:2025年度股權(quán)置換與重組范本
- 二零二五年度校園安全責任與學生家長參與合同
- 二零二五年度購物中心日常保潔與應(yīng)急處理合同
- 三字經(jīng)中道理的故事解讀
- 旅游目的地營銷與品牌形象塑造研究
- 綠化零工勞務(wù)合同
- 產(chǎn)品供應(yīng)和分銷合同
- 汽車掛靠經(jīng)營合同協(xié)議書模板
- 基坑土方開挖專項施工方案(完整版)
- 數(shù)據(jù)中心運維服務(wù)投標方案(技術(shù)標)
- 2025年中煤集團新疆能源有限公司招聘筆試參考題庫含答案解析
- 2024-2025學年山東省濰坊市高一上冊1月期末考試數(shù)學檢測試題(附解析)
- 電玩城培訓課件
- 2025年全年日歷-含農(nóng)歷、國家法定假日-帶周數(shù)豎版
- 小學生播音員課件
- 2024年重大事項內(nèi)部會審制度(3篇)
- 飛機乘務(wù)人員培訓課件
- 解讀《干部教育培訓工作條例》
評論
0/150
提交評論