Nhận dạng theo khoảng cách soạn thảo

Một phần của tài liệu Phương pháp trích chọn đặc trưng cho bài toán nhận dạng chữ Nôm (Trang 62)

1) Tiền xử lý

4.6.3Nhận dạng theo khoảng cách soạn thảo

Để nhận dạng ta cần xây dựng thuật toán tính khoảng cách hiệu chỉnh trên chuỗi mã ngang, chuỗi mã dọc, mã phân bố nét ngang và mã phân bố nét dọc của chữ cần nhận dạng với chuỗi mã trong file huấn luyện. Với chuỗi mã dọc và mã ngang như trình bày ở trên, chúng chỉ chứa các ký tự L, M, S, U. Do đó ta cần gán giá trị cho mỗi ký tự này. Ở đây gán L=8; M=4; S=2; U=1. Phép toán chuyển đổi bao gồm phép thay thế, phép chèn, phép xóa. Mỗi phép toán cần một chi phí nhất định. Phép chèn một chữ có chi phí bằng giá trị của chữ cần chèn; Phép xóa một chữ có chi phí bằng giá trị của chữ cần xóa; phép thay thế một chữ bằng một chữ khác có chi phí bằng tổng giá trị của chữ thay thế và chữ bị thay thế.

Ví dụ: Để chuyển chuối mã MLLU LLMU thành chuỗi LU LLU cần chi phí chuyển đổi là 16 vì ta cần xóa bớt các chữ “M”, “L”, “M”

Ví dụ trong bảng dưới đây, chữ (2_0_NomNaTong_0_1) sau khi tính giá trị chuyển đổi sẽ cho kết quả là chữ (2_0_HanNomB_0_1) vì giá trị chuyển đổi của nó là nhỏ nhất (bằng 8)

Bảng 4.10. Mô tả giá trị chuyển đổi giữa hai chữ Nôm

Chữ vào Mã chữ vào Tập mẫu Mã tập

mẫu Giá chuyển đổi 2_0_NomNaTong_0_1 MLLU LLMU 267_0_NomNaTong_0_1 LU LLU 4+8+4=16 2_0_NomNaTong_0_1 MLLU LLMU 267_0_NomNaTong_0_0 LU LLU 4+8+4=16

2_0_NomNaTong_0_1 LLMU 2_0_HanNomB_0_1 LMU 4

Tương tự vậy mã phân bố nét ngang và mã phân bố nét dọc được biểu diễn bởi các số từ 0 đến 9, tương ứng với nó 0 có giá trị là 1; 1 có

giá trị là 2; 2 có giá trị là 3… 9 có giá trị là 10. Các phép toán chuyển đổi cũng bao gồm phép thay thế, phép chèn, phép xóa. Phép chèn một số có chi phí bằng giá trị của số cần chèn; Phép xóa một số có chi phí bằng giá trị số cần xóa; phép thay thế một số bởi một số khác có chi phí bằng tổng giá trị của số thay thế và số bị thay thế.

Ví dụ: để chuỗi 0510205140 chuyển đổi thành chuỗi 0510406105 cần chi phí là 12 đơn vị

Kết thúc quá trình đánh giá chi phí chuyển đổi, những chữ có tổng chi phí chuyển đổi chuỗi mã nhỏ nhất sẽ là kết quả nhận dạng

Tổng kết chương 4

Chương 4 chúng tôi đã trình bày chi tiết phương pháp nhận dạng theo khoảng cách chuỗi soạn thảo. Đặc trưng áp dụng cho phương pháp này chúng tôi sử dụng từ khung xương và giả khung - là những lý thuyết chúng tôi trình bày ở chương 3. Chương này cũng thể hiện thành quả của chúng tôi trong nỗ lực xây dựng phương pháp nhận dạng chữ Nôm mới. Ở chương 5 chúng tôi sẽ trình bày phương pháp thực nghiệm và kết quả thực nghiệm cho giải pháp xây dựng ở trương này, qua đó đánh giá được sự hiệu quả của phương pháp nhận dạng này.

Chương 5 THỰC NGHIỆM 5.1 MÔ HÌNH THỰC NGHIỆM

Quá trình thực nghiệm được tiến hành theo ba bước chính gồm chuẩn bị dữ liệu, huấn luyện, nhận dạng và đánh giá kết quả. Quá trình chuẩn bị dữ liệu bao gốm các bước chọn ký tự phổ biến nhất trong bộ truyện kiều của Nguyễn Du, tạo ảnh theo các ký tự đã chọn, in ảnh lên giấy khổ A4 rồi scan lấy ảnh xám, tách ảnh xám scan được thành những chữ Nôm rời, chuyển ảnh chữ Nôm rời từ dạng ảnh xám thành ảnh đen trắng 1 bit.

