Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số doanh nghiệp, việc tự động hóa quy trình xử lý tài liệu tài chính (Intelligent Document Processing - IDP) đóng vai trò then chốt giúp tối ưu hóa chi phí vận hành. Theo thống kê từ các tổ chức tài chính quốc tế, phương thức nhập liệu hóa đơn thủ công truyền thống ghi nhận tỷ lệ sai sót lên tới 15% - 20%, đồng thời tiêu tốn trung bình từ 5 đến 10 phút cho mỗi chứng từ phức tạp. Sự chậm trễ này tạo ra "nút thắt cổ chai" lớn trong các nghiệp vụ kế toán, phê duyệt thanh toán, quyết toán thuế và quản trị dòng tiền.

+-----------------------------------------------------------------------------------+
|                           THÁCH THỨC NHẬP LIỆU THỦ CÔNG                           |
+-----------------------------------------------------------------------------------+
|  Tỷ lệ sai sót: 15% - 20%  |  Thời gian: 5 - 10 phút/hóa đơn  |  Chi phí lưu trữ cao |
+-----------------------------------------------------------------------------------+
                                         │
                                         ▼ Chuyển đổi công nghệ
+-----------------------------------------------------------------------------------+
|                     HỆ THỐNG TRÍCH XUẤT TỰ ĐỘNG DỰA TRÊN DEEP LEARNING            |
+-----------------------------------------------------------------------------------+
|  Độ chính xác: > 96%       |  Thời gian: 3 - 5 giây/hóa đơn   |  Lưu trữ số hóa Cloud|
+-----------------------------------------------------------------------------------+

Bài toán đặt ra là: Làm thế nào để xây dựng một hệ thống có khả năng tự động đọc, hiểu và bóc tách chính xác các trường dữ liệu thực thể từ các mẫu hóa đơn thanh toán tiếng Việt đa dạng về định dạng (semi-structured and unstructured receipts), trong điều kiện chất lượng ảnh chụp thực tế có độ tương phản không đồng đều, bị xoay nghiêng hoặc chứa nhiễu nền?

Đồ án tốt nghiệp "Xây dựng mô hình trích xuất thông tin hóa đơn dựa trên học sâu" do sinh viên Nguyễn Trung Tài thực hiện dưới sự hướng dẫn của TS. Hoàng Văn Thông tại Khoa Công nghệ Thông tin – Trường Đại học Giao thông Vận tải (2023) đã giải quyết triệt để thách thức trên với 4 mục tiêu cốt lõi:

  1. Nghiên cứu tổng quan và thực nghiệm các kỹ thuật nhận dạng ký tự quang học (Optical Character Recognition - OCR) tiên tiến cho tiếng Việt.
  2. Thiết kế pipeline đa tầng kết hợp giữa tiền xử lý xoay ảnh, phát hiện vùng chữ (Text Detection), nhận diện ký tự (Text Recognition) và trích xuất thực thể theo ngữ cảnh.
  3. Ứng dụng mô hình mạng đồ thị tích chập (Graph Convolutional Network - GCN / mô hình PICK) để liên kết ngữ nghĩa không gian 2D, giải quyết bài toán phân loại thực thể hóa đơn không phụ thuộc vào mẫu cố định (template-free).
  4. Xây dựng ứng dụng hoàn chỉnh tích hợp Web Service, cung cấp giao diện trực quan phục vụ số hóa hóa đơn tức thì.

Phương pháp tiếp cận dựa trên học sâu mang lại độ linh hoạt vượt trội so với các giải pháp dựa trên luật (Rule-based) hoặc khớp mẫu (Template Matching). Hệ thống rút ngắn thời gian xử lý mỗi hóa đơn xuống chỉ còn 3 – 5 giây, đạt độ chính xác trích xuất thực thể tổng thể đạt trên 96.5%, giảm thiểu 95% khối lượng thao tác nhập liệu thủ công.

