PaddleOCR: حلول OCR صناعية لاستخراج النصوص متعددة اللغات
اكتشف وتعرف على النصوص من الصور والمستندات بدقة وسرعة عالية.
ما هي واجهة برمجة تطبيقات PaddleOCR؟
واجهة برمجة تطبيقات PaddleOCR بلغة Python هي مجموعة أدوات قوية وسهلة الاستخدام لمهام التعرف الضوئي على الحروف (OCR)، مصممة لمساعدة المطورين على استخراج النصوص من الصور وتحليلها بدقة عالية. مبنية على إطار التعلم العميق PaddlePaddle، تدعم PaddleOCR مجموعة واسعة من اللغات وتتميز بنماذج مدربة مسبقًا للكشف عن النصوص والتعرف عليها وتحليل تخطيطها. بفضل واجهة Python البديهية، يمكن للمستخدمين دمج قدرات OCR في تطبيقاتهم بسرعة، سواءً لرقمنة المستندات أو استخراج النصوص من الصور أو معالجة البيانات الآلية. تعد واجهة برمجة تطبيقات PaddleOCR Python مثالية لأي شخص يبحث عن تنفيذ حلول OCR قوية بإعدادات بسيطة ومرونة قصوى.
المزايا الرئيسية لـ PaddleOCR تشمل:
- دعم متعدد اللغات: نماذج مدربة مسبقًا لأكثر من 100 لغة (بما في ذلك الصينية والإنجليزية والعربية وغيرها).
- دقة عالية: نماذج سلسلة PP-OCR تحقق أعلى المعايير في مجموعات بيانات ICDAR.
- خطوات متكاملة: من اكتشاف النصوص إلى التعرف عليها وتحليل تخطيطها.
- نماذج خفيفة الوزن: مُحسنة للأجهزة المحمولة والطرفية (مثل PP-OCRv3).
من المستندات الممسوحة ضوئيًا إلى لافتات الشوارع، تستخرج PaddleOCR النصوص بدقة رائدة في الصناعة.
لماذا تختار PaddleOCR؟
- تميز مفتوح المصدر: أكثر من 30,000 نجمة على GitHub ومساهمات مجتمعية نشطة.
- نشر متعدد الاستخدامات: يدعم Python و C++ ومنصات الهواتف (Android/iOS).
- تحليل التخطيط: يحدد مناطق النصوص والجداول والأشكال في المستندات المعقدة.
- تحديثات مستمرة: إصدارات منتظمة للنماذج (مثل PP-OCRv4).
- ملائم للاستخدام التجاري: ترخيص Apache 2.0 للاستخدام المؤسسي.
التثبيت
يتطلب PaddleOCR Python 3.7+ ويمكن تثبيته عبر pip. دعم GPU يتطلب CUDA/cuDNN.
التثبيت الأساسي
pip install paddleocr paddlepaddle #إصدار CPU
لتسريع GPU:
دعم GPU
pip install paddleocr paddlepaddle-gpu #يتطلب CUDA 10.2+
ملاحظة: يتم تنزيل النماذج المدربة مسبقًا تلقائيًا عند الاستخدام الأول أو يدويًا عبر paddleocr --lang en
.
أمثلة على الكود
استكشف قدرات PaddleOCR مع هذه الأمثلة. تفترض جميع الأمثلة أنك قمت بتثبيت نموذج اللغة الإنجليزية.
المثال 1: OCR أساسي
لاستخراج النصوص من صورة باستخدام PaddleOCR مع النماذج الافتراضية، تحتاج فقط إلى تهيئة محرك OCR بالإعدادات القياسية، والتي تتضمن دعمًا للغة الإنجليزية وتصنيف الزوايا لتحسين الدقة. يستخدم PaddleOCR نماذج مدربة مسبقًا للكشف والتعرف والتصنيف لتحديد النصوص في الصورة وتفسيرها. بمجرد معالجة الصورة، يُرجع محرك OCR النصوص المكتشفة مع موقعها ودرجة الثقة لكل نتيجة. يوفر هذا الإعداد طريقة سريعة وفعالة لاستخراج المحتوى النصي من الصور دون الحاجة إلى تدريب نماذج مخصصة أو إعدادات معقدة.
OCR للصور
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='en') # التهيئة
result = ocr.ocr('image.jpg', cls=True) # معالجة الصورة
# طباعة النصوص المعترف بها
for line in result:
print(line[-1][0]) # المحتوى النصي
يتضمن المخرجات:
- المحتوى النصي ودرجات الثقة
- إحداثيات مربع تحديد النص
المثال 2: معالجة الدُفعات
لمعالجة عدة صور بكفاءة باستخدام PaddleOCR، يمكنك الاستفادة من تقنيات معالجة الدُفعات التي تقلل من التهيئات الزائدة وتحسن الأداء. بدلاً من تهيئة محرك OCR لكل صورة، يُنصح بإنشاء نسخة واحدة من نموذج OCR وإعادة استخدامها لجميع الصور. يقلل هذا الأسلوب بشكل كبير من وقت المعالجة واستهلاك الموارد. عن طريق تمرير قائمة بمسارات الصور إلى محرك OCR في حلقة أو باستخدام المعالجة المتوازية (عند الاقتضاء)، يمكنك استخراج النصوص من مجموعات كبيرة من الصور بسرعة وفعالية، مما يجعلها مثالية لسير العمل الذي يتضمن دفعات من المستندات أو الأرشيف الممسوح ضوئيًا أو تحليل الصور المجمعة.
OCR للدفعات
image_paths = ['doc1.jpg', 'doc2.png']
results = ocr.ocr(image_paths, batch_size=4) # معالجة متوازية
المثال 3: تحليل التخطيط
يمكن استخدام PaddleOCR ليس فقط للتعرف على النصوص ولكن أيضًا لتحديد مناطق نصية محددة واكتشاف العناصر المنظمة مثل الجداول داخل الصورة. يحدد النظام أولاً مناطق النصوص عبر نموذج الكشف، الذي يحدد كل منطقة نصية بمربعات تحديد، مما يسمح للمستخدمين بفهم مكان النص داخل الصورة. بالنسبة للتخطيطات الأكثر تعقيدًا، مثل النماذج أو المستندات التي تحتوي على جداول، يدعم PaddleOCR تحليل التخطيط والتعرف على هيكل الجدول.这使得可以以有組織的格式提取表格數據。這種能力對於數字化掃描文檔、發票或電子表格特別有用,其中自由格式文本和表格數據共存。
كشف التخطيط
from paddleocr import PPStructure
structure_engine = PPStructure(table=False, ocr=False)
layout_result = structure_engine('document.pdf')
ميزات متقدمة
يدعم PaddleOCR سير عمل معقدة:
- تدريب مخصص: ضبط النماذج على بياناتك:
تدريب النموذج
python tools/train.py -c configs/det/det_mv3_db.yml
- مزج اللغات: معالجة مستندات متعددة اللغات:
OCR متعدد اللغات
ocr = PaddleOCR(lang='chinese+english')
- دعم PDF: استخراج النصوص مباشرة من ملفات PDF:
معالجة PDF
result = ocr.ocr('document.pdf', type='pdf')
الختام
يقدم PaddleOCR حلول OCR جاهزة للإنتاج بدعم غير مسبوق للغات وقابلية للتوسع. مثالي لـ:
- رقمنة المستندات: ملفات PDF ممسوحة ضوئيًا، فواتير، إيصالات
- تطبيقات متعددة اللغات: التعرف على جوازات السفر، الكتب متعددة اللغات
- النشر على الأجهزة الطرفية: تطبيقات الهواتف مع OCR على الجهاز
بدعم من نظام PaddlePaddle للتعلم العميق، يواصل PaddleOCR وضع المعايير في دقة OCR وكفاءته.