تقنية

الصندوق المحيط في الصورة: هل الإحداثيات نسب أم بكسلات؟

قيم نسبية تتحول إلى بداية وأبعاد بكسلية ثم إلى زاوية نهائية في مرجع محدد
مخطط حسابي من إعداد بحر العلوم؛ لا يعرض نتيجة كشف أو قراءة نص من خدمة.

الصندوق المحيط في الصورة يحدد منطقة، لكن قراءة أرقامه تحتاج إلى تعريف التمثيل. يوثق Amazon Textract موضعا من أعلى اليسار وأبعادا كنسب من أبعاد الصفحة. [1] نوضح هذا التمثيل بحساب افتراضي؛ لا نعممه على كل نموذج رؤية، ولا نعد صندوقا حول النص إثباتا أن النص قرئ سليما.

الخلاصة السريعة

ثبت معنى الحقول ووحدتها وأبعاد الصورة، ثم حول القيم وفق هذا التعريف؛ خلط عرض الصندوق بحده الأيمن أو النسبة بالبكسل يضع المنطقة في مكان مختلف.

  • تعرف AWS Left وTop وWidth وHeight كنسب من أبعاد الصفحة، والأصل أعلى اليسار؛ هذا تمثيل موثق للخدمة وليس قاعدة لكل الأدوات. [1]
  • في مثال 1000 في 600 ، Left = 0.2 يعني 200 بكسل وTop = 0.1 يعني 60 ؛ نضرب الأفقي بالعرض والرأسي بالارتفاع.
  • عرض 300 لا يعني حدا أيمن 300 ؛ مع بداية 200 يصبح الحد الأيمن 500 ، والارتفاع 240 مع بداية 60 يعطي حدا سفليا 300.
  • راجع الصورة المرجعية عند تغيير أبعادها أو قصها؛ تحويل الأرقام صحيحا لا يثبت سلامة كشف المنطقة أو النص داخلها.

ما التعريف الذي يخص هذه القيم؟

يحدد المرجع نقطة الأصل بأعلى يسار الصورة، ويصف موضع الصندوق وعرضه وارتفاعه كنسب من أبعاد الصفحة. [1] نحافظ على هذا التعريف في المثال، ولا نفترض أن قائمة أرقام من نظام آخر تستعمل الحقول نفسها أو نقطة الأصل نفسها.

نفترض صندوقا حول عنوان «ألوان مائية» على بطاقة أدوات، وصورة مرجعية عرضها 1000 بكسل وارتفاعها 600. القيم التي اخترعناها للشرح هي Left = 0.2 وTop = 0.1 وWidth = 0.3 وHeight = 0.4. لم نرسل البطاقة إلى Textract أو نستخرج موضع عنوان فعلي.

بأي بعد تضرب كل نسبة؟

في التمثيل الذي اعتمدناه، نحسب البداية الأفقية 0.2 مضروبة في 1000 فتساوي 200 بكسل، والرأسية 0.1 مضروبة في 600 فتساوي 60. عرض الصندوق 0.3 مضروبة في 1000 يساوي 300 ، وارتفاعه 0.4 مضروبة في 600 يساوي 240. هذه حسابات للمقادير المفترضة، وليست نتيجة كشف.

إذا عاملنا 0.2 بوصفها 200 بكسل دون معرفة عرض الصورة، فقد نحفظ الموضع الصحيح مصادفة في نسخة ونخطئ في غيرها. وإذا ضربنا Top بعرض الصورة بدلا من ارتفاعها، يتغير موضع المنطقة. نقترح تسجيل الوحدة وأبعاد المرجع إلى جانب القيم قبل رسم الصندوق أو نسب النص إليه.

هل العرض هو الحد الأيمن؟

يبدأ صندوقنا عند 200 ويمتد 300 بكسل أفقيا، لذلك يصل حده الأيمن إلى 500. وفي الاتجاه الرأسي يبدأ عند 60 ويمتد 240 ، فيصل إلى 300. كتابة Width = 300 كما لو كانت إحداثي النهاية تحذف جزءا من الامتداد في هذا المثال، حتى إن أسماء النصوص المحيطة تبدو صحيحة.

يمكن أن يستعمل تمثيل آخر زاويتي البداية والنهاية بدلا من البداية والأبعاد. لهذا نراجع تعريف الحقول ولا ننقل قائمة بين شكلين دون تحويل معلوم. كما لا يحول الصندوق المستطيل المنطقة إلى وصف دقيق لكل حافة حرف أو إلى معرفة ما إذا كان العنوان معناه عنوانا رئيسيا.

أي صورة تحتاجها عند إعادة العرض؟

لو صارت نسخة الصورة كلها 500 في 300 بالتناسب نفسه، تعطي النسب المفترضة بداية 100 و 30 وعرض 150 وارتفاع 120. أما قص جزء من الأصل فيغير الإطار المرجعي؛ لا نعيد استعمال مواضع الأصل دون معرفة علاقة الجزء به. نتحدث عن حالتين مفترضتين، لا معالجة نفذناها.

نراجع على الصورة المناسبة المنطقة التي يمثلها الصندوق، ثم نفحص النص إذا كانت حرفيته مطلوبة. سلامة التحويل الحسابي لا تثبت أن الكشف حدد العنوان الصحيح أو أن OCR قرأه بدقة. لم نجرب خدمة أو واجهة أو بكسلات فعلية؛ الفائدة هي حفظ تعريف الأرقام والمرجع حتى يصبح الفحص ممكنا.

المصادر ومتابعة القراءة

  1. AWS Textract API: BoundingBox (يفتح في نافذة جديدة)docs.aws.amazon.com

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.