Phạm vi nghiên cứu tập trung vào các hóa đơn bán lẻ, hóa đơn giá trị gia tăng (VAT) tiếng Việt đơn trang, hỗ trợ định dạng ảnh chụp (JPG, PNG) và tệp tài liệu số (PDF) với chữ in hoặc chữ viết tay rõ nét, góc nghiêng tự nhiên không vượt quá 10 độ.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi bước vào kỷ nguyên Deep Learning, các giải pháp trích xuất văn bản hóa đơn chủ yếu dựa trên kỹ thuật xử lý ảnh cổ điển kết hợp OCR mã nguồn mở truyền thống. Dưới đây là bảng so sánh các hướng tiếp cận hiện nay:

Tiêu chí Nhập liệu thủ công OCR cổ điển + Template Matching Cloud OCR API (Google/AWS) Giải pháp Đồ án (DBNet + VietOCR + GCN/PICK)
Chi phí vận hành Rất cao (lương nhân sự) Thấp (triển khai cục bộ) Cao (tính phí theo lượt gọi API) Tối ưu (Self-hosted, mã nguồn mở)
Tốc độ xử lý 300 - 600 giây/tờ 8 - 15 giây/tờ 2 - 4 giây/tờ 3 - 5 giây/tờ
Độ chính xác tiếng Việt Phụ thuộc sự tập trung Kém (sai dấu, mất từ) Khá (88% - 92%) Vượt trội (> 96.5% với VietOCR)
Độ linh hoạt mẫu biểu Linh hoạt Rất kém (vỡ layout là lỗi) Trung bình (cần hậu xử lý regex) Rất cao (học cấu trúc đồ thị đa mẫu)
Bảo mật dữ liệu nội bộ Thấp (nguy cơ rò rỉ) Cao (On-premise) Trung bình (dữ liệu gửi lên Cloud) Tuyệt đối an toàn (On-Premise/Private Server)

Phân tích yêu cầu hệ thống theo mô hình MoSCoW:

  • Must Have (Bắt buộc phải có): Phát hiện chính xác hộp bao chữ (Bounding Box); Nhận dạng chuẩn tiếng Việt đầy đủ dấu thanh điệu; Trích xuất đúng 4 trường thông tin cốt lõi: Tên đơn vị bán, Thời gian lập hóa đơn, Địa chỉ, Tổng tiền thanh toán.
  • Should Have (Nên có): Tự động xoay chuẩn hướng tài liệu (Text Alignment); Giao diện Web tương tác trực quan; Khả năng xuất dữ liệu dạng bảng/JSON.
  • Could Have (Có thể có): Mở rộng nhận dạng thêm trường Mã số thuế, Chi tiết danh mục hàng hóa (Line Items).
  • Won't Have (Chưa thực hiện ở giai đoạn này): Xử lý hóa đơn viết tay bị rách nát, nhòe mực nghiêm trọng hoặc hóa đơn quét nhiều trang nối tiếp.

Thách thức kỹ thuật lớn nhất nằm ở việc hóa đơn thực tế có cấu trúc rất đa dạng (Semi-structured Layout). Cùng một trường thông tin "Tổng tiền", có hóa đơn đặt ở góc dưới cùng bên phải, có hóa đơn đặt cạnh bảng thanh toán. Các phương pháp dựa trên tọa độ cố định hoàn toàn thất bại. Do đó, việc xây dựng đồ thị biểu diễn mối liên kết không gian và ngữ nghĩa giữa các hộp văn bản là giải pháp mang tính đột phá.

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc module hóa hướng dịch vụ (Service-Oriented Architecture), đảm bảo tính độc lập và khả năng mở rộng của từng thành phần trong quy trình xử lý.

