摘要:本次作業的任務是設計乙個基於matlab的汽車牌照識別程式,能夠實現車牌影象預處理,車牌定位,字元分割,然後通過神經網路對車牌進行字元識別,最終從一幅影象中提取車牌中的字母和數字,給出文字形式的車牌號碼。
關鍵詞:車牌識別,matlab,神經網路
1 引言
隨著我國交通運輸的不斷發展,智慧型交通系統(intelligent traffic system,簡稱its)的推廣變的越來越重要,而作為its的乙個重要組成部分,車輛牌照識別系統(vehicle license plate recognition system,簡稱lpr)對於交通管理、治安處罰等工作的智慧型化起著十分重要的作用。它可廣泛應用於交通流量檢測,交通控制於誘導,機場,港口,小區的車輛管理,不停車自動收費,闖紅燈等違章車輛監控以及車輛安全防盜等領域,具有廣闊的應用前景。由於牌照是機動車輛管理的唯一識別符號號,因此,車輛牌照識別系統的研究在機動車管理方面具有十分重要的實際意義。
2 車輛牌照識別系統工作原理
車輛牌照識別系統的基本工作原理為:將攝像頭拍攝到的包含車輛牌照的影象通過**卡輸入到計算機中進行預處理,再由檢索模組對牌照進行搜尋、檢測、定位,並分割出包含牌照字元的矩形區域,然後對牌照字元進行二值化並將其分割為單個字元,然後輸入jpeg或bmp格式的數字,輸出則為車牌號碼的數字。
3 車輛牌照識別系統組成
(1)影象預處理:對汽車影象進行影象轉換、影象增強和邊緣檢測等。
(2)車牌定位:從預處理後的汽車影象中分割出車牌影象。即在一幅車輛影象中找到車牌所在的位置。
(3)字元分割:對車牌影象進行幾何校正、去噪、二值化以及字元分割以從車牌影象中分離出組成車牌號碼的單個字元影象
(4)字元識別:對分割出來的字元進行預處理(二值化、歸一化),然後分析提取,對分割出的字元影象進行識別給出文字形式的車牌號碼。
4 汽車牌照識別系統的matlab實現
4.1 影象預處理與車牌定位
輸入的彩色影象包含大量顏色資訊,會占用較多的儲存空間,且處理時也會降低系統的執行速度,因此對影象進行識別等處理時,常將彩色影象轉換為灰度影象,以加快處理速度。對影象進行灰度化處理、邊緣提取、再利用形態學方法對車牌進行定位。具體步驟如下:
首先對影象進行灰度轉換,二值化處理然後採用4x1的結構元素對影象進行腐蝕,去除影象的雜訊。採用25x25的結構元素,對影象進行閉合應算使車牌所在的區域形成連通。在進行形態學濾波去除其它區域。
i=imread('');%讀取影象
figure(); subplot(3,2,1),imshow(i), title('原始影象');
i1=rgb2gray(i);%轉化為灰度影象
subplot(3,2,2),imshow(i1),title('灰度影象');
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);%影象聚類、填充影象
subplot(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;
endendend[temp maxy]=max(y1);
figure();
subplot(3,2,1),plot(0:y-1,y1),title('行方向畫素點灰度值累計和'),xlabel('行值'),ylabel('畫素');
%%%%%%%求的車牌的行起始位置和終止位置%%%%%%%%%
py1=maxy;
while ((y1(py1,1)>=50)&&(py1>1))
py1=py1-1;
endpy2=maxy;
while ((y1(py2,1)>=50)&&(py2 py2=py2+1;
endiy=i(py1:py2,:,:);
x1=zeros(1,x);
for j=1:x
for i=py1:py2
if(i6(i,j,1)==1)
x1(1,j)= x1(1,j)+1
endend end
subplot(3,2,2),plot(0:x-1,x1),title('列方向畫素點灰度值累計和'),xlabel('列值'),ylabel('像數');
%%%%%%%求的車牌的列起始位置和終止位置
px1=1;
while ((x1(1,px1)<3)&&(px1 px1=px1+1;
endpx2=x;
while ((x1(1,px2)<3)&&(px2>px1))
px2=px2-1;
endpx1=px1-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; end
g_max=double(max(max(i1)));
g_min=double(min(min(i1)));
t=round(g_max-(g_max-g_min)/3); % t 為二值化的閾值
[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,1)= y1(i,1)+1 ;
endendendpy1=1;
py0=1;
while ((y1(py0,1)<20)&&(py0 py0=py0+1;
endpy1=py0;
while((y1(py1,1)>=20)&&(py1 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)
x1(1,j)= x1(1,j)+1;
endendendfigure(5);
plot(0:x1-1,x1),title('列方向畫素點灰度值累計和'),xlabel('列值'),ylabel('累計畫素量');
px0=1;
px1=1;
分割字元
for i=1:7
while ((x1(1,px0)<3)&&(px0 px0=px0+1;
endpx1=px0;
while (((x1(1,px1)>=3)&&(px1 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'
pin5=z;
otherwise
pin6=z;
endfigure(3);
汽車牌照的排序與查詢問題 資料結構與演算法課程設計報告
2009 20010 學年第二學期 題目 汽車牌照的排序與查詢問題,實現對汽車牌照按多關鍵字排序及快速查詢。其中汽車牌照有漢字 字母和數字混合排列,例如 皖a12345。使用基數排序方法進行排序,並在排序的基礎上,利用二分查詢思想實現對汽車牌照按多關鍵字的查詢。二 資料結構的選擇和概要設計 1 資料...
汽車4S店車牌識別應用方案
方案簡介 文通科技針對汽車4s店研發的新一代車牌識別應用系統,是一種面向4s店 監控綜合管理的多功能業務系統。它融合了多項專利技術,採用了多項it高新技術,如 編譯碼技術 嵌入式系統技術 儲存技術 網路技術 車牌識別技術 智慧型技術和模式識別技術等。系統被廣泛應用於4s店出入口管理 停車場出入口管理...
基於車牌識別技術的車位誘導及反向尋車系統解決方案
伴隨著社會經濟的持續發展,城市的人口不斷的增加,汽車這個最主要的交通工具也被越來越多的人們擁有,但隨之而來的停車難問題也日益突出。在寸土寸金的城市,地下停車場和地面多層停車場等占地少,容量大的場內停車設施越來越多的成為緩解城市停車壓力的主要手段。使用者在停車場內停放車輛後,為了方便取車,一般都會留意...