
Tesseract hay VietOCR: chữ in và chữ viết tay đảo ngược kết quả

Với chữ in tiếng Việt rõ, Tesseract là lựa chọn tốt hơn về cả sai số lẫn tốc độ; với chữ viết tay, VietOCR ít lỗi hơn nhưng chậm hơn. Phép đo OCR tiếng Việt của Nôm ghi nhận CER của Tesseract và VietOCR lần lượt là 0,00% và 1,41% trên chữ in sạch, 0,70% và 3,37% trên chữ in nhiễu nhẹ, 30,34% và 29,00% trên ảnh in khó, 69,34% và 31,82% trên chữ viết tay; độ trễ trung vị trong bảng tổng hợp là 80 ms và 240 ms.
Những con số ấy thuộc hai nhóm dữ liệu khác nhau: ảnh chữ in được tạo tổng hợp, còn ảnh viết tay lấy từ tập chữ viết tay tiếng Việt. Chúng cho thấy lựa chọn thay đổi theo loại nét chữ, chứ không dự báo một tỷ lệ lỗi cố định cho mọi trang giấy. Với tài liệu trộn chữ in và phần điền tay, cách hợp lý là xét riêng từng vùng trước khi quyết định dùng một hay cả hai công cụ.
Ma trận lựa chọn theo đầu vào
Chữ in sạch: bắt đầu với Tesseract và dữ liệu ngôn ngữ tiếng Việt. Nét đều, dòng thẳng và nền rõ là điều kiện gần với nhóm mà công cụ này đạt kết quả tốt nhất trong phép đo. Lợi thế tốc độ cũng có ý nghĩa khi phải xử lý nhiều trang cùng kiểu, vì thời gian nhận dạng sẽ cộng dồn theo số ảnh hoặc dòng cần chạy.
Chữ in nhiễu nhẹ: Tesseract vẫn dẫn trước. Một ít mờ hoặc nhiễu chưa phải lý do đủ mạnh để chuyển toàn bộ tài liệu sang VietOCR. Nếu ảnh có viền đen, lệch góc hoặc tương phản thấp, xử lý ảnh nguồn trước sẽ giúp đánh giá đúng năng lực của engine thay vì để lỗi chụp ảnh chi phối kết quả.
Ảnh in khó: VietOCR nhỉnh hơn rất ít trong nhóm thử nghiệm này, trong khi sai số của cả hai đều cao. Không nên diễn giải khoảng cách nhỏ đó thành lời hứa rằng VietOCR sẽ cứu được mọi bản quét cũ. Nếu có bản gốc, quét lại có thể hữu ích hơn việc đổi phần mềm; nếu không, cần giữ ảnh để đối chiếu những chỗ chữ đã mất nét.
Chữ viết tay: VietOCR là lựa chọn thử trước cho các dòng đã tách khỏi trang. Khoảng cách sai số lớn hơn hẳn các nhóm chữ in, nhưng đầu ra của VietOCR vẫn có thể chứa nhiều lỗi. Với biểu mẫu có nhãn trường in sẵn và nội dung viết tay, tách hai phần giúp dùng Tesseract cho nhãn rõ, VietOCR cho nét bút, rồi ghép kết quả theo đúng vị trí.
Vì sao bản quét thực tế cho kết quả khác ảnh thử theo dòng?
Chất lượng ảnh và bố cục trang có thể thay đổi sai số ngay cả khi giữ nguyên engine. Trong thử nghiệm 50 file scan của AloPDF, Tesseract 5.3 với dữ liệu vie đạt CER trung bình 1,8% ở nhóm sách và tài liệu quét 300 DPI; các nhóm giấy tờ hành chính, hóa đơn cũ, biên lai và ảnh chụp điện thoại lần lượt là 3,2%, 5,7%, 7,1% và 12,4%.
Phép thử này dùng file tài liệu thực và chỉ đo Tesseract. Nó khác phép đo trên ảnh chữ in tạo tổng hợp và dòng viết tay đã tách: nguồn ảnh, đơn vị đầu vào và phần việc mà engine phải xử lý đều không giống nhau. Vì thế, không thể đặt tỷ lệ của Tesseract trên ảnh điện thoại cạnh tỷ lệ của VietOCR trên dòng viết tay rồi tuyên bố công cụ nào thắng trên ảnh điện thoại.
Với bản chụp, trang nghiêng làm dòng chữ lệch; ánh sáng không đều che mất nét mảnh; giấy cũ và mực phai khiến dấu tiếng Việt khó phân biệt. Làm thẳng trang, cắt vùng thừa và cải thiện tương phản là những bước có thể thử trước khi nhận dạng. Khi dấu hoặc chữ đã biến mất khỏi ảnh gốc, phần mềm không có đủ thông tin thị giác để khôi phục chắc chắn bản chép đúng.
Chữ viết tay giảm lỗi, nhưng cần tính cả thời gian rà soát
VietOCR tạo ra kết quả tốt hơn rõ rệt trên tập dòng viết tay đã công bố, song mức sai số còn lại khiến việc tự động nhập thẳng tên người, địa chỉ hay số tiền trở nên rủi ro. Một dấu thanh sai có thể đổi từ; một chữ số sai có thể làm hỏng cả trường dữ liệu dù phần lớn ký tự khác đều đúng. CER trung bình mô tả toàn bộ tập ảnh, không nói trường quan trọng nhất của một biểu mẫu đã được đọc chính xác hay chưa.
Độ trễ trong bảng đo là thời gian nhận dạng ở cấu hình thử nghiệm, không phải thời gian hoàn thành một trang hỗn hợp. Quy trình thực tế còn phải xác định vùng chữ, cắt dòng, chuyển ảnh tới mô hình và ghép đầu ra về đúng trường. Nếu đa số nội dung là chữ in, chỉ đưa vùng viết tay qua VietOCR sẽ tránh dùng công cụ chậm hơn cho những dòng mà Tesseract đã xử lý tốt.
Chi phí vì thế không chỉ nằm ở thời gian chạy mô hình. Bản quét kém cần công chuẩn bị ảnh; biểu mẫu hỗn hợp cần bước tách vùng; dữ liệu nhạy với lỗi cần người đối chiếu. Khi cân nhắc hai engine cho một kho tài liệu, tỷ lệ trang thuộc từng loại và thời gian sửa đầu ra có thể quan trọng hơn mức chênh lệch độ trễ của riêng một dòng.
Cấu hình nào làm phép so sánh có ý nghĩa?
Tesseract cần được chạy với dữ liệu tiếng Việt thay vì cấu hình ngôn ngữ mặc định. Danh mục dữ liệu chính thức của Tesseract liệt kê vie.traineddata và phân biệt tessdata_fast với tessdata_best: bộ fast ưu tiên tốc độ, còn bộ best chậm hơn trên dữ liệu đánh giá của dự án. Sự phân biệt ấy không tự chứng minh bộ best sẽ cải thiện mọi tài liệu tiếng Việt; khi so kết quả, cần ghi rõ đã dùng bộ dữ liệu nào.
VietOCR nhận dạng chữ in lẫn chữ viết tay bằng kiến trúc kết hợp CNN và Transformer. Kho mã VietOCR giới thiệu cấu hình vgg_transformer, hướng dẫn cài đặt và công bố thư viện theo giấy phép Apache 2.0. Có thể cài từ mã nguồn của dự án rồi chọn đúng cấu hình và trọng số trước khi chạy; tên engine một mình không đủ mô tả một phép thử có thể lặp lại.
Cùng một ảnh cũng có thể cho kết quả khác khi thay phiên bản mã, dữ liệu ngôn ngữ, trọng số, cách cắt dòng hoặc bước tiền xử lý. Tốc độ lại phụ thuộc vào thiết bị và việc đo một dòng riêng lẻ hay cả quy trình xử lý trang. Vì vậy, số đo công bố hữu ích để chọn hướng thử ban đầu, còn quyết định vận hành cần dựa trên cấu hình thực tế của kho tài liệu cần số hóa.
Đo CER thế nào để không bỏ sót lỗi tiếng Việt?
CER là số ký tự bị thay thế, chèn hoặc xóa, chia cho số ký tự của bản chép chuẩn. Mẫu đánh giá nên tách chữ in rõ, ảnh nhiễu, bản quét kém và chữ viết tay; nếu trộn tất cả vào một tỷ lệ chung, lượng chữ in dễ đọc có thể che đi sai số cao ở phần điền tay. Cả hai engine cần được chạy trên cùng ảnh đầu vào và so với cùng bản chép chuẩn cho từng nhóm.
Trước khi tính lỗi, phải thống nhất cách chuẩn hóa Unicode, khoảng trắng, dấu câu và xuống dòng. Với tiếng Việt, dấu thanh và dấu phụ phải được giữ trong bản chép chuẩn: bỏ dấu có thể khiến một kết quả trông tốt hơn về số học nhưng mất đúng thông tin cần lưu. Nên xem riêng các trường như tên, mã định danh và số tiền, vì sai số trung bình thấp trên cả trang vẫn có thể đi cùng một lỗi nghiêm trọng tại những vị trí này.
Thời gian cũng cần đo trên cùng đơn vị công việc và cùng thiết bị. Nếu nhu cầu là tạo văn bản tìm kiếm từ sách in rõ, Tesseract có lợi thế được công bố. Nếu giá trị tài liệu nằm ở phần viết tay, VietOCR đáng dùng cho vùng đó, kèm đối chiếu ảnh gốc ở những trường đòi hỏi độ chính xác cao.
Đọc thêm:
Bài viết liên quan


Google Document AI hay Azure: hóa đơn một trang có thể chênh giá 10 lần

Printful hay Printify: rẻ hơn 159 USD chưa chắc đồng nghĩa ít lỗi hơn

OpusClip hay Vizard: clip tự chọn vẫn phải sửa tên và điểm cắt

Đăng ký doanh nghiệp online: sai tệp scan khiến hồ sơ quay lại từ đầu

FPT.AI hay Google Speech-to-Text: tiếng Việt cần đo bằng WER
Đăng ký bản tin
Nhận tin Web3, AI và tiền mã hóa mới nhất ngay trong hộp thư.