có sơ đồ nguyên lý, sơ đồ khối, sơ đồ thuật toán và code và hướng dẫn chi tiết về KỸ THUẬT NHẬN DIỆN BIỂN số XE DÙNG MATLAB ...................................................................................................................................................................................
Trang 1NHẬN DẠNG BIỂN SỐ XE
DANH MỤC CÁC HÌNH VẼ
Hình 1: Ảnh thực tế biển số xe máy 2
Trang 2Hình 4: Sơ đồ nhị phân hóa ảnh 8
Hình 4.1: Ảnh gốc sau khi nhị phân 7
Hình 5: Ảnh số 8
Hình 6: Quy trình tách biển số 9
Ảnh 6.1: Ảnh biển số sau khi tách 9
Hình 7.1: Ảnh các kí tự sau khi tách 10
Hình 8: Cấu trúc một lớp neural 11
Hình 9.Đồ thị A nhiễu và gốc 12
Hình 10: Đồ thị biểu diễn 2 kí tự ở trên 12
Hình 11: Lưu đồ giải thuật của board 13
Hình 12: ARDUINO MEGA 2560 14
Hình 13: Cảm biến D80NK 14
Hình 14: Giao diện GUI chương trình 15
Hình 15: Giao diện hoạt động 16
Trang 5CHƯƠNG 1 GIỚI THIỆU 2
1.1 GIỚI THIỆU HỆ THỐNG 2
1.1.1 Khái quát sơ lược 2
1.1.2 Khả năng làm việc 2
1.2 XÂY DỰNG SƠ ĐỒ KHỐI VÀ LÊN Ý TƯỞNG HỆ THỐNG 2
CHƯƠNG 2 XÂY DỰNG PHƯƠNG PHÁP NHẬN DẠNG BIỂN SỐ VÀ XÁC ĐỊNH PHẦN MỀM THIẾT KẾ 5
2.1 KHÁI QUÁT ĐỐI TƯỢNG CẦN NHẬN DẠNG 5
Trang 6TÀI LIỆU THAM KHẢO 19
PHỤ LỤC A 20
Trang 7CHƯƠNG 1 GIỚI THIỆU
1.1 Giới thiệu hệ thống
1.1.1 Khái quát sơ lược
Hệ thống nhận dạng biển số xe gắn máy ứng dụng giữ xe được xây dựng trên phầnmềm MATLAB dựa trên thuật toán nhận dạng mạng neural cho độ chính xác cao vàkhả năng mở rộng phạm vi nhận dạng Bộ thiết bị gồm camera (webcam) gắn ngoàithu nhận hình ảnh cần xử lý và một board mạch tích hợp cảm biến tự động phát hiệnvật cản (có thể là xe máy)
1.1.2 Khả năng làm việc
Phát hiện vật cản và tự động xử lý có phải là xe máy hay không?
Khi tính năng này được bật thì board mạch tự động được kích hoạt
dò tìm khi có vật cản thì sẽ cảnh báo lên PC để lệnh ghi lại hìnhảnh từ camera qua phần mềm trên MATLAB nhận dạng có tồn tạibiển số xe máy trong ảnh vừa chụp hay không nếu có thì lưu lại sốliệu và gửi tín hiệu về để board lệnh cho động cơ servo mở Từ đó
xe máy có thể di chuyển vào bãi đậu (đối với bãi xe thông minh)hoặc tiếp tục di chuyên trên đường ( đối với trạm kiểm soát giaothông)
Chụp xe máy và xử lý theo yêu cầu người dùng
Từ các phím chức năng trên giao diện phần mềm ta chọn ảnh hoặcchụp ảnh từ camera rồi hệ thống tự xử lý và cho ra kết quả
Kết quả mà người dùng thu thập được là ảnh gốc được dặt tên là
Trang 8ĐỒ ÁN 3 Trang 1/21
VD: 62G1_18519.jpg
Hình 1: Ảnh thực tế biển số xe máy
Tăng khoảng cách nhận dạng và độ khó của ảnh chụp bằng mạng neural
Trong một số trường hợp phức tạp hơn, ảnh chụp được ảnh biển số
xe bị nhỏ nhòe, lệch so với phương ngang thì việc nhận dạng thu
Nhận dạng biến số xe
Trang 9được kết quả chính xác là vấn đề nan giải Tuy nhiên với thuậttoán neural network bằng cách “train” nhiều mẫu khác nhau sẽ thuđược kết quả mong đợi ở lần nhận dạng sau.
1.2 Xây dựng sơ đồ khối và lên ý tưởng hệ thống
Hình 2: Sơ đồ khối hệ thống
MATLAB:
Nhiệm vụ giao tiếp chính với người dùng và các thiết bị ngoại vi
Tiếp nhận xử lý ảnh cần nhận dạng lưu kết quả phục vụ cho mục đíchcủa người dùng
Thuật toán và phương thức nhận dạng sẽ được trình bày cụ thể ởChương 3
CAMERA:
CAMERA
SERVO
MATLAB(PC/
LAPTOP)
MATLAB(PC/
LAPTOP)
ARDUINO MEGA
ARDUINO MEGA
CẢM BIẾN VẬT CẢN
CẢM BIẾN VẬT CẢN
Trang 10ĐỒ ÁN 3 Trang 1/21
Có thể sử dụng webcam ngắn ngoài hoặc webcam của laptop để chụphình ảnh xe máy cần nhận dạng
Giữa PC và camera giao tiếp qua cổng USB 2.0
ARDUINO MEGA:
Để xây dựng một mạch tự động phát hiện vật cản có thể là xe máy thìcần một vi điều khiển thì ARDUINO là lựa chọn phù hợp và đơn giảnnhất bởi sử dụng ngôn ngữ C với trình biên dịch Arduino IDE giaodiện dễ sử dụng, dễ dàng giao tiếp với các module và máy tính
Có nhiều board ARDUINO khác nhau và đều có thể phục vụ cho hệthống này ở đây tác giả chọn ARDUINO MEGA 2560
Nhiệm vụ phát hiện vật cản gửi tín hiệu về vi điều khiển xử lý
Khoảng cách nhận dạng tối thiểu phải đạt 30 cm
Nhận dạng biến số xe
Trang 11CHƯƠNG 2 XÂY DỰNG PHƯƠNG PHÁP NHẬN DẠNG BIỂN SỐ
VÀ XÁC ĐỊNH PHẦN MỀM THIẾT KẾ
2.1 Khái quát đối tượng cần nhận dạng
Xử lý ảnh là quá trình biến đổi ảnh đầu vào nhằm mục đích cải thiện chấtlượng ảnh, lọc đối tượng theo yêu cầu hoặc nhận dạng … sử dụng các công
cụ hỗ trợ trên máy tính vì lý do xử lý ảnh yêu cầu khá cao về tốc độ xử lý vàkhả năng lưu trữ của phần cứng Ngôn ngữ lập trình phục vụ xử lý ảnh đadạng C++,C#, Python, Java Công cụ hỗ trợ có thể dùng Visual Studio,MATLAB, LABVIEW… trên các nền tảng Windows, Linux, IOS, Android.Phổ biến ở quy mô thí nghiệm ý tưởn thì dùng một trong những công cụ sau:
Visual Stuido có ưu điểm nhẹ chạy trên nền tảng window tươngthích mạnh mẽ với phần cứng máy tính, tốc độ xử lý nhanh Tuy
nhiên thì thêm bộ thư viện OPENCV (Open Source Computer Vision) đây là bộ thư viện tập hợp hơn 4.000 câu lệnh phục vụ xử
lý ảnh chuyên nghiệp
MATLAB ưu điểm hỗ trợ mạnh mẽ, dễ tiếp cận có tích hợp sẵncông cụ Image Acquisition Tool và các hàm xử lý ảnh, NeuralNetwork Toolbox hỗ trợ các dự án liên quan mạng neural Tuynhiên tốc độ xử lý của MATLAB thấp không khả thi thực tế chỉphù hợp môi trường mô phỏng thí nghiệm
Nhận dạng được hiểu là toàn thể những đặc điểm hình thức bề ngoài của mộtđối tượng được miêu tả trong quá trình theo dõi thỏa yêu cầu nào đó củangười dùng đặt ra Nhận dạng biển số xe gắn máy trong ảnh là xác định trongảnh có biển số xe gắn máy hay không và nếu có thì đó là gì biển số baonhiêu Dựa trên thuộc tính của biển số xe gắn máy đã được học mà não bộcon người cho phép ta thực thi việc xác định một biển số xe trong ảnh mộtcách dễ dàng
Trang 12ĐỒ ÁN 3 Trang 2/21
Thuộc tính biển số xe gắn máy phổ thông ở Việt Nam:
Hình dạng: hình chữ nhật
Kích thước: chiều rộng 190mm, chiều cao 140mm
Màu sắc: chữ đen làm nổi xếp thành 2 hàng, nền trắng, viền đen
Quy định kí tự: Ở phạm vi đề tài chỉ xét 2 nhóm biển số phổ thông
Nhận dạng ký tự quang học (tiếng Anh: Optical Character Recognition, viết tắt
là OCR) là biến đổi kí tự thu được ở bước tách kí tự (image) thành dạng văn bản(text) phù hợp với ngữ nghĩa trong ảnh bước này ảnh hưởng quyết định kết quảnhận dạng Có nhiều phương pháp nhận dạng khác nhau giới hạn đề tài áp dụng haiphương pháp là so mẫu và mạng neural
Nhận dạng biến số xe
hóa ảnh
Tách biển số
Tách kí
tự ra khỏi biển số
Nhận dạng kí tự
Trang 13CHƯƠNG 3 PHÂN TÍCH CHI TIẾT HỆ THỐNG
3.1 Nhị phân ảnh
Hình 4: Sơ đồ nhị phân hóa ảnh
Hình 4.1: Ảnh gốc sau khi nhị phân
Ảnh số (Digital image): đây là đối tượng mà máy tính xử lý Ảnh số chỉ làmột ma trận 2 chiều và việc xử lý chúng chỉ là những thao tác trên ma trậnnày sao cho ra kết quả hợp lý Ví dụ một bức ảnh số có độ phân giải 640x480nghĩa là chiều ngang có 640 điểm ảnh (pixel), chiều dọc có 480 điểm ảnh, vàmỗi điểm ảnh được biểu diễn bằng một con số
Input
ảnh RGB
Resize Ảnh
Ảnh xám
Ngưỡng độ
ẢnhNhị phân
Trang 14ĐỒ ÁN 3 Trang 4/21
Ảnh xám (gray image): giá trị mỗi điểm ảnh nằm trong giải giá trị từ
0 đến 255, nghĩa là cần 8 bits hay 1 byte để biểu diễn mỗi điểm ảnhnày
Ảnh nhị phân (binary image): giá trị mỗi điểm ảnh là 0 hoặc 1, nghĩa
là trắng hoặc đen
Resize ảnh đặt lại kích thước ảnh ở đây là 640x480
Ngưỡng độ dùng để chỉ một giá trị mà người ta dựa vào để phân hoạch mộttập hợp thành các miền phân biệt Ở đây dùng ngưỡng độ để làm chuẩn phânchia mức nhị phân ảnh
Nhận dạng biến số xe
Trang 153.2 Tách biển số
Tách biển số dựa trên đặc tính của biển số là hình chữ nhật có tỷ lệ 14/19 nền trắngchữ đen Nếu tạo biên đóng khung các đối tượng và dựa vào đó thì có thể suy rađược những hình ảnh có khả năng là biển số
Các bước thực hiện từ ảnh RGB đi nhị phân ảnh sau đó tìm các vùng trắng tìmđường bao của các vùng trắng xem xét kích thước phù hợp tỷ lệ biển số thì cắt ảnh
đó ra khỏi ảnh gốc Bước này có thể bỏ qua do kết quả ta chỉ quan tâm đến kí tựtrong biển số là gì nhưng sẽ hữu ích đối với các dự án theo dõi rượt đuổi hoặc nhậndạng tốc độ phương tiện
Trang 16ĐỒ ÁN 3 Trang 6/21
3.3 Tách kí tự
Chương trình sẽ tách kí tự độc lập ra khỏi ảnh theo hình chữ nhật Dựa trên tỷ lệkích thước chữ của biến số mà giữ lại các kí tự là kí tự biển số Chính vì có thể bỏqua bước tách biển số mà kết quả vẫn như ý muốn
Quá trình tách kí tự được thực hiện như sau:
đã tách từ ảnh gốc
3.4 Nhận dạng kí tự
3.4.1 Phương pháp so mẫu
Giới thiệu: Mẫu là tập hợp các ảnh ở định dạng bmp ma trận kí tự gồm chữ
số và chữ cái đối với biển số xe thì không có kí tự O và W Sau khi có đượcảnh ở bước tách kí tự thì đem so sánh với mẫu, mẫu phù hợp nhất sẽ đượcchọn
Ưu điểm: đơn giản tuy có giới hạn tập mẫu nhưng việc nhận dạng đối với hệthống không có nhu cầu mở rộng đối tượng ví dụ chỉ nhận dạng xe biển số xeoto hoặc chỉ xe máy
Nhận dạng biến số xe
Ảnh nhị
phân
Lấy bù ảnh
Khung chữ nhật
Trang 17Nhược điểm: Giới hạn số lượng mẫu không thể mở rộng phạm vi nhận dạng.Ảnh gốc bị nhoè, lệch, nghiêng thì khả năng nhận dạng giảm rõ rệch.
3.4.2 Phương pháp mạng neural (neural network)
Giới thiệu: Cũng dựa vào sự so sánh với tập mẫu tuy nhiên với mạng neural
sẽ có thể dạy “train” nhiều mẫu khác nhau từ đó cải thiện độ chính xác củaviệc nhận dạng Cộng cụ là Neural Network Toolbox trên MATLAB Cơ sở
lý luận dựa trên mô phỏng cấp độ hệ thống Neural sinh học chấp nhận sai và
ưu tiên chọn cái đúng nhất Ngõ vào sẽ được tính toán trong mạng neural vàngõ ra sẽ đối chiếu với tín hiệu mong muốn và cập nhật điều chỉnh để thỏayêu cầu
Ưu điểm : độ chính xác cao có khả năng mở rộng tập nhận dạng, xử lý đượchình ảnh bị nhòe, mờ thiếu nét
Cấu trúc:
Mỗi ngõ vào pn có một trọng số W ,tổng ngưỡng b với tích trọng số ngõ vào
là hàm truyền f trong một lớp mạng Có nhiều loại hàm truyền khác nhaunhư logsig, tagsig,purelin
Hình 8: Cấu trúc một lớp neural [4]
Trang 18ĐỒ ÁN 3 Trang 8/21
Trang 19Hình 11: Lưu đồ giải thuật của board
Trong đó VC là biến của cảm biến hồng ngoại
PC là giá trị đọc từ cổng COM
Trên MATLAB thì khi nhận được giá trị cổng COM là “1” thì gửi lại cho COM “1”
để vi xử lý chờ, tiếp đó máy tính chụp ảnh và xử lý nhận dạng đến khi hoàn thànhgửi giá trị cho COM là “2” kết thúc một lượt kiểm tra
begin
Trang 20ĐỒ ÁN 3 Trang 10/21
Trang 21CHƯƠNG 4 THIẾT KẾ GIAO DIỆN VÀ HƯỚNG DẪN SỬ DỤNG
4.1 Giao diện
Hình 14: Giao diện GUI chương trình
axPreview phần hiển thị chính của chương trình dùng để trực tiếp từ camera,hiển thị hình ảnh
axBackground là thay đổi hình nền của chương trình
Notification là bảng thông báo bao gồm hiển thị thông tin tác giả và tiến trìnhthực hiện của hệ thống
RESULT là phần hiển thị kết quả nhận dạng
4 nút nhấn Auto, Run, Capture, View thực hiện chức năng tương đương ngữnghĩa của chúng
Trang 22ĐỒ ÁN 3 Trang 12/21
4.2 Hướng dẫn sử dụng
Để bắt đầu thì ấn Start đồng thời cửa sổ chọn ảnh nền cho phần mềm bắt đầu
Và mặt định chương trình sẽ chọn Camera số 2 ( đối với laptop thì tươngđương webcam gắn ngoài) Nếu chọn đúng thì nút nhất Start chuyển sangRunning
Hình 15: Giao diện hoạt động
Nếu muốn chọn lại camera thì ấn nút nhất camera sẽ chuyển đổi
Trong hộp thoại chọn COM thì ấn chọn COM sau khi đã kết nối với phầncứng board mạch Ấn conect nếu thành công thì nút nhấn sẽ chuyển sangdisconect
Info: hiển thị thông tin tác giả
Exit: thoát chương trình
Auto: bật chế độ tự động
Run: chạy chế độ siêu tốc bỏ qua tách biển số
Capture : chụp ảnh bằng tay clik và đợi 3s rồi giữ nguyên camera để chụp
View : hiển thị ảnh đã lưu
Nhận dạng biến số xe
Trang 23CHƯƠNG 5 KIỂM TRA CHẠY THỬ VÀ KẾT LUẬN
5.2 Ý nghĩa thực tế và hạn chế của đề tài
Đề tài có thể áp dụng thực tế vào các hệ thống giữ xe thông minh tự động ANPR,tiết kiệm được công lao động Thời gian xử lý trung bình của hệ thống là 10s nêntiết kiệm thời gian gửi nhận xe nếu được áp dụng
Hệ thống có sự kết hợp nhiều môn học khác nhau và phần cứng lẫn phần mềm là cơ
sở rèn luyện lại nguồn kiến thức đã học ở trường
Tuy nhiên như đã nói ở phần giới thiệu hệ thống có tốc độ xử lý chưa cao, yêu cầucấu hình máy tính mạnh Trường hợp một số biển số bị méo dạng hoặc đã bị chóisáng thì không nhận dạng được
Trang 24ĐỒ ÁN 3 Trang 14/21
5.3 Hướng phát triển của đề tài
Đây là mở đầu cho cơ sở thị giác máy áp dụng vào các công việc nhận dạng pháttriển robot thông minh, xe tự động lái…
Nếu được tiếp tục thông qua tôi sẽ phát triển lên thành MẮT THẦN hệ thống giámsát tốc độ xe, phát hiện xe lấn tuyến vi phạm Kết hợp với hệ thống mạng LAN để
từ đó nhà quản lý có thể xử lý mềm người tham gia giao thông không đúng luật
Về phần cứng sẽ xem xét việc sử dụng máy tính nhúng nhầm giảm kích thước hệthống
Về phần mềm sử dụng ngôn ngữ C++ kết hợp bộ thư viện mã nguồn mở OPENCV
để tăng tốc độ xử lý
Nhận dạng biến số xe
Trang 25TÀI LIỆU THAM KHẢO
Trang 26ĐỒ ÁN 3 Trang 16/21