flowchart TD
    A["Ảnh hóa đơn đầu vào (Raw Image/PDF)"] --> B["Module Tiền xử lý & Xoay ảnh (MobileNet / OpenCV)"]
    B --> C["Module Phát hiện chữ (DBNet / Text Detection)"]
    C --> D["Tập hợp Bounding Boxes (Tọa độ x1, y1, x2, y2)"]
    D --> E["Module Nhận diện chữ tiếng Việt (VietOCR - Transformer + Attention)"]
    E --> F["Tập hợp Node: {Text, Coordinates, Visual Feature}"]
    F --> G["Module Xây dựng Đồ thị (Graph Construction Module)"]
    G --> H["Mô hình Trích xuất thông tin (GCN / PICK Node Classification)"]
    H --> I["Trường thông tin cấu trúc (JSON / Structured Output)"]
    I --> J["Giao diện Web Client & Cơ sở dữ liệu"]

Quy trình xử lý tuần tự gồm các bước:

  1. Tiền xử lý & Căn chỉnh hướng (Image Pre-processing & Alignment): Ảnh hóa đơn được chuẩn hóa độ tương phản, khử nhiễu. Mạng phân loại MobileNet được sử dụng để xác định góc nghiêng (0°, 90°, 180°, 270°) và tự động xoay ảnh về chiều thuận.
  2. Phát hiện vùng chữ (Text Detection): Áp dụng mô hình DBNet (Real-time Scene Text Detection with Differentiable Binarization) với backbone ResNet-50 để bóc tách chính xác tọa độ polygon của từng dòng/cụm từ.
  3. Nhận dạng ký tự quang học (Text Recognition): Cắt các vùng ảnh chữ (cropped textline patches) và đưa vào mạng VietOCR (kết hợp VGG-Transformer với cơ chế Attention) để giải mã thành chuỗi ký tự Unicode tiếng Việt chuẩn xác.
  4. Trích xuất thông tin thực thể (Key Information Extraction - KIE): Áp dụng kiến trúc đồ thị PICK (Processing Key Information from Documents using Graph Learning). Mỗi cụm từ trở thành một Node mang đặc trưng đa phương thức (Text Embedding + 2D Bounding Box Spatial Coordinates + Visual Feature Map). Mạng tích chập đồ thị GCN thực hiện liên kết cạnh (Edge Convolution) và phân loại Node (Node Classification) vào các nhãn: SELLER, TIMESTAMP, ADDRESS, TOTAL_COST, OTHER.

Bảng thông số cấu hình công nghệ (Technology Stack):

Thành phần Công nghệ / Thư viện Phiên bản Vai trò kỹ thuật
Ngôn ngữ lập trình Python 3.8.10+ Môi trường phát triển lõi
Deep Learning Framework PyTorch 1.12.1+cu113 Huấn luyện và suy luận mô hình
Xử lý thị giác máy tính OpenCV 4.6.0 Xử lý điểm ảnh, phép biến đổi Affine, IoU
Mô hình OCR tiếng Việt VietOCR 0.3.8 Nhận diện chuỗi ký tự tiếng Việt có dấu
Backend API Service FastAPI / Uvicorn 0.95.0 Cung cấp RESTful API xử lý bất đồng bộ
Frontend UI Streamlit / ReactJS 1.22.0 Giao diện tải lên, chỉnh sửa và xuất dữ liệu
Môi trường đóng gói Docker 24.0.2 Container hóa giải pháp triển khai

Thiết kế API Endpoint cho việc tích hợp hệ thống bên thứ ba:

  • Endpoint: POST /api/v1/invoice/extract
  • Request: multipart/form-data chứa tệp file: (binary)
  • Response Format:
{
  "status": "success",
  "processing_time_ms": 3250,
  "data": {
    "seller_name": "CÔNG TY CỔ PHẦN THƯƠNG MẠI DỊCH VỤ VINCOMMERCE",
    "timestamp": "02/09/2022 14:35:10",
    "address": "Số 72 Lê Thánh Tôn, Phường Bến Nghé, Quận 1, TP. Hồ Chí Minh",
    "total_amount": "1,450,000",
    "confidence_scores": {
      "seller_name": 0.982,
      "timestamp": 0.995,
      "address": 0.947,
      "total_amount": 0.978
    }
  }
}

Methodology

Dự án được triển khai theo quy trình phát triển lặp kết hợp nghiên cứu khoa học (Iterative Experimental Methodology) qua 4 giai đoạn chính trong 16 tuần:

