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

NHẬN DIỆN CHỮ SỐ SỬ DỤNG THUẬT TOÁN SVM (có code)

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

ĐỒ ÁN TỐT NGHIỆP

NHẬN DIỆN CHỮ SỐ SỬ DỤNG
THUẬT TOÁN SVM


MỤC LỤC


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


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


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

Histogram of Oriented Gradients

OCR

Optical Character Recognition

SVM

Support vector machine


ĐỒ ÁN TỐT NGHIỆP
Trang 6/33



CHƯƠNG 1.

GIỚI THIỆU

1.1 Giới thiệu về chữ viết tay
• Nhận dạng chữ đang là vấn đề được quan tâm hiện nay và đến nay lĩnh vực
này cũng đang gặt hái được nhiều thành tựu to lớn trên cả lý thuyết và ứng
dụng thực tế. Nhận dạng chữ được chia ra làm hai loại: nhận dạng chữ in và
nhận dạng chữ viết tay.
• Đến bây giờ thì nhận dạng chữ in gần như được giải quyết trọn vẹn. Nhận
dạng chữ viết tay vẫn đang là vấn đề khó khăn để có thể giải quyết được.
Nhận dạng chữ viết tay được chia ra làm 2 loại: Nhận dạng chữ viết tay trực
tuyến (online) và nhận dạng chữ viết tay ngoại tuyến (offline).
• Nhận dạng chữ viết tay trực tuyến được thực hiện trên cơ sở lưu lại các thông
tin nét chữ như thứ tự của các nét vẽ, hướng và tốc độ của nét viết trong quá
trình viết. Vì vậy nên máy tính nhận dạng theo loại này khá đơn giản. Ngược
lại đối với nhận dạng chữ viết tay ngoại tuyến đầu vào là một văn bản được
quét nên việc nhận dạng khó hơn nhiều so với nhận dạng trực tuyến. Do ảnh
đầu vào là một ảnh văn bản nên nhận dạng chữ viết ngoại tuyến hay nhận
dạng chữ in còn được gọi chung là nhận dạng chữ quang học (OCR).
• Khó khăn lớn nhất khi nghiên cứu về nhận dạng chữ viết tay là sự biến đổi
đa dạng chữ viết của mỗi người. Cùng một chữ viết nhưng lại biến đổi theo
thói quen, ngữ cảnh và đặc biệt là kiểu viết của từng người. Điều này gây ra
trở ngại rất lớn cho việc nhận dạng.
1.1.1 Phương pháp nhận dạng SVM
• Trong những năm gần đây, phương pháp nhận dạng SVM đã có được nhiều
thành tựu to lớn trong nhận dạng chữ viết ngoại tuyến và đạt được kết quả
ngang hàng so với phương pháp truyền thống như mạng Neural Networks.
• Phương pháp SVM được Vapnik đề xuất vào năm 1995. Đây là phương pháp

dựa trên lý thuyết học về thống kê nên có nền tảng toán học chặt chẽ và vì
vậy nên sẽ cho ra kết quả một cách tối ưu nhất. Ý tưởng của phương pháp

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 7/33

này là chuyển tập mẫu từ không gian biểu diễn Rn của chúng sang sang một
không gian Rd có số chiều lớn hơn. Trong không gian Rd tìm 1 siêu phẳng
tối ưu để phân hoạch tập mẫu này dự trên phân lớp của chúng, cũng có nghĩa
tìm ra miền phân bố của từng lớp trong không gian biểu diễn Rn và từ đó xác
định được phân lớp của mẫu cần nhận dạng.

Hình 1-1. Siêu phẳng phân hoạch tập mẫu [1]

• Ý tưởng cơ bản của Kernel SVM và các phương pháp Kernel nói chung là
tìm một phép biến đổi sao cho dữ liệu ban đầu không phân biệt tuyến tính
được có thể biến sang được không gian mới. Và ở không gian mới này có thể
phân biệt được tuyến tính. Cụ thể hơn, Kernel SVM sẽ tìm ra một hàm biến
đổi dữ liệu từ feature ban đầu thành dữ liệu trong không gian mới. Hàm này
cần thỏa mãn mục đích của chúng ta: trong không gian mới, phân biệt tuyến
tính hoặc gần như phải phân biệt tuyến tính. Khi đó, ta có thể dung các bộ
phân lớp tuyến tính thong thường như: PLA, Logictis Regression, hay
Hard/Soft Margin SVM.
• So sánh với thuật toán Neural Networks. Đối với Neural Networks dung
activation functions dùng để phá vỡ tính tuyến tính của mô hình còn hàm
dùng trong SVM đi biến dữ liệu không phân biệt tuyến tính thành phân biệt


Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 8/33