Quá trình huấn luyện thực chất là quá trình lấy đặc trưng. Chúng tôi thực nghiệm nhận dạng theo đặc trưng của khung xương và đặc trưng của giả khung. Với mỗi loại khung xương và giả khung, chúng tôi chỉ lấy khung xương/giả khung ngang và dọc, sau đó các bước lấy đặc trưng còn lại đều như nhau gồm lấy histogram và mã hóa histogram thành chuỗi đặc trưng.

Quá trình nhận dạng chúng tôi thử nghiệm trên ảnh chữ rời, đã chuẩn hóa về dạng 1 bit. Ảnh vào được lấy khung xương/giả khung sau đó lấy histogram và mã hóa histogram để xây dựng thành chuỗi đặc trưng. Áp dụng phương pháp nhận dạng theo khoảng cách soạn thảo giữa chuỗi đặc trưng của chữ cần nhận dạng với tập đặc trưng thu được ở giai đoạn huấn luyện và đưa ra kết quả. Sau cùng sự đánh giá, so sánh được thực hiện để đánh giá hiệu quả của hai phương pháp lấy đặc trưng.

Hình 5.1. Quy trình tiến hành thực nghiệm Chuẩn bị dữ liệu

Chọn ký tự Tạo ảnh In và Scan ảnh Tách ảnh Chuyển ảnh 1 bit

Tập 495 chữ Nôm Các file ảnh Các file ảnh scan Các file ảnh chữ Nôm rời xám Các file ảnh chữ Nôm rời 1 bit

Khung xương

Tập đặc trưng Lấy histogram Lấy khung

xương ngang Lấy khung xương dọc

Mã hóa thành chuỗi đặc trưng

Giả khung

Tập đặc trưng Lấy histogram Lấy giả khung

ngang

Lấy giả khung dọc

Mã hóa thành chuỗi đặc trưng

Nhận dạng

Ảnh chữ Nôm rời, 1 bit (adsbygoogle = window.adsbygoogle || []).push({});

Lấy đặc trưng theo giả khung Lấy đặc trưng theo khung xương

Nhận dạng Nhận dạng

Két quả nhận dạng Két quả nhận dạng

Đánh giá, so sánh

Việc thực nghiệm được chúng tôi tiến hành trên máy tính Sony Vaio (Intel® CoreTM i3-370M Processor 2.40GHz, Ram 4GB), hệ điều hành Windows® 7 Home Premium 64-bit.

Hình 5.3. Giao diện chương trình pha nhận dạng

5.2 BỘ DỮ LIỆU THỰC NGHIỆM

Bộ dữ liệu thực nghiệm được xây dựng bằng cách thống kê những chữ xuất hiện trên 10 lần trong bộ Truyện Kiều của đại thi hào Nguyễn Du. Kết quả thống kê thu được 495 chữ. Với bộ dữ liệu 495 chữ đó, chúng tôi sử dụng 3 loại font khác nhau là Hán Nôm A, Hán Nôm B, Nôm Na Tông, mỗi font lấy hai kiểu chữ là chữ đậm và chữ thường. Như vậy mỗi chữ có 6 mẫu, tổng số mẫu của bộ dữ liệu là 2970. Mỗi mẫu ký tự đặt tên theo quy tắc:

ID_Mẫu_Font_ Kiểu.

Trong đó:

- ID là mã đặt cho ký tự, mỗi ký tự có 1 ID khác nhau.

- Mẫu là chế độ lấy mẫu, đánh số 0,1,2… với bộ dữ liệu này thì Mẫu luôn là 0 vì được lấy theo cũng một chế độ scan chữ in trên giấy trắng khổ A4, mực in màu đen.

- Font là tên font chữ của mẫu.

Hình 5.4. một số mẫu chữ Nôm trong bộ dữ liệu thực nghiệm

Bộ dữ liệu thử nghiệm này có chất lượng tốt, độ nhiễu loạn gần như không có, sau khi thành công với bộ dữ liệu này chúng tôi sẽ tiếp tục xây dựng những bộ dữ liệu với mức độ nhiễu khác nhau nhằm cải tiến khả năng nhận dạng của chương trình ở những điều kiện chữ nhiễu loạn khác nhau.

5.3 THỰC NGHIỆM

