Làm thế nào để trích xuất văn bản từ hình ảnh bằng Python
By hientd, at: 20:17 Ngày 05 tháng 4 năm 2024
Thời gian đọc ước tính: __READING_TIME__ minutes


Trích xuất văn bản từ hình ảnh - một quy trình được gọi là Nhận dạng Ký tự Quang học (OCR) - có vô số ứng dụng, từ số hóa tài liệu in đến xử lý biển báo đường phố theo thời gian thực.
Python, với hệ sinh thái phong phú các thư viện và API, cung cấp nhiều giải pháp cho các tác vụ OCR. Bài viết này khám phá bốn thư viện Python phổ biến và bốn API đám mây để trích xuất văn bản từ hình ảnh.
Thư viện Python cho OCR
1. pytesseract
- Mô tả: Một trình bao bọc cho Công cụ Tesseract-OCR của Google.
- Đoạn mã: bạn cần chạy cài đặt trước
pip install pytesseract
from PIL import Image
import pytesseract
text = pytesseract.image_to_string(Image.open('image.jpg'))
print(text) - Ưu điểm: Miễn phí và mã nguồn mở, hỗ trợ nhiều ngôn ngữ.
- Nhược điểm: Có thể gặp khó khăn với các hình ảnh chứa bố cục phức tạp.
2. easyOCR
- Mô tả: Một thư viện mới hơn hỗ trợ hơn 40 ngôn ngữ và được thiết kế để đơn giản.
- Đoạn mã: cài đặt qua
pip install easyocr
import easyocr
reader = easyocr.Reader(['en'])
results = reader.readtext('image.jpg')
print(results)
- Ưu điểm: Dễ sử dụng, hiệu suất tốt trên nhiều loại hình ảnh.
- Nhược điểm: Kích thước lớn do các mô hình học sâu của nó.
3. OCRopus
- Mô tả: Một bộ công cụ OCR được viết bằng Python, tập trung vào nhận dạng tài liệu lịch sử.
- Đoạn mã:
# Mã giả vì OCRopus sử dụng dòng lệnh
ocropus-rpred 'image.jpg'
- Ưu điểm: Tốt cho tài liệu lịch sử, mã nguồn mở.
- Nhược điểm: Kém hiệu quả hơn đối với bố cục văn bản hiện đại, dựa trên dòng lệnh.
API Đám mây cho OCR
1. Microsoft OCR
- Mô tả: Một phần của Azure AI được thiết kế để hiểu, xử lý và trích xuất thông tin từ các tài liệu.
- SDK: https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/quickstarts/get-started-sdks-rest-api?view=doc-intel-4.0.0&preserve-view=true&pivots=programming-language-python
- Ưu điểm: Tích hợp sâu với các dịch vụ Microsoft khác.
- Nhược điểm: Có thể phức tạp để thiết lập cho người mới bắt đầu.
2. Amazon Textract
- Mô tả: Trích xuất văn bản và dữ liệu từ các tài liệu được quét bằng học máy.
- SDK: https://docs.aws.amazon.com/code-library/latest/ug/python_3_textract_code_examples.html
- Ưu điểm: Có thể xử lý một lượng lớn tài liệu, hỗ trợ biểu mẫu và bảng.
- Nhược điểm: Chi phí sử dụng có thể tăng lên đối với các ứng dụng quy mô lớn.
3. Google Cloud Vision API
- Mô tả: Cung cấp các khả năng phân tích hình ảnh mạnh mẽ bao gồm phát hiện văn bản.
- SDK: https://cloud.google.com/python/docs/reference/vision/latest
- Ưu điểm: Độ chính xác cao, dễ dàng tích hợp với các dịch vụ Google khác.
- Nhược điểm: Giá có thể là mối quan tâm đối với người dùng khối lượng cao.
Kết luận
Tóm lại, OCR Python cung cấp một loạt các công cụ và API đám mây linh hoạt, mỗi công cụ có điểm mạnh và điểm yếu riêng, phục vụ nhiều trường hợp sử dụng khác nhau, từ trích xuất văn bản đơn giản đến phân tích tài liệu phức tạp. Cho dù bạn đang làm việc với các bản thảo lịch sử hay tài liệu hiện đại, đều có một giải pháp PHÙ HỢP. Tuy nhiên, việc chọn công cụ hoặc API phù hợp phụ thuộc vào nhu cầu cụ thể của bạn, bao gồm độ chính xác, hỗ trợ ngôn ngữ, chi phí và mức độ dễ dàng tích hợp.
Vì ChatGPT có sẵn trong Azure Services, Microsoft Document Intelligence hoặc OCR có vẻ là tốt nhất hiện nay
Cập nhật mới nhất - 1/8/2025: Gần đây, chúng tôi đã có một bài đăng mới trên LinkedIn từ Andrew Ng, hãy xem nó.