Tải bản đầy đủ (.docx) (32 trang)

XỬ lý ẢNH ỨNG DỤNG NHẬN DẠNG BIỂN số XE (có code)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.54 MB, 32 trang )

XỬ LÝ ẢNH ỨNG DỤNG NHẬN DẠNG
BIỂN SỐ XE

1


MỤC LỤC
DANH MỤC CÁC HÌNH VẼ............................................................................................III
DANH MỤC CÁC BẢNG BIỂU.......................................................................................IV
DANH MỤC CÁC TỪ VIẾT TẮT.....................................................................................V
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI...........................................................................1
1.1

GIỚI THIỆU..................................................................................................................1

1.1.1 Yêu cầu của đề tài....................................................................................................1
1.1.2 Hướng giải quyết.....................................................................................................1
1.2

NGUYÊN LÝ CHUNG....................................................................................................1

CHƯƠNG 2. NỘI DUNG CỦA ĐỀ TÀI............................................................................2
2.1

SƠ ĐỒ HOẠT ĐỘNG.....................................................................................................2

2.2

SƠ LƯỢC VỀ ẢNH SỐ...................................................................................................3

2.3



XOAY BIỂN SỐ............................................................................................................5

2.3.1 Lý thuyết biển đổi Hough:.......................................................................................5
2.3.2 Xác định góc lệch....................................................................................................6
2.4

TÁCH VÙNG BIỂN SỐ...................................................................................................7

2.5

TÁCH TỪNG KÍ TỰ......................................................................................................8

2.6

SO SÁNH VỚI DATABASE...........................................................................................10

2.7

THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG...........................................................................11

CHƯƠNG 3. GIẢI THUẬT...............................................................................................13
3.1

LƯU ĐỒ GIẢI THUẬT PHẦN XOAY BIỂN SỐ................................................................13

3.2

LƯU ĐỒ GIẢI THUẬT TÁCH VÙNG BIỂN SỐ................................................................14


3.3

LƯU ĐỒ GIẢI THUẬT TÁCH TỪNG KÍ TỰ...................................................................15

3.4

LƯU ĐỒ GIẢI THUẬT CHƯƠNG TRÌNH CHÍNH............................................................16

3.4.1 Chương trình dùng ảnh có sẵn..............................................................................16
3.4.2 Chương trình dùng ảnh chụp từ camera...............................................................17

2


CHƯƠNG 4. NHẬN XÉT..................................................................................................18
4.1

NHẬN XÉT................................................................................................................18

CHƯƠNG 5. KẾT LUẬN..................................................................................................19
5.1

KẾT LUẬN.................................................................................................................19

5.2

HƯỚNG PHÁT TRIỂN.................................................................................................19

TÀI LIỆU THAM KHẢO..................................................................................................20
PHỤ LỤC A 21


DANH MỤC CÁC HÌNH VẼ

3


HÌNH 2-1: SƠ ĐỒ HOẠT ĐỘNG............................................................................2
HÌNH 2-2: MA TRẬN ẢNH.....................................................................................3
HÌNH 2-3: ẢNH RGB...............................................................................................4
HÌNH 2-4: ẢNH XÁM..............................................................................................4
HÌNH 2-5: ẢNH NHỊ PHÂN....................................................................................5
HÌNH 2-6: MIÊU TẢ BIẾN ĐỔI HOUGH...............................................................6
HÌNH 2-7: SƠ ĐỒ THỰC HIỆN XOAY BIỂN SỐ..................................................6
HÌNH 2-8: GÓC LỆCH.............................................................................................6
HÌNH 2-9: ẢNH ĐƯỢC XOAY KHI LÊCH............................................................7
HÌNH 2-10: SƠ ĐỒ KHỐI TÁCH VÙNG BIỂN SỐ................................................7
HÌNH 2-11: ẢNHR TRƯỚC VÀ SAU KHI CẮT BIỂN SỐ....................................8
HÌNH 2-12: KÍ TỰ ĐƯỢC CẮT RA........................................................................9
HÌNH 2-13: TẠO DỮ LIỆU CHO DATABASE.....................................................11
HÌNH 2-14: GIAO DIỆN CHƯƠNG TRÌNH.........................................................12
HÌNH 3-1: GIẢI THUẬT XOAY BIỂN SỐ............................................................13
HÌNH 3-2: GIẢI THUẬT TÁCH BIỂN SỐ............................................................14
HÌNH 3-3: GIẢI THUẬT TÁCH KÍ TỰ.................................................................15
HÌNH 3-4: DÙNG ẢNH CÓ SẴN..........................................................................16
HÌNH 3-5: ẢNH CHỤP TỪ CAMERA..................................................................17

