Xây dựng và triển khai ứng dụng microservices trích xuất thông tin hóa đơn tiếng Việt dùng YOLO và Tesseract

BUILDING AND DEPLOYING A MICROSERVICES-BASED APPLICATION FOR VIETNAMESE INVOICE INFORMATION EXTRACTION USING YOLO AND TESSERACT

Trong bối cảnh chuyển đổi số diễn ra mạnh mẽ trên hầu hết các lĩnh vực, nhu cầu tự động hóa quy trình xử lý hóa đơn ngày càng trở nên phổ biến và cấp thiết – không chỉ đối với doanh nghiệp mà còn đối với cá nhân, hộ kinh doanh nhỏ, tổ chức phi lợi nhuận hay các nền tảng thương mại điện tử khi cần thống kê và lưu trữ hàng trăn thậm chí hằng nghìn giao dịch. Hóa đơn không còn đơn thuần là chứng từ thanh toán mà đã trở thành một phần quan trọng trong quản lý tài chính, kiểm soát chi tiêu và minh bạch hóa dòng tiền. Việc xử lý hóa đơn theo phương pháp thủ công truyền thống dễ dẫn đến sai sót, mất nhiều thời gian, chi phí nhân sự và khó tích hợp vào các hệ thống quản lý hiện đại.

Trước thực tế đó, đề tài hướng đến việc xây dựng một hệ thống thông minh có khả năng trích xuất thông tin từ hóa đơn tiếng Việt, kết hợp giữa hai công nghệ chính là YOLO (dùng để nhận dạng và định vị các vùng chứa thông tin trong hình ảnh) và Tesseract OCR (nhận dạng ký tự quang học), được triển khai trên nền kiến trúc microservices. Kiến trúc này giúp hệ thống linh hoạt hơn trong vận hành, dễ bảo trì, nâng cấp và mở rộng trong tương lai, đồng thời phù hợp để tích hợp với các hệ thống doanh nghiệp có quy mô và nhu cầu khác nhau.

Hệ thống được thiết kế để hoạt động ổn định ngay cả trong những điều kiện đầu vào không lý tưởng – như ảnh hóa đơn bị mờ, lệch, thiếu sáng hoặc mất nét. Mặc dù không tập trung vào tối ưu thuật toán nhận dạng, đề tài vẫn đảm bảo quá trình trích xuất thông tin diễn ra mạch lạc, hỗ trợ người dùng xử lý hóa đơn nhanh chóng, chính xác và hiệu quả hơn. Với khả năng ứng dụng thực tiễn cao trong các lĩnh vực như tài chính, kế toán, logistics và thương mại điện tử, đề tài kỳ vọng sẽ góp phần thúc đẩy quá trình số hóa dữ liệu, giảm thiểu thời gian nhập liệu và hạn chế sai sót so với quy trình xử lý thủ công hiện nay.

Xem toàn văn báo cáo tại:

TÁC GIẢ

Nguyễn Hoàng Diệp Phi, Nguyễn Trọng Phúc

GIẢNG VIÊN HƯỚNG DẪN

NGÀNH

Năm:

Tổng quan

Trong thời kỳ chuyển đổi số phát triển mạnh mẽ, việc tự động hóa quy trình xử lý hóa đơn thanh toán trở thành một nhu cầu thiết yếu đối với doanh nghiệp, tổ chức và hộ kinh doanh. Hóa đơn là tài liệu quan trọng phục vụ cho công tác kế toán, tài chính và kiểm toán. Tuy nhiên, phần lớn các đơn vị hiện nay vẫn xử lý hóa đơn theo phương pháp thủ công – vốn tốn thời gian, dễ sai sót và gây khó khăn trong việc lưu trữ, tổng hợp cũng như tích hợp vào hệ thống quản lý dữ liệu.

Theo báo cáo của McKinsey, các doanh nghiệp quy mô trung bình có thể xử lý từ 1.000 đến 5.000 hóa đơn mỗi tháng; con số này thậm chí còn cao hơn đối với các tập đoàn lớn hoặc các sàn thương mại điện tử [1]. Không chỉ các doanh nghiệp, mà ngay cả cá nhân, hộ kinh doanh nhỏ lẻ hay tổ chức phi doanh nghiệp cũng có nhu cầu lưu trữ và thống kê dữ liệu hóa đơn để phục vụ các mục đích như quản lý chi tiêu, lập báo cáo nội bộ, nghiên cứu thị trường hoặc phân tích tài chính. Với khối lượng hóa đơn ngày càng tăng và định dạng ngày càng đa dạng, phương pháp xử lý thủ công không còn là giải pháp phù hợp – đặc biệt trong môi trường làm việc hiện đại đòi hỏi độ chính xác cao và khả năng truy xuất nhanh chóng. Hơn nữa, việc xử lý thủ công thường dẫn đến sai lệch thông tin, tiêu tốn nhiều thời gian và nhân lực nhưng không đảm bảo được hiệu suất và tính chính xác cần thiết

