Download as pdf or txt
Download as pdf or txt
You are on page 1of 85

Báo Cáo Đồ Án Tốt Nghiệp Trang i

TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÚC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ----o0o----

Tp. HCM, ngày tháng 07 năm 2019

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ tên sinh viên: Nguyễn Đăng Việt MSSV: 15141327


Trần Trí Đạt MSSV: 15141337
Chuyên ngành: Điện tử công nghiệp Mã ngành: 14
Hệ đào tạo: Đại học chính quy Mã hệ: 1
Khóa: 2015 Lớp: 15141DT1B

I. TÊN ĐỀ TÀI: THIẾT KẾ, THI CÔNG BÃI GIỮ XE ỨNG DỤNG CÔNG
NGHỆ RFID VÀ XỬ LÝ ẢNH.
II. NHIỆM VỤ
1. Các số liệu ban đầu: (ghi những thông số, tập tài liệu tín hiệu, hình ảnh,…)
Vì đề tài là thiết kế, thi công bãi giữ xe nên nhóm chỉ sưu tầm những tấm hình biển
số xe có sẵn trên mạng để sau này đưa vào sử dụng trong phần xử lý ảnh.
2. Nội dung thực hiện: (ghi những nội dung chính cần thực hiện như trong phần
tổng quan)
 Tổng quan về hệ thống quản lý xe ra vào tự động ứng dụng xử lý ảnh.
 Nghiên cứu thuật toán xử lý ảnh ứng dụng.
 Viết chương trình điều khiển cho Arduino, xử lý trên mô hình thực tế.
 Viết chương trình xử lý ảnh.
 Giải pháp thiết kế giao diện giám sát hoạt động của hệ thống.
 Hoàn thiện hệ thống điều khiển và mô hình, tiến hành chạy mẫu.
III. NGÀY GIAO NHIỆM VỤ: 18/02/2019
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 10/06/2019
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS. Nguyễn Ngô Lâm

CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH


Báo Cáo Đồ Án Tốt Nghiệp Trang ii

TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÚC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ----o0o----

Tp. HCM, ngày tháng 07 năm 2019

LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP


Họ tên sinh viên 1: Nguyễn Đăng Việt
Lớp: 15141DT1B MSSV: 15141327
Họ tên sinh viên 2: Trần Trí Đạt
Lớp: 15141DT1B MSSV: 15141337
Tên đề tài:
THIẾT KẾ, THI CÔNG BÃI GIỮ XE ỨNG DỤNG CÔNG
NGHỆ RFID VÀ XỬ LÝ ẢNH
Xác nhận
Tuần/ngày Nội dung
GVHD
Tuần 1 - Chọn đề tài.
(18/2 – 24/2)
Tuần 2 - Viết đề cương chi tiết cho đồ án.
(25/2 – 3/3)
Tuần 3 - Trình bày phướng án thực hiện đề tài.
(4/3 – 10/3) - Phân chia công việc cho từng thành viên.
Tuần 4 - Tìm hiểu hoạt động, nguyên lý làm việc và test
(11/3 – 17/3) thử các module. (Board Arduino, RFID, …)
Tuần 5 - Kết nối Board Arduino với module RFID, kiểm
(18/3 – 24/3) tra độ nhạy của thẻ từ.
- Tìm hiểu các phần mềm và ngôn ngữ để viết
chương trình điều khiển. (Arduino IDE, Matlab).
Tuần 6 - Nghiên cứu về thuật toán xử lý ảnh ứng dụng.
Báo Cáo Đồ Án Tốt Nghiệp Trang iii

(25/3 – 31/3)
Tuần 7 - Nghiên cứu thiết kế cơ bản sơ đồ nguyên lý.
(1/4 - 7/4) - Nghiên cứu thiết kế cơ bản về phần cứng, mô
hình nhà giữ xe.
Tuần 8 - Viết chương trình điểu khiển cho Arduino, nạp
(8/4 – 14/4) code, chạy thử riêng phần RFID trên phần cứng
thực tế.
Tuần 9 - Xử lý hình ảnh biển số xe nhận về từ camera
(15/4 – 21/4) thông qua phần mềm Matlab.
Tuần 10 - Tiếp tục xử lý về hình ảnh, khi ảnh bị lệch, chụp
(22/4 – 28/4) không rõ, hoặc nhận dạng sai,…
Tuần 11 - Đưa ra giải pháp thiết kế giao diện cách tối ưu
(29/4 – 5/5) nhất để giám sát hệ thống.
Tuần 12 - Hoàn chỉnh cơ bản phần cứng.
(6/5 – 12/5) - Vẽ mạch in từng phần cho phù hợp mô hình.
Tuần 13 - Lắp ráp mạch, các linh kiện, mạch in, module
(13/5 – 19/5) lên mô hình.
Tuần 14 - Lập trình hoàn chỉnh.
(20/5 – 26/5) - Cân chỉnh, tối ưu sản phẩm.
Tuần 15 - Viết và chỉnh sửa báo cáo.
(27/5 – 2/6) - In báo cáo.
Tuần 16 - Bảo vệ ĐATN
(18/6 – 22/6)

GV HƯỚNG DẪN
(Ký và ghi rõ họ và tên)
Báo Cáo Đồ Án Tốt Nghiệp Trang iv

LỜI CAM ĐOAN


Đề tài này là do nhóm chúng tôi tự thực hiện dựa vào một số tài liệu trước đó
và không sao chép từ tài liệu hay công trình đã có trước đó.

Người thực hiện đề tài


Nguyễn Đăng Việt – Trần Trí Đạt
Báo Cáo Đồ Án Tốt Nghiệp Trang v

LỜI CẢM ƠN

Trong thời gian thực hiện đề tài này, nhóm em đã nhận được nhiều sự giúp đỡ,
đóng góp ý kiến và chỉ bảo nhiệt tình của các thầy cô và bạn bè, vậy nên nhóm em
xin chân thành cảm ơn:
 Ban giám hiệu nhà trường Đại học Sư Phạm Kỹ Thuật TP.HCM đã tạo điều
kiện tốt nhất cho sinh viên học tập và nghiên cứu.
 Thầy cô trong trường đã tận tình hướng dẫn và thư viện trường đã cung cấp giáo
trình và tài liệu tham khảo trong suốt quá trình học tập của sinh viên.
 Đặc biệt là sự hướng dẫn và giúp đỡ tận tình của thầy giáo Nguyễn Ngô Lâm
đã giảng dạy, giúp đỡ và phân tích rõ về những vấn đề sinh viên còn khúc mắc.
Nhóm em đã cố gắng trong quá trình tìm hiểu và thực hiện đề tài nhưng vì kiến
thức còn hạn chế khiến bài tiểu luận này không được như ý thầy. Nhóm rất mong
được sự góp ý, nhận xét đánh giá về nội dung và hình thức trình bày từ thầy để nhóm
có thể hoàn thiện bài báo cáo tốt hơn.
Xin chân thành cảm ơn!

TP.HCM, Ngày tháng 07 năm 2019


Nhóm sinh viên thực hiện
Nguyễn Đăng Việt – Trần Trí Đạt
Báo Cáo Đồ Án Tốt Nghiệp Trang vi

MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP....................................................................................... i
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP ............................................................ii
LỜI CAM ĐOAN ................................................................................................................. iv
LỜI CẢM ƠN ........................................................................................................................ v
MỤC LỤC ............................................................................................................................ vi
LIỆT KÊ HÌNH VẼ .............................................................................................................. ix
LIỆT KÊ BẢNG ................................................................................................................... xi
PHỤ LỤC CÁC TỪ VIẾT TẮT ..........................................................................................xii
TÓM TẮT ...........................................................................................................................xiii
Chương 1: TỔNG QUAN ...................................................................................................... 1
1.1 Giới thiệu ..................................................................................................................... 1
1.2 Tình hình nghiên cứu hiện nay .................................................................................... 1
1.2.1 Tình hình nghiên cứu trong nước ......................................................................... 1
1.2.2 Tình hình nghiên cứu ngoài nước ......................................................................... 3
1.3 Tính cấp thiết của đề tài ............................................................................................... 3
1.4 Mục tiêu đề tài ............................................................................................................. 4
1.5 Phương hướng thực hiện đề tài .................................................................................... 4
1.6 Bố cục đồ án................................................................................................................. 4
Chương 2: CƠ SỞ LÝ THUYẾT .......................................................................................... 6
2.1 Giới thiệu linh kiện ...................................................................................................... 6
2.1.1 Borad Arduino Uno R3 ......................................................................................... 6
2.1.2 Module RFID RC522............................................................................................ 9
2.1.3 Màn hình LCD 20x4 ........................................................................................... 10
2.1.4 Động cơ Servo SG90 .......................................................................................... 13
2.1.5 Camera USB 2.0 ................................................................................................. 14
2.2 Phần mềm lập trình điều khiển .................................................................................. 15
2.2.1 Phần mềm lập trình Arduino IDE ....................................................................... 15
2.2.2 Giới thiệu phần mềm Matlab .............................................................................. 21
2.2.3 Cài đặt thư viện Arduino cho Matlab ................................................................. 23
2.3 Sơ lược về công nghệ RFID ...................................................................................... 25
2.4 Sơ lược về UART ...................................................................................................... 27
2.5 Sơ lược về chuẩn giao tiếp SPI .................................................................................. 33
2.6 Sơ lược về I2C ........................................................................................................... 33
2.7 Lý thuyết ảnh số ......................................................................................................... 33
Báo Cáo Đồ Án Tốt Nghiệp Trang vii

2.7.1 Khái niệm ảnh số ................................................................................................ 33


2.7.2 Cấu trúc một file ảnh .......................................................................................... 34
2.7.3 Ảnh RGB ............................................................................................................ 34
2.7.4 Mức xám (Gray level)......................................................................................... 35
2.7.5 Lược đồ mức xám (Histogram) .......................................................................... 35
2.7.6 Ảnh nhị phân ....................................................................................................... 36
2.8 Các Phương pháp xử lý ảnh số .................................................................................. 36
2.8.1 Chuyển ảnh màu RGB thành ảnh mức xám Gray level ...................................... 36
2.8.2 Phương pháp lọc nhiễu ảnh................................................................................. 37
Chương 3: THIẾT KẾ - THI CÔNG HỆ THỐNG .............................................................. 38
3.1 Sơ đồ khối của hệ thống............................................................................................. 38
3.1.1 Yêu cầu hệ thống ................................................................................................ 38
3.1.2 Thiết kế sơ đồ khối ............................................................................................. 38
3.1.3 Hoạt động của hệ thống ...................................................................................... 39
3.2 Thiết kế ...................................................................................................................... 39
3.2.1 Khối động cơ....................................................................................................... 39
3.2.2 Khối hiển thị ....................................................................................................... 40
3.2.3 Khối RFID .......................................................................................................... 41
3.2.4 Khối nguồn ......................................................................................................... 43
3.3 Thiết kế phần mềm..................................................................................................... 44
3.3.1 Thiết kế phần mềm cho PC ................................................................................. 44
3.3.2 Lưu đồ giải thuật chương trình chính ................................................................. 44
3.3.3 Lưu đồ chương trình con khởi tạo, điều khiển LCD – Servo ............................. 45
3.3.4 Lưu đồ chương trình con RFID .......................................................................... 46
3.3.5 Thiết kế giao diện quản lý trên PC ..................................................................... 46
3.4 Thi công ..................................................................................................................... 47
3.4.1 Thiết kế mạch in ................................................................................................. 47
3.4.2 Board mạch đã hoàn thiện .................................................................................. 48
3.4.3 Thi công mô hình bãi xe ..................................................................................... 50
Chương 4 : HỆ THỐNG NHẬN DẠNG BIỂN SỐ XE MÁY ............................................ 52
4.1 Mô hình tổng quát nhận dạng biển số xe máy ........................................................... 52
4.2 Ảnh đầu vào ............................................................................................................... 52
4.3 Tiền xử lý ................................................................................................................... 53
4.3 Phân vùng ảnh và tách biển số ................................................................................... 53
4.3.1 Phân vùng ảnh ..................................................................................................... 53
Báo Cáo Đồ Án Tốt Nghiệp Trang viii

4.3.2 Trích vùng biển số .............................................................................................. 54


4.4 Phân đoạn biển số ...................................................................................................... 55
4.5 Nhận dạng biển số...................................................................................................... 55
4.5.1 Tạo mẫu ký tự ..................................................................................................... 55
4.5.2 Nhận dạng ký tự bằng phương pháp tương quan ................................................ 57
Chương 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ ........................................................... 60
5.1 Kết quả thực hiện ....................................................................................................... 60
5.2 Nhận xét – Đánh giá .................................................................................................. 62
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ......................................................... 63
6.1 Kết luận ...................................................................................................................... 63
6.2 Hướng phát triển ........................................................................................................ 64
TÀI LIỆU THAM KHẢO ................................................................................................... 65
PHỤ LỤC 1: CHƯƠNG TRÌNH ......................................................................................... 66
1. Code Arduino ............................................................................................................ 66
2. Code Matlab .............................................................................................................. 66
PHỤ LỤC 2: CÁCH VẬN HÀNH HỆ THỐNG ................................................................. 72
Báo Cáo Đồ Án Tốt Nghiệp Trang ix

