matlab車牌識別課實驗報告計報告(附源代碼20)_第1頁
matlab車牌識別課實驗報告計報告(附源代碼20)_第2頁
matlab車牌識別課實驗報告計報告(附源代碼20)_第3頁
matlab車牌識別課實驗報告計報告(附源代碼20)_第4頁
matlab車牌識別課實驗報告計報告(附源代碼20)_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一. 課程設計目的 3二. 設計原理 3三. 詳細設計步驟 3四. 設計結果及分析 18五. 總結 19六. 設計體會 20七. 參考文獻21、課程設計目的車牌定位系統的目的在于正確獲取整個圖像中車牌的區域, 并識別出車牌號。通過 設計實現車牌識別系統,能夠提高學生分析問題和解決問題的能力,還能培養一定的科 研能力。二、設計原理:牌照自動識別是一項利用車輛的動態視頻或靜態圖像進行牌照號碼、牌照顏色自動 識別的模式識別技術。其硬件基礎一般包括觸發設備、攝像設備、照明設備、圖像采集 設備、識別車牌號碼的處理機等,其軟件核心包括車牌定位算法、車牌字符分割算法和 光學字符識別算法等。某些牌照識別系統還

2、具有通過視頻圖像判斷車輛駛入視野的功能 稱之為視頻車輛檢測。一個完整的牌照識別系統應包括車輛檢測、圖像采集、牌照識別 等幾部分。當車輛檢測部分檢測到車輛到達時觸發圖像采集單元,采集當前的視頻圖像牌照識別單元對圖像進行處理,定位出牌照位置,再將牌照中的字符分割出來進行識別, 然后組成牌照號碼輸出。三、詳細設計步驟:純果牌照號碼::京EO6572輸出 牌照底色t藍色圖牌照識別系統示宣圖1.提出總體設計方案:牌照號碼、顏色識別為了進行牌照識別,需要以下幾個基本的步驟:a. 牌照定位,定位圖片中的牌照位置;b. 牌照字符分割,把牌照中的字符分割出來;牌照字符識別,把分割好的字符進行識別,最終組成牌照號

3、碼。2牌照識別過程中,牌照顏色的識別依據算法不同,可能在上述不同步驟實現,通常 與牌照識別互相配合、互相驗證。(1 )牌照定位:自然環境下,汽車圖像背景復雜、光照不均勻,如何在自然背景中準確地確定牌照 區域是整個識別過程的關鍵。首先對采集到的視頻圖像進行大范圍相關搜索,找到符合 汽車牌照特征的若干區域作為候選區,然后對這些侯選區域做進一步分析、評判,最后 選定一個最佳的區域作為牌照區域,并將其從圖象中分割出來。流程圖:(2)牌照字符分割:完成牌照區域的定位后,再將牌照區域分割成單個字符,然后進行識別。字符分割 一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符間或字符內的間隙處取 得局部

4、最小值的附近,并且這個位置應滿足牌照的字符書寫格式、字符、尺寸限制和一 些其他條件。利用垂直投影法對復雜環境下的汽車圖像中的字符分割有較好的效果。(3)牌照字符識別:字符識別方法目前主要有基于模板匹配算法和基于人工神經網絡算法。基于模板匹配算法首先將分割后的字符二值化,并將其尺寸大小縮放為字符數據庫中模板的大小,然后 與所有的模板進行匹配,最后選最佳匹配作為結果。基于人工神經元網絡的算法有兩種: 一種是先對待識別字符進行特征提取,然后用所獲得特征來訓練神經網絡分配器;另一 種方法是直接把待處理圖像輸入網絡,由網絡自動實現特征提取直至識別出結果。實際 應用中,牌照識別系統的識別率與牌照質量和拍攝

5、質量密切相關。牌照質量會受到各種 因素的影響,如生銹、污損、油漆剝落、字體褪色、牌照被遮擋、牌照傾斜、高亮反光、 多牌照、假牌照等等;實際拍攝過程也會受到環境亮度、拍攝亮度、車輛速度等等因素 的影響。這些影響因素不同程度上降低了牌照識別的識別率,也正是牌照識別系統的困3切割出的字 符送入庫中與數據庫的 圖片相減分析之差最小 的圖片是哪張字符依次分析顯示誤 差最小的圖片名字難和挑戰所在。為了提高識別率,除了不斷的完善識別算法,還應該想辦法克服各種光 照條件,使采集到的圖像最利于識別2.各模塊的實現:2.1輸入待處理的原始圖像: clear ;close all;%Step1獲取圖像裝入待處理彩色

