پایپلاین کامل OCR با Keras و TensorFlow
از Keras-OCR برای تشخیص متن ساده اما قدرتمند در پایتون استفاده کنید.
API Keras-OCR چیست؟
Keras-OCR یک کتابخانه پایتون سطح بالا و متنباز است که برای سادهسازی وظایف تشخیص نوری کاراکترها (OCR) با استفاده از قدرت Keras و TensorFlow طراحی شده است. برخلاف سیستمهای سنتی OCR که نیاز به پیکربندی گسترده دارند، Keras-OCR یک پایپلاین کامل با مدلهای از پیش آموزشدیده برای تشخیص متن (با استفاده از الگوریتم CRAFT) و تشخیص متن (از طریق مدل CRNN) ارائه میدهد. این ترکیب به توسعهدهندگان اجازه میدهد تا با چند خط کد، متن را از تصاویر، اسناد اسکن شده یا حتی یادداشتهای دستنویس استخراج کنند.
این کتابخانه برای موارد استفاده واقعی بهینه شده است، از جمله:
- دیجیتالیسازی اسناد: تبدیل اسناد کاغذی یا PDF به متن قابل جستجو
- ورود خودکار دادهها: استخراج متن از فاکتورها، رسیدها یا فرمها
- ابزارهای دسترسیپذیری: تولید متن جایگزین برای تصاویر در برنامههای وب
- تحلیل شبکههای اجتماعی: پردازش متن جاسازی شده در میمها یا محتوای تولید شده توسط کاربر
با پشتیبانی داخلی از پردازش دستهای و شتابدهی اختیاری GPU، Keras-OCR تعادل بین سهولت استفاده و عملکرد را برقرار میکند و آن را برای نمونهسازی اولیه و استقرار در محیط تولید ایدهآل میسازد.
ویژگیهای کلیدی Keras-OCR
- مدلهای از پیش آموزشدیده: شامل CRAFT (تشخیصدهنده) و CRNN (تشخیصگر) برای استفاده فوری
- راهاندازی آسان: وابستگیهای حداقلی (Keras, TensorFlow, OpenCV)
- پردازش دستهای: پردازش چندین تصویر به صورت موازی برای کارایی بیشتر
- آموزش سفارشی: تنظیم مدلها روی مجموعه دادههای خودتان
- نیاز به GPU ندارد: روی CPU اجرا میشود اما با GPU شتاب میگیرد
- خروجی محدوده متن: متن را با مختصات برای تحلیل فضایی برمیگرداند
- متنباز: رایگان، جامعهمحور و با مجوز MIT
نصب
Keras-OCR را با pip نصب کنید (نیاز به پایتون ۳.۶+ دارد):
نصب Keras-OCR
pip install keras-ocr
برای پشتیبانی GPU، مطمئن شوید TensorFlow با GPU نصب شده است:
نصب TensorFlow GPU
pip install tensorflow-gpu
نمونههای کد
در ادامه نمونههای عملی برای استخراج متن از تصاویر با استفاده از Keras-OCR آمده است.
نمونه ۱: تشخیص و شناسایی پایهای متن
این نمونه نشان میدهد چگونه از پایپلاین از پیش آموزشدیده برای استخراج متن از یک تصویر استفاده کنید:
پایپلاین پایهای OCR
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
images = ["receipt.jpg"]
predictions = pipeline.recognize(images)
print(predictions)
نمونه ۲: پردازش دستهای
چندین تصویر را همزمان برای کارایی بیشتر پردازش کنید:
پردازش دستهای
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)
نمونه ۳: نمایش محدودههای متن
محدودههای متن تشخیص داده شده را روی تصویر اصلی رسم کنید:
نمایش نتایج
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()
نتیجهگیری
Keras-OCR استخراج متن را با پایپلاین آماده به کار خود ساده میکند و آن را به انتخاب عالی برای توسعهدهندگانی تبدیل میکند که به OCR سریع و دقیق بدون پیکربندی پیچیده نیاز دارند. یکپارچهسازی آن با Keras و TensorFlow امکان سفارشیسازی را فراهم میکند، در حالی که پردازش دستهای مقیاسپذیری را تضمین میکند.
چه در حال ساخت اسکنرهای اسناد، خودکارسازی ورود دادهها یا تحلیل محتوای شبکههای اجتماعی باشید، Keras-OCR یک راهحل سبکوزن اما قدرتمند ارائه میدهد.