基于matlab的汽車牌照識別程序_第1頁
基于matlab的汽車牌照識別程序_第2頁
基于matlab的汽車牌照識別程序_第3頁
基于matlab的汽車牌照識別程序_第4頁
基于matlab的汽車牌照識別程序_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、基于matlab的汽車牌照識別程序摘要:本次作業的任務是設計一個基于matlab的汽車牌照識別程序,能夠實現車牌圖像預處理,車牌定位,字符分割,然后通過神經網絡對車牌進行字符識別,最終從一幅圖像中提取車牌中的字母和數字,給出文本形式的車牌號碼。關鍵詞:車牌識別,matlab,神經網絡1 引言隨著我國交通運輸的不斷發展,智能交通系統(Intelligent Traffic System,簡稱ITS)的推廣變的越來越重要,而作為ITS的一個重要組成部分,車輛牌照識別系統(vehicle license plate recognition system,簡稱LPR)對于交通管理、治安處罰等工作的智能

2、化起著十分重要的作用。它可廣泛應用于交通流量檢測,交通控制于誘導,機場,港口,小區的車輛管理,不停車自動收費,闖紅燈等違章車輛監控以及車輛安全防盜等領域,具有廣闊的應用前景。由于牌照是機動車輛管理的唯一標識符號,因此,車輛牌照識別系統的研究在機動車管理方面具有十分重要的實際意義。2 車輛牌照識別系統工作原理車輛牌照識別系統的基本工作原理為:將攝像頭拍攝到的包含車輛牌照的圖像通過視頻卡輸入到計算機中進行預處理,再由檢索模塊對牌照進行搜索、檢測、定位,并分割出包含牌照字符的矩形區域,然后對牌照字符進行二值化并將其分割為單個字符,然后輸入JPEG或BMP格式的數字,輸出則為車牌號碼的數字。3 車輛牌

3、照識別系統組成(1)圖像預處理:對汽車圖像進行圖像轉換、圖像增強和邊緣檢測等。(2)車牌定位:從預處理后的汽車圖像中分割出車牌圖像。即在一幅車輛圖像中找到車牌所在的位置。(3)字符分割:對車牌圖像進行幾何校正、去噪、二值化以及字符分割以從車牌圖像中分離出組成車牌號碼的單個字符圖像(4)字符識別:對分割出來的字符進行預處理(二值化、歸一化),然后分析提取,對分割出的字符圖像進行識別給出文本形式的車牌號碼。4 汽車牌照識別系統的matlab實現4.1 圖像預處理與車牌定位輸入的彩色圖像包含大量顏色信息,會占用較多的存儲空間,且處理時也會降低系統的執行速度,因此對圖像進行識別等處理時,常將彩色圖像轉

4、換為灰度圖像,以加快處理速度。對圖像進行灰度化處理、邊緣提取、再利用形態學方法對車牌進行定位。具體步驟如下:首先對圖像進行灰度轉換,二值化處理然后采用4X1的結構元素對圖像進行腐蝕,去除圖像的噪聲。采用25X25的結構元素,對圖像進行閉合應算使車牌所在的區域形成連通。在進行形態學濾波去除其它區域。I=imread('DSC01344.jpg');%讀取圖像figure(); subplot(3,2,1),imshow(I), title('原始圖像');I1=rgb2gray(I);%轉化為灰度圖像subplot(3,2,2),imshow(I1),title(

5、'灰度圖像');I2=edge(I1,'robert',0.09,'both');%采用robert算子進行邊緣檢測subplot(3,2,3),imshow(I2),title('邊緣檢測后圖像');se=1;1;1;%線型結構元素I3=imerode(I2,se); %腐蝕圖像subplot(3,2,4),imshow(I3),title('腐蝕后邊緣圖像');se=strel('rectangle',25,25);矩形結構元素I4=imclose(I3,se);%圖像聚類、填充圖像subplo

6、t(3,2,5),imshow(I4),title('填充后圖像');I5=bwareaopen(I4,2000);%去除聚團灰度值小于2000的部分subplot(3,2,6),imshow(I5),title('形態濾波后圖像');y,x,z=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 end end temp MaxY=max(Y1); figure(); subplot(3,2,1),plot(0:y-

7、1,Y1),title('行方向像素點灰度值累計和'),xlabel('行值'),ylabel('像素'); %求的車牌的行起始位置和終止位置% PY1=MaxY; while (Y1(PY1,1)>=50)&&(PY1>1) PY1=PY1-1; end PY2=MaxY; while (Y1(PY2,1)>=50)&&(PY2<y) PY2=PY2+1; end IY=I(PY1:PY2,:,:); X1=zeros(1,x); for j=1:x for i=PY1:PY2 if(I6

8、(i,j,1)=1) X1(1,j)= X1(1,j)+1; end end end subplot(3,2,2),plot(0:x-1,X1),title('列方向像素點灰度值累計和'),xlabel('列值'),ylabel('像數');%求的車牌的列起始位置和終止位置% PX1=1; while (X1(1,PX1)<3)&&(PX1<x) PX1=PX1+1; end PX2=x; while (X1(1,PX2)<3)&&(PX2>PX1) PX2=PX2-1; end PX1=P