LIỆT KÊ HÌNH VẼ
Hình Trang
Hình 1. 1: Máy tính hiển thị và lưu dữ liệu thông tin xe ra - vào ...............................2
Hình 1. 2: Đầu đọc thẻ xe CR500 ...............................................................................3
Hình 2. 1: Hình ảnh thực tế Arduino Uno R3 .............................................................6
Hình 2. 2: Sơ đồ chân của Arduino Uno R3 ...............................................................7
Hình 2. 3: Hình ảnh thực tế module RFID RC522 .....................................................9
Hình 2. 4: Hình ảnh LCD 20x4 .................................................................................10
Hình 2. 5: Dạng sóng điều khiển LCD......................................................................12
Hình 2. 6: Module chuyển đổi I2C ...........................................................................12
Hình 2. 7: Hình ảnh động cơ Servo SG90 ................................................................13
Hình 2. 8: Hình ảnh Camera .....................................................................................14
Hình 2. 9: Giao diện phần mềm Arduino IDE ..........................................................16
Hình 2. 10: Vùng lập trình code Arduino .................................................................16
Hình 2. 11: Chọn board để biên dịch code ................................................................17
Hình 2. 12: Chọn port của board đang kết nối ..........................................................17
Hình 2. 13: Lưu lại file đã lập trình ..........................................................................18
Hình 2. 14: Biên dịch chương trình...........................................................................18
Hình 2. 15: Biên dịch chương trình...........................................................................19
Hình 2. 16: Nạp chương trình ...................................................................................19
Hình 2. 17: Nạp chương trình ...................................................................................20
Hình 2. 18: Nạp chương trình ...................................................................................20
Hình 2. 19: Kết quả chương trình .............................................................................21
Hình 2. 20: Giao diện phần mềm Matlab ..................................................................22
Hình 2. 21: Nhận gói hỗ trợ phần cứng ....................................................................24
Hình 2. 22: Chọn gói hỗ trợ phần cứng cho Arduino ...............................................24
Hình 2. 23: Chọn hoàn tất cài đặt..............................................................................25
Hình 2. 24: Hệ thống RFID cơ bản ...........................................................................27
Hình 2. 25: Giao tiếp UART .....................................................................................28
Hình 2. 26: Giao tiếp song song ................................................................................29
Hình 2. 27: Sơ đồ khối UART ..................................................................................30
Hình 2. 28: Truyền thông UART ..............................................................................31
Hình 2. 29: Giao diện UART ....................................................................................32
Hình 2. 30: Mảng 2 chiều của một file ảnh ...............................................................34
Hình 2. 31: Mô hình màu RGB .................................................................................35
Hình 2. 32: Ảnh xám và lược đồ mức xám ...............................................................36
Hình 2. 33: Ảnh nhị phân ..........................................................................................36
Hình 3. 1: Sơ đồ khối hệ thống .................................................................................38
Hình 3. 2: Sơ đồ kết nối Arduino với 2 servo ...........................................................40
Hình 3. 3: Sơ đồ kết nối Arduino với LCD ...............................................................41
Hình 3. 4: Sơ đồ kết nối khối RFID với Arduino .....................................................42
Hình 3. 5: Lưu đồ giải thuật chương trình chính ......................................................44
Hình 3. 6: Lưu đồ chương trình khối xử lý trung tâm ..............................................45
Hình 3. 7: Lưu đồ chương trình RFID ......................................................................46
Báo Cáo Đồ Án Tốt Nghiệp Trang x

Hình 3. 8: Giao diện quản lý trên PC ........................................................................47


Hình 3. 9: Mạch in kết nối Arduino với module RFID .............................................47
Hình 3. 10: Mạch in kết nối Arduino với servo và LCD ..........................................48
Hình 3. 11: Board mạch Arduino – RFID .................................................................48
Hình 3. 12: Board mạch đã đóng hộp .......................................................................49
Hình 3. 13: Board mạch Arduino – servo và LCD ...................................................49
Hình 3. 14: Board mạch sau khi đã đóng hộp ...........................................................50
Hình 3. 15: Mặt trước của mô hình ...........................................................................50
Hình 3. 16: Mặt sau của mô hình ..............................................................................51
Hình 4. 1: Sơ đồ hệ thống nhận dạng biển số xe máy...............................................52
Hình 4. 2: Quá trình tiền xử lý ..................................................................................53
Hình 4. 3: Nhị phân biển số xe..................................................................................55
Hình 4. 4: Chuẩn hóa và tìm ký tự ............................................................................55
Hình 4. 5: Mẫu ký tự số 1 .........................................................................................56
Hình 4. 6: Thuật toán tạo mẫu ký tự .........................................................................57
Hình 4. 7: Thuật toán so sánh mẫu và xuất ký tự......................................................58
Hình 4. 8: Mẫu ký tự số 1, 2 (42 hàng, 24 cột) .........................................................59
Hình 5. 1: Giao diện trên PC và mô hình hệ thống ...................................................60
Hình 5. 2: Giao diện khi mới khởi động ...................................................................60
Hình 5. 3: Giao diện khi có xe vào ...........................................................................61
Hình 5. 4: Giao diện khi có xe ra ..............................................................................62
Hình 5. 5: Giao diện khi xe ra không hợp lệ .............................................................62
Báo Cáo Đồ Án Tốt Nghiệp Trang xi

LIỆT KÊ BẢNG
Bảng Trang
Bảng 2. 1: Thông số kỹ thuật chính của borad Arduino .............................................8
Bảng 2. 2: Chức năng các chân của LCD .................................................................12
Bảng 3. 1: Bảng nối chân giữa LCD và arduino .......................................................41
Bảng 3. 2: Sơ đồ kết nối với RC522 .........................................................................42
Bảng 3. 3: Dòng và áp quy định các link kiện ..........................................................43
Báo Cáo Đồ Án Tốt Nghiệp Trang xii

PHỤ LỤC CÁC TỪ VIẾT TẮT


RFID Radio Frequency Identification Nhận dạng qua tần số vô tuyến

IoT Internet of Things Mạng lưới vạn vật kết nối Internet

UART Universal Asynchronous Receiver / Truyền dữ liệu nối tiếp bất đồng
Transmitter bộ

SPI Serial Peripheral Interface Chuẩn truyển thông nối tiếp

I2C Inter – Intergrated Circuit Giao tiếp giũa các IC

LCD Liquid Crystal Display Màn hình tinh thể lỏng

ROM Read Only Memory Bộ nhớ chỉ đọc

RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên

SRAM Static Random Access Memory Bộ nhớ truy cập ngẫu nhiên tĩnh

EPROM Electrically Eraseble Programmable Bộ nhớ không mất dữ liệu khi


Read Only Memory ngừng cung cấp điện

SCK Serial Clock Chân giữ xung nhịp trong giao tiếp
SPI

MISO Master Input Slave Output Chân mang dữ liệu từ các thiết bị
SPI về vi điều khiển

MOSI Master Output Slave Input Chân mang dữ liệu từ vi điều


khiển đến các thiết bị SPI

SDA Serial Data Line Dây truyền dữ liệu

LF Low Frequencies Tần số thấp

HF High Frequencies Tần số cao

UHF Ultra High Frequencies Tần số rất cao

SHF Super High Frequencies Tần số siêu cao


Báo Cáo Đồ Án Tốt Nghiệp Trang xiii

TÓM TẮT
Theo sau sự phát triển và biến động như vũ bão của nền kinh tế, cùng đó là tốc
độ phát triển chóng mặt của Khoa học – Kỹ thuật, ngày nay ở các thành phố lớn mật
độ số lượng xe ngày càng đông. Điều này phần nào nói lên sự phát triển của một quốc
gia nhưng ngược lại dẫn đến sự ô nhiễm về môi trường, ùn tắc giao thông và thiếu
bãi đậu, đỗ xe cần được giải quyết.
Điện tử đang trở thành một ngành công nghiệp đa nhiệm, đã và đang đáp ứng
nhu cầu của mọi người về tất cả những lĩnh vực phổ biến trong đời sống. Các thiết bị
điện tử đã, đang và sẽ tiếp tục được ứng dụng rộng rãi và mang lại hiệu quả tối ưu
nhất trong hầu hết các lĩnh vực khoa học kỹ thuật cũng như đời sống xã hội.
Với trình độ khoa học kỹ thuật ngày càng phát triển, rất nhiều những vấn đề
đã được giải quyết một cách nhanh gọn với công nghệ điện tử hiện đại. Các bãi giữ
xe truyền thống đã không còn phù hợp với những trung tâm thương mại, siêu thị hay
bệnh viện vì những rắc rối mà nó mang lại. Với hệ thống giữ xe bằng thẻ từ và xử lý
ảnh để nhận dạng biển số xe thì những vấn đề như mất xe, mất vé gửi xe đã được giải
quyết nhanh gọn và triệt để. Xuất phát từ những vấn đề thiết thực đó đề tài “Thiết
kế, thi công bãi giữ xe ứng dụng công nghệ RFID và xử lý ảnh” đã được chọn cho
quá trình nghiên cứu.
Báo Cáo Đồ Án Tốt Nghiệp Trang 1

Chương 1: TỔNG QUAN


1.1 Giới thiệu
Hiện nay nước ta đang phát triển theo hướng công nghiệp hóa hiện đại hóa,
nhu cầu của con người về sự tiện lợi trong cuộc sống ngày càng tăng, càng ngày mật
độ dân cư và xe cộ càng đông. Đặc biệt là sự gia tăng về số lượng xe máy, điều này
cũng phản ánh sự phát triển của một quốc gia nhưng cũng dẫn đến những vấn đề như
là môi trường, ùn tắc giao thông, thiếu bãi đậu xe, cần được giải quyết cấp thiết.
Trong khi ngành công nghiệp điện tử cũng đang phát triển rất mạnh, đã và
đang dần đáp ứng được nhu cầu từ tất cả các lĩnh vực công, nông, lâm, ngư nghiệp
cho đến những nhu cầu trong đời sống hàng ngày. Với trình độ khoa học kỹ thuật
ngày càng phát triển, nhiều vấn đề từ đó đã được giải quyết nhanh gọn với công nghệ
điện tử và tự động hóa. Vậy nên các bãi xe truyền thống đã không còn phù hợp với
hầu hết các trung tâm thương mai, hội nghị, chung cư hay những bệnh viện lớn, vì
những rắc rối mà nó mang lại như ùn tắc, mất xe, mất vé gửi xe,… Với hệ thống giữ
xe bằng thẻ từ, các vấn đề gần như được giải quyết triệt để. Xuất phát từ các vấn đề
thiết thực đó, đề tài “Bãi giữ xe ứng dụng công nghệ RFID và xử lý ảnh” đã được
chọn để nghiên cứu.
1.2 Tình hình nghiên cứu hiện nay
1.2.1 Tình hình nghiên cứu trong nước
Hiện nay tình trạng bãi giữ xe dần trở nên là một vấn đề nan giải ở các thành
phố lớn trong nước ta vào các dịp lễ Tết và cũng như là ngày thường. Trong khi đó,
cũng xuất hiện thêm rất nhiều các bãi xe tự phát với mục đích là thu lợi nhuận từ tiền
gửi xe của người dân nhưng không đảm bảo về an ninh, chất lượng quản lý và đặc
biệt là lấy giá vé gửi xe rất cao, khiến cho rất nhiều bộ phận người dân bức xúc. Vì
thế có thể thấy nhu cầu về bãi xe thông minh và an toàn ở thời điểm hiện tại là cực
kỳ lớn.
Năm qua, UBND TP.HCM đã có ý kiến về việc đầu tư bãi đậu xe thông minh
cao tầng lắp ghép trên địa bàn TP. Theo đó, UBND TP.HCM chấp thuận về nguyên
tắc đầu tư xây dựng và khai thác tạm các bãi đậu xe thông minh ở các vị trí đất đủ
điều kiện để phục vụ nhu cầu dừng đậu xe tại khu trung tâm TP.HCM theo như đề
xuất của Sở Giao thông Vận tải.
UBND TP.HCM giao Sở Giao thông vận tải chủ trì phối hợp với các sở ngành
nghiên cứu, xác định cụ thể các vị trí đất đủ điều kiện, thời hạn khai thác tương ứng

Chương 1: Tổng Quan


Báo Cáo Đồ Án Tốt Nghiệp Trang 2

và hình thức đầu tư phù hợp để hướng dẫn các nhà đầu tư có quan tâm thực hiện theo
quy định. Bãi đậu xe cao tầng lắp ghép tại các khu đất thuộc côn trường Lam Sơn ở
phía sau nhà hát TP.HCM (rộng 1.410 m2) có 9 tầng với tổng mức đầu tư 161 tỉ đồng.
Dự án có tổng diện tích xây dựng hơn 6.000 m2 với sức chứa 168 ôtô. Bãi xe được
trang bị hệ thống đậu xe sử dụng robot tự động xếp xe. Hình thức đầu tư dự án được
đề xuất theo hợp đồng Xây dựng – Sở hữu – Kinh doanh.
Bên cạnh đó còn có kế hoạch xây dựng thêm bãi xe thông minh ở công viên
23/9 (rộng 4.048 m2), công viên Lê Văn Tám (rộng 1.416 m2) và công viên Tao Đàn
(rộng 570 m2) [7]. Và cho tới thời điểm này hầu hết các trung tâm thương mại và
siêu thị lớn đều đã tích hợp các bãi xe sử dụng công nghệ RFID và đạt được thành
công. Tuy nhiên so với thực tế tình hình phát triển của đất nước thì còn cần nhiều bãi
giữ xe hơn là thế nữa.
Đây là hình ảnh bãi giữ xe sử dụng công nghệ RFID ngay tại trường Đại học
Sư Phạm Kỹ Thuật TP.HCM:

Hình 1. 1: Máy tính hiển thị và lưu dữ liệu thông tin xe ra - vào

Chương 1: Tổng Quan


Báo Cáo Đồ Án Tốt Nghiệp Trang 3

Hình 1. 2: Đầu đọc thẻ xe CR500


1.2.2 Tình hình nghiên cứu ngoài nước
Ngày nay, ở các nước tiên tiến trên thế giới như Hàn Quốc, Nhật Bản,
Australia,… gần như hoàn toàn 100% ở những thành phố lớn và chật hẹp, người ta
đã xây dựng hệ thống bãi giữ xe tự động được trang bị thiết bị để di chuyển xe từ mặt
đất lên điểm đỗ xe trên cao hay xuống dưới lòng đất để tiết kiệm diện tích (hay còn
gọi là hệ thống gửi xe ngầm). Đây là những giải pháp giúp tăng xấp xỉ khoảng 100
lần số lượng xe so với cách giữ xe truyền thống, cho phép giải quyết được vấn đề về
thiếu mặt bằng xây dựng và rất nhiều những vấn đề khác.
Ở các nước phát triển công nghệ RFID và IoT gần như đã được ứng dụng hầu
hết trong mọi lĩnh vực. Việc ứng dụng công nghệ mới đã góp phần phát triển kinh tế,
đất nước và bảo vệ môi trường rất nhiều. Nạn kẹt xe hay thiếu chỗ để xe và vấn đề
về an ninh, bảo mật, sự không hài lòng của các hành khách ở bãi xe về chất lượng
quản lý đã không còn nữa vì các bãi xe theo kiểu truyển thống đã không còn quá
nhiều và dần biến mất.
1.3 Tính cấp thiết của đề tài
Như vấn đề đã đặt ra thì nhu cầu sử dụng bãi xe thông minh ở thị trường Việt
Nam rất cao và thậm chí là đã lên đến đỉnh điểm. Nắm bắt được điểm yếu đó trên thị
trường nên nhiều công ty về công nghệ đã không ngừng phát triển các hệ thống bãi

Chương 1: Tổng Quan


Báo Cáo Đồ Án Tốt Nghiệp Trang 4

xe thông minh nhằm đáp ứng nhu cầu của người dân cũng như là thu về lợi nhuận rất
khủng.
Như ở các bãi xe truyền thống trước đó, bộ phận quản lý gặp rất nhiều khó
khăn trong công việc quản lý và cũng không ít trường hợp nhân viên giữ xe bị gây
khó dễ, việc thất thoát tài chính là điều không tránh khỏi, rồi ở một số nới việc ghi
phấn lên xe khiến nhiều người khó chịu, còn nếu ghi vé xe bằng giấy thì một số trường
hợp bị ướt sẽ rất khó xử lý,… gây lãng phí và ô nhiễm môi trường.
Để khắc phục những vấn đề đó thì đề tài này phần nào góp phần giải quyết
được nhu cầu về bãi xe, tích hợp được công nghệ RFID vào để cải thiện tính hiệu quả
và linh hoạt trong các hệ thống hiện có.
1.4 Mục tiêu đề tài
Mục tiêu của đề tài là thiết kế và thi công được một hệ thống bãi giữ xe gồm
mô hình một bãi giữ xe tự động và phần mềm quản lý trên PC ứng dụng công nghệ
RFID và xử lý ảnh.
1.5 Phương hướng thực hiện đề tài
 Phương pháp tham khảo tài liệu: bằng cách thu thập thông tin từ sách, tạp chí
