VietASI.comVietASI
OCR chữ Việt và số hoá tài liệu

Nhận dạng chữ viết tay tiếng Việt khác OCR chữ in ở đâu: nét liền, dấu rời và dữ liệu

Chữ viết tay tiếng Việt khó với máy vì nét nối, dấu viết rời và đặt lệch, mỗi người một kiểu. Giải thích công nghệ nhận dạng, mức kỳ vọng thực tế và cách làm bán tự động.

Elderly man at a wooden table in a Hue house turning pages of an old hand-filled notebook, ink faded and unreadable, shallow depth of field, low angle, soft green window light

Nhận dạng chữ viết tay khác OCR chữ in ở chỗ không có hai người viết giống nhau, các chữ thường nối liền không có khoảng hở rõ, và với tiếng Việt, dấu thanh hay được viết rời, đặt lệch sang chữ bên cạnh, thậm chí viết bù sau khi xong cả từ. Vì vậy máy không thể cắt từng ký tự rồi đọc như chữ in; nó phải nhìn cả dòng và đoán chuỗi chữ hợp lý nhất. Với chữ viết rõ, cẩn thận, công nghệ hiện nay đọc khá tốt; với chữ viết nhanh, ghi chú riêng hay tài liệu cũ mực phai, sai sót còn rất nhiều.

Hiểu những khác biệt này giúp đặt kỳ vọng đúng và thiết kế quy trình hợp lý: chỗ nào để máy làm, chỗ nào cần người, và khi nào đáng bỏ công dạy máy quen với nét chữ của một người hay một kho tài liệu. Bài viết đi từ cơ chế đến thực hành, kèm lưu ý về quyền riêng tư của nét chữ.

Hai bài toán khác nhau: viết trên màn hình và viết trên giấy

Giới nghiên cứu chia nhận dạng chữ viết tay thành hai nhánh. Nhánh trực tuyến xử lý chữ viết trên màn hình cảm ứng hay bảng vẽ: máy ghi được cả chuỗi nét, thứ tự viết, hướng bút, tốc độ. Thông tin về thứ tự nét giúp ích rất nhiều; chẳng hạn dấu thanh viết sau cùng vẫn được biết là thuộc về chữ nào nhờ vị trí và thời điểm. Bàn phím viết tay trên điện thoại là ví dụ quen thuộc.

Nhánh ngoại tuyến xử lý ảnh chữ viết trên giấy: sổ sách, thư từ, phiếu điền tay, vở học sinh. Máy chỉ có ảnh tĩnh, không biết nét nào viết trước, nét nào viết sau. Đây là bài toán khó hơn và là bài toán của số hoá. Trong tiếng Anh, nhánh này hay được gọi là HTR (handwritten text recognition) để phân biệt với OCR chữ in, dù trong đời thường người ta vẫn gọi chung là OCR.

Phần lớn câu hỏi thực tế, như "máy có đọc được sổ ghi chép của ông bà không", "có số hoá được phiếu khảo sát viết tay không", thuộc nhánh ngoại tuyến. Vì vậy, khi thấy một công cụ quảng cáo nhận dạng chữ viết tay rất chính xác, hãy hỏi đó là viết trên màn hình hay trên giấy.

Vì sao chữ viết tay tiếng Việt đặc biệt khó

Dấu viết rời và đặt lệch. Người viết nhanh thường viết hết phần thân chữ của cả từ rồi mới quay lại thêm dấu, và dấu có thể rơi vào giữa hai chữ cái, hoặc lệch sang âm tiết bên cạnh. Máy phải quyết định dấu thuộc về nguyên âm nào, việc mà chữ in không bao giờ đòi hỏi.

Dấu bị giản lược. Dấu hỏi và dấu ngã viết vội trông như một gạch ngắn; dấu nặng thành một chấm mờ hoặc mất hẳn; móc của ơ, ư gộp vào nét nối sang chữ sau. Người Việt đọc vẫn hiểu nhờ ngữ cảnh, máy thì phải học được đúng kiểu ngữ cảnh đó.