Để giải quyết vấn đề này, nhiều hệ thống đã ứng dụng thị giác máy tính (Computer Vision) kết hợp với công nghệ nhận dạng ký tự quang học (Optical Character Recognition – OCR). Trong đó, YOLO (You Only Look Once) là một trong những mô hình phát hiện đối tượng hiện đại, nổi bật với khả năng xử lý thời gian thực và độ chính xác cao. Các phiên bản mới của YOLO đã được cải tiến với các thành phần như Anchor-Free Detection, Decoupled Head và Transformer-based Backbone, giúp mô hình phát hiện chính xác các vùng chứa thông tin ngay cả khi hóa đơn bị mờ, lệch góc hoặc thiếu sáng.

Sau bước phát hiện, hệ thống sử dụng Tesseract OCR – một công cụ mã nguồn mở do Google phát triển – để trích xuất nội dung văn bản từ hình ảnh. Tesseract hỗ trợ tiếng Việt và từ phiên bản 4.0 trở đi đã tích hợp mạng LSTM, cho phép nhận dạng văn bản in hoặc scan trong nhiều điều kiện khác nhau [2]. Toàn bộ hệ thống được triển khai theo kiến trúc microservices, với các thành phần chính như detection service, OCR service, quản lý dữ liệu và giao diện người dùng được tách biệt rõ ràng.

Kiến trúc này giúp tăng khả năng mở rộng, dễ bảo trì và thuận tiện trong tích hợp với các hệ thống hiện có – phù hợp để triển khai trong môi trường thực tế.

Đối tượng nghiên cứu

  • Dữ liệu đầu vào: Hình ảnh hóa đơn tiếng Việt được thu thập từ nhiều nguồn thực tế như cửa hàng bán lẻ, siêu thị, cửa hàng tiện lợi và một số tập dữ liệu từ các dự án liên quan.
  • Gán nhãn dữ liệu: Sử dụng nền tảng Roboflow để gán nhãn thủ công các vùng thông tin quan trọng như tên cửa hàng, địa chỉ, mã hóa đơn, ngày lập hóa đơn, sản phẩm, số lượng, giá tiền, tổng tiền.
  • Mô hình học sâu: Áp dụng các phiên bản từ YOLOv8 đến YOLOv11 để phát hiện vùng chứa thông tin, kết hợp với Tesseract OCR nhằm nhận dạng ký tự tiếng Việt từ các vùng đã được định vị.
  • Kiến trúc hệ thống: Thiết kế theo mô hình Microservices với hai thành phần chính là YOLO Detection Service và OCR Service, cùng các tính năng khác như giao diện người dùng (UI), xác thực, quản lý hóa đơn và cơ sở dữ liệu.
  • Nền tảng huấn luyện và xử lý dữ liệu: Sử dụng Google Colab làm môi trường chính để huấn luyện và thử nghiệm mô hình.
  • Thư viện sử dụng: TensorFlow–Keras và PyTorch được dùng để xây dựng và huấn luyện mô hình học sâu.

Phạm vi nghiên cứu

  • Hệ thống được triển khai, thử nghiệm và đánh giá trong môi trường giả lập thực tế, với tập dữ liệu gồm ảnh hóa đơn tiếng Việt đã được thu thập và gán nhãn sẵn.
  • Quá trình kiểm thử được giới hạn trong phạm vi các định dạng hóa đơn phổ biến như hóa đơn bán lẻ, hóa đơn điện tử PDF chuyển đổi sang ảnh, hóa đơn giấy được chụp lại bằng điện thoại hoặc trực tiếp thông qua camera.
  • Phạm vi không bao gồm xử lý hóa đơn viết tay, hoặc các tài liệu phi tiêu chuẩn (không theo mẫu hoặc bị mờ, biến dạng nghiêm trọng).
  • Việc đánh giá hiệu quả hệ thống tập trung vào độ chính xác trích xuất, thời gian xử lý, và tính khả thi khi triển khai hệ thống web phục vụ nhu cầu của cá nhân, hộ kinh doanh hoặc doanh nghiệp nhỏ.
  • Công cụ triển khai và kiểm thử: Sử dụng Docker Desktop để đóng gói và triển khai hệ thống trong môi trường container hóa; đồng thời dùng Postman để kiểm thử các API REST đảm bảo độ ổn định và tương thích của từng dịch vụ.

