64
Công ty TNHH Mã Ngun It - Manguonit.com Mobile: 0976805818 1 Công ty TNHH Mã Ngun IT (manguonit.com). I. Liên h- Mobile: 0976-805.818 - Email: [email protected] II. Thông tin tài khon Ngân hàng Quý khách vui lòng thanh toán sn phm ca mình bng hình thc chuyn khon mt trong các ngân hàng sau: 1. Ngân hàng TMCP Công Thƣơng Việt Nam (VietinBank) - Chtài khon: Phm Tt Thành - Stài khon: 711A73808804 - Chi nhánh: Hà Nam 2. Ngân hàng đầu tƣ và phát triển Vit Nam (BIDV) - Chtài khon: Phm Tt Thành - Stài khon: 48210000206014 - Chi nhánh: Hà Nam 3. Ngân hàng Ngoại Thƣơng Việt Nam (Vietcombank) - Chtài khon: Phm Tt Thành - Stài khon: 0301002824093 - Chi nhánh: Hà Nam

Demo-Nhan Dang Bien So

Embed Size (px)

DESCRIPTION

cho SV Toan Tin

Citation preview

Page 1: Demo-Nhan Dang Bien So

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

Page 2: Demo-Nhan Dang Bien So

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

Page 3: Demo-Nhan Dang Bien So

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

Page 4: Demo-Nhan Dang Bien So

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

Page 5: Demo-Nhan Dang Bien So

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

Page 6: Demo-Nhan Dang Bien So

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)

Page 7: Demo-Nhan Dang Bien So

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ế.

Page 8: Demo-Nhan Dang Bien So

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.

Page 9: Demo-Nhan Dang Bien So

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:

Page 10: Demo-Nhan Dang Bien So

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.

Page 11: Demo-Nhan Dang Bien So

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ự

Page 12: Demo-Nhan Dang Bien So

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

Page 13: Demo-Nhan Dang Bien So

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

Page 14: Demo-Nhan Dang Bien So

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.

Page 15: Demo-Nhan Dang Bien So

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).

Page 16: Demo-Nhan Dang Bien So

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.

Page 17: Demo-Nhan Dang Bien So

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.

Page 18: Demo-Nhan Dang Bien So

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.

Page 19: Demo-Nhan Dang Bien So

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.

Page 20: Demo-Nhan Dang Bien So

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.

Page 21: Demo-Nhan Dang Bien So

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

Page 22: Demo-Nhan Dang Bien So

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ả.

Page 23: Demo-Nhan Dang Bien So

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ố

Page 24: Demo-Nhan Dang Bien So

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

Page 25: Demo-Nhan Dang Bien So

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.

Page 26: Demo-Nhan Dang Bien So

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%.

Page 27: Demo-Nhan Dang Bien So

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

Page 28: Demo-Nhan Dang Bien So

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%

Page 29: Demo-Nhan Dang Bien So

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

Page 30: Demo-Nhan Dang Bien So

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>…….

Page 31: Demo-Nhan Dang Bien So

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

Page 32: Demo-Nhan Dang Bien So

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

Page 33: Demo-Nhan Dang Bien So

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.

Page 34: Demo-Nhan Dang Bien So

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.

Page 35: Demo-Nhan Dang Bien So

Công ty TNHH Mã Nguồn It - Manguonit.com – Mobile: 0976805818

35

IV.2 Mô hình CDM

6

Page 36: Demo-Nhan Dang Bien So

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

Page 37: Demo-Nhan Dang Bien So

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.

Page 38: Demo-Nhan Dang Bien So

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.

Page 39: Demo-Nhan Dang Bien So

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.

Page 40: Demo-Nhan Dang Bien So

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.

Page 41: Demo-Nhan Dang Bien So

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

Page 42: Demo-Nhan Dang Bien So

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.

Page 43: Demo-Nhan Dang Bien So

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

Page 44: Demo-Nhan Dang Bien So

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

Page 45: Demo-Nhan Dang Bien So

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%

Page 46: Demo-Nhan Dang Bien So

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

Page 47: Demo-Nhan Dang Bien So

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.

Page 48: Demo-Nhan Dang Bien So

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.

Page 49: Demo-Nhan Dang Bien So

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ố.

Page 50: Demo-Nhan Dang Bien So

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

Page 51: Demo-Nhan Dang Bien So

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.

Page 52: Demo-Nhan Dang Bien So

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.

Page 53: Demo-Nhan Dang Bien So

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.

Page 54: Demo-Nhan Dang Bien So

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.

Page 55: Demo-Nhan Dang Bien So

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ị.

Page 56: Demo-Nhan Dang Bien So

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.

Page 57: Demo-Nhan Dang Bien So

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.

Page 58: Demo-Nhan Dang Bien So

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.

Page 59: Demo-Nhan Dang Bien So

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

Page 60: Demo-Nhan Dang Bien So

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.

Page 61: Demo-Nhan Dang Bien So

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ố

Page 62: Demo-Nhan Dang Bien So

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

Page 63: Demo-Nhan Dang Bien So

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

Page 64: Demo-Nhan Dang Bien So

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