DANH MỤC CÁC BẢNG BIỂU

4



5


DANH MỤC CÁC TỪ VIẾT TẮT

GUI Graphical User Interface
RGB Red Green Blue
MATLABMatrix Laboratory

6


ĐỒ ÁN 3
Trang 1/21

CHƯƠNG 1.

TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu
- Ngày nay, với sự tiến bộ của công nghệ khoa học, tự động hóa, mọi công
việc trở nên dễ dàng hơn không cần dùng nhiều nhân công cho những việc
máy móc có thể làm. Do đó, việc ứng dụng xử lý ảnh để nhận dạng biển số
xe với sự hỗ trợ của nhiều phần mềm khác để tạo ra một ứng dụng trong bãi
đậu xe khi không cần phải có nhân viên đứng quẹt thẻ xe cho khách.
1.1.1 Yêu cầu của đề tài
Sự dụng xử lý ảnh để khoanh vùng chứa biển số, xoay biển số xe khi bị
nghiêng trước khi đem đi xử lý, tách từng kí tự và đem những kí tự đó so
sanh với database để cho ra kết quả kí tự của biển số xe đó.

1.1.2 Hướng giải quyết
- Viết sơ đồ giải thuật, viết code, tạo giao diện người dùng (GUI) qua phần
mềm MATLAB.
1.2 Nguyên lý chung
- Biển số xe có đặc chưng là có một khung hình chữ nhật bao quanh, bên trong
là nền màu trắng và các kí tự đều có cùng kích thước, cùng màu đen, theo
một chuẩn nhất định. Việc xác định vùng chứa biển số trở nên dễ dàng hơn
-

bằng việc tìm vùng hình chữ nhật.
Xác định góc lệch và xoay cho hình ngay lại sau khi đã xác định được vùng

-

chứa biển số xe.
Nền biển số màu trắng và các kí tự nằm trong đó màu đen, vùng ranh giới

-

giữa trắng và đen sẽ là biên để cắt các kí tự ra khỏi biển số.
Đem các hình ảnh kí tự đó so với database để cho ra giá trị của kí tự đó.

CHƯƠNG 2.

NỘI DUNG CỦA ĐỀ TÀI

1.3 Sơ đồ hoạt động
- Từ những vấn đề đã đặt ra, sơ đồ hoạt động của việc nhận dạng biển số xe
như sau:
Xử lý ảnh ứng dụng nhận dạng biển số xe


SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 2/21

Ảnh chụp từ

Ảnh có sẵn

webcam

Tách vùng biển
số
Xoay biển số

Tách từng kí tự

So sánh với
database
Hiển thị kết quả
qua GUI
Hình 2-1: Sơ đồ hoạt động

-

-

-


-

-

Ảnh chụp từ camera, Ảnh có sẵn:
 Khi có xe camera sẽ chụp hình và đem đi xử lý, đây là xử lý hình
động
 Sử dụng các hình ảnh biển số có sẵn để xử lý, gọi là xử lý hình tĩnh.
Tách vùng biển số:
 Xác định vùng chứa biển số.
 Cắt vùng đó để tiếp tục xử lý.
Xoay biển số:
 Khi có được hình ảnh chỉ có biển số, xác định góc của nó và xoay lại
cho ngay để việc xử lý dễ dàng hơn.
Tách từng kí tự:
 Xác định vùng chứa từng kí tự.
 Cắt và đem đi nhận dạng.
So sánh với database:
 Tạo một tập mẫu của các kí tự từ 0 đến 9 và từ A đến Z.

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 3/21

 Kích thước kí tự nhận dạng phải giống với tập mẫu.

 Càng nhiều tập mẫu càng giảm thiếu sai sót khi nhận dạng.
1.4 Sơ lược về ảnh số
- Với chúng ta ảnh chỉ là góc nhìn về cảnh vật, màu sắc mà chúng ta chụp
được, còn khi xử lý bằng máy tính chúng được biểu diễn dưới dạng là một
ma trận hai chiều hàng và cột. VD: ảnh có độ phân giải 1280x1024 tức là có
1280 điểm ảnh(pixel) phân bố theo hàng và 1024 điểm ảnh phân bố theo cột,
có nghĩa là độ phân giải càng cao thì số lượng các pixels biểu diễn ảnh càng
lớn nên ảnh sẽ nhìn mượt, rõ hơn.

