Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số ngành tài chính - ngân hàng (Fintech & Banking), khối lượng chứng từ, hóa đơn và báo cáo tài chính phát sinh hàng ngày đạt quy mô hàng triệu trang văn bản. Theo thống kê từ các tổ chức tài chính quốc tế, hơn 80% dữ liệu doanh nghiệp tồn tại dưới dạng phi cấu trúc hoặc bán cấu trúc (scanned PDF, image formats). Việc xử lý, phân loại thủ công các văn bản này tiêu tốn hàng nghìn giờ làm việc, gia tăng chi phí vận hành từ 15% đến 25% và tiềm ẩn tỷ lệ sai sót con người lên đến 4-7%.

Đặc thù của tài liệu báo cáo tài chính ngân hàng tại Việt Nam là độ tương đồng thị giác cực kỳ cao: hầu hết đều có định dạng nền trắng, chữ đen, cấu trúc bảng biểu dày đặc và sử dụng chung nhiều thuật ngữ kế toán chuyên ngành. Các giải pháp thị giác máy tính truyền thống (Computer Vision - CV) hoặc xử lý ngôn ngữ tự nhiên đơn lẻ (Natural Language Processing - NLP) thường thất bại khi phân biệt giữa các biểu mẫu có cùng bố cục như Báo cáo lưu chuyển tiền tệ, Bảng cân đối kế toán hay Báo cáo kết quả hoạt động kinh doanh.

[Hình ảnh tài liệu đầu vào (Scanned Image)] 
               │
               ▼
┌────────────────────────────────────────────────────────┐
│  HỆ THỐNG PHÂN LOẠI ĐA PHƯƠNG THỨC (MULTIMODAL AI)    │
│  - Trích xuất ký tự & Tọa độ 2D (VietOCR)              │
│  - Biểu diễn đặc trưng không gian & Ngữ cảnh (LayoutLM)│
└────────────────────────────────────────────────────────┘
               │
               ▼
[Nhãn phân loại chính xác: Báo cáo lưu chuyển tiền tệ (F1: 0.9807)]

Đề tài khóa luận "Tìm hiểu và xây dựng hệ thống phân loại hình ảnh văn bản" (Thực hiện bởi sinh viên Nguyễn Quang Hiếu, chuyên ngành Khoa học Máy tính, Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM, dưới sự hướng dẫn của TS. Ngô Đức Thành và ThS. Đỗ Văn Tiến) giải quyết triệt để bài toán này bằng cách kết hợp cơ chế đa phương thức (Multimodal Document Understanding).

Mục tiêu dự án

  1. Khảo sát và hệ thống hóa toàn diện các phương pháp phân loại tài liệu từ đơn phương thức (Visual-based, Text-based) đến đa phương thức (Visual + Textual + Layout).
  2. Xây dựng bộ dữ liệu chuẩn hóa gồm 7.000 hình ảnh văn bản báo cáo tài chính từ các ngân hàng thương mại Việt Nam phân bổ đồng đều trên 7 lớp chứng từ.
  3. Huấn luyện và đánh giá thực nghiệm 6 kiến trúc Deep Learning tiên tiến: VGG16, ResNet50, Xception, Vision Transformer (ViT), BERT và LayoutLM.
  4. Đóng gói và triển khai ứng dụng web demo cho phép tiếp nhận hình ảnh văn bản tài chính, tự động nhận diện và trả về kết quả phân loại thời gian thực.

Phạm vi và giới hạn

  • Phạm vi dữ liệu: 7 lớp chứng từ báo cáo tài chính ngân hàng bằng tiếng Việt (1.000 mẫu/lớp).
  • Phạm vi kỹ thuật: Ứng dụng mô hình trích xuất OCR tiếng Việt (VietOCR) kết hợp kiến trúc Transformer và 2D Spatial Embeddings.
  • Giới hạn: Tập trung vào văn bản in chuẩn hóa một trang (single-page), chưa xử lý các tài liệu viết tay hoặc tài liệu đa trang có độ nghiêng/méo vượt quá 45 độ.

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

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