PHÂN TÍCH VÀ THIẾT KẾT HỆ THỐNG

Tổng quan kiến trúc

Trong bối cảnh nhu cầu xử lý tài liệu số lượng lớn và đa dạng ngôn ngữ, hệ thống trích xuất thông tin từ hóa đơn tiếng Việt được thiết kế dựa trên kiến trúc microservices. Cách tiếp cận này đảm bảo tính linh hoạt, dễ mở rộng và bảo trì hệ thống một cách hiệu quả. Kiến trúc microservices được lựa chọn làm nền tảng cho hệ thống nhằm đáp ứng yêu cầu phát triển nhanh chóng và khả năng mở rộng linh hoạt. Theo mô hình này, hệ thống được phân chia thành nhiều dịch vụ nhỏ, độc lập, mỗi dịch vụ đảm nhiệm một chức năng chuyên biệt và tương tác với các dịch vụ khác thông qua API Gateway và hệ thống truyền thông không đồng bộ hàng đợi thông điệp (message queue). Ưu điểm nổi bật của kiến trúc microservices bao gồm:

  • Tính độc lập: Các dịch vụ hoạt động và triển khai riêng biệt, không ảnh hưởng đến nhau.
  • Khả năng mở rộng: Cho phép mở rộng từng thành phần mà không cần thay đổi toàn bộ hệ thống.
  • Dễ bảo trì và phát triển: Mỗi nhóm phát triển có thể tập trung vào một dịch vụ cụ thể, giúp tăng tốc độ triển khai và giảm thiểu rủi ro khi thay đổi.
  • Khả năng chịu lỗi cao: Nếu một dịch vụ gặp sự cố, các dịch vụ khác vẫn có thể tiếp tục hoạt động.

Sơ đồ kiến trúc

image 10

image 11
image 12

THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

image 13
image 14
image 15
image 16

Kết quả

Để dễ dàng so sánh và đánh giá, hiệu năng của từng phiên bản mô hình được trình bày thành một bảng như bên dưới, trong bảng này bao gồm mAP@50, mAp@50-95, Precision, Recall và Inference của từng phiên bản YOLO:

image 17
image 18

Phân tích và nhận xét

Kết quả cho thấy, các trường store_name, total, quantity và price đều đạt hiệu suất nhận dạng tốt với Word Accuracy dao động từ 86.75% đến 94.25% và tỉ lệ lỗi ký tự (CER) tương đối thấp, chỉ từ 2.75% đến 7.5%. Điều này phản ánh các trường thông tin này có xu hướng được trình bày rõ ràng, ít biến động về định dạng hoặc font chữ giữa các hóa đơn, đồng thời cho thấy hiệu quả của các kỹ thuật tiền xử lý và giới hạn tập ký tự (tessedit_char_whitelist) đã được áp dụng.

Tuy nhiên, trường date có độ chính xác trung bình với Word Accuracy đạt 72.1% và CER ở mức 13.95%, cho thấy việc trích xuất ngày tháng vẫn còn gặp nhiều thách thức, có thể do sự đa dạng trong cách viết ngày (định dạng khác nhau, ký tự phân cách mờ hoặc thiếu nét). Đáng chú ý nhất là trường bill_id có kết quả thấp, với Word Accuracy chỉ đạt 53% và CER lên tới 31.55%, đồng thời Edit Distance cũng cao nhất (4.125). Nguyên nhân chủ yếu đến từ vị trí đặc thù của mã hóa đơn, thường nằm gần mã vạch, logo hoặc các vùng ảnh dễ bị nhòe, mất nét, cũng như sự thiếu nhất quán về định dạng hoặc bố cục giữa các mẫu hóa đơn.

Việc theo dõi các chỉ số như Word Accuracy, CER và Edit Distance giúp định hướng rõ ràng cho các bước cải tiến tiếp theo, bao gồm tăng cường tập dữ liệu huấn luyện, điều chỉnh tập ký tự whitelist, hoặc tối ưu các kỹ thuật tiền xử lý ảnh để nâng cao chất lượng nhận dạng đối với những trường có độ chính xác chưa đạt yêu cầu.

Kết Luận

