Show HN: LLM-Aided OCR – Sửa lỗi Tesseract OCR bằng LLM
(github.com/Dicklesworthstone)- Được thiết kế để cải thiện đáng kể chất lượng đầu ra của nhận dạng ký tự quang học (OCR)
- Tận dụng các kỹ thuật xử lý ngôn ngữ tự nhiên hiện đại và mô hình ngôn ngữ lớn (LLM) để chuyển đổi văn bản OCR thô thành các tài liệu có độ chính xác cao, được định dạng tốt và dễ đọc
Tính năng
- Chuyển đổi PDF thành hình ảnh
- OCR bằng Tesseract
- Sửa lỗi nâng cao bằng LLM (cục bộ hoặc dựa trên API)
- Chia nhỏ văn bản thông minh để xử lý hiệu quả
- Tùy chọn định dạng Markdown
- Loại bỏ header và số trang (tùy chọn)
- Đánh giá chất lượng đầu ra cuối cùng
- Hỗ trợ LLM cục bộ và các nhà cung cấp API trên đám mây (OpenAI, Anthropic)
- Xử lý bất đồng bộ để cải thiện hiệu năng
- Ghi log chi tiết để theo dõi quy trình và gỡ lỗi
- Tăng tốc GPU cho suy luận LLM cục bộ
Yêu cầu
- Python 3.12+
- Công cụ Tesseract OCR
- Thư viện PDF2Image
- PyTesseract
- OpenAI API (tùy chọn)
- Anthropic API (tùy chọn)
- Hỗ trợ LLM cục bộ (tùy chọn, yêu cầu mô hình GGUF tương thích)
Cách sử dụng
- Đặt tệp PDF vào thư mục dự án
- Cập nhật biến
input_pdf_file_pathtrong hàmmain()thành tên tệp PDF - Chạy script:
python llm_aided_ocr.py - Script sẽ tạo nhiều tệp đầu ra, bao gồm văn bản hậu xử lý cuối cùng
Cách hoạt động
Dự án LLM-Aided OCR sử dụng quy trình nhiều bước để chuyển đầu ra OCR thô thành văn bản chất lượng cao, dễ đọc:
- Chuyển đổi PDF: dùng
pdf2imageđể chuyển PDF đầu vào thành hình ảnh - OCR: áp dụng Tesseract OCR để trích xuất văn bản từ hình ảnh
- Chia khối văn bản: tách đầu ra OCR thô thành các khối có thể quản lý
- Sửa lỗi: mỗi khối được xử lý bằng LLM để sửa lỗi OCR và cải thiện khả năng đọc
- Định dạng Markdown (tùy chọn): định dạng lại văn bản đã sửa thành Markdown sạch và nhất quán
- Đánh giá chất lượng: so sánh chất lượng đầu ra cuối cùng với văn bản OCR gốc bằng đánh giá dựa trên LLM
Tổng hợp của GN⁺
- Dự án LLM-Aided OCR là một hệ thống tận dụng các kỹ thuật xử lý ngôn ngữ tự nhiên hiện đại và mô hình ngôn ngữ lớn để cải thiện đáng kể chất lượng đầu ra OCR
- Hệ thống chuyển PDF thành hình ảnh, trích xuất văn bản bằng Tesseract, sau đó dùng LLM để sửa lỗi và tái cấu trúc dưới dạng Markdown
- Hỗ trợ cả LLM cục bộ lẫn LLM dựa trên đám mây, đồng thời tối ưu hiệu năng bằng xử lý bất đồng bộ
- Dự án cung cấp nhiều tính năng nâng cao để tăng độ chính xác và khả năng đọc của đầu ra OCR, đặc biệt hữu ích khi xử lý tài liệu lớn
- Các dự án có chức năng tương tự gồm ABBYY FineReader, Adobe Acrobat OCR, v.v.
1 bình luận
Ý kiến trên Hacker News
Việc ra mắt mô hình schnell mới có thể mở ra khả năng có được bộ dữ liệu để tạo ra các mô hình thị giác SOTA
Trong các bài báo khoa học, mô hình nougat của Meta là phù hợp nhất
Kết quả từng thử trước đây cho thấy nó hoạt động tốt trong 90% trường hợp
Nếu chuyển các trang PDF sang PNG rồi yêu cầu gpt4 phiên âm hình ảnh thì độ chính xác rất cao
Đã từng thử dùng Tesseract để nhận dạng OCR tiếng Trung cách đây 10 năm
Đã có kết quả tốt hơn khi dùng PaddlePaddle
Có người hỏi liệu đã thử các gói OCR khác chưa
Việc tinh chỉnh prompt để mô hình hiểu rõ hơn là rất quan trọng
Đang làm một công việc tương tự là phân tích rubric và bài nộp của sinh viên
Có người hỏi về cách tiếp cận dùng prompt "fix this text" để sửa lỗi OCR