Trước khi kiến trúc đa phương thức ra đời, bài toán Document Image Classification chủ yếu dựa vào hai nhánh kỹ thuật độc lập:

Tiêu chí Hướng tiếp cận Thị giác Máy tính (CV) Hướng tiếp cận Ngôn ngữ Tự nhiên (NLP) Hướng tiếp cận Đa phương thức (Multimodal LayoutLM)
Mô hình tiêu biểu VGG16, ResNet50, Xception, ViT OCR (VietOCR) + BERT / RoBERTa LayoutLM (Text + 2D Layout + Image)
Ưu điểm Tốc độ xử lý nhanh; tận dụng trực tiếp pixel ảnh thô; không phụ thuộc OCR. Hiểu sâu ngữ nghĩa văn bản; trích xuất được nội dung chuyên ngành kế toán. Tận dụng đồng thời ngữ nghĩa từ ngữ, vị trí không gian (bảng biểu) và pixel visual.
Nhược điểm Thất bại khi các tài liệu có cấu trúc nền trắng - chữ đen đồng nhất. Mất hoàn toàn cấu trúc không gian bảng biểu sau khi làm phẳng chuỗi text OCR. Chi phí tính toán cao hơn trong pha huấn luyện tiền kỳ (pre-training).
F1-Score thực nghiệm 0.4579 - 0.7627 0.8126 0.9807

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must have: Mô hình đạt F1-Score $\ge 0.95$ trên tập test; hỗ trợ định dạng PNG/JPG/PDF; nhận diện được 7 nhóm chứng từ tài chính cơ bản.
  • Should have: Giao diện Web trực quan; thời gian phản hồi (Inference Latency) dưới 2 giây/trang.
  • Could have: Hiển thị Bounding Box của các trường văn bản quan trọng được nhận diện bởi OCR.
  • Won't have (trong pha này): Phân loại luồng tài liệu đa trang phức tạp (Multi-page document batching).

Thiết kế hệ thống

Kiến trúc hệ thống phân loại tài liệu tài chính được thiết kế theo mô hình xử lý đường ống phân tán (End-to-End Pipeline):

flowchart LR
    A["Hình ảnh đầu vào\n(JPG, PNG, TIFF)"] --> B["Module Tiền xử lý\n(Normalize, Rescale)"]
    B --> C["VietOCR Engine\n(Transformer-OCR)"]
    B --> D["Visual Feature Extractor\n(ResNet-Backbone)"]
    C --> E["2D Spatial Bounding Box\n(x0, y0, x1, y1)"]
    C --> F["Text Tokens\n(WordPiece Tokenizer)"]
    E --> G["LayoutLM Core Multimodal\n(Cross-Attention Layers)"]
    F --> G
    D --> G
    G --> H["Classification Head\n(Softmax / 7 Classes)"]
    H --> I["Kết quả phân loại\n& Độ tin cậy (Confidence)"]

Technology Stack và Phiên bản

  • Ngôn ngữ lập trình: Python 3.8.10
  • Deep Learning Frameworks: PyTorch 1.10.2, Torchvision 0.11.3
  • NLP & Transformers: Hugging Face Transformers 4.18.0, Datasets 2.1.0
  • OCR Engine: VietOCR 0.3.6 (Kiến trúc Seq2Seq with Transformer/Attention)
  • Computer Vision Utilities: OpenCV 4.5.5, Albumentations 1.1.0, Pillow 9.1.0
  • Backend API & Web Server: FastAPI 0.75.0, Uvicorn 0.17.6
  • Frontend Interface: Streamlit 1.8.0 / HTML5 & Bootstrap 5

Thiết kế API Endpoints

POST /api/v1/documents/classify
Content-Type: multipart/form-data

Body:
  file: binary (image/jpeg, image/png)
  engine: "layoutlm" | "bert" | "vit"

Response (200 OK):
{
  "status": "success",
  "document_type": "Bao_cao_luu_chuyen_tien_te",
  "confidence_score": 0.9845,
  "inference_time_ms": 312.4,
  "extracted_tokens_count": 482
}

