Cách trích xuất văn bản từ ả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ó rất nhiều ứng dụng, từ số hóa tài liệu in ấn đến xử lý biển báo đường phố trong thời gian thực.
Python, với hệ sinh thái phong phú các thư viện và API, cung cấp một số giải pháp cho các nhiệm vụ OCR. Bài viết này sẽ 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 wrapper cho Google's Tesseract-OCR Engine.
- Đ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 có 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 hóa.
- Đ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 năng tốt trên nhiều loại hình ảnh.
- Nhược điểm: Kích thước lớn hơn do các mô hình học sâu của nó.
3. OCRopus
- Mô tả: Một bộ OCR được viết bằng Python, tập trung vào việc 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: Ít 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ừ 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 đối với 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ừ tài liệu được quét bằng máy học.
- 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 khả năng phân tích hình ảnh mạnh mẽ bao gồm cả 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ễ tích hợp với các dịch vụ Google khác.
- Nhược điểm: Giá cả có thể là mối quan tâm đối với người dùng có khối lượng lớn.
Kết luận
Tóm lại, Python OCR 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ó những điểm mạnh và điểm yếu riêng, đáp ứng 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 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à dễ dàng tích hợp.
Vì ChatGPT hiện có sẵn trong Dịch vụ Azure, nên Microsoft Document Intelligence hoặc OCR dường như là tốt nhất hiện nay