tuyến tính. Nói chung là giống nhau về kết quả nhưng ta có cách nhìn khác
nhau về hướng giải quyết.
• Với hàm này thì kết quả tạo ra sẽ có số chiều cao hơn so với số chiều ban
đầu, thậm chí có thể đến vô hạn về số chiều. Nếu tính toán trực tiếp chúng ta
sẽ gặp một số vấn đề bộ nhớ và hiệu năng tính toán. Có cách để tiếp cận trực
tiếp với nó là sử dụng Kernel functions mô tả quan hệ giữa hai điểm dữ liệu
bất kỳ trong không gian mới thay vì phải tính toán từng điểm dữ liệu trong
không gian mới.
• Trong kỹ thuật SVM không gian dữ liệu nhập ban đầu sẽ được ánh xạ vào
không gian đặc trưng và trong không gian đặc trưng này mặt siêu phẳng phân
chia tối ưu sẽ được xác định.
• Ta có tập S gồm e các mẫu học:

với một vector đầu vào n chiều x i thuộc Rn thuộc lớp I hoặc lớp II (tương ứng
nhãn yi = 1 đối với lớp I và yi = -1 đối với lớp II). Một tập mẫu được gọi là
tầm thường nếu tất cả các nhãn bằng nhau.
• Đối với các dữ liệu phân chia tuyến tính, chúng ta có thể xác định được siêu
phẳng f(x) mà nó có thể chia tập dữ liệu. Khi đó với mỗi siêu phẳng nhận
được ta có: f(x) >= 0 nếu đầu vào x thuộc lớp dương, và f(x) < 0 nếu đầu vào
x thuộc lớp âm.

trong đó w là vector pháp tuyến n chiều và b là giá trị ngưỡng.
Vector pháp tuyến w xác định chiều của siêu phẳng f(x), còn giá trị ngưỡng b
xác định khoảng cách giữa siêu phẳng và gốc.

• Tại sao lại sử dụng thuật toán SVM trong phân lớp dữ liệu:

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 9/33

o SVM rất hiệu quả để giải quyết bài toán dữ liệu có số chiều lớn (ảnh
của dữ liệu biểu diễn gene, protein, tế bào,..).
o SVM giải quyết vấn đề overfitting rất tốt (dữ liệu có nhiễu và tách dời
nhóm hoặc dữ liệu huấn luyện quá ít).
o Là phương pháp phân lớp nhanh.
o Có hiệu suất tổng hợp tốt và hiệu suất tính toán cao.



1.1.2 Tính năng HOG
HOG là một feature descriptor được sử dụng để xử lý hình ảnh dùng để phát
hiện một đối tượng. Các khái niệm được đưa ra nhưng mãi đến năm 2005
HOG mới được sử dụng rộng rãi kể từ sau khi Navneet và Bill Triggs có
những bổ sung về HOG



HOG cũng giống như các biểu đồ Edge Orientation, Scale-invariant feature
transform descriptors, shape contexts nhưng HOG tính toán trên một mạng
lưới cell dày đặc và chuẩn hóa độ tương phản giữa các khối để nâng cao độ
chính xác. HOG chủ yếu dùng để mô tả sự xuất hiện và hình dạng của một
chủ đề chính trong ảnh.


• HOG sẽ chuyển đổi kích thước cố định của một vector đặc trưng có kích
thước cố định. HOG sẽ tính toán cho hình ảnh có kích thước 64 x 128. Kích
thước ban đầu của một hình ảnh là 64 x 128 x 3 = 24576 và sau khi qua tính
năng HOG thì sẽ giảm xuống 3780.
• HOG được thực hiện dựa trên ý tưởng phân bố các gradient theo các định
hướng một cách hợp lý nhất.

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 10/33

CHƯƠNG 2.

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