Phương pháp nghiên cứu và quản lý dự án

Dự án áp dụng quy trình nghiên cứu khoa học kết hợp phương pháp phát triển Agile (4 Sprint, mỗi sprint kéo dài 3-4 tuần):

  • Sprint 1 (Thu thập & Chuẩn hóa): Khai thác dữ liệu báo cáo tài chính công khai từ hơn 20 ngân hàng tại Việt Nam (Vietcombank, BIDV, Techcombank, VPBank,...); gán nhãn dữ liệu chuẩn hóa 7 nhóm.
  • Sprint 2 (Nghiên cứu & Thử nghiệm Baseline): Hiện thực hóa mạng CNN (VGG16, ResNet50, Xception) và Vision Transformer.
  • Sprint 3 (Tích hợp NLP & Multimodal AI): Pipeline VietOCR kết hợp BERT và cấu hình mô hình đa phương thức LayoutLM với 2D Positional Encoding.
  • Sprint 4 (Tối ưu hóa & Đóng gói sản phẩm): Benchmark toàn diện, tối ưu hóa kích thước mô hình và xây dựng web service.

Implementation và kết quả

Chi tiết giải thuật và mã nguồn

Trọng tâm đột phá của hệ thống nằm ở cơ chế tích hợp đồng thời ba đặc trưng: Nội dung văn bản (Text Embedding), Tọa độ không gian 2 chiều (2D Spatial Positional Embedding)Đặc trưng thị giác (Visual Embedding).

Khác với Transformer truyền thống chỉ mã hóa vị trí 1 chiều $pos$:

$$PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right), \quad PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)$$

LayoutLM bổ sung 4 ma trận embedding cho tọa độ bounding box chuẩn hóa $[x_0, y_0, x_1, y_1]$ (trong đó $x_0, y_0$ là tọa độ góc trên bên trái; $x_1, y_1$ là tọa độ góc dưới bên phải với giá trị từ $0$ đến $1000$):

$$e_i^{\text{2D}} = \text{Concat}\left(\mathbf{E}_x(x_0), \mathbf{E}_y(y_0), \mathbf{E}_x(x_1), \mathbf{E}_y(y_1)\right)$$

Đoạn mã PyTorch dưới đây minh họa quá trình nạp dữ liệu đa phương thức và tính toán Forward Pass qua mạng LayoutLM cho bài toán phân loại văn bản:

import torch
import torch.nn as nn
from transformers import LayoutLMConfig, LayoutLMForSequenceClassification

class MultimodalFinancialDocumentClassifier(nn.Module):
    def __init__(self, num_classes: int = 7, pretrained_model_name: str = "microsoft/layoutlm-base-uncased"):
        super(MultimodalFinancialDocumentClassifier, self).__init__()
        self.config = LayoutLMConfig.from_pretrained(
            pretrained_model_name, 
            num_labels=num_classes
        )
        self.layoutlm = LayoutLMForSequenceClassification.from_pretrained(
            pretrained_model_name, 
            config=self.config
        )
        self.dropout = nn.Dropout(0.3)

    def forward(self, input_ids, bbox, attention_mask, token_type_ids):
        """
        input_ids: Tensor chứa mã token văn bản [Batch, Seq_Len]
        bbox: Tensor chứa tọa độ 2D chuẩn hóa [Batch, Seq_Len, 4]
        attention_mask: Tensor mặt nạ chú ý [Batch, Seq_Len]
        token_type_ids: Tensor phân đoạn câu [Batch, Seq_Len]
        """
        outputs = self.layoutlm(
            input_ids=input_ids,
            bbox=bbox,
            attention_mask=attention_mask,
            token_type_ids=token_type_ids
        )
        logits = outputs.logits
        return logits

# Khởi tạo mô hình
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = MultimodalFinancialDocumentClassifier(num_classes=7).to(device)
criterion = nn.CrossEntropyLoss()

Thử nghiệm và đánh giá thực nghiệm

