Quy trình OCR end-to-end với Keras và TensorFlow
Sử dụng Keras-OCR để nhận dạng văn bản đơn giản nhưng mạnh mẽ trong Python.
Keras-OCR API là gì?
Keras-OCR là một thư viện Python mã nguồn mở cấp cao được thiết kế để đơn giản hóa các tác vụ nhận dạng ký tự quang học (OCR) bằng sức mạnh của Keras và TensorFlow. Không giống như các hệ thống OCR truyền thống yêu cầu cấu hình phức tạp, Keras-OCR cung cấp một quy trình end-to-end với các mô hình đã được huấn luyện sẵn cho cả phát hiện văn bản (sử dụng thuật toán CRAFT) và nhận dạng văn bản (thông qua mô hình CRNN). Sự kết hợp này cho phép các nhà phát triển trích xuất văn bản từ hình ảnh, tài liệu scan hoặc thậm chí ghi chú viết tay chỉ với vài dòng mã.
Thư viện được tối ưu hóa cho các trường hợp sử dụng thực tế bao gồm:
- Số hóa tài liệu: Chuyển đổi tài liệu giấy hoặc PDF thành văn bản có thể tìm kiếm.
- Nhập liệu tự động: Trích xuất văn bản từ hóa đơn, biên lai hoặc biểu mẫu.
- Công cụ hỗ trợ: Tạo văn bản thay thế cho hình ảnh trong ứng dụng web.
- Phân tích mạng xã hội: Xử lý văn bản trong meme hoặc nội dung do người dùng tạo.
Với hỗ trợ xử lý hàng loạt và tăng tốc GPU tùy chọn, Keras-OCR cân bằng giữa dễ sử dụng và hiệu suất, làm cho nó lý tưởng cho cả nguyên mẫu và triển khai sản xuất.
Tính năng chính của Keras-OCR
- Mô hình đã huấn luyện: Bao gồm CRAFT (bộ phát hiện) và CRNN (bộ nhận dạng) để sử dụng ngay.
- Cài đặt dễ dàng: Phụ thuộc tối thiểu (Keras, TensorFlow, OpenCV).
- Xử lý hàng loạt: Xử lý nhiều hình ảnh song song để tăng hiệu quả.
- Tùy chỉnh huấn luyện: Tinh chỉnh mô hình trên tập dữ liệu riêng.
- Không yêu cầu GPU: Chạy trên CPU nhưng tăng tốc với GPU.
- Xuất tọa độ: Trả về văn bản với tọa độ để phân tích không gian.
- Mã nguồn mở: Miễn phí, cộng đồng hỗ trợ và giấy phép MIT.
Cài đặt
Cài đặt Keras-OCR qua pip (yêu cầu Python 3.6+):
Cài đặt Keras-OCR
pip install keras-ocr
Để hỗ trợ GPU, đảm bảo cài đặt TensorFlow với GPU:
Cài đặt TensorFlow GPU
pip install tensorflow-gpu
Ví dụ mã
Dưới đây là các ví dụ thực tế để trích xuất văn bản từ hình ảnh bằng Keras-OCR.
Ví dụ 1: Phát hiện và nhận dạng văn bản cơ bản
Ví dụ này cho thấy cách sử dụng pipeline đã huấn luyện sẵn:
Pipeline OCR cơ bản
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
images = ["receipt.jpg"]
predictions = pipeline.recognize(images)
print(predictions)
Ví dụ 2: Xử lý hàng loạt
Xử lý nhiều hình ảnh cùng lúc để tăng hiệu quả:
Xử lý hàng loạt
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
images = ["image1.jpg", "image2.jpg", "image3.jpg"]
batch_predictions = pipeline.recognize(images)
for prediction in batch_predictions:
print(prediction)
Ví dụ 3: Hiển thị khung văn bản
Vẽ các khung văn bản đã phát hiện lên hình ảnh gốc:
Hiển thị kết quả
import matplotlib.pyplot as plt
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
image = keras_ocr.tools.read("document.jpg")
predictions = pipeline.recognize([image])
keras_ocr.tools.drawAnnotations(image, predictions[0])
plt.imshow(image)
plt.show()
Kết luận
Keras-OCR đơn giản hóa việc trích xuất văn bản với pipeline sẵn sàng sử dụng, làm cho nó trở thành lựa chọn tuyệt vời cho các nhà phát triển cần OCR nhanh chóng, chính xác mà không cần cấu hình phức tạp. Khả năng tích hợp với Keras và TensorFlow cho phép tùy chỉnh, trong khi xử lý hàng loạt đảm bảo khả năng mở rộng.
Dù bạn đang xây dựng trình quét tài liệu, tự động hóa nhập liệu hay phân tích nội dung mạng xã hội, Keras-OCR cung cấp một giải pháp nhẹ nhàng nhưng mạnh mẽ.