9、X1-1; PX2=PX2+1;%分割出車牌圖像%dw=I(PY1:PY2,PX1:PX2,:); subplot(3,2,3),imshow(dw),title('定位剪切后的彩色車牌圖像')4.2 車牌字符分割確定車牌位置后下一步的任務就是進行字符切分分離出車牌號碼的全部字符圖像。if isrgb(I) I1 = rgb2gray(I); %將RGB圖像轉化為灰度圖像else I1=I;endg_max=double(max(max(I1);g_min=double(min(min(I1);T=round(g_max-(g_max-g_min)/3); % T 為二值化的閾

10、值m,n=size(I1);% d:二值圖像%h=graythresh(I1);I1=im2bw(I1,T/256);subplot(3,2,4);imshow(I1),title('二值化車牌圖像');I2=bwareaopen(I1,20);subplot(3,2,5);imshow(I2),title('形態學濾波后的二值化圖像');y1,x1,z1=size(I2);I3=double(I2);TT=1;%去除圖像頂端和底端的不感興趣區域%Y1=zeros(y1,1); for i=1:y1 for j=1:x1 if(I3(i,j,1)=1) Y1(i

11、,1)= Y1(i,1)+1 ; end end endPy1=1;Py0=1;while (Y1(Py0,1)<20)&&(Py0<y1) Py0=Py0+1;endPy1=Py0; while(Y1(Py1,1)>=20)&&(Py1<y1) Py1=Py1+1; endI2=I2(Py0:Py1,:,:);subplot(3,2,6);imshow(I2),title('目標車牌區域');% 分割字符按行積累量%X1=zeros(1,x1);for j=1:x1 for i=1:y1 if(I3(i,j,1)=1)

12、X1(1,j)= X1(1,j)+1; end end endfigure(5);plot(0:x1-1,X1),title('列方向像素點灰度值累計和'),xlabel('列值'),ylabel('累計像素量');Px0=1;Px1=1;%分割字符%for i=1:7 while (X1(1,Px0)<3)&&(Px0<x1) Px0=Px0+1; end Px1=Px0; while (X1(1,Px1)>=3)&&(Px1<x1)|(Px1-Px0)<10) Px1=Px1+1;

13、 end Z=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' PIN5=Z; otherwise PIN6=Z; end figure(3); subplot(1,7,i); imshow(Z); Px0=Px1;End4.3 車牌字符識別字符

14、識別方法主要有基于模板匹配算法和基于人工神經網絡算法。基于模板匹配算法是首先將分割后的字符二值化,并將其尺寸縮放為字符數據庫中模板的大小,然后與所有模板進行匹配,最后選取最佳匹配作為結果。建立數字庫對該方法在車牌識別過程中很重要, 數字庫準確才能保證檢測出的數據正確。基于人工神經元網絡的算法有兩種,一種是先對特征提取待識別字符,然后用所獲得的特征訓練神經網絡分配器;另一種是直接將待處理圖像輸入網絡由網絡自動實現特征提取直至識別結果。在本程序中用基于人工神經元網絡識別車牌字符。在車牌字符識別部分, 字符集中包含約50個漢字, 26個大寫英文字母及10個阿拉伯數字。總的字符樣本并不太多。構造訓練樣

15、本如下圖所示的數字和字母,將樣本進行歸一化為50X20大小,再將圖像按列轉換成一個1000X1的行向量,將上述18個圖像的樣本排列在一起構成1000X18的矩陣樣本,盡可能多的采集汽車圖像提取車牌,部分切分出車牌字符,構造出更多1000X18的矩形樣本,用構造好的樣本庫對神經網絡進行訓練。function inpt = pretreatment(I)%YUCHULI Summary of this function goes here% Detailed explanation goes hereif isrgb(I) I1 = rgb2gray(I);else I1=I;endI1=imre

16、size(I1,50 20);%將圖片統一劃為50*20大小I1=im2bw(I1,0.9);m,n=size(I1);inpt=zeros(1,m*n);%將圖像按列轉換成一個行向量for j=1:n for i=1:m inpt(1,m*(j-1)+i)=I1(i,j); endend構造輸入樣本,按同樣的方法,將前面分割出的樣本歸一化。神經網絡進行識別。close all;clear all;%歸一化訓練樣本%I0=pretreatment(imread('0.jpg');I1=pretreatment(imread('1.jpg');I2=pretrea

17、tment(imread('2.jpg');I3=pretreatment(imread('3.jpg');I4=pretreatment(imread('4.jpg');I5=pretreatment(imread('5.jpg');I6=pretreatment(imread('6.jpg');I7=pretreatment(imread('7.jpg');I8=pretreatment(imread('8.jpg');I9=pretreatment(imread('9.

18、jpg');I10=pretreatment(imread('A.jpg');I11=pretreatment(imread('C.jpg');I12=pretreatment(imread('G.jpg');I13=pretreatment(imread('L.jpg');I14=pretreatment(imread('M.jpg');I15=pretreatment(imread('R.jpg');I16=pretreatment(imread('H.jpg');I17

19、=pretreatment(imread('N.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神經網絡參數設置net=newff(minmax(P),1000,32,18,'logsig','logsig','logsig

20、9;,'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.0000000001;net=init(net);%訓練樣本%net,tr=train(net,P,T);%測試%I=imread('DSC01323.jpg');I=imread('DSC01344.jpg');dw=location(I);%車牌定位PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6=StringSplit(dw);%字符分割及處理%測試字符,得到識別數值%PIN0=pretreatment(PIN0);PIN1=pretreatment(PIN1);PIN2=pretreatment(PIN2);PIN3=pretreatment(PIN3);PIN4=pretreatment(PIN4)

溫馨提示

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

評論

0/150

提交評論