Tuần 01 - 04: [Thu thập dữ liệu & Gán nhãn] ──► Thu thập 1.200 hóa đơn, gán nhãn BBox & KIE
Tuần 05 - 08: [Xây dựng Pipeline OCR]      ──► Huấn luyện DBNet + Tích hợp VietOCR
Tuần 09 - 12: [Mô hình hóa Đồ thị KIE]     ──► Thiết kế GCN/PICK, trích xuất thực thể
Tuần 13 - 16: [Đóng gói & Kiểm thử UAT]    ──► Triển khai Web App, đo kiểm benchmark

Quản trị rủi ro kỹ thuật:

  • Rủi ro ảnh chất lượng kém/mờ: Áp dụng bộ lọc cân bằng sáng thích ứng (CLAHE) và thuật toán phân ngưỡng thích ứng trong bước tiền xử lý.
  • Rủi ro trôi dạt chú ý (Attention Drift) khi dòng chữ quá dài: Giới hạn chiều dài chuỗi trong VietOCR và áp dụng chuẩn hóa tọa độ hộp bao theo tỷ lệ khung hình.
  • Rủi ro quá khớp (Overfitting) trên dữ liệu đồ thị: Bổ sung kỹ thuật Dropout (tỷ lệ 0.2) và Batch Normalization tại các tầng ẩn của GCN.

Implementation và kết quả

Development process

Quá trình hiện thực hóa giải pháp tập trung vào 3 giải thuật nền tảng:

1. Thuật toán phân ngưỡng nhị phân khả vi trong phát hiện chữ (DBNet)

Khác với các phương pháp phát hiện đối tượng 2 giai đoạn (Faster R-CNN) hoặc phương pháp cửa sổ trượt (Sliding Window) chậm chạp, DBNet chèn phép nhị phân hóa vi phân trực tiếp vào mạng tích chập, giúp tăng độ chính xác phân tách ranh giới biên ký tự:

$$B_{i,j} = \frac{1}{1 + \exp\left(-k(P_{i,j} - T_{i,j})\right)}$$

Trong đó:

  • $P_{i,j}$ là xác suất điểm ảnh thuộc vùng chữ tại tọa độ $(i,j)$ trên Feature Map.
  • $T_{i,j}$ là ma trận ngưỡng được học thích ứng.
  • $k$ là hệ số khuếch đại (thường chọn $k = 50$).

2. Kỹ thuật loại bỏ hộp bao dư thừa (Non-Maximum Suppression - NMS)

Thuật toán lọc các Bounding Box chồng lấn dựa trên chỉ số giao trên hợp (Intersection over Union - IoU):

$$\text{IoU}(B_1, B_2) = \frac{\text{Area}(B_1 \cap B_2)}{\text{Area}(B_1 \cup B_2)}$$

import numpy as np

def non_max_suppression_fast(boxes, overlap_thresh=0.4):
    """
    Loại bỏ các Bounding Box trùng lặp dựa trên IoU Threshold
    boxes: numpy array dạng [[x1, y1, x2, y2, score], ...]
    """
    if len(boxes) == 0:
        return []

    # Khởi tạo danh sách các chỉ số được giữ lại
    pick = []
    x1 = boxes[:, 0]
    y1 = boxes[:, 1]
    x2 = boxes[:, 2]
    y2 = boxes[:, 3]
    scores = boxes[:, 4]

    # Tính diện tích các hộp bao
    area = (x2 - x1 + 1) * (y2 - y1 + 1)
    idxs = np.argsort(scores)

    while len(idxs) > 0:
        last = len(idxs) - 1
        i = idxs[last]
        pick.append(i)

        # Tìm tọa độ giao nhau lớn nhất giữa box đang xét và các box còn lại
        xx1 = np.maximum(x1[i], x1[idxs[:last]])
        yy1 = np.maximum(y1[i], y1[idxs[:last]])
        xx2 = np.minimum(x2[i], x2[idxs[:last]])
        yy2 = np.minimum(y2[i], y2[idxs[:last]])

        w = np.maximum(0, xx2 - xx1 + 1)
        h = np.maximum(0, yy2 - yy1 + 1)
        overlap = (w * h) / area[idxs[:last]]

        # Xóa các box có độ trùng lấn vượt ngưỡng overlap_thresh
        idxs = np.delete(idxs, np.concatenate(([last], np.where(overlap > overlap_thresh)[0])))

    return boxes[pick]

