Tại sao OCR tiếng Việt vẫn khó? Những lỗi thường gặp và cách cải thiện độ chính xác

OCR Tiếng Việt và Số hóa tài liệu

Ảnh minh hoạ bởi Unsplash

Trong các cuộc họp chuyển đổi số doanh nghiệp (Digital Transformation), các vị sếp thường vẽ ra một viễn cảnh màu hồng: "Chúng ta mua một cái máy scan tự động, cho hết kho tài liệu kế toán 10 năm nay vào, hệ thống AI tự động đọc (OCR), bóc tách thành file Excel, sau đó ném vào thùng rác đống giấy tờ cồng kềnh kia". Nghe thì có vẻ đơn giản, nhưng khi team kỹ thuật xắn tay vào làm thực tế tại Việt Nam, họ mới nhận ra mình đang lao đầu vào một bức tường đá.

OCR (Optical Character Recognition - Nhận dạng ký tự quang học) là công nghệ biến hình ảnh chứa chữ (chụp qua điện thoại, scan máy in) thành văn bản Text máy tính hiểu được. Với tiếng Anh, các công cụ như Tesseract hay Google Vision đã đạt độ chính xác gần như 99%. Nhưng ngay khi áp dụng vào tiếng Việt (hay bất kỳ ngôn ngữ nào có nhiều dấu thanh), tỷ lệ lỗi bung bét lên tới 10-15%, khiến nhân sự nhập liệu thà gõ tay lại từ đầu còn hơn là ngồi đi sửa những cái "sai chính tả ngớ ngẩn" do máy sinh ra. Vì sao tiếng Việt lại làm khó máy tính đến vậy?

Phần 1: Lời Nguyền Của Dấu Chữ (Diacritics) Và Phông Chữ Dị Biệt

Tiếng Anh chỉ có đúng 26 chữ cái Latinh cơ bản tròn trịa. Trong khi đó, tiếng Việt sở hữu một lượng ký tự khổng lồ do hệ thống 6 thanh điệu (sắc, huyền, hỏi, ngã, nặng) đè lên hệ thống chữ cái có sẵn mũ (ă, â, ê, ô, ơ, ư). Máy tính quét ảnh bằng cách nhìn vào các cụm điểm ảnh đen (Pixels). Thảm họa bắt đầu từ đây:

  • Dấu chấm và Hạt bụi: Trong một tờ hóa đơn bị dính bẩn một chút mực, máy tính sẽ dễ dàng nhìn lộn hạt bụi đó thành dấu nặng (.). Từ "Mua" lập tức biến thành "Mụn".
  • Sự dính nét (Kearning): Chữ "hỏi" và chữ "hỏl" (chữ L thường). Nếu văn bản in bị nhòe nét mực trên giấy mỏng, dấu hỏi bị dính vào chữ o tạo thành một cục mực đen thui. Các bộ OCR truyền thống không thể dựa vào hình dáng hình học (Bounding Box) để cắt rời từng chữ cái ra đọc được nữa.
  • Phông chữ "cổ đại" và Chữ viết tay: Tài liệu nhà nước thường dùng phông Times New Roman hoặc Arial, nhưng hóa đơn bán lẻ của các cửa hàng lại xài font chữ hóa đơn kim (Dot matrix) bị đứt khúc lấm tấm, hoặc các font nghệ thuật bay bướm. Chưa kể đặc sản "chữ viết tay" của bác sĩ hay các biên bản giao nhận hàng hóa. Đọc chữ viết tay tiếng Việt vẫn là chén thánh (Holy Grail) mà mọi công ty AI Việt Nam đang khao khát giải quyết.

Phần 2: Nỗi Đau Mang Tên "Bảng Biểu (Tables)" Và "Giao Diện Đa Cột"

Nhận diện đúng chữ thôi chưa đủ. Khổ đau lớn nhất của ngành OCR là Trích xuất cấu trúc (Structure Extraction). Một tờ hóa đơn VAT luôn có cấu trúc bảng: Số TT | Tên hàng hóa | Đơn vị tính | Số lượng | Đơn giá | Thành tiền.

Nhưng khi bạn đưa tờ giấy cho máy quét, các đường kẻ bảng thường bị mờ, bị gãy nứt hoặc bị lóa sáng do nếp gấp giấy. Hệ quả là OCR đọc tràn dòng, nó lấy "Tên hàng hóa" nối thẳng với "Số lượng" rồi gộp chung vào một chuỗi String lộn xộn. Kế toán cần một file Excel phân chia rõ ràng các cột để cộng trừ nhân chia, chứ không cần một đoạn văn xuôi đọc như tiểu thuyết! Nếu cấu trúc bảng bị hỏng, giá trị của toàn bộ phần mềm OCR bằng KHÔNG.