Chữ nối kiểu trường học. Nhiều thế hệ học viết chữ nối theo mẫu trong vở ô li, với nét thanh nét đậm và các vòng nối đặc trưng. Các mẫu chữ dạy ở trường đã thay đổi qua nhiều thời kỳ, nên kho tài liệu trải dài vài chục năm chứa nhiều kiểu chữ khác nhau.

Viết tắt và ký hiệu riêng. Ghi chép cá nhân đầy những cách viết tắt như "ko", "đc", "ng", "t/g", hay ký hiệu riêng của từng người. Máy đọc đúng chữ "đc" nhưng không biết người viết muốn nói "được" hay "địa chỉ".

Dữ liệu huấn luyện ít. So với chữ in, có rất ít ảnh chữ viết tay tiếng Việt đã được gõ lại chính xác để làm dữ liệu huấn luyện, và làm thêm thì tốn công. Nét chữ cũng là dữ liệu gắn với một người cụ thể, nên việc thu thập cần sự đồng ý rõ ràng.

Máy đọc cả dòng như thế nào

Thay vì cắt từng ký tự, các hệ thống nhận dạng chữ viết tay hiện đại nhận ảnh cả một dòng. Một mạng nơ-ron quét dọc dòng từ trái sang phải, tạo ra chuỗi dự đoán ở mỗi vị trí, rồi một bước giải mã gom chuỗi dự đoán đó thành văn bản, cho phép một ký tự kéo dài nhiều vị trí và bỏ qua khoảng trống. Kỹ thuật giải mã phổ biến cho việc này có tên CTC; các thế hệ mới hơn dùng kiến trúc kiểu Transformer, trong đó phần giải mã hoạt động gần giống một mô hình ngôn ngữ viết ra từng ký tự.

Cách tiếp cận theo dòng giải quyết được chữ nối, vì máy không cần biết một chữ cái bắt đầu và kết thúc ở đâu. Nó cũng xử lý dấu tốt hơn, vì dấu nằm trong cùng ảnh dòng với thân chữ và mô hình học được dấu ở vị trí này thường thuộc nguyên âm nào. Điều kiện là bước tách dòng phải làm tốt: chữ viết tay thường xiên, dòng trên chạm dòng dưới, dấu của dòng dưới chen lên dòng trên.

Phần giải mã có yếu tố mô hình ngôn ngữ cũng là con dao hai lưỡi. Nó giúp đoán đúng "suy nghĩ" dù dấu ngã viết như gạch ngang, nhưng cũng có thể "đoán" một từ phổ biến thay cho tên riêng hiếm, hoặc sửa lỗi chính tả mà người viết thật sự mắc. Với tài liệu cần nguyên văn, đó là điều phải tính đến khi soát.

Những hiểu lầm hay gặp về máy đọc chữ viết tay

"Chữ mình đọc được thì máy cũng đọc được." Người đọc chữ viết tay dựa vào rất nhiều thứ máy không có: biết người viết, biết chuyện được kể, quen cách viết tắt trong gia đình. Một trang thư người thân đọc trôi có thể là trang khó nhất với máy, vì toàn tên riêng, biệt danh và từ địa phương.

"Ảnh càng sắc nét, tương phản càng gắt thì càng tốt." Với chữ viết tay, mực bút bi, bút mực, bút chì có độ đậm nhạt thay đổi dọc theo nét. Tăng tương phản quá tay hay chuyển đen trắng thô làm đứt những đoạn nét mảnh, và dấu thanh vốn mảnh sẽ mất trước. Giữ ảnh xám hoặc màu, chỉ chỉnh vừa phải.