K-fold cross validation [12] là một phương pháp kiểm chứng chéo, bộ dữ liệu kiểm chứng được chia ra làm K tập. Lần lượt thực hiện K lần kiểm chứng quay vòng, mỗi lần dùng 1 tập mẫu để thử nghiệm và K-1 tập còn lại để huấn luyện. Lỗi xuất hiện qua K lần kiểm chứng được tính trung bình.

Để thực nghiệm với K-fold cross validation thì việc lấy mẫu thử và mẫu huấn luyện phải lấy ngẫu nhiên, tuy nhiên để kiểm tra tính suy đoán của phương pháp, chúng tôi thực nghiệm theo phương pháp tựa K-fold cross validation, nghĩa là với bộ dữ liệu thực nghiệm trên chúng tôi quyết định lựa chọn 5 tập mẫu thuộc 5 bộ chữ khác nhau để huấn luyện, 1 bộ mẫu thuộc tập còn lại để thực nghiệm. Như vậy tập huấn luyện và tập nhận dạng thử nghiệm không giao nhau về kiểu chữ và font chữ, khả năng suy diễn của phương pháp nhận dạng được kiểm tra, chương trình

sẽ sử dụng bộ tri thức của kiểu font này nhận dạng bộ ảnh chữ của font kia được thử nghiệm đánh giá. Từ đó có thể đánh khả năng ứng dụng thực tế của phương pháp. Kết quả thực nghiệm trình bày dưới bảng sau:

- Nhận dạng với đặc trưng dựa trên khung xương

Bảng 5.1. Kết quả thực nghiệm trên khung xương Tập huấn luyện Số ký tự huấn luyện Tập nhận dạng Số ký tự nhận dạng Số ký tự nhận đúng Đạt tỷ lệ HanNomA_0_1, HanNomB_0_0, HanNomB_0_1, NomNaTong_0_0, NomNaTong_0_1 2685 HanNomA_0_0 493 439 89% HanNomA_0_0, HanNomB_0_0, HanNomB_0_1, NomNaTong_0_0, NomNaTong_0_1 2685 HanNomA_0_1 495 409 82% HanNomA_0_0, HanNomA_0_1, HanNomB_0_1, NomNaTong_0_0, NomNaTong_0_1 2685 HanNomB_0_0 495 361 72% HanNomA_0_0, HanNomA_0_1, HanNomB_0_0, NomNaTong_0_0, NomNaTong_0_1 2685 HanNomB_0_1 495 349 70% HanNomA_0_0, HanNomA_0_1, HanNomB_0_0, HanNomB_0_1, NomNaTong_0_1 2685 NomNaTong_0_0 495 398 80% HanNomA_0_0, HanNomA_0_1, HanNomB_0_0, HanNomB_0_1, NomNaTong_0_0 2685 NomNaTong_0_1 495 373 75% Tỷ lệ trung bình nhận dạng đúng qua 6 lần là 78%

- Nhận dạng với đặc trưng dựa trên giả khung

Bảng 5.2. Kết quả thực nghiệm trên giả khung Tập huấn luyện Số ký tự huấn luyện Tập nhận dạng Số ký tự nhận dạng Số ký tự nhận đúng Đạt tỷ lệ HanNomA_0_1, HanNomB_0_0, HanNomB_0_1, NomNaTong_0_0, NomNaTong_0_1 2685 HanNomA_0_0 493 439 90% HanNomA_0_0, HanNomB_0_0, HanNomB_0_1, NomNaTong_0_0, NomNaTong_0_1 2685 HanNomA_0_1 495 409 85% HanNomA_0_0, HanNomA_0_1, HanNomB_0_1, NomNaTong_0_0, NomNaTong_0_1 2685 HanNomB_0_0 495 361 77% HanNomA_0_0, HanNomA_0_1, HanNomB_0_0, NomNaTong_0_0, NomNaTong_0_1 2685 HanNomB_0_1 495 349 78% HanNomA_0_0, HanNomA_0_1, HanNomB_0_0, HanNomB_0_1, NomNaTong_0_1 2685 NomNaTong_0_0 495 398 79% HanNomA_0_0, HanNomA_0_1, HanNomB_0_0, HanNomB_0_1, NomNaTong_0_0 2685 NomNaTong_0_1 495 373 80% Tỷ lệ trung bình nhận dạng đúng qua 6 lần là 82%

Như vậy cũng một phương pháp nhận dạng, với đặc trưng lấy từ giả khung cho kết quả cao hơn đặc trưng lấy từ khung xương. Ta có thể biểu

diễn kết quả so sánh bằng đồ thị kết quả nhận dạng dựa trên hai phương pháp như sau:

