License Plate Recognition LPR.. Car Plate Recognition CPR.. Automatic Number Plate Recognition ANPR.. Car Plate Reader CPR.. Optical Character Recognition OCR for Cars... figure, imshowI
Trang 1Trong gi i h n c a tài lu n v n thì không th khái quát h t t t c các v n
ng nh các thu t toán gi i quy t cho t ng v n m t Vì v y không tránh kh i thi usót trong quá trình th c hi n R t mong s óng góp ý ki n c a quý th y cô và b n bè
Em xin chân thành cám n n Ban Giám hi u Tr ng i h c Tôn c Th ng
Th y cô trong Khoa n – n t và Th y Ph m Thiên Duy (Gi ng viên h ng d n)
Sinh viên th c hi n
ng Tu n t
Trang 2LÍ DO TH C HI N TÀI
Cùng v i s phát tri n c a khoa h c k thu t và nhu c u i l i ngày càng t ng, s
ng ph ng ti n giao thông trên ng ngày càng xu t hi n nhi u V i s l ng
ph ng ti n giao thông l n và còn không ng ng t ng lên nh v y ã làm n y sinh nhi u
n trong vi c ki m soát c ng nh qu n lý các ph ng ti n gi i quy t v n nàynhu c u t ra là áp d ng các h th ng t ng M t trong nh ng h th ng nh v y là h
th ng t ng nh n d ng bi n s xe là h th ng có kh n ng thu nh n hình nh c ng nh
là c và hi u các bi n s xe m t cách t ng
t h th ng nh v y có th c s d ng trong r t nhi u các ng d ng ch ng
n nh : ki m soát ra vào sân bay, b n c ng, khu v c biên gi i c a kh u, tr m cân r a
xe t ng hoàn toàn, bãi gi xe t ng, ki m soát l u l ng giao thông hay trong các
Trang 3CH NG 1: TÌM HI U H TH NG NH N D NG BI N S XE
H th ng này còn có các tên g i qu c t nh :
1 License Plate Recognition (LPR)
2 Automatic Vehicle Identification (AVI)
3 Car Plate Recognition (CPR)
4 Automatic Number Plate Recognition (ANPR)
5 Car Plate Reader (CPR)
6 Optical Character Recognition (OCR) for Cars
th ng nh n d ng bi n s xe y
Hình nh thu nh n c t camera quan sát a qua m t thi t b có kh n ng
“capture” hình nh (Frame Grabber) Sau ó a vào máy tính x lí d i s h tr c a
ph n m m nh n d ng v i các th vi n liên k t ng (*.dll) Hình nh sau khi x lí sliên k t v i m t kho c s d li u ghi nh n l i nh c ng nh i chi u v i d li u liênquan (tên ch ph ng ti n; ngày, gi qua tr m; các thông tin m t c p n u có… ) Cu icùng s a ra quy t nh u khi n ( óng, m tr m)
Trang 4kh i h th ng nh n d ng bi n s xe:
Trang 5Ví d v quá trình nh n d ng bi n s xe th c t :
nh ch p ph ng ti n t camera
nh ch p sau khi l c màu vàng c a bi n s
Trang 6Vùng nh ch a bi n s xe
Xác nh góc nghiêng c a nh
Trang 8nh a c p xám (Gray)
nh sau khi qua b l c thích nghi
nh nh phân (các m nh có giá tr là 0 ho c 1)
Trang 10Phân n kí t dùng ph ng pháp “peaks to valleys”
nh s sau khi c làm gi n n ra
Trang 13CH NG 2: GI I THI U V X LÝ NH VÀ MATLAB
Cài t: Th c hi n cài t Matlab 7.0 (ho c 6.5) Có hai a, m t a ph n m m
ch y ch ng trình Matlab 7.0 và m t a Help Sau khi cài t thành công ta có th vàohelp tìm thông tin, t p l nh liên quan
• Trong c a s command windows gõ: help “l nh hay bi u th c liên quan”
• Vào menu/help/demos: m t s ví d tham kh o
• Vào menu/help/Search: ki m thông tin liên quan
Trang 142.1.1 Thu nh n nh
Thu nh n nh có th s d ng máy quay (camera), webcam, máy quét (scanner)
nh thu c có th là nh tr ng en ho c c ng có th là nh màu Tuy nhiên, có th
lý và tính toán các nh trên máy tính thì ch có nh s là n gi n nh t
Tùy thu c vào ch t l ng thi t b thu nh n nh, các nh s có ch t l ng khácnhau u này nh h ng l n n quá trình ti n x lý nh
Các thi t b nh có th cho ra các k t qu t ng t ho c nh s cho nên nh sau khi
ch p ph i c chuy n thành nh s (có th dùng máy scanner quét l i t m nh t ng, chuy n nó sang nh s a lên máy tính x lý)
2.1.2 Quá trình ti n x lý nh
ó là quá trình x lý và nâng cao ch t l ng nh nh sau khi thu nh n c có
th ch a nhi u thông tin không c n thi t nh : nhi u, lòe,… u này làm cho nh códung l ng l n và có ch t l ng không t t, nh h ng n quá trình x lý nh
i v i tài lu n v n thì nh sau x lý ph i t c các y u t nh : cân b ngcác m c sáng t i, kh nhi u, nâng cao t ng ph n
2.1.3 Quá trình phân tích nh
Phân tích nh là quá trình bi n i nh t ó a ra các c tr ng quan tr ng
a nh ây là giai n quan tr ng nh t c a quá trình x lý nh Các c tr ng c a
m nh có th là: ng biên, phân vùng nh, ho c c hai…
2.1.4 c tr ng c a nh
nh sau khi qua các b c ti n x lý và phân tích nh s a ra các thông s c a
i t ng mà chúng ta c n quan tâm t i Các thông s này s c tính toán l i t óchúng ta có th a ra các c tr ng c a t m nh Chúng ta có th s d ng c tr ng này
nh n d ng s khác bi t c a: các khuôn m t ng i, s n ph m b l i trong dây chuy n,
nh n d ng bi n s xe…
Trong th c t , quá trình x lý nh thì có nhi u ph ng pháp làm khác nhau và vì
th chúng ta s có nhi u thu t toán tìm ra c tr ng c a m t t m nh là khác nhau
Ph màu c chia thành 6 vùng màu: tím, lam, l c, vàng, cam, N u nhìn màu
y thì không có ranh gi i gi a các màu k nhau, mà màu này li n sang màu khác.Màu mà m t ng i c m nh n c là do s ph n x ánh sáng t v t th
2.2.2 nh RGB
nh RGB ( nh màu) g m 3 màu c b n R:red; G:green; B:blue hay còn g i là nh
“truecolor” do tính trung th c c a nó nh này c bi u di n theo m t ma tr n ba chi ukích th c m*n*3 v i [m n] là kích th c nh theo pixels Ma tr n này nh ngh a cácthành ph n màu red, green, blue cho m i m nh Ví d : m nh v trí (10,5) s có
Trang 153 thành ph n màu c xác nh b i các giá tr (10,5,1), (10,5,2) và (10,5,3) V i 1, 2, 3
là t ng ng v i các màu R, G, B
2.2.3 nh tr ng en, nh a c p xám
nh tr ng en ch bao g m hai màu: màu en và màu tr ng Chúng ta phân s bi n
i này thành L m c N u L b ng hai t c ch có hai m c là 0 và 1 thì ó là nh tr ng
en, hay còn g i là nh nh phân N u L l n h n hai thì ta có nh a c p xám Vi c xác
nh s m c này ph thu c vào tiêu chí l ng t hóa L th ng ch n là 32, 64, 128, 256.Trong ó nh a c p xám 256 m c là nh có ch t l ng cao và th ng c ch n
i nh nh phân thì m i pixel mã hóa trên m t bit Còn nh a c p xám 256 m cthì m i pixel mã hóa trên tám bit T nh RGB c n qua b c trung gian chuy n i là
nh a c p xám chuy n thành nh nh phân Chúng ta có th th y rõ c nguyên lý
a m t t m nh màu, c ng nh nh tr ng en thông qua m t s l nh trong matlab:
Trang 16% Th c hi n tách ma tr n màu ra kh i nh màu RGB
>> goc = anh;
>> H1 = goc;
>> H1(:,:,1) = 0; % Cho ma tr n màu Red b ng không
>> H1(:,:,2) = 0; % Cho ma tr n màu xanh lá Green b ng không
>> H1(:,:,3) = 0; % Cho ma tr n màu xanh d ng Blue b ng không
>>lay_nguong = graythresh(tuong_phan); % y ng ng theo thu t toán otsu
>> trang_den = im2bw(tuong_phan , lay_nguong); % nh tr ng en
>> figure(5), imshow(trang_den);
Trang 172.2.4 Các nh d ng nh
nh Bitmap - Microsoft Windows Bitmap (*.BMP)
Là nh c nh d ng theo chu n do Microsoft a ra V i nh d ng này, nh
c chuy n mã và c l u l i y thông tin Tuy nhiên, nh c nh d ng theo
ng này có dung l ng r t l n vì nó không c nén
nh GIF - Graphic Interchanger Format (*.GIF)
c nh d ng theo chu n nén LZW d a trên s l p l i c a m t nhóm m nhthay vì các mã lo t dài nh các nh d ng khác nên dung l ng l u tr nh h n nhGIF th ng c dùng l u tr các nh n gi n và ít có s chuy n i màu gi a cácvùng nh Ch ng h n các nh h a hay th , bi u …Tuy nhiên, nh GIF có ch t
ng cao, phân gi i h a cao, có th hi n th trên h u h t các ph n m m h a
nh JPEG - Joint Photographic Expert Group (*.JPEG hay *.JPG)
nh JPEG là chu n nén nh t nh có m t mát, th ng c dùng l u tr các nhmàu ho c các nh a m c xám khi không có yêu c u cao v nh gi i nén ph i gi nghoàn toàn nh g c Dung l ng c a nh JPEG th ng r t nh Ng i dùng có th ch
ng dung l ng c a nh l u tr b ng cách ch n t l nén nhi u hay ít nh l u v i nh
ng JPG có th l u c 24 bits/pixel d li u màu (t ng ng 16 tri u màu)
t ng i gi ng nhau v màu s c, ánh sáng gi a i t ng và không gian quanh i
ng ho c do tính không tuy n tính hay bi n ng nh c a b c m nh n nh
u ch nh l i t ng ph n c a nh, ta u ch nh l i biên trên toàn d i haytrên d i có gi i h n b ng cách bi n i tuy n tính u vào (dùng hàm bi n i là hàmtuy n tính) hay phi tuy n (hàm m hay hàm logarit)
Trang 18Hình 2.6 nh ch a t ng t ng ph n
Hình 2.7 nh sau khi t ng t ng ph n
Công th c chung cho l nh imadjust ( i v i t t c các nh xám, màu ) là:
>> J = imadjust(I, [low_in; high_in], [low_out; high_out], gamma);
• [low_out; high_out]: là giá tr m c xám nh sau bi n i Các giá tr c ch n
a nó n m trong kho ng [0 1], t ng t nh [low_in; high_in]
Trang 19u gamma nh h n 1 thì nh sau bi n i s phi tuy n v i nh ban u, theo hàm m ng:
u gamma b ng 1 thì nh sau bi n i s t l tuy n tính v i nh ban u
u gamma l n h n 1 thì nh sau bi n i phi tuy n v i nh ban u theo hàm m ng:
Trang 20Chú ý: Ta có thay i các thông s c a [low_in; high_in] ho c [low_out; high_out]
th c t , histogram th ng c chu n hóa b ng cách chia m i giá tr c a nó cho t ng s
m nh, ký hi u là n Do ó histogram chu n hóa cho b i p(rk) = nk/n v i k = 0, 1, 2,
…, L-1
Trang 24các thông s tol cho hàm stretchlim ó là m t vector g m hai ph n t thu c [0 1] cho
bi t ta s ch n các gi i h n m c nào trong vùng bi n thiên m c xám (m c nh là[0.01 0.99])
>> [low, high] = stretchlim(I, tol);
>>figure; imshow(J2); title('Nhieu poisson');
>>J3 = imnoise(I,'salt & pepper');
>>figure; imshow(J3); title('Nhieu salt & pepper');
>>J4 = imnoise(I,'speckle');
>>figure; imshow(J4); title('Nhieu speckle');
Trang 26Hình 2.18 nh sau khi tách biên v i Prewitt
Trang 27Sau khi ti n hành dò biên i t ng trong nh, Matlab tr v 4 thông s B,L,N,A Trong
ó có 2 thông s ta c n quan tâm
Trang 29Giao ti p máy tính v i webcam:
• Mua m t webcam có kèm theo a driver N u có webcam không có driver thì có
th tìm thông tin c a hãng bán webcam ó (có ghi trên s n ph m) Sau ó cài adriver vô máy tính
• m u n i webcam vào c ng USB
• ch ng trình ch y, lúc này máy tính ã có th giao ti p v i webcam
Matlab giao ti p v i Webcam:
Trong quá trình x lý nh, mu n ch p, quay phim…x lý nh m t cách tr c ti p twebcam v i ph n m m matlab Thì c n ph i th c hi n nh ng b c sau:
• Ph i có file vfm.dll
• Sau khi có file vfm.dll thì th c hi n chép file này vào a ch :
Trang 312.4.4 T o giao di n ng i s d ng:
Giao di n ng i s d ng (Graphical User Interface - GUI) là giao di n b ng hình
nh c a ch ng trình M t GUI t t có th làm cho ch ng trình tr nên d s d ng b ngcách cung c p nh ng thông tin ban u c n thi t và v i nh ng công c u khi n nh :nút nh n (Pushbutton), h p li t kê (list box), thanh tr t (slider), trình n(menu),…GUI nên c thi t k m t cách d hi u và thân thi n ng i s d ng có th
hi u và d oán c k t qu c a m t tác ng
Cách làm vi c c a m t GUI:
GUI bao g m các nút nh n, h p li t kê, thanh tr t, menu,… cung c p cho ng i
d ng m t môi tr ng làm vi c thân thi n V i GUI thì ng i s d ng ch c n hi u
c cách ng d ng c a nó, không c n i chi ti t quá sâu vào chuyên môn, không c n
hi u rõ cách th c làm vi c c a ch ng trình nh th nào Tuy nhiên, t o m t GUI là
t công vi c r t khó kh n i v i ng i l p trình b i vì GUI trong matlab thì ch a
c ph bi n, nghiên c u k , các h ng d n c ng nh ví d ng d ng là ch a nhi u
Các thành ph n chính trong m t GUI c a matlab:
• Component (các thành ph n c u thành): m i i t ng trong GUI (nút nh n,nhãn, h p so n th o,…) sau khi k t h p l i thì t o thành m t GUI hoàn ch nh
Callback: cu i cùng, khi ng i s d ng tác ng vào ch ng trình b ng cách
nh n chu t, hay gõ bàn phím thì ch ng trình ph i áp ng l i m i s ki n này
Các công c u khi n
hàm khi ta nh n vào nó
thái là “on” và “off” Khi
có tác ng nó s g i hàm
ng ng và thay i tr ngthái t “on” sang “off” và
ng c l i
Trang 32t nhóm Radio button ta
ch có th ch n c m tthành ph n Khi có tác
ng c l i
chu i Ng i s d ng có
th ch n m t chu i b ngcách click ho c doubleclick vào nó Ch ng trình
g i m t hàm khi có m tchu i c ch n
chúng ta ch n m t chu itrong m t nhóm các chu i.Danh sách t t c các chu i
c hi n th khi cóclick chu t Khi không cóclick chu t công c ch th
Trang 33Text field Uicontrol c s d ng t o ra m t
nhãn bao g m các ký t Text field không có kh
ng g i hàm
Menu và tr c th
menu trên thanh công c
Ch ng trình s g i hàmkhi m t i t ng trongmenu c ch n
tr c th Axes không
có kh n ng g i hàm
menu xu t hi n khi righclick vào m t hình tronggiao di n
Hình 2.20 M t s thành ph n trong giao di n
Trang 34figure, imshow(I), title('Anh da cap xam');
figure, imhist(I), title('Histogram anh goc');
% Giai n ti n x lí nh
J1 = medfilt2(I);
figure, imshow(J1), title('Anh sau khi loc trung vi');
J2 = imadjust(J1);
figure, imhist(J2), title('Histogram cua anh sau khi hieu chinh');
figure, imshow(J2), title('Anh sau khi hieu chinh do sang');
nh a c p xám nh sau khi hi u ch nh sáng
Histogram nh g c Histogram c a nh sau khi hi u ch nh
Trang 35J4 = wiener2(J2,[5 5]); % loc Wiener
threshold = graythresh(J4); % xac dinh nguong cua anh
BW = im2bw(J4,threshold);
figure, imshow(BW), title('Anh nhi phan');
nh nh phânBWdfill = imfill(BW,'holes');
figure, imshow(BWdfill), title('Anh nhi phan xac dinh khung bien so xe);
Trang 36[m,n] = max(tam) % m : gia tri lon nhat ; n : vi tri hang cua gia tri max
W = cell2mat(B(n,1)); % chuyen tu mang sang ma tran
% Xac dinh toa do vung chua bien so xe
cot_min = min(W(:,1));
cot_max = max(W(:,1));
hang_min = min(W(:,2));
hang_max = max(W(:,2));
% ghi lai anh moi trich xuat tu anh goc voi toa do moi tim duoc
imwrite(J4(cot_min : cot_max, hang_min : hang_max),'catbienso.jpg');
RGBcrop = imread('catbienso.jpg');
figure, imshow(RGBcrop), title('Bien so xe duoc cat tu anh goc');
% Chuan hoa kich thuoc bien so xe
Y = imresize(RGBcrop,[300 400]);
figure, imshow(Y), title('Bien so xe duoc chuan hoa kich thuoc');
Vùng nh ch a bi n s xe c tách t nh g c
Trang 37Sau khi tách c vùng nh ch a bi n s xe và chu n hóa l i kich th c nh, ta
ti p t c chia ôi bi n s xe thành n a trên (4 kí t trên) và n a d i (4 kí t d i)
u này giúp ta thu n l i h n trong vi c tách các kí t trong bi n s xe Kích th cchu n hóa c l a ch n sao cho ta d quan sát và thu n l i cho vi c tính toán
Trang 38BW_Y1_fill = imfill(~BW_Y1,'holes');
figure, imshow(BW_Y1_fill), title('Binary image with filled holes');
% Xoa cac doi tuong nam tren bien anh
BW_Y1_nobord = imclearborder(BW_Y1_fill,8);
figure, imshow(BW_Y1_nobord), title('cleared border image');
nh sau khi c xóa nhi u t i biên nh
% xoa cac vung anh nho hon 100 pixel <=> nhieu dom trang
figure, imshow(W1), title('chu so thu 1');
figure, imshow(W2), title('chu so thu 2');
Trang 39figure, imshow(W3), title('chu so thu 3');
figure, imshow(W4), title('chu so thu 4');
end
end
end
Trang 40nh ngh ch o
Trang 41BW_Y2_fill = imfill(~BW_Y2,'holes');
figure, imshow(BW_Y2_fill), title('binary image with filled holes');
% Xoa cac doi tuong nam tren bien anh
BW_Y2_nobord = imclearborder(BW_Y2_fill,8);
figure, imshow(BW_Y2_nobord), title('cleared border image');
nh sau khi c xóa nhi u t i biên nh
% xoa cac vung anh nho hon 100 pixel <=> nhieu dom trang
Trang 42imwrite(Y2(cell_cot_min:cell_cot_max , cell_hang_min:cell_hang_max,:),'num5.jpg'); W5 = imread('num5.jpg');
figure, imshow(W5), title('chu so thu 5');
figure, imshow(W6), title('chu so thu 6');
figure, imshow(W7), title('chu so thu 7');
figure, imshow(W8), title('chu so thu 8');
end
end
end
% END