Thủ thuật
Hướng dẫn xây dựng quy trình OCR toàn diện với Baidu Unlimited-OCR cho tài liệu phức tạp
(giờ Việt Nam)
Tóm tắt AI
Bài viết hướng dẫn chi tiết cách thiết lập pipeline xử lý OCR cho ảnh độ phân giải cao và PDF nhiều trang bằng mô hình Baidu Unlimited-OCR, tối ưu cho các bố cục dày đặc và bảng biểu.
Bản dịch AI

Trong hướng dẫn này, chúng ta sẽ xây dựng một quy trình hoàn chỉnh để chạy mô hình Unlimited-OCR của Baidu trên các hình ảnh tài liệu và tệp PDF nhiều trang. Chúng ta sẽ cấu hình môi trường GPU, cài đặt các thư viện phụ thuộc cần thiết, tải mô hình ngôn ngữ thị giác (vision-language model) 3 tỷ tham số với tính năng tự động chọn bfloat16 hoặc float16, đồng thời tạo các tài liệu mẫu có cấu trúc để kiểm thử. Sau đó, chúng ta sẽ đánh giá cả chế độ suy luận Gundam (dạng chia ô) và chế độ Base (nhanh hơn) cho OCR đơn trang, trước khi mở rộng quy trình sang phân tích PDF nhiều trang bằng PyMuPDF và infer_multi. Trong suốt quy trình, chúng ta duy trì các thiết lập tạo văn bản ngữ cảnh dài, kiểm soát lặp lại và xử lý đầu ra có cấu trúc để xử lý các bố cục dày đặc, bảng biểu, đoạn văn và nội dung xuyên trang trong một quy trình end-to-end có thể tái lập.
Chúng ta cài đặt các thư viện cần thiết và chuẩn bị môi trường Google Colab cho việc suy luận Unlimited-OCR. Chúng ta xác minh rằng GPU hỗ trợ CUDA đã sẵn sàng và tự động chọn bfloat16 hoặc float16 dựa trên khả năng hỗ trợ của phần cứng. Sau đó, chúng ta tải tokenizer và mô hình 3 tỷ tham số từ Hugging Face, chuyển chúng sang chế độ đánh giá (evaluation mode) và đưa vào GPU.
Chúng ta tạo các thư mục đầu vào và đầu ra cần thiết, đồng thời tạo ba trang tài liệu mẫu thực tế bằng PIL. Chúng ta thêm tiêu đề, đoạn văn, bảng biểu và chú thích để kiểm tra mô hình trên các nội dung có cấu trúc và bố cục phong phú. Chúng ta cũng xem trước trang đầu tiên được tạo bằng Matplotlib trước khi gửi nó vào quy trình OCR.
Chúng ta chạy OCR đơn ảnh bằng chế độ Gundam, chế độ này kết hợp cái nhìn tổng thể về tài liệu với các phần ảnh được cắt nhỏ (tiled image crops). Chúng ta kích hoạt crop_mode và sử dụng kích thước ô nhỏ hơn để bảo toàn văn bản chi tiết và cải thiện khả năng nhận dạng trên các bố cục tài liệu dày đặc. Chúng ta cũng cấu hình việc tạo đầu ra dài và kiểm soát lặp lại để đảm bảo mô hình tạo ra kết quả ổn định, có cấu trúc.
Chúng ta xử lý cùng một tài liệu bằng chế độ Base với một khung hình ảnh 1024 pixel duy nhất. Chúng ta tắt tính năng cắt ảnh để giảm độ phức tạp khi suy luận và cải thiện tốc độ xử lý cho các trang tài liệu sạch, in ấn rõ ràng. Chúng ta giữ nguyên các thiết lập về độ dài đầu ra và kiểm soát lặp lại để so sánh trực tiếp chế độ Base với chế độ Gundam.
Chúng ta tạo một tệp PDF ba trang từ các hình ảnh tài liệu đã tạo và rasterize (chuyển đổi sang dạng điểm ảnh) từng trang của PDF thành tệp PNG độ phân giải cao bằng PyMuPDF. Chúng ta chuyển chuỗi hình ảnh trang thu được vào infer_multi để mô hình có thể phân tích toàn bộ tài liệu trong một thao tác suy luận dài hạn duy nhất. Chúng ta cũng mở rộng cửa sổ lặp lại n-gram để duy trì khả năng giải mã ổn định trên nhiều trang.
Chúng ta kiểm tra các thư mục đầu ra được tạo bởi các lần chạy suy luận đơn trang và đa trang. Chúng ta liệt kê mọi tệp được tạo và hiển thị bản xem trước của các tệp văn bản, Markdown, MMD và JSON được hỗ trợ. Chúng ta kết thúc quy trình với một tài liệu tham khảo ngắn gọn tóm tắt các chế độ suy luận được khuyến nghị cho hình ảnh dày đặc, trang sạch và PDF nhiều trang.
Tóm lại, chúng ta đã hoàn thành một quy trình OCR thực tế có khả năng xử lý cả tài liệu đơn trang có độ chi tiết cao và PDF nhiều trang dài trong Google Colab. Chúng ta đã so sánh các chế độ suy luận Gundam và Base, rasterize PDF thành các hình ảnh trang sẵn sàng cho mô hình, chạy phân tích tài liệu dài hạn và kiểm tra văn bản, Markdown cùng các tệp bổ trợ được tạo trực tiếp từ các thư mục đầu ra. Chúng ta cũng đã cấu hình quy trình để thích ứng với các khả năng GPU khác nhau trong khi vẫn giữ lại các tham số tạo văn bản cần thiết cho việc giải mã tài liệu dài một cách ổn định. Quy trình này cung cấp cho chúng ta một nền tảng có thể tái sử dụng để áp dụng Unlimited-OCR cho các báo cáo, biểu mẫu quét, tài liệu kỹ thuật, bảng biểu và các nội dung có bố cục phong phú khác mà không cần dựa vào một hệ thống OCR và phân tích bố cục truyền thống riêng biệt.
Xem mã nguồn đầy đủ tại đây. Ngoài ra, hãy theo dõi chúng tôi trên Twitter và đừng quên tham gia SubReddit ML 150k+ thành viên của chúng tôi và đăng ký nhận bản tin. Khoan đã! Bạn có dùng Telegram không? Bây giờ bạn cũng có thể tham gia cùng chúng tôi trên Telegram.
Cần hợp tác với chúng tôi để quảng bá GitHub Repo, trang Hugging Face, bản phát hành sản phẩm hoặc hội thảo trực tuyến của bạn? Hãy kết nối với chúng tôi.
Sana Hassan, thực tập sinh tư vấn tại Marktechpost và là sinh viên bằng kép tại IIT Madras, rất đam mê việc ứng dụng công nghệ và AI để giải quyết các thách thức trong thế giới thực. Với sự quan tâm sâu sắc đến việc giải quyết các vấn đề thực tiễn, anh mang đến một góc nhìn mới mẻ cho sự giao thoa giữa AI và các giải pháp đời sống.
Bài viết được AI dịch và tổng hợp tự động từ MarkTechPost. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.