Tập dữ liệu gồm 7.000 mẫu được phân chia theo tỷ lệ 80% Training (5.600 ảnh), 10% Validation (700 ảnh) và 10% Testing (700 ảnh). Tất cả mô hình được huấn luyện trong điều kiện kiểm soát đồng nhất trên phần cứng GPU NVIDIA RTX 3090 24GB VRAM.

Bảng so sánh kết quả thực nghiệm chi tiết giữa 6 mô hình

Phương pháp Backbone / Kiến trúc Modality sử dụng Precision Recall F1-Score Độ trễ suy luận (ms/ảnh)
Visual & Textual (VaTF) VGG16 Chỉ Visual 0.4712 0.4520 0.4579 42 ms
Visual & Textual (VaTF) ResNet50 Chỉ Visual 0.6120 0.5890 0.5972 58 ms
Visual & Textual (VaTF) Xception Chỉ Visual 0.6845 0.6610 0.6725 64 ms
Vision Transformer ViT-Base/16 Chỉ Visual (Patches) 0.7710 0.7580 0.7627 115 ms
BERT + VietOCR BERT-Base-Multilingual Chỉ Text 0.8240 0.8050 0.8126 280 ms
LayoutLM (Đề xuất) LayoutLM-Base Text + Layout 2D + Visual 0.9821 0.9795 0.9807 315 ms
BIỂU ĐỒ SO SÁNH HIỆU SUẤT F1-SCORE TRÊN TẬP KIỂM THỬ
=====================================================
LayoutLM (Đa phương thức) : [█████████████████████████████████████▍] 0.9807
BERT (NLP thuần túy)      : [███████████████████████████▌          ] 0.8126
Vision Transformer (ViT)  : [██████████████████████            ] 0.7627
VaTF (Xception)           : [███████████████████▌               ] 0.6725
VaTF (ResNet50)           : [████████████████                   ] 0.5972
VaTF (VGG16)              : [████████████                       ] 0.4579
=====================================================

Phân tích lỗi (Error Analysis)

  • Các mạng CNN thuần túy (VGG16, ResNet50) thường nhầm lẫn giữa Báo cáo lưu chuyển tiền tệBảng cân đối kế toán do cả hai đều chứa ma trận các ô số liệu có mật độ pixel tương đương nhau.
  • Mô hình BERT đơn lẻ gặp sự cố khi OCR đọc sai thứ tự bảng (ví dụ đọc nối từ cột 1 sang cột 2 thay vì theo hàng), làm biến dạng chuỗi ngữ nghĩa liên tục.
  • LayoutLM loại bỏ hoàn toàn các lỗi trên nhờ việc giữ nguyên tọa độ hộp bao $(x_0, y_0, x_1, y_1)$ của từng từ trong mối tương quan không gian 2D.

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

  1. Đột phá về cơ chế đa phương thức cho tiếng Việt: Khóa luận là một trong những công trình tiên phong tại Việt Nam áp dụng và đánh giá hệ thống LayoutLM trên miền dữ liệu văn bản tài chính - ngân hàng phức tạp bằng tiếng Việt.
  2. Cải tiến vượt bậc về độ chính xác: Nâng F1-Score từ mức 0.4579 (VGG16) và 0.8126 (BERT) lên 0.9807, tương đương mức tăng trưởng hiệu năng tương đối +114.1% so với mạng CNN cơ bản và +20.68% so với mô hình ngôn ngữ lớn thuần văn bản.
  3. Đóng góp bộ dữ liệu đặc thù: Xây dựng thành công tập dữ liệu 7.000 trang báo cáo tài chính ngân hàng chuẩn hóa, mở đường cho các nghiên cứu tiếp theo về trích xuất thực thể tên (Information Extraction) và Document Visual Question Answering (DocVQA).
  4. Giải pháp kiến trúc toàn vẹn: Kết hợp thành công giữa công cụ nhận diện ký tự quang học chuyên sâu cho tiếng Việt (VietOCR) và mạng Transformer 2D, giải quyết triệt để bài toán mất mát thông tin bố cục bảng biểu.

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

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

  • Tự động hóa xử lý chứng từ ngân hàng (RPA in Banking): Tích hợp vào quy trình thẩm định hồ sơ vay vốn, tự động bóc tách và phân loại báo cáo tài chính của doanh nghiệp xin cấp tín dụng.
  • Hệ thống Kiểm toán số (Digital Audit Assistance): Hỗ trợ kiểm toán viên phân loại hàng vạn trang tài liệu báo cáo thường niên chỉ trong vài phút.
  • Lưu trữ và Truy vấn văn bản số (Document Management Systems - DMS): Tự động gán siêu dữ liệu (metadata indexing) phục vụ công tác tra cứu nhanh.