về khoa học điện tử, tham khảo từ nguồn Internet và các đồ án của những
khóa trước.
 Phương pháp quan sát: khảo sát một số bãi xe thông minh hiện hành để đưa
ra phương án thiết kế sau này cách tốt nhất.
 Phương pháp thực nghiệm: từ những ý tưởng và kiến thức của nhóm, kết hợp
với sự hướng dẫn của giảng viên, nhóm đã chọn lọc được cách làm tối ưu
nhất.
1.6 Bố cục đồ án
Chương 1: Tổng quan
Giới thiệu sơ lược, mục tiêu và phương pháp nghiên cứu đề tài.
Chương 2: Cơ sở lý thuyết
Nêu các lý thuyết cần thiết để sử dụng trong đề tài.
Chương 3: Thiết kế và xây dựng hệ thống trên board Arduino
Chương 4: Hệ thống nhận dạng biển số xe bằng Matlab
Trình bày sơ bộ về hệ thống, nguyên lý hoạt động và giải thích hoạt

Chương 1: Tổng Quan


Báo Cáo Đồ Án Tốt Nghiệp Trang 5

động của hệ thống.


Trình bày các thuật toán nhận dạng biển số xe.
Chương 5: Kết quả thực hiện, nhận xét, đánh giá
Trình bày kết quả đã thực hiện, về cả phần cứng lẫn phần mềm.
Nêu ra nhận xét và đánh giá.
Chương 6: Kết luận và hướng phát triển
Nếu ra ưu điểm và nhược điểm của hệ thống.
Đưa ra những điểm cần cải thiện của đề tài, hướng phát triển và phạm
vi sử dụng của đề tài trong tương lai gần.

Chương 1: Tổng Quan


Báo Cáo Đồ Án Tốt Nghiệp Trang 6

Chương 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu linh kiện
2.1.1 Borad Arduino Uno R3

Hình 2. 1: Hình ảnh thực tế Arduino Uno R3

Arduino Uno R3 là kit Arduino Uno thế hệ thứ 3, tích hợp vi điều khiển
ATmega328P(8bits), với khả năng lập trình cho các ứng dụng điều khiển phức tạp do
được trang bị cấu hình mạnh cho các loại bộ nhớ ROM, RAM và Flash, các ngõ vào
ra digital I/O trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM, các ngõ đọc tín
hiệu analog và các chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C).
Arduino Uno R3 có 6 chân Analog (A0 ÷ A5) cung cấp độ phân giải 10bit (0 ÷
210 -1) để đọc giá trị điện áp trong khoảng 0V – 5V. Với chân AREF trên board, ta có
thể đưa vào điện áp tham chiếu khi sử dụng các chân Analog. Tức là nếu cấp điện áp
2.5V vào chân này thì có thể dùng các chân Analog để đo điện áp trong khoảng 0V
÷ 2.5V với độ phân giải vẫn là 10bit.
Arduino có thế cấp nguồn 5V thông qua cổng USB.
Bộ nhớ của Arduino Uno R3 cung cấp cho người dùng:

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 7

 32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ
Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ
được dùng cho bootloader nhưng rất hiếm khi nào cần quá 20KB bộ nhớ này.
 2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo
khi lập trình sẽ ở đây. Khai báo càng nhiều biến thì cần càng nhiều bộ nhớ
RAM. Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM trở thành thứ
đáng để mà phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
 EPROM (Electrically Eraseble Programmable Read Only Memory): đây
giống như một chiếc ổ cứng mini – nơi mà bạn có thể đọc và ghi dữ liệu của
mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên
SRAM là 1KB.

Hình 2. 2: Sơ đồ chân của Arduino Uno R3

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 8

Thông sỗ kỹ thuật của board Arduino Uno R3:

STT Tên thông số Đặc tính


1. Vi điều khiển Atmega 328P
2. Điện áp hoạt động 1.8 – 5.5V
3. Digital I/O pin 14
4. PWM Digital I/O Pins 6
5. Analog Input Pins 6
6. Cường độ dòng điện ngõ ra 20 mA
7. Flash Memory 32 KB (ATmega328P)
8. SRAM 2 KB (ATmega328P)
9. EEPROM 1 KB (ATmega328P)
10. Tốc độ 16 MHz
Bảng 2. 1: Thông số kỹ thuật chính của borad Arduino

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 9

2.1.2 Module RFID RC522

Hình 2. 3: Hình ảnh thực tế module RFID RC522

Dùng giao tiếp SPI kết nối với ARDUINO, kết nối qua 4 chân: SCK, MISO,
MOSI, SS
 SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên
cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi.
 MISO – Master Input / Slave Output: nếu là chip Master thì đây là đường Input
còn nếu là chip Slave thì MISO lại là Output. MISO của Master và các Slaves
được nối trực tiếp với nhau.
 MOSI – Master Output / Slave Input: nếu là chip Master thì đây là đường
Output còn nếu là chip Slave thì MOSI là Input. MOSI của Master và các
Slaves được nối trực tiếp với nhau.
 SS – Slave Select: đường chọn Slave cần giap tiếp, tích cực mức thấp.
Thông số kỹ thuật:
 Nguồn: 3.3VDC, 13 - 26mA
 Dòng ở chế độ chờ: 1013mA
 Dòng ở chế độ nghỉ: < 80uA

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 10

 Tần số sóng mang: 13.56MHz


 Khoảng cách hoạt động: 0~60mm(mifare1 card)
 Chuẩn giao tiếp: SPI
 Tốc độ truyền dữ liệu: tối đa 10Mbit/s

2.1.3 Màn hình LCD 20x4

Hình 2. 4: Hình ảnh LCD 20x4

LCD 20x4 là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số
trong bảng mã ASCII. Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, các
chấm này kết hợp với nhau theo trình tự “ẩn” hoặc “hiện” sẽ tạo nên các kí tự cần
hiển thị và mỗi ô chỉ hiển thị được một kí tự duy nhất.
LCD 20x4 nghĩa là loại LCD có 4 dòng và mỗi dòng chỉ hiển thị được 20 kí
tự. Đây là loại màn hình được sử dụng rất phổ biến trong các loại mạch điện.
Thông số kĩ thuật của LCD 20x4:
 Điện áp: 5V
 Ngõ giao tiếp: 16 chân
 Màu sắc: xanh lá hoặc xanh dương
 Module hỗ trợ giao tiếp với vi điều khiển: LCD I2C 16x2

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 11

Chức năng các chân:

Chân Ký hiệu Mô tả

Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với
1 Vss
GND của mạch điều khiển.
Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này
2 VDD
với VCC=5V của mạch điều khiển.
3 VEE Điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select). Nối chân RS với
logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của
4 RS LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ
của LCD (ở chế độ “đọc” - read).
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR
bên trong LCD.
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với
5 R/W logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic
“1” để LCD ở chế độ đọc.
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên
bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung
cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển
6 E vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một
xung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi
phát hiện cạnh lên (low-to-high transition) ở chân E và được
LCD giữ ở bus đến khi nào chân E xuống mức thấp.
Tám đường của bus dữ liệu dùng để trao đổi thông tin với
MPU. Có 2 chế độ sử dụng 8 đường bus này:
DB0 - + Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường, với bit
7 - 14
DB7 MSB là bit DB7.
+ Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ DB4 tới
DB7, bit MSB là DB7.
15 - Nguồn dương cho đèn nền.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 12

16 - GND cho đèn nền.

Bảng 2. 2: Chức năng các chân của LCD


Cách điều khiển LCD:

Hình 2. 5: Dạng sóng điều khiển LCD

Nhìn vào dạng song ta có thể thấy được trình tự điều khiển như sau:
 Điều khiển tín hiệu RS.
 Điều khiển tín hiệu R/W xuống mức thấp.
 Điều khiển tín hiệu E lên mức cao để cho phép.
 Xuất dữ liệu D7 – D0.
 Điều khiển tín hiệu E về mức thấp.
 Điều khiển tín hiệu R/W lên mức cao trở lại.

Kết nối với Arduino thông qua Module chuyển đổi I2C với địa chỉ giao tiếp
I2C là 0x27.

Hình 2. 6: Module chuyển đổi I2C

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 13

Để sử dụng các loại LCD có driver là HD44780 (LCD 1602, LCD 2004, …)
cần có ít nhất 6 chân của MCU kết nối với các chân RS, EN, D7, D6, D5 và D4 để
có thể giao tiếp với LCD. Nhưng với module chuyển giao tiếp LCD sang I2C, chỉ cần
hai chân (SDA và SCL) của MCU kết nối với hai chân (SDA và SCL) của module để
có thể hiển thị thông tin lên LCD. Ngoài ra có thể điều chỉnh được độ tương phản bởi
biến trở gắn trên module.
Thông số kĩ thuật của module I2C:
 Kích thước: 41.5mm(L)X19mm(W)X15.3MM(H)
 Trọng lượng: 5g
 Điện áp hoạt động: 2.5v-6v
 Jump chốt: Cung cấp đèn cho LCD hoặc ngắt
 Biến trở xoay độ tương phản cho LCD

2.1.4 Động cơ Servo SG90

Hình 2. 7: Hình ảnh động cơ Servo SG90


Servo là một dạng động cơ điện đặc biệt. Không giống như động cơ thông
thường là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PPM), với
góc quay nằm trong khoảng bất kì từ 0o - 180o.
Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín. Tín hiệu ra của
động cơ được nối với một mạch điều khiển. Khi động cơ quay, vận tốc và vị trí sẽ

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 14

được hồi tiếp về mạch điều khiển này. Nếu có bầt kỳ lý do nào ngăn cản chuyển động
quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong
muốn. Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác.
Thông số kỹ thuật của động cơ:
 Momen xoắn: 1.8kg/cm
 Tốc độ hoạt động: 60 độ trong 0.1 giây
 Điện áp hoạt động: 4.8V(~5V)
 Nhiệt độ hoạt động: 0 ºC – 55 ºC

2.1.5 Camera USB 2.0

Hình 2. 8: Hình ảnh Camera


Ngày nay, tại các bãi giữ xe thông minh thì camera là phần quan trọng nhất,
không thể thiếu trong quá trình làm việc, hệ thống camera quan sát bãi giữ xe có chức
năng tìm kiếm hình ảnh xe ra vào một cách thông minh giúp cho người giũ xe không
lo nghĩ về việc mất xe hoặc thất lạc thẻ giữ xe một cách thông thường.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 15

Thông số kỹ thuật:

 Pixel size(μm): 3.20X3.20


 Cảm biến ảnh: 1/2 inch CMOS
 Số điểm ảnh: 2.0 Megapixel
 Độ phân giải lớn nhất: 640X480
 Tỷ lệ khung hình: 11fps
 Kết nối: cổng USB 2.0

2.2 Phần mềm lập trình điều khiển


2.2.1 Phần mềm lập trình Arduino IDE
Với mục tiêu của đề tài là sử dụng Arduino Uno R3 nên phần mềm để viết
chương trình điều khiển là phần mềm Arduino IDE.
Arduino IDE (Arduino Integrated Development Environment) là một trình
soạn thảo văn bản, giúp viết code để nạp vào bo mạch arduino. Arduino có thể chạy
trên Windows , MAC OS X và Linux.
Một chương trình viết bởi Arduino IDE được gọi là sketch, sketch được lưu
dưới định dạng .ino.
Sau khi khởi động Arduino IDE, ta được giao diện như hình sau:

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 16

Hình 2. 9: Giao diện phần mềm Arduino IDE

Vùng lập trình source code:

Hình 2. 10: Vùng lập trình code Arduino

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 17

Sau khi gõ code, tiến hành chọn Board và Port giao tiếp

Hình 2. 11: Chọn board để biên dịch code

Hình 2. 12: Chọn port của board đang kết nối

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 18

Tiến hành lưu file và kiểm tra lỗi:

Hình 2. 13: Lưu lại file đã lập trình


Có 3 cách kiểm tra lỗi:
 Cách 1: nhấn Ctrl + R.
 Cách 2: vào Sketch chọn Verify/Compile.

Hình 2. 14: Biên dịch chương trình

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 19

 Cách 3: nhấn trực tiếp.

Hình 2. 15: Biên dịch chương trình


Sau khi kiểm tra lỗi, ta tiến hành nạp chương trình vào kit.
Có 3 cách để nạp chương trình vào kit:
 Cách 1: nhấn Ctrl + U.
 Cách 2: vào Sketch chọn Upload.

Hình 2. 16: Nạp chương trình

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 20

 Cách 3: nhấn trực tiếp.

Hình 2. 17: Nạp chương trình

Sau khi nạp, nhấp chuột vào đây để xem kết quả:

Hình 2. 18: Nạp chương trình

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 21

Kết quả chương trình:

Hình 2. 19: Kết quả chương trình

2.2.2 Giới thiệu phần mềm Matlab


Với mục tiêu của đề tài là xử lý ảnh nên phần mềm để viết chương trình xử lý
ảnh sẽ là phần mềm Matlab.
MATLAB là viết tắt của Matrix Laboratory, Matlab là một môi trường tính
toán số và lập trình có tính trực quan rất cao, được thiết kế bởi công ty MathWorks.
Matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin,
thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình
máy tính viết trên nhiều ngôn ngữ lập trình khác. Matlab giúp đơn giản hóa việc giải
quyết các bài toán tính toán kĩ thuật so với các ngôn ngữ lập trình truyền thống như
C, C++, và Fortran.
Matlab được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh,
truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài
chính, hay tính toán sinh học. Với hàng triệu kĩ sư và nhà khoa học làm việc trong môi
trường công nghiệp cũng như ở môi trường hàn lâm, MATLAB là ngôn ngữ của tính
toán khoa học.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 22

Hình 2. 20: Giao diện phần mềm Matlab

Về dữ liệu, dữ liệu của Matlab thể hiện dưới dạng ma trận (hoặc mảng - tổng
quát), và có các kiểu dữ liệu được liệt kê sau đây:
 Kiểu đơn single, kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ
hơn, kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ
chính xác kém hơn.
 Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong Matlab.
 Kiểu Sparse.
 Kiểu uint8, uint8, uint16, uint64...
 Kiểu char ví dụ “Hello”.
 Kiểu cell.
 Kiểu Structure.