Hình 5.5 Biểu đồ so sánh kết quả nhận dạng

Tổng kết chương 5

Nội dung chương 5 chúng tôi đã trình bày tổng quan mô hình thực nghiệm, bộ dữ liệu thực nghiệm, phương pháp tiến hành thực nghiệm cho giải pháp nhận dạng chữ Nôm chúng tôi đưa ra tại chương 4. Qua chương 5 có thể thấy được hiệu quả của phương pháp nhận dạng này, đồng thời so sánh được hiệu quả của hai phương pháp trích chon đặc trưng (đặc trưng theo histogram của giả khung và của khung xương).

Từ kết quả thực nghiệm ở chương này, chúng tôi thấy nhiều vấn đề cần giải quyết tiếp theo, đồng thời mở ra nhiều hướng đi mới để tăng tính chính xác nhận dạng. Tuy nhiên trong giới hạn thời gian thực hiện luận văn này, chúng tôi chưa kịp thực hiện những ý tưởng này, thời gian tiếp theo chúng tôi sẽ tiếp tục thực hiện nhằm làm cho giải pháp nhận dạng tốt hơn.

KẾT LUẬN (adsbygoogle = window.adsbygoogle || []).push({});

Luận văn trình bày kết quả tìm hiểu của chúng tôi về chữ Nôm, lịch sử hình thành và phát triển, tầm quan trọng của chữ Nôm với thế hệ hiện nay, sự phát triển của CNTT và hiện trạng nghiên cứu, mã hóa chữ Nôm. Tầm quan trọng của bài toán nhận dạng chữ Nôm. Chúng tôi trình bày một số phương pháp nhận dạng chữ tượng hình được áp dụng tại các nước sử dụng chữ tượng hình như Nhật Bản, Hàn Quốc, Trung Quốc… các phương pháp này đã được thực nghiệm trên chữ Nôm. Với trích chọn đặc trưng chúng tôi cũng đưa ra một số phương pháp chúng tôi nghiên cứu. Trong luận văn chúng tôi đưa ra giải pháp nhận dạng chữ Nôm bằng phương pháp nhận dạng khoảng cách soạn thảo trên cơ sở đặc trưng trích chọn từ khung xương và giả khung chữ Nôm. Phần thực nghiệm chúng tôi tiến hành trên tập chữ Nôm trích trong Truyện Kiều của Nguyễn Du theo tiêu chí phố biến nhất (lập lại trên 10 lần). Sử dụng ba font Hán Nôm A, Hán Nôm B, Nôm Na Tong mỗi font lấy hai kiểu chữ thường và đậm để lấy mẫu. Tổng số mẫu là 2970 chữ được thực nghiệm theo mô hình K-fold cho kết quả nhận dạng khả quan, nhận đúng 78% với đặc trưng lấy từ khung xương và 82% với đặc trưng lấy từ giả khung.

Trong quá trình nghiên cứu hoàn thiện luận văn này, chúng tôi tham khảo nhiều tài liệu khác nhau của nhiều tác giả trên thế giới, chúng tôi áp dụng những kết quả nghiên cứu của những tác giả đó, cải tiến, hiệu chỉnh, bổ sung các sáng kiến mới và thực nghiệm để rút ra kết quả. Những đóng góp của chúng tôi trong luận văn này gồm có:

- Về lý thuyết, chúng tôi tổng hợp một số phương pháp nhận dạng chữ tượng hình; tổng hợp một số phương pháp trích chọn đặc trưng trên chữ tượng hình; đưa ra hai phương pháp trích chọn đặc trưng mới cho chữ Nôm là đặc trưng theo histogram của khung xương và đặc trưng theo

histogram của giả khung; Đưa ra phương pháp nhận dạng chữ Nôm mới theo khoảng cách soạn thảo.

- Về thực nghiệm, chúng tôi đã xây dựng bộ dữ liệu thực nghiệm khoa học, áp dụng được cho những thực nghiệm sau này. Ngoài bộ dữ liệu thực nghiệm với 2.970 mẫu nêu trên, chúng tôi còn xây dựng xong bộ dữ liệu thực nghiệm với 14.850 mẫu với những kiểu chữ và độ nhiễu khác nhau phục vụ cho các bước thử nghiệm sau này. Chúng tôi cài đặt chương trình nhận dạng chữ Nôm bằng phương pháp nhận dạng theo khoảng cách soạn thảo trên hai phương pháp lấy đặc trưng theo histogram của khung xương và histogram của giả khung, kết quả nhận dạng rất khả quan, mở ra hướng nghiên cứu cải tiến mới nhằm nầng cao độ chính xác nhận dạng để áp dụng vào thực tế.