QUY TRÌNH TRIỂN KHAI HỆ THỐNG TRÊN HẠ TẦNG CLOUD
[Client Request: PDF/Scan] 
         │
         ▼
[Nginx Reverse Proxy / Load Balancer]
         │
         ▼
[Docker Container: FastAPI Worker Cluster]
         │
         ├───▶ [VietOCR GPU Microservice]
         └───▶ [LayoutLM Inference Engine (TensorRT / ONNX Runtime)]
         │
         ▼
[Redis Cache & PostgreSQL Database for Metadata]

Phân tích hiệu quả kinh tế (Cost-Benefit Analysis & ROI)

  • Tiết kiệm thời gian: Giảm thời gian phân loại thủ công từ trung bình 120 giây/tài liệu xuống còn 0.315 giây/tài liệu (tăng tốc độ hơn 380 lần).
  • Ước tính ROI: Một tổ chức tài chính xử lý 50.000 tài liệu/tháng có thể tiết kiệm khoảng 800 giờ làm việc của nhân sự chuyên môn, tương đương mức cắt giảm chi phí vận hành ước tính 12.000 - 15.000 USD mỗi tháng, hoàn vốn đầu tư hệ thống chỉ sau 3-5 tháng vận hành.

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

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

  • Phụ thuộc vào chất lượng OCR: Khi hình ảnh đầu vào quá mờ, nhòe hoặc độ tương phản quá kém, sai số từ VietOCR sẽ lan truyền trực tiếp vào các vector embedding của LayoutLM.
  • Tài nguyên tính toán: Mô hình Transformer yêu cầu bộ nhớ GPU đáng kể trong quá trình huấn luyện và tối ưu hóa thời gian thực.
  • Tài liệu đa trang: Hệ thống hiện tại tối ưu hóa trên từng trang đơn lẻ, chưa liên kết ngữ cảnh xuyên suốt giữa các trang liên tiếp trong một tập báo cáo dài 50-100 trang.

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

  • Ứng dụng mô hình không cần OCR (OCR-free Document Understanding): Thử nghiệm các kiến trúc như Donut (Document Understanding Transformer) hoặc Pix2Struct để trực tiếp ánh xạ từ pixel sang cấu trúc nhãn mà không cần bước trung gian VietOCR.
  • Nâng cấp lên LayoutLMv2 / LayoutLMv3: Khai thác các cơ chế tiền huấn luyện đa nhiệm (Masked Visual-Language Modeling) để tăng khả năng tổng quát hóa.
  • Tối ưu hóa On-device/Edge Deployment: Nén mô hình thông qua các kỹ thuật Lượng tử hóa (Quantization INT8) và Triệt tiêu trọng số (Knowledge Distillation) để triển khai trên các thiết bị máy quét văn phòng thông minh.

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

  • Sinh viên & Học viên cao học: Cung cấp tài liệu tham khảo hoàn chỉnh, mã nguồn thực thi mẫu và phương pháp luận kết hợp giữa CV và NLP trong các đề tài nghiên cứu ứng dụng.
  • Kỹ sư AI & Software Developers: Nắm bắt quy trình triển khai chi tiết kiến trúc Transformer xử lý ảnh và văn bản đa phương thức từ bài toán thực tế đến sản phẩm production.
  • Ngân hàng & Tổ chức Tài chính: Tiếp cận giải pháp công nghệ có tính khả thi cao, chi phí thấp nhằm tự động hóa quy trình nghiệp vụ và số hóa tài liệu.
  • Cộng đồng Nghiên cứu AI: Bổ sung kết quả thực nghiệm và dữ liệu benchmark chuyên biệt cho ngôn ngữ tiếng Việt trong lĩnh vực Document AI.

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