2.1 Sơ đồ khối
Đưa ảnh vào

Tiền xử lý
Sử dụng tính năng HOG

Sử dụng thuật toán SVM để
nhận dạng

Xuất ra kết quả
Hình 1-2. Sơ đồ khối




2.1.1 Đưa ảnh vào
Sử dụng ảnh văn bản là con số viết tay để đưa vào chương trình GUI trên
matlab.



2.1.2 Tiền xử lý
Ở bước này hình ảnh sau khi được đưa vào sẽ qua các bước tiền xử lý ảnh
như tăng giảm độ tương phản và hình thái học trên ảnh để có một bức ảnh có
chất lượng tốt hơn để đưa vào bước tiếp theo.



2.1.3 Sử dụng tính năng HOG
Vì hình ảnh khi đưa vào có khá nhiều những thông tin không quan trọng và
cần thiết cho chúng ta nên cần phải loại bỏ chúng. HOG sẽ làm nhiệm vụ
giảm kích thước của hình ảnh từ 24576 xuống còn 3780. Dưới đây sẽ là các
bước HOG thực hiện trên hình ảnh có kích thước 64 x 128:

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 11/33

o

Bước 1: Tính các gradient x, y, gx , gy từ hình ảnh ban đầu. Để tính

được ta sử dụng 2 ma trận H1 và H2 có kích thước [1 x 3] và [3 x 1],
trong đó 1 ma trận là sự xoay 900 so với ma trận còn lại.

Hình 2-2. Ma trận Kernels [1]

o Sử dụng các ảnh gradient để ta tính toán được cường độ và hướng của
của gradient theo công thức sau:

Hình 2-3. Công thức tính toán gradient

o Góc Theta sẽ nằm trong khoảng 0 đến 180 độ.
o Bước 2: Chia hình ảnh ra thành 8x8 cells.
o Bước 3: Tính toán biểu đồ trong 8x8 cells: Tại mỗi điểm ảnh trong
8x8 cells này ta có được 1 gradient bao gồm hướng và độ lớn của
gradient này. Vì vậy ta sẽ có được 64 hướng và 64 độ lớn, tức là 128
số sẽ nhỏ gọn và hữu ích hơn cho việc tính toán. Sau đó 128 số này sẽ
được chuyển đổi thành biểu đồ 9 số. Các số của biều đồ sẽ tương ứng
với các đường gradient được định trước: 0, 20, 40, 60, 80, 100, 120,
140, 160 độ. Nếu số ở trong khoảng giữa 2 thùng sẽ được tính toán độ
lớn gradient dựa trên khoảng cách từ điểm đó đến hai số mốc.

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 12/33

o Bước 4: Bình thường hóa: Việc biểu đồ được tính ở các bước trên
chưa làm thay đổi độ sáng một cách mạnh mẽ. Việc nhân cường độ
hình ảnh bằng một yếu tố cũng sẽ tăng giá trị của biểu đồ gây sự sai

lệch ánh sáng. Để khắc phục lỗi này ta sẽ bình thường nó lại để chúng
trở nên không sai lệch. Việc thực hiện trên 8x8 cells sẽ tạo ra hình ảnh
với 16x16 cells. Vậy thay vì việc biểu đồ có 9 thành phần thì bây giờ
biểu đồ sẽ có 36 thành phần.
o Bước 5: Hình ảnh đầu vào là 64 x 128 pixel, chúng ta sẽ di chuyển 8
pixel cùng một thời điểm. Do đó chúng ta có thể thực hiện được 7
bước theo hướng ngang và 15 bước theo hướng dọc. Như vậy ta có
7x15=105 bước. Ở mỗi bước ta có 36 số. Vậy ta có 105x36=3780 là
độ dài của vector.



2.1.4 Sử dụng thuật toán SVM để nhận dạng
Ở bước này sẽ sử dụng thuật toán SVM để tạo ra một siêu phẳng để tạo ra 2
phần riêng biệt của phần hình để dễ dàng xác định phần quan trọng của hình
và từ đó sẽ nhận dạng được chữ số đưa vào. Còn trên mặt phẳng 3 chiều thì
việc những điểm của ảnh sẽ được ánh xạ qua một mặt phẳng nhiều chiều hơn
và sẽ dùng một siêu phẳng để tách những phần riêng biệt đó ra.



