1) Tiền xử lý
4.6 KỸ THUẬT NHẬN DẠNG THEO KHOẢNG CÁCH SOẠN THẢO
4.6.1 Tổng quát về khoảng cách soạn thảo
Khoảng cách chuỗi soạn thảo (String edit-distance) [11] là phương pháp dựa trên tính chi phí phải bỏ ra để hiệu chỉnh một chuỗi A cho trước thành một chuỗi B cho trước. Chuỗi A và Chuỗi B được biểu diễn bởi các phần tử của tập hữu hạn các ký tự cho trước, mỗi ký tự được gán một trọng số nhất định thể hiện giá trị của ký tự đó. Cách chuyển đổi dựa trên ba phép toán xóa (delete), chèn (insert) và thay thế (change). Mỗi phép toán này lại được quy định một chi phí nhất định để thực hiện đó, chẳng hạn như phép “xóa” có chi phí bằng giá trị của ký tự bị xóa trong chuỗi; phép “chèn” có chi phí bằng giá trị của ký tự được chèn thêm vào chuỗi; phép “thay thế” có chi phí bằng tổng giá trị của ký tự bị thay thế và ký tự thay thế.
Áp dụng String edit-distance [11] vào nhận dạng chữ Nôm ta có thể mô tả như sau:
- Bằng phương pháp lấy đặc trưng dựa trên histogram của khung xương hoặc giả khung đã trình bày trên, tập chữ Nôm huấn luyện (tập mẫu) sẽ đưaoạc đưa vào để trích chọn đặc trưng. Kết quả ta thu được là một tập các đặc trưng được lưu lại dưới dạng một cơ sở tri thức để phục vụ cho việc nhận dạng. Tập chữ Nôm huấn luyện càng phong phú thì tập dữ liệu huấn luyện được càng phong phú, kết quả nhận dạng càng chính xác;
- Khi nhận dạng một chữ Nôm ta cũng rút trích đặc trưng của chữ cần nhận dạng theo phương pháp trên, sau đó chuỗi đặc chưng đó được đem tính toán để chuyển đổi thành chuỗi đặc trưng trong tập dữ liệu đã huấn luyện. Tương ứng với mỗi chuỗi trong tập dữ liệu đã huấn luyện, chuỗi đặc trưng của chữ cần nhận dạng sẽ phải tốn một giá trị cụ thể nào đó để có thể chuyển đổi về cho giống nhau. Kết quả được lựa chọn là những chữ Nôm tương ứng với chuỗi đặc trưng trong tập dữ liệu đã huấn luyện mà chuỗi đặc trưng của chữ cần nhận dạng phải tiêu tốn giá trị nhỏ nhất để chuyển đổi cho giống nó;
- Cấu trúc của chuỗi đặc trưng gồm các thành phần: Điểm ảnh tương đối, trọng số dọc, trọng số ngang, mã dọc, mã ngang, mã phân bố nét dọc, mã phân bố nét ngang. Trong quá trình nhận dạng thì điểm ảnh tương đối, trọng số dọc, trong số ngang dùng để phân lớp, có nghĩa là ta chỉ tính giá trị chuyển đổi giữa chuỗi đặc trưng của chữ Nôm cần nhận dạng với những chuỗi đặc trưng trong file tri thức đã huấn luyện mà có điểm ảnh tương đối, trọng số dọc, trong số ngang gần với điểm ảnh tương đối, trọng số dọc, trong số ngang của chuỗi đặc trưng rút trích được từ chữ Nôm cần nhận dạng. Bằng cách phân lớp này, thay vì phải tính giá chị chuyển đổi cho tất cả các chuỗi đặc trưng trong file tri thức đã huấn luyện thì chỉ cần tính trên một số lượng nhỏ các chuỗi, nên giảm được chi phía tính toán (thời gian và tài nguyên thiết bị).
4.6.2 Huấn luyện theo khoảng cách soạn thảo
Quá trình huấn luyện chính là quá trình sinh chuỗi đặc trưng cho các chữ Nôm trong tập mẫu. Theo đó quá trình huấn luyện gồm các bước: Chuẩn hóa ảnh vào nếu cần; Rút trích khung xương/giả khung; mã hóa
khung xương/giả khung trên cơ sở các histogram ngang và dọc của khung xương/giả khung. Định lượng sự phân bố các nét dọc và nét ngang của chữ Nôm.
Ví dụ về huấn luyện mẫu: Huấn luyện chữ
Huấn luyện theo giả khung:
- Bước lấy giả khung ngang, giả khung dọc và tạo histogram xem bảng 4.6
Bảng 4.6. Lấy histogram từ giả khung Ảnh gốc Giả khung Giả khung ngang Histogram giả khung ngang Giả khung dọc Histogram giả khung dọc
- Bước tạo chuỗi mã xem bảng 4.7
Bảng 4.7. Lấy chuỗi mã từ giả khung Pixel tương đối Trọng số dọc Trọng số ngang Mã gọc Mã ngang Mã phân bố nét dọc Mã phân bố nét dọc 3.658536 4 10 LU LLMU 0000800000 5000320008
Huấn luyện theo khung xương
- Bước lấy khung xương ngang, khung xương dọc và tạo histogram xem bảng 4.8
Bảng 4.8. Lấy histogram từ khung xương Ảnh gốc Khung xương Khung xương ngang Histogram khung xương ngang Khung xương dọc Histogram khung xương dọc
- Bước tạo chuỗi mã xem bảng 4.9
Bảng 4.9. Lấy chuỗi mã từ khung xương Pixel tương đối Trọng số dọc Trọng số ngang Mã gọc Mã ngang Mã phân bố nét dọc Mã phân bố nét dọc 3.390244 2 8 M MLM 0000080000 6000400008
4.6.3 Nhậ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
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
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