Hình 2-2: Ma trận ảnh

-

Có ba loại ảnh chính hay sử dụng trong xử lý ảnh:
 Ảnh màu: hay được gọi là ảnh RGB, ảnh được biểu diễn bởi ba màu
đỏ, xanh lá, xanh dương trong một pixel. Có giá trị từ 0 đến 255 nên
sẽ có 3 bytes trong một pixel. Ảnh này có độ chân thật giống với mắt
nhìn nhất.
 Ảnh xám: ảnh cũng có giá trị từ 0 đến 255 nhưng chỉ biểu diễn bởi 1
bytes. Ảnh đã được loại bỏ yếu tố màu sắc, độ bão hòa nhưng giữ lại
độ sáng.
 Ảnh nhị phân: ảnh được biểu diễn bởi 1 hoặc 0, 1 là sáng và 0 là tối.
Kích thước file ảnh nhị phân nhỏ hơn rất nhiều so với 2 loại ảnh trên
vì mỗi điểm ảnh được biểu diễn bằng một bit.

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn



ĐỒ ÁN 3
Trang 4/21

Hình 2-3: Ảnh RGB

Hình 2-4: Ảnh xám

Hình 2-5: Ảnh nhị phân

1.5 Xoay biển số
- Biển số xe khi chụp từ camera có thể không lúc nào cũng ngay ngắn, có lúc
sẽ bị nghiêng trái, phải. Phần này cũng quan trọng không kém đến việc nhận
dạng sau này, vì nếu biển số không ở phương thẳng đứng lúc cắt từng kí tự

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 5/21

để nhận dạng sẽ làm sai lệch chúng. Dùng biển Hough để tìm ra cạnh biển số
và tính được góc lệch để xoay.
1.1.3 Lý thuyết biển đổi Hough:
- Đây là phương pháp dùng tách các đặc điểm hình dáng cụ thể của một vật
như hình tròn, hình vuông, đường thẳng khi ảnh ở dạng nhị phân.
-

Từ góc tọa độ lên một đường thẳng đang xét có vô số đường thẳng. Với tham

số p là độ dài từ gốc tọa độ đến đương thẳng, θ là góc giữa đường thẳng p và
trục hoành. Trong đó θ giới hạn từ -900̊ : 890̊, từ -D đến D với D là đường chéo
của ảnh.

 Công thức liên quan:
p = x*cos(θ) + y*sin(θ)

Hình 2-6: Miêu tả biến đổi Hough

-

Trong trục tọa độ với p là trục hoành, θ là trục tung thì từ đường thẳng xét
trên được xác định bằng hai tham số này và được lưu trong mảng hai chiều.
Sơ đồ hoạt động như sau:

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 6/21

Hình 2-7: Sơ đồ thực hiện xoay biển số

1.1.4 Xác định góc lệch
- Tìm được hai điểm đầu và cuối của đoạn thẳng ta đang xét trong ảnh đầu vào
qua biến đổi Hough, qua đó xác định được hai tọa độ A(x1,y1), B(x2,y2). Tìm
góc lệch bằng cách lấy A – B = x1- x2, y1- y2. Dùng hàm tính góc để tìm ra góc
lệch.


Hình 2-8: Góc lệch

-

Tính được độ lớn hai đoạn thẳng màu đỏ, vì đây là tam giác vuông nên dùng
định lý tính góc hàm actan = . Tạo một ngưỡng là b nếu a < b thì ảnh sẽ bị xoay
với góc đúng bằng a để ảnh có thể ngay ngắn nhất.

Hình 2-9: Ảnh được xoay khi lệch

1.6 Tách vùng biển số

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 7/21

-

Việc tách vùng biển số mục đích để chỉ lấy mỗi biển số, loại bỏ những thứ
không cần thiết xung quanh sau khi đã xoay ảnh về thẳng đứng. Phần này
giúp phân đoạn kí tự chính xác hơn. Với hai phần là:
 Xác định vùng chứa biển số nhờ vào các đặc trưng của biển số.
 Cắt biển số từ vùng đã được xác định.

Hình 2-10: Sơ đồ khối tách vùng biển số


-

Biển số có nét đặc trưng là một hình chữ nhật có viền màu đen bao quanh
hoặc viền màu bạc khi gắn khung inox. Ngoài ra, biển số có nền là màu trắng
và các kí tự thì màu đen. Từ đó việc tìm các đặc trưng đó trong ảnh sẽ xác
định được vị trị mà biển số xe nằm trong bức ảnh.