2.1.5 Xuất ra kết quả
Sau khi trải qua quá trình training và nhận dạng được sẽ xuất ra được kết quả
là chữ số sau khi nhận dạng được. Việc khó khăn vẫn là thói quen viết của
từng người nên sự chuẩn xác không phải là chắc chắn.

2.2 Training
• Ở phần này ta sẽ tìm hiểu cách phân loại chữ số sử dụng HOG và thuật toán
SVM.
o Có được bộ dữ liệu hình ảnh của các số mong muốn thực hiện (Data

set).
o Phân vùng bộ dữ liệu, training và kiểm tra.
o Training sử dụng tính năng HOG.
Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 13/33

o Sử dụng thuật toán SVM để kiểm tra.



2.2.1 Data set
Ở bước này ta sẽ đưa vào 2 loại dữ liệu là những hình ảnh của những chữ số
viết tay theo nhiều thói quen của nhiều người để dễ dàng nhận dạng. Loại dữ
liệu còn lại là những chữ số được bao quanh những chữ số khác tương tự như
khi ta nhìn những chữ số được nhìn thấy với nhau. Việc sử dụng càng nhiều
mẫu sẽ tạo ra nhiều trường hợp nhận dạng khác nhau nên sẽ đa dạng về cách
nhận dạng.

Hình 2-3. Chọn thư mục hình ảnh

Hình 2-4. Synthetic và Handwritten

• Sau bước này chúng ta sẽ biến nó thành 1 vector của toàn bộ hình ảnh trong
thư mục theo phương pháp đệ quy. Trong đó vector này sẽ chạy từ 1 đến số
thư mục có trong file ta đã chọn ở trên.

Hình 2-5. Biến file thành một vector


2.2.2 Sử dụng tính năng HOG

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 14/33



Sử dụng tính năng HOG thông qua hàm extractHOGFeatures dùng theo
Cellsize để trích xuất thông tin dữ liệu quan trọng. Ở đây thì ta chọn Cellsize
là [4 4] vì nó mã hóa thông tin không gian đủ để xác định trực quan hình
dạng của chữ số và hạn chế số lượng kích thước HOG hơn so với [2 2] và và
đủ thông tin hơn so với [8 8], giúp tăng tốc độ training. Và chọn [4 4] là tối
ưu nhất.

Hình 2-6. So sánh lượng thông tin các CellSize



2.2.3 Train HOG
Phân loại chữ số lúc này là một vấn đề về phân loại đa lớp. Phân loại để đưa
nó về 1 trong 10 chữ số có thể là nó. Sau khi các hình ảnh được đưa qua bộ
train HOG và sử dụng chức năng fitcecoc để trích xuất ra các kết quả sau khi
training HOG. Các tính năng này sẽ được đào tạo và phần loại để đưa qua bộ
train của thuật toán SVM.

Nhận diện chữ số sử dụng thuật toán SVM



ĐỒ ÁN TỐT NGHIỆP
Trang 15/33

Hình 2-7. Hàm để train HOG

Hình 2-8. Giá trị fitcecoc trả về

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 16/33



2.2.4 Train SVM
Từ các tính năng được xuất ra sau khi train HOG. Bây giờ ta sẽ dùng thuật
toán SVM để tiếp tục nhận dạng và kiểm tra chữ số bằng cách training SVM
và từ đó sẽ xuất ra kết là một bảng ma trận trong đó là các xác suất của chữ
viết tay và labels sau khi train. Dưới đây là ảnh mẫu về kết quả sau khi train
của những tấm ảnh viết tay và labels.

Hình 2-9. Kết quả train SVM
• Nhận xét: Kết quả có được không thỏa mong đợi. Lý do ở đây là chữ viết tay
quá ít hình ảnh nên việc train và đưa ra kết quả xác suất những con số ở đây
không hoàn toàn đúng và sai lệch cao. Cần thêm dữ liệu hình ảnh đưa vào để
xác suất trở nên tốt hơn. Vì vậy tập tin Test cần phải được thay đổi các thành
phần hình ảnh để khi nhận dạng có thể tạo ra xác suất nhận dạng tốt nhất khó