"Máy đọc sai là vì chữ xấu." Không hẳn. Nhiều lỗi đến từ bước tách dòng: dấu của dòng dưới bị cắt sang dòng trên, hai dòng sát nhau bị gộp làm một. Chữ đẹp mà tách dòng sai vẫn cho kết quả tệ, nên khi thấy lỗi bất thường, hãy kiểm khung dòng trước khi đổ lỗi cho nét chữ.

"Đã có AI thì không cần người gõ lại nữa." Với chữ in sạch, điều này gần đúng cho mục đích tìm kiếm. Với chữ viết tay, máy rút ngắn rất nhiều công gõ, nhưng phần soát cuối, nhất là tên riêng, ngày tháng, số liệu, vẫn cần người, và cần người hiểu bối cảnh tài liệu.

Mức kỳ vọng thực tế theo loại chữ viết tay

Không có con số chung đáng tin cho mọi loại tài liệu, và công cụ cải thiện theo thời gian. Bảng dưới mô tả mức kỳ vọng tương đối, để giúp quyết định nên tự động hoá tới đâu.

Loại tài liệuKỳ vọng tương đốiCách làm hợp lý
Chữ in hoa điền trong ô của biểu mẫuKhá caoTự động, kiểm khuôn dạng, gắn cờ ô độ tin cậy thấp
Chữ thường viết rõ, giấy sạchTrung bình đến kháMáy đọc, người soát tên riêng và số liệu
Ghi chép nhanh, viết tắt nhiềuThấpMáy gợi ý, người gõ lại phần quan trọng
Thư từ, nhật ký cũ, mực phai, giấy ốThấp đến rất thấpCoi máy như trợ lý đọc thử; chép tay là chính
Chữ của một người, có nhiều trangTăng rõ nếu tinh chỉnhGõ chuẩn vài chục trang đầu để dạy máy quen nét

Điểm đáng chú ý ở dòng cuối: khi kho tài liệu chủ yếu do một hoặc vài người viết, như nhật ký, sổ tay nghiên cứu hay sổ sách của một cửa hiệu, đầu tư gõ chuẩn một phần nhỏ để tinh chỉnh mô hình thường mang lại hiệu quả lớn cho phần còn lại.

Quy trình bán tự động cho một kho chữ viết tay

Với chữ viết tay, mục tiêu thực tế là giảm công gõ chứ không phải thay hoàn toàn con người. Quy trình dưới đây áp dụng được từ vài chục đến vài nghìn trang.

  1. Quét hoặc chụp ở độ phân giải cao hơn chữ in, giữ ảnh màu hoặc xám vì mực phai cần mọi chi tiết.
  2. Kiểm bước tách dòng trên vài trang: dòng có bị cắt ngang dấu, có bị gộp hai dòng không. Sửa tách dòng trước khi nhận dạng.
  3. Chạy nhận dạng thử, đo tỷ lệ lỗi trên vài trang đã gõ chuẩn để biết xuất phát điểm.
  4. Nếu kho do ít người viết và tỷ lệ lỗi còn cao, gõ chuẩn thêm một phần để tinh chỉnh mô hình, rồi đo lại.
  5. Dùng kết quả máy làm bản nháp; người soát sửa trên giao diện hiện ảnh dòng cạnh chữ máy đọc.
  6. Lập danh sách viết tắt, tên riêng của kho tài liệu và dùng nó trong bước hậu xử lý.
  7. Đánh dấu rõ chỗ không đọc được, không đoán; ghi chú cách đọc khác nếu người soát phân vân.

Nếu dùng chatbot đọc ảnh để giải mã chữ viết tay, hãy yêu cầu nó chép nguyên văn và ghi rõ chỗ không chắc, rồi đối chiếu với ảnh. Chatbot đôi khi đọc ra một câu rất trơn tru mà người viết chưa từng viết.

Nét chữ cũng là dữ liệu cá nhân

