Nhận dạng chữ viết tay rời rạc trên cơ sở phương pháp máy véc tơ tựa

Cho đến nay, việc nhận dạng chữ viết tay vẫn chưa có được một giải pháp tổng

thể, các ứng dụng của nó cũng chỉ giới hạn trong phạm vi hẹp. Các kết quả chủ yếu

về lĩnh vực này chỉ tập trung trên các tập dữ liệu chữ số viết tay chuẩn như USPS và

MNIST [2,3,6,8], bên cạnh đó cũng có một số công trình nghiên cứu trên các hệ chữ

cái tiếng La tinh, Hy Lạp, Trung Quốc, Việt Nam. tuy nhiên các kết quả đạt được

cũng còn nhiều hạn chế [4,5,7,8].

Các giải pháp tiếp cận để giải bài toán nhận dạng chữ viết tay khá phong phú,

một số phương pháp học máy thường được áp dụng như: mô hình Markov ẩn, mạng

nơ ron hay phương pháp máy véc tơ tựa (SVM - Support Vector Machines). Trong đó

SVM được đánh giá là phương pháp học máy tiên tiến đang được áp dụng rộng rãi

trong các lĩnh khai phá dữ liệu và thị giác máy tính SVM gốc được thiết kế để giải

bài toán phân lớp nhị phân, ý tưởng chính của phương pháp này là tìm một siêu phẳng

phân cách sao cho khoảng cách lề giữa hai lớp đạt cực đại. Khoảng cách này được xác

định bởi các véc tơ tựa (SV - Support Vector), các SV này được lọc ra từ tập mẫu huấn

luyện bằng cách giải một bài toán tối ưu lồi [3].

