كيف يعمل التعرف

كيف يعمل التعرف

كيف يعمل التعرف

تستعرض هذه الصفحة ما يفعله AsposeOcr.Recognize() فعليًا داخليًا، من التحقق من صحة الإدخال إلى RecognitionResult النهائي. استدعاء AsposeOcr.Recognize(OcrInput) يشغِّل خط أنابيب ثابت من ثمان خطوات. كل خطوة أدناه مستندة إلى تنفيذ المكتبة نفسه — لا توجد مراحل قابلة للتكوين.


1. التحقق من صحة الإدخال

قبل تحميل أي نموذج، يتحقق Recognize() من OcrInput: يرفض إدخال null (ArgumentNullException)، وInputType غير المدعوم (NotSupportedException)، وأي مسار مُصفَّف غير موجود على القرص (FileNotFoundException). لا يتم إنشاء جلسة ONNX حتى يجتاز جميع الإدخالات.

2. تصيير PDF أو تحميل الرسومات النقطية

لـ InputType.PDF، يتم تحويل كل صفحة إلى صورة RGB 24-بت عند 150 DPI using Aspose.PDF.FOSS. بالنسبة لـ InputType.SingleImage، يتم تحميل ملف الراستر مباشرةً. دقة العرض 150 DPI ثابتة ولا يمكن تعديلها.

3. المعالجة الأولية للكاشف

يتم تحويل الصورة إلى تدرجات الرمادي باستخدام أوزان لومي Rec. 709، التي تحافظ على السطوع المُدرك بدقة أكبر مقارنةً بمتوسط القنوات البسيط. إذا كان الجانب الأطول للصورة يتجاوز 1000 بكسل، يتم تصغيرها باستخدام مرشح قابل للفصل Lanczos-8 تصفية (مروران أحادي الأبعاد) لتطابق معالجة ما قبل التدريب لنموذج الكاشف. يتم إضافة شريط أبيض بعرض 32 بكسل إلى أسفل الصورة لنفس السبب.

4. كشف المنطقة

يتم تمرير الصورة المعالجة مسبقًا عبر نموذج ONNX المدمج الأول، الذي ينتج خرائط احتمالية النص وميزات بصرية وسيطة. نموذج ONNX الثاني — نموذج التحسين — يعزز الروابط بين الأحرف المتجاورة بحيث يتم اكتشاف سطر نص كامل كمنطقة واحدة بدلاً من عدة شظايا. كلا النموذجين يعملان على وحدة المعالجة المركزية مع Microsoft.ML.OnnxRuntime مُكوَّنًا لاستخدام 8 خيوط عمل داخل العملية.

5. ما بعد معالجة المنطقة

يتم تطبيق عتبة على خرائط احتمالية النص والروابط الخاصة بالكاشف، ثم تجميعها باستخدام four-connected breadth-first flood fill. يتم توسيع كل منطقة ناتجة، وتلبيتها بمستطيل ذي أصغر مساحة، وإعادتها إلى إحداثيات الصورة الأصلية، وتقليصها إلى مستطيلات خطية غير متداخلة ومتراصة مع المحور. هذه المستطيلات هي ما يُرجعه RecognitionResult.LinesResult.Line في النهاية.

6. التعرف على السطر

يتم إضافة حشوة بمقدار بكسلين إلى كل مستطيل مكتشف، ثم قصه من الصورة الأصلية، وإعادة تحجيمه — مع الحفاظ على نسبة أبعاده — على 1200×32 قماش أبيض. يتم تحويل النتيجة إلى موتر رمادي بصيغة NHWC وتُمرّر إلى نموذج التعرف.

7. فك ترميز CTC

يتم فك تشفير المخرجات الأولية لنموذج التعرف باستخدام طريقة الجشع CTC (التصنيف الزمني المتصل) الفك: تُدمج الفئات المتكررة المتوقعة، تُزال الفئة الفارغة، وتُطبع الفئات المتبقية عبر الأبجدية اللاتينية المدمجة في النموذج لإنتاج النص المعترف به للسطر.

8. تجميع النتيجة

يتم إقران الخطوط المعترف بها مع مستطيلات الصورة المصدرية لبناء كل RecognitionResult.LinesResult. تُدمج جميع الخطوط غير الفارغة باستخدام فواصل أسطر المنصة لإنتاج RecognitionResult.RecognitionText.


العمل المتسلسل مقابل المتوازي

يتم معالجة ملفات الإدخال، ولملفات PDF، الصفحات الفردية. sequentially — لا يوجد تعدد خيوط على مستوى الإدخال API. التوازي موجود فقط داخل كل استدعاء استدلال ONNX، حيث Microsoft.ML.OnnxRuntime يقوم بتوازي تنفيذ الرسم البياني عبر 8 خيوط داخلية مكوَّنة.

انظر أيضاً

 العربية