Do giới hạn thời gian, một số vấn đề chúng tôi vẫn chưa giải quyết được, cần tiếp tục hoàn thiện trong thời gian tới, đó là thực nghiệm chương trình với các hệ số điều chỉnh khác nhau, kích thước chữ khác nhau để tìm ra các hệ số tốt nhất, cho độ chính xác nhận dạng cao nhất. Trong quá trình lấy giả khung và lấy khung xương, cần nghiên cứu thêm các phương pháp hiệu chỉnh như đồng nhất cạnh, xóa nét thừa, chuẩn hóa nét… để lấy được kết quả tốt nhất nhằm tăng độ chính xác nhận dạng. Trong phương pháp lấy đặc trưng, những nét xiên phản ánh chưa tốt, nên cần nghiên cứu giải pháp phản ánh tốt các nét xiên lên chuỗi đặc trưng. Việc chia ô lưới trên histogram để tính độ dài các bin chúng tôi đang sử dụng cố định ở mức 10x10, với ô lưới 10x10 thì chỉ phản ánh được các nét ngang và nét dọc cho những chữ có từ 10 nét ngang và 10 nét dọc trở xuống, với những chữ có số nét ngang và nét dọc lớn hơn 10 thì sẽ phản ánh không tốt. Ngoài ra với những chữ có số nét ngang và nét dọc ít thì sử dụng lưới 10x10 cũng không cần thiết và làm giảm độ chính xác nhận dạng, giảm độ phức tạp tính toán. Do vậy cần nghiên cứu thêm để có thể áp dụng giải pháp lựa chọn lưới động, phù hợp với số nét của từng chữ.

Để giải quyết những tồn tại và hiện thực những ý tưởng trên, thời gian tới chúng tôi sẽ tiếp tục nghiên cứu và hoàn thiện hơn nữa phương pháp nhận dạng này.

TÀI LIỆU THAM KHẢO

[1]. Nguyễn Tuấn Cường, “Thời điểm xuất hiện chữ Nôm và sơ đồ cấu trúc chữ Nôm”, 2009

[2]. Đặng Đức, Trần Xuân Ngọc Lan, “Nghiên cứu diến biến chữ NOM

theo phương pháp hình thể”,

http://www.hannom.org.vn/web/tchn/data/0103.htm

[3]. Phạm Văn Huởng, Trần Minh Tuấn, Nguyễn Thị Ngọc Hương, Bùi

Thị Hồng Hạnh, Lê Hồng Trang, Vũ Thanh Nhân, Trương Anh Hoàng, Vũ Quang Dũng, Nguyễn Ngọc Bình, “Một số phương pháp nhận dạng chữ NÔM”, Hội thảo Khoa học Quốc gia Lần thứ IV về CNTT-TT (ICT.rda’2008)

[4]. Đỗ Năng Toàn, TS. Phạm Việt Bình (2007), “Giáo trình sử lý ảnh TS”, khoa CNTT Đại học Thái Nguyên.

[5]. Ngô Trung Việt, Ngô Thanh Nhàn, “Một cách nhìn về tương lai của” chữ NÔM, Hội nghị Chữ NÔM Quốc tế 2004

[6]. http://www.nomfoundation.org

[7]. http://www.nomna.org

[8]. Adam L.Berger, “A Maximum entropy Approach to Natural Language Processing”

[9]. Belur V. Dasarathy, “Nearest Neighbor (NN) Norms: NN Pattern Classification Techniques”, 1991, ISBN 0-8186-8930-7.

[10]. Ben Krose and Patrick van der Smagt (1996), “An introduction to Neural Networks”, Eighth edition November 1996

[11]. Eric Sven Ristad, Member, IEEE, and Peter N. Yianilos, Senior Member IEEE, “Learning String-Edit Distance”, IEEE transactions on pattern analysis and machine intelligence, vol. 20, no. 5, may 1998

[12]. Juan Diego Rodrıguez, Aritz Perez, Jose Antonio Lozano, Member, IEEE, “Sensitivity Analysis of k-Fold Cross Validation in Prediction Error Estimation”, IEEE Transactions on pattern analysis and machine intelligence, Vol. 32, No. 3, March 2010

[13]. Kai Yu, Jiangqin Wu, Yueting Zhuang, “Skeleton-Based

Recognition of Chinese Calligraphic Character Image”, College of

Một phần của tài liệu Phương pháp trích chọn đặc trưng cho bài toán nhận dạng chữ Nôm (Trang 62)