có thể gây ra nhầm lẫn. Dưới đây là một số tập tin Test được tạo ra ngẫu
nhiên để so sánh các kết quả tạo ra xác suất nhận dạng được số người dùng
mong muốn. Từ những kết quả này ta có thể lựa chọn tập tin Test phù hợp để
dùng trong chương trình.

Bảng 2-1. 12 số mặc định với Cell Size [4 4]

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 17/33

Digit
0
1
2
3
4
5
6
7
8
9

0
0.45
0.00
0.00
0.00

0.00
0.00
0.00
0.00
0.00
0.00

1
0.00
0.75
0.00
0.00
0.08
0.00
0.00
0.08
0.00
0.03

2
0.01
0.00
0.67
0.00
0.00
0.00
0.00
0.08
0.00
0.03


3
0.12
0.00
0.17
0.58
0.17
0.10
0.00
0.33
0.08
0.12

4
0.01
0.08
0.00
0.00
0.75
0.00
0.25
0.00
0.00
0.09

5
0.00
0.00
0.00
0.00

0.00
0.49
0.00
0.00
0.00
0.00

6
0.33
0.00
0.08
0.33
0.00
0.28
0.67
0.17
0.00
0.09

7
0.00
0.08
0.00
0.00
0.00
0.00
0.00
0.25
0.08
0.00


8
0.03
0.08
0.00
0.00
0.00
0.07
0.08
0.00
0.67
0.15

9
0.01
0.00
0.08
0.08
0.00
0.06
0.00
0.08
0.17
0.48

7
0.01
0.17
0.08
0.00

0.00
0.00
0.00
0.25
0.00
0.00

8
0.48
0.00
0.08
0.33
0.00
0.05
0.08
0.00
0.50
0.06

9
0.00
0.00
0.08
0.08
0.00
0.08
0.00
0.00
0.08
0.15


7
0.01
0.08
0.00
0.00
0.00
0.00
0.00
0.42
0.08
0.03

8
0.37
0.00
0.08
0.33
0.00
0.04
0.08
0.00
0.33
0.03

9
0.07
0.00
0.08
0.00

0.00
0.01
0.00
0.00
0.00
0.21

Bảng 2-2. 12 số mặc định với Cell Size [6 6]

Digit
0
1
2
3
4
5
6
7
8
9

0
0.06
0.00
0.00
0.00
0.00
0.01
0.00
0.00

0.00
0.03

1
0.00
0.33
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00

2
0.03
0.00
0.67
0.00
0.00
0.01
0.00
0.08
0.00
0.06

3
0.18
0.08

0.08
0.17
0.00
0.27
0.00
0.08
0.08
0.03

4
0.07
0.42
0.08
0.17
0.92
0.09
0.58
0.50
0.33
0.24

5
0.00
0.00
0.00
0.08
0.00
0.37
0.00
0.00

0.00
0.06

6
0.16
0.00
0.00
0.17
0.08
0.12
0.33
0.08
0.00
0.36

Bảng 2-3. 12 số mặc định với Cell Size [8 8]

Digit
0
1
2
3
4
5
6
7
8
9

0

0.16
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.03

1
0.00
0.42
0.00
0.00
0.00
0.01
0.00
0.00
0.00
0.00

2
0.07
0.00
0.75
0.58
0.00
0.23

0.00
0.17
0.17
0.42

3
0.04
0.08
0.00
0.00
0.00
0.08
0.00
0.08
0.00
0.06

Nhận diện chữ số sử dụng thuật toán SVM

4
0.06
0.33
0.08
0.08
0.75
0.04
0.00
0.33
0.08
0.15


5
0.06
0.00
0.08
0.00
0.08
0.53
0.00
0.00
0.08
0.03

6
0.13
0.08
0.00
0.00
0.17
0.06
0.92
0.00
0.25
0.03


ĐỒ ÁN TỐT NGHIỆP
Trang 18/33

Bảng 2-4. 12 số tự vẽ với Cell Size [4 4]


Digit
0
1
2
3
4
5
6
7
8
9

0
0.50
0.08
0.00
0.08
0.00
0.00
0.00
0.00
0.17
0.00

1
0.00
0.50
0.00
0.00

0.00
0.00
0.00
0.00
0.00
0.00

2
0.00
0.00
0.17
0.00
0.00
0.00
0.00
0.00
0.00
0.00

