Luận văn: Các phương pháp tiền xử lý trong nhận dạng chữ Nôm trên thiết bị di động
Luận văn thạc sĩ phân tích các phương pháp tiền xử lý trong nhận dạng chữ nôm trên thiết bị di động, đánh giá thực trạng, chỉ ra hạn chế, đề xuất giải pháp khả thi cho thực tiễn.
Trường đại học
Trường Đại học Công nghệ - Đại học Quốc gia Hà NộiChuyên ngành
Công Nghệ Thông TinNgười đăng
Ẩn danhThể loại
luận văn thạc sĩPhí lưu trữ
30 PointMục lục chi tiết
Tóm tắt
I. Giới Thiệu Tổng Quan Về Nhận Dạng Chữ Nôm OCR
Nhận dạng chữ Nôm (OCR Chữ Nôm) là một lĩnh vực nghiên cứu quan trọng, kết hợp giữa văn hóa và công nghệ. Chữ Nôm, di sản văn hóa của dân tộc, cần được bảo tồn và phát huy giá trị. Việc ứng dụng Công Nghệ Thông Tin để nhận dạng chữ Nôm mở ra cơ hội tiếp cận, nghiên cứu và phổ biến các tác phẩm cổ. Bài toán OCR Chữ Nôm là một bài toán con của nhận dạng mẫu, với mục tiêu chuyển đổi hình ảnh chữ Nôm thành văn bản số, giúp cho việc lưu trữ, tìm kiếm và chỉnh sửa trở nên dễ dàng. Hiện nay, việc xây dựng ứng dụng nhận dạng chữ Nôm ngày càng trở nên cấp thiết, nhất là khi hầu hết các quốc gia đã có thể xây dựng bộ ứng dụng nhận dạng ngôn ngữ chữ viết của họ. Chữ Nôm, hay còn gọi là Quốc Âm, là cách viết biểu ý trong thời cổ đại và trung đại của tiếng Việt. Chữ Nôm xuất hiện dựa trên cơ sở chữ Hán và âm Hán-Việt. Các nhà nghiên cứu cho rằng chữ Nôm hình thành và phát triển từ thế kỷ X đến đầu thế kỷ XX, ghi lại lịch sử và văn hóa của dân tộc Việt. Sự ra đời của chữ Nôm thể hiện ý thức tự cường và tinh thần dân tộc. Việc nghiên cứu Hán Nôm có ý nghĩa lớn đối với việc tìm hiểu tri thức văn hóa Việt Nam, là cầu nối giữa quá khứ, hiện tại và tương lai. Các tác phẩm chữ Nôm phản ánh mọi tình cảm của dân tộc Việt, từ hào hùng đến bi ai, từ trang nghiêm đến bỡn cợt. Do đó, việc nghiên cứu nhận dạng chữ Nôm có ý nghĩa vô cùng to lớn. Để hiện thực hóa bài toán Nhận dạng chữ Nôm trên di động, cần xây dựng một hệ thống hoàn chỉnh, bao gồm các bước: tiền xử lý, trích chọn đặc trưng, nhận dạng và hậu xử lý. Các phương pháp nhận dạng chữ Nôm khác nhau thường khác nhau ở các bước “2.Trích chọn đặc trưng”, “3.Huấn luyện” và bước “4. Trong đó tùy thuộc vào phương pháp huấn luyện và nhận dạng mà các phương pháp trích chọn đặc trưng được lựa chọn nhằm tối ưu cho kết quả nhận dạng. Hiện tại ứng dụng nhận dạng chữ Nôm đã đạt được một số kết quả nhất định trên bộ chữ nôm NOM-DB0 với 495 chữ.
1.1. Lịch Sử Phát Triển Của OCR Chữ Nôm và Ứng Dụng Thực Tiễn
Lịch sử phát triển của OCR bắt đầu từ những năm đầu thế kỷ 20 với mục tiêu hỗ trợ người mù và mở rộng khả năng của điện báo. Đến những năm 1970, OCR đã được ứng dụng trong các sản phẩm thương mại. Ngày nay, OCR đã trở thành dịch vụ trực tuyến, tích hợp trong điện toán đám mây và các ứng dụng di động. OCR được sử dụng rộng rãi để nhập dữ liệu từ tài liệu giấy, số hóa tài liệu in, giúp cho việc lưu trữ, chỉnh sửa, tìm kiếm trở nên tiện lợi và hiệu quả. Ứng dụng OCR để nhận dạng chữ Nôm ở Việt Nam vẫn còn là một lĩnh vực mới mẻ, cần nhiều nghiên cứu và phát triển. Nhóm nghiên cứu LES Nôm của trường Đại học Công Nghệ - ĐHQG Hà Nội đã có một số nghiên cứu và đạt được thành quả nhất định trong lĩnh vực này. Các nghiên cứu chủ yếu tập trung nghiên cứu, xây dựng các Engine nhận dạng, để xây dựng ứng dụng nhận dạng chạy trên PC với đầu vào là ảnh của 1 chữ, chưa triển khai nhận dạng bằng Camera trên nền tảng di động. Để hiện thực hóa bài toán nhận dạng trên thiết bị di động, chúng tôi sử dụng ứng dụng nhận dạng trên PC của nhóm nghiên cứu LES-Nôm để tiến hành xây dựng hệ thống. Hệ thống hoạt động dựa trên mô hình client-server.
1.2. Các Bước Cơ Bản Của Một Hệ Thống Nhận Dạng Chữ Nôm
Quá trình xử lý OCR thường gồm 4 bước chính: tiền xử lý, trích chọn đặc trưng, phân loại và nhận dạng, hậu xử lý. Bước tiền xử lý nhằm tăng độ chính xác bằng cách tăng độ nét, loại bỏ nhiễu. Bước trích chọn đặc trưng giúp cho việc phân loại nhận dạng được dễ dàng và chính xác hơn. Bước phân loại và nhận dạng so sánh đặc trưng với dữ liệu đã được học để phân loại và nhận dạng ký tự. Bước hậu xử lý cải thiện độ chính xác của bước nhận dạng. Nhìn chung, OCR Chữ Nôm đã được ứng dụng nhận dạng trong rất nhiều ngôn ngữ, cả chữ Latinh cũng như chữ tượng hình, chữ in cũng như chữ viết tay. Tuy nhiên ở Việt Nam, ứng dụng OCR để nhận dạng chữ Nôm thì hiện nay vẫn chưa có nhiều nghiên cứu. Do đó, một trong những nhiệm vụ được đặt ra cho Công Nghệ Thông Tin là xây dựng bộ ứng dụng nhận dạng chữ Nôm.
II. Vấn Đề Tiền Xử Lý Ảnh Chữ Nôm Trên Thiết Bị Di Động
Tiền xử lý ảnh là một bước quan trọng trong hệ thống OCR, đặc biệt là đối với chữ Nôm trên thiết bị di động. Mục đích của tiền xử lý là cải thiện chất lượng ảnh, loại bỏ nhiễu, chuẩn hóa kích thước, giúp cho quá trình trích chọn đặc trưng và nhận dạng được chính xác hơn. Các kỹ thuật tiền xử lý thường được sử dụng bao gồm: nhị phân hóa ảnh, giảm nhiễu, phát hiện và xử lý nghiêng, phân đoạn, chuẩn hóa. Độ chính xác của một hệ thống OCR bị ảnh hưởng bởi rất nhiều nhân tố, có thể kể đến là các nhân tố sau: chất lượng của máy scan, độ phân giải được scan, loại tài liệu, chất lượng giấy, font được sử dụng, độ phức tạp của ngôn ngữ. Từ các nhân tố trên, chúng tôi nhận thấy hầu hết (4/6 nhân tố) các nhân tố ảnh hưởng đến chất lượng của hệ thống OCR đều có thể được cải tiến bởi bước tiền xử trong hệ thống, cho thấy Tiền xử lý là một phần rất quan trọng trong bài toán nhận dạng. Hiện tại ứng dụng nhận dạng chữ Nôm đã đạt được một số kết quả nhất định trên bộ chữ nôm NOM-DB0 với 495 chữ. Tuy nhiên các ứng dụng nhận dạng chỉ đều là ứng dụng PC, bước tiền xử lý chưa được nghiên cứu và cài đặt, do đó đầu vào yêu cầu là ảnh đen trắng (đã nhị phân hóa) của một chữ.
2.1. Tại Sao Tiền Xử Lý Ảnh Lại Quan Trọng Trong OCR Chữ Nôm
Tiền xử lý ảnh giúp cải thiện độ chính xác của hệ thống OCR bằng cách loại bỏ nhiễu, tăng độ tương phản và chuẩn hóa kích thước. Ngoài ra, tiền xử lý còn giúp hệ thống hoạt động ổn định hơn, đặc biệt là trên các thiết bị di động có cấu hình hạn chế. Ảnh chụp từ thiết bị di động thường bị nhiễu do điều kiện ánh sáng, góc chụp, chất lượng camera. Tiền xử lý ảnh giúp giảm thiểu những ảnh hưởng này, đảm bảo chất lượng đầu vào cho quá trình nhận dạng. Mục đích của bước tiền xử lý là để xử lý các nhân tố ảnh hưởng đến chất lượng của OCR, nhằm: giúp hệ thống OCR đạt được kết quả nhận dạng với độ chính xác cao và giúp hệ thống OCR chạy ổn định bằng cách nâng cao độ chính xác của ảnh, khử nhiễu, nhị phân hóa ảnh, phát hiện và xử lý nghiêng, phân trang, tách chữ, chuẩn hóa ký tự và các kỹ thuật hình học.
2.2. Các Kỹ Thuật Tiền Xử Lý Ảnh Thường Dùng Cho OCR Chữ Nôm
Các kỹ thuật tiền xử lý ảnh thường dùng cho OCR chữ Nôm bao gồm: các kỹ thuật nâng cao chất lượng ảnh để khử nhiễu, làm đúng tính tương phản, sử dụng các kỹ thuật tính ngưỡng để loại bỏ nền của ảnh (nhị phân hóa ảnh), áp dụng các kỹ thuật phát hiện, xử lý nghiêng để loại bỏ nghiêng (xử lý nghiêng), áp dụng các kỹ thuậtphân trang, tách chữ để tách thành các chữ riêng rẽ và áp dụng các kỹ thuật về hình thái nhằm cải tiến chất lượng của các ký tự (ví dụ như làm mịn nét chữ). Mỗi kỹ thuật có những ưu điểm và hạn chế riêng, cần được lựa chọn và điều chỉnh phù hợp với từng loại ảnh và yêu cầu của hệ thống. Vì hạn chế về khả năng xử lý của thiết bị di động, cũng như tham khảo từ các tổng hợp về các phương pháp nhị phân hóa ảnh, chúng tôi lựa chọn sử dụng thuật toán nhị phân hóa sữ dụng ngưỡng toàn cục, với thuật toát xác định ngưỡng của Otsu.
III. Phương Pháp Nhị Phân Hóa Ảnh Otsu Cho Nhận Dạng Chữ Nôm
Nhị phân hóa ảnh là quá trình chuyển đổi ảnh xám hoặc ảnh màu thành ảnh nhị phân (đen trắng). Thuật toán Otsu là một phương pháp nhị phân hóa ảnh tự động, được sử dụng rộng rãi trong các ứng dụng OCR. Thuật toán Otsu tìm ngưỡng phân tách giữa nền và đối tượng sao cho phương sai giữa các lớp là lớn nhất. Về cơ bản, thuật toán xác định ngưỡng Otsu duyệt qua tất cả các giá trị threshold có thể có, tính toán phương sai giữa giá trị các điểm ảnh của nội dung (background), nền (foreground) và giá trị ngưỡng. Sau đó lựa chọn threshold có tổng phương sai giữa nền và nội dung là nhỏ nhất. Thuật toán bao gồm các bước sau: Tính toán histogram của ảnh xám, duyệt qua tất cả các giá trị threshold có thể, tính toán phương sai giữa nội dung và nền của giá trị threshold được chọn và Threshold của ảnh sẽ là giá trị mà tại đó phương sai trong của nội dung và nền là lớn nhất. Thuật toán xác định ngưỡng Otsu Đầu vào: ảnh xám (grey). Đầu ra: ngưỡng nhị phân
3.1. Ưu Điểm Của Thuật Toán Otsu Trong Nhị Phân Hóa Ảnh Chữ Nôm
Thuật toán Otsu có nhiều ưu điểm, bao gồm: tính tự động (không cần tham số điều chỉnh), tính hiệu quả (thời gian xử lý nhanh), tính ổn định (ít bị ảnh hưởng bởi nhiễu). Mức độ chính xác: Kết quả của bước nhị phân hóa ảnh chính xác hay không tùy thuộc vào bài toán được áp dụng. Tuy nhiên, dựa vào những đánh giá được tham khảo từ [12], thì thuật toán Otsu đã được đánh giá là một thuật toán có độ chính xác cao, thời gian xử lý nhanh và được áp dụng rộng rãi.Tính dễ cài đặt: Thuật toán chỉ có 4 bước, các bước thực hiện tính toán không phức tạp. Thuật toán dễ cài đặt.
3.2. Hạn Chế Của Thuật Toán Otsu và Giải Pháp Khắc Phục
Thuật toán Otsu có một số hạn chế, chẳng hạn như: khó xử lý ảnh có độ tương phản thấp, khó xử lý ảnh có nền không đồng nhất. Để khắc phục những hạn chế này, có thể kết hợp thuật toán Otsu với các kỹ thuật tiền xử lý khác, như: cân bằng histogram, lọc nhiễu thích ứng. So sánh cho thấy phương pháp Otsu cho kết quả tốt nhất về hiệu năng. Phương pháp của Otsu là một trong những kỹ thuật được sử dụng rộng rãi trong bài toán chuyển từ ảnh xám sang ảnh nhị phân. Phương pháp Otsu tìm ngưỡng mà làm cho sự thay đổi giữa các nền và nội dung là nhỏ nhất.
IV. Phát Hiện và Xử Lý Nghiêng Ảnh Chữ Nôm Trên Di Động
Phát hiện và xử lý nghiêng ảnh là một bước quan trọng để đảm bảo độ chính xác của quá trình OCR. Ảnh chụp từ thiết bị di động thường bị nghiêng do góc chụp không chính xác. Do đó, cần phát hiện và xoay ảnh về đúng vị trí trước khi thực hiện các bước tiếp theo. Để tiến hành xử lý nghiêng cho chữ Nôm, chúng tôi tiến hành tìm hiểu và tham khảo các thuật toán đã được áp dụng. Dựa trên thuật toán xử lý nghiêng cho văn bản chụp từ sách chữ latin của Wojciech Bieniechki [11], chúng tôi đề xuất phương pháp phát hiện và xử lý nghiêng cho chữ Nôm. Phương pháp xử lý nghiêng của Wojciech Bieniechki được trình bày như sau: Ý tưởng là tìm một đường thẳng bên trái của vùng chữ. Độ dốc của đường này chính là góc xoay của vùng chữ.
4.1. Các Phương Pháp Phát Hiện Nghiêng Ảnh Chữ Nôm Phổ Biến
Các phương pháp phát hiện nghiêng ảnh chữ Nôm phổ biến bao gồm: phân tích thông tin chiếu, chuyển đổi Hough, các thành phần kết nối, phân cụm, và các kỹ thuật dựa trên sự tương quan giữa các đường. Mỗi phương pháp có những ưu điểm và hạn chế riêng, cần được lựa chọn và điều chỉnh phù hợp với từng loại ảnh và yêu cầu của hệ thống. Các nghiên cứu cho thấy, hầu hết các phương pháp xử lý nghiêng cho những độ chính xác khác nhau trong những trường hợp khác nhau [8]. Vì vậy việc lựa chọn kỹ thuật nào cho phát hiện và xử lý nghiêng là tùy thuộc vào ứng dụng, cũng như loại ảnh muốn sử dụng.
4.2. Thuật Toán Phát Hiện Và Xử Lý Nghiêng Ảnh Chữ Nôm Tối Ưu
Dựa trên thuật toán xử lý nghiêng cho văn bản chụp từ sách chữ latin của Wojciech Bieniechki, chúng tôi đề xuất thuật toán phát hiện và xử lý nghiêng cho chữ Nôm như sau: Đầu vào: ảnh nhị phân (đã khử nhiễu). Đầu ra: Góc nghiêng của ảnh. Thuật toán: Xác định điểm đen trái nhất I (x,y). Xác định chiều nghiêng. Chiều nghiêng được định nghĩa như sau: Nghiêng sang trái nếu I nằm ở nữa trên. Nghiêng sang phải nếu I nằm ở nữa dưới. Duyệt từ trái sang phải để tìm các điểm đen bên trái. Với khoảng cách 𝛻y,ta có tập T((x1, y1), (x2, y2),…, (xn, yn)). Xác định các góc hợp bởi phương thẳng đứng với đường thẳng đi qua I và các điểm đen bên trái. Góc nghiêng sẽ là góc bé nhất nếu nghiêng sang trái, góc lớn nhất nếu nghiêng sang phải. Điều kiện để thuật toán chạy đúng: Vùng chữ trong ảnh chụp phải nằm ở trung tâm của ảnh vào. Nếu ảnh bị nghiêng, phần lề trái của vùng chữ phải chiếm đa số vùng ảnh.
V. Phân Đoạn Và Tách Chữ Nôm Từ Ảnh Trên Ứng Dụng Di Động
Phân đoạn và tách chữ là quá trình chia ảnh thành các vùng nhỏ hơn, mỗi vùng chứa một ký tự. Đây là một bước quan trọng để chuẩn bị cho quá trình nhận dạng. Các phương pháp phân đoạn tách chữ thường áp dụng cho đặc thù ngôn ngữ, phương pháp này có thể hiệu quả với ngôn ngữ này, nhưng lại không phù hợp cho một loại ngôn ngữ khác. Nguyên nhân chủ yếu là do cấu tạo, các trình bày các ngôn ngữ khác nhau. Vì chữ Nôm thường được trình bày theo hàng và cột, các chữ được viết cùng kích thước, thẳng hàng và gióng cột, do đó phương pháp tách chữ không quá phức tạp. Dựa trên histogram chiều ngang và chiều dọc, chúng tôi đã sử dụng một phương pháp đơn giản để tách chữ Nôm ra từ ảnh chụp.
5.1. Các Phương Pháp Phân Đoạn Và Tách Chữ Nôm Tiên Tiến
Các phương pháp phân đoạn có thể được chia làm 3 nhóm chính: trên xuống, dưới lên và các kỹ thuật lai. Các phương pháp trên xuống, đệ quy chia các vùng lớn trong tài liệu thành các vùng nhỏ hơn. Bên cạnh đó, các phương pháp dưới lên bắt đầu bằng nhóm các điểm ảnh được quan tâm, sau đó kết hợp cúng thành các khối lớn hơn hoặc kết nối các thành phần, như các ký tự mà sau đó được nhóm thành các từ, các đường hoặc khối chữ. Các phương pháp lai là kết hợp của 2 phương pháp trên xuống và dưới lên.
5.2. Thuật Toán Tách Chữ Nôm Dựa Trên Histogram Chiếu
Dựa trên histogram chiều ngang và chiều dọc, chúng tôi đã sử dụng một phương pháp đơn giản để tách chữ Nôm ra từ ảnh chụp. Đầu vào: ảnh nhị phân (đã xử lý nghiêng) của vùng chữ. Đầu ra: các chữ được tách ra. Thuật toán: Chiếu histogram theo chiều ngang của vùng chữ. Đường biên bao các hàng là đường ngang xuất phát từ điểm có giá trị histogram là min. Chiếu histogram theo chiều dọc của vùng chữ. Đường biên bao các cột là đường dọc xuất phát từ điểm có giá trị histogram là min. Giao các cột và hàng cho ta vị trí các chữ. Điều kiện để thuật toán chạy đúng: Các chữ tách nhau (không sát liền nhau). Các chữ thẳng hàng và gióng cột. Kích thước các chữ bằng nhau.
VI. Thực Nghiệm và Đánh Giá Hiệu Suất Nhận Dạng Chữ Nôm
Để đánh giá hiệu suất của hệ thống, cần thực hiện các thử nghiệm trên bộ dữ liệu lớn và đa dạng. Các tiêu chí đánh giá bao gồm: độ chính xác, độ trễ, khả năng xử lý ảnh nghiêng, khả năng xử lý ảnh nhiễu. Chúng tôi tiến hành thực nghiệm với ba bước: cài đặt mô hình client-server, cài đặt các thuật toán tiền xử lý và tiến hành kiểm tra, đánh giá kết quả của các thuật toán. Quá trình tiến hành xây dựng và hoàn thiện hệ thống được tiến hành như sau: Cài đặt mô hình client-server. Cài đặt các thuật toán tiền xử lý trên điện thoại Android và Kiểm tra, đánh giá kết quả.
6.1. Xây Dựng Ứng Dụng Nhận Dạng Chữ Nôm Theo Mô Hình Client Server
Chúng tôi triển khai mô hình client-server cho bài toán nhận dạng trên thiết bị di động. Ở bước này, server nhận dạng sử dụng ứng dụng nhận dạng hiện có trên PC, để xây dựng thành Web-service nhằm mục đích dễ dàng truy cập và sử dụng từ client là thiết bị di động. Ở phía client (thiết bị Android), chúng tôi xây dựng ứng dụng có chức năng kết nối đến server để yêu cầu nhận dạng và nhận kết quả trả về.
6.2. Đánh Giá Độ Chính Xác Của Thuật Toán Tiền Xử Lý
Để kiểm tra độ chính xác của thuật toán xử lý nghiêng, chúng tôi xây dựng ứng dụng kiểm thử sử dụng công cụ hỗ trợ viết ca kiểm thử của Android SDK. Kết quả kiểm thử cho thấy độ chính xác của thuật toán xử lý nghiêng đạt 96%. Để tiến hành kiểm tra chương trình, chúng tôi thực hiện kiểm tra kết quả với các kịch bản như: kiểm tra nhận dạng một từ với từ bản in (giấy trắng, mực đen) và từ bản in trên nền xám. Ngoài ra còn có kiểm tra nhận dạng nhiều từ với góc không nghiêng với nhiều từ thưa nhau trên nền trắng và nhiều từ thưa nhau trên nền xám. Bên cạnh đó có kiểm tra nhận dạng nhiều từ với góc nghiêng với nhiều từ thưa nhau trên nền trắng và nhiều từ thưa nhau trên nền xám.
6.3. Hướng Cải Tiến Hệ Thống Nhận Dạng Chữ Nôm
Hướng cải tiến hệ thống: Hệ thống nhận dạng chữ Nôm cần được cải tiến để tăng độ chính xác và độ ổn định. Cần nghiên cứu các thuật toán tiền xử lý, trích chọn đặc trưng, nhận dạng, và hậu xử lý tiên tiến hơn. Ngoài ra, cần xây dựng bộ dữ liệu lớn và đa dạng để huấn luyện và đánh giá hệ thống.Cần nghiên cứu thuật toán phát hiện và xử lý nghiêng cho trường hợp chụp lệch. Bên cạnh đó thuật toán tách chữ hiện tại phụ thuộc vào kết quả của quá trình chiếu histogram, nên khi các chữ được viết sát, kề nhau, thuật toán sẽ cho độ chính xác không cao, do đó cần cải tiến thuật toán.