Trong Matlab kiểu dữ liệu double là kiểu mặc định sử dụng trong các phép
tính số học.
Toolbox là một công cụ quan trọng trong Matlab, công cụ này được Matlab
cung cấp cho phép bạn ứng dụng các kỹ thuật để phân tích, thiết kế, mô phỏng các
mô hình.
Ta có thể tìm thấy toolbox ở trong mô trường làm việc của:
 Mạng nơron.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 23

 Logic mờ.
 Simulink.
Hệ thống Matlab, hệ thống giao diện của Matlab được chia thành 5 phần:
 Môi trường phát triển: đây là nơi đặt các thanh công cụ, các phương tiện
giúp chúng ta sử dụng các lệnh và các file, ta có thể liệt kê một số như
sau:
+ Desktop.
+ Command Window.
+ Command History.
+ Browsers for viewinghelp.
 Thư viện, các hàm toán học bao gồm các cấu trúc như tính tổng, sin cosin
atan, atan2 etc..., các phép tính đơn giản đến các phép tính phức tạp như
tính ma trận nghich đảo, trị riêng, chuyển đổi fourier, laplace, symbolic
library.
 Ngôn ngữ Matlab. Đó là các ngôn ngữ cao về ma trận và mảng, với các
dòng lệnh, các hàm, cấu trúc dữ liệu vào, có thể lập trình hướng đối tượng.
 Đồ hoạ trong Matlab. Bao gồm các câu lệnh thể hiện đồ họa trong môi
trường 2D và 3D, tạo các hình ảnh chuyển động, cung cấp các giao diện
tương tác giữa người sử dụng và máy tính.
 Giao tiếp với các ngôn ngữ khác. Matlab cho phép tương tác với các ngôn
ngữ khác như C, Fortran …

2.2.3 Cài đặt thư viện Arduino cho Matlab


Đầu tiên, chạy ứng dụng Matlab, trên thanh Toolbox  Add Ons  Get
Hardware Support Packages.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 24

Hình 2. 21: Nhận gói hỗ trợ phần cứng


Tại cửa sổ Add On Explore  MATLAB Support Package for Arduino Hardware

Hình 2. 22: Chọn gói hỗ trợ phần cứng cho Arduino

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 25

Tại cửa sổ Add On Explore  Install  Install

Hình 2. 23: Chọn hoàn tất cài đặt


Tiếp theo đăng nhập vào tài khoản Mathworks của bạn và tải chúng về.
Sau đó phần mềm sẽ hiển thị lên các bước hướng dẫn tiếp theo, ta chỉ việc làm theo
cho tới khi hoàn tất.
2.3 Sơ lược về công nghệ RFID
RFID chính là viết tắt của thuật ngữ Radio Frequency Identification, là một
trong những công nghệ nhận dạng dữ liệu tự động tiên tiến nhất hiện nay có tính khả
thi cao và áp dụng thực tế rất hiệu quả. RFID đang hiện diện trong rất nhiều lĩnh vực
tự động hóa, rất nhiều ứng dụng quản lý và các mô hình quản lý khác nhau nhẳm đem
lại những giải pháp nhận dạng dữ liệu tự động tối ưu và hiệu quả hơn.
RFID có thể hiểu đây chính là việc nhận dạng qua tần số vô tuyến. RFID là
một công nghệ dùng kết nối sóng vô tuyến để tự động xác định và theo dõi các thẻ
nhận dạng gắn vào vật thể. Công nghệ này cho phép nhận biết các đối tượng thông
qua hệ thống thu phát sóng radio, từ đó có thể giám sát, quản lý từng đối tượng. Công
nghệ thẻ RFID cho phép xác định và quản lý các thiết bị, tài sản. Nó áp dụng cho việc
gắn thẻ mục trong các cửa hàng bán lẻ, sử dụng trong hệ thống kiểm kê, khóa thẻ
từ trong khách sạn, resort... Các sản phẩm thương mại như ô tô, máy móc hay cả quần
áo, hàng tiêu dùng có thể theo dõi từ nhà máy đến khách hàng.
Kỹ thuật RFID sử dụng truyền thông không dây trong dải tần số sóng vô tuyến
để truyền dữ liệu từ các tag (thẻ) đến các reader (bộ đọc). Tag có thẻ được đính kèm
hoặc gắn vào đối tượng được nhận dạng chẳng hạn như là sản phẩm, giá kệ, pallet,

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 26

xe,… Reader scan dữ liệu của tag và gửi thông tin đến cơ sở dữ liệu có lưu trữ dữ
liệu của tag. Ví dụ, các tag có thể được đặt trên kính chắn gió của xe hơi để hệ thống
thu phí đường nhanh chóng nhận dạng và thu tiền trên các tuyến đường lớn.
Một hệ thống RFID cơ bản bao gồm 2 thành phần chính:
 Phần cứng: gồm có thẻ (con tem), anten, máy đọc thẻ, máy chủ.
 Phần mềm: gồm có phần mềm trung gian (middle ware) và phần mềm ứng
dụng (trong lĩnh vực thư viện nó là các phần mềm quản trị thư viện).
Phần cứng
 Thẻ RFID (RFID tag): Thẻ RFID được cấu tạo mềm mỏng có chứa chíp vi xử
lí và anten (đối với loại thẻ không năng). Nó có thể đọc, ghi dữ liệu, và thậm
chí có chứa cả thông tin về bảo mật. Thẻ này có thể dán vào các vật cần quản
lý như sách, hàng hóa, động vật,…
 Máy đọc (Readers): Máy đọc có nhiệm vụ chuyển dữ liệu giải mã dữ liệu được
từ thẻ tới phần mềm trung gian và phần mềm ứng dụng để xử lý. Thông thường
máy đọc tích hợp với anten. Máy đọc thường được đặt tại bàn mượn/trả, các
điểm mượn/trả tự động, trong kho và máy phân loại tự động, tại lối ra của thư
viện.
 Máy chủ: là máy vi tính được dùng để chạy các phần mềm trung gian và phần
mềm ứng dụng.
Phần mềm
 Phần mềm trung gian (Middleware): Phần mềm trung gian là các phần mềm
được sử dụng để nhận và xử lý các dữ liệu thô nhận được từ các máy đọc để
chuyển tới các phần mềm quản trị thư viện. Đây là một thành phần không thể
thiếu trong hệ thống RFID. Phần mềm này thường được xây dựng và cung cấp
bởi các nhà cung cấp thiết bị RFID.
 Phần mềm ứng dụng (Application software): Là các phần mềm được sử dụng
để xử lý và tự động hóa các công việc của một cơ quan, tổ chức. Trong lĩnh
vực thư viện, phần mềm ứng dụng chính là các phần mềm thư viện điện tử tích
hợp trong đó có lưu thông tin về các tài liệu, bạn đọc, quá trình mượn/trả, hệ
thống kho… mà thư viện quản lý. Phần mềm này sẽ nhận dữ liệu đã được xử
lý từ phần mềm trung gian để phân tích.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 27

Hình 2. 24: Hệ thống RFID cơ bản


Các tần số thường được sử dụng trong hệ thống RFID:
 LF: 125 kHz - 134,2 kHz: low frequencies, ứng dụng nhiều cho hệ thống quản lý
nhân sự, chấm công, cửa bảo mật, bãi giữ xe…
 HF: 13.56 MHz: high frequencies, ứng dụng nhiều cho quản lý nguồn gốc hàng
hóa, vận chuyển hàng hóa, cửa bảo mật, bãi giữ xe…
 UHF: 860 MHz - 960 MHz: ultra high frequencies, ứng dụng nhiều trong các hệ
thống kiểm soát như thu phí đường bộ tự động, kiểm kê kho hàng, kiểm soát
đường đi của hàng hóa…
 SHF: 2.45 GHz: super high frequencies, ứng dụng nhiều trong các hệ thống kiểm
soát như thu phí đường bộ tự động, kiểm soát lưu thông hàng hải, kiểm soát hàng
hóa, kiểm kê kho hàng…

2.4 Sơ lược về UART


Nếu nhớ lại các bộ phận máy tính cũ như máy in, chuột, bàn phím được liên
kết với sự trợ giúp của các đầu nối. Quá trình giao tiếp giữa máy tính và các bộ phận
này có thể được thực hiện bằng UART. Universal serial Bus (USB) đã thay đổi tất cả
các loại nguyên tắc giao tiếp trên máy tính. Nhưng, UART vẫn được sử dụng trong
các ứng dụng được khai báo ở trên. Tất cả các loại kiến trúc vi điều khiển đều có phần
cứng UART tích hợp do giao tiếp nối tiếp và chỉ sử dụng hai cáp để liên lạc. Vậy
UART là gì?
Các tên đầy đủ UART là “Universal Asynchronous Receiver / Transmitter”,
và nó là một vi mạch sẵn có trong một vi điều khiển nhưng không giống như một

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 28

giao thức truyền thông (I2C & SPI). Chức năng chính của UART là truyền dữ liệu
nối tiếp. Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách
là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song.

Hình 2. 25: Giao tiếp UART


Truyền thông nối tiếp và song song:
Trong giao tiếp dữ liệu nối tiếp, dữ liệu có thể được truyền qua một cáp hoặc
một đường dây ở dạng bit-bit và nó chỉ cần hai cáp. Truyền thông dữ liệu nối tiếp
không đắt khi chúng ta so sánh với giao tiếp song song. Nó đòi hỏi rất ít mạch cũng
như dây. Vì vậy, giao tiếp này rất hữu ích trong các mạch ghép so với giao tiếp song
song.
Trong giao tiếp dữ liệu song song, dữ liệu có thể được truyền qua nhiều cáp
cùng một lúc. Truyền dữ liệu song song tốn kém nhưng rất nhanh, vì nó đòi hỏi phần
cứng và cáp bổ sung. Các ví dụ tốt nhất cho giao tiếp này là máy in cũ, PCI, RAM,
v.v.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 29

Hình 2. 26: Giao tiếp song song


Sơ đồ khối UART:
Sơ đồ khối UART bao gồm hai thành phần là máy phát và máy thu được hiển
thị bên dưới. Phần máy phát bao gồm ba khối là thanh ghi giữ truyền, thanh ghi dịch
chuyển và logic điều khiển. Tương tự, phần máy thu bao gồm một thanh ghi giữ,
thanh ghi thay đổi và logic điều khiển. Hai phần này thường được cung cấp bởi một
bộ tạo tốc độ baud. Trình tạo này được sử dụng để tạo tốc độ khi phần máy phát và
phần máy thu phải truyền hoặc nhận dữ liệu.
Thanh ghi giữ trong máy phát bao gồm byte dữ liệu được truyền. Các thanh ghi
thay đổi trong máy phát và máy thu di chuyển các bit sang phải hoặc trái cho đến khi
một byte dữ liệu được truyền hoặc nhận. Một logic điều khiển đọc (hoặc) ghi được
sử dụng để biết khi nào nên đọc hoặc viết.
Máy phát tốc độ baud giữa máy phát và máy thu tạo ra tốc độ dao động từ 110
bps đến 230400 bps. Thông thường, tốc độ truyền của vi điều khiển là 9600 đến
115200.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 30

Hình 2. 27: Sơ đồ khối UART


Truyền thông UART:
Trong giao tiếp này, có hai loại UART có sẵn là truyền UART và nhận UART
và giao tiếp giữa hai loại này có thể được thực hiện trực tiếp với nhau. Đối với điều
này, chỉ cần hai cáp để giao tiếp giữa hai UART. Luồng dữ liệu sẽ từ cả hai chân
truyền (Tx) và nhận (Rx) của UARTs. Trong UART, việc truyền dữ liệu từ Tx UART
sang Rx UART có thể được thực hiện không đồng bộ (không có tín hiệu CLK để
đồng bộ hóa các bit o / p).
Việc truyền dữ liệu của UART có thể được thực hiện bằng cách sử dụng bus dữ
liệu ở dạng song song bởi các thiết bị khác như vi điều khiển, bộ nhớ, CPU, v.v. Sau
khi nhận được dữ liệu song song từ bus, nó tạo thành gói dữ liệu bằng cách thêm ba
bit như bắt đầu, dừng lại và trung bình. Nó đọc từng bit gói dữ liệu và chuyển đổi dữ
liệu nhận được thành dạng song song để loại bỏ ba bit của gói dữ liệu. Tóm lại, gói
dữ liệu nhận được bởi UART chuyển song song về phía bus dữ liệu ở đầu nhận.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 31

Hình 2. 28: Truyền thông UART


Start-bit:
Start-bit còn được gọi là bit đồng bộ hóa được đặt trước dữ liệu thực tế. Nói
chung, một đường truyền dữ liệu không hoạt động được điều khiển ở mức điện áp
cao. Để bắt đầu truyền dữ liệu, truyền UART kéo đường dữ liệu từ mức điện áp cao
(1) xuống mức điện áp thấp (0). UART thu được thông báo sự chuyển đổi này từ mức
cao sang mức thấp qua đường dữ liệu cũng như bắt đầu hiểu dữ liệu thực. Nói chung,
chỉ có một start-bit.
Bit dừng:
Bit dừng được đặt ở phần cuối của gói dữ liệu. Thông thường, bit này dài 2 bit
nhưng thường chỉ sử dụng 1 bit. Để dừng sóng, UART giữ đường dữ liệu ở mức điện
áp cao.
Bit chẵn lẻ:
Bit chẵn lẻ cho phép người nhận đảm bảo liệu dữ liệu được thu thập có đúng
hay không. Đây là một hệ thống kiểm tra lỗi cấp thấp & bit chẵn lẻ có sẵn trong hai
phạm vi như Chẵn lẻ – chẵn lẻ cũng như Chẵn lẻ – lẻ. Trên thực tế, bit này không
được sử dụng rộng rãi nên không bắt buộc.
Dữ liệu bit hoặc khung dữ liệu:
Các bit dữ liệu bao gồm dữ liệu thực được truyền từ người gửi đến người nhận.
Độ dài khung dữ liệu có thể nằm trong khoảng 5 & 8. Nếu bit chẵn lẻ không được sử
dụng thì chiều dài khung dữ liệu có thể dài 9 bit. Nói chung, LSB của dữ liệu được
truyền trước tiên sau đó nó rất hữu ích cho việc truyền.
Giao diện UART:

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 32

Hình dưới đây cho thấy UART giao tiếp với vi điều khiển. Giao tiếp UART có
thể được thực hiện bằng ba tín hiệu như TXD, RXD và GND.
Bằng cách sử dụng điều này, chúng ta có thể hiển thị một văn bản trong máy
tính cá nhân từ board vi điều khiển 8051 cũng như mô-đun UART. Trong board 8051,
có hai giao diện nối tiếp như UART0 và UART1. Ở đây, giao diện UART0 được sử
dụng. Chân Tx truyền thông tin đến chân PC & Rx nhận thông tin từ PC. Tốc độ
Baud có thể được sử dụng để biểu thị tốc độ của cả vi điều khiển và PC. Việc truyền
và nhận dữ liệu có thể được thực hiện đúng khi tốc độ truyền của cả vi điều khiển và
PC là tương tự nhau.