3
0.08
0.33
0.00
0.42
0.42
0.08
0.00
0.67
0.17
0.42


4
0.00
0.00
0.17
0.00
0.42
0.00
0.25
0.00
0.08
0.00

5
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00

6
0.33
0.08
0.08
0.17

0.08
0.67
0.67
0.17
0.33
0.00

7
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.08
0.00
0.00

8
0.00
0.00
0.33
0.08
0.00
0.08
0.08
0.08
0.25
0.17


9
0.08
0.00
0.25
0.25
0.08
0.00
0.00
0.00
0.00
0.42

7
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.17
0.00
0.00

8
0.50
0.00
0.17
0.25

0.08
0.17
0.25
0.00
0.25
0.33

9
0.00
0.00
0.00
0.08
0.00
0.00
0.00
0.00
0.00
0.17

7
0.00
0.00
0.00
0.00
0.00
0.00
0.00

8
0.25

0.00
0.00
0.25
0.00
0.25
0.17

9
0.00
0.00
0.08
0.33
0.00
0.00
0.00

Bảng 2-5. 12 số tự vẽ với Cell Size [6 6]

Digit
0
1
2
3
4
5
6
7
8
9


0
0.08
0.25
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00

1
0.00
0.33
0.00
0.00
0.00
0.00
0.00
0.08
0.00
0.00

2
0.00
0.00
0.17
0.00
0.00

0.00
0.00
0.00
0.00
0.00

3
0.08
0.00
0.00
0.58
0.25
0.33
0.00
0.67
0.33
0.42

4
0.00
0.25
0.67
0.08
0.58
0.42
0.25
0.08
0.25
0.00


5
0.00
0.17
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.08

6
0.33
0.00
0.00
0.00
0.08
0.08
0.50
0.00
0.17
0.00

Bảng 2-6. 12 số tự vẽ với Cell Size [8 8]

Digit
0
1
2

3
4
5
6

0
0.25
0.08
0.00
0.08
0.00
0.00
0.00

1
0.00
0.58
0.08
0.00
0.17
0.00
0.00

2
0.08
0.00
0.50
0.00
0.08
0.00

0.00

3
0.08
0.08
0.00
0.17
0.17
0.08
0.00

Nhận diện chữ số sử dụng thuật toán SVM

4
0.00
0.17
0.17
0.00
0.42
0.25
0.08

5
0.00
0.08
0.00
0.08
0.00
0.25
0.00


6
0.33
0.00
0.17
0.08
0.17
0.17
0.75


ĐỒ ÁN TỐT NGHIỆP
Trang 19/33

7
8
9

0.00
0.08
0.17

0.50
0.08
0.17

0.00
0.08
0.08


0.08
0.00
0.00

0.25
0.00
0.00

0.00
0.25
0.08

0.00
0.33
0.00

0.08
0.00
0.00

0.00
0.17
0.08

0.08
0.00
0.42

7
0.00

0.04
0.00
0.00
0.00
0.00
0.00
0.17
0.04
0.00

8
0.04
0.04
0.17
0.04
0.00
0.09
0.08
0.04
0.46
0.16

9
0.04
0.00
0.17
0.17
0.04
0.05
0.00

0.04
0.08
0.47

7
0.00
0.08
0.04
0.00
0.00
0.00
0.00
0.21
0.00
0.00

8
0.42
0.00
0.13
0.29
0.04
0.06
0.17
0.00
0.38
0.13

9
0.00

0.00
0.00
0.08
0.00
0.07
0.00
0.00
0.04
0.16

7

8

9

Bảng 2-7. 24 số với Cell Size [4 4]

Digit
0
1
2
3
4
5
6
7
8
9


0
0.38
0.04
0.00
0.04
0.00
0.00
0.00
0.00
0.08
0.00

1
0.00
0.63
0.00
0.00
0.04
0.00
0.00
0.04
0.00
0.02

2
0.04
0.00
0.42
0.00
0.00

0.00
0.00
0.04
0.00
0.02

3
0.04
0.17
0.08
0.50
0.29
0.10
0.00
0.50
0.13
0.20

4
0.00
0.04
0.08
0.00
0.58
0.00
0.25
0.00
0.04
0.07


