Upload
nhim-dang
View
64
Download
10
Embed Size (px)
DESCRIPTION
cho SV Toan Tin
Citation preview
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
1
Công ty TNHH Mã Nguồn IT (manguonit.com).
I. Liên hệ
- Mobile: 0976-805.818 - Email: [email protected]
II. Thông tin tài khoản Ngân hàng
Quý khách vui lòng thanh toán sản phẩm của mình bằng hình thức chuyển
khoản một trong các ngân hàng sau:
1. Ngân hàng TMCP Công Thƣơng Việt Nam (VietinBank)
- Chủ tài khoản: Phạm Tất Thành
- Số tài khoản: 711A73808804
- Chi nhánh: Hà Nam
2. Ngân hàng đầu tƣ và phát triển Việt Nam (BIDV)
- Chủ tài khoản: Phạm Tất Thành
- Số tài khoản: 48210000206014
- Chi nhánh: Hà Nam
3. Ngân hàng Ngoại Thƣơng Việt Nam (Vietcombank)
- Chủ tài khoản: Phạm Tất Thành
- Số tài khoản: 0301002824093
- Chi nhánh: Hà Nam
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
2
MỤC LỤC
DANH MỤC HÌNH................................................................................................................. 4
TÓM TẮT ................................................................................................................................ 6
CHƢƠNG I. TỔNG QUAN ................................................................................................... 7
I.1 Sự cần thiết của hệ thống giữ xe thông minh .................................................... 7
I.2 Mục tiêu nghiên cứu .......................................................................................... 7
I.3 Phạm vi đề tài .................................................................................................... 8
CHƢƠNG II. CƠ SỞ LÝ THUYẾT ................................................................................... 9
II.1 Thuật toán mã hoá AES (Advanced Encryption Standard)............................... 9
II.2 Thuật toán mã hoá MD5 .................................................................................... 9
II.3 Đặc trƣng Haar-like ........................................................................................... 9
II.4 Máy học vectơ hỗ trợ - Support vector Machine (SVM) ................................ 11
II.5 Nhận dạng bằng giải thuật Cascade of Classifiers trong openCV .................. 14
II.6 Giới thiệu về Barcode ...................................................................................... 16
II.7 Biểu thức chính quy (Regular Expression) ..................................................... 17
II.8 Các công cụ hỗ trợ ........................................................................................... 17
II.8.1. VB.NET ...................................................................................................... 17
II.8.2. EmguCV [1] .............................................................................................. 18
II.8.3. DevExpress [2] ........................................................................................... 19
II.8.4. InstallShield [3] .......................................................................................... 19
II.8.5. Microsoft SQL Server 2008 ....................................................................... 19
II.8.6. LibSVM [4] ................................................................................................ 20
CHƢƠNG III. XÂY DỰNG GIẢI THUẬT NHẬN DẠNG BIỂN SỐ ............................. 21
III.1 Quy trình tổng thể............................................................................................ 21
III.2 Định vị biển số xe ............................................................................................ 23
III.3 Định vị ký tự .................................................................................................... 27
III.4 Nhận dạng ký tự .............................................................................................. 29
CHƢƠNG IV. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ............................................... 34
IV.1 Thực trạng ....................................................................................................... 34
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
3
IV.2 Mô hình CDM ................................................................................................. 35
IV.3 Lƣu đồ dòng dữ liệu ........................................................................................ 36
IV.4 Mô hình CSDL ................................................................................................ 37
IV.5 Mô hình thiết kế tổng thể của hệ thống ........................................................... 39
IV.6 Thiết kế thẻ xe ................................................................................................. 40
IV.7 Thiết kế giao diện chính của chƣơng trình ...................................................... 41
IV.8 Mô hình triển khai ........................................................................................... 43
CHƢƠNG V. KẾT QUẢ THỰC NGHIỆM...................................................................... 45
V.1 Đánh giá độ chính xác của các mô hình .......................................................... 45
V.2 Giới thiệu giao diện và chức năng của phần mềm .......................................... 46
VI.2.1. Chức năng đăng nhập ................................................................................ 46
VI.2.2. Chức năng chọn Database ......................................................................... 47
VI.2.3. Chức năng chính ........................................................................................ 49
VI.2.4. Chức năng chọn Camera ........................................................................... 51
VI.2.5. Chức năng đổi mật khẩu ............................................................................ 51
VI.2.6. Chức năng tìm kiếm .................................................................................. 52
VI.2.7. Chức năng thống kê ................................................................................... 53
VI.2.8. Chức năng Admin...................................................................................... 54
VI.2.9. Phân phối chƣơng trình ............................................................................. 59
CHƢƠNG VI. KẾT LUẬN ................................................................................................ 60
PHỤ LỤC .............................................................................................................................. 61
[a] Phần mềm Object Locator ............................................................................................... 61
[b] Phần mềm tách ký tự ....................................................................................................... 62
[c] Phần mềm Img2bin .......................................................................................................... 62
TÀI LIỆU THAM KHẢO ..................................................................................................... 64
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
4
DANH MỤC HÌNH
Hình II-1: Đặc trƣng cạnh ..................................................................................... 10
Hình II-2: Đặc trƣng đƣờng .................................................................................. 10
Hình II-3: Đặc trƣng xung quanh tâm và đặc trƣng đƣờng chéo .......................... 10
Hình II-4: phân lớp các điểm trong mặt phẳng ..................................................... 11
Hình II-5: chữ K đƣợc tách từ biển số và chuyển thành ảnh nhị phân ................. 12
Hình II-6: các siêu phẳng a,b,c tạo thành các phân lớp yếu ................................. 12
Hình II-7: các siêu phẳng c,d,e,f,g,h tạo thành các phân lớp yếu ......................... 13
Hình II-8: tập hợp các phân lớp yếu trở thành phân lớp mạnh ............................. 14
Hình II-9: một ví dụ về Barcode chuẩn Code-128................................................ 16
Hình II-10: một ví dụ khác về QR code................................................................ 16
Hình III-1: Bƣớc 1 - định vị biển số xe................................................................. 21
Hình III-2: Bƣớc 2 - định vị ký tự......................................................................... 22
Hình III-3: Bƣớc 3 - nhận dạng ký tự ................................................................... 22
Hình III-4: Minh hoạ các tham số x,y,w,h ............................................................ 24
Hình III-5: Chuyển ký tự thành ma trận nhị phân 20x48 ..................................... 30
Hình III-6: Các góc xoay của 1 ký tự ................................................................... 32
Hình III-7: quá trình huấn luyện nhận dạng SVM ................................................ 32
Hình III-8: Kiểm thử 3-fold .................................................................................. 33
Hình IV-1: Sơ đồ dfd cấp 0 ................................................................................... 36
Hình IV-2: Sơ đồ DFD cấp 1 ................................................................................ 36
Hình IV-3: Mô hình CSDL ................................................................................... 37
Hình IV-4: Hình mô tả tổng thể ............................................................................ 39
Hình IV-5: Mặt trƣớc thẻ xe ................................................................................. 40
Hình IV-6: Mặt sau thẻ xe .................................................................................... 40
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
5
Hình IV-7: giao diện chính của chƣơng trình khi thiết kế 4 ImageBox ............... 41
Hình IV-8: giao diện chính của chƣơng trình khi thiết kế 6 ImageBox ............... 41
Hình IV-9: giao diện chính của chƣơng trình khi thiết kế 4 ImageBox ............... 42
Hình IV-10: sơ đồ bố trí bãi giữ xe ....................................................................... 43
Hình V-1: Giao diện chức năng Đăng nhập.......................................................... 46
Hình V-2: Giao diện phục hồi mật khẩu ............................................................... 46
Hình V-3: Giao diện chức năng khi chọn phƣơng thức Nhập thủ công ............... 47
Hình V-4: Giao diện chức năng khi chọn phƣơng thức nhập chuỗi kết nối ......... 48
Hình V-5: Giao diện chức năng chính .................................................................. 49
Hình V-6: Menu của Form chính .......................................................................... 50
Hình V-7: Giao diện Form chọn Camera.............................................................. 51
Hình V-8: Giao diện chức năng đổi mật khẩu ...................................................... 51
Hình V-9: Giao diện chức năng tìm kiếm ............................................................. 52
Hình V-10: Giao diện chức năng thống kê ........................................................... 53
Hình V-11: Giao diện Tab Danh sách nhân viên .................................................. 54
Hình V-12: Giao diện Tab chấm công .................................................................. 55
Hình V-13: Giao diện Tab bảng giá ...................................................................... 56
Hình V-14: giao diện tab in thẻ xe ........................................................................ 57
Hình V-15: giao diện in thẻ nhân viên .................................................................. 58
Hình V-16:Giao diện cài đặt tƣơng tự nhƣ các chƣơng trình khác ...................... 59
Hình VI-1: Giao diện chƣơng trình....................................................................... 61
Hình VI-2:Giao diện phần mềm Img2bin ............................................................. 62
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
6
TÓM TẮT
Hệ thống hỗ trợ giữ xe thông minh (IPSS) là hệ thống kết hợp kỹ thuật nhận dạng
HaarCascade và SVM nhằm nhận dạng biển số tự động, nhận dạng mã vạch, và nhận
dạng bán tự động qua các camera quan sát.
Khi xe vào-ra: Hệ thống sẽ nhận dạng và so khớp biển số (tự động), quét và so
khớp mã vạch (tự động), đồng thời nhân viên sẽ đối chiếu hình ảnh ngƣời gửi xe và
biển số xe đã lƣu trong hệ thống với hình ảnh hiện tại.
Kết quả kiểm thử độ chính xác của giải thuật (trung bình từ 3 lần chạy):
Định vị biển số đạt 100% (train: 750 ảnh, test: 243 ảnh)
Định vị ký tự đạt 88.56% (train: 3554 ảnh, test: 3927 ảnh)
Phân loại ký tự bằng SVM đạt 97.68% (train: 1606, test: 1295)
ABSTRACT
The Intelligent System Support Parking (IPSS) is combined system use
HaarCascade and SVM identification techniques to automatic recognition number
plate, barcode, and semi-automatic identification via camera.
When the motobike in/out: The system will identify and matching license plate,
barcode (auto), and staff will compare images captured and number plate saved in the
system with the current images.
The results of the testing algorithm accuracy (average of 3 runs):
Positioning plate to achieve 100% (train 750 photos, test: 243 photos)
Positioning of characters reached 88.56% (train: 3554 photos, test: 3927
images)
Classification by SVM characters reached 97.68% (train: 1606, Test:
1295)
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
7
CHƢƠNG I. TỔNG QUAN
I.1 Sự cần thiết của hệ thống giữ xe thông minh
Hiện nay các trung tâm mua sắm lớn đều có hệ thống giữ xe cho khách hàng đến
tham quan mua sắm bằng phần mềm. Ở Việt Nam hiện tại có siêu thị BigC và Coop
Mart đang sử dụng hệ thống giữ xe thủ công: ngƣời dùng sẽ nhận dạng biển số bằng
mắt thƣờng khi xe ra vào. Do tỉ lệ xe gắn máy chiếm đa số trong số lƣợng xe ra vào
nên các phần mềm này sẽ chụp ảnh phía trƣớc và biển số của xe ra vào để kiểm soát,
và dữ liệu chỉ lƣu trữ trong phiên "vào - ra" của xe chứ không đƣợc lƣu trữ dài hạn
để xem lại khi cần.
Do đó công tác quản lý và kiểm soát sẽ gặp nhiều khó khăn khi ngƣời gửi xe
thông báo sự cố nhƣ mất xe, mất thẻ. Nếu nhƣ hệ thống quản lý lƣu trữ đƣợc các
thông tin về khuôn mặt ngƣời điều khiển xe, biển số, thời gian vào, thời gian ra thì sẽ
dễ dàng quản lý, tìm kiếm khi có vấn đề.
Do đó chúng tôi chọn đề tài "Xây dựng hệ thống hỗ trợ giữ xe thông minh" để
hoàn thiện hệ thống này nhằm đƣa vào sử dụng thực tế.
Trong luận văn này chúng tôi sẽ cố gắng trình bày chi tiết nhất và dễ hiểu nhất.
Do hệ thống này thiên về xử lý ảnh nên chúng tôi sẽ trình bày bằng ảnh màu để cho
ngƣời đọc dễ dàng hình dung cách thức hoạt động của thuật toán. Đồng thời lƣợc bỏ
những chi tiết không quan trọng gây khó hiểu, ngƣời đọc có thể dựa vào luận văn này
để xây dựng một hệ thống tƣơng tự hoặc mở rộng sang các vấn đề có liên quan.
Nếu ngƣời đọc muốn tìm hiểu sâu về các giải thuật có thể tìm các tài liệu liên
quan, vì đây là những giải thuật phổ biến, đƣợc ứng dụng nhiều. Mặt khác nếu trình
bày đầy đủ sẽ dẫn đến sự dài dòng không cần thiết.
I.2 Mục tiêu nghiên cứu
Luận văn này bao gồm 2 giai đoạn:
Giai đoạn 1: thu thập hình ảnh biển số và tạo mô hình nhận dạng biển số
xe
Giai đoạn 2: là tối ƣu hóa mô hình và triển khai vào thực tế.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
8
Nhìn tổng thể thì luận văn này đƣa mô hình nhận dạng của giai đoạn 1 vào áp
dụng thực tế. Hoàn thành các đề nghị trong luận văn giai đoạn 1. Đồng thời tối ƣu
hoá thuật toán, sửa các khiếm khuyết và thêm các chức năng quản lý của một hệ
thống gửi xe thông minh:
Đăng nhập vào hệ thống bằng tài khoản đƣợc cấp
Lƣu trữ thông tin, hình ảnh của xe vào ra
Báo mất thẻ, báo hƣ thẻ
Lƣu trữ hình ảnh biển số và khuôn mặt của ngƣời đi xe
Tạo thẻ xe và thẻ nhân viên có mã vạch và các thông tin khác để gửi xe
Tìm kiếm xe theo các thông tin nhƣ biển số, thời gian.
Vẽ biểu đồ thống kê lƣợng xe gửi, doanh thu, thời gian làm việc của nhân
viên theo khoảng thời gian
Quản lý thông tin nhân viên
I.3 Phạm vi đề tài
Đề tài này áp dụng cho bãi giữ xe tại các đơn vị, cơ quan, doanh nghiệp trong cả
nƣớc.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
9
CHƢƠNG II. CƠ SỞ LÝ THUYẾT
II.1 Thuật toán mã hoá AES (Advanced Encryption Standard)
AES là thuật toán mã hoá đối xứng: sử dụng duy nhất 1 khoá để mã hoá/giải
mã. Thuật toán này sử dụng 1 chuỗi ký tự bất kỳ để làm khoá và 1 đoạn văn bản
để mã hoá. Đầu ra của giải thuật mã hoá là 1 chuỗi ký tự đã đƣợc mã hoá.
Muốn giải mã ngƣời dùng cần có khoá và chuỗi mã hoá dùng ở bƣớc trên. Nếu
đúng thì sẽ giải mã ra chuỗi ban đầu.
Một số đặc tính cơ bản:
Có thể dùng chuỗi mã hoá và khoá có độ dài bất kỳ
Độ dài chuỗi mã hoá phụ thuộc vào chuỗi ký tự nguồn, khoá và chuỗi
càng dài thì kết quả càng dài.
Không hỗ trợ Unicode
Đây là thuật toán khá phổ biến và đƣợc ứng dụng trong nhiều lĩnh vực. Trong
môi trƣờng .NET hàm này đƣợc cung cấp sẵn. Ứng dụng của nó trong luận văn
này là mã hoá chuỗi kết nối tới CSDL lƣu trong file text, và tạo chuỗi an ninh cho
thẻ xe. Do khoá bí mật đƣợc giữ bí mật và khá dài nên rất an toàn trong sử dụng.
II.2 Thuật toán mã hoá MD5
Là thuật toán mã hoá một chiều (không thể giải mã đƣợc). Với mỗi chuỗi dữ
liệu đầu vào chỉ có duy nhất một chuỗi kết quả đầu ra, do đó nếu chuỗi dữ liệu đầu
vào có thay đổi nhỏ thì sẽ tạo ra 1 chuỗi kết quả khác.
Trong thực tế nó đƣợc ứng dụng khá rộng rãi, từ việc kiểm tra tính toàn vẹn
của dữ liệu trên Internet cho đến mã hoá mật khẩu ngƣời dùng. Trong luận văn
này nó đƣợc sử dụng để mã hoá mật khẩu của nhân viên sử dụng hệ thống.
II.3 Đặc trƣng Haar-like
Các đặc trƣng Haar-Like là những hình chữ nhật đƣợc phân thành các vùng
khác nhau. Mỗi đặc trƣng Haar-like là sự kết hợp hai hay ba hình chữ nhật “trắng”
hay “đen” nhƣ sau:
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
10
Hình II-1: Đặc trưng cạnh
Hình II-2: Đặc trưng đường
Hình II-3: Đặc trưng xung quanh tâm và đặc trưng đường chéo
Dựa vào các đặc trƣng này mà OpenCV tìm ra các đặc trƣng của đối tƣợng cần
nhận dạng, dựa vào các đặc trƣng đã rút ra đó để tìm xem trong ảnh có đối tƣợng
cần nhận dạng hay không. Các ảnh đều đƣợc chuyển sang ảnh mức xám nên thuật
toán chỉ nhận diện vào các đặc trƣng trên chứ không dựa vào màu sắc.
Có thể ứng dụng vào việc phát hiện bất kỳ vật thể nào, có thể là nắp chai, cây
viết, chìa khoá, trái cây,... miễn là "huấn luyện" đúng cách.
Luận văn này sử dụng đặc trƣng Haar-like để phát hiện ảnh thu nhận đƣợc từ
webcam có chứa biển số xe hay không.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
11
II.4 Máy học vectơ hỗ trợ - Support vector Machine (SVM)
Là thuật toán quan trọng trong khai khoáng dữ liệu dùng để phân lớp dựa vào
cách biểu diễn các điểm trong không gian, thƣờng là các không gian phẳng. SVM
đã đƣợc áp dụng thành công trong rất nhiều ứng dụng nhƣ nhận dạng vân tay,
nhận dạng mặt ngƣời, chữ viết...
Hình II-4: phân lớp các điểm trong mặt phẳng
Dựa vào thuật toán SVM mà chƣơng trình có thể nhận biết các ký tự biển số.
Vùng ký tự màu đen nằm trên nền biển số màu trắng có thể xem là 2 lớp khác
nhau. SVM sẽ tạo ra các siêu phẳng để tách 2 lớp này, và kết quả tách 2 lớp đƣợc
sử dụng để nhận diện chính xác các ký tự
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
12
Ví dụ: minh hoạ phân lớp chữ K
Hình II-5: chữ K được tách từ biển số và chuyển thành ảnh nhị phân
Hình II-6: các siêu phẳng a,b,c tạo thành các phân lớp yếu
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
13
Hình II-7: các siêu phẳng c,d,e,f,g,h tạo thành các phân lớp yếu
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
14
Hình II-8: tập hợp các phân lớp yếu trở thành phân lớp mạnh
II.5 Nhận dạng bằng giải thuật Cascade of Classifiers trong openCV
Nhận diện đối tƣợng trong ảnh đã có ứng dụng từ lâu trong bộ môn thị giác
máy tính. Để có thể nhận diện một đối tƣợng trong ảnh có thể sử dụng nhiều
phƣơng pháp khác nhau nhƣ: so sánh ảnh với các mẫu có sẵn, so sánh về kích
thƣớc, màu sắc, vị trí của đối tƣợng trong ảnh. Tuy nhiên các cách này tỏ ra chậm
chạm, yêu cầu nặng về phần cứng.
Với yêu cầu đặt ra là phải chạy đƣợc trên những thiết bị nhƣ máy ảnh, điện
thoại, thiết bị nhúng có cấu hình yếu thì thuật toán Cascade of Classifier ra đời.
Dịch sát nghĩa là "Phân lớp theo tầng". Dựa trên những đặc trƣng haar-like của đối
tƣợng mà thuật toán tiến hành rút trích ra các đặc trƣng của đối tƣợng. Do đối
tƣợng có thể biến đổi nhiều hình dạng khác nhau nên phải phân tầng nhận dạng.
Lấy ví dụ về nhận diện khuôn mặt ngƣời, có rất nhiều loại khuôn mặt: đàn ông
đàn bà, ngƣời già trẻ em, ngƣời da trắng da đen, ngƣời quay mặt thẳng ngƣời quay
mặt ngang, các chi tiết mặt mũi cũng khác nhau. Nếu sử dụng cách so sánh thông
thƣờng thì vừa dễ sai vừa mất nhiều thời gian.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
15
Ví dụ khác là nhận diện biển số, lấy ví dụ về biển số xe máy Việt Nam: ngoài
mã tỉnh, mã huyện ra thì có loại 4 ký tự, có loại 5 ký tự. Có loại viền dầy, có loại
viền mỏng, có loại dán decal, có loại mới ký tự rõ ràng, có loại cũ ký tự bị mờ.
Nếu chụp thẳng góc thì nó là hình chữ nhật còn chụp xéo thì nó là hình tứ giác.
Thuật toán Cascade of Classifier tiến hành phân ra thành các giai đoạn (stage),
các vùng hình chữ nhật "nghi ngờ" phải đạt ngƣỡng đúng (threshold) của tất cả các
giai đoạn để đƣợc xác định là chứa đối tƣợng. Trong một giai đoạn có nhiều cây
quyết định (decision tree) và đi theo nhánh của cây sẽ giúp cho việc xác định
nhanh hơn rất nhiều.
Có thể minh hoạ cấu trúc phân tầng nhƣ sau (ví dụ minh hoạ không nhất thiết
giống y hệt nhƣ file xml):
- Giai đoạn 1: ngƣỡng 20%
Đặc trƣng 1 có ngƣỡng 21%: qua giai đoạn tiếp theo
Đặc trƣng 2 có ngƣỡng 19%: lớp âm
- Giai đoạn 1: ngƣỡng 30%
Đặc trƣng 1 có ngƣỡng 33%: qua giai đoạn tiếp theo
Đặc trƣng 2 có ngƣỡng 27%: lớp âm
.........
- Giai đoạn n: ngƣỡng xx%
Đặc trƣng 1 có ngƣỡng >xx%: lớp dƣơng
Đặc trƣng 2 có ngƣỡng <xx%: lớp âm
Số lƣợng giai đoạn và ngƣỡng quyết định bởi dữ liệu học và các tham số khác
do ngƣời dùng chỉ định. Để có thể nhận dạng thuật toán tiến hành lấy mẫu từ 2 tập
dữ liệu: tập ảnh dƣơng bao gồm ảnh có chứa đối tƣợng và tập ảnh âm không chứa
đối tƣợng. Chuyển các ảnh này sang ảnh mức xám và tiến hành học dựa trên các
ảnh này. Dữ liệu học càng nhiều thì nhận diện càng chính xác, bao gồm cả ảnh
dƣơng và âm, bù lại thì thời gian huấn luyện lâu hơn.
Nếu vùng nghi ngờ đƣợc xác định đúng là đối tƣợng thì thuật toán trả về những
khung hình chữ nhật (vì có thể có nhiều đối tƣợng trong 1 hình).
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
16
II.6 Giới thiệu về Barcode
Barcode hay còn gọi là mã vạch đƣợc thấy nhiều trên bao bì sản phẩm. Nó
chứa thông tin mà thiết bị quét mã vạch có thể đọc đƣợc. Có nhiều loại barcode
khác nhau, theo nhiều chuẩn khác nhau và nhiều kích cỡ khác nhau. Có loại là các
vạch thẳng đứng, có loại là những ô vuông,... theo 1 quy tắc để máy quét có thể
đọc nhanh và chính xác. Mã vạch nét đứng thƣờng có số bên dƣới.
Có thiết bị đọc mã vạch chuyên dụng hoặc có thể sử dụng webcam, camera để
đọc mã vạch. Đối với mã vạch đứng nhƣ trong luận văn này sử dụng thì máy quét
có cấu tạo là 1 tia laser quét ngang mã vạch. Tuỳ theo nét thanh/nét đậm đƣợc sắp
xếp có quy tắc mà mã vạch có thể chứa đựng thông tin.
Hình II-9: một ví dụ về Barcode chuẩn Code-128
Hình II-10: một ví dụ khác về QR code
Với những ƣu điểm nhƣ vậy mã vạch đƣợc sử dụng rộng rãi trong việc lƣu trữ
thông tin.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
17
II.7 Biểu thức chính quy (Regular Expression)
Biểu thức chính quy là một chuỗi miêu tả một bộ các chuỗi khác, theo những
quy tắc cú pháp nhất định. Nó rất cần thiết khi cần kiểm tra cú pháp của dữ liệu
đầu vào, có thể là số điện thoại, mã hàng hoá, biển số xe,... Hầu hết các ngôn ngữ
lập trình đều hỗ trợ biểu thức chính quy.
Một số mẫu (pattern) thƣờng sử dụng trong .NET:
\d Một chữ số (number)
\w Một ký tự (letter)
\s Một khoảng trắng (space)
{n} Lặp lại n lần
{m,n} Tối thiểu m lần, tối đa n lần
[] Lấy 1 ký tự trong ngoặc vuông
Biển số xe máy ở Việt Nam có quy tắc là: Mã tỉnh - Mã huyện hoặc cơ quan tổ
chức - 4 hoặc 5 số. Mã tỉnh là 2 số, mã huyện có thể là 2 chữ cái hoặc 1 chữ cái rồi
1 số. Nhƣ vậy định dạng của biểu thức chính quy dành cho biển số xe máy là:
\d\d-[A-Z][0-9A-Z]-\d{4,5}
II.8 Các công cụ hỗ trợ
II.8.1. VB.NET
Là ngôn ngữ lập trình trên nền tảng .NET do Microsoft phát triển từ ngôn ngữ
VB. Nó khá đƣợc ƣa chuộng và phổ biến chỉ sau C#. Nó đƣợc ƣa chuộng do cú
pháp rõ ràng, dễ hiểu thậm chí có thể dễ hiểu hơn cả Pascal. Lập trình viên không
cần phải học từ khoá nhiều, chỉ cần biết tiếng Anh chuyên ngành là có thể khám
phá ra hàng loạt tính năng chứa trong .NET Framework.
VB.NET là ngôn ngữ lập trình hiện đại, hỗ trợ đầy đủ các công nghệ và các
yêu cầu phức tạp của lập trình nhƣ hƣớng đối tƣợng, xử lý sự kiện, bẫy lỗi,...
Chúng tôi chọn ngôn ngữ này vì bản thân đã sử dụng quen thuộc hơn các ngôn
ngữ khác.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
18
So với C# thì hiệu quả của VB.NET tƣơng đƣơng, mặt khác về cú pháp thì
VB.NET có 1 số ƣu thế vƣợt trội hơn nhƣ:
Suggest keyword của VB nhanh hơn và đầy đủ hơn C#
VB bắt lỗi nhanh và chính xác hơn C#
VB có “module”, khi viết 1 function đặt vào đó thì có thể gọi ở bất cứ
đâu. Còn C# buộc ngƣời dùng phải tạo 1 class, ở nơi cần gọi phải tạo 1
thực thể mới gọi đƣợc fuction.
VB thông minh hơn C#, có thể gán số kiểu string cho kiểu int và rất
nhiều kiểu khác. C# bắt buộc phải “ép kiểu”
Cú pháp của VB rõ ràng hơn, khi có nhiều đoạn chƣơng trình lồng nhau
thì C# sẽ có rất nhiều dấu {} bất kể là while, for, if,…. Còn VB thì if sẽ
kết thúc là end if, while sẽ kết thúc là end while, for sẽ kết thúc là
next….. Rất dễ dàng sửa lỗi.
VB hỗ trợ định dạng đầu dòng cực tốt, giúp cho lập trình viên nhận biết
khối lệnh nào nằm chỗ nào
II.8.2. EmguCV [1]
OpenCV (Opensource Computer Vision library - thị giác máy tính) là thƣ viện
mã nguồn mở dùng để phân tích và xử lý hình ảnh. Nó cung cấp 2500 hàm khác
nhau về xử lý ảnh, từ đó ngƣời dùng có thể ứng dụng vào rất nhiều lĩnh vực khác
nhau nhƣ: nhận diện, điều khiển, quan sát, phân tích ảnh,....
Các công ty lớn trên Thế giới cũng ứng dụng bộ thƣ viện này vào phần mềm
của mình, nhƣ Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota đã
ứng dụng vào trong các lĩnh vực tìm kiếm hình ảnh, khử mắt đỏ, khử răng cƣa, tạo
bóng đổ, thiết bị tự động, .... Có thể kể đến các sản phẩm có ứng dụng thực tế nhƣ
máy ảnh kỹ thuật số, xe tự lái, hệ thống phân luồng giao thông, giám sát vật thể
chuyển động, nhận diện khuôn mặt, dấu vân tay....
Tuy nhiên OpenCV không hỗ trợ 2 ngôn ngữ C# và VB.NET, còn EmguCV là
một phiên bản khác của OpenCV dành cho 2 ngôn ngữ này. Do đó EmguCV
tƣơng đối giống OpenCV về cách sử dụng và hiệu quả tƣơng đƣơng.
Do luận văn này viết trên nền tảng .NET nên phải sử dụng EmguCV để sử
dụng các tính năng nhận diện để phát hiện và định vị biển số xe trong hình ảnh thu
nhận đƣợc từ camera.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
19
II.8.3. DevExpress [2]
Là bộ công cụ hỗ trợ cho lập trình viên
thiết kế ứng dụng với các điều khiển, so với
công cụ có sẵn của Visual Studio thì nó có
giao diện đẹp hơn, nhiều chức năng hơn, linh
hoạt và dễ dàng tuỳ biến theo mục đích. Bộ
công cụ này hỗ trợ rất nhiều nền tảng, từ Window Form, Web Application đến các
ứng dụng cho thiết bị di động.
Đặc biệt các công cụ nổi bật, sử dụng thƣờng xuyên nhất nhƣ Button,
Checkbox, Datagridview, Report,… đƣợc nhà phát triển chăm chút đến từng chi
tiết. Có hỗ trợ rất nhiều chức năng tiện ích nhƣ biểu thức chính quy, bắt lỗi, gợi ý
khi ngƣời dùng tƣơng tác đến,….Giúp cho lập trình viên thiết kế những ứng dụng
linh hoạt, dễ nhìn và cho ngƣời dùng cuối có cảm giác hiện đại, năng động.
Luận văn này sử dụng DevExpress để thiết kế các điều khiển, vẽ biểu đồ và in
thẻ xe.
II.8.4. InstallShield [3]
InstallShield là công cụ bổ trợ cho Visual Studio
giúp tạo ra bản cài đặt (setup) cho phần mềm.
InstallShield có nhiều tuỳ chọn cho lập trình viên cũng
nhƣ ngƣời dùng trong việc đóng gói, cài đặt phần mềm.
Có thể kể đến các tính năng cần thiết nhƣ: đóng gói vào
1 file exe duy nhất để tiện lợi sử dụng, hoặc tự động
sửa chữa chƣơng trình khi phát hiện chƣơng trình thiếu
file, và cuối cùng là khả năng nén tuyệt vời: luận văn
này dung lƣợng hơn 1GB đóng gói chỉ còn lại 300MB.
II.8.5. Microsoft SQL Server 2008
SQL Server là hệ quản trị CSDL do hãng Microsoft phát hành, đây là một
trong những hệ quản trị CSDL nổi tiếng nhất và phổ biến nhất trên Thế giới. Nó
đƣợc ứng dụng nhiều một phần do hỗ trợ rất tốt hệ điều hành Window, mặt khác
cung cấp một nền tảng dữ liệu thông minh, hiệu suất cao và đáng tin cậy.
Do luận văn này yêu cầu phải thiết kế CSDL cho 2 máy tính sử dụng: 1 máy
lối vào và 1 máy lối ra khi cần, do đó bắt buộc phải thiết kế CSDL dùng chung.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
20
II.8.6. LibSVM [4]
Đây là 1 thƣ viện mã nguồn mở hỗ trợ lập trình viên sử dụng thuật toán SVM
(Support Vector Machine) để phân lớp các đối tƣợng trong một mặt phẳng. Hỗ trợ
nhiều ngôn ngữ và nhiều nền tảng khác nhau. Đối với môi trƣờng window có 3
chƣơng trình quan trọng:
svm-train: huấn luyện phân lớp đối tƣợng
svm-toy: mô phỏng thuật toán
svm-predict: tính độ chính xác
Luận văn này sử dụng LibSVM để xác định chính xác ký tự biển số xe. Trong
phần tiếp theo sẽ nói rõ hơn về thƣ viện này cũng nhƣ cách sử dụng. Để sử dụng
đƣợc các hàm trong SVM cần phải sử dụng SVM.dll [5] dành cho .NET.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
21
CHƢƠNG III. XÂY DỰNG GIẢI THUẬT NHẬN DẠNG BIỂN SỐ
III.1 Quy trình tổng thể
Hình III-1: Bước 1 - định vị biển số xe
Bƣớc này huấn luyện máy tính tìm biển số trong ảnh thu đƣợc từ camera. Nếu
có biển số trong ảnh thì crop ảnh để sử dụng ở bƣớc tiếp theo
Hiển thị kết quả
Nhận dạng ký tự
Định vị ký tự
Định vị biển số xe
Ảnh thu từ Camera
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
22
Hình III-2: Bước 2 - định vị ký tự
Nếu có biển số thì tìm vị trí của ký tự trong ảnh biển số đã crop. Tách các ký
tự để sử dụng ở bƣớc tiếp theo. Trong thực tế các ký tự đƣợc phát hiện không theo
thứ tự từ trái qua phải nên phải sắp xếp các ký tự theo toạ độ.
Hình III-3: Bước 3 - nhận dạng ký tự
Sử dụng SVM để xác định ký tự đó là gì và hiển thị kết quả.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
23
III.2 Định vị biển số xe
Sử dụng đặc trƣng haar-like để tạo tập dữ liệu xml. Nhờ vào tập xml này mà
chƣơng trình có thể phát hiện đƣợc biển số xe trong ảnh.
Bƣớc 1: Chuẩn bị tập dữ liệu huấn luyện gồm 2250 ảnh màu. Trong đó:
750 ảnh chứa biển số xe bao gồm ảnh đƣợc chụp từ điện thoại, máy ảnh,
Internet. Tập ảnh này là tập ảnh dƣơng (positive)
1500 ảnh không chứa biển số xe (hình phong cảnh, vật dụng…bất kỳ)
đƣợc lƣu trong cùng một thƣ mục. Tập ảnh này là tập ảnh âm (negative)
Lƣu ý:
2 tập ảnh nên cùng kích thƣớc. Trong luận văn này resize ảnh về cùng
cỡ 640x480 pixel.
Càng nhiều ảnh thì càng phát hiện chính xác.
Nên xoay ảnh theo nhiều góc để vét cạn các trƣờng hợp thực tế.
Bƣớc 2: Tách ảnh biển số xe để phần mềm "học" các đặc trƣng (training). Sử
dụng chƣơng trình Object Locator (Phụ lục [a]) để tách các biển số xe trong tập
ảnh, sau khi hoàn tất sẽ xuất ra file chỉ mục location.txt. Định dạng của file chỉ
mục là:
<tên ảnh> <số biển số trong ảnh> x y w h ... x y w h
..........................................................................................
<tên ảnh> <số biển số trong ảnh> x y w h ... x y w h
Với:
Tên ảnh: chỉ ghi tên ảnh
x, y là tọa độ góc trên bên trái biển số xe
w, h là chiều rộng và chiều cao biển số
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
24
Hình III-4: Minh hoạ các tham số x,y,w,h
Ví dụ:
1.jpg 1 132 112 303 216
2.jpg 1 164 122 288 209
Bƣớc 3: Sử dụng chƣơng trình opencv_createsamples (đi kèm với EmguCV)
để tạo tập tin vector các biển số đƣợc dùng để huấn luyện. Tập tin vector kết quả
sẽ đƣợc sử dụng tiếp để tạo mô hình. Cú pháp sử dụng nhƣ sau:
opencv_createsamples -vec vec.vec -info E:\bienso\postive\location.txt -num
750 -w 40 -h 30
Trong đó:
opencv_createsamples: tên chƣơng trình tạo vector.
-vec vec.vec: file vector ouput đƣợc lƣu với tên “vec.vec”.
-info E:\bienso\postive\location.txt: tập tin chỉ mục tập ảnh chứa biến số
xe đặt trong thƣ mục ảnh dƣơng.
-num 750: số ảnh dƣơng là 750.
-w 40 -h 30: tham số xác định kích thƣớc ảnh tối thiểu. Nếu kích thƣớc
biển số nhỏ hơn 40x30 thì chƣơng trình sẽ cho rằng không có biển số.
Kết quả nhận đƣợc tập tin vec.vec
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
25
Tập tin vec.vec là tập tin vectơ chứa ảnh thumbnail với kích cỡ đƣợc chỉ ra
trong tham số width và height của tập tin location.txt. Dựa vào file này mà
chƣơng trình sẽ tìm ra các đặc trƣng haar-like của đối tƣợng, từ đó tạo bộ nhận
diện dựa trên đặc trƣng này.
Bƣớc 4: Tạo chỉ mục tập ảnh không chứa biển số xe , sau đó lƣu lại với tên
bg.txt có nội dung:
<tên ảnh>
.................
<tên ảnh>
Bƣớc 5: Huấn luyện nhận dạng. Sử dụng chƣơng trình
opencv_haartraining.exe (đi kèm với EmguCV) để huấn luyện, lƣu tập tin huấn
luyện với tên bienso.xml:
opencv_haartraining -data E:\bienso -vec vec.vec
-E:\bienso\negative\bg.txt -npos 750 -nneg 1500 -nstages 20 -mem 2000
-w 40 -h 30 -nonsym -minhitrate 0.995 -maxfalsealarm 0.5
với:
-data E:bienso: đƣờng dẫn thƣ mục chứa các file thông số ngõ ra đƣợc
cập nhật của tầng huấn luyện (cascade). Khi huấn luyện chƣơng trình sẽ
tạo ra các thƣ mục từ 0 nstages. Khi huấn luyện xong sẽ tạo ra file
bienso.xml để sử dụng trong chƣơng trình
-vec vec.vec: chứa đƣờng dẫn đến file vector đã tạo ra ở bƣớc 3.
-bg E:\bienso\negative\bg.txt: đƣờng dẫn đến file chứa danh sách các
ảnh âm đặt chung thƣ mục với ảnh âm.
-npos 750: số lƣợng ảnh dƣơng
-nneg 1500: số lƣợng ảnh âm
-nstages 20: số lƣợng giai đoạn (stage) huấn luyện. Số giai đoạn cao chỉ
có ý nghĩa khi có tập ảnh lớn, nếu ảnh ít thì số giai đoạn nhiều không có
tác dụng.
-mem 2000: dung lƣợng bộ nhớ RAM cần cho quá trình huấn luyện
(MB). Máy tính có bộ nhớ RAM càng nhiều thì quá trình huấn luyện
diễn ra càng nhanh.
-nonsym: khai báo các đối tƣợng huấn luyện là không có tính đối xứng.
Chỗ này cần giải thích là tuy rằng biển số có tính đối xứng, tuy nhiên
trong thực tế hình ảnh có thể méo mó, hoặc bị dán decal lên làm mất
tính đối xứng.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
26
-minhitrate 0.995: là tỉ lệ dự đoán đúng tối thiểu.
-maxfalsealarm 0.5: tỉ lệ dự đoán sai tối đa
Hình III.2.2: Quá trình huấn luyện định vị biển số
Kết quả: Tập tin bs.xml
Tập tin bs.xml là kết quả của quá trình huấn luyện, sử dụng trong chƣơng trình.
Nội dung của file bs.xml là các bƣớc nhận diện các đặc trƣng của đối tƣợng, dựa
vào đó mà chƣơng trình có thể nhận biết đối tƣợng có tồn tại trong ảnh hay không.
Kết quả định vị biển số đúng 100%.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
27
III.3 Định vị ký tự
Bƣớc 1: Chuẩn bị dữ liệu huấn luyện gồm 5200 ảnh màu. Trong đó:
1500 ảnh chứa ký tự biển số xe (ảnh sau khi tách đƣợc biển số xe) đƣợc
lƣu trong 1 thƣ mục.
3700 ảnh không chứa ký tự biển số xe (hình phong cảnh, vật dụng…)
đƣợc lƣu trong 1 thƣ mục.
Bƣớc 2: Tách ảnh ký tự biển số xe: Sử dụng chƣơng trình Object Locator để
tách các ký tự biển số xe trong tập ảnh, sau đó lƣu tập tin chỉ mục với tên
location.txt có nội dung tƣơng tự bƣớc 2 phần III.2
Bƣớc 3: Sử dụng chƣơng trình opencv_createsamples.exe để tạo tập tin vector
các ký tự biển số đƣợc dùng để huấn luyện:
opencv_createsamples -vec vec.vec -info
E:\bienso\kytu\positive\location.txt -num 1500 -w 20 -h 46
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
28
Trong đó:
opencv_createsamples: tên chƣơng trình tạo vector.
-vec vec.vec: file vector ouput đƣợc lƣu với tên “vec.vec”.
-info location.txt: tham số xác định tập tin chỉ mục tập ảnh chứa ký tự
biển số xe.
-num 1500: số ảnh dƣơng là 1500.
-w 20 -h 46: tham số xác định kích thƣớc ảnh tối thiểu. Nếu kích thƣớc
ký tự nhỏ hơn 20x46 thì chƣơng trình sẽ cho rằng không có ký tự.
-info E:\bienso\kytu\location.txt: tập tin chỉ mục chứa danh sách các ảnh
ký tự.
Kết quả nhận đƣợc tập tin vec.vec
Bƣớc 4: Tạo tập tin chỉ mục các ảnh không chứa biển số xe , sau đó lƣu lại với
tên bg.txt có nội dung tƣơng tự bƣớc 4 phần III.2
Bƣớc 5: Huấn luyện. Sử dụng chƣơng trình opencv_haartraining (đi kèm với
EmguCV) để huấn luyện, lƣu tập tin huấn luyện với tên kytu.xml:
opencv_haartraining -data E:\bienso\kytu -vec vector.vec –bg
E:\bienso\kytu\negative\bg.txt -npos 1500 -nneg 3700 -nstages 20 -mem
2000 -w 20 -h 46 -nonsym -minhitrate 0.995 - maxfalsealarm 0.5
Các tham số tƣơng tự nhƣ bƣớc 5 phần III.2
Kết quả kiểm thử: kiểm thử 3-fold bằng cách chia tập ảnh làm 3 phần, sau đó
lần lƣợt dùng 2 phần để huấn luyện, 1 phần để kiểm tra.
Lần 1 ≈91%
Lần 2 ≈92%
Lần 3 ≈88%
Trung bình của 3 lần thử là ≈90%
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
29
III.4 Nhận dạng ký tự
Định dạng biển số xe máy ở Việt Nam có quy tắc nhƣ sau:
Mã tỉnh: có 2 chữ số
Mã huyện: hoặc là 2 chữ cái hoặc là 1 chữ cái và 1 chữ số
Số xe: có 4 hoặc 5 chữ số
Nhƣ vậy để nhận diện nhanh cần có 2 mô hình cho 3 vị trí này. Mô hình nhận
diện số cho mã tỉnh và số xe, mô hình nhận diện chữ và số cho mã huyện.
Trong thực tế không sử dụng 5 chữ cái I,J,O,Q và W. Lý do là I và J giống số 1
còn O và Q giống số 0, W sử dụng cho xe trả góp trƣớc đây nhƣng hiện nay đã
ngƣng không cấp nữa. (Tham khảo Cảnh sát giao thông và Wikipedia)
Bƣớc 1: Tách các ký tự bằng công cụ sử dụng mô hình nhận diện ký tự và
resize ảnh về kích thƣớc 20x48 pixel (Phụ lục [b])
Hình III.4.1: Các ký tự sau khi tách
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
30
Bƣớc 2: Chuyển các ảnh ký tự thành ma trận nhị phân 20x48 bằng chƣơng
trình img2bin.exe (Phụ lục [c])
Hình III-5: Chuyển ký tự thành ma trận nhị phân 20x48
Tập dữ liệu học theo khuôn dạng của LibSVM có cấu trúc nhƣ sau: cột đầu
tiên là lớp. Tiếp theo là các vị trí của số 1 trong ảnh, theo hình trên có kích thƣớc
20x48 thì có 960 vị trí (vị trí bắt đầu bằng số 1 và kết thúc là 960). Tiếp theo là
dấu : (hai chấm) và số 1, cứ thế cho đến hết.
<label> <index1>:<value1> <index2>:<value2>…….
<label> <index1>:<value1> <index2>:<value2>…….
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
31
Vì tập dữ liệu này chỉ chấp nhận kiểu số nên quy ƣớc nhƣ sau:
A B C D E F G H K L M N P R S T U V X Y Z
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Ví dụ: Bên trái là các ký tự nhị phân của chữ D, bên phải là tập dữ liệu hợp lệ
00000000000000000000 00000000000000000000 00111111111110000000 00111111111111100000 00111111111111110000 00111111111111111000 00111111111111111000 00111110000011111100 00111110000001111100 00111110000001111100 00111110000001111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000000111100 00111110000001111100 00111111000011111100 00111111111111111000 00111111111111111000 00111111111111110000 00111111111111000000 00011111110000000000
13 43:1 44:1 45:1 46:1 47:1 48:1 49:1 50:1 51:1 52:1 53:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 123:1 124:1 125:1 126:1 127:1 128:1 129:1 130:1 131:1 132:1 133:1 134:1 135:1 136:1 137:1 143:1 144:1 145:1 146:1 147:1 153:1 154:1 155:1 156:1 157:1 158:1 163:1 164:1 165:1 166:1 167:1 174:1 175:1 176:1 177:1 178:1 183:1 184:1 185:1 186:1 187:1 194:1 195:1 196:1 197:1 198:1 203:1 204:1 205:1 206:1 207:1 214:1 215:1 216:1 217:1 218:1 223:1 224:1 225:1 226:1 227:1 235:1 236:1 237:1 238:1 243:1 244:1 245:1 246:1 247:1 255:1 256:1 257:1 258:1 263:1 264:1 265:1 266:1 267:1 275:1 276:1 277:1 278:1 283:1 284:1 285:1 286:1 287:1 295:1 296:1 297:1 298:1 303:1 304:1 305:1 306:1 307:1 315:1 316:1 317:1 318:1 323:1 324:1 325:1 326:1 327:1 335:1 336:1 337:1 338:1 343:1 344:1 345:1 346:1 347:1 355:1 356:1 357:1 358:1 363:1 364:1 365:1 366:1 367:1 375:1 376:1 377:1 378:1 383:1 384:1 385:1 386:1 387:1 395:1 396:1 397:1 398:1 403:1 404:1 405:1 406:1 407:1 415:1 416:1 417:1 418:1 423:1 424:1 425:1 426:1 427:1 435:1 436:1 437:1 438:1 443:1 444:1 445:1 446:1 447:1 455:1 456:1 457:1 458:1 463:1 464:1 465:1 466:1 467:1 475:1 476:1 477:1 478:1 483:1 484:1 485:1 486:1 487:1 495:1 496:1 497:1 498:1 503:1 504:1 505:1 506:1 507:1 515:1 516:1 517:1 518:1 523:1 524:1 525:1 526:1 527:1 535:1 536:1 537:1 538:1 543:1 544:1 545:1 546:1 547:1 555:1 556:1 557:1 558:1 563:1 564:1 565:1 566:1 567:1 575:1 576:1 577:1 578:1 583:1 584:1 585:1 586:1 587:1 595:1 596:1 597:1 598:1 603:1 604:1 605:1 606:1 607:1 615:1 616:1 617:1 618:1 623:1 624:1 625:1 626:1 627:1 635:1 636:1 637:1 638:1 643:1 644:1 645:1 646:1 647:1 655:1 656:1 657:1 658:1 663:1 664:1 665:1 666:1 667:1 675:1 676:1 677:1 678:1 683:1 684:1 685:1 686:1 687:1 695:1 696:1 697:1 698:1 703:1 704:1 705:1 706:1 707:1 715:1 716:1 717:1 718:1 723:1 724:1 725:1 726:1 727:1 735:1 736:1 737:1 738:1 743:1 744:1 745:1 746:1 747:1 754:1 755:1 756:1 757:1 758:1 763:1 764:1 765:1 766:1 767:1 768:1 773:1 774:1 775:1 776:1 777:1 778:1 783:1 784:1 785:1 786:1 787:1 788:1 789:1 790:1 791:1 792:1 793:1 794:1 795:1 796:1 797:1 803:1 804:1 805:1 806:1 807:1 808:1 809:1 810:1 811:1 812:1 813:1 814:1 815:1 816:1 817:1 823:1 824:1 825:1 826:1 827:1 828:1 829:1 830:1 831:1 832:1 833:1 834:1 835:1 836:1 843:1 844:1 845:1 846:1 847:1 848:1 849:1 850:1 851:1 852:1 853:1 854:1 864:1 865:1 866:1 867:1 868:1 869:1 870:1
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
32
Lƣu dữ liệu hợp lệ vào tập tin trainset.txt
Tuy nhiên trong thực tế sẽ có lúc những ký tự trong biển số không thẳng đứng
mà nghiêng về 1 bên nào đó. Do đó tập dữ liệu phải bao gồm nhiều góc khác nhau.
Qua khảo sát thực tế cho thấy rằng góc nghiêng nằm trong khoảng từ -10° đến 10°
nhƣ hình bên dƣới
Hình III-6: Các góc xoay của 1 ký tự
Bƣớc 3: Xây dựng Model: Sử dụng chƣơng trình svm-train (trong libSVM) để
xây dựng model, đƣợc kết quả là tập tin model với tên trainset.txt.model:
svm-train E:\trainset.txt
Với:
trainset.txt là tập dữ liệu học có 3554 dòng
Hình III-7: quá trình huấn luyện nhận dạng SVM
Kết quả kiểm thử nhận dạng ký tự: đƣợc file E:\trainset.txt.model
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
33
Sử dụng chƣơng trình svm-predict (trong libSVM) để kiểm thử với một tập dữ
liệu khác:
svm-predict E:\testset.txt E:\trainset.txt.model output
Trong đó:
E:\testset.txt là tập test khác với tập train ban đầu.
E:\trainset.txt.model là mô hình nhận diện.
output là file tạm để dự đoán nhãn, sau đó so sánh với nhãn trong tập
test.
Hình III-8: Kiểm thử 3-fold
Độ chính xác kiểm thử 3-fold có độ chính xác trung bình ≈ 98%;
Luận văn giai đoạn 1 sử dụng hàm CvInvoke.cvEqualizeHist() để cân bằng
histogram của ảnh ký tự, sau đó chuyển thành ma trận nhị phân với ngƣỡng tĩnh là
127.
Qua nghiên cứu thực tế tôi thấy cách đó không phù hợp với thực tế vì:
Ảnh ký tự biển số cần phải có độ tƣơng phản cao giữa ký tự và nền để
ma trận nhị phân ít nhiễu. Do đó bỏ hàm này.
Tuỳ theo mức sáng tối của ảnh ký tự mà có ngƣỡng hợp lý để phân biệt
ký tự và nền, do đó dùng ngƣỡng động bằng cách lấy trung bình mức
xám của ảnh.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
34
CHƢƠNG IV. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
IV.1 Thực trạng
Bãi giữ xe khu 3 trƣờng Đại học Cần Thơ giữ xe của sinh viên, giảng viên và
khách vào liên hệ công tác. Với mỗi lƣợt xe ra - vào khách gửi xe phải trả tiền phí
theo quy định (hiện tại là 500đ/lƣợt đối với xe đạp và 1000đ/lƣợt đối với xe máy).
Khi khách vào nhân viên giữ xe sẽ xé phiếu giữ xe làm 2 mảnh: 1 mảnh bấm
vào xe và 1 mảnh kia khách giữ. Khi khách ra nhân viên sẽ kiểm tra phần vé trên
xe có cùng số với phần vé khách giữ hay không, nếu đúng thì cho xe ra và thu phí.
Ngƣợc lại không đúng thì xe không đƣợc ra và xác minh có đúng chủ xe rồi mới
cho đi.
Để tránh cho vé xe bị làm giả hàng ngày nhân viên giữ xe phải đặt in vé xe và
đóng dấu giáp lai lên trên vé. Công việc này vừa lâu vừa tốn công sức. Ngoài ra
cách thức giữ xe này có nhiều nhƣợc điểm nhƣ vé xe dễ rách, dễ ƣớt, không xác
định đƣợc loại xe gửi khi mất vé xe, khó thống kê thu chi, số lƣợng xe ra - vào
trong khoảng thời gian nào đó.
Nay khu 3 trƣờng Đại học Cần Thơ muốn xây dựng một hệ thống giữ xe thông
minh sử dụng thẻ nhựa có mã vạch để tiện lợi cho khách hàng, đồng thời ghi nhận
thông tin của xe ra - vào nhƣ biển số, khuôn mặt ngƣời điều khiển xe, thời gian xe
ra - vào, thống kê thu chi, lập báo cáo cho ngƣời quản lý.
Yêu cầu cho hệ thống mới:
- Quản lý thẻ xe: in thẻ xe, xem danh sách thẻ đang sử dụng
- Thống kê doanh thu, lƣợng xe ra vào
- Tìm kiếm theo các tiêu chí: biển số, thời gian, ngƣời trực.
- Chức năng đăng nhập vào CSDL qua mạng LAN: thực tế cho thấy có 2
cách bố trí bãi giữ xe: cách thứ nhất là nơi kiểm soát xe vào và ra cùng 1
chỗ, cách thứ hai là 2 chỗ riêng biệt nhau. Do đó cần phải thêm tính năng
này.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
35
IV.2 Mô hình CDM
6
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
36
IV.3 Lƣu đồ dòng dữ liệu
Hình IV-1: Sơ đồ dfd cấp 0
Hình IV-2: Sơ đồ DFD cấp 1
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
37
IV.4 Mô hình CSDL
Hình IV-3: Mô hình CSDL
Bảng loaixe: chứa thông tin loại xe và giá tiền của từng loại xe
Bảng xevodisk: chứa thông tin xe vào. Bao gồm số thẻ, ngày giờ xe vô, mã
nhân viên trong phiên đó, đƣờng dẫn ảnh chụp phía trƣớc, đƣờng dẫn ảnh chụp
phía sau, biển số xe.
Bảng xeradisk: chứa thông tin xe ra. Bao gồm số thẻ, ngày giờ xe vô và ra, mã
nhân viên trong phiên đó, đƣờng dẫn ảnh chụp phía trƣớc, đƣờng dẫn ảnh chụp
phía sau, biển số xe, giá tiền.
Bảng nhanvien: lƣu toàn bộ thông tin nhân viên, bao gồm: họ tên, nhóm ngƣời
dùng, mật khẩu, mã thẻ, họ tên, ngày sinh, giới tính, địa chỉ, số điện thoại, email.
Mật khẩu đƣợc mã hoá md5 trƣớc khi lƣu vào CSDL. Email có tác dụng dùng để
gửi lại mật khẩu nếu quên.
Bảng bangchamcong: khi nhân viên đăng nhập sẽ lƣu lại thời gian đăng nhập
và thời gian đăng xuất, từ đó tính tổng thời gian đăng nhập của nhân viên.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
38
Bảng the: chứa thông tin thẻ xe.
Số thẻ là số kiểu integer
Trƣờng chuamat (chƣa mất) mặc định là 1 biểu thị thẻ vẫn còn đang sử
dụng, nếu mất thẻ thì nhân viên báo mất và trƣờng này sẽ có giá trị 0 để
không sử dụng lại, nhằm tránh việc ngƣời gửi xe bị kẻ gian lấy mất.
Trƣờng chuahu (chƣa hƣ) mặc định có giá trị 1, nếu thẻ hƣ nhân viên
ghi nhận là hƣ và có giá trị 0, để sau này dễ dàng biết thẻ nào hƣ để in
mới.
Ngày bắt đầu sử dụng là ngày thẻ đƣợc đƣa vào lƣu hành
Trƣờng giao cho khách có giá trị 0 khi chƣa giao, 1 khi đã giao cho
khách. Dựa vào giá trị này để chƣơng trình quyết định là xe vào hay xe
ra.
Bảng nhomnguoidung: có 2 nhóm là admin và nhân viên.
Nhóm nhân viên có các quyền: đăng nhập hệ thống, quản lý xe ra - vào,
báo mất thẻ, báo hƣ thẻ, đổi mật khẩu, lấy mật khẩu mới, chọn webcam
cho chƣơng trình, chọn thƣ mục lƣu ảnh, tìm kiếm, thống kê.
Nhóm admin có tất cả quyền của nhân viên và thêm các quyền nhƣ:
thêm - xoá - sửa nhân viên, chấm công nhân viên, đặt giá tiền gửi cho
từng loại xe, in thẻ xe và in thẻ nhân viên.
Khi hoạt động thời gian dài nếu lƣu hình ảnh vào CSDL thì CSDL sẽ có kích
thƣớc lớn, gây chậm trong việc lƣu trữ, xử lý, cách giải quyết là lƣu vào 1 thƣ mục
trên đĩa cứng.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
39
IV.5 Mô hình thiết kế tổng thể của hệ thống
Hình IV-4: Hình mô tả tổng thể
Khi xe đi vào thì dừng ngay vị trí đặt camera, sau đó camera sẽ nhận diện biển
số. Nhân viên quét mã vạch trên thẻ thì hệ thống sẽ lƣu các thông tin khi xe vào
vào CSDL (ảnh trƣớc & sau, ký tự biển số, thời gian, nhân viên trực).
Khi xe ra cũng dừng ngay vị trí đặt camera và camera sẽ nhận diện biển số.
Khi quét thẻ hệ thống tự động lấy thông tin khi xe vào để so sánh đối chiếu, nếu
biển số giống nhau thì chƣơng trình sẽ thông báo đúng và cho xe ra. Ngƣợc lại sẽ
không cho xe ra để xác minh.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
40
IV.6 Thiết kế thẻ xe
Hình IV-5: Mặt trước thẻ xe
Mặt trƣớc thẻ xe có 2 phần:
Header: có logo của trƣờng nằm bên trái, tên đơn vị chủ quản nằm bên
phải
Body: có dòng chữ THẺ GIỮ XE và mã vạch. Mã vạch đƣợc thiết kế dễ
nhìn, dễ quét bằng máy để thao tác nhanh. Mã vạch có 6 chữ số từ
000001 đến 999999
Hình IV-6: Mặt sau thẻ xe
Mặt sau thẻ xe có mã vạch và thông tin về tác giả.
Chức năng in thẻ xe đƣợc thiết kế trong giao diện quản lý của admin, tƣơng
thích tốt với thẻ nhựa kích cỡ chuẩn 85x55mm.
Barcode đƣợc thiết kế theo chuẩn Code-128. Sở dĩ chọn chuẩn này vì nó thông
dụng với các máy quét mã vạch, tốc độ nhận dạng nhanh để đáp ứng công việc
hàng ngày. Công cụ tạo barcode nằm trong bộ công cụ devExpress.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
41
IV.7 Thiết kế giao diện chính của chƣơng trình
Sau khi nghiên cứu những bãi giữ xe thực tế và cách thức hoạt động của
chƣơng trình thì thấy có 3 cách bố trí giao diện nhƣ sau:
Cách 1: 4 khung hình
Hình IV-7: giao diện chính của chương trình khi thiết kế 4 ImageBox
- Khi xe vào sẽ save hình ảnh hiện ở ô 1 & 2 vào CSDL
- Khi xe ra sẽ load hình ảnh và biển số lúc vào ở ô 1 & 2, sau đó so sánh
biển số đọc từ ô 3 & 4
Ƣu điểm là khung hình lớn, dễ nhìn. Khuyết điểm là hình ảnh load từ CSDL
hiển thị ở ô 1 & 2 trùng với luồng xe vào, tuy nhiên với 1 lần quét thẻ thì chỉ có xe
ra hoặc xe vào.
Cách 2: 6 khung hình
Hình IV-8: giao diện chính của chương trình khi thiết kế 6 ImageBox
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
42
- Khi xe vào sẽ lƣu hình ảnh hiện ở ô 1 & 2
- Khi xe ra sẽ load vào ô 3 & 4, so sánh ô 3 & 4 với ô 5 & 6
Ƣu điểm là luôn quan sát đƣợc hình ảnh từ webcam, khuyết điểm là bố cục
không cân xứng.
Cách 3: 8 khung hình
Hình IV-9: giao diện chính của chương trình khi thiết kế 4 ImageBox
- Ô 1 & 2 với ô 7 & 8 là hình ảnh từ WC
- Khi quét thẻ hình ảnh xe vào sẽ lấy hình ảnh từ ô 1 & 2 chuyển qua ô 3 & 4
và lƣu hình này vào CSDL
- Khi xe ra sẽ load hình ảnh lúc xe vào hiện ở ô 3 & 4, ô 5 & 6 là hình ảnh lấy
từ ô 7 & 8
Ƣu điểm là hình ảnh để so sánh nằm tách biệt với hình ảnh từ wc, còn khuyết
điểm là:
+ Khi xe ra hình ảnh ô 5 & 6 cũng giống nhƣ ô 7 & 8
+ Các khung hình nhỏ, khó nhìn
Sau khi cân nhắc ƣu/khuyết điểm của 3 cách bố trí giao diện thì thấy cách bố
trí 4 khung hình là hợp lý nhất.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
43
IV.8 Mô hình triển khai
Hình IV-10: sơ đồ bố trí bãi giữ xe
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
44
Các thiết bị cần thiết:
Máy tính và camera: thiết bị chính. Nhân viên sẽ ngồi theo hƣớng nhìn
ra cổng. Máy tính và camera đƣợc khoá lại để đề phòng mất cắp.
Rào chắn: dùng để phân làn xe ra vào và xe đi đúng hƣớng nhìn của
camera
Gờ xi măng: gờ phía trƣớc xe để xe dừng đúng vị trí camera, gờ phía
sau để cho xe chƣa tới lƣợt dừng ngay gờ đó.
Yêu cầu kỹ thuật và trang thiết bị để phần mềm hoạt động tốt:
Camera chất lƣợng tốt để thu nhận hình ảnh rõ ràng
Ánh sáng phải vừa đủ, không đƣợc loá hoặc quá tối
Dây tín hiệu phải là loại chống nhiễu đƣợc
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
45
CHƢƠNG V. KẾT QUẢ THỰC NGHIỆM
V.1 Đánh giá độ chính xác của các mô hình
Sau khi tiến hành thực hiện lại toàn bộ các bƣớc huấn luyện của giai đoạn 1 thì
kết quả về độ chính xác nhƣ sau:
Tập ảnh thu thập đƣợc bổ sung thêm 1 số ảnh. Tổng số ảnh dƣơng dùng
để huấn luyện là 750, tổng số ảnh âm để huấn luyện là 1500
Một cải tiến đáng kể đó là tối ƣu hoá code so với giai đoạn 1 để tăng tốc
độ nhận diện biển số.
So sánh độ chính xác của 2 giai đoạn
Luận văn Giai
đoạn 1 [1] Luận văn hiện tại
Phƣơng pháp kiểm tra Chạy 1 lần
Trung bình từ 3 lần chạy
(3-fold cross validation)
Định vị biển số
Số ảnh train 750 750
Số ảnh test 30 243
Độ chính xác 27/30=90% 243/243=100%
Định vị ký tự
Số ảnh train 1500 3554
Số ảnh test 30 3927
Độ chính xác 20/30≈66.6% 3478/3927≈89%
Nhận dạng ký tự bằng SVM
Số ký tự train (số dòng) Không rõ 1606
Số ký tự test 200 1295
Độ chính xác 170/200=85% 1265/1295≈89%
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
46
V.2 Giới thiệu giao diện và chức năng của phần mềm
VI.2.1. Chức năng đăng nhập
Hình V-1: Giao diện chức năng Đăng nhập
Khi khởi động chƣơng trình sẽ kiểm tra kết nối tới CSDL, nếu không thành
công sẽ hiện ra chức năng chọn CSDL để ngƣời dùng kết nối tới CSDL.
Ngƣời dùng có thể nhập tên đăng nhập hoặc mã thẻ đều đƣợc, sau đó điền mật
khẩu rồi ấn Enter chƣơng trình sẽ kiểm tra mật khẩu. Nếu đăng nhập thành công
chƣơng trình sẽ tìm nhóm của ngƣời dùng, nếu nhóm là Nhân viên chƣơng trình sẽ
disable chức năng Admin, nếu nhóm là Admin chƣơng trình sẽ enable chức năng
Admin.
Hình V-2: Giao diện phục hồi mật khẩu
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
47
Khi ngƣời dùng ấn nút Quên mật khẩu chƣơng trình sẽ mở rộng ra để hiển thị
chức năng phục hồi mật khẩu. Khi ngƣời dùng điền email vào Textbox thì chƣơng
trình sẽ kiểm tra có đúng định dạng Email hay không, sau đó ấn Enter hoặc click
vào nút Phục hồi mật khẩu chƣơng trình sẽ kiểm tra email có tồn tại không. Nếu
sai chƣơng trình sẽ thông báo, nếu đúng chƣơng trình sẽ gửi mật khẩu mới qua
Email, ngƣời dùng check mail để lấy mật khẩu mới.
VI.2.2. Chức năng chọn Database
Chức năng này chỉ hiện ra khi ngƣời dùng click vào nút Chọn CSDL ở Form
Đăng nhập hoặc kết nối tới CSDL thất bại.
Hình V-3: Giao diện chức năng khi chọn phương thức Nhập thủ công
Mặc định phƣơng thức kết nối là Nhập thủ công, ngƣời dùng sẽ chọn địa chỉ
Server, có thể là địa chỉ IP hoặc tên máy. Username và password đƣợc tạo trong
Sql Server, và cuối cùng là tên Database.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
48
Hình V-4: Giao diện chức năng khi chọn phương thức nhập chuỗi kết nối
Đây là 1 tính năng nâng cao, khi lựa chọn phƣơng thức Nhập chuỗi kết nối
hoặc Window Authenticate thì khi đó Form chỉ còn lại 1 Textbox để ngƣời dùng
nhập chuỗi kết nối vào. Cách này tƣơng đối khó, đòi hỏi ngƣời sử dụng phải có
kiến thức về kết nối CSDL trong .NET
Thông tin đăng nhập Sql Server đƣợc lƣu trong file setting.ini. Mật khẩu đƣợc
mã hoá bằng thuật toán AES để có thể giải mã lại.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
49
VI.2.3. Chức năng chính
Hình V-5: Giao diện chức năng chính
Do xe vào phía bên phải, ngƣợc lại hƣớng nhìn của ngƣời giữ xe nên Luồng
vào nằm bên trái. Và luồng ra cùng hƣớng nhìn với ngƣời giữ xe nên thiết kế bên
phải. Mỗi luồng có 2 webcam để chụp phía trƣớc và phía sau.
Ở giữa là TextBox số thẻ, ngƣời dùng nhập số thẻ và ấn Enter thì chƣơng trình
sẽ kiểm tra là xe đó ra hay vào. Nếu xe vào thì lƣu thông tin của xe vào, ngƣợc lại
xe ra thì lấy thông tin đã lƣu và hiện thông tin xe vào ở luồng vào để so sánh. Nếu
biển số trùng nhau thì hợp lệ, cho xe ra đồng thời cũng lƣu thông tin vào CSDL.
Do chƣơng trình không nhận dạng đúng 100% các biển số nên Textbox biển số
có thể nhập đƣợc, nhƣng chỉ đƣợc nhập đúng định dạng biển số theo biểu thức
chính quy.
Chƣơng trình có 2 phím tắt là và Down dùng để Start - Stop quá trình dò tìm
biển số luồng ra, Up dùng để Start - Stop quá trình dò tìm biển số luồng vào và
Enter: lƣu thông tin xe vào - ra. Khi chƣơng trình hoạt động có 2 Progress Bar báo
hiệu chƣơng trình đang dò biển số.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
50
Hình V-6: Menu của Form chính
Form chính có các menu có chức năng tƣơng ứng:
Báo mất thẻ: chƣơng trình sẽ hiện InputBox cho ngƣời dùng nhập số thẻ
vào đó. Thẻ bị mất chƣơng trình sẽ không sử dụng lại.
Báo hƣ thẻ: chƣơng trình sẽ hiện InputBox cho ngƣời dùng nhập số thẻ
vào đó. Thẻ bị hƣ sẽ đƣợc lên danh sách để ngƣời quản lý biết thẻ nào
hƣ để in lại.
Đổi thƣ mục lƣu ảnh: chƣơng trình sẽ hiện InputBox cho ngƣời dùng
nhập đƣờng dẫn thƣ mục vào đó. Nếu thƣ mục tồn tại chƣơng trình sẽ
lƣu ảnh xe vào - ra ở thƣ mục đó, ngƣợc lại chƣơng trình sẽ báo thƣ mục
không tồn tại.
Chọn Camera: ngƣời dùng sẽ chọn camera cho từng vị trí xe ra vào.
Chức năng này cần thiết khi lần đầu cài đặt chƣơng trình.
Tìm kiếm: sẽ hiện Form tìm kiếm
Thống kê: sẽ hiện Form thống kê
Ngƣời dùng -> Đổi mật khẩu: sẽ hiện Form đổi mật khẩu
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
51
VI.2.4. Chức năng chọn Camera
Hình V-7: Giao diện Form chọn Camera
Chƣơng trình sẽ cho ngƣời dùng lựa chọn Camera với vị trí sẽ hiển thị ở chức
năng chính. Click OK chƣơng trình sẽ lƣu lại các lựa chọn.
VI.2.5. Chức năng đổi mật khẩu
Hình V-8: Giao diện chức năng đổi mật khẩu
Ngƣời dùng muốn đổi mật khẩu thì nhập mật khẩu cũ và điền mật khẩu mới 2
lần. Nếu mật khẩu cũ đúng và 2 mật khẩu mới giống nhau thì chƣơng trình sẽ đổi
mật khẩu, ngƣợc lại sẽ báo lỗi.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
52
VI.2.6. Chức năng tìm kiếm
Hình V-9: Giao diện chức năng tìm kiếm
Ngƣời dùng có thể kết hợp các điều kiện tìm kiếm để cho ra kết quả phù hợp
nhất. Các kết quả trả về hiển thị ở DataGridView, khi ngƣời dùng click vào mỗi
dòng ở DataGridView thì sẽ hiện ảnh chụp lúc xe ra vào.
Có 2 lựa chọn tìm kiếm biển số là tìm chính xác và tìm gần giống.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
53
VI.2.7. Chức năng thống kê
Hình V-10: Giao diện chức năng thống kê
Có 3 chức năng thống kê: thống kê theo doanh thu (đồng) , số lƣợng xe (chiếc),
thời gian trực (phút) của từng nhân viên. Kết quả sẽ đƣợc hiển thị theo biểu đồ cột
Ngƣời dùng có thể chọn khoảng thời gian để thống kê, khi ấn nút Thống kê
chƣơng trình sẽ thống kê trong khoảng thời gian chỉ định. Có bảng tính tổng ở góc
trên hiển thị tổng số lƣợng.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
54
VI.2.8. Chức năng Admin
Hình V-11: Giao diện Tab Danh sách nhân viên
Tab này có tác dụng cập nhật thông tin nhân viên. Khi nhập đầy đủ vào các
trƣờng thì chƣơng trình cho phép thêm nhân viên mới, ngƣợc lại chƣơng trình sẽ
báo thiếu tại trƣờng còn thiếu.
Khi click vào 1 dòng trong Datagridview thì chƣơng trình load toàn bộ thông
tin lên các trƣờng cho ngƣời dùng cập nhật. Nếu thiếu thông tin thì chƣơng trình
sẽ báo lỗi tƣơng ứng.
Phía trên là công cụ tìm kiếm nhân viên nếu nhƣ chƣơng trình này có nhiều
ngƣời sử dụng và cần tìm nhanh.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
55
Hình V-12: Giao diện Tab chấm công
Ngƣời dùng chọn khoảng thời gian cần thiết và chọn nhân viên, sau đó ấn nút
tìm kiếm chƣơng trình sẽ hiện ra tất cả phiên làm việc của nhân viên đó, bao gồm
thời gian đăng nhập và thời gian đăng xuất. Sau đó tính tổng thời gian và hiển thị.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
56
Hình V-13: Giao diện Tab bảng giá
Chức năng này dùng để thêm giá tiền cho loại xe mới hoặc thay đổi giá tiền
cho loại xe.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
57
Hình V-14: giao diện tab in thẻ xe
Đầu tiên cần lấy số thẻ để chƣơng trình tạo thẻ xe. Ngƣời dùng có thể lựa chọn
3 cách để lấy số thẻ:
In thẻ bị hƣ: dựa vào báo cáo thẻ bị hƣ của nhân viên giữ xe
In từ thẻ số... đến thẻ số...: chức năng này tạo hàng loạt thẻ để in trong
khoảng ngƣời dùng chỉ định
Nhập thủ công: ngƣời dùng nhập số thẻ để in, các số thẻ cách nhau bằng
dấu phẩy. Ví dụ:
1,9,454,24,44
Sau đó ấn nút tạo thẻ chƣơng trình sẽ tạo thẻ để in, các nút Print, Print
preview,... nằm ở thanh công cụ bên dƣới. Khi in xong thì ấn nút in xong để
chƣơng trình lƣu các thẻ đã in vào CSDL.
Bên phải là chức năng hiển thị các thẻ đang sử dụng trong chƣơng trình.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
58
Hình V-15: giao diện in thẻ nhân viên
Đây là chức năng in thẻ nhân viên để đăng nhập vào hệ thống, ngƣời dùng
chọn nhân viên và chọn ảnh đại diện, ấn nút tạo thẻ chƣơng trình sẽ tạo thẻ để in.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
59
VI.2.9. Phân phối chƣơng trình
Hình V-16:Giao diện cài đặt tương tự như các chương trình khác
Chƣơng trình đƣợc đóng gói thành file setup.exe và phiên bản khác là đĩa DVD
để dễ cài đặt, đĩa DVD đƣợc đính kèm theo luận văn. Còn CSDL là file script.sql
đi kèm, khi ngƣời dùng muốn tạo CSDL để sử dụng chỉ cần run query là đƣợc.
Các yêu cầu về phần cứng và phần mềm:
OS: Window7 x64
CPU: Intel dual core hoặc AMD Athlon X2 trở lên
RAM: 1GB trở lên
HDD: trống ít nhất 1.5GB
4 webcam
Máy quét mã vạch
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
60
CHƢƠNG VI. KẾT LUẬN
VI.1 Ƣu điểm
Qua quá trình kiểm thử và sửa chữa các tính năng cho phù hợp thì phần mềm
này đã có thể áp dụng thực tế tại bãi giữ xe Khu 3 trƣờng Đại học Cần Thơ hay
các bãi giữ xe khác trong trƣờng.
Phần mềm này đã thực hiện hết các yêu cầu của Luận văn giai đoạn 1, hoàn
thành các mục tiêu nghiên cứu ở phần I.2. Thay thế các thuật toán không phù hợp
với yêu cầu thực tế trong giai đoạn 1. Ngoài ra nhờ quá trình kiểm thử tỉ mỉ trên
nhiều máy tính, nhiều ngƣời sử dụng thử mà chƣơng trình bắt lỗi khá tốt.
VI.2 Khuyết điểm
Dung lƣợng khá nặng (1GB)
Do xử lý ảnh thời gian thực nên đòi hỏi cấu hình máy trung bình khá
Chạy tốt trên window 7 64bit, các hệ điều hành khác phải thay đổi thƣ
viện dll thủ công cho phù hợp với hệ điều hành.
Có tỉ lệ nhận diện sai nhất định
Theo kết quả nghiên cứu thì không thể có trƣờng hợp nhận diện
đúng 100% các loại biển số. Nguyên nhân có cả khách quan lẫn chủ
quan. Khách quan là do biển số xe bị nhoè, chủ xe dán decal mất số, bụi
bám lên biển số... Chủ quan là mô hình học không thể có độ chính xác
100%
Cách giải quyết là cho chƣơng trình nhận diện biển số thời gian thực
(realtime) để kiểm tra đến khi đúng định dạng biển số thì ngƣng. Nếu
không nhận diện đƣợc thì cho ngƣời sử dụng chƣơng trình nhập tay.
Tuy nhiên rất hiếm xảy ra trƣờng hợp này.
VI.3 Hƣớng phát triển
Nhận diện biển số xe hơi với cách làm tƣơng tự khi trƣờng ĐH Cần Thơ có
nhu cầu hoặc sử dụng cho các bãi giữ xe khác.
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
61
PHỤ LỤC
[a] Phần mềm Object Locator
Đây là phần mềm tự viết để hỗ trợ cho công việc chuẩn bị tập dữ liệu huấn
luyện haar-like. Tập dữ liệu ảnh dƣơng dùng để huấn luyện có định dạng:
<tên ảnh> <số đối tƣợng trong ảnh> x y w h ... x y w h
.............................................................................................
<tên ảnh> <số đối tƣợng trong ảnh> x y w h ... x y w h
Hình VI-1: Giao diện chương trình
Khi ấn nút chọn thƣ mục chứa hình ảnh chƣơng trình sẽ load toàn bộ ảnh trong
thƣ mục đó. Ngƣời dùng drag - drop chuột để tạo khung viền bao lấy biển số xe.
Nếu có nhiều hơn 1 biển số thì làm nhiều lần, khi xong 1 ảnh thì ấn Enter để
chƣơng trình lƣu các giá trị vào file location.txt. Nếu drag - drop sai ngƣời dùng có
thể ấn xoá và làm lại
Ở dƣới có nút Tạo file Background để tạo file bg.txt. Khi ấn vào nút đó sẽ hiện
lên cửa sổ chọn thƣ mục, khi ngƣời dùng chọn xong sẽ tạo file bg.txt chứa toàn bộ
file ảnh trong thƣ mục đó. Chức năng này dùng để tạo danh sách ảnh negative
nhanh.
Cuối cùng là nút Đếm số dòng để kiểm tra file text có đúng với số lƣợng ảnh
hay không nhằm tránh bỏ sót ảnh hoặc thao tác sai.
Picture
Box
Đƣờng
dẫn
ảnh
Toạ độ
biển số
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
62
[b] Phần mềm tách ký tự
Đây là phần mềm tự viết để tách các ký tự biển số. Thuật toán của chƣơng
trình đơn giản nhƣ sau:
Chọn thƣ mục chứa ảnh và duyệt qua tất cả file ảnh
Save ảnh với kích cỡ của khung định vị
[c] Phần mềm Img2bin
Đây là phần mềm tự viết để hỗ trợ cho công việc chuẩn bị tập dữ liệu huấn
luyện SVM. Chƣơng trình này có sử dụng EmguCV để chuyển ảnh từ ảnh màu
sang ảnh nhị phân. Từ đó tạo file dữ liệu phù hợp để huấn luyện phân lớp SVM.
Hình VI-2:Giao diện phần mềm Img2bin
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
63
Nút Choose Image dùng để chọn 1 ảnh và hiển thị các giá trị nhị phân
vào textbox
Nút Save dùng để lƣu giá trị textbox vào file text
Nút Select Folder sẽ chọn 1 thƣ mục, load toàn bộ ảnh trong thƣ mục đó
và chuyển thành dạng nhị phân. Với mỗi hình ảnh sẽ xoay theo các góc
ngƣời dùng chỉ định, giả sử nhập -20 và 20 thì hình ảnh sẽ xoay theo 41
góc và lƣu lại dạng nhị phân
Chỉ cần click nút Select Folder sẽ tạo ra đƣợc tập dữ liệu học cho SVM
Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818
64
TÀI LIỆU THAM KHẢO
[1] Nguyễn Văn Đồng. Luận văn tốt nghiệp đại học: Hệ thống quản lý bãi xe
thông minh.
[2] Đỗ Thanh Nghị. Khai mỏ dữ liệu - Minh hoạ bằng ngôn ngữ R . Nhà xuất
bản Đại học Cần Thơ
[3] Paul A. Viola and Michael J. Jones: Rapid Object Detection using a
Boosted Cascade of Simple Features.
[4] http://www.emgu.com/
[5] https://www.devexpress.com/
[6] http://www.installshield.com/
[7] http://www.csie.ntu.edu.tw/~cjlin/libsvm/
[8] http://www.matthewajohnson.org/software/svm.html