Trong báo cáo này, nhóm đã xây dựng và triển khai một hệ thống trích xuất thông tin tự động từ hóa đơn tiếng Việt, kết hợp mô hình phát hiện đối tượng YOLO (từ phiên bản v8 đến v11) với công nghệ nhận dạng ký tự quang học Tesseract OCR. Toàn bộ hệ thống được thiết kế theo kiến trúc microservices, trong đó các thành phần chính như detection service, OCR service, API Gateway, frontend và cơ sở dữ liệu được triển khai độc lập, giúp tăng tính mở rộng và bảo trì dễ dàng. Quy trình hiện thực bao gồm: thu thập và làm sạch tập dữ liệu hóa đơn tiếng Việt từ nhiều nguồn thực tế, gán nhãn thủ công thông qua nền tảng Roboflow, áp dụng các kỹ thuật tăng cường dữ liệu để cải thiện sự đa dạng, huấn luyện các phiên bản YOLO, và tích hợp Tesseract để trích xuất văn bản từ các vùng đã định vị. Hệ thống được tổ chức thành một pipeline xử lý hoàn chỉnh và được kiểm thử với hàng trăm hóa đơn ở nhiều điều kiện khác nhau. Kết quả đánh giá ban đầu cho thấy mô hình YOLO từ phiên bản v8 trở đi thể hiện hiệu năng tương đối ổn định, có sự cân bằng giữa tốc độ xử lý và độ chính xác nhận diện. Tuy nhiên, do chưa đủ số lượng mẫu đánh giá trong môi trường thực tế với nhiều biến thể ảnh, các nhận định này mang tính sơ bộ và cần được kiểm chứng thêm với tập dữ liệu lớn và phức tạp hơn. Về phần OCR, Tesseract cho kết quả nhận diện khá tốt đối với văn bản in rõ ràng và định dạng tiêu chuẩn. Tuy nhiên, trong các trường hợp sử dụng font chữ lạ, ảnh bị mờ, nhiễu hoặc mất nét do ánh sáng yếu, kết quả nhận dạng còn chưa chính xác, dễ gây lỗi khi trích xuất thông tin định lượng hoặc định danh. Đây là một trong những điểm hạn chế hiện tại của hệ thống. Tổng thể, hệ thống hiện tại có khả năng xử lý chính xác các trường thông tin cơ bản trên hóa đơn, thời gian xử lý trung bình dưới 3 giây mỗi hóa đơn khi chạy trên GPU, và hoạt động ổn định với số lượng yêu cầu đồng thời ở mức trung bình. Đây là một nền tảng tốt để tiếp tục phát triển thành hệ thống thương mại hoặc tích hợp với các giải pháp quản lý tài liệu hiện có.

Hướng phát triển tương lai

Mặc dù hệ thống đã đạt được những kết quả tích cực, vẫn còn nhiều khía cạnh cần cải tiến và mở rộng trong các nghiên cứu tiếp theo:

  • Mở rộng tập dữ liệu và đa dạng hóa đầu vào: Cần thu thập thêm dữ liệu từ nhiều ngành nghề và khu vực khác nhau, bao gồm cả hóa đơn viết tay, hóa đơn bị gập, mờ, hoặc chụp từ các góc nghiêng phức tạp.
  • Cải thiện mô hình OCR: Nên xem xét tích hợp các công cụ OCR hiện đại hơn như TrOCR, PaddleOCR, hoặc các mô hình transformer-based OCR để tăng khả năng nhận dạng các ký tự phức tạp, đặc biệt với tiếng Việt.
  • Tăng cường pipeline kiểm tra thủ công (Human-in-the-Loop): Đưa vào cơ chế giám sát và sửa lỗi thủ công có hỗ trợ AI giúp đảm bảo độ tin cậy, đồng thời dùng dữ liệu hiệu chỉnh để cải thiện mô hình theo thời gian.
  • Trích xuất bảng biểu và thông tin dòng sản phẩm: Hiện tại hệ thống chưa tối ưu hóa cho cấu trúc bảng biểu. Hướng phát triển có thể tích hợp các module nhận dạng bảng để tăng cường khả năng trích xuất dòng sản phẩm.
  • Đóng gói hệ thống triển khai thực tế: Triển khai trên cloud server hoặc local server để hệ thống sẵn sàng phục vụ người dùng cuối dưới dạng API hoặc giao diện web.
  • Tích hợp với hệ thống doanh nghiệp: Kết nối hệ thống với các nền tảng ERP, phần mềm kế toán hoặc quản lý kho để tạo thành một giải pháp trọn gói hỗ trợ doanh nghiệp vừa và nhỏ.

Từ những kết quả đạt được, có thể khẳng định rằng hướng tiếp cận dựa trên YOLO và Tesseract trong kiến trúc microservices hoàn toàn khả thi để xây dựng hệ thống trích xuất thông tin hóa đơn tự động. Những đóng góp của đề tài không chỉ nằm ở mặt kỹ thuật triển khai mà còn mở ra nhiều cơ hội nghiên cứu và ứng dụng thực tiễn trong lĩnh vực xử lý tài liệu thông minh tại Việt Nam.