3. Xây dựng đồ thị liên kết không gian (Graph Convolutional Layer)

Tại module trích xuất thông tin, mỗi hộp văn bản sau khi OCR được chuyển đổi thành một đỉnh $v_i \in V$ của đồ thị. Ma trận kề $A \in \mathbb{R}^{N \times N}$ được xác định dựa trên khoảng cách Euclide và hướng tương quan giữa tâm các hộp bao:

$$H^{(l+1)} = \sigma \left( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)} \right)$$

Trong đó:

  • $\tilde{A} = A + I_N$ là ma trận kề có thêm vòng tự lặp (Self-connection).
  • $\tilde{D}{ii} = \sum{j} \tilde{A}_{ij}$ là ma trận bậc đường chéo.
  • $H^{(l)}$ là ma trận biểu diễn đặc trưng của các node ở tầng thứ $l$.
  • $W^{(l)}$ là ma trận trọng số có thể học được.
  • $\sigma$ là hàm kích hoạt phi tuyến (ReLU / Softmax).
import torch
import torch.nn as nn

class GraphConvolutionLayer(nn.Module):
    def __init__(self, in_features, out_features):
        super(GraphConvolutionLayer, self).__init__()
        self.linear = nn.Linear(in_features, out_features, bias=False)
        self.activation = nn.ReLU()
        self.dropout = nn.Dropout(p=0.2)

    def forward(self, x, adj_matrix):
        """
        x: Ma trận đặc trưng các Node (N, in_features)
        adj_matrix: Ma trận kề chuẩn hóa D^(-1/2) * A * D^(-1/2) (N, N)
        """
        # Phép nhân đặc trưng với ma trận trọng số
        support = self.linear(x)
        # Phép lan truyền thông điệp không gian dọc theo đồ thị
        output = torch.spmm(adj_matrix, support)
        output = self.activation(output)
        return self.dropout(output)

Testing và validation

Hệ thống được đánh giá thực nghiệm trên tập dữ liệu kiểm thử độc lập gồm 350 mẫu hóa đơn thực tế (chụp bằng smartphone, scan văn phòng) với các điều kiện độ sáng và góc chụp đa dạng.

Độ chính xác được đo lường thông qua các chỉ số:

  • Precision (Độ chuẩn xác): $P = \frac{TP}{TP + FP}$
  • Recall (Độ thu hồi): $R = \frac{TP}{TP + FN}$
  • F1-Score: $F_1 = 2 \cdot \frac{P \cdot R}{P + R}$

Bảng kết quả trích xuất thông tin theo từng trường thực thể:

Trường thông tin Số lượng mẫu kiểm thử Precision (%) Recall (%) F1-Score (%) Thời gian trung bình
Người bán (Seller Name) 350 96.2% 95.8% 96.0% 0.85s
Thời gian (Timestamp) 350 98.6% 98.1% 98.3% 0.42s
Địa chỉ (Address) 350 94.5% 93.8% 94.1% 1.15s
Tổng tiền (Total Amount) 350 97.9% 97.4% 97.6% 0.58s
Trung bình toàn hệ thống 1.400 trường 96.8% 96.3% 96.5% 3.0s - 4.5s/tờ

Hiệu năng xử lý theo cấu hình phần cứng:

  • Môi trường GPU (NVIDIA GeForce RTX 3060 12GB): Thời gian xử lý trung bình đạt 3.2 giây/hóa đơn (Thông lượng: ~1.100 hóa đơn/giờ).
  • Môi trường CPU (Intel Core i7-11800H 8 Cores / 16 Threads): Thời gian xử lý trung bình đạt 6.8 giây/hóa đơn.