Hình 2. 29: Giao diện UART


Các ứng dụng của UART:
UART thường được sử dụng trong các bộ vi điều khiển cho các yêu cầu chính
xác và chúng cũng có sẵn trong các thiết bị liên lạc khác nhau như giao tiếp không
dây, thiết bị GPS, mô-đun Bluetooth và nhiều ứng dụng khác.
Các tiêu chuẩn truyền thông như RS422 & TIA được sử dụng trong UART
ngoại trừ RS232. Thông thường, UART là một IC riêng được sử dụng trong giao tiếp
nối tiếp UART.
Ưu điểm và nhược điểm của UART:
Những ưu và nhược điểm của UART bao gồm những điều sau đây:
 Nó chỉ cần hai dây để truyền dữ liệu
 Tín hiệu CLK là không cần thiết
 Nó bao gồm một bit chẵn lẻ để cho phép kiểm tra lỗi

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 33

 Sắp xếp gói dữ liệu có thể được sửa đổi vì cả hai mặt được sắp xếp
 Kích thước khung dữ liệu tối đa là 9 bit
 Nó không chứa một số hệ thống phụ (hoặc)
 Tốc độ truyền của UART phải ở mức 10% của nhau
2.5 Sơ lược về chuẩn giao tiếp SPI
SPI là một chuẩn truyền thông nối tiếp tốc độ cao. Đây là kiểu truyền thông
Master Slave, tức là sử dụng tín hiệu đồng bộ chuyên dụng để đồng bộ bộ phát và bộ
thu hoặc Master và Slave, trong đó có 1 chip Master điều phối quá trình truyền thông
và các chip Slaves được điều khiển bởi Master (gọi là một mối quan hệ trong giao
diện đa điểm). SPI là một cách truyền song công, nghĩa là tại cùng một thời điểm quá
trình truyền và nhận có thể xảy ra đồng thời.
Bus SPI bao gồm 4 tín hiệu hoặc chân:
 Master – Out / Slave – In (MOSI hay SI): cổng ra của bên Master, cổng vào
của bên Slave, dành cho việc truyền dữ liệu từ thiết bị Master đến thiết bị Slave
 Master – In / Slave – Out (MISO hay SO): cổng vào của bên Master, cổng ra
của bên Slave, dành cho việc truyền dữ liệu từ thiết Slave đến thiết bị Master.
 Serial Clock (SCK hay SCLK): xung giữ nhịp cho giao tiếp SPI.
 Chip Select (CS) hay Slave Select (SS): chọn chip.
2.6 Sơ lược về I2C
I2C sử dụng hai đường truyền tín hiệu: một đường xung nhịp đồng hồ (SCL)
và một đường tín hiệu (SDA). SCL và SDA luôn được kéo lên nguồn bằng một điện
trở kéo lên có giá trị xấp xỉ 4.7 Kohm.
Các chế độ hoạt động của I2C bao gồm:
 Chế độ chuẩn (standard mode) hoạt động ở tốc độ 100 Kbit/s.
 Chế độ tần số thấp (low speed mode) hoạt động ở tốc độ 10 Kbit/s.
Ngoài ra I2C còn có chế độ 10 bit địa chỉ tương đương với 1024 địa chỉ.
2.7 Lý thuyết ảnh số
2.7.1 Khái niệm ảnh số
Ảnh trong thực tế liên tục về không gian và độ sáng, để có thể xử lý ảnh ta cần
biến đổi tín hiệu tương tự thành tín hiệu rời rạc thông qua quá trình lấy mẫu, và lượng
tự hóa thành phần cấu tạo thành tập hợp phần tử ảnh gọi là quá trình số hóa.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 34

Ảnh là tập hợp các điểm (phần tử ảnh) khi được số hóa. Khối lượng thông tin
trong một ảnh là rất lớn. Bản chất các thông số ảnh có tính vector.
2.7.2 Cấu trúc một file ảnh
Một file ảnh là tập hợp nhiều điểm ảnh:

Hình 2. 30: Mảng 2 chiều của một file ảnh


Vậy ảnh được xem như một ma trận tọa độ. Do đó hàm f(x,y) còn cò thể biểu
diễn dưới dạng ma trận như sau:
𝑓(0,0) 𝑓(0,1) … 𝑓(0, 𝑁 − 1)
𝑓(1,0) 𝑓(1,1) … 𝑓(1, 𝑁 − 1) )
𝑓(𝑥, 𝑦) = (
: ∶ ∶
𝑓(𝑀 − 1,0) 𝑓(𝑀 − 1,1) … 𝑓(𝑀 − 1, 𝑁 − 1)
2.7.3 Ảnh RGB
Ảnh RGB còn gọi là ảnh “truecolor” do tính trung thực của nó. Ảnh này được
biểu diễn bởi một ma trận ba chiều có kích thước m x n x 3, với m x n là kích thước
ảnh theo pixel. Ma trận này định nghĩa các thành phần màu Red, Green, Blue cho
mỗi điểm ảnh.
Từ viết tắt RGB trong tiếng Anh có nghĩa là
R: Red (màu đỏ)
G: Green (màu xanh lá cây)
B: Blue (màu xanh lam)
Đây là ba màu gốc trong các mô hình ánh sáng bổ sung.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 35

Hình 2. 31: Mô hình màu RGB


Một trong những ứng dụng phổ biến nhất của mô hình màu RGB là việc hiển
thị màu sắc trong các ống tia âm cực, màn hình tinh thể lỏng hay màn hình plasma,
chẳng hạn như màn hình máy tính hay ti vi. Mỗi điểm ảnh trên màn hình có thể được
thể hiện trong bộ nhớ máy tính như là các giá trị độc lập của màu đỏ, xanh lá cây và
xanh lam. Các giá trị này được chuyển đổi thành các cường độ và gửi tới màn hình.
Bằng việc sử dụng các tổ hợp thích hợp của các cường độ ánh sáng đỏ, xanh lá cây
và xanh lam, màn hình có thể tái tạo lại phần lớn các màu trong khoảng đen và trắng.
2.7.4 Mức xám (Gray level)
Mức xám là kết quả sự mã hóa tương ứng một cường độ sáng của mỗi điểm
ảnh với một giá trị nhất định, mỗi pixel có thể mã hóa 8 bit (0 đến 255) hay 16, 32,
64 bit. Tạo thành ma trận dữ liệu.
2.7.5 Lược đồ mức xám (Histogram)
Lược đồ mức xám là một hàm cung cấp tần số xuất hiện của mỗi mức xám
(gray level) trong ảnh. Biểu diễn toán học của histogram của một ảnh số có L = 256
mức xám là một hàm rời rạc: (p(fk) ∈ [0,1]):
𝑛𝑘
P(fk) =
𝑛

Trong đó : fk là giá trị mức xám thứ k (k = 0,1,…,L-1)


nk là số pixel mức xám đó
n là tổng số pixel của ảnh

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 36

Hình 2. 32: Ảnh xám và lược đồ mức xám


2.7.6 Ảnh nhị phân
Ảnh trắng đen sau khi mã hóa tạo thành ma trận chỉ nhận giá trị logic (0,1)
tương ứng 0 là pixel trắng, 1 là pixel đen.

Hình 2. 33: Ảnh nhị phân


2.8 Các Phương pháp xử lý ảnh số
2.8.1 Chuyển ảnh màu RGB thành ảnh mức xám Gray level
Sử dụng camera thu nhận ảnh thì ảnh sẽ là 24 bit màu, do đó dung lượng lưu
trữ sẽ rất lớn và ảnh hưởng tới tốc độ xử lý. Vì vậy khi thu ảnh, ta sẽ chuyển về ảnh
mức xám 8 bit theo công thức:
X = 0.2125*R + 0.71554*G + 0.0721*B (2.1)

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 37

2.8.2 Phương pháp lọc nhiễu ảnh


Nhiễu có thể coi như sự đột biến của một điểm ảnh so với các điểm lân cận.
Lọc nhiễu ảnh nhằm mục đích loại bỏ các đột biến của ảnh, ở đây ta sử dụng phương
pháp lọc số dựa trên tính dư thừa thông tin không gian, các pixel lân cận có thể có
cùng hoặc gần cùng một số đặc tính. Trong kỹ thuật này, người ta sử dụng một mặt
nạ di chuyển khắp ảnh gốc. Tùy theo tổ hợp điểm đang xét với các điểm lân cận mà
ta sử dụng kỹ thuật lọc tuyến tính hay phi tuyến. Điểm ảnh chịu tác động của biến đổi
là điểm ở tâm mặt nạ.

Chương 2: Cơ Sở Lý Thuyết
Báo Cáo Đồ Án Tốt Nghiệp Trang 38

Chương 3: THIẾT KẾ - THI CÔNG HỆ THỐNG


3.1 Sơ đồ khối của hệ thống
3.1.1 Yêu cầu hệ thống
Với tiêu chí thiết kế, xây dựng một bãi giữ xe thông minh, dễ sử dụng. Hệ thống
có các yêu cầu sau:
 Khối xử lý trung tâm nhận được tín hiệu gửi về từ module RFID.
 Khối xử lý trung tâm kết nối được với khối xử lý ảnh để nhận dạng biển số.
 Khối xử lý trung tâm gửi dữ liệu ra khối hiển thị và điều khiển động cơ servo
cho phép xe ra – vào.
3.1.2 Thiết kế sơ đồ khối
Từ yêu cầu của hệ thống nhóm chúng em thiết kế sơ đồ khối như sau:

Hình 3. 1: Sơ đồ khối hệ thống


Chức năng từng khối:
 Khối nguồn có chức năng cấp nguồn cho toàn mạch.
 Khối xử lý trung tâm: Điều khiển các hoạt động của mạch, lập trình kết nối với
các linh kiện, module trong mạch.
 Khối RFID RC522: Đọc thẻ khi xe ra vào và đếm số xe sau mỗi lần đọc thẻ.
 Khối PC: Phần mềm PC có chức năng kết hợp với camera với đầu đọc RFID để
xử lý dữ liệu xe ra vào, cùng đó kết hợp với khối xử lý trung tâm để quản lý hệ
thống.

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 39

 Khối hiển thị: Hiển thị thông báo của bãi xe.
 Khối động cơ: Điều khiển Servo đóng mở cho phép xe ra - vào.
3.1.3 Hoạt động của hệ thống
Hệ thống hoạt động có 3 chế độ:
 Khi có xe vào đúng vị trí, hành khách được nhận thẻ và tự quẹt thẻ. Khi thẻ được
quét thì camera sẽ chụp ảnh và gửi về máy tính để nhận dạng biển số. Các thông
tin (biển số, mã thẻ, thời gian gửi) được lưu vào một cơ sở dữ liệu của hệ thống
và hệ thống sẽ mở sevor để xe chạy vào. Sau khi xe chạy vào thì hạ sevor xuống.
 Khi xe ra thẻ được quét, camera cũng sẽ chụp lại hình ảnh xe và biển số xe, dựa
vào mã ID của thẻ mà so sánh, nếu đúng với biển số xe ban đầu thì cho xe ra (có
thể mở rộng thêm tính thời gian để thu tiền gửi xe) và sevor tự động mở cho xe
chạy ra còn nếu không trùng khớp hệ thống sẽ thông báo không trùng biển số.
 Trường hợp khách hàng mất thẻ từ nên việc lấy xe bằng quá trình quẹt thẻ không
được thực hiện. Như vậy, hành khách muốn lấy xe buộc phải chứng minh xe
mình được gửi trong bãi xe bằng các giấy tờ thùy thân. Nhân viên kiểm tra giấy
tờ của khách, kiểm tra biển số xe có tồn tại trong hệ thống cơ sở dữ liệu không
và sau đó giải quyết.

3.2 Thiết kế
Theo sơ đồ khối ta sẽ thiết kế kế phần cứng bao gồm các phần:
 Khối xử lý trung tâm: Arduino Uno
 Khối RFID: module RC522
 Khối động cơ: động cơ servo mini 5V
 Khối hiển thị: LCD 20x4
 Khối nguồn: sử dụng nguồn máy tính
3.2.1 Khối động cơ
 Yêu cầu thiết kế: khối này điều khiển đóng – mở cổng khi xe vào và xe ra.
 Lựa chọn phần cứng: để ứng dụng việc đóng mở cửa ta thường nghĩ đến động cơ
Servo. Vì hệ thống nhỏ nên ta sẽ chọn loại động cơ Servo 5V minni là đủ để đáp
ứng cho yêu cầu điều khiển, tối đa giải pháp kinh tế.
 Kết nối Arduino: do Servo mini chỉ có 3 chân và đề tài này chỉ sử dụng 2 Servo
gồm nguồn, mas và chân điều khiển. Ta kết nối nguồn và mass vào chân nguồn
và mas của Arduino còn chân điều khiển nối vào chân 5 và 6.
 Sơ đồ nguyên lý:

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 40

Hình 3. 2: Sơ đồ kết nối Arduino với 2 servo


 Giải thích nguyên lý: khi có tín hiệu từ Arduino gửi về Servo sẽ điều khiển
đóng – mở.
3.2.2 Khối hiển thị
 Yêu cầu thiết kế: khối hiển thị có chức năng hiển thị thông tin điều khiển giúp
cho hành khách quan sát dễ dàng. Trong đề tài này khối hiển thị được nhóm sử
dụng để hiển thị trình trạng của bãi giữ xe hoặc thông báo đến hành khách khi
hệ thống xảy ra lỗi.
 Lựa chọn phần cứng: để thiết kế việc hiển thị trong hệ thống điển tử nhỏ, người
ta thường sử dụng LCD, led 7 đoạn, led ma trận. Tuy nhiên led 7 loạn và led ma
trận thường thích hợp cho việc hiển thị ngày là chính. Ngày nay, thiết bị hiển thị
LCD được sử dụng rất nhiều trong các ứng dụng vi điều khiển.
+ LCD có rất nhiều ưu điểm so với các dạng hiển thị khác.
+ LCD có khả năng hiện thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ
họa).
+ Dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức khác nhau.
+ Tốn rất ít tài nguyên hệ thống và giá thành rẻ.
Trên trị trường có nhiều loại LCD khác nhau với kích thước và tính năng đa dạng,
ở đây hệ thống cần hiển thị thông tin, cũng như để thiết kế hệ thống gọn gàng, nhỏ đẹp
ta chọn 20x04 là đủ cho yêu cầu thiết kế. Để giao tiếp được arduino với LCD thì ta chọn

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 41

phương thức giao tiếp với module I2C vì: hạn chế được số lượng dây và giúp thiết kế
phần cứng dễ dàng và gọn gàng.
 Kết nối:
STT LCD I2C ARDUINO

1. VCC 5V

2. GND GND

3. SDA PIN A4

SCL PIN A5
4.