pdf8 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 2232 | Lượt tải: 2download
Tóm tắt nội dung Nhận dạng chữ viết tay rời rạc trên cơ sở phương pháp máy véc tơ tựa, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
a thành N´N 
vùng (Hình 2). Tổng số điểm đen của mỗi vùng sẽ được chọn để tạo thành các vectơ 
đặc trưng.
Hình 2. Trích chọn đặc trưng trọng số vùng.
Trong thực nghiệm, với ảnh kích thước 16´16, chọn N=8, như vậy có 8´8 = 64 
đặc trưng.
2.3. Lựa chọn thuật toán huấn luyện phân lớp
Trong phần cài đặt thực nghiệm, chúng tôi áp dụng thuật toán SMO để huấn 
luyện phân lớp SVM nhị phân, sử dụng và kế thừa một số chức năng của phần mềm 
mã nguồn mở LibSVM [1] để phát triển ứng dụng nhận dạng chữ viết tay rời rạc.
2.4. Thuật toán nhận dạng chữ viết tay rời rạc
Cả hai chiến lược phân lớp OVO và OVR đều có thể áp dụng để phân lớp dữ liệu 
một cách tổng quát mà không cần phải can thiệp sâu để phân tích các đặc trưng khác 
nhau giữa các lớp dữ liệu [6]. Vì vậy hai chiến lược phân lớp này sẽ được chúng tôi lựa 
chọn để cài đặt thử nghiệm thuật toán nhận dạng đối với dữ liệu chữ viết tay rời rạc.
KỶ YẾU HỘI NGHỊ KHOA HỌC
217
Procedure SVMClassify
//Thuật toán phân lớp theo 2 chiến lược OVO và OVR
Input: 
- Mẫu x;
- Số lớp N;
- Chiến lược phân lớp Strategy;
- Các mô hình đã huấn luyện {OVOModel, OVRModel}
Output: 
label; // Nhãn lớp của mẫu x
Method
1. Case Strategy of
2. OVO:// Chiến lược một đối một
3. Khởi tạo Count[i] = 0; // i=0,..,N-1
4. LoadModel(OVOModel);
5. for (i=0; i < N-1; i++)
6. for (j=i+1; j < N; j++) 
7. Count[BinarySVM(x,i,j)]++;
8. Count[label]=Max(Count[i]);
9. OVR: // Chiến lược một đối phần còn lại
10. LoadModel(OVRModel);
11. label=-1; 
12. for (i=0; i < N; i++) 
13.{ 
14. label=BinarySVM(x,i,Rest);
15. if(label=i) break;
16. }
17. EndCase;
18. Return label;
Trong đó:
BinarySVM(x,i,j) là hàm xếp x vào một trong hai lớp i hoặc j,
Count[ ] là mảng biến đếm để lưu số lần nhận diện của các lớp. 
3. Kết quả thực nghiệm
Các kết quả thực nghiệm được cài đặt và chạy thử nghiệm trên môi trường 
Window XP, máy PC Pentium 4 tốc độ 2.4 Ghz với dung lượng bộ nhớ RAM 1Gb.
Bộ Giáo dục và Đào tạo - Trường Đại học Duy Tân
218
3.1. Chuẩn bị các bộ dữ liệu thực nghiệm
Bộ dữ liệu chuẩn MNIST
Bộ dữ liệu MNIST bao gồm 60.000 mẫu huấn luyện và 10.000 mẫu khác để nhận 
dạng, mỗi mẫu là một ảnh kích thước 28´28. 
Bộ dữ liệu chữ viết tay tiếng Việt
Chúng tôi xây dựng bộ dữ liệu chữ viết tay tiếng Việt (VietData) phục vụ cho 
việc thực nghiệm bao gồm 89 lớp chữ cái in hoa, mỗi lớp chọn ra 200 mẫu, như vậy bộ 
dữ liệu VietData có tổng cộng 17800 mẫu.
3.2. Kết quả thực nghiệm trên bộ dữ liệu MNIST
Đầu tiên chúng tôi thử nghiệm hiệu quả của Thuật toán SVMClassify trên bộ dữ 
liệu MNIST với các chiến lược OVO và OVR. Mô hình SVM được sử dụng với hàm 
nhân Gauss và các tham số C = 10 (tham số hàm phạt), Cache = 1000 (kích thước vùng 
nhớ để lưu trữ các vectơ tựa).
Bảng 1: Kết quả thực nghiệm trên tập MNIST với hàm nhân RBF(s =0.08).
Chiến lược Số vectơ tựa
Thời gian 
huấn luyện
Thời gian Test Độ chính xác
OVR 8542 > 9 giờ ~ 3 phút 96,1%
OVO 31280 ~ 2 giờ ~ 5 phút 97,2%
Kết quả thực nghiệm ở Bảng 1 cho thấy các chiến lược OVO và OVR đều có các 
ưu điểm và nhược điểm riêng. 
Chúng tôi so sánh hiệu quả phân lớp của SVM so với phương pháp sử dụng mô 
hình mạng nơ ron 4 lớp (144 nơ ron lớp vào, 72+36 nơ ron ở các lớp ẩn, 10 nơ ron lớp 
ra) [8] trên cùng một bộ dữ liệu chuẩn MNIST (Bảng 2).
Bảng 2: So sánh kết quả nhận dạng của VM với mô hình mạng nơ ron. 
Các thông số Mạng nơ ron SVM
Số mẫu học 60.000 60.000
Thời gian học ~ 24 giờ ~ 2 giờ
Số mẫu test 10.000 10.000
Thời gian test ~ 2 phút ~ 5 phút
Tỷ lệ test lỗi (%) 4.6 2.8
Kết quả ở Bảng 2 cho thấy kết quả nhận dạng theo mô hình SVM có độ chính 
xác cao hơn so với mô hình mạng nơ ron, tuy nhiên tốc độ nhận dạng của SVM thì 
chậm hơn.
KỶ YẾU HỘI NGHỊ KHOA HỌC
219
3.3. Kết quả thực nghiệm trên dữ liệu chữ viết tay tiếng Việt
Việc thực nghiệm trên dữ liệu chữ viết tay tiếng Việt được tiến hành theo phương 
thức thẩm định chéo (Cross-Validation). Bộ dữ liệu VietData được chia thành k phần 
(ở đây k được chọn =10), sau đó sử dụng k-1 phần để huấn luyện và 1 phần còn lại để 
nhận dạng, quá trình được này được lặp đi lặp lại k lần. Các kết quả thực nghiệm được 
thể hiện trên Bảng 3.
Kết quả thực nghiệm ở Bảng 3 cho thấy tốc độ phân lớp của SVM đối với bài 
toán phân đa lớp là quá chậm, không thể đáp ứng được đối với một hệ thống nhận dạng 
thời gian thực. Vì vậy, cần phải có những giải pháp phù hợp để tăng tốc độ cũng như 
độ chính xác phân lớp đối với dữ liệu chữ viết tay tiếng Việt.
Bảng 3: Thực nghiệm trên tập dữ liệu chữ viết tay tiếng Việt.
Chiến lược Thời gian huấn luyện Thời gian Test Độ chính xác
OVR ~ 49 phút ~ 2 phút 82.7%
OVO ~ 16 phút ~ 6 phút 83.6%
4. Đânhs giá hiệu quả phân lớp của SVM
Áp dụng phương pháp phân lớp SVM vào bài toán nhận dạng chữ viết tay rời 
rạc, chúng tôi có một số nhận xét sau đây:
- SVM là một phương pháp học máy tiên tiến có cơ sở toán học chặt chẽ và đạt 
độ chính xác phân lớp cao. Tuy nhiên, hạn chế lớn nhất của SVM là tốc độ phân lớp 
chậm, tùy thuộc vào số lượng vectơ tựa thu được sau khi huấn luyện. Một hạn chế khác 
của SVM là pha huấn luyện đòi hỏi không gian nhớ lớn, vì vậy việc huấn luyện đối với 
các bài toán có số lượng mẫu lớn sẽ gặp trở ngại trong vấn đề lưu trữ. 
- Bản chất nhị phân cũng là một hạn chế của SVM, việc mở rộng khả năng của 
SVM để giải quyết các bài toán phân loại nhiều lớp là vấn đề không tầm thường. Có 
nhiều chiến lược được đề xuất để mở rộng SVM cho bài toán phân loại nhiều lớp với 
những điểm mạnh, yếu khác nhau tùy thuộc vào từng loại dữ liệu cụ thể. Cho đến 
nay, việc lựa chọn các chiến lược phân lớp vẫn thường được tiến hành trên cơ sở thực 
nghiệm.
- Bài toán huấn luyện SVM thực chất là bài toán qui hoạch toàn phương (QP) 
trên một tập lồi, do đó luôn luôn tồn tại nghiệm toàn cục và duy nhất, đây là điểm khác 
biệt rõ nhất giữa SVM so với mạng nơ ron, vì mạng nơ ron vốn tồn tại nhiều cực trị 
địa phương. Bản chất của SVM là việc phân lớp được thực hiện gián tiếp trong không 
gian đặc trưng với số chiều cao hơn số chiều của không gian đầu vào thông qua hàm 
nhân. Do đó, hiệu quả phân lớp của SVM phụ thuộc vào hai yếu tố: giải bài toán QP 
và lựa chọn hàm nhân. Việc giải bài toán QP luôn luôn đạt được giải pháp tối ưu nên 
mọi cố gắng trong nghiên cứu lý thuyết SVM tập trung vào việc lựa chọn hàm nhân. 
Lựa chọn hàm nhân và các tham số của nó như thế nào để SVM phân lớp tốt nhất vẫn 
là một bài toán mở.
Bộ Giáo dục và Đào tạo - Trường Đại học Duy Tân
220
- Tốc độ phân lớp của SVM bị đánh giá là chậm so với các phương pháp phân 
lớp khác, tùy thuộc vào số lượng vectơ tựa thu được sau khi huấn luyện. Vì vậy, có 
nhiều công trình tập trung nghiên cứu để giảm tối đa số lượng vectơ tựa nhằm tăng tốc 
độ phân lớp của SVM, một số kết quả nghiên cứu có giá trị về SVM đã được công bố 
trong các công trình [1,3,5].
Muốn áp dụng kỹ thuật phân lớp SVM vào bài toán nhận dạng chữ viết tay tiếng 
Việt, cần phải có những giải pháp để tránh bùng nổ số phân lớp cũng như giảm tối đa 
số vectơ tựa để tăng tốc độ nhận dạng.
5. Kết luận
Bài báo này đã đề xuất mô hình nhận dạng chữ viết tay rời rạc trên cơ sở phương 
pháp máy véc tơ tựa. Các kết quả thực nghiệm cho thấy mô hình này có kết quả nhận 
dạng chính xác hơn so với mô hình mạng nơ ron. Tuy nhiên, khi áp dụng SVM vào 
bài toán nhận dạng cũng gặp phải một số hạn chế nhất định: bùng nổ số phân lớp và số 
lượng véc tơ tựa thu được sau khi huấn luyện sẽ dẫn đến việc phân lớp chậm.
Chúng tôi sẽ tiếp tục nghiên cứu để đề xuất mô hình hiệu quả cho bài toán nhận 
dạng chữ viết tay tiếng Việt. Giảm thiểu số véc tơ tựa để cải thiện tốc độ phân lớp và 
lựa chọn các tham số của SVM cũng là vấn đề cần quan tâm. Mỗi phương pháp học 
máy đều có những ưu và nhược điểm riêng, vì vậy việc kết hợp, lai ghép giữa các 
phương pháp nhằm nâng cao hiệu suất nhận dạng cũng là hướng mà các nhà nghiên 
cứu đang quan tâm. 
KỶ YẾU HỘI NGHỊ KHOA HỌC
221
TÀI LIỆU THAM KHẢO
[1]. Chih-Chung Chang and Chil-Jen Lin, “LIBSVM: a Library for Support Vector Machines”, 
National Taiwan University, 2004.
[2]. Gorgevik D., Cakmakov D., “An Efficient Three-Stage Classifier for Handwritten Digit 
Recognition”, Proceedings of 17th Int. Conference on Pattern Recognition, ICPR2004, Vol. 4, pp. 507-
510, IEEE Computer Society, Cambridge, UK, 23-26 August 2004. 
[3]. Phạm Anh Phương, Ngô Quốc Tạo, Lương Chi Mai, “Ứng dụng SVM cho bài toán phân 
lớp nhận dạng”, Kỷ yếu Hội thảo khoa học Quốc gia lần thứ ba về nghiên cứu, phát triển và ứng dụng 
Công nghệ thông tin và Truyền thông (ICT.rda’06), nhà xuất bản Khoa học và Kỹ thuật, Hà nội, trang 
393-400, 20-21/05/2006.
[4]. G. Vamvakas, B. Gatos, I. Pratikakis, N. Stamatopoulos, A. Roniotis and S.J. Perantonis, 
"Hybrid Off-Line OCR for Isolated Handwritten Greek Characters", The Fourth IASTED International 
Conference on Signal Processing, Pattern Recognition, and Applications (SPPRA 2007), pp. 197-202, 
ISBN: 978-0-88986-646-1, Innsbruck, Austria, February 2007. 
[5]. Phạm Anh Phương, Ngô Quốc Tạo, Lương Chi Mai, “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”, Tạp chí Công nghệ Thông tin và Truyền 
thông, ISSN 0866-7039, kỳ 3, số 20, 10-2008, tr 36-42.
[6]. Phạm Anh Phương, “Áp dụng một số chiến lược SVM đa lớp cho bài toán nhận dạng chữ 
viết tay hạn chế”, Tạp chí khoa học Đại học Huế, ISSN 1859-1388, số 45, 2008, tr. 109-118.
[7]. Pham Anh Phuong, Ngo Quoc Tao, Luong Chi Mai, “An Efficient Model for Isolated 
Vietnamese Handwritten Recognition”, The Fourth International Conference on Intelligent Information 
Hiding and Multimedia Signal Processing (IIH-MSP 2008), Harbin, China, August 15 - 17, 2008, pp. 
358-361.
[8]. Nguyễn Thị Thanh Tân, Lương Chi Mai, “Phương pháp nhận dạng từ viết tay dựa trên mô 
hình mạng nơ ron kết hợp với thống kê từ vựng”, Tạp chí Tin học và Điều khiển học, Tập 22, số 2, 2006, 
tr. 141-154.

File đính kèm:

  • pdfNhận dạng chữ viết tay rời rạc trên cơ sở phương pháp máy véc tơ tựa.pdf