Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh chuyển đổi số, việc số hóa dữ liệu từ các tài liệu vật lý như hồ sơ hành chính, hóa đơn, bằng cấp và biểu mẫu đóng vai trò thiết yếu trong nhiều lĩnh vực gồm giáo dục, y tế, thương mại và quản lý nhà nước. Phương thức nhập liệu thủ công bộc lộ nhiều hạn chế về mặt thời gian, tiêu tốn nhân lực và phát sinh sai sót. Công nghệ nhận dạng ký tự quang học (Optical Character Recognition - OCR) ứng dụng học sâu (Deep Learning) là giải pháp tự động hóa quá trình trích xuất văn bản từ hình ảnh kỹ thuật số sang định dạng có thể lưu trữ và chỉnh sửa.
Trong các kiến trúc xử lý OCR, mô hình tích hợp mạng nơ-ron tích chập và hồi quy (Convolutional Recurrent Neural Network - CRNN) thể hiện ưu thế khi kết hợp năng lực trích xuất đặc trưng không gian của CNN với khả năng mô hình hóa chuỗi tuần tự của RNN. Cùng với sự phổ biến của điện thoại thông minh sở hữu camera độ phân giải cao, việc triển khai OCR trên thiết bị di động tạo điều kiện thu thập và xử lý văn bản tại chỗ. Tuy nhiên, hình ảnh ghi nhận từ môi trường thực tế thường gặp các vấn đề kỹ thuật như chất lượng phân giải không đồng đều, góc chụp nghiêng, hiện tượng mờ nhòe và biến động ánh sáng.
Đặc thù của tiếng Việt là ngôn ngữ đơn âm tiết với hệ thống dấu thanh và dấu phụ phức tạp (như dấu sắc, huyền, hỏi, ngã, nặng và các mũ âm ê, ơ, ư, â, ă). Nghiên cứu thực nghiệm trước đây về trích xuất thông tin trên căn cước công dân (CCCD) sử dụng CRNN ghi nhận tỷ lệ lỗi từ (Word Error Rate - WER) là 4.28%, trong đó lỗi tập trung vào việc bỏ sót hoặc nhận diện sai dấu thanh do quá trình tích chập và giảm mẫu (pooling) làm suy giảm chi tiết các ký tự nhỏ, dẫn tới nhầm lẫn giữa các cặp từ như: "Văn" – "Vân", "Thi" – "Thị", "Ấp" – "Âp", "TRẦN" – "TRÂN" – "TRẤN", "Lăng" – "Lãng".
Xuất phát từ các vấn đề trên, đề tài xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể:
- Xây dựng và tối ưu hóa hệ thống nhận diện văn bản tiếng Việt từ ảnh chụp thực tế, bảo đảm độ chính xác cao đối với các ký tự có dấu thanh phức tạp và các biến thể phông chữ.
- Thiết kế và phát triển ứng dụng di động hỗ trợ người dùng chụp ảnh tài liệu trực tiếp, kết nối với máy chủ xử lý thông qua giao diện lập trình ứng dụng (API).
- Tích hợp tính năng tóm tắt văn bản sau khi nhận diện nhằm trích xuất nội dung chính yếu từ các tài liệu dài hoặc phức tạp.
- Đánh giá tính khả thi và hiệu năng thực thi của mô hình học máy khi tích hợp vào hệ thống phần mềm di động.
Đối tượng và phạm vi nghiên cứu của đồ án:
- Đối tượng nghiên cứu: Các mô hình học sâu phục vụ OCR bao gồm CNN, RNN, LSTM, thuật toán phân loại chuỗi thời gian Connectionist Temporal Classification (CTC), công cụ tách dòng văn bản Tesseract, cùng kiến trúc ứng dụng di động React Native và máy chủ Flask.
- Phạm vi không gian và triển khai: Hệ thống thử nghiệm bao gồm một ứng dụng di động kết nối mạng với một máy chủ dịch vụ; ứng dụng nhận diện và tóm tắt văn bản tiếng Việt in ấn từ ảnh chụp tài liệu (hóa đơn, giấy tờ, biểu mẫu).
- Phạm vi giới hạn: Đề tài không nghiên cứu nhận dạng chữ viết tay, không hỗ trợ nhận dạng đa ngôn ngữ ngoài tiếng Việt, và loại trừ các ảnh chụp có độ méo mó nghiêm trọng hoặc văn bản bố trí quá phức tạp ngoài khả năng xử lý của mô hình đã huấn luyện. Hệ thống yêu cầu kết nối mạng để gửi dữ liệu về máy chủ, không xử lý suy luận cục bộ trực tiếp trên phần cứng di động.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết của đề tài tập trung vào việc kết hợp các kiến trúc học sâu xử lý hình ảnh và dữ liệu dạng chuỗi, cùng công nghệ phát triển phần mềm di động và máy chủ API:
- Mạng nơ-ron tích chập (Convolutional Neural Network - CNN): Đóng vai trò trích xuất các đặc trưng thị giác từ ảnh đầu vào. Các tầng tích chập (Convolutional Layer) sử dụng các bộ lọc (kernel) kích thước 3x3, 5x5 hoặc 7x7 quét qua ma trận điểm ảnh để tạo ra các bản đồ đặc trưng (feature maps). Tiếp nối là các tầng kích hoạt phi tuyến (ReLU, Leaky ReLU, Sigmoid, Tanh) và các tầng giảm mẫu (Pooling Layer) như Max Pooling, Average Pooling, Global Average Pooling (GAP) nhằm thu nhỏ kích thước không gian, bảo toàn thông tin biên cạnh và giảm thiểu hiện tượng quá khớp (overfitting). Cuối mạng là các tầng liên kết đầy đủ (Fully Connected - FC / Multi-Layer Perceptron - MLP) để tổng hợp vector đặc trưng.
- Mạng nơ-ron hồi quy (Recurrent Neural Network - RNN) và LSTM: RNN được sử dụng để xử lý dữ liệu tuần tự có ngữ cảnh thời gian. Để khắc phục hiện tượng suy giảm gradient (vanishing gradient) và bùng nổ gradient (exploding gradient) trên các chuỗi ký tự dài, kiến trúc Long Short-Term Memory (LSTM) được áp dụng. LSTM sử dụng trạng thái tế bào (cell state) được điều phối thông qua ba cổng chức năng:
- Cổng quên (Forget Gate): Dùng hàm Sigmoid xác định tỷ lệ thông tin cũ cần loại bỏ khỏi trạng thái tế bào.
- Cổng đầu vào (Input Gate): Kết hợp hàm Sigmoid và hàm Tanh để xác định lượng thông tin mới được cập nhật vào tế bào.
- Cổng đầu ra (Output Gate): Sử dụng hàm Sigmoid và hàm Tanh để quyết định giá trị đầu ra được truyền sang bước thời gian tiếp theo.
Bên cạnh đó, đề tài xem xét các biến thể khác như mạng hồi quy hai chiều (Bidirectional RNN - BRNN) và Gated Recurrent Unit (GRU).
- Thuật toán Connectionist Temporal Classification (CTC): Giải quyết vấn đề bất đồng bộ về độ dài giữa chuỗi đặc trưng hình ảnh đầu vào và chuỗi nhãn ký tự đầu ra mà không cần bước căn chỉnh vị trí (alignment) thủ công cho từng ký tự. Hàm mất mát CTC (CTC Loss) sử dụng thuật toán quy hoạch động (dynamic programming) để tính toán tổng xác suất các đường ánh xạ có thể có sang chuỗi đích, đồng thời đưa vào nhãn trống đặc biệt ("blank") để phân tách các ký tự trùng lặp liên tiếp.
- Công cụ mã nguồn mở Tesseract: Nền tảng OCR được Google bảo trợ, sử dụng mạng nơ-ron tích hợp phục vụ quá trình phân tách cấu trúc trang văn bản (Text Line Segmentation), bao gồm phân tách dòng (Line Segmentation) và phân tách từ (Word Segmentation) trước khi chuyển qua nhận diện ký tự.
- Công nghệ nền tảng hệ thống: Framework React Native phát triển ứng dụng di động đa nền tảng dựa trên kiến trúc cầu nối (Bridge) giữa luồng JavaScript Thread (xử lý logic) và các Native Modules (Java/Kotlin trên Android, Objective-C/Swift trên iOS). Máy chủ phụ trợ sử dụng vi khung (microframework) Flask trong môi trường Python, hoạt động qua giao diện máy chủ cổng kết nối web (WSGI Werkzeug), tổ chức module dạng Blueprints và giao tiếp RESTful API.
Phương pháp nghiên cứu thực nghiệm được tiến hành theo các giai đoạn:
- Thu thập và tiền xử lý dữ liệu: Xây dựng tập dữ liệu văn bản tiếng Việt gồm nhiều phông chữ, định dạng, chứa đầy đủ các tổ hợp dấu thanh. Dữ liệu ảnh đầu vào được đưa qua bước tiền xử lý gồm chuyển đổi ảnh xám (grayscale), chuẩn hóa độ sáng và tương phản, khử nhiễu và căn chỉnh kích thước cố định để tương thích với cấu trúc mạng.
- Huấn luyện mô hình: Áp dụng các thuật toán tối ưu hóa như Adam và SGD để điều chỉnh trọng số mô hình CRNN; sử dụng kỹ thuật điều chỉnh tham số nhằm ngăn ngừa hiện tượng quá khớp (overfitting) và tăng cường khả năng tổng quát hóa dữ liệu.
- Phương pháp đánh giá và kiểm thử: Đánh giá giai đoạn phát hiện và cắt chữ (Text Detection) bằng các chỉ số Precision, Recall và F1-Score (so sánh giữa Tesseract và mô hình EAST). Đánh giá giai đoạn nhận diện ký tự (Text Recognition) bằng độ chính xác theo ký tự (Character Accuracy), độ chính xác theo từ (Word Accuracy), chỉ số Word Error Rate (WER), độ suy hao tập kiểm định (validation loss) và thời gian thực thi (ms/ảnh).
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình phân tán Client - Server, tối ưu hóa việc phân chia tải tính toán giữa thiết bị người dùng và máy chủ chuyên dụng:
[Ứng dụng React Native (Client)]
[Máy chủ Flask (WSGI Werkzeug)]
Kiến trúc ứng dụng di động (Client)
Ứng dụng di động được xây dựng bằng React Native, đảm nhận tương tác người dùng thông qua các use case chính:
- Use case Chụp ảnh văn bản (Bảng 3-1): Người dùng sử dụng camera thiết bị chụp ảnh tài liệu cần số hóa. Ứng dụng tiền xử lý hình ảnh cục bộ, tạo luồng dữ liệu và gửi yêu cầu HTTP POST đính kèm tệp ảnh lên máy chủ Flask.
- Use case Xem kết quả nhận diện (Bảng 3-4): Nhận phản hồi định dạng JSON từ máy chủ, hiển thị song song chuỗi văn bản đã trích xuất và bản tóm tắt nội dung chính; cung cấp các tùy chọn sao chép hoặc lưu trữ dữ liệu.
- Use case Xem và xóa ảnh đã lưu (Bảng 3-2 và Bảng 3-3): Quản lý cơ sở dữ liệu lịch sử trên thiết bị, cho phép xem lại các bản ghi ảnh kèm văn bản đã xử lý trước đó, hoặc thực hiện thao tác xóa dữ liệu khỏi bộ nhớ cục bộ.
Kiến trúc máy chủ xử lý (Server)
Máy chủ sử dụng framework Flask, chịu trách nhiệm tiếp nhận và thực thi toàn bộ pipeline nhận dạng học sâu:
- Tiếp nhận yêu cầu qua API: Tuyến đường dẫn (route) tiếp nhận tệp ảnh gửi từ thiết bị di động, kiểm tra định dạng và chuyển tiếp sang module xử lý hình ảnh.
- Định vị và phân tách vùng văn bản (Text Detection): Hệ thống tích hợp công cụ Tesseract để thực hiện phân tách dòng và phân đoạn từng từ (Word Segmentation). Các tọa độ khung bao (bounding box) xung quanh các từ được xác định để phục vụ thao tác cắt ảnh thành các dải văn bản riêng biệt.
- Nhận dạng chuỗi ký tự (Text Recognition): Sử dụng kiến trúc mô hình mạng CRNN được huấn luyện chuyên biệt:
- Tầng trích xuất đặc trưng (CNN): Tiếp nhận ảnh dải chữ đã cắt, đưa qua chuỗi các lớp Convolutional, ReLU và Pooling để trích xuất các bản đồ đặc trưng (feature maps) biểu diễn hình thái học của từng ký tự tiếng Việt.
- Tầng trích xuất ngữ cảnh tuần tự (RNN/LSTM): Các vector đặc trưng được đưa vào các lớp LSTM hai chiều (Bidirectional LSTM) nhằm mô hình hóa quan hệ trước - sau giữa các chữ cái trong từ.
- Tầng giải mã (CTC Layer): Chuyển đổi phân phối xác suất đầu ra của LSTM tại từng bước thời gian thành chuỗi văn bản cuối cùng, loại bỏ nhãn "blank" và các ký tự lặp do căn chỉnh thời gian.
- Xử lý tóm tắt và phản hồi: Chuỗi văn bản hoàn chỉnh sau khi nhận diện được chuyển qua module tóm tắt văn bản để chắt lọc nội dung ngắn gọn, sau đó đóng gói toàn bộ kết quả vào phản hồi JSON gửi trả về ứng dụng di động.
Nội dung chính theo từng chương
Chương 1: Tổng quan về đề tài
Chương 1 thiết lập cơ sở ban đầu cho nghiên cứu thông qua việc phân tích thực trạng số hóa tài liệu tại các cơ quan, tổ chức. Tác giả chỉ ra các rào cản kỹ thuật của công nghệ OCR hiện hữu khi áp dụng cho tiếng Việt có dấu, đặc biệt trên các tài liệu như CCCD (ghi nhận mức WER 4.28% ở các công trình công bố trước). Chương này xác định rõ 4 mục tiêu nghiên cứu, phân lập các giới hạn kỹ thuật (chỉ tập trung mô hình nhận diện chữ in, hệ thống xử lý qua mạng, không nhận dạng chữ viết tay), đồng thời phác thảo cấu trúc tài liệu tổng thể gồm 5 chương.
Chương 2: Cơ sở lý thuyết
Nội dung chương trình bày chi tiết nền tảng toán học và cấu trúc của các mô hình học sâu. Tác giả khảo sát cơ chế lan truyền xuôi và ngược của mạng nơ-ron đa tầng, cấu tạo các tầng tích chập và các phương pháp pooling trong CNN. Phân tích sự chuyển dịch từ RNN tiêu chuẩn sang LSTM nhằm khắc phục hiện tượng mất mát gradient khi xử lý chuỗi dài thông qua cấu trúc 3 cổng kiểm soát (cổng vào, cổng quên, cổng ra). Giải thích nguyên lý toán học của thuật toán CTC trong bài toán gán nhãn chuỗi không đồng bộ. Đồng thời, chương 2 phân tích cơ chế hoạt động của cầu nối (Bridge) trong framework React Native, kiến trúc WSGI và luồng xử lý ứng dụng của microframework Flask, cũng như cấu trúc phân tách dòng và nhận dạng ký tự của Tesseract.
Chương 3: Thiết kế và xây dựng hệ thống
Chương 3 chuyển hóa cơ sở lý thuyết thành thiết kế hệ thống chi tiết. Tác giả xác định yêu cầu chức năng và phi chức năng, xây dựng các lược đồ tuần tự và bảng đặc tả Use Case (chụp ảnh, xem ảnh đã lưu, xóa ảnh lịch sử). Trình bày chi tiết luồng xử lý ảnh tại máy chủ Flask: từ bước tiền xử lý ảnh (chuyển grayscale, chuẩn hóa tương phản, lọc nhiễu), thuật toán xác định bounding box của Tesseract, đến thiết kế chi tiết cấu trúc các lớp của mạng CRNN (kích thước kernel, số lượng kênh, kích thước feature map). Cuối chương trình bày phương pháp luận huấn luyện mô hình bằng các thuật toán tối ưu hóa Adam, SGD và cơ chế hàm mất mát CTC loss.
Chương 4: Kết quả
Chương 4 công bố toàn bộ dữ liệu thực nghiệm thu được từ quá trình triển khai hệ thống:
- Đánh giá và so sánh thực nghiệm giai đoạn cắt chữ giữa hai giải pháp Tesseract và EAST dựa trên các tiêu chí Precision, Recall và F1-Score (Bảng 4-1).
- Trình bày thông số số lượng ảnh thực nghiệm và cơ cấu tập dữ liệu huấn luyện/kiểm tra (Bảng 4-2).
- Báo cáo biến thiên độ suy hao trên tập kiểm định (validation loss) trong quá trình huấn luyện mô hình CRNN.
- Thống kê tỷ lệ nhận diện chính xác trên từng ký tự đạt 99.92% và độ chính xác trên toàn bộ từ đạt xấp xỉ 99.00% (Bảng 4-3).
- Phân tích biểu đồ thời gian xử lý trung bình mỗi ảnh (94.95 ms) và mối tương quan tuyến tính giữa độ dài từ cần nhận dạng với thời gian thực thi.
- Giới thiệu hình ảnh giao diện thực tế của ứng dụng di động gồm: màn hình chụp ảnh, màn hình hiển thị văn bản kết quả/tóm tắt và màn hình quản lý lịch sử (Bảng 4-4, 4-5, 4-6).
Chương 5: Kết luận và hướng phát triển
Chương tổng kết các hạng mục đã hoàn thành so với mục tiêu ban đầu: xây dựng thành công pipeline OCR tiếng Việt kết hợp Tesseract và CRNN, tích hợp vào ứng dụng di động qua máy chủ Flask với độ chính xác và tốc độ cao. Đồng thời, tác giả thẳng thắn chỉ ra các điểm nghẽn kỹ thuật còn tồn đọng và đề xuất các giải pháp nâng cấp trong tương lai.
Kết quả và đóng góp
Nghiên cứu đã tiến hành các thực nghiệm định lượng nhằm đánh giá hiệu năng của hệ thống nhận diện văn bản tiếng Việt. Các kết quả cốt lõi được ghi nhận cụ thể như sau:
| Tiêu chí đánh giá |
Giá trị thực nghiệm |
Ý nghĩa / Ghi chú kỹ thuật |
| Độ chính xác ký tự (Character Accuracy) |
99.92% |
Đo lường trên tập dữ liệu kiểm tra độc lập |
| Độ chính xác cấp độ từ (Word Accuracy) |
~99.00% |
Tỷ lệ nhận diện chính xác toàn bộ các ký tự cấu thành từ |
| Thời gian xử lý trung bình mỗi ảnh |
94.95 ms |
Đáp ứng yêu cầu phản hồi thời gian thực |
| Mối tương quan thời gian - độ dài từ |
Tuyến tính |
Thời gian xử lý tăng tuyến tính theo số lượng ký tự trong chuỗi |
| Độ suy hao kiểm định (Validation Loss) |
Hội tụ ổn định |
Mô hình CRNN kiểm soát tốt hiện tượng quá khớp (overfitting) |
So sánh phương pháp cắt chữ giữa Tesseract và mô hình EAST:
- Hệ thống đã đo lường và đối sánh hai công cụ Tesseract và EAST dựa trên bộ ba chỉ số Precision, Recall và F1-Score (trình bày tại Bảng 4-1 của đồ án). Kết quả thực nghiệm cho thấy việc sử dụng Tesseract giúp tối ưu hóa khả năng định vị văn bản tiếng Việt nhờ cơ chế phân tách dòng và từ được tinh chỉnh phù hợp với cấu trúc ngôn ngữ.
Các giải pháp và đóng góp của đề tài do tác giả xác định:
- Đóng góp kiến trúc: Đề xuất và triển khai thành công mô hình tích hợp giữa Tesseract (đóng vai trò định vị và phân đoạn khối chữ) và mạng CRNN kết hợp lớp CTC (đóng vai trò nhận dạng ký tự tiếng Việt có dấu). Mô hình giải quyết hiệu quả hiện tượng suy giảm dấu thanh vốn là nhược điểm thường gặp ở các mạng CNN đơn thuần.
- Đóng góp kỹ thuật ứng dụng: Xây dựng hoàn chỉnh chu trình ứng dụng di động client-server. Giải pháp đưa toàn bộ mô hình tính toán nặng lên máy chủ Flask thông qua RESTful API giúp ứng dụng React Native hoạt động ổn định trên các thiết bị di động có phần cứng giới hạn, đồng thời bổ sung tính năng tóm tắt văn bản sau trích xuất nhằm tăng tiện ích sử dụng.
Hạn chế và hướng nghiên cứu tiếp
Các hạn chế được văn bản đồ án chỉ rõ:
- Phụ thuộc kết nối mạng: Ứng dụng client bắt buộc phải có kết nối Internet để gửi ảnh và nhận dữ liệu từ máy chủ Flask; hệ thống chưa có khả năng nhận dạng ngoại tuyến (offline) trên phần cứng thiết bị.
- Giới hạn loại hình văn bản: Hệ thống chỉ được tối ưu hóa cho văn bản in ấn rõ ràng, chưa hỗ trợ nhận dạng chữ viết tay hoặc chữ nghệ thuật có độ biến dạng cao.
- Giới hạn ngôn ngữ: Mô hình CRNN được tinh chỉnh chuyên biệt cho bộ ký tự tiếng Việt, chưa hỗ trợ chế độ nhận dạng văn bản đa ngôn ngữ song song.
- Nhạy cảm với chất lượng ảnh chụp: Khả năng nhận diện suy giảm đối với các ảnh chụp có độ phức tạp cao như văn bản nhiều cột nghiêng lệch, ảnh bị bóng lóa nghiêm trọng hoặc nhiễu độ phân giải thấp vượt ngoài phạm vi huấn luyện.
- Quy mô triển khai: Sản phẩm dừng lại ở phiên bản thử nghiệm phục vụ nghiên cứu học thuật, chưa trải qua quy trình kiểm thử tải diện rộng trong môi trường sản xuất thực tế.
Hướng phát triển tiếp theo được đề xuất:
- Mở rộng tập dữ liệu huấn luyện với đa dạng kiểu phông chữ, văn bản viết tay và các điều kiện môi trường chụp ảnh phức tạp hơn nhằm nâng cao tính tổng quát hóa.
- Tối ưu hóa cấu trúc mô hình (sử dụng các kỹ thuật lượng tử hóa, nén mô hình) để có thể triển khai thực thi suy luận trực tiếp trên thiết bị di động (on-device processing) mà không cần phụ thuộc máy chủ.
- Mở rộng phạm vi nhận diện cho các tài liệu song ngữ hoặc đa ngôn ngữ.
Giá trị tham khảo
Đồ án là tài liệu tham khảo hữu ích cho sinh viên và người nghiên cứu thuộc các chuyên ngành:
- Công nghệ Kỹ thuật Máy tính, Khoa học Máy tính và Kỹ thuật Phần mềm: Tài liệu cung cấp tài liệu nghiên cứu chi tiết về phương pháp xây dựng một pipeline thị giác máy tính hoàn chỉnh từ giai đoạn tiền xử lý hình ảnh, phân đoạn từ đến nhận dạng chuỗi ký tự bằng học sâu.
- Sinh viên và kỹ sư phát triển ứng dụng di động tích hợp AI: Cung cấp mô hình kiến trúc phân tán thực tế giữa ứng dụng giao diện React Native và máy chủ microservice Flask phục vụ các tác vụ tính toán học máy.
Các phần có giá trị tham khảo kỹ thuật cao trong báo cáo:
- Chương 2 và Chương 3: Cơ sở toán học chi tiết về cơ chế cổng kiểm soát của LSTM và nguyên lý giải mã không đồng bộ của CTC Loss; cùng bảng thông số chi tiết cấu hình các tầng trong mạng CRNN (Bảng 3-4).
- Chương 4: Phương pháp luận và bảng số liệu so sánh thực nghiệm giữa Tesseract và EAST trong tác vụ định vị văn bản tiếng Việt dựa trên Precision, Recall và F1-Score.
Câu hỏi thường gặp
1. Mô hình CRNN trong đồ án được cấu trúc từ những thành phần cốt lõi nào?
Mô hình kết hợp ba tầng chính: tầng tích chập CNN đảm nhận trích xuất đặc trưng hình thái học từ ảnh dải chữ; tầng hồi quy RNN sử dụng các khối LSTM hai chiều (Bidirectional LSTM) để học ngữ cảnh tuần tự giữa các ký tự; và tầng phân loại Connectionist Temporal Classification (CTC) sử dụng thuật toán quy hoạch động để ánh xạ chuỗi đặc trưng sang văn bản tiếng Việt mà không cần căn chỉnh vị trí ký tự thủ công.
2. Tại sao nhóm tác giả lại kết hợp Tesseract với CRNN thay vì sử dụng độc lập một công cụ?
Trong hệ thống, Tesseract được tối ưu hóa ở giai đoạn tiền xử lý nhằm thực hiện phân tách dòng văn bản (Line Segmentation) và phân tách từ (Word Segmentation) để tạo bounding box cắt dải chữ. Sau đó, mô hình CRNN chuyên biệt cho tiếng Việt đảm nhận khâu nhận dạng ký tự nhằm khắc phục triệt để lỗi mất dấu thanh thường gặp khi nhận diện văn bản tiếng Việt.
3. Hiệu năng thực nghiệm của hệ thống nhận diện đạt được các chỉ số cụ thể nào?
Theo kết quả đánh giá trên tập kiểm tra, mô hình đạt độ chính xác trên từng ký tự là 99.92%, độ chính xác trên toàn bộ từ đạt xấp xỉ 99.00%. Thời gian xử lý trung bình cho mỗi ảnh là 94.95 ms và thời gian này có xu hướng tăng tuyến tính theo chiều dài của từ cần nhận dạng.
4. Ứng dụng di động được xây dựng bằng công nghệ gì và cơ chế vận hành ra sao?
Ứng dụng di động được lập trình bằng framework React Native, sử dụng camera thiết bị để chụp tài liệu. Do hạn chế về tài nguyên phần cứng di động, ứng dụng không thực hiện suy luận cục bộ mà đóng gói ảnh và gửi yêu cầu HTTP POST đến máy chủ Flask thông qua giao tiếp RESTful API để nhận kết quả nhận diện và tóm tắt dạng JSON.
5. Lỗi nhận diện dấu thanh tiếng Việt từ các nghiên cứu trước được đề tài giải quyết ra sao?
Nghiên cứu trước đây trên CCCD ghi nhận tỷ lệ lỗi WER 4.28% do các phép tích chập và pooling làm mất mát dấu thanh (gây nhầm các từ như "Văn" – "Vân", "Thi" – "Thị"). Đề tài đã xử lý vấn đề này bằng cách thiết kế tập dữ liệu huấn luyện đa dạng bao phủ đầy đủ tổ hợp dấu tiếng Việt, kết hợp các tầng LSTM bảo toàn ngữ cảnh và tinh chỉnh các siêu tham số mạng CRNN để nhận dạng chính xác dấu phụ.
Kết luận
Đồ án tốt nghiệp "Xây dựng ứng dụng di động dự đoán văn bản qua hình ảnh dùng mô hình CRNN" của sinh viên Nguyễn Dương Tiến Phát và Thái Quốc Hưng (Trường Đại học Sư phạm Kỹ thuật TP.HCM) đã nghiên cứu và phát triển hoàn chỉnh một giải pháp nhận dạng ký tự tiếng Việt từ ảnh chụp thực tế. Hệ thống tích hợp hiệu quả công cụ Tesseract để phân tách vùng chữ, mạng học sâu CRNN cùng thuật toán CTC để nhận dạng văn bản có dấu với độ chính xác ký tự đạt 99.92% và thời gian phản hồi trung bình 94.95 ms/ảnh. Kiến trúc phân tán kết hợp giữa ứng dụng di động React Native và máy chủ Flask đã chứng minh tính khả thi kỹ thuật trong việc đưa các giải pháp học máy phức tạp lên nền tảng thiết bị di động phục vụ nhu cầu số hóa tài liệu.