Kết quả đạt được

Hệ thống đã hoàn thành 100% các tính năng mục tiêu đã đề ra:

  • Pipeline tự động hóa hoàn chỉnh: Tiếp nhận ảnh tải lên -> Tự động xoay ảnh -> Tách khung chữ -> Nhận diện văn bản tiếng Việt -> Trích xuất trường thông tin vào cơ sở dữ liệu.
  • Khắc phục triệt để sai dấu tiếng Việt: Nhờ tích hợp VietOCR dựa trên Transformer Attention, tỷ lệ lỗi từ (Word Error Rate - WER) giảm xuống dưới 2.4% trên văn bản in chuẩn.
  • Trích xuất thông tin linh hoạt: Mô hình GCN chứng minh khả năng phân loại chính xác các cụm từ ngay cả khi hóa đơn thay đổi cấu trúc bảng, phông chữ hoặc có cách sắp xếp trường dữ liệu khác biệt hoàn toàn với tập mẫu ban đầu.

Đổi mới và đóng góp

  1. Ứng dụng học sâu biểu diễn đồ thị (Graph Neural Networks) cho hóa đơn tiếng Việt: Khác biệt hoàn toàn với các nghiên cứu trước đây chỉ áp dụng luật tọa độ cố định cho tài liệu cứng như CCCD hoặc Bằng lái xe, đồ án đã tiên phong ứng dụng GCN để học mối tương quan topology 2D của hóa đơn thanh toán tiếng Việt – một đối tượng có cấu trúc layout cực kỳ biến thiên.
  2. Tích hợp mô hình đa phương thức (Multimodal Fusion): Giải pháp kết hợp đồng thời 3 luồng đặc trưng:
    • Đặc trưng ngôn ngữ (Textual): Biểu diễn vector từ khóa thông qua Word2Vec/Skip-gram.
    • Đặc trưng không gian (Spatial): Tọa độ hình học 4 góc của Bounding Box.
    • Đặc trưng thị giác (Visual): Bản đồ đặc trưng trích xuất từ tầng tích chập của CNN.
  3. Cải thiện vượt bậc hiệu suất bóc tách dữ liệu:
    • Giảm 85% thời gian xử lý so với quy trình thủ công (từ 5 phút xuống dưới 4 giây).
    • Tăng độ chính xác phân loại trường thông tin lên 96.5%, vượt trội so với mức 78% của các mô hình phát hiện đối tượng truyền thống không có cơ chế đồ thị.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng trong doanh nghiệp

+──────────────────────────────────────────────────────────────────────────+
|                    KỊCH BẢN ỨNG DỤNG THỰC TIỄN                           |
+──────────────────────────────────────────────────────────────────────────+
|                                                                          |
|  [Hệ thống Kế toán Doanh nghiệp]                                         |
|  Tự động quét và khớp nối hóa đơn chi phí đầu vào, xuất file Excel định  |
|  kỳ cho phần mềm MISA, SAP, FAST.                                        |
|                                                                          |
|  [Fintech & Ứng dụng Quản lý Chi tiêu]                                   |
|  Người dùng chụp ảnh biên lai tại điểm bán; hệ thống tự động ghi nhận    |
|  giao dịch, phân loại hạn mức ngân sách theo thời gian thực.             |
|                                                                          |
|  [Chuỗi Bán lẻ & Thương mại Điện tử]                                     |
|  Số hóa chứng từ giao nhận hàng hóa, đối soát công nợ tự động giữa các   |
|  nhà cung cấp và kho vận.                                                |
|                                                                          |
+──────────────────────────────────────────────────────────────────────────+

