Bối cảnh và vấn đề nghiên cứu
Trong tiến trình chuyển đổi số của các tổ chức và doanh nghiệp, việc số hóa tài liệu quản lý và hồ sơ tài chính đóng vai trò cốt lõi nhằm đảm bảo khả năng lưu trữ an toàn, tra cứu nhanh chóng và hỗ trợ phân tích dữ liệu hiệu quả. Trong các lĩnh vực tài chính và kinh doanh, phần lớn chứng từ, hóa đơn và báo cáo thường được lưu trữ dưới dạng bản quét (scan), tập tin hình ảnh hoặc định dạng PDF. Qua thời gian, khối lượng tài liệu tích lũy ngày càng lớn, dẫn đến việc nhập liệu thủ công từng trang vào máy tính tiêu tốn nhiều thời gian, công sức và nguồn nhân lực (một tài liệu báo cáo gồm 10 trang chứa nhiều bảng biểu phức tạp có thể mất đến nửa tiếng để sao chép dữ liệu thủ công).
Công nghệ nhận dạng ký tự quang học (Optical Character Recognition - OCR) là giải pháp tự động hóa quá trình chuyển đổi văn bản từ hình ảnh sang dữ liệu số. Tuy nhiên, các công cụ OCR phổ biến hiện nay chủ yếu tập trung vào văn bản thuần túy chuyển đổi sang văn bản dạng Word, chưa xử lý tốt các tài liệu có cấu trúc phức tạp như báo cáo tài chính vốn chứa nhiều bảng số liệu đa cột, con dấu, chữ ký và phần chân trang (footer). Thêm vào đó, các công nghệ bóc tách cấu trúc bảng biểu tiên tiến trên thế giới hầu như chưa tối ưu hóa cho tiếng Việt và chưa có khả năng xử lý linh hoạt các hình ảnh tài liệu scan bị xoay lệch ở các góc bất kỳ (chỉ hỗ trợ các góc vuông cố định như 0°, 90°, 180°, 270°).
Khóa luận tốt nghiệp chuyên ngành Trí tuệ nhân tạo của tác giả Phan Tuấn Hùng (Trường Đại học Thăng Long, hoàn thành tháng 10/2024 dưới sự hướng dẫn của TS. Nguyễn Thị Huyền Châu và CN. Hồ Hồng Trường) tập trung giải quyết bài toán trên.
Mục tiêu và phạm vi nghiên cứu được xác định cụ thể trong văn bản:
- Mục tiêu nghiên cứu: Phát triển một công cụ OCR hiệu quả nhằm tự động chuyển đổi và bóc tách dữ liệu từ các báo cáo tài chính dạng hình ảnh/PDF scan sang định dạng số có thể chỉnh sửa và lưu trữ trên máy tính (tập tin Excel và Word), nâng cao hiệu suất quản lý và phân tích tài chính.
- Nhiệm vụ nghiên cứu:
- Nghiên cứu cơ sở lý thuyết về học sâu, thị giác máy tính và các kỹ thuật OCR hiện đại.
- Khảo sát các mô hình OCR mã nguồn mở phổ biến (Tesseract, EAST, VietOCR, PaddleOCR).
- Xây dựng quy trình tiền xử lý ảnh để tự động chuẩn hóa và xoay ảnh nghiêng ở góc bất kỳ về hướng chuẩn.
- Tái thiết kế kiến trúc và quy trình nhận dạng bảng biểu của PP-StructureV2 nhằm hỗ trợ ngôn ngữ tiếng Việt.
- Đóng gói và triển khai hệ sinh thái OCR thành dịch vụ web thông qua FastAPI.
- Đối tượng và phạm vi nghiên cứu:
- Phạm vi nội dung và ngôn ngữ: Xử lý nhận dạng và bóc tách bảng biểu báo cáo tài chính tại Việt Nam và một số quốc gia (Mỹ, Hàn Quốc, Vương quốc Anh, Ả Rập, Nhật Bản, Trung Quốc).
- Thời gian thực hiện: Nghiên cứu được triển khai trong thời gian 6 tháng.
- Nguồn dữ liệu: Dữ liệu thử nghiệm được thu thập từ các báo cáo tài chính công khai của các công ty niêm yết trên sàn chứng khoán trong nước và quốc tế dưới định dạng PDF chứa ảnh scan.
Cơ sở lý thuyết và phương pháp
Khóa luận thiết lập nền tảng lý thuyết toàn diện về Trí tuệ nhân tạo (AI), Học máy (Machine Learning), Học sâu (Deep Learning) và Thị giác máy tính (Computer Vision):
1. Khung lý thuyết và mô hình tính toán
- Phân loại AI và Học máy: Khóa luận xác định công cụ OCR thuộc nhóm Trí tuệ nhân tạo có bộ nhớ hạn chế (Limited Memory AI) trong phạm vi Trí tuệ nhân tạo hẹp (Artificial Narrow Intelligence - ANI). Mô hình áp dụng phương pháp học có giám sát (Supervised Learning) với các trọng số được huấn luyện sẵn (pretrained weights) nhằm tối ưu tài nguyên tính toán.
- Mạng nơ-ron nhân tạo (Neural Networks):
- Cơ chế lan truyền tiến (Forward Propagation) qua các lớp ẩn để tính tổng có trọng số:
$$z_l = W_l a_{l-1} + b_l$$
sau đó đưa qua hàm kích hoạt $a_l = g_l(z_l)$.
- Các hàm kích hoạt phi tuyến tính được phân tích gồm:
- Sigmoid: $\sigma(x) = \frac{1}{1 + e^{-x}}$, giá trị đầu ra trong khoảng $(0, 1)$.
- Tanh: $\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} = 2\sigma(2x) - 1$, đối xứng qua 0, giá trị trong khoảng $(-1, 1)$.
- ReLU: $f(x) = \max(0, x)$, tốc độ hội tụ nhanh gấp 6 lần Tanh nhưng có rủi ro "Dying ReLU".
- Leaky ReLU: $f(x) = \max(0.01x, x)$ và PReLU: $f(x) = \max(\alpha x, x)$ với hệ số $\alpha$ có thể học được.
- Thuật toán lan truyền ngược (Backpropagation): Sử dụng quy tắc chuỗi (Chain rule) để tính gradient của hàm mất mát Binary Cross-Entropy Loss:
$$L(y, \hat{y}) = -[y \log(\hat{y}) + (1 - y)\log(1 - \hat{y})]$$
nhằm cập nhật ma trận trọng số $W_l$ và vector bias $b_l$ theo tốc độ học $\eta$:
$$W_l = W_l - \eta \frac{\partial L}{\partial W_l}$$
2. Các công nghệ trong hệ thống OCR hiện đại
Khóa luận phân tích chi tiết các khối công nghệ thuộc hai hệ thống cốt lõi PP-OCRv3 và PP-StructureV2:
| Hệ thống |
Thành phần công nghệ |
Đặc điểm kỹ thuật và vai trò |
| PP-OCRv3 |
Text Detection DB (Differentiable Binarization) |
Nhị phân hóa khả vi kết hợp bản đồ xác suất (Probability map) và bản đồ ngưỡng động (Dynamic threshold map) theo công thức $\hat{B}(p) = \frac{1}{1 + e^{-\alpha(S(p) - T(p))}}$, tối ưu cho văn bản có nền phức tạp. |
|
MobileNetV3 |
Mạng tích chập nhẹ kế thừa từ MobileNetV1/V2, tích hợp Neural Architecture Search (NAS) và khối Squeeze-and-Excitation (SE). |
|
Residual SE-FPN |
Kết hợp mạng kim tự tháp đặc trưng (FPN) với liên kết phần dư (Residual Connection) và khối SE để khuếch đại đặc trưng quan trọng. |
|
Large Kernel PAN |
Cải tiến từ Path Aggregation Network (PAN) với kernel tích chập kích thước lớn, mở rộng trường tiếp nhận (receptive field). |
|
Deep Mutual Learning (DML) |
Kỹ thuật học sâu hỗ tương, cho phép nhiều mô hình học hỏi từ dự đoán và hàm mất mát của nhau. |
|
SVTR_LCNet |
Kết hợp mạng nhận dạng văn bản dạng Transformer (SVTR) với mạng tích chập nhẹ PP-LCNet sử dụng tích chập tách biệt theo chiều sâu (depthwise separable convolution). |
| PP-StructureV2 |
PP-PicoDet |
Thuật toán phát hiện đối tượng thời gian thực tối ưu cho thiết bị di động, kết hợp CSP-PAN, SimOTA, PP-LCNet, NAS và kích thước đầu vào $800 \times 608$ pixel (tốc độ nhanh gấp 11 lần PP-YOLOv2). |
|
FGD (Focal & Global Distillation) |
Kỹ thuật chưng cất tri thức kết hợp trích xuất chi tiết tiền cảnh/hậu cảnh (Focal Distillation) và bảo toàn mối quan hệ không gian toàn cục (Global Distillation). |
|
SLAHead (Structure & Location Alignment) |
Mô-đun căn chỉnh vị trí và cấu trúc, liên kết chính xác token của từng ô bảng với tọa độ hộp bao (bounding box), xuất ra mã HTML của bảng. |
3. Phương pháp nghiên cứu thực tế
- Phương pháp phân tích - tổng hợp: Đánh giá ưu nhược điểm của các kiến trúc OCR hiện hành để chọn lọc mô hình phù hợp.
- Phương pháp thực nghiệm tiền xử lý ảnh: Ứng dụng kết hợp thư viện
pdf2image, OpenCV và mô-đun OSD (Orientation and Script Detection) trong PyTesseract để xử lý góc nghiêng ảnh tài liệu.
- Phương pháp tích hợp và kiểm thử hệ thống: Xây dựng pipeline hoàn chỉnh kết nối từ khâu tiếp nhận tệp, tiền xử lý, bóc tách cấu trúc, nhận diện văn bản tiếng Việt và xuất bản dữ liệu qua API.
Thiết kế và triển khai
Hệ thống công cụ OCR được thiết kế theo quy trình xử lý luồng dữ liệu tự động gồm các giai đoạn tiền xử lý, bóc tách cấu trúc và triển khai dịch vụ web:
1. Quy trình tiền xử lý dữ liệu và xoay góc ảnh
Dữ liệu đầu vào dạng PDF scan được chuyển đổi thành chuỗi hình ảnh thông qua pdf2image. Để giải quyết triệt để vấn đề tài liệu bị quét lệch, tác giả xây dựng thuật toán tiền xử lý hai cấp độ:
- Xử lý ảnh bị xoay ở góc bất kỳ (10°, 15°, 20°, 60°...): Ứng dụng thư viện
OpenCV qua quy trình 8 bước:
- Đọc ảnh và chuyển đổi sang ảnh thang độ xám (grayscale).
- Tính toán bản đồ gradient.
- Nhị phân hóa hình ảnh.
- Kết nối các vùng chứa ký tự/văn bản liền kề.
- Tìm đường viền (contours) của các khối văn bản.
- Xác định vùng bao quanh khối văn bản.
- Tính toán góc xoay của từng khối văn bản so với trục tọa độ gần nhất ($Ox, Oy$).
- Xác định góc xoay xuất hiện với tần suất lớn nhất (mode), thực hiện xoay ảnh về các trục chuẩn và cắt bỏ phần viền đen (black background) phát sinh sau khi xoay.
- Xử lý ảnh bị xoay ở các góc vuông đặc biệt (0°, 90°, 180°, 270°): Áp dụng hàm OSD (Orientation and Script Detection) của
PyTesseract để phân tích đặc trưng đối xứng của tập ký tự và khoảng cách dòng, từ đó quay ảnh về đúng chiều đọc chuẩn.
2. Khảo sát và lựa chọn mô hình nhận dạng
| Mô hình |
Ưu điểm |
Hạn chế |
| Tesseract |
Mã nguồn mở, hỗ trợ nhiều ngôn ngữ, có sẵn mô hình nhận diện tiếng Việt. |
Độ chính xác không cao bằng các mạng học sâu mới; nhận diện chữ viết tay kém. |
| EAST |
Độ chính xác cao trong việc phát hiện hộp bao (bbox), nhận diện tốt văn bản nghiêng. |
Chỉ thực hiện nhiệm vụ phát hiện (detection), không nhận diện chữ (recognition); không tự sắp xếp thứ tự bbox. |
| VietOCR (VGG-Transformer) |
Độ chính xác cao với tiếng Việt, kiến trúc Transformer xử lý song song cho tốc độ nhanh. |
Chỉ xử lý chuỗi ký tự ngắn, phụ thuộc vào mô hình cắt bbox phía trước. |
| VietOCR (VGG-Seq2Seq) |
Độ chính xác cao với tiếng Việt và chữ viết tay. |
Xử lý tuần tự theo chuỗi nên tốc độ chậm hơn Transformer. |
| PP-StructureV2 (PaddleOCR) |
Hỗ trợ bóc tách bố cục phức tạp (bảng biểu, chữ ký, con dấu, footer), liên kết SLAHead xuất HTML bảng. |
Chưa hỗ trợ đầy đủ nhận diện tiếng Việt mặc định; không tự xử lý ảnh xoay góc bất kỳ. |
Từ kết quả khảo sát, tác giả lựa chọn nền tảng PP-StructureV2 làm khung kiến trúc chính, kết hợp tái thiết kế mô hình nhận diện ký tự để tối ưu cho tiếng Việt và bổ sung module xoay ảnh OpenCV.
3. Triển khai dịch vụ bằng FastAPI
Hệ thống được đóng gói thành ứng dụng web backend sử dụng framework FastAPI, cung cấp giao diện tương tác và tài liệu API Swagger UI (/docs):
- API kiểm tra trạng thái và nhập thông tin người dùng.
- API lấy danh sách các ngôn ngữ hệ thống hỗ trợ OCR.
- API tải lên tệp tin tài liệu (
/upload) định dạng PDF hoặc hình ảnh.
- API lựa chọn ngôn ngữ mục tiêu và kích hoạt pipeline OCR.
- Module đóng gói kết quả: Tự động trích xuất các bảng số liệu sang định dạng bảng tính Excel (
.xlsx) và văn bản thuần sang tập tin tài liệu (.docx), sau đó nén toàn bộ thành tệp .zip cho người dùng tải về.
Nội dung chính theo từng chương
Chương 1: Chương mở đầu
Trình bày tổng quan về tính cấp thiết của đề tài trong bối cảnh chuyển đổi số doanh nghiệp. Tác giả nêu bật sự lãng phí thời gian và nhân lực khi sao chép thủ công các báo cáo tài chính dạng PDF/ảnh sang máy tính. Chương này xác định rõ mục tiêu nghiên cứu, phạm vi dữ liệu (báo cáo tài chính Việt Nam và quốc tế gồm Mỹ, Hàn Quốc, Anh, Ả Rập, Nhật Bản, Trung Quốc), thời gian triển khai 6 tháng và phác thảo cấu trúc 5 chương của khóa luận.
Chương 2: Cơ sở lý thuyết
Cung cấp bức tranh toàn cảnh về lý thuyết AI, Machine Learning và Deep Learning. Nội dung phân tích chi tiết cấu trúc mạng nơ-ron nhân tạo, các hàm kích hoạt (Sigmoid, Tanh, ReLU, Leaky ReLU, PReLU), toán học của quá trình lan truyền tiến và thuật toán lan truyền ngược với hàm mất mát Binary Cross-Entropy. Đồng thời, chương đi sâu vào các công nghệ tiên tiến trong hệ thống OCR gồm Text Detection DB, MobileNetV3, Residual SE-FPN, Large Kernel PAN, Deep Mutual Learning, SVTR_LCNet, PP-PicoDet, kỹ thuật chưng cất tri thức FGD và module căn chỉnh cấu trúc SLAHead.
Chương 3: Chuẩn bị và tiền xử lý dữ liệu
Mô tả chi tiết bài toán thực tế khi xử lý các tài liệu quét có cấu trúc bảng biểu phức tạp, nhiều cột số liệu và chữ ký. Tác giả nêu rõ phương pháp thu thập dữ liệu báo cáo tài chính công khai từ các công ty niêm yết trên sàn chứng khoán. Chương trình bày giải pháp kỹ thuật tiền xử lý: sử dụng pdf2image để phân tách trang PDF, xây dựng thuật toán 8 bước với OpenCV để tính toán góc xoay bất kỳ theo trục $Ox, Oy$ và áp dụng mô-đun OSD của PyTesseract để hiệu chỉnh hướng văn bản ở các góc vuông cố định.
Chương 4: Tái thiết kế mô hình và triển khai
Khảo sát và phân tích so sánh các mô hình OCR hiện nay bao gồm Tesseract, EAST, VietOCR (kiến trúc VGG-Transformer và VGG-Seq2Seq), và hệ thống PaddleOCR. Tác giả làm rõ các vấn đề kỹ thuật khi áp dụng PP-StructureV2 cho tiếng Việt và đề xuất phương án tái thiết kế đường ống xử lý (pipeline) để kết hợp khả năng phân tích bố cục bảng của PP-StructureV2 với khả năng nhận diện tiếng Việt và module xử lý góc nghiêng.
Chương 5: Cài đặt và thực nghiệm
Mô tả quá trình cài đặt môi trường, các thư viện phụ thuộc và triển khai hệ thống công cụ OCR trên nền tảng FastAPI. Chương minh họa chi tiết giao diện tương tác Swagger UI, các hàm API nhận tải tệp, hàm chọn ngôn ngữ OCR và cấu trúc kết quả đầu ra. Kết quả thực nghiệm cho thấy hệ thống bóc tách chính xác các bảng biểu phức tạp và tự động đóng gói dữ liệu thành các tệp tin Excel (.xlsx) và Word (.docx) nén trong tệp ZIP.
Kết quả và đóng góp
Khóa luận đạt được các kết quả kỹ thuật và đóng góp thực tiễn sau:
- Xây dựng hoàn chỉnh đường ống xử lý OCR chuyên biệt cho báo cáo tài chính: Kết hợp thành công các kỹ thuật tiền xử lý ảnh với mạng học sâu để bóc tách chính xác tài liệu chứa cấu trúc bảng biểu phức tạp, con dấu và chữ ký.
- Giải quyết vấn đề xoay ảnh ở góc bất kỳ: Khắc phục hạn chế của các công cụ OCR truyền thống (chỉ nhận diện góc xoay 0°, 90°, 180°, 270°) bằng việc tích hợp thuật toán phân tích gradient đường viền bằng OpenCV kết hợp mô-đun OSD của PyTesseract.
- Mở rộng khả năng nhận diện đa ngôn ngữ: Tích hợp và tái thiết kế pipeline dựa trên PP-StructureV2 để nhận diện hiệu quả tiếng Việt cùng các ngôn ngữ quốc tế (tiếng Anh, Hàn Quốc, Nhật Bản, Trung Quốc, Ả Rập).
- Triển khai ứng dụng thực tế tiện ích: Đóng gói toàn bộ mô hình thành hệ thống API trên nền tảng FastAPI, hỗ trợ chuyển đổi dữ liệu đầu ra trực tiếp sang định dạng bảng tính Excel (
.xlsx) và tài liệu Word (.docx), phục vụ trực tiếp cho công tác số hóa và phân tích tài chính.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận ghi nhận các hạn chế và định hướng phát triển dựa trên phạm vi nghiên cứu thực tế:
- Hạn chế:
- Do giới hạn về thời gian (6 tháng) và tài nguyên phần cứng tính toán, tác giả chưa thực hiện huấn luyện lại (retraining) toàn bộ các mô hình học sâu từ đầu trên tập dữ liệu báo cáo tài chính quy mô lớn mà chủ yếu sử dụng các mô hình đã huấn luyện sẵn (pretrained models).
- Khâu xử lý ảnh sau khi xoay ở góc bất kỳ vẫn để lại phần viền nền đen cần tiếp tục tối ưu hóa thuật toán cắt viền tự động.
- Hướng nghiên cứu tiếp:
- Thu thập tập dữ liệu lớn các mẫu báo cáo tài chính đặc thù của doanh nghiệp Việt Nam để tiến hành huấn luyện bổ sung (fine-tuning) nhằm nâng cao độ chính xác nhận dạng ký tự chuyên ngành.
- Tối ưu hóa tốc độ xử lý của pipeline và nâng cấp giao diện người dùng trực quan hơn ngoài giao diện Swagger UI hiện tại.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo có giá trị học thuật và kỹ thuật ứng dụng cho:
- Sinh viên và học viên chuyên ngành Trí tuệ nhân tạo, Khoa học dữ liệu, Công nghệ thông tin: Cung cấp tổng quan hệ thống về toán học mạng nơ-ron, cơ chế lan truyền ngược, các hàm kích hoạt và kiến trúc OCR hiện đại (DB, SVTR, PP-PicoDet, SLAHead).
- Lập trình viên và kỹ sư phát triển phần mềm: Tham khảo quy trình 8 bước xử lý xoay ảnh góc bất kỳ bằng OpenCV và cách thức tích hợp mô hình học sâu vào dịch vụ web sử dụng FastAPI.
- Chuyên viên số hóa dữ liệu và quản trị tài chính: Cung cấp góc nhìn thực tiễn về giải pháp tự động hóa nhập liệu bảng biểu báo cáo tài chính từ định dạng PDF scan sang Excel.
Câu hỏi thường gặp
1. Khóa luận sử dụng công nghệ nào để bóc tách cấu trúc bảng biểu phức tạp trong báo cáo tài chính?
Khóa luận sử dụng hệ thống PP-StructureV2 kế thừa từ PP-OCRv3, tích hợp thuật toán phát hiện đối tượng PP-PicoDet (kết hợp CSP-PAN, PP-LCNet, SimOTA) và module SLAHead (Structure and Location Alignment Module) để liên kết chính xác giữa token ô bảng và tọa độ hộp bao (bounding box), từ đó xuất ra cấu trúc HTML của bảng.
2. Giải pháp của tác giả để xử lý các tài liệu scan bị xoay nghiêng ở các góc bất kỳ (như 10°, 15°, 20°...) là gì?
Tác giả xây dựng quy trình 8 bước với OpenCV: chuyển ảnh sang thang độ xám, tính bản đồ gradient, nhị phân hóa, kết nối vùng văn bản, tìm đường viền, xác định vùng bao quanh, tính góc nghiêng so với trục Ox/Oy gần nhất và chọn góc xoay có tần suất xuất hiện nhiều nhất để xoay ảnh về trục chuẩn, sau đó dùng PyTesseract OSD để hiệu chỉnh góc vuông.
3. Tại sao khóa luận không huấn luyện mô hình học sâu từ đầu (training from scratch)?
Do giới hạn về thời gian nghiên cứu (trong 6 tháng) và hạn chế về tài nguyên phần cứng tính toán, tác giả lựa chọn phương pháp sử dụng các mô hình đã được huấn luyện sẵn (pretrained models), tập trung vào việc tiền xử lý dữ liệu, tái thiết kế pipeline và tích hợp triển khai.
4. Dữ liệu đầu ra của công cụ OCR được trả về dưới định dạng nào?
Hệ thống FastAPI tự động xử lý và xuất kết quả dưới dạng tệp tin bảng tính Excel (.xlsx) đối với dữ liệu bảng biểu và tệp tin Word (.docx) đối với dữ liệu văn bản, sau đó đóng gói thành một tệp nén định dạng .zip để người dùng tải về.
5. Khóa luận hỗ trợ nhận dạng văn bản thuộc những ngôn ngữ nào?
Bên cạnh việc bổ sung khả năng nhận diện tiếng Việt, hệ thống hỗ trợ OCR các văn bản báo cáo tài chính bằng tiếng Anh, tiếng Hàn Quốc, tiếng Ả Rập, tiếng Nhật Bản và tiếng Trung Quốc.
Kết luận
Khóa luận tốt nghiệp của sinh viên Phan Tuấn Hùng đã nghiên cứu và phát triển thành công công cụ OCR chuyên dụng cho việc bóc tách bảng số liệu trong các báo cáo tài chính dạng PDF scan. Bằng cách kết hợp linh hoạt thuật toán tiền xử lý xoay ảnh đa góc độ của OpenCV, mô-đun OSD của PyTesseract và kiến trúc bóc tách cấu trúc PP-StructureV2, đề tài đã giải quyết hiệu quả bài toán trích xuất dữ liệu phức tạp hỗ trợ tiếng Việt và nhiều ngôn ngữ quốc tế. Toàn bộ giải pháp được đóng gói hoàn chỉnh trên nền tảng FastAPI với đầu ra định dạng Excel và Word, mang lại giá trị ứng dụng thiết thực cho công tác số hóa và quản lý dữ liệu tài chính doanh nghiệp.