Chữ viết tay mang dấu ấn riêng của từng người và từ lâu được dùng để nhận ra người viết. Vì vậy, ảnh chữ viết tay nên được đối xử như dữ liệu cá nhân, nhất là khi nội dung là thư riêng, bệnh án, bài làm của học sinh hay đơn từ. Trước khi đưa lên dịch vụ trực tuyến, cân nhắc người viết có đồng ý không, nội dung có thông tin nhạy cảm không, và dịch vụ sẽ lưu ảnh bao lâu.

Với dự án muốn thu thập chữ viết tay làm dữ liệu huấn luyện, như nhờ sinh viên viết mẫu hay dùng phiếu đã thu, cần giải thích rõ mục đích, xin đồng ý, tách thông tin định danh khỏi ảnh chữ và cho phép rút lại. Đây cũng là chuẩn mực mà cộng đồng nghiên cứu xử lý ngôn ngữ ngày càng coi trọng khi chia sẻ dữ liệu.

Với bài làm của học sinh, có thêm một lưu ý: dùng máy đọc chữ để số hoá là một chuyện, dùng nó để chấm điểm hay xếp hạng trẻ là chuyện khác hẳn và cần thận trọng hơn nhiều, vì sai sót nhận dạng có thể bị hiểu nhầm thành lỗi của em học sinh.

Câu hỏi thường gặp

Máy có đọc được sổ ghi chép viết tay của ông bà không?

Có thể đọc được một phần, tuỳ nét chữ, mực và giấy. Chữ cẩn thận, giấy còn tốt thì kết quả khá dùng được làm bản nháp; chữ viết nhanh, mực phai thì máy chỉ gợi ý được từng đoạn. Nên coi máy là trợ lý đọc thử và giữ người thân quen nét chữ làm người soát chính.

Vì sao bàn phím viết tay trên điện thoại đọc rất tốt mà ảnh chụp chữ viết tay lại kém?

Bàn phím viết tay thuộc nhánh nhận dạng trực tuyến: máy biết thứ tự nét, hướng bút và lúc bạn thêm dấu. Ảnh chụp chỉ là hình tĩnh, mất toàn bộ thông tin đó, nên máy phải đoán nhiều hơn. Hai bài toán có độ khó khác nhau dù cùng gọi là nhận dạng chữ viết tay.

Có nên tinh chỉnh mô hình cho nét chữ của một người?

Đáng làm khi người đó viết nhiều trang, như nhật ký hay sổ sách nhiều năm. Gõ chuẩn vài chục trang làm dữ liệu thường giúp tỷ lệ lỗi giảm rõ cho phần còn lại. Với kho gồm rất nhiều người viết, mỗi người vài trang, lợi ích của tinh chỉnh theo người thấp hơn nhiều.

Chữ viết tay in hoa trong biểu mẫu có dễ hơn chữ thường không?

Thường là dễ hơn đáng kể, vì mỗi chữ nằm trong ô riêng, không nối, và hình dạng ít biến đổi. Đó là lý do nhiều biểu mẫu yêu cầu viết in hoa. Tuy vậy, dấu trên chữ in hoa hay bị viết nhỏ, sát mép ô, nên vẫn cần chụp đủ nét và soát các trường quan trọng.

Chatbot đọc chữ viết tay tốt hơn phần mềm OCR không?

Với chữ viết rõ, chatbot đọc ảnh thường cho kết quả dễ đọc hơn vì hiểu ngữ cảnh. Nhưng nó cũng dễ đọc thành câu hợp lý mà không đúng giấy, nhất là với tên riêng và số liệu. Nên yêu cầu chép nguyên văn, đánh dấu chỗ không chắc, và đối chiếu với ảnh gốc.

Có thể dùng nhận dạng chữ viết tay để chấm bài học sinh không?

Về kỹ thuật có thể dùng để số hoá bài làm, nhưng chấm điểm tự động dựa trên chữ máy đọc rất dễ sai, và sai đó dễ bị hiểu thành lỗi của học sinh. Với trẻ em, nên dùng máy để hỗ trợ giáo viên đọc và lưu trữ, không dùng để chấm điểm hay xếp hạng.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138