6、圖像并顯示原始圖像Scolor = imread('3.jpg');%imread函數讀取圖像文件圖2.1原始圖像2.2圖像的灰度化:彩色圖像包含著大量的顏色信息,不但在存儲上開銷很大,而且在處理上也會降低 系統的執行速度,因此在對圖像進行識別等處理中經常將彩色圖像轉變為灰度圖像,以 加快處理速度。由彩色轉換為灰度的過程叫做灰度化處理。選擇的標準是經過灰度變換 后,像素的動態范圍增加,圖像的對比度擴展,使圖像變得更加清晰、細膩、容易識別%各彩色圖像轉換為黑白并顯示Sgray = rgb2gray(Scolor);%rgb2gray轉換成灰度圖figure,imshow(Sgra

7、y),title(' 原始黑白圖像');圖2.2原始黑白圖像2.3對原始圖像進行開操作得到圖像背景圖像: s=strel('disk',13);%strei函數Bgray=imopen(Sgray,s);% 打開 sgray s 圖像 figure,imshow(Bgray);title(' 背景圖像');% 輸出背景圖像背蠱圖傑圖2.3背景圖像2.4灰度圖像與背景圖像作減法,對圖像進行增強處理:Egray=imsubtract(Sgray,Bgray);%兩幅圖相減figure,imshow(Egray);title(' 增強黑白圖像&

8、#39;);%輸出黑白圖像圖2.4黑白圖像2.5取得最佳閾值,將圖像二值化:二值圖像是指整幅圖像畫面內僅黑、白二值的圖像。在實際的車牌處理系統中,進 行圖像二值變換的關鍵是要確定合適的閥值,使得字符與背景能夠分割開來,二值變換 的結果圖像必須要具備良好的保形性,不丟掉有用的形狀信息,不會產生額外的空缺等 等。車牌識別系統要求處理的速度高、成本低、信息量大,采用二值圖像進行處理,能 大大地提高處理效率。閾值處理的操作過程是先由用戶指定或通過算法生成一個閾值, 如果圖像中某中像素的灰度值小于該閾值,則將該像素的灰度值設置為0或255,否則灰度值設置為255或0。fmax仁double(max(ma

9、x(Egray);%egray 的最大值并輸出雙精度型 fmin 1=double(mi n( mi n( Egray);%egray的最小值并輸出雙精度型Ievel=(fmax1-(fmax1-fmi n1)/3)/255;%獲得最佳閾值bw22=im2bw(Egray,level);%轉換圖像為二進制圖像 bw2=double(bw22);figure,imshow(bw2);title('圖像二值化');% 得到二值圖像圖2.5二值圖像2.6邊緣檢測:兩個具有不同灰度值的相鄰區域之間總存在邊緣,邊緣就是灰度值不連續的結果, 是圖像分割、紋理特征提取和形狀特征提取等圖像分析

10、的基礎。為了對有意義的邊緣點 進行分類,與這個點相聯系的灰度級必須比在這一點的背景上變換更有效,我們通過門 限方法來決定一個值是否有效。所以,如果一個點的二維一階導數比指定的門限大,我 們就定義圖像中的次點是一個邊緣點,一組這樣的依據事先定好的連接準則相連的邊緣 點就定義為一條邊緣。經過一階的導數的邊緣檢測,所求的一階導數高于某個閾值,則 確定該點為邊緣點,這樣會導致檢測的邊緣點太多。可以通過求梯度局部最大值對應的 點,并認定為邊緣點,去除非局部最大值,可以檢測出精確的邊緣。一階導數的局部最 大值對應二階導數的零交叉點,這樣通過找圖像強度的二階導數的零交叉點就能找到精 確邊緣點。grd=edg

11、e(bw2,'canny')% 用canny算子識別強度圖像中的邊界 figure,imshow(grd);title('圖像邊緣提取');%輸出圖像邊緣圖像邊澤提取圖2.6像邊緣提取2.7對得到圖像作開操作進行濾波:數學形態非線性濾波,可以用于抑制噪聲,進行特征提取、邊緣檢測、圖像分割等 圖像處理問題。腐蝕是一種消除邊界點的過程,結果是使目標縮小,孔洞增大,因而可 有效的消除孤立噪聲點;膨脹是將與目標物體接觸的所有背景點合并到物體中的過程, 結果是使目標增大,孔洞縮小,可填補目標物體中的空洞,形成連通域。先腐蝕后膨脹 的過程稱為開運算,它具有消除細小物體,并在

12、纖細處分離物體和平滑較大物體邊界的 作用;先膨脹后腐蝕的過程稱為閉運算,具有填充物體內細小空洞,連接鄰近物體和平 滑邊界的作用。對圖像做了開運算和閉運算,閉運算可以使圖像的輪廓線更為光滑,它通常用來消掉狹窄的間斷和長細的鴻溝,消除小的孔洞,并彌補輪廓線中的斷裂取矩形框的閉運算bg1= imclose(grd,strel('recta ngle',5,19);%figure,imshow(bg1);title('圖像閉運算5,19');% 輸出閉運算的圖像bg3=imope n(bg1,strel('recta ngle',5,19);%取矩形框的

13、開運算figure,imshow(bg3);title('圖像開運算5,19');% 輸出開運算的圖像bg2=imope n(bg3,strel('recta ngle',19,1);%取矩形框的開運算figure,imshow(bg2);title('圖像開運算19,1');% 輸出開運算的圖像圈金廚運寓1521圖2.7.1閉運算的圖像圖2.7.2開運算的圖像圖傳開運»|19.1|圖2.7.3開運算的圖像2.8對二值圖像進行區域提取,并計算區域特征參數。進行區域特征參數比較,提取車 牌區域:a. 對圖像每個區域進行標記,然后計算每個區

14、域的圖像特征參數:區域中心位置、最小 包含矩形、面積。L, num = bwlabel(bg2,8);%標注二進制圖像中已連接的部分Feastats = imfeature(L,'basic');%計算圖像區域的特征尺寸Area=Feastats.Area;% 區域面積Bou ndin gBox=Feastats.Bou ndi ngBox;%x y width height車牌的框架大小RGB = label2rgb(L, 'spring', 'k', 'shuffle'); %標志圖像向 RGB圖像轉換figure,imsho

15、w(RGB);title('圖像彩色標記');%輸出框架的彩色圖像圖2.8.1彩色圖像b. 計算出包含所標記的區域的最小寬和高,并根據先驗知識,比較誰的寬高比更接近實際車牌寬高比,將更接近的提取并顯示出來。車.牌決度于圖車居二僮子陽程序流程圖圖2.8.2灰度子圖和二值子圖2.9對水平投影進行峰谷分析:對水平投影進行峰谷分析,計算出車牌上邊框、車牌字符投影、車牌下邊框的波形峰 上升點、峰下降點、峰寬、谷寬、峰間距離、峰中心位置參數。histcol仁sum(sbwl);%計算垂直投影histrow=sum(sbw1');%計算水平投影figure,subplot(2,1,1

16、),bar(histcol1);title('垂直投影(含邊框)');% 輸出垂直投影subplot(2,1,2),bar(histrow); title('水平投影(含邊框)');% 輸出水平投影垂直投越C疑轉后)1 1 1皿D 1D2010水平im wn.160BO1DD12080IiiLjIIiiiiHIIlIjF51015202530354045圖291垂直投影和水平投影figure,subplot(2,1,1),bar(histrow); subplot(2,1,2),imshow(sbw1);title('title(' 水平投影(含

17、邊框)');%輸出水平投影 車牌二值子圖');%輸出二值圖對水平投影進行峰谷分析:水平投彫(含邊框圖2.9.2水平投影和二值圖計算下降點找到峰中心位置程序流程圖2.10計算車牌旋轉角度:a.車牌傾斜的原因導致投影效果峰股谷不明顯,在這里需要做車牌矯正處理。這里采取 的線性擬合的方法,計算出車牌上邊或下邊圖像值為1的點擬合直線與水平X軸的夾角11程序流程圖12表示一介擬合丫 = p1*x+p2360/2pi, pi=3.14旋轉車牌圖象旋轉圖像車牌灰度子圖');%輸出車牌旋轉后的輸出車牌旋轉后的灰度圖像title('車牌旋轉角:',num2str(angl

18、e),'圖2.10.1旋轉后的灰度圖像和旋轉角度(2) 線性擬合,計算與x夾角fresult = fit(xdata',ydata','poly1'); %poly1p仁fresult.p1;an gle=ata n( fresult.p1)*180/pi; %弧度換為度,(3) 旋轉車牌圖象subcol = imrotate(subcol1,a ngle,'bili near','crop'); % sbw = imrotate(sbw1,a ngle,'bili near','crop'

19、);% figure,subplot(2,1,1),imshow(subcol);title('灰度圖像標題顯示車牌灰度子圖subplot(2,1,2),imshow(sbw);title(”);度','Color','r');% 顯示車牌的旋轉角度b.旋轉車牌后重新計算車牌水平投影,去掉車牌水平邊框,獲取字符高度histcol仁sum(sbw); %計算垂直投影13垂直投影(旋轉后)');水平投影(旋轉后)');histrow=sum(sbw'); % 計算水平投影 figure,subplot(2,1,1),bar(h

20、istcol1);title(' subplot(2,1,2),bar(histrow); title('圖2.10.2垂直投影(旋轉后)和水平投影(旋轉后)figure,subplot(2,1,1),bar(histrow);title('水平投影(旋轉后)');14subplot(2,1,2),imshow(sbw);title(' 車牌二值子圖(旋轉后)');#豐fs二丁干岡:#圖2.10.3水平投影(旋轉后)和車牌二值子圖(旋轉后)2.11去水平(上下)邊框,獲取字符高度:a.通過以上水平投影、垂直投影分析計算,獲得了車牌字符高度、字符頂

21、行與尾行、字 符寬度、每個字符的中心位置,為提取分割字符具備了條件。maxhight=max(markrow2);fin dc=fi nd(markrow2=maxhight);rowtop=markrow(fi ndc);rowbot=markrow(fi ndc+1)-markrow1(fi ndc+1);sbw2=sbw(rowtop:rowbot,:); %子圖為(rowbot-rowtop+1) 行maxhight=rowbot-rowtop+1; %字符高度(rowbot-rowtop+1)b.計算車牌垂直投影,去掉車牌垂直邊框,獲取車牌及字符平均寬度histcol=sum(sbw

22、2); % 計算垂直投影figure,subplot(2,1,1),bar(histcol);title('垂直投影(去水平邊框后)');% 輸出車牌的垂直投影圖像subplot(2,1,2),imshow(sbw2); % 輸出垂直投影圖像title('車牌字符高度:,i nt2str(maxhight),'Color','r');%輸出車牌字符高度15% 寸垂直投影進行峰谷分析車牌字符高度1 2216#圖2.11垂直投影圖像和車牌字符高度程序流程圖c. 計算車牌上每個字符中心位置,計算最大字符寬度maxwidth1=0;for k=1

23、: n1markcol3(k)=markcol(k+1)-markcol1(k+1);% 字符下降點 markcol4(k)=markcol3(k)-markcol(k); %字符寬度(上升點至下降點)markcol5(k)=markcol3(k)-double(ui nt16(markcol4(k)/2);%字符中心位置endmarkcol6=diff(markcol5); % 字符中心距離(字符中心點至下一個字符中心點) maxs=max(markcol6); %查找最大值,即為第二字符與第三字符中心距離fin dmax=fi nd(markcol6=maxs);markcol6(fi n

24、dmax)=0;maxwidth=max(markcol6);%查找最大值,即為最大字符寬度d. 提取分割字符,并變換為22行*14列標準子圖1=1;m2,n 2=size(subcol);figure;for k=fi ndmax-1:fi ndmax+5cleft=markcol5(k)-maxwidth/2;cright=markcol5(k)+maxwidth/2-2;if cleft<1cleft=1;cright=maxwidth;endif cright >n2cright=n2;cleft=n 2-maxwidth;endSegGray=sbw(rowtop:row

25、bot,cleft:cright); SegBw1=sbw(rowtop:rowbot,cleft:cright);SegBw2 = imresize(SegBw1,22 14); %變換為 22 行*14 列標準子圖subplot(2, n1,l),imshow(SegGray);if l=7title('車牌字符寬度:',i nt2str(maxwidth),'Color','r');endsubplot(2, n1,n 1+l),imshow(SegBw2);fname=strcat('F:MATLABworksamimage

26、9;,i nt2str(k),'.jpg');%保存子圖備選入樣本庫,并建立樣本庫imwrite(SegBw2,fname,'jpg')l=l+1;end2.12將計算計算獲取的字符圖像與樣本庫進行匹配,自動識別出字符代碼:進行車牌識別前需要使用樣本對神經網絡進行訓練,然后使用訓練好的網絡對車牌 進行識別。其具體流程為:使用漢字、字母、字母數字、數字四個樣本分別對四個子網絡 進行訓練,得到相應的節點數和權值。對已經定位好的車牌進行圖像預處理,逐個的特 征提取,然后從相應的文件中讀取相應的節點數和權值,把車牌字符分別送入相應的網 絡進行識別,輸出識別結果。17程序

27、流程圖車牌字符寬度:u識剔車牌等碼:粵A98325圖2.12識別的車牌號碼18#四、設計結果及分析預處理后:原始圖像:#廉媳筆色圖悽車牌定位和提取:圖停二逋毗字符的分割和識別:#車牌天.區平甜車碑二15于圏預處理:車牌字持寬度:14日E E氐總陰g識剔車牌號碼# A9 B 32S日融目總E厘R可以看出對于這個車牌,可以準確的識別原始圖像:19圖儺二悄化車牌的定位和提取:車牌灰.度子圖lip6 K9803L .' - r字符的分割和識別:iipGK9808jfl R 9車牌字符貫度:1920#車牌二愷子圖祁 K9808JQ ie ia識別車牌等碼護B ASMS2EKE#從上面結果可以看出

28、,這張車牌的識別失敗了,將 G誤識別為B 了,K誤識為A, 識別為8,這在識別中是非常容易出錯的地方,因此需要在其他方面做些彌補,最后達 到識別效果在車牌識別的過程中數字庫的建立很重要 ,只有數字庫的準確才能保證檢測出來的 數據正確。切割出來的數據要與數據庫的數據作比較,所以數據庫的數據尤為重要。五、總結:實驗對車牌識別系統的軟件部分進行了研究,分別從圖像預處理、車牌定位、字符 分割以及字符識別等方面進行了系統的分析。整理和總結了國內外在車牌定位、分割、 字符識別方面的研究成果和發展方向,系統介紹了我國車牌的固有特征,以及車牌識別 的特點。在車牌定位我們采用基于灰度跳變的定位方法,采用先對圖像

29、進行預處理,再 進行二值化操作的方法。實驗表明本方法既保留了車牌區域的信息,又減少了噪聲的干 擾,從而簡化了二值化處理過程,提高了后續處理的速度。基于彩色分量的定位方法, 運用基于藍色象素點統計特性的方法對車牌是藍色的車牌進行定位,實驗表明,用該方 法實現的車牌定位準確率較高。本設計用MATLA編程運行結果可以得出,本設計采用的 圖像預處理、CANNY邊緣檢測、開閉運算子5, 19、車牌長寬比特征識別等對車牌的定 位都是非常有效的,而本設計提出的二次水平投影分析和閾值技術有效檢測了車牌圖像 的上下左右邊框、旋轉角度,準確實現的車牌字符的分割,對多個車牌進行實驗,均有 很高的正確率。本設計雖然只

30、對藍底白字車牌進行分割識別,對黑底白字車牌原則上整 個算法可直接適用,對白底黑字車牌、黃底黑字車牌,需要對車牌定位算法進行調整, 并將圖像反轉(0變1、1變0),而車牌字符的分割算法仍然行之有效。六、設計體會經過幾周的奮戰我的課程設計終于完成了。課程設計不僅是對前面所學知識的一種 檢驗,而且也是對自己能力的一種提高。以前老是覺得自己什么東西都不會,什么東西 都不懂,而且又急于求成,結果造成什么都沒學好,還是什么都不會。通過這次課程設 計,我才明白學習是一個長期積累的過程,在以后的工作、生活中都應該不斷的學習, 努力提高自己知識和綜合素質,特別是對于我,基礎比較差,一定不能太過于心急,要 靜下心

31、來慢慢的研究。在這次課程設計中也使我們的同學關系更進一步了,同學之間互 相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以 在這里非常感謝幫助我的同學,我也明白學習不是埋頭苦讀書,而是合理的利用資源, 從同學那里,老師那里得到的有用的想法和信息,特別是網上有很多很好的資料,對自 己的自學能力也是很好的提高。我的心得也就這么多了,總之,不管學會的還是學不會 的的確覺得困難比較多,真是萬事開頭難,不知道如何入手。最后終于做完了有種如釋 重負的感覺。此外,還得出一個結論:知識必須通過應用才能實現其價值!有些東西以 為學會了,但真正到用的時候才發現是兩回事,所以我認為只有到真正會用的時候才是 真的學會了。也不能因為做出來就以為自己什么都懂了,在很多的地方還需要進一步的 去學習和研究,就想這個課程設計雖然能實現車牌識別的功能,但是識別率還是還是非 常低的,只是在理論上能行得通,根本不可能運用到商業上,因此在接下來的工作中, 應該去找更好的方法來提高識別率。 以前對MATLA也是僅局限在數學實驗上學的那些知 識,但是通過此次的課程設計,才了解到 MATLA在圖形圖像處理方面的強大功能,這些 事C/C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論