Chiến lược triển khai và bài toán kinh tế (ROI)

  • Yêu cầu hạ tầng triển khai (On-Premise / Cloud VM):

    • CPU: Tối thiểu 4 vCPU (Khuyến nghị 8 vCPU).
    • RAM: Tối thiểu 16 GB.
    • GPU: Khuyến nghị NVIDIA GPU (VRAM $\ge 8\text{ GB}$) để đảm bảo tốc độ đáp ứng < 4 giây cho hệ thống có tải lớn.
    • OS: Ubuntu 20.04 LTS / 22.04 LTS, Docker & Docker-Compose.
  • Đánh giá hiệu quả đầu tư (Cost-Benefit Analysis):

    • Giả định một doanh nghiệp tiếp nhận trung bình 10.000 hóa đơn/tháng.
    • Phương án thủ công: Cần 2 nhân sự nhập liệu chuyên trách, chi phí ~24.000.000 VNĐ/tháng, tiềm ẩn rủi ro phạt thuế do nhập sai số liệu.
    • Phương án ứng dụng hệ thống OCR Deep Learning: Chi phí máy chủ On-premise hoặc Cloud VPS khoảng 2.500.000 VNĐ/tháng.
    • Tỷ suất sinh lời (ROI): Hoàn vốn đầu tư chỉ sau 2 - 3 tháng vận hành, đồng thời loại bỏ hoàn toàn các sai phạm trong quá trình đối soát số liệu kế toán.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Chất lượng mẫu vật lý: Độ chính xác suy giảm khi xử lý hóa đơn bị nhăn gập góc, dính vết dầu mỡ làm che khuất các chữ số thập phân trên tổng tiền.
  • Hóa đơn dài nhiều trang: Mô hình GCN hiện tại chỉ tối ưu hóa việc liên kết đồ thị trên không gian tọa độ 2D của một trang duy nhất.
  • Ký tự viết tay phức tạp: Độ chính xác nhận diện chữ viết tay nguệch ngoạc chưa đạt mức thương mại hóa tuyệt đối (mới đạt ~82%).

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

  • Tích hợp các mô hình nền tảng đa phương thức thế hệ mới như LayoutLMv3, Donut hoặc VQA (Visual Question Answering) để bóc tách thêm danh mục bảng sản phẩm chi tiết (Line Items).
  • Áp dụng kỹ thuật lượng tử hóa mô hình (Model Quantization INT8) và tối ưu hóa suy luận với TensorRT / ONNX Runtime nhằm tăng tốc độ xử lý trên các thiết bị máy chủ biên (Edge AI Server).
  • Xây dựng cơ chế Human-in-the-loop: Tích hợp công cụ chỉnh sửa nhanh cho kế toán viên đối với các trường có điểm tin cậy (Confidence Score) dưới 85%.

Đối tượng hưởng lợi

+─────────────────────────────────────────────────────────────────────────────+
|                         GIÁ TRỊ MANG LẠI CHO CÁC NHÓM                       |
+─────────────────────────────────────────────────────────────────────────────+
|                                                                             |
|  [Sinh viên & Người học]                                                    |
|  Tài liệu tham khảo thực tiễn chuẩn mực về bài toán Document AI, kết hợp    |
|  giữa Computer Vision và Natural Language Processing.                       |
|                                                                             |
|  [Kỹ sư AI & Lập trình viên]                                                |
|  Cung cấp pipeline hoàn chỉnh từ trích xuất Bounding Box, VietOCR đến       |
|  xây dựng kiến trúc đồ thị GCN xử lý tài liệu phi cấu trúc.                 |
|                                                                             |
|  [Doanh nghiệp & Kế toán]                                                   |
|  Giải pháp mã nguồn mở tự chủ công nghệ, tiết kiệm 85% chi phí vận hành     |
|  và bảo mật tuyệt đối dữ liệu tài chính nội bộ.                             |
|                                                                             |
|  [Cộng đồng Nghiên cứu Khoa học]                                            |
|  Đóng góp phương pháp luận về việc giải quyết bài toán KIE trên dữ liệu hóa |
|  đơn đặc thù ngôn ngữ tiếng Việt.                                           |
|                                                                             |
+─────────────────────────────────────────────────────────────────────────────+

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

1. Hệ thống yêu cầu cấu hình phần cứng tối thiểu như thế nào để triển khai?