Bảng 3. 1: Bảng nối chân giữa LCD và arduino

 Sơ đồ nguyên lý:

Hình 3. 3: Sơ đồ kết nối Arduino với LCD

 Giải thích nguyên lý: khối hiển thị được kết nối với Arduino Uno để hiển thị
thông tin tình hình trạng thái bãi giữ xe.
3.2.3 Khối RFID
 Yêu cầu thiết kế: khối RFID có nhiệu vụ đọc mã UID từ thẻ RFID sau đó chuyển
mã UID thành chuỗi số rồi gửi về Arduino, gửi về PC.
 Phương án chọn phần cứng: như yêu cầu hệ thống phần mềm trên máy tính ta sẽ
kết hợp giữa các camera và công nghệ RFID để quản lý xe ra vào. Ở đây ta sử
dụng thẻ tag thụ động để ứng dụng công nghệ cho hệ thống, với ứng dụng RFID

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 42

người ta sẽ thường chọn các module đầu đọc thẻ có sẵn với các tần số nhác nhau
như 125khz, 13.56Mhz, 433Mhz,…
 Kết luận ở đây ta lựa chọn đầu lọc thẻ 13.56 Mhz RC522 vì khoảng cách không
cần xa, với mức giá rẻ thiết kế nhỏ gọn, module này sử dụng lựa chọn hàng đầu
cho các ứng dụng về ghi đọc thẻ RFID.
 Kết nối với Arduino:
STT RFID RC522 ARDUINO

1. 3.3V 3.3V

2. RST PIN 9

3. GND GND

4. MISO PIN 11

5. MOSI PIN 12

6. SCK PIN 13

7. SDA PIN 10

Bảng 3. 2: Sơ đồ kết nối với RC522

 Sơ đồ nguyên lý:

Hình 3. 4: Sơ đồ kết nối khối RFID với Arduino

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 43

 Giải thích nguyên lý: khi có thẻ tag được quét vào hay thẻ mới có tác động vào
RC522 thì sẽ gửi mã thẻ đã quét cho PC.
3.2.4 Khối nguồn
 Yêu cầu thiết kế: khối này có nhiệm vụ cung cấp điện cho tất cả các khối còn lại
trong mạch hoạt động.
 Phương án lựa chọn: để đáp ứng được yêu cầu của hệ thống thì ta cần tính toán
điện áp và dòng điện để cung cấp cho các linh kiện hoạt động bình thường và sử
dụng nguồn một cách hợp lý. Theo đó các giá trị điện áp và tổng dòng điện sẽ
được liệt kê trong bảng sau:

TỔNG
SỐ ĐIỆN DÒNG DÒNG
STT THIẾT BỊ
LƯỢNG ÁP ĐIỆN ĐIỆN

1. ARDUINO UNO 3 5V 30mA 90mA

2. MODULE RC522 2 3.3V 13 -26mA 26–52mA

3. SERVO MINI 2 5V 550mA 1100mA

4. LCD 20X4 1 5V 25mA 25mA

TỔNG ~1.3A

Bảng 3. 3: Dòng và áp quy định các link kiện

 Phương hướng thiết kế: các thiết bị được sử dụng trong đề tài này chủ yếu sử
dụng nguồn trực tiếp từ máy tính.
3.2.5 Sơ đồ nguyên lý toàn mạch
Sau khi thực hiện kết nối các thành phần lại, ta được sơ đồ nguyên lý toàn mạch
như sau:

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 44

3.3 Thiết kế phần mềm


3.3.1 Thiết kế phần mềm cho PC
Từ yêu cầu của hệ thống ta tiến hành thiết kế giao diện phần mềm để quản lý xe
ra vào như sau:
 Đọc hình ảnh từ 2 camera.
 Sử dụng đầu đọc thẻ RFID để chụp ảnh xe vào và chụp ảnh xe ra.
 Dữ liệu hệ thống được lưu vào file EXCEL.
3.3.2 Lưu đồ giải thuật chương trình chính

Giải thích lưu đồ:

 Đầu tiên khởi tạo các cổng kết


nối UART, khởi tạo các biến xử
dụng trong chương trình.

 Sau đó kết nối camera và RFID,


nhận dữ liệu và xử lý theo vòng
lặp của serial port.

 Đọc dữ liệu để chụp ảnh sau đó


xử lý ảnh để xử lý xe ra/vào.

Hình 3. 5: Lưu đồ giải thuật chương


trình chính

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 45

3.3.3 Lưu đồ chương trình con khởi tạo, điều khiển LCD – Servo

Giải thích lưu đồ:

 Khởi tạo thư viện, khởi tạo


serial port.

 Setup cho LCD và servo.

 Kiểm tra có nhận dữ liệu từ PC.

 Hiển thị LCD và mở servo.

Hình 3. 6: Lưu đồ chương trình khối xử


lý trung tâm

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 46

3.3.4 Lưu đồ chương trình con RFID

Giải thích lưu đồ:

 Đầu tiên khởi tạo thư viện cần


thiết, định nghĩa các chân sử
dụng, thiết lập chuẩn giao tiếp.

 Kiểm tra có quét hay không. Nếu


có tiến hành gửi 4 byte cho PC.

Hình 3. 7: Lưu đồ chương trình RFID

3.3.5 Thiết kế giao diện quản lý trên PC


Sau nhiều lần chỉnh sửa, tham khảo các giao diện của các bãi giữ xe, thì nhóm
em đã đưa ra được giao diện tối ưu nhất có thể.
Giao diện gồm có camera ngõ ra và ngõ vào hoạt động liên tục, ảnh xe vào, ảnh
xe ra, ảnh biển số xe sau khi đã xử lý, bảng thông tin xe của khách, ô hiển thị số lượng
xe còn trong bãi, nút xem lịch sử xe trong ngày.

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 47

Hình 3. 8: Giao diện quản lý trên PC


3.4 Thi công
3.4.1 Thiết kế mạch in
Sau khi đã thiết kế sơ đồ khối, sơ đồ nguyên lý toàn mạch thì ta tiến hành vẽ
mạch in đã thiết kế, bao gồm 2 mạch in giống như hình 3.7 để kết nối giữa Arduino và
module RFID nhắm tăng tính ổn định cho hệ thống.

Hình 3. 9: Mạch in kết nối Arduino với module RFID

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 48

Tiếp theo là mạch in kết nối Arduino với động cơ servo và LCD:

Hình 3. 10: Mạch in kết nối Arduino với servo và LCD

3.4.2 Board mạch đã hoàn thiện


Sau khi thiết kế sơ đồ nguyên lý phần cứng và tiến hành thi công mạch nay nhóm
đã hoàn thành xong và hình ảnh của mạch như sau:

Hình 3. 11: Board mạch Arduino – RFID

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 49

Sau đó, tiến hành đóng hộp board mạch cho gọn gàng:

Hình 3. 12: Board mạch đã đóng hộp


Tiếp theo là board mạch Arduino với servo và LCD:

Hình 3. 13: Board mạch Arduino – servo và LCD

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 50

Hình 3. 14: Board mạch sau khi đã đóng hộp


3.4.3 Thi công mô hình bãi xe
Dựa theo lựa chọn thiết kế ban đầu, cấu trúc thiết kế mô hình của nhóm gồm 2
làn cho xe ra – vào, có 1 nhà quản lý bãi giữ xe, 2 động cơ servo, các vị trí để xe trong
bãi. Formex là vật liệu chính làm nên mô hình.

Hình 3. 15: Mặt trước của mô hình

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 51

Hình 3. 16: Mặt sau của mô hình

Chương 3: Thiết Kế - Thi Công Hệ Thống


Báo Cáo Đồ Án Tốt Nghiệp Trang 52

Chương 4 : HỆ THỐNG NHẬN DẠNG BIỂN SỐ XE MÁY


4.1 Mô hình tổng quát nhận dạng biển số xe máy
Mục đích của đề tài xây dựng một chương trình đọc biển số xe tạo một vị trí cố
định, ví dụ lối vào của khu vực bãi đậu xe, hệ thống xây dựng dựa vào một máy tính
PC thông thường có giao tiếp với một máy ghi hình (camera hay webcam) nhằm đáp
ứng trạng thái chụp ảnh, hay một máy ảnh được chụp từ máy ảnh, để tạo ra một ảnh
(ảnh gốc) được đưa vào máy tính PC. Từ những hình ảnh thu được có chứa biển số xe
thì phần mền sẽ tự xử lý và kết quả đưa ra biển số xe. Một khi biển số xe được phát hiện
(nhận dạng), các chữ số của nó được đọc và xuất ra trên giao diện người dung và đối
chiếu lại cơ sở dữ liệu.
Quá trình nhận dạng biển số xe từ ảnh thu được thực hiện theo từng giai đoạn
khác nhau, có thể tóm tắt theo sơ đồ khối như sau:

Hình 4. 1: Sơ đồ hệ thống nhận dạng biển số xe máy


Trích vùng biển số: khối này có chức năng tách biển số từ ảnh chụp bằng các
phương pháp xử lý ảnh. Kết quả của nó là ảnh biển số cắt ra từ ảnh chụp. Đây là một
công việc rất khó khăn vì ta không biết được vị trí chính xác của biển số. Ngoài ra còn
phụ thuộc vào độ sáng ảnh chụp.
Tách kí tự: sau khi trích biển số, chúng ta bắt đầu phân đoạn kí tự. Khối này thực
hiện tách kí tự có trong biển số, tạo thành tập ảnh riêng biệt các ký tự phục vụ việc nhận
dạng kí tự. Ảnh của lỗi kí tự là ảnh trắng đen.
Nhận dạng kí tự: sau khi phân đoạn, tách được ký tự trong biển số và tạo thành
một chuỗi ký tự. Chuỗi này đưa vào khối nhận dạng để tiến hành nhận dạng từng ký tự.
Sau khi nhận dạng ký tự, hệ thống sẽ hiển thị thông báo trên giao diện của máy
tính quản lý hệ thống, đồng thời lưu lại dữ liệu vừa nhận được.
4.2 Ảnh đầu vào
Ảnh được chụp là ảnh chụp phía sau xe chứa một phần xe và ảnh biển số.
Ảnh biển số trong phạm vi của đề tài này xử lý là mô phỏng các ký tự tự tạo.

Chương 4: Hệ Thống Nhận Dạng Biển Số Xe Máy


Báo Cáo Đồ Án Tốt Nghiệp Trang 53