Phần 3: Lộ Trình Cứu Vãn Bằng Tiền Xử Lý (Pre-processing)

Để cải thiện độ chính xác (Accuracy), chúng ta không thể chỉ phụ thuộc vào thuật toán OCR, mà phải chữa bệnh từ gốc: Làm sạch bức ảnh trước khi cho AI đọc. Giới kỹ sư thường sử dụng thư viện OpenCV (Thị giác máy tính nguồn mở) để thực hiện các đòn phép "Ma thuật đen" sau:

  1. Nhị phân hóa (Binarization): Biến bức ảnh màu hoặc ảnh thang xám mờ nhạt thành ảnh chỉ có 2 màu: Đen tuyền và Trắng toát (Black & White). Các thuật toán như Adaptive Thresholding giúp loại bỏ hoàn toàn hiện tượng bóng đổ (shadow) do ánh sáng đèn trần chiếu vào khi chụp điện thoại.
  2. Xoay ảnh tự động (Deskew): Con người chụp ảnh thường hay để tay bị chéo, nghiêng. OCR cực kỳ ghét chữ nằm nghiêng. Thuật toán Deskew sẽ tìm góc nghiêng của các dòng văn bản và xoay vặn bức ảnh thẳng tắp lại 0 độ trước khi đọc.
  3. Làm nét và Khử nhiễu chữ (Denoising): Dùng các ma trận lọc (Filters) để làm mỏng bớt các nét chữ bị nhòe mực, hoặc vá lại các nét đứt khúc của máy in kim, giúp các dấu tiếng Việt tách bạch rõ ràng khỏi các chữ cái cái.

Phần 4: Chuyển Giao Quyền Lực Cho Mô Hình Ngôn Ngữ Thị Giác (Vision-Language Models)

Vào thời điểm hiện tại (2024-2025), cách làm OCR truyền thống (Cắt từng chữ cái -> Nhận diện -> Ghép lại) đang dần lùi vào dĩ vãng nhường chỗ cho một cuộc lật đổ ngoạn mục của các Mô hình ngôn ngữ lớn đa phương thức (LLMs with Vision).

Thay vì cố gắng nhận diện hình khối từng dấu sắc, dấu huyền... Các mô hình như GPT-4 Vision hay Gemini Pro nhìn toàn bộ dòng chữ và dùng Sự thấu hiểu ngữ cảnh (Contextual Understanding) để đoán chữ.
Ví dụ: OCR truyền thống nhìn chữ "Trường h?c" (chữ o bị dính vết bẩn thành dấu hỏi). Nhưng LLM sẽ tự suy luận: "Trong tiếng Việt không có từ 'Trường h?c', chỉ có từ 'Trường học'. Nó chắc chắn là chữ 'học'.". Trí thông minh ngữ cảnh này giúp độ chính xác của tài liệu tiếng Việt nhảy vọt lên mức 98-99%, kể cả ảnh mờ nhòe.

Tương lai của OCR không nằm ở việc "Nhìn rõ hơn", mà nằm ở việc "Hiểu ngữ cảnh sâu sắc hơn".
Lời kết:
Sự phát triển của OCR tiếng Việt đang dọn đường cho việc số hóa toàn bộ hệ thống lưu trữ của đất nước, từ chứng minh thư (eKYC) trong ngân hàng, cho đến bệnh án điện tử trong các bệnh viện tuyến huyện. Tuy nhiên, việc đẩy các tài liệu nhạy cảm (có chứa CCCD, bảng lương, hợp đồng mật) lên các API của OpenAI hay Google (Cloud AI) để lấy chữ (như phần 4 đề cập) lại vướng phải một rào cản chết người: BẢO MẬT DỮ LIỆU.

Rất nhiều ngân hàng và cơ quan chính phủ Việt Nam ban hành lệnh cấm tuyệt đối việc đẩy dữ liệu nội bộ ra khỏi biên giới quốc gia. Bài toán đặt ra là: Làm sao để có AI thông minh như Cloud, nhưng lại cài đặt chạy offline hoàn toàn trên máy chủ của công ty (On-premise)? Hãy đón đọc bài viết tiếp theo về một xu hướng đang nổi đình nổi đám: AI Local và Trận chiến giữa Đám mây (Cloud) vs Thiết bị biên (Edge).

Đăng nhận xét

Mới hơn Cũ hơn