‏OCR خارجي في مهام JSON وABI بلغة C

عملية ocr.layer تقبل builtin-ascii وtesseract-cli وtesseract-dll وrapidocr-cli وrapidocr-dll; وإغفال engine يحفظ الافتراضي المدمج ASCII

اكتشاف القدرات يسرد هذه المحولات المدعومة، دون ادعاء تثبيت برامج أو مكتبات أو بيانات لغات أو نماذج ONNX خارجية على جهاز التنفيذ

مثال Tesseract

{"schemaVersion":1,"type":"ocr.layer","pages":[0],"dpi":300,
 "minimumConfidence":0.7,"skipPagesWithText":true,"replaceExisting":false,
 "engine":"tesseract-cli",
 "engineOptions":{"executablePath":"C:/OCR/tesseract.exe",
   "tessDataDirectory":"C:/OCR/tessdata","language":"eng",
   "pageSegMode":6,"engineMode":3,"timeoutMilliseconds":30000,
   "maxPixels":16777216}}

ضع هذا الكائن في مصفوفة operations لمهمة ملف وأضف مسارَي input وoutput، أو مرّره مباشرةً إلى hpdf_document_execute_json_v1 مع مقبض محمَّل وcallbacks ثنائية/نتيجة

المحرك‏engineOptions الإلزامية‏engineOptions الاختيارية
builtin-asciiلا شيءengineOptions يجب أن تكون غائبة أو كائنًا فارغًا
tesseract-cliexecutablePath, tessDataDirectorylanguage, pageSegMode, engineMode, timeoutMilliseconds, maxPixels
tesseract-dlllibraryPath, tessDataDirectorylanguage, pageSegMode, engineMode, timeoutMilliseconds, maxPixels
rapidocr-clipythonExecutable, bridgeScript, modelDirectorydetectionModel, recognitionModel, classificationModel, characterDictionary, fontPath, useAngleClassifier, intraOpThreads, interOpThreads, timeoutMilliseconds, maxPixels
rapidocr-dlllibraryPath, modelDirectorylanguage, detectionModel, recognitionModel, classificationModel, characterDictionary, useAngleClassifier, rightToLeft, threads, timeoutMilliseconds, maxPixels

الخيارات والموارد المحلية

المحركات الخارجية تتطلب engineOptions ذات قيمة كائن صريحة؛ والمفاتيح المجهولة وأنواع JSON الخاطئة والمسارات أو سلاسل اللغات المحتوية NUL والقيم الإلزامية الفارغة تُرفض

‏Tesseract تقصّر افتراضيًا إلى language=eng وpageSegMode=3 وengineMode=3; وأوضاع التجزئة 0 و2 لا تتعرف نصًا وتُرفضان، بينما بقية الأوضاع حتى 13 مقبولة

engineMode تقبل من 0 إلى 3؛ وملفات البيانات المدرَّبة يجب أن تدعم الوضع المنتقى، وتعبيرات لغات Tesseract متعددة اللغات مثل eng+fra تتطلب النماذج المحلية المقابلة

‏RapidOCR CLI تستخدم أسماء نماذج THPDFRapidOCROptions.Default الأصلية وتقصّر افتراضيًا كلا حدي الخيوط إلى 1؛ وهي تقبل مسارات قاموس وخط مقدَّمة صراحةً، والجسر المهيأ يجب أن ينفّذ عقد TSV المحلية

‏RapidOCR DLL تبدأ بـ THPDFRapidOCRDLLOptions.ForLanguage(language) وافتراضيها ch; وملفات اللغة تنتقي نموذج التعرف والقاموس واتجاه القراءة، ويمكن للخيارات الصريحة تجاوز تلك الانتقائيات

أسماء ملفات النماذج تُحل تحت modelDirectory وفق المحولات الأصلية؛ وطول كلمة المكتبة يجب أن يطابق عملية المضيف، بينما يعمل محرك CLI عملية محلية منفصلة

زوّد وانتقِ هذه الموارد صراحةً؛ والعملية لا تثبّت محركات ولا تنزّل نماذج ولا تبحث عن ملفات تنفيذية اعتباطية ولا تستخدم خدمة OCR بعيدة

الميزانيات والإلغاء

timeoutMilliseconds تقصّر افتراضيًا إلى 60,000 وتقبل أعدادًا صحيحة من 1 إلى 3,600,000؛ ومهلة المحول الفعالة مقصوصة بـ budget.timeMilliseconds

maxPixels تقصّر افتراضيًا إلى 16,777,216 وتقبل أعدادًا صحيحة من 1 إلى 67,108,864; وسقفها الفعلي هو الأصغر بين القيمة المطلوبة وbudget.pixels وbudget.memoryBytes / 16

سقف بكسلات المحرك الفعلي يحدّ سقفًا أيضًا لتصيير صفحة OCR قبل التعرف؛ وميزانيات الكلمات والمحتوى والنص UTF-16 مقصوصة بإذن ذاكرة العملية

هذه الحدود تحدد سقوف المخازن المهيأة وموارد العملية؛ وتخصيص نماذج DLL الخارجية لا يشكّل حصة RSS صارمة للعملية

الاستدعاءات الأصلية تستعير Document.OperationCancellationToken للتصيير والتعرف؛ وإلغاء callback بلغة C يُستقصى عند نقاط فحص تعاونية للعملية والإدخال والمخرجات، ويمكن للمحرك الخارجي الجاري مواصلة العمل حتى مهلته أو نقطة فحص callback التالية

فشل CLI محليًا ومخرج TSV غير صالح أو ناقص ومهل المحولات ترفض العملية؛ وحدود الوقت والبكسل للعملية المهيأة تحفظ فئة فشل الميزانية المهيكلة

المخرج وسلوك المعاملة

النتيجة تبلّغ engine وrecognizedPages وskippedPages وacceptedWords وdroppedWords; وحقل engine يحتوي الاسم الوصفي للمحول الأصلي

minimumConfidence يجب أن يكون عددًا من 0 إلى 1، وskipPagesWithText وreplaceExisting يجب أن تكونا قيمتَي JSON منطقيتين

كلمات Unicode المقبولة تصير نصًا خفيًا بخرائط ToUnicode وهندسة الصفحة المصدر؛ وصورة المسح تبقى في المخرج، وملف المصدر يبقى دون تغيير ما لم ينشر المستدعي بقصد إلى مسار الملف نفسه

مهام الملفات تحفظ وجهة قائمة عند الفشل وتنشر عبر ملف staging بنفس المجلد؛ وتحويلات ABI بلغة C تُرسَل بعد نجاح تسليم بايتات PDF ونتيجة JSON معًا، مع تراجع فشل وإهلاك المستدعي للبايتات المسلَّمة سابقًا

القبول

Tests/Delphi/Run-JobOCRTests.ps1 تشغّل أربعة ملفات إرسال محولات وتهيئة مشوهة وميزانيات بكسل ووقت منقضٍ ورفض كلمات جزئية وفشل عملية ومهلة وحفظ وجهة/مصدر على Win32 وWin64

تزويد مسارات Tesseract تنفيذية ونماذج فعلية يمارس التعرف الحي؛ وقراء pypdf وMuPDF مستقلان يتحققان من نص Unicode قابلًا للبحث وبكسلات مسح مرئية دون تغيير، بينما فحص DLL بـ ABI لـ Win64 الاختياري الحقيقي يتحقق من callbacks جزئية وتراجع عملية فاشلة

انظر عمليات المستندات ومحولات Tesseract ونماذج RapidOCR المحلية ومكتبات RapidOCR الأصلية وطبقات نص OCR قابلة للبحث