4.3 Tiền xử lý
Ảnh chụp vào thường là ảnh màu, ta tiến hành chuyển ảnh màu thành ảnh xám,
tiếp tục nhị phân hóa thành ảnh trắng đen, sau đó tiến hành trích vùng biển số dựa vào
các vùng liên thông.
Việc xác định ngưỡng sáng rất quan trọng nó quyết định đến khả năng chọn đúng
vùng biển số. Chọn chính xác vùng biển số thật sự rất khó ta chỉ có thể xác định chính
xác trong một khoảng nào đó. Thông qua lược đồ xám ta nhận thấy vùng biển số thường
sẽ có độ sáng tương đối lớn, vì vậy ta sẽ xác định lược đồ xám lớn nhất trong khoảng
này và ngưỡng xám cần chọn sẽ thuộc vùng này nhờ nó ta sẽ giảm được thời gian lặp
tìm ngưỡng xám. Kết quả này có được nhờ vào quá trình khảo sát thống kê trên nhiều
ảnh và đây là kết quả tối ưu nhất mà ta có thể tìm được.
Ảnh nhị phân là ảnh mà giá trị các điểm ảnh chỉ có hai giá trị 0 và 1 (trắng và
đen). Để chuyển từ ảnh xám về ảnh nhị phân ta đặt một ngưỡng thích hợp để so sánh.
Mức xám của ảnh sẽ được dùng để so sánh với giá trị ngưỡng này.
0, 𝑢 < 𝑛
Biếu thức f(u) = {
1, 𝑥 ≥ 𝑛

Hình 4. 2: Quá trình tiền xử lý


4.3 Phân vùng ảnh và tách biển số
4.3.1 Phân vùng ảnh
Phân vùng ảnh là bước then chốt trong xử lý ảnh. Giai đoạn này nhằm phân tích
ảnh thành những thành phần có cùng tính chất nào đó dựa theo biên hay các vùng liên
thông có thể là cùng mức xám, cùng màu,…

Chương 4: Hệ Thống Nhận Dạng Biển Số Xe Máy


Báo Cáo Đồ Án Tốt Nghiệp Trang 54

Nếu phân vùng dựa trên các vùng liên thông ta gọi là kỹ thuật phân vùng miền
đồng nhất. Nếu ta phân vùng dựa theo biên gọi là kỹ thuật phân vùng biên. Ngoài ra
còn có các kỹ thuật khác như phân vùng dựa theo biên độ, phân vùng dựa theo kết cấu.
Để phân tích các đối tượng trong ảnh, chúng ta cần phải phân biệt được các đối
tượng cần quan tâm với phần còn lại của ảnh. Những đối tượng này có thể tìm được nhờ
các kỹ thuật phân đoạn ảnh, theo nghĩa tách phần tiền ảnh ra hậu ảnh.
Có thể hiểu phân vùng là tiến trình chia ảnh thành nhiều vùng, mỗi vùng chứa
một đối tượng có thể biểu diễn một hai từ đoạn thẳng tiếp xúc nhau. Ta có phương pháp
phân vùng ảnh như sau:
Thuật toán gán nhãn thành phần liên thông:
Kỹ thuật này gán cho mỗi thành phần liên thông của ảnh nhị phân một nhãn riêng
biệt. Nhãn thường là các số tự nhiên bắt đầu từ một đến tổng số các thành phần liên
thông có trong ảnh. Giải thuật quét ảnh từ trái sang phải và từ trên xuống dưới.
Trong dòng thữ nhất của các pixel, một nhãn duy nhất được gán cho mỗi đường
chạy liên tục pixel đen. Với mỗi pixel đen của các dòng tiếp theo, các pixel lân cận trên
dòng trước và pixel bên trái được xem xét. Nếu bất kì pixel lân cận nào được gán nhãn,
nhãn tương tự được gán cho pixel đen hiện thời, ngược lại nhãn tiếp theo chưa được sử
dụng được chọn, thủ tục này tiếp tục cho tới dòng cuối của ảnh.
Ảnh được nhận về là ảnh nhị phân, trong đó có nhiều đối tượng khác nhau ta tiến
hành chọn ra đối tượng nào là biển số còn đối tượng nào không phải là biển số. Dựa vào
thuật toán gán nhãn liên tiếp các đối tượng cụ thể như sau:
Thuật toán phân vùng ảnh dựa trên kỹ thuật đánh nhãn liên tiếp:
 Mặt nạ ảnh với 4 điểm lân cận
 Mặt nạ ảnh với 8 điểm lân cận
 Mặt nạ ảnh với 4 điểm lân cận và 8 điểm lân cận
Quy ước khi quét ảnh:
 Nếu điểm ảnh có giá trị là 0 thì gọi là điểm ảnh nền
 Nếu điểm ảnh có giá trị là 1 thì gọi là điểm ảnh nổi
 Ta chỉ đánh nhãn các điểm ảnh nổi
4.3.2 Trích vùng biển số
Trích ra các đối tượng đem so sánh với điều kiện cụ thể của biển số xe về chiều
cao, chiều rộng, tỉ lệ các cạnh, diện tích, trọng tâm,… để thu về vùng biển số.
Dựa vào các thực nghiệm ta thấy chỉ có cùng biển số mới thỏa điều kiện tích nhất
định, cong những vùng khác sẽ nhỏ hơn, nhưng trong điều kiện ánh sáng quá chói việc

Chương 4: Hệ Thống Nhận Dạng Biển Số Xe Máy


Báo Cáo Đồ Án Tốt Nghiệp Trang 55

xác định ngưỡng xám không chính xác sẽ dẫn đến có nhiều vùng có diện tích thỏa điều
kiện đưa ra, dẫn đến nhận dạng sai, hoặc không cắt được chính xác vùng biến số, đây
cũng là mặt hạn chế của đồ án.
4.4 Phân đoạn biển số
Nhị phân biển số xe là bước quan trọng để nhận dạng biển số xe. Bước này sẽ
tìm mức ngưỡng tối ưu, sau đó tiến hành nhị phân hóa ảnh với ngưỡng vừa tìm được
(nhằm làm tăng độ tương phản của ký tự với nền biển số).

Hình 4. 3: Nhị phân biển số xe


Biển số được chuẩn hóa về kích thước [240 NaN], sau đó được lấy bù, sau đó
chuẩn hóa về hai ảnh có kích thước [120 NaN] để tìm kí tự.

Hình 4. 4: Chuẩn hóa và tìm ký tự


4.5 Nhận dạng biển số
4.5.1 Tạo mẫu ký tự
Nhận dạng các ký tự có trong ảnh đối tượng. Mô hình nhận dạng biển số xe, dựa
vào phương pháp đối sánh mẫu dựa trên đặc trưng.
Xây dựng các mẫu vào các lớp khác nhau, sau đó gán cho các lớp này.
Trích chọn đặc trưng: Đây là bước biểu diễn các mẫu bằng các đặc trưng của
đối tượng. Trong quá trình, số liệu ảnh sẽ được thu gọn lại, điều này hết sức cần thiết
cho việc tiết kiệm bộ nhớ trong việc lưu trữ và thời gian tính toán. Một phương pháp
trích chọn đặc trưng tốt nếu như nó trích chọn các đặc trưng của đối tượng mà các đặc
trưng đó sẽ giúp cho việc phân biệt được các lớp mẫu khác nhau, đồng thời nó cũng

Chương 4: Hệ Thống Nhận Dạng Biển Số Xe Máy


Báo Cáo Đồ Án Tốt Nghiệp Trang 56

biến đổi được các thuộc tính cố hữu của đối tượng hay do các thiết bị thu nhận ảnh tạo
ra.
Việc chọn các đối tượng đặc trưng của đối tượng là việc lựa chọn ra các yếu tố
hình học. Sự biến đổi từng yếu tố riêng có thể làm thay đổi trật tự các đại lượng, điều
này có thể làm ảnh hưởng đến việc phân lớp. Vấn đề này thường được giải quyết bằng
một phép biến đổi tuyến tính thích hợp với các thành phần của vector đặc trưng.
Qua thực nghiệm đã cắt ra từng ký tự của biển số và cho ra kích thước ảnh chuẩn
của một ký tự là 24x42. Tiến hành lấy tất cả 15 mẫu ký tự thường được dùng trong biển
số xe và 10 mẫu ký tự số. Tổng cổng có 24 mẫu ký tự (24x42) được lưu vào trong hai
ma trận mẫu “kytu” va “kyso”. Màu đen tương ứng với bit 0, màu trắng tương ứng với
bit 1, như hình 4.5.

Hình 4. 5: Mẫu ký tự số 1

Chương 4: Hệ Thống Nhận Dạng Biển Số Xe Máy


Báo Cáo Đồ Án Tốt Nghiệp Trang 57

Hình 4. 6: Thuật toán tạo mẫu ký tự


4.5.2 Nhận dạng ký tự bằng phương pháp tương quan
Các ký tự sau khi đã cách ly ta mang chúng phân thành các lớp giống như cách
tạo ra các lớp mẫu. Như vậy, ta lựa chọn các lớp ký tự này so sánh lần lượt với các lớp
có trong mẫu. Kết quả của mỗi lần so sánh tìm ra hệ số tương quan sau đó tiến hành lưu
chúng cùng các lớp khác. Sau khi hoàn tất xong ta tiếp tục chọn trong các lớp xem lớp
nào có hệ số tương quan lớn nhất, lớp này có tên gì tương ứng với ký tự nào ta xuất ra
màn hình ký tự đó.
Phương pháp này đòi hỏi cần phải có hai ảnh cùng kích thước.
Thuật toán so sánh mẫu:
 Chuẩn hóa ảnh ký tự vừa cắt ra về kích thước 24x42.
 Dùng công thức tính hệ số tương quan để tính lần lượt với các mẫu.
 Lưu các kết quả vừa tìm được vào trong một lớp.
 Tìm hệ số tương quan gần bằng 1 nhất trong lớp.
 Xuất ra ký tự tương ứng với lớp đó.

Chương 4: Hệ Thống Nhận Dạng Biển Số Xe Máy


Báo Cáo Đồ Án Tốt Nghiệp Trang 58

Hình 4. 7: Thuật toán so sánh mẫu và xuất ký tự


Công thức xác định hệ số tương quan:
∑𝑚 ∑𝑛(𝐴𝑚𝑛−𝐴′)(𝐵𝑚𝑛−𝐵′)
𝑟= (4.1)
√(∑𝑚 ∑𝑛(𝐴𝑚𝑛−𝐴′)2 (∑𝑚 ∑𝑛(𝐵𝑚𝑛−𝐵′)2 )

Trong đó: Amn là giá trị pixel tại cột m và hàng n


Bmn là giá trị pixel tại cột m và hàng n
A’ và B’ là giá trị trung bình của ma trận A và B.
Ma trận A và B giống nhau khi và chỉ khi r = 1.

Chương 4: Hệ Thống Nhận Dạng Biển Số Xe Máy


Báo Cáo Đồ Án Tốt Nghiệp Trang 59

Ví dụ: Gọi A là ma trận ảnh chứa ký tự cần nhận dạng là số 1, B là ma trận mẫu số 1,
C là ma trận mẫu số 2.

Hình 4. 8: Mẫu ký tự số 1, 2 (42 hàng, 24 cột)


Kết quả hệ số tương quan giữa ma trận A với B và A với C:
Corr2(A,B) = 1
Corr2(A,C) = 0.3677
Suy ra A và B là 2 ảnh giống nhau, khi đó dựa vào ma trận mẫu là B là ký tự nào
thì xuất ký tự đó ra. Hoàn tất quá trình nhận dạng.

Chương 4: Hệ Thống Nhận Dạng Biển Số Xe Máy


Báo Cáo Đồ Án Tốt Nghiệp Trang 60

Chương 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ


5.1 Kết quả thực hiện
Sau quá trình thiết kế và thi công nhóm đã hoàn thành được mô hình và giao diện
quản lý hệ thống trên PC.

Hình 5. 1: Giao diện trên PC và mô hình hệ thống


Và sau khi đã có mô hình và hệ thống, ta sẽ nói về hoạt động và chức năng của
hệ thống có thể làm được:

Hình 5. 2: Giao diện khi mới khởi động

Chương 5: Kết Quả - Nhận Xét - Đánh Giá


Báo Cáo Đồ Án Tốt Nghiệp Trang 61

Ở giao diện mới khởi động này thì sẽ không có thông tin nào của xe vì bãi xe
chưa hoạt động và chưa có xe trong bãi. Chỉ có 2 camera ngõ ra và ngõ vào hoạt động
bình thường thôi.
Tiếp theo, khi có xe vào hệ thống sẽ chụp ảnh của xe ở ngõ vào, phân tích xử lý
và đọc đúng biển số xe của khách hàng, đồng thời hiển thị lên dòng chữ “MỜI XE VÀO”
và lưu dữ liệu của xe (bao gồm: mã thẻ, biển số xe, thời gian xe vào) vào trong PC.

Hình 5. 3: Giao diện khi có xe vào


Khi có xe ra, hệ thống sẽ chụp ảnh của xe ra, đọc lại biển số của khách hàng, sau
đó truy xuất lại dữ liệu tương ứng với mã thẻ, so sánh có đúng với biển số xe hay không,
nếu đúng thì mở servo cho xe ra, hiển thị trên màn hình LCD dòng chữ “MỜI XE RA”,
“TẠM BIỆT QUÝ KHÁCH, THƯỢNG LÔ BÌNH AN”.

Chương 5: Kết Quả - Nhận Xét - Đánh Giá


Báo Cáo Đồ Án Tốt Nghiệp Trang 62

Hình 5. 4: Giao diện khi có xe ra


Trường hợp khi quẹt thẻ, biển số xe ra không giống với dữ liệu ban đầu khi xe
vào thì servo sẽ không mở, giữ xe của khách hàng lại và hiển thị dòng chữ “KHÔNG
HỢP LỆ”, sau đó chờ nhân viên tới xử lý.

Hình 5. 5: Giao diện khi xe ra không hợp lệ


5.2 Nhận xét – Đánh giá
Sau khi hoàn thiện ta tiến hành chạy thử toàn bộ hệ thống để kiểm tra độ ổn định,
cũng như tính chính xác và độ trễ khi điều khiển của hệ thống. Sau quá trình thực nghiệm
thì cho thấy hệ thống khi sử dụng một thời gian dài thì mạch điều khiển vẫn chưa ổn
định, có thời gian trễ và dễ bị nhiễu.

Chương 5: Kết Quả - Nhận Xét - Đánh Giá


Báo Cáo Đồ Án Tốt Nghiệp Trang 63

Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN


6.1 Kết luận
Sau thời gian thực hiện đề tài đến nay nhóm đã hoàn thành được các yêu cầu đề
ra, đã thiết kế và thi công thành công mô hình bãi giữ xe ứng dụng công nghệ RFID và
xử lý ảnh, nhận dạng biển số xe trên phần mềm matlab, có giao diện quản lý với những
phương pháp và chức năng như sau:
 Lập trình Arduino để đọc dữ liệu từ RFID, nhận dữ liệu về để hiển thị LCD và
điều khiển động cơ Servo cho xe ra vào.
 Sử dụng các chuẩn và phương thức giao tiếp thường gặp là UART.
 Sử dụng các thuật toán xử lý ảnh để xử lý, tách và nhận dạng biển số.
 Ứng dụng công nghệ RFID để đọc và ghi hình ảnh, biển số xe trước và sau khi
tách biển số.
 Điều khiển động cơ servo để mở thanh barie cho xe ra vào.
 Ứng dụng phần mểm hỗ trợ xử lý ảnh là matlab.
Tuy nhiên do kiến thức còn hạn hẹp nên không thể tránh khỏi những thiếu xót và
nhóm vẫn còn hạn chế về phần thời gian trễ khi quẹt thẻ RFID. (cách vận hành hệ thống
nhóm sẽ nêu kỹ trong phần phụ lục 2).
Một số ưu điểm của hệ thống:
 Giải quyết cơ bản về vấn đề kẹt xe, mất vé gửi xe, đánh tráo thẻ xe trong các bãi
xe truyền thống trước đó.
 Giảm rất nhiều thời gian, các khoản chi phí thuê nhân viên quản lý, bảo vệ, thu
về được lợi nhuận cao hơn.
 Khả năng đọc và ghi lại được dữ liệu nhiều lần. (khi khách hàng trả thẻ và lấy xe
ra khỏi bãi có thẻ tái sử dụng lại thẻ với khách hàng mới).
 Thẻ RFID rất bền, có thể hoạt động tốt trong các môi trường không thuận lợi như
nóng, ẩm, bụi bẩn, ăn mòn, hay có sự va chạm,… tạo được độ tin cậy cao khi sử
dụng.
 Lưu trữ, kiểm soát được các đội tượng (thông tin của khách hàng) mà không cần
phải sắp xếp.
Một số nhược điểm của hệ thống:
 Chi phí triển khai cao hơn các bãi xe truyền thống trước đó.
 Thẻ RFID dễ bị nhiễu sóng trong môi trường nước và kim loại.
 Thời gian trễ còn khá lớn (khoảng 2 – 3s), còn trong thực tế các bãi xe lớn thì
thời gian trễ rất nhỏ. Vì ở đây là mô hình nên nhóm sử dụng thẻ RFID RC-522
chứ không phải đầu đọc chuyên dụng.

Chương 6: Kết Luận Và Hướng Phát Triển


Báo Cáo Đồ Án Tốt Nghiệp Trang 64

6.2 Hướng phát triển


Để mô hình có thể phát triển trong tương lai nhóm có một số phương án đề xuất
sau:
 Tích hợp thêm nhiều cảm biến để nâng tính ổn định và đảm bảo cho hệ thống.
 Lập trình thêm chức năng nhận dạng người lái xe cho hệ thống, tăng cường thêm
tính bảo mật.
 Kết hợp thêm các tấm pin năng lượng mặt trời đặt ở bãi xe, hướng tới mục tiêu
sử dụng nguồn năng lượng sạch và tiết kiệm.
 Upload dữ liệu lên cloud để tránh trường hợp bị mất điện hay hệ thống xảy ra sự
cố ngoài ý muốn.

Chương 6: Kết Luận Và Hướng Phát Triển


Báo Cáo Đồ Án Tốt Nghiệp Trang 65

TÀI LIỆU THAM KHẢO


Sách:
[1] Giáo trình “Xử lý ảnh – Nguyễn Thanh Hải” – Đại học Sư Phạm Kỹ Thuật
Tp.HCM
[2] Giáo trình “Công nghệ nhận dạng vô tuyến RFID – Nguyễn Văn Hiệp” – Đại học
Sư Phạm Kỹ Thuật Tp.HCM
[3] Giáo trình “Matlab – Phan Thanh Tao” – Đại học Đà Nẵng
[4] Đồ án tốt nghiệp “Thiết kế, thi công mô hình bãi giữ xe ô tô – Nguyễn Lưu Trọng
Đông, Nguyễn Thanh Huy” – Đại học Sư Phạm Kỹ Thuật Tp.HCM
[5] Đồ án tốt nghiệp “Hệ thống bãi giữ xe thông minh ứng dụng công nghệ IoT và
RFID – Nguyễn Thanh Bình, Đoàn Nguyễn Như Bảo” – Đại học Sư Phạm Kỹ
Thuật Tp.HCM
Website:
[1] https://www.fecegypt.com/uploads/dataSheet/1522237550_arduino%20uno%20
r3.pdf
[2] https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf
[3] https://www.vishay.com/docs/37314/lcd020n004l.pdf
[4] http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf
[5] http://arduino.vn/
[6] https://ww2.mathworks.cn/en/
[7] Mạnh Tùng, “4 bãi giữ xe thông minh được đề xuất xây ở Sài Gòn” VNExpress
mục Giao thông, 30/3/2017.

Tài Liệu Tham Khảo


Báo Cáo Đồ Án Tốt Nghiệp Trang 66

PHỤ LỤC 1: CHƯƠNG TRÌNH


1. Code Arduino
#include <SPI.h> void loop()
#include <MFRC522.h> { sv='0';
if ( mfrc522.PICC_IsNewCardPresent())
#define SS_PIN 10 {
#define RST_PIN 9 if ( mfrc522.PICC_ReadCardSerial())
MFRC522 mfrc522(SS_PIN, RST_PIN); {
char sv; for (byte i = 0; i <mfrc522.uid.size; i++)
void setup() {
{
Serial.begin(9600); Serial.print(mfrc522.uid.uidByte[i]);

SPI.begin(); }

while (! Serial); }
mfrc522.PCD_Init(); }

} }

