Trích chọn đặc trưng wavelet Haar kết hợp
với SVM cho việc nhận dạng
chữ viết tay tiếng Việt
Vietnamese Handwritten Character Recognition
By Combining SVM and Haar Wavelet Features
Phạm Anh Phương, Ngô Quốc Tạo, Lương Chi Mai
Abstract:
This paper proposes a recognition model for
isolated Vietnamese handwritten character recognition.
Based on connected regions of image we try to determine
character image that belongs to a group of characters
which has either diacritical mark or not. In our model,
character part and its diacritical mark part could be sepa-
rately defined and they come independently for recogni-
tion. Hence, we apply SVM (Support Vector Machines)
classification where Haar wavelet features from a mark
part and a character part are extracted independently.
Finally, we join classified results together to have recogni-
tion outcome. Our test results over Vietnamese handwrit-
ing with 50,000 character samples collecting from 655
individuals show that the accuracy of our recognition
model is over 88%.
Keywords: Vietnamese handwritten character recogni-
tion, SVM
.
I. GIỚI THIỆU
Nhận dạng chữ viết tay đang là vấn đề thách thức
lớn đối với các nhà nghiên cứu, bài toàn này chưa thể
giải quyết trọn vẹn được vì nó phụ thuộc quá nhiều
vào người viết và sự biến đổi quá đa dạng trong cách
viết và trạng thái tinh thần của từng người viết. Cho
đến nay, bài toán nhận dạng chữ viết tay cũng đã có
một s
ố kết quả khả quan, yếu tập trung trên các tập dữ
liệu chữ số viết tay như USPS và MNIST [4,5,6], một
số kết quả khác mở rộng đối với các chữ cái hệ La
tinh, Hy lạp... [2,7]. Đặc biệt đối với việc nhận dạng
chữ viết tay tiếng Việt lại càng gặp nhiều khó khăn
hơn do bộ ký tự tiếng Việt có nhiều chữ có hình dáng
rất giố
ng nhau, chỉ khác nhau chút ít về phần dấu. Do
đó có rất ít kết quả nghiên cứu về nhận dạng chữ viết
tay tiếng Việt và các kết quả nghiên cứu chủ yếu cũng
chỉ tập trung vào chữ viết tay online [9]. Bài toán
chúng tôi đặt ra ở đây là xây dựng một mô hình nhận
dạng chữ Việt viết tay hạn chế. Chúng tôi giới hạn
phạm vi của bài toán theo một số qui định như: các
chữ vi
ết phải có một khoảng cách tương đối, giữa
phần chữ và phần dấu phải tách rời nhau. Bộ ký tự
tiếng Việt bao gồm tập ký tự không dấu {A, B, C, D,
Đ, E, G, H, I, K, L, M, N, O, P, Q, R, S, T, U, V, X,
Y} và các ký tự có dấu {Ă, Â, À, Ả, Ã, Á, Ạ, Ằ, Ẳ,
Ẵ, Ắ, Ặ, Ầ, Ẩ, Ẫ, Ấ, Ậ, Ê, È, Ẻ, Ẽ, É, Ẹ, Ề, Ể, Ễ, Ế, Ệ,
Ì, Ỉ, Ĩ, Í, Ị, Ô, Ơ
, Ò, Ỏ, Õ, Ó, Ọ, Ồ, Ổ, Ỗ, Ố, Ộ, Ờ, Ở,
Ỡ, Ớ, Ợ, Ư, Ù, Ủ, Ũ, Ú, Ụ, Ừ, Ử, Ữ, Ứ, Ự, Ỳ, Ỷ, Ỹ,
Ý, Ỵ}.
SVM (Support Vector Machines) là một phương
pháp máy học tiên tiến đã có nhiều thành công không
chỉ trong các lĩnh vực khai phá dữ liệu mà còn trong
lĩnh vực nhận dạng. Trong những thập niên gần đây,
SVM được đánh giá là một trong nh
ững phương pháp
phân lớp có độ chính xác rất cao và nó cũng đã được
áp dụng nhiều trong các bài toán nhận dạng chữ viết
tay [3,4,5,6]. Vì vậy chúng tôi đề xuất một mô hình
nhận dạng chữ Việt viết tay hạn chế trên cơ sở
phương pháp phân lớp SVM. Trích chọn đặc trưng
phục vụ cho công việc huấn luyện và nhận dạng là
1
một bước rất quan trọng trong một hệ thống nhận
dạng. Có rất nhiều phương pháp trích chọn đặc trưng
hiệu quả có thể áp dụng cho chữ viết tay như: ma trận
trọng số, toán tử Kirsch, các biểu đồ chiếu...[4,5,7],
trong bài báo này chúng tôi sử dụng ý tưởng của
phương pháp trích chọn đặc trưng wavelet Haar [8]
cho mô hình nhận dạng chữ viết tay tiếng Việt.
Dựa trên cơ sở các thành phầ
n liên thông của ảnh,
chúng tôi phân tập ký tự tiếng Việt thành 3 nhóm và
tách các ký tự có dấu thành các phần rời nhau. Sau đó
chúng tôi xây dựng các máy phân lớp SVM để nhận
dạng cho từng phần chữ và dấu. Các kết quả thực
nghiệm cho thấy mô hình nhận dạng của chúng tôi có
độ chính xác tương đối cao.
Phần còn lại của bài báo này có cấu trúc như sau:
Phần 2 tóm tắt những ý tưởng cơ bản của phương
pháp phân lớp SVM nhị phân. Ph
ần 3 phát họa kiến
trúc của mô hình nhận dạng, thuật toán trích chọn đặc
trưng Haar wavelet và xây dựng các máy phân lớp
SVM phục vụ cho việc nhận dạng. Phần 4 là các kết
quả thực nghiệm trên tập dữ liệu viết tay tiếng Việt
mà chúng tôi thu thập được. Cuối cùng là phần kết
luận.
II. PHƯƠNG PHÁP PHÂN LỚP SVM
Hàm mục tiêu của một máy phân lớp SVM nhị phân
có thể được phát biểu như sau:
g(x) = w.Φ
(x) + b (1)
trong đó, véc tơ đầu vào x∈
, w là véc tơ chuẩn
của siêu phẳng phân cách trong không gian đặc trưng
được sinh ra từ ánh xạ Φ(x):
(F > D, Φ(x)
có thể tuyến tính hoặc phi tuyến) và b là độ lệch so
với gốc tọa độ. Ban đầu, SVM được thiết kế cho bài
toán phân lớp nhị phân, do đó dấu của g(x) cho biết
véc tơ x thuộc lớp +1 hay lớp -1.
D
R
D
RR→
F
Cho tập mẫu {(x
1
,y
1
),...,(x
N
,y
N
)} trong đó x
i
∈R
D
và
y
i
∈{±1}, mục tiêu của phương pháp phân lớp SVM là
tìm một siêu phẳng phân cách sao cho khoảng cách lề
(margin) giữa hai lớp đạt cực đại (Hình 1).
Hình 1. Siêu phẳng tách với khoảng cách lề cực đại.
Khoảng cách lề giữa hai lớp là
22
2
w.w
w
=
. Để nới
lỏng điều kiện phân lớp, thêm vào một số yếu tố cân
bằng và việc huấn luyện SVM chính là giải bài toán
tối ưu có ràng buộc:
N
i
w,b
i=1
1
min w.w + C
2
ξ
∑
(2)
sao cho:
y
i
(w. Φ(x
i
) + b) ≥ 1-ξ
i
ξ
i
≥ 0, ∀i, trong đó C là tham số nới lỏng
điều kiện phân lớp [1].
Thay vì giải bài toán (2), ta giải bài toán đối ngẫu
của nó bằng cách giải bài toán qui hoạch toàn phương
(QP-Quadratic programming):
T
1
max 1 H
2
α
⎛⎞
α −α α
⎜
⎝⎠
⎟
(3)
thỏa mãn: 0≤α
i
≤C, ∀i và ,
i1
0
N
ii
y
=
α=
∑
trong đó α =[α
1
,..., α
N
]
T
và H là ma trận kích thước
N×N được gọi là ma trận nhân (kernel matrix) với mỗi
phần tử H(i,j) = y
i
y
j
Φ(x
i
).Φ(x
j
).
Giải bài toán QP (3) ta thu được:
(4)
N
i1
ii i
w α y(x)
=
=Φ
∑
Mỗi mẫu huấn luyện x
i
tương ứng với một hệ số
Lagrange α
i
. Sau khi huấn luyện, các mẫu có α
i
>0
được gọi là véc tơ hỗ trợ.
2
Thế (4) vào (1), ta có :
(5)
N
i1
ii i
g(x) α y(x).(x)b
=
=ΦΦ
∑
+
+
Giả sử Φ(x
i
).Φ(x
j
) = K(x
i
,x
j
). Nghĩa là, tích vô
hướng trong không gian đặc trưng tương đương với
một hàm nhân K của không gian đầu vào. Vì vậy, ta
không cần phải tính trực tiếp các giá trị Φ(x
i
), Φ(x
j
)
mà chỉ cần tính tích vô hướng <Φ(x
i
).Φ(x
j
)> gián tiếp
thông qua hàm nhân K(x
i
,x
j
). Nếu sử dụng hàm nhân
là hàm tuyến tính thì SVM được gọi là SVM tuyến
tính, ngược lại thì gọi là SVM phi tuyến. Như vậy,
hàm mục tiêu cho bài toán phân lớp SVM nhị phân có
dạng:
(6)
N
ii
i1
i
g(x) α yK(x,x) b
=
=
∑
Chỉ có các véc tơ hỗ trợ tham gia vào việc xây
dựng siêu phẳng phân cách, do đó một mẫu x sẽ được
phân lớp theo hàm quyết định:
SV
N
ii i
i1
f(x) sgn α yK(x,x) b
=
⎛⎞
=+
⎜⎟
⎝⎠
∑
(7)
trong đó, N
SV
là số véc tơ hỗ trợ.
III. MÔ HÌNH NHẬN DẠNG CHỮ VIỆT VIẾT
TAY HẠN CHẾ
Trong phần này, chúng tôi sẽ trình bày chi tiết kiến
trúc của mô hình nhận dạng chữ Việt viết tay hạn chế
(Hình 2).
1. Tiền xử lý
Mục đích của giai đoạn tiền xử lý nhằm tăng độ
chính xác của hệ thống nhận dạng. Khi quét ảnh
thường gặp các loại nhiễu, vì vậ
y chúng tôi sử dụng
một số kỹ thuật lọc nhiễu để khử các nhiễu đốm và
nhiễu vệt dài. Đối với nhiễu đốm, sử dụng các bộ lọc
trung bình và lọc trung vị, còn với các nhiễu vệt dài
thì chúng tôi sử dụng phương pháp khử các vùng liên
thông nhỏ (Hình 3).
Để thuận tiện cho việc xử lý sau này, chúng tôi
biến đổi ảnh đầu vào từ ảnh đa cấp xám thành ảnh nhị
phân.
Hình 2. Kiến trúc của mô hình nhận dạng
(a) Nhiễu đốm (b) Nhiễu vệt dài
Hình 3. Một số nhiễu thường gặp khi quét ảnh
Chuẩn hóa ảnh theo vùng liên thông
Chuẩn hóa ảnh nhằm mục đích tạo điều kiện thuận
tiện cho công đoạn tách ảnh thành từng phần chữ và
dấu.
Bước 1: Xác định các vùng liên thông trên ảnh (Hình
4).
3
(a) (b)
Hình 4. Chuẩn hóa ảnh. (a) Ảnh gốc (b) Xác định các vùng
liên thông và đánh thứ tự các vùng liên thông.
Bước 2: Sắp xếp các vùng liên thông theo thứ tự từ
trên xuống (Hình 4b).
Bước 3:
- Nếu ảnh chỉ có 1 vùng liên thông: Chuẩn hóa ảnh về
kích thước chuẩn 16×16 (Hình 5a).
(a) (b) (c)
Hình 5. Chuẩn hóa các vùng liên thông.
- Nếu ảnh có 2 vùng liên thông: Gọi S(i) là diện tích
vùng liên thông thứ i.
Nếu S(1)>S(2) thì dấu của phần liên thông 2 là dấu
nặng (.) và chỉ cần chuẩn hóa vùng liên thông 1 về
kích thước chuẩn 16×16.
Ngược lại: Tách ảnh thành 2 phần: phần chữ và
phần dấu. Chuẩn hóa phần chữ về kích thước chuẩn
16×16 và phần dấu về kích thước chuẩn 8×8 (Hình
5b).
- Nếu ảnh có 3 vùng liên thông:
Nếu S(3) = Min{S(i)} thì dấu của phần liên thông
này là dấu nặng (.). Do đó chỉ cần chuẩn hóa thành
phần liên thông 1 về kích thước chuẩn 8×8 và thành
phần liên thông 2 về kích thước chuẩn 16×16.
Ngược lại: Tách ảnh thành 3 phần từ các vùng liên
thông. Chuẩn hóa các vùng liên thông 1 và 2 về kích
thước chuẩn 8×8 và chuẩn hóa vùng liên thông 3 về
kích thước chuẩn 16×16 (Hình 5c).
2. Phân nhóm sơ bộ
Dựa vào số thành phần liên thông chúng tôi tách
bộ ký tự tiếng Việt thành 3 nhóm:
Nhóm 1: Nhóm có 1 vùng liên thông {A, B, C, D, Đ,
E, G, H, I, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y,
Ơ, Ư}.
Nhóm 2: Nhóm có 2 vùng liên thông {Ă, Â, À, Ả, Ã,
Á, Ạ, Ê, È, Ẻ, Ẽ, É, Ẹ, Ì, Ỉ, Ĩ, Í, Ị, Ô, Ò, Ỏ, Õ, Ó, Ọ, Ờ,
Ở, Ỡ, Ớ, Ợ, Ù, Ủ, Ũ, Ú, Ụ, Ừ, Ử, Ữ, Ứ, Ự, Ỳ, Ỷ, Ỹ,
Ý, Ỵ}.
Nhóm 3: Nhóm có 3 vùng liên thông { Ằ, Ẳ, Ẵ, Ắ, Ặ,
Ầ, Ẩ, Ẫ, Ấ, Ậ, Ề, Ể, Ễ, Ế, Ệ, Ồ, Ổ, Ỗ, Ố,
Ộ}
3. Trích chọn đặc trưng
Chúng tôi sử dụng ý tưởng của phương pháp trích
chọn đặc trưng wavelet Haar [8] để chọn tập đặc trưng
cho mỗi ảnh ký tự đầu vào.
Hình 6. Quá trình trích chọn đặc trưng
Từ ảnh nhị phân kích thước 2
n
×2
n
(Hình 6), quá
trình trích chọn đặc trưng được mô tả theo thuật toán
sau:
Procedure HaarFeature
Input Ma trận vuông (A,n) cấp 2
n
.
Output Tập các đặc trưng {F
1
, F
2
,..., }.
22
F
nn
×
Method
1. Khởi tạo: Queue = ∅;
i = 1;
4
2. - Tính F
i
= Tổng các điểm đen trong toàn bộ ma
trận (A,n);
- PUSH((A,n), Queue);
3. While Queue ≠∅ Do
{
- POP(Queue, (A,n));
- if (n>1)
{
n = n DIV 2;
Chia ảnh thành 4 phần: A
1
, A
2
, A
3
, A
4
;
for (j=1; i ≤ 4; j++)
PUSH((A
j
,n), Queue);
}
- Gọi S, S1, S2, S3, S4 là tổng các điểm đen
tương ứng với các khối A, A
1
, A
2
, A
3
, A
4
;
- Tính F
i+1
= S1 + S2;
F
i+2
= S2 + S3;
F
i+3
= S4;
- i = i + 3;
}
Phương pháp tính nhanh tổng các điểm đen trong
trong thuật toán trên có thể tham khảo trong [8].
Mệnh đề (tính bất biến của đặc trưng): Cho ma trận
vuông A cấp 2
n
, n nguyên dương. Theo phương pháp
trích chọn đặc trưng của thuật toán HaarFeature thì
ma trận A bất biến đối với các đặc trưng được trích
chọn.
Chứng minh
Dùng phương pháp quy nạp.
Ta chứng minh mệnh đề đúng với n=1. Thật vậy,
giả sử x
1
, x
2
, x
3
, x
4
là 4 phần tử của ma trận vuông cấp
2. Theo phương pháp trích chọn đặc trưng trên ta có
hệ phương trình:
1234
12 12
23 2
44
3
x xxxS
x xSS
x xS
xS
+++=
⎧
⎪
+=+
⎪
⎨
+=+
⎪
⎪
=
⎩
S
và
1111
1100
10
0110
0001
= ≠
do đó hệ phương trình có nghiệm duy nhất. Vì vậy,
theo cách trích chọn đặc trưng của thuật toán Haar-
Feature thì ma trận A bất biến với n=1.
Giả sử mệnh đề đúng với n=k. Ta sẽ chứng minh
mệnh đề đúng với n=k+1.
Rõ ràng ma trận vuông cấp 2
k+1
có kích thước gấp 4
lần ma trận vuông cấp 2
k
. Ta sẽ chứng minh rằng nếu
mỗi một phần tư của ma trận vuông A cấp 2
k+1
bất
biến thì ma trận vuông A cũng bất biến theo phương
pháp trích chọn đặc trưng của thuật toán HaarFeature.
Thật vậy, giả sử ma trận vuông A cấp 2
k+1
được chia
thành 4 khối con A
1
, A
2
, A
3
, A
4
kích thước 2
k
có tổng
các điểm đen tương ứng là S1, S2, S3, S4. Với cách
chia thành 4 khối như vậy thì ma trận A sẽ có nghiệm
duy nhất X
1
=S1, X
2
=S2, X
3
=S3, X
4
=S4 tương ứng với
các phần tử A
1
, A
2
, A
3
, A
4
. Mà mỗi khối A
i
, i=1..4 là
bất biến theo phương pháp trích chọn đặc trưng của
thuật toán HaarFeature nên ma trận A cũng bất biến
theo phương pháp trích chọn đặc trưng trên.
Trong thực nghiệm, với phần chữ chúng tôi chọn
n=4, như vậy ta có: 1 + 3 + 4×3 + 4×4×3 + 4×4×4×3 =
256 đặc trưng, còn với phần dấu chúng tôi chọn n=3,
như vậy có tất cả 64 đặc trưng.
Với phương pháp trích chọn
đặc trưng này thì sẽ tạo
ra một dãy số các đặc trưng giảm dần. Với cùng một
chữ thì các giá trị lớn ở đầu dãy tương đối ổn định, có
thể đại diện cho hình dạng khái quát của chữ; còn các
giá trị ở cuối dãy nhỏ dần và không ổn định, thể hiện
sự đa dạng trong từng chi tiết của chữ.
4. Xây dựng các máy phân lớp SVM
Trong phần này, chúng tôi sẽ xây d
ựng 3 máy phân
lớp SVM, sử dụng tập đặc trưng được trích chọn ở
trên để huấn luyện phân lớp và nhận dạng.
Đối với phần chữ có kích thước 16×16, có tất cả
256 đặc trưng. Còn phần dấu với kích thước 8×8, như
vậy có 64 đặc trưng được trích chọn.
SVM1: phân lớp đối với nhóm ký tự có 1 vùng liên
thông {A, B, C, D, Đ, E, G, H, I, K, L, M, N, O, P, Q,
R, S, T, U, V, X, Y, Ơ, Ư}.
5