1. Cấu hình phần cứng tối thiểu để triển khai hệ thống là gì?

Đối với môi trường suy luận (Inference), hệ thống có thể chạy trên CPU Intel Core i7 (hoặc tương đương) với 16GB RAM (thời gian xử lý ~1.2s/trang). Để đạt hiệu năng tối ưu phục vụ môi trường doanh nghiệp (< 0.35s/trang), khuyến nghị sử dụng GPU từ NVIDIA T4 (16GB VRAM) hoặc NVIDIA RTX 3060 trở lên.

2. Hệ thống có khả năng mở rộng (Scalability) khi số lượng tài liệu tăng vọt không?

Hoàn toàn có thể. Do dịch vụ API được xây dựng theo kiến trúc Stateless Microservices trên nền tảng Docker và FastAPI, hệ thống có thể dễ dàng scale ngang (Horizontal Scaling) thông qua Kubernetes hoặc Kubernetes Event-driven Autoscaling (KEDA) dựa trên số lượng request đồng thời.

3. Làm thế nào để tích hợp hệ thống vào phần mềm quản lý tài liệu (DMS/ERP) có sẵn?

Hệ thống cung cấp chuẩn kết nối RESTful API và gRPC. Các hệ thống bên thứ ba chỉ cần gửi HTTP POST request chứa file ảnh/PDF dạng Multipart Form-Data hoặc Base64 String và nhận phản hồi JSON có cấu trúc gồm: tên tài liệu, điểm tin cậy (confidence score) và tọa độ các trường thông tin.

4. Nếu tài liệu bị nghiêng, xoay ngang hoặc nhăn rách thì hệ thống xử lý ra sao?

Trong module tiền xử lý (Preprocessing), hệ thống tích hợp các thuật toán biến đổi hình thái học OpenCV (Hough Transform, Deskewing) để tự động căn chỉnh góc nghiêng và làm phẳng văn bản trước khi đưa vào module nhận diện OCR.

5. Chi phí triển khai và thời gian hoàn vốn (ROI) được tính toán như thế nào?

Chi phí triển khai chủ yếu bao gồm hạ tầng máy chủ GPU Cloud (khoảng 150 - 300 USD/tháng cho 1 GPU T4 đáp ứng 100.000 lượt phân loại/tháng). So với chi phí tuyển dụng 2-3 nhân sự nhập liệu và phân loại thủ công, doanh nghiệp có thể tiết kiệm từ 70% đến 85% ngân sách xử lý chứng từ định kỳ.


Kết luận

Khóa luận tốt nghiệp của tác giả Nguyễn Quang Hiếu tại Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM đã giải quyết xuất sắc bài toán phân loại hình ảnh văn bản có độ tương đồng thị giác cao thông qua phương pháp tiếp cận đa phương thức hiện đại. Việc ứng dụng thành công mô hình LayoutLM kết hợp cùng VietOCR trên tập dữ liệu báo cáo tài chính ngân hàng đã đạt độ chính xác ấn tượng F1-Score 0.9807, chứng minh sự vượt trội toàn diện so với các mô hình truyền thống dựa trên đơn đặc trưng hình ảnh hoặc đơn đặc trưng ngôn ngữ.

Công trình không chỉ mang giá trị học thuật sâu sắc thông qua việc công bố các kết quả thực nghiệm chi tiết mà còn mở ra hướng ứng dụng thực tiễn to lớn trong lộ trình tự động hóa quy trình số cho các ngân hàng và tập đoàn tài chính tại Việt Nam.

Khám phá và triển khai giải pháp: Hãy áp dụng ngay pipeline xử lý đa phương thức này vào hệ thống của bạn để nâng cấp hiệu suất xử lý tài liệu thông minh, hoặc kết nối với nhóm tác giả để tiếp tục mở rộng quy mô nghiên cứu trên các miền dữ liệu chuyên ngành khác!