5
0.00
0.00
0.00
0.00
0.00
0.44
0.00
0.00
0.00
0.00

6
0.46
0.04
0.08
0.25
0.04
0.32
0.67
0.17
0.17
0.07

Bảng 2-8. 24 số với Cell Size [6 6]

Digit
0
1
2

3
4
5
6
7
8
9

0
0.08
0.13
0.00
0.00
0.00
0.01
0.00
0.00
0.00
0.02

1
0.00
0.33
0.00
0.00
0.04
0.00
0.00
0.04
0.00

0.00

2
0.08
0.00
0.42
0.00
0.00
0.01
0.00
0.04
0.00
0.04

3
0.04
0.04
0.04
0.38
0.13
0.28
0.00
0.38
0.21
0.13

4
0.08
0.33
0.38

0.13
0.75
0.13
0.42
0.29
0.29
0.18

5
0.00
0.08
0.00
0.04
0.00
0.33
0.00
0.00
0.00
0.07

6
0.29
0.00
0.00
0.08
0.08
0.12
0.42
0.04
0.08

0.27

Bảng 2-9. 24 số với Cell Size [8 8]

Digit

0

1

2

3

Nhận diện chữ số sử dụng thuật toán SVM

4

5

6


ĐỒ ÁN TỐT NGHIỆP
Trang 20/33

0
1
2
3

4
5
6
7
8
9

0.17
0.04
0.00
0.04
0.00
0.00
0.00
0.00
0.04
0.07

0.00
0.50
0.04
0.00
0.08
0.01
0.00
0.25
0.04
0.04

0.17

0.00
0.63
0.29
0.04
0.21
0.00
0.08
0.13
0.33

0.04
0.08
0.00
0.08
0.08
0.08
0.00
0.08
0.00
0.04

0.00
0.25
0.13
0.04
0.58
0.06
0.04
0.29
0.04

0.11

0.00
0.04
0.04
0.04
0.04
0.50
0.00
0.00
0.17
0.04

0.25
0.04
0.08
0.04
0.17
0.07
0.83
0.00
0.29
0.02

0.04
0.04
0.00
0.00
0.00
0.00

0.00
0.25
0.04
0.02

0.29
0.00
0.04
0.29
0.00
0.06
0.13
0.00
0.25
0.04

0.04
0.00
0.04
0.17
0.00
0.01
0.00
0.04
0.00
0.27

8
0.00
0.08

0.08
0.08
0.00
0.08
0.08
0.00
0.42
0.08

9
0.08
0.00
0.25
0.25
0.08
0.08
0.00
0.08
0.08
0.50

8
0.50
0.00
0.08
0.17
0.08
0.08
0.33
0.00

0.25
0.08

9
0.00
0.00
0.00
0.17
0.00
0.17
0.00
0.00
0.08
0.17

Bảng 2-10. 6 số tự vẽ và 6 số mặc định với Cell Size [4 4]

Digit
0
1
2
3
4
5
6
7
8
9

0

0.33
0.08
0.00
0.08
0.00
0.00
0.00
0.00
0.17
0.00

1
0.00
0.58
0.00
0.00
0.08
0.00
0.00
0.00
0.00
0.08

2
0.08
0.00
0.25
0.00
0.00
0.00

0.00
0.08
0.00
0.00

3
0.00
0.17
0.08
0.42
0.33
0.00
0.00
0.50
0.08
0.17

4
0.00
0.00
0.17
0.00
0.50
0.00
0.25
0.00
0.08
0.00

5

0.00
0.00
0.00
0.00
0.00
0.50
0.00
0.00
0.00
0.00

6
0.50
0.08
0.17
0.17
0.00
0.33
0.67
0.08
0.08
0.17

7
0.00
0.00
0.00
0.00
0.00
0.00

0.00
0.25
0.08
0.00

Bảng 2-11. 6 số tự vẽ và 6 số mặc định với Cell Size [6 6]

Digit
0
1
2
3
4
5
6
7
8
9

0
0.08
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00


1
0.00
0.33
0.00
0.00
0.00
0.00
0.00
0.08
0.00
0.00

2
0.08
0.00
0.33
0.00
0.00
0.00
0.00
0.08
0.17
0.08

3
0.00
0.00
0.08
0.42