2. Code Matlab
function varargout = vidu14(varargin) % existing singleton*. Starting from
% VIDU14 MATLAB code for vidu14.fig the left, property value pairs are
% VIDU14, by itself, creates a new % applied to the GUI before
VIDU14 or raises the existing vidu14_OpeningFcn gets called. An
% singleton*. % unrecognized property name or
% invalid value makes property application
% H = VIDU14 returns the handle to a % stop. All inputs are passed to
new VIDU14 or the handle to vidu14_OpeningFcn via varargin.
% the existing singleton*. %
% % *See GUI Options on GUIDE's
% Tools menu. Choose "GUI allows only
VIDU14('CALLBACK',hObject,eventDat one
a,handles,...) calls the local % instance to run (singleton)".
% function named CALLBACK in %
VIDU14.M with the given input % See also: GUIDE, GUIDATA,
arguments. GUIHANDLES
%
% VIDU14('Property','Value',...) % Edit the above text to modify the
creates a new VIDU14 or raises the response to help vidu14

Phụ Lục
Báo Cáo Đồ Án Tốt Nghiệp Trang 67

vd1 =
% Last Modified by GUIDE v2.5 02-Jun- videoinput('winvideo',1,'YUY2_640x480')
2019 04:46:41 ;
vd1.FramesPerTrigger = 1;
% Begin initialization code - DO NOT vd1.ReturnedColorspace = 'rgb';
EDIT img = image (zeros(500,650,3), 'Parent',
gui_Singleton = 1; handles.axes1);
gui_State = struct('gui_Name', preview(vd1,img);
mfilename, ... vd2 =
'gui_Singleton', videoinput('winvideo',2,'YUY2_640x480')
gui_Singleton, ... ;
'gui_OpeningFcn', vd2.FramesPerTrigger = 1;
@vidu14_OpeningFcn, ... vd2.ReturnedColorspace = 'rgb';
'gui_OutputFcn', img1 = image (zeros(500,650,3), 'Parent',
@vidu14_OutputFcn, ... handles.axes3);
'gui_LayoutFcn', [] , ... preview(vd2,img1);
'gui_Callback', []);
if nargin && ischar(varargin{1}) delete(instrfind)
gui_State.gui_Callback = s = serial('com4');
str2func(varargin{1}); s.BytesAvailableFcnMode = 'Byte';
end s.BytesAvailableFcnCount = 10;
s.Timeout = 0.5;
if nargout s.InputBufferSize=10;
[varargout{1:nargout}] = s.BytesAvailableFcn
gui_mainfcn(gui_State, varargin{:}); ={@mycallback,handles};
else s1= serial('com5');
gui_mainfcn(gui_State, varargin{:}); s1.BytesAvailableFcnMode = 'Byte';
end s1.BytesAvailableFcnCount = 10;
% End initialization code - DO NOT s1.Timeout = 0.5;
EDIT s1.InputBufferSize=10;
s1.BytesAvailableFcn
% --- Executes just before vidu14 is made ={@mycallback,handles};
visible. s2 = serial('com3');
function vidu14_OpeningFcn(hObject, ~ , fopen(s);
handles, varargin) fopen(s1);
fopen(s2);
handles.output = hObject; % Update handles structure
global vd1 vd2 s s1 s2 ; guidata(hObject, handles);
global data table
table.TD = {}; % UIWAIT makes vidu14 wait for user
table.count = 0; response (see UIRESUME)
data.TD = {}; % uiwait(handles.figure1);
data.count = 0;
delete('EX_LichSuXeVaoRa.xlsx'); % --- Outputs from this function are
delete(instrfind) returned to the command line.

Phụ Lục
Báo Cáo Đồ Án Tốt Nghiệp Trang 68

function varargout = % handles structure with handles and


vidu14_OutputFcn(~, ~, handles) user data (see GUIDATA)
% varargout cell array for returning
output args (see VARARGOUT); function mycallback(hObject, eventdata ,
% hObject handle to figure handles)
% eventdata reserved - to be defined in a
future version of MATLAB global s s1 s2 card card1 table noPlate3
% handles structure with handles and data;
user data (see GUIDATA)
flushinput(s);
% Get default command line output from card=fscanf(s);
handles structure flushinput(s1);
card1=fscanf(s1);
varargout{1} = handles.output; if (card == "")
else
% --- Executes on button press in if (table.count==0)
pushbutton4. fprintf(s2,'1');
function pushbutton4_Callback(hObject, XulyXeVao(hObject, eventdata,
eventdata, handles) handles)
% hObject handle to pushbutton4 (see else
GCBO) for i=1:table.count
% eventdata reserved - to be defined in a if isequal(table.TD{i,1},card)
future version of MATLAB j=1;
% handles structure with handles and break;
user data (see GUIDATA) else
winopen('EX_LichSuXeVaoRa.xlsx'); j=0;
end;
% --- Executes on button press in end;
pushbutton5. if (j==0)
function pushbutton5_Callback(hObject, fprintf(s2,'1');
eventdata, handles) XulyXeVao(hObject, eventdata,
% hObject handle to pushbutton5 (see handles)
GCBO) end;
% eventdata reserved - to be defined in a end;
future version of MATLAB end;
% handles structure with handles and if (card1 == "")
user data (see GUIDATA) else
for i=1:table.count
% --- Executes on button press in if isequal(table.TD{i,1},card1)
pushbutton6. XulyXeRa(hObject, eventdata,
function pushbutton6_Callback(~, ~, handles)
handles) if
% hObject handle to pushbutton6 (see isequal(table.TD{i,2},noPlate3)
GCBO) fprintf(s2,'2')
% eventdata reserved - to be defined in a table.TD(i,:)=[];
future version of MATLAB table.count=table.count - 1;

Phụ Lục
Báo Cáo Đồ Án Tốt Nghiệp Trang 69

data.count=data.count +
1; Iprops=regionprops(im,'BoundingBox','Ar
t=datetime; ea', 'Image');
data.TD{data.count,1}='Ra'; area = Iprops.Area;
data.TD{data.count,2}=char(card1); count = numel(Iprops);
data.TD{data.count,3}=noPlate3; maxa= area;
data.TD{data.count,4}=char(t); boundingBox =
set(handles.uitable1,'Data',table.TD); Iprops.BoundingBox;
set(handles.text5,'String',' MOI XE for i=1:count
RA '); if maxa<Iprops(i).Area
set(handles.text6,'String',data.count); maxa=Iprops(i).Area;

set(handles.text7,'String',table.count); boundingBox=Iprops(i).BoundingBox;
end
xlswrite('EX_LichSuXeVaoRa.xlsx',data. end
TD);
break; boundingBox(1)=boundingBox(1)+15;
end; boundingBox(3)=boundingBox(3)-
else 20;
fprintf(s2,'3'); im = imcrop(imbin, boundingBox);
set(handles.text5,'String',' axes(handles.axes6);
KHONG HOP LE '); imshow(im);
end; img5 = imcrop(img, boundingBox);
end; axes(handles.axes5);
end; imshow(img5);
im = imresize(im, [240 NaN]);
function XulyXeVao(hObject, eventdata, im = imopen(im, strel('rectangle', [4
handles) 4]));
global vd1 noPlate2 im = bwareaopen(~im, 500);
[h, w] = size(im);
axes(handles.axes2);
img = getsnapshot(vd1); im1 = im(1:120,:);
imshow(img);
im2 = im(121:240,:);
im = imresize(img, [480 NaN]);
imgray = rgb2gray(im); Iprops=regionprops(im1,'BoundingBox','
imbin = imbinarize(imgray); Area', 'Image');
im = edge(imgray, 'sobel'); count = numel(Iprops);

im = imdilate(im, strel('diamond', noPlate=[]; % Initializing the


2)); variable of number plate string.
im = imfill(im, 'holes');
im = imerode(im, strel('diamond', for i=1:count
10)); ow = length(Iprops(i).Image(1,:));
oh = length(Iprops(i).Image(:,1));
if ow<(h/2) & oh>(h/3)

Phụ Lục
Báo Cáo Đồ Án Tốt Nghiệp Trang 70

letter=readLetter(Iprops(i).Image); im = edge(imgray, 'sobel');


% Reading the letter corresponding the
binary image 'N'. im = imdilate(im, strel('diamond',
noPlate=[noPlate letter]; % 2));
Appending every subsequent character in im = imfill(im, 'holes');
noPlate variable. im = imerode(im, strel('diamond',
end 10));
end

Iprops=regionprops(im2,'BoundingBox',' Iprops=regionprops(im,'BoundingBox','Ar
Area', 'Image'); ea', 'Image');
count = numel(Iprops); area = Iprops.Area;
count = numel(Iprops);
noPlate1=[]; % Initializing the maxa= area;
variable of number plate string. boundingBox =
Iprops.BoundingBox;
for i=1:count for i=1:count
ow = length(Iprops(i).Image(1,:)); if maxa<Iprops(i).Area
oh = length(Iprops(i).Image(:,1)); maxa=Iprops(i).Area;
if ow<(h/2) & oh>(h/3)
boundingBox=Iprops(i).BoundingBox;
letter=readLetter(Iprops(i).Image); % end
Reading the letter corresponding the end
binary image 'N'.
noPlate1=[noPlate1 letter]; % boundingBox(1)=boundingBox(1)+15;
Appending every subsequent character in boundingBox(3)=boundingBox(3)-
noPlate variable. 20;
end im = imcrop(imbin, boundingBox);
end axes(handles.axes8);
noPlate2=[noPlate '-' noPlate1] imshow(im);
set(handles.text3,'String',noPlate2); img5 = imcrop(img, boundingBox);
set(handles.text5,'String',' MOI XE axes(handles.axes7);
VAO '); imshow(img5);
WriteDataVao(handles); im = imresize(im, [240 NaN]);
im = imopen(im, strel('rectangle', [4
function XulyXeRa(hObject, eventdata, 4]));
handles) im = bwareaopen(~im, 500);
global vd2 noPlate3 [h, w] = size(im);

axes(handles.axes4); im1 = im(1:120,:);


img = getsnapshot(vd2);
imshow(img); im2 = im(121:240,:);

im = imresize(img, [480 NaN]); Iprops=regionprops(im1,'BoundingBox','


imgray = rgb2gray(im); Area', 'Image');
imbin = imbinarize(imgray); count = numel(Iprops);

Phụ Lục
Báo Cáo Đồ Án Tốt Nghiệp Trang 71

noPlate=[]; % Initializing the


variable of number plate string. function WriteDataVao(handles)
global data card noPlate2 table
for i=1:count
ow = length(Iprops(i).Image(1,:)); t=datetime;
oh = length(Iprops(i).Image(:,1));
if ow<(h/2) & oh>(h/3) table.count=table.count +1;
letter=readLetter(Iprops(i).Image); table.TD{table.count,1}=card;
% Reading the letter corresponding the table.TD{table.count,2}=noPlate2;
binary image 'N'. table.TD{table.count,3}=char(t);
noPlate=[noPlate letter]; % data.count=data.count +1;
Appending every subsequent character in data.TD{data.count,1}='Vao';
noPlate variable. data.TD{data.count,2}=char(card);
end data.TD{data.count,3}=noPlate2;
end data.TD{data.count,4}=char(t);

Iprops=regionprops(im2,'BoundingBox',' set(handles.uitable1,'Data',table.TD);
Area', 'Image');
count = numel(Iprops); set(handles.text6,'String',data.count);

noPlate1=[]; % Initializing the set(handles.text7,'String',table.count);


variable of number plate string.
xlswrite('EX_LichSuXeVaoRa.xlsx',data.
for i=1:count TD);
ow = length(Iprops(i).Image(1,:));
oh = length(Iprops(i).Image(:,1)); function WriteDataRa(handles)
if ow<(h/2) & oh>(h/3) global data card1 noPlate3 table

letter=readLetter(Iprops(i).Image); % data.count=data.count + 1;
Reading the letter corresponding the t=datetime;
binary image 'N'. data.TD{data.count,1}='Ra';
noPlate1=[noPlate1 letter]; % data.TD{data.count,2}=char(card1);
Appending every subsequent character in data.TD{data.count,3}=noPlate3;
noPlate variable. data.TD{data.count,4}=char(t);
end set(handles.uitable1,'Data',table.TD);
end
noPlate3=[noPlate '-' noPlate1] xlswrite('EX_LichSuXeVaoRa.xlsx',data.
set(handles.text4,'String',noPlate3); TD);

Phụ Lục
Báo Cáo Đồ Án Tốt Nghiệp Trang 72

PHỤ LỤC 2: CÁCH VẬN HÀNH HỆ THỐNG


Để hệ thống vận hành cách hiệu quả, ta cần thực hiện lần lượt các bước sau đây:
 Cấp nguồn cho mô hình, kết nối và thiết lập camera.
 Kết nối thành công camera, giao diện quản lý sẽ hiện ra với 2 camera tương
ứng với camera ngõ vào và ngõ ra.
 Khi có xe vào, ta sẽ quẹt thẻ RFID ở vị trí xe vào, camera sẽ chụp lại ảnh biển
số xe, tách biển số và lưu vào cơ sở dữ liệu của PC. Servo mở ra cho xe vào,
thông tin được hiển thị trên màn hình LCD và giao diện quản lý.
 Khi có xe ra, ta sẽ quẹt thẻ RFID ở vị trí xe ra, camera sẽ chụp lại ảnh biển số
xe, tách biển số và so sánh với biển số lúc xe vào, đúng thì servo mở cho xe ra,
thông tin được hiển thị trên màn hình LCD và giao diện quản lý.
 Khi có trường hợp đặc biệt xảy ra như mất thẻ xe, so sánh biển số không trùng
khớp thì sẽ có nhân viên xử lý.

Phụ Lục

You might also like