-

Các bước làm như sau:
 Chuyển đổi ảnh RGB sang ảnh mức xám.

-

 Tạo một ngưỡng để so sánh.
 Tìm vị trí hàng và cột của biển số.
 Vẽ một khung bao.
 Tiến hành cắt lấy biển số.
Vì biển số xe có viền đen bao quanh nên khi ngưỡng bằng một thì có thể
không có biển số trong hình.

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 8/21


1.7 Tách từng kí tự
- Khi cắt được

biển số với

ảnh đầu ra

chỉ chứa mỗi

biển số, để có thể nhận dạng được kí tự trong đó thì phải tiến hành tách từng
kí tự riêng biệt. Thứ nhất là để làm một thư viện tập mẫu gồm số từ 0 đến 9,
chữ từ A đến Z. Thứ hai khi có được kí tự từ biển số xe thì đem nó đi so sánh
với mẫu trong thư viện.
-

Mỗi kí tự trên biển số xe đều chỉ có một mẫu, một diện tích như nhau. Được
chia làm hai phần là phần kí tự trên bao gồm số và chữ cái, phần kí tự dưới
chỉ có số.

-

Trình tự thực hiện như sau:






Chuyển từ ảnh RGB sang ảnh xám.
Lọc nhiễu nhằm giúp cho ảnh kí tự chuẩn hơn, ít bị sai sót.

Tìm biên của các kí tự bằng thuật toán Canny.
Xác định vùng diện tích, vùng bao chứa kí tự nhờ hàm regionprops.
Chỉ lấy đối tượng nào có diện tích lớn nhất khi có nhiều đối tượng do

nhiễu.
 Sắp xếp các đối tượng phần trên và dưới đúng theo thứ tự của biển số
-

xe.
Các đối tượng sau khi được cắt ra phải đưa về ảnh nhị phân, cùng một kích
thước với tập mẫu trong thư viện, với kích thước là 90x40. Bới vì sau này ta

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn

Hình 2-11: Ảnh trước và sau khi cắt biển số


ĐỒ ÁN 3
Trang 9/21

sẽ chuyễn các hình chứa kí tự đó thành một ma trận 90x40 chỉ chưa dữ liệu
là 0 và 1.

Hình 2-12: Kí tự được cắt ra

1.8 So sánh với database
- Phương pháp Template Matching: phương pháp này là khớp mẫu, với mẫu là
chuỗi data từ ma trận, vật cần so sánh cũng là một ma trận cung kích thước.

Có nhiều phương pháp khớp mẫu như bình phương tối thiếu, sai số gần
giống nhất, lấy tương quan.
-

Phương pháp này đơn giản nhất vì chỉ làm việc trên ma trận nhưng muốn
hiệu quả thì ảnh đầu vào phải rõ, không nhiễu để tránh ảnh được nhận dạng
quá khác so với mẫu. Lúc đó việc nhận dạng không còn chính xác nữa.

-

Các kí tự với phương pháp này dễ nhầm như số 6 với chữ G, số 2 với chữ Z,
số 0 với chữ O, số 8 với chữ B.

-

Việc nhầm lẫn này có thể giảm thiểu bằng cách thay thế bằng các phương
pháp khác như sử dụng mạng Neural, phương pháp SIFT. Đây là các phương
pháp nhận dạng đúng gần như tuyệt đối với mọi điều kiện. Tuy nhiên, đồ án

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 10/21

này đang sử dụng phương pháp nêu trên nên đễ giải quyết vấn đề này thì có
cách như sau:
 Nhận thấy chữ cái chỉ xuất hiện ở hàng trên với thứ tự là 3 hoặc 4 vì

có xe dưới 50cc.
 Còn hàng dưới chỉ là số.
 Khi so sánh với mẫu chỉ chỗ nào có chữ thì so sánh với chữ, còn số thì
so sánh với số thì sai sót sẽ giảm.
-

Ở đây sử dụng ma trận cần nhận dạng trừ đi cho các ma trận mẫu, sau đó tính
tổng của ma trận mới, lấy ma trận nào có kết quả nhỏ nhất vì nó sẽ gần giống
với tập mẫu.

-

Trong MATLAB, tạo một bảng là data.mat để chữa các dữ liệu của ma trận,
code thực hiện như sau:
I = imread(‘0.bmp’)
a(1,1) = I
a(1,2) = ‘0’
save(data.mat)

-