0.17
0.25
0.00
0.25
0.50
0.08

Nhận diện chữ số sử dụng thuật toán SVM

4
0.08
0.50
0.42
0.08
0.67
0.08
0.50
0.25
0.00
0.08

5
0.00
0.08
0.00
0.08
0.00
0.08
0.00
0.00

0.00
0.17

6
0.25
0.00
0.00
0.08
0.08
0.33
0.17
0.08
0.00
0.33

7
0.00
0.08
0.08
0.00
0.00
0.00
0.00
0.25
0.00
0.00


ĐỒ ÁN TỐT NGHIỆP
Trang 21/33


Bảng 2-12. 6 số tự vẽ và 6 số mặc định với Cell Size [8 8]

Digit
0
1
2
3
4
5
6
7
8
9

0
0.17
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.08
0.00

1
0.00
0.50

0.08
0.00
0.08
0.00
0.00
0.25
0.08
0.02

2
0.08
0.00
0.58
0.17
0.08
0.58
0.00
0.17
0.17
0.42

3
0.00
0.17
0.00
0.08
0.17
0.00
0.00
0.08

0.00
0.17

4
0.00
0.25
0.08
0.08
0.50
0.00
0.08
0.17
0.08
0.08

5
0.00
0.00
0.08
0.00
0.08
0.33
0.00
0.00
0.08
0.08

6
0.25
0.08

0.17
0.00
0.08
0.00
0.75
0.00
0.25
0.08

7
0.08
0.00
0.00
0.00
0.00
0.00
0.00
0.33
0.08
0.00

8
0.42
0.00
0.00
0.42
0.00
0.08
0.17
0.00

0.17
0.08

9
0.00
0.00
0.00
0.25
0.00
0.00
0.00
0.00
0.00
0.08

• Nhận xét: Từ các tập test trên cho ra những kết quả xác suất có thể nhận dạng
ra chữ số người dùng mong muốn. Tuy có những bảng có xác suất chính xác
của một con số là khá cao nhưng xác suất nhận ra các chữ số còn lại là rất
thấp và dễ bị nhầm lẫn với các số khác. Vì vậy ta sẽ chọn bảng 12 số mặc
định và chọn Cell Size là [4 4].



2.2.5 Confusion Matrix
Confusion Matrix trả về ma trận nhầm lẫn C được xác định bởi các nhóm đã
biết trước và nhóm dự đoán. C là một ma trận vuông với kích thước là tổng
số các yếu tố riêng biệt của hai ma trận hình thành nên C và hai ma trận này
phải cùng kiểu ma trận. Chỉ số nhóm và thứ tự của chúng giống nhau sẽ cho
ra giá trị của các hang và cột của C.




Đây là một trong hai tính năng chính trong thuật toán SVM dùng trong
chương trình nhận dạng này. Sau khi các hình ảnh qua bộ train HOG đến các
hình ảnh cần nhận dạng cũng được đưa qua bộ extractHOG để phân tích ảnh
thành những vector như các ảnh train. Sau đó từ hai phần là của ảnh train và
HOG của ảnh cần nhận dạng ta đưa vào tính năng confusion Matrix để kết
hợp hai để so sánh các vector của ảnh đưa vào với kết quả đã train được. Sau
một khoảng thời gian so sánh thì nó sẽ tạo ra một bảng confusion Matrix là
kết quả xác suất nhận dạng được con số người dùng mong muốn đã đưa vào.

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 22/33

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 23/33

CHƯƠNG 1.

KẾT QUẢ MÔ PHỎNG

1.1 Xây dựng thuật toán

Hình 3-1. Confusion Matrix sau khi training


Hình 3-2. Ảnh sau khi resize đúng chuẩn [16 16]

Hình 3-3. Confusion Matrix của ảnh đưa vào

1.2 Xây dựng Guide

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 24/33

Hình 3-4. Giao diện Guide

Hình 3-5. Kết quả nhận dạng số 0

Nhận diện chữ số sử dụng thuật toán SVM


ĐỒ ÁN TỐT NGHIỆP
Trang 25/33

Hình 3-6. Kết quả nhận dạng số 1

Hình 3-7. Kết quả nhận dạng số 2

Nhận diện chữ số sử dụng thuật toán SVM



×