Để chạy ứng dụng ở chế độ thử nghiệm hoặc tải thấp, hệ thống chỉ cần máy tính chạy CPU 4 lõi, RAM 8GB (thời gian xử lý khoảng 6 - 8 giây/hóa đơn). Để triển khai thương mại phục vụ nhiều người dùng đồng thời với độ trễ dưới 4 giây, khuyến nghị máy chủ trang bị GPU NVIDIA có tối thiểu 8GB VRAM (như RTX 3060, T4 hoặc A10).

2. Mô hình có xử lý được hóa đơn bị chụp nghiêng hoặc chụp ngược chiều không?

Có. Hệ thống tích hợp module phân loại hướng ảnh dựa trên mạng tích chập nhẹ MobileNet và thuật toán biến đổi Affine. Ảnh trước khi đưa vào mô hình phát hiện chữ sẽ được tự động xoay về góc chuẩn 0° (thẳng đứng), đảm bảo độ ổn định cho các bước nhận diện tiếp theo.

3. Giải pháp này khác biệt gì so với việc sử dụng Google Cloud Vision API?

Google Cloud Vision nhận diện ký tự rất tốt nhưng chỉ trả về tọa độ và chuỗi chữ rời rạc, đòi hỏi doanh nghiệp phải tự viết các biểu thức chính quy (Regex) phức tạp để gom nhóm thông tin. Hơn nữa, Google Cloud tính phí trên mỗi lượt gọi và yêu cầu gửi ảnh lên máy chủ đám mây. Giải pháp trong đồ án là hệ thống End-to-End tự động trích xuất trực tiếp thành các cặp Key - Value, có thể triển khai On-Premise hoàn toàn miễn phí và bảo mật tuyệt đối.

4. Hệ thống có khả năng mở rộng để nhận diện thêm các loại giấy tờ khác không?

Hoàn toàn có thể. Nhờ bản chất của mạng tích chập đồ thị (GCN) là học cấu trúc topo không gian và ngữ nghĩa, bạn chỉ cần gán nhãn thêm tập dữ liệu mới (ví dụ: Căn cước công dân, Giấy phép lái xe, Đơn thuốc) và tiến hành Fine-tune lại mô hình PICK mà không cần thay đổi kiến trúc mã nguồn lõi.

5. Chi phí đầu tư và thời gian hoàn vốn (ROI) của dự án ước tính ra sao?

Do sử dụng hoàn toàn các công nghệ mã nguồn mở và tự chủ thuật toán, doanh nghiệp không mất phí bản quyền phần mềm hàng tháng. Chi phí ban đầu chỉ bao gồm việc thiết lập máy chủ nội bộ. Với doanh nghiệp có khối lượng xử lý từ 5.000 - 10.000 chứng từ/tháng, hệ thống giúp cắt giảm trực tiếp 1 - 2 nhân sự nhập liệu, mang lại thời gian hoàn vốn đầu tư chỉ trong vòng 60 đến 90 ngày.


Kết luận

Đồ án tốt nghiệp "Xây dựng mô hình trích xuất thông tin hóa đơn dựa trên học sâu" của sinh viên Nguyễn Trung Tài (Đại học Giao thông Vận tải, 2023) đã giải quyết thành công một trong những bài toán phức tạp nhất của thị giác máy tính và xử lý ngôn ngữ tự nhiên ứng dụng. Bằng việc kết hợp sáng tạo giữa mạng nơ-ron nhị phân hóa vi phân (DBNet), nhận dạng chú ý tiếng Việt (VietOCR) và mạng đồ thị tích chập (GCN), đề tài đã chứng minh tính khả thi vượt trội trong việc tự động hóa bóc tách dữ liệu từ các tài liệu tài chính phức tạp.

Kết quả nghiên cứu không chỉ mang giá trị học thuật cao trong lĩnh vực trí tuệ nhân tạo mà còn mở ra tiềm năng thương mại hóa mạnh mẽ, đóng góp thiết thực vào công cuộc số hóa quy trình kế toán và quản trị doanh nghiệp tại Việt Nam.