Mảng này chứa hai phần tử đó là ma trận của kí tự, phần từ còn lại là tên gọi
của ma trận đó. Để sau khi có kết quả nhỏ nhất mới xuất ra kết quả là chữ
hoặc số.

-

Dữ liệu tất cả các tập mẫu kí tự được lưu và khi sử dụng chỉ cần gọi ra.

Xử lý ảnh ứng dụng nhận dạng biển số xe


SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 11/21

Hình 2-13: Tạo dữ liệu cho database

1.9 Thiết kế giao diện người dùng
- Trong MATLAB có phần thiết kế giao diện nhằm giúp người dùng dễ sử
dụng đó là GUI, rất giống với giao diện các chương trình khác như Visual
Basic, OpenCV,...
-

Thiết kế giao diện chỉ việc kéo thả các nút nhấn, vùng hiển thị kết quả như
Pushbutton, Axes, Panel, Edit Text. Trong nút Pushbutton quan trọng là hai
thuộc tính tag và string. Để một hàm thực hiện khi nhấn vào Pushbutton là
các tham số sau:
 hObject: handle của thuộc tính tag.
 eventdata
 handles: dùng truy xuất dữ liệu từ nơi khác. Các biến lưu trữ phải đặt

-

trong hàm global mới truy xuất được.
Thiết kế giao diện hiển thị với đầy đủ chức năng bao gồm: chọn ảnh muốn
xử lý, chụp ảnh từ camera, vùng hiển thị ảnh xử lý, vung chứa kết quả.

Xử lý ảnh ứng dụng nhận dạng biển số xe


SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 12/21

Hình 2-14: Giao diện chương trình

CHƯƠNG 3.
1.10

GIẢI THUẬT

Lưu đồ giải thuật phần xoay biển số

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 13/21

Hình 3-15: Giải thuật xoay biển số

1.11

Lưu đồ giải thuật tách vùng biển số


Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 14/21

Hình 3-16: Giải thuật tách biển số

1.12

Lưu đồ giải thuật tách từng kí tự

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 15/21

Hình 3-17: Giải thuật tách kí tự

1.13

Lưu đồ giải thuật chương trình chính

1.1.5 Chương trình dùng ảnh có sẵn


Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 16/21

Hình 3-18: Dùng ảnh có sẵn

1.1.6 Chương trình dùng ảnh chụp từ camera

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 17/21

Hình 3-19: Ảnh chụp từ camera

CHƯƠNG 4.
1.14

NHẬN XÉT

Nhận xét

Xử lý ảnh ứng dụng nhận dạng biển số xe


SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 18/21

-

-

-

Kết quả hiển thị giống với biển số, tuy nhiên vẫn còn sai sót trong quá trình
nhận dạng với các lí do sau:
 Góc chụp ảnh.
 Khoảng cách chụp.
 Điều kiện ánh sáng.
Kết quả nhận dạng tính toán bằng MATLAB là khoảng 5.93 giây.
Ưu điểm:
 Nhận biết dễ dàng.
 Giao diện dễ sử dụng
Nhược điểm:
 Vẫn còn sai sót vì các điều kiện bên ngoài.
 Phương pháp nhận dạng còn chậm, cần đối tượng mẫu lớn.

CHƯƠNG 5.
1.15
-


KẾT LUẬN

Kết luận
Kết quả nhận được sau khi xử lý đúng với những yêu cầu đặt ra như: xoay
biển số xe nếu bị nghiêng, cắt biển số xe, tách từng kí tự, so sánh với
database và xuất ra kết quả.

Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


ĐỒ ÁN 3
Trang 19/21

-

Xử lý còn chậm, thiếu chính xác với những hình chụp không rõ do yếu tố
ánh sáng, góc chụp, khoảng cách chụp.

1.16
-

Hướng phát triển
Sử dụng những giải thuật nhận dạng tốt hơn, chính xác hơn như mạng
Neural, giải thuật SIFT để cho ra chất lượng nhận dạng tốt nhất.

-

Sử dụng vi điều khiển tự động hóa phần camera chụp ảnh và nhận dạng khi

có xe đi vào.

-

Thiết kế một bãi giữ xe mô hình nhỏ với chức năng tự động nhận dạng biển
số xe khi vào và khi xe ra kiểm tra xem có đúng biển số không.

TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1]

/>
[2]

/>
Tiếng Anh:
[3]



Xử lý ảnh ứng dụng nhận dạng biển số xe

SVTH: Trần Anh Tuấn


×