Letterboxing
تُغيّر تقنية الإطار الحاوي أحجام الصور إلى أبعاد مستهدفة مع الحفاظ على نسبة العرض إلى الارتفاع باستخدام الحشو، ما يُبقي الأجسام غير مشوّهة ومجال الرؤية كاملًا.
الإطار الحاوي تقنية لتغيير حجم الصور تحافظ على نسبة العرض إلى الارتفاع للصورة، مع إضافة حشو للوصول إلى الحجم المستهدف. تُغيّر حجم الصورة بانتظام، ثم تملأ المساحة غير المستخدمة ببكسلات الحدود، ما يحافظ على تناسب الأجسام ومجال الرؤية كاملًا. وفي الرؤية الحاسوبية، تهيّئ الصور ذات الأشكال المختلفة للنماذج التي تقبل شكل إدخال موحدًا.
وخارج مجال الذكاء الاصطناعي، يصف الإطار الحاوي أيضًا عرض الأفلام العريضة مع أشرطة أفقية.
كيف يحافظ الإطار الحاوي على هندسة الصورة#
نسبة العرض إلى الارتفاع هي العلاقة بين عرض الصورة وارتفاعها. أثناء المعالجة المسبقة للبيانات، تختار تقنية الإطار الحاوي الأصغر من معاملي تحجيم: عرض الهدف مقسومًا على العرض الأصلي، وارتفاع الهدف مقسومًا على الارتفاع الأصلي. يُضرب البُعدان في هذا المعامل، لتلائم الصورة التي أُعيد تحجيمها مساحة الهدف. وتصبح البكسلات المتبقية حشوًا. تنفّذ عملية تغيير الحجم والحشو في TensorFlow هذا الأسلوب باستخدام حدود ذات قيم صفرية.
على سبيل المثال، تُحجّم صورة أبعادها 1280 x 720 لتناسب هدفًا أبعاده 640 x 640 باستخدام معامل تحجيم مقداره 0.5. ويصبح محتواها بأبعاد 640 x 360، تاركًا 280 صفًا للحشو: 140 في الأعلى و140 في الأسفل عند التوسيط. أما الصور العمودية فتُضاف إليها حدود جانبية. لذلك، قد يكون حشو الصورة ذات الإطار الحاوي أفقيًا أو عموديًا؛ كما يمكن أن تكون أبعاد الهدف مستطيلة.
يستخدم Ultralytics YOLO تحويل LetterBox للحفاظ على الهندسة في مدخلات الكشف والتجزئة وتقدير الوضعية، مع حشو رمادي قيمته الافتراضية 114. وفي التنبؤ بالكشف والتجزئة والوضعية باستخدام YOLO26، يقلّل الحشو بأصغر مستطيل الحدود إلى مضاعف متوافق مع خطوة الشبكة، عندما تدعم أشكال الدُفعات وخلفية الاستدلال ذلك.
الإطار الحاوي مقابل التمديد والاقتصاص#
تتعامل ثلاثة خيارات لتغيير الحجم بطرق مختلفة مع عدم تطابق أبعاد الصورة والهدف:
- الإطار الحاوي يحافظ على التناسب والصورة كاملة، مع تخصيص جزء من المدخل للحشو.
- التمديد يغيّر العرض والارتفاع كلًا على حدة لملء الهدف. وتصبح الدوائر إهليجات عندما تختلف معامِلات التحجيم.
- الاقتصاص يحافظ على التناسب عند اقترانه بتغيير حجم موحّد، ثم يزيل المحتوى الواقع خارج المنطقة المحددة. وقد تُقصّ الأجسام القريبة من حواف الصورة.
تؤثر هذه الخيارات في الكشف عن الأجسام، حيث تهم الأشكال والمواضع، وفي تصنيف الصور، حيث يغيّر الاقتصاص الأدلة المرئية على الفئة.
يستهلك الحشو أيضًا جزءًا من مساحة الإدخال. في مثال 1280 x 720، يشغل محتوى الصورة 56.25% من المساحة المربعة، ويشغل الحشو 43.75%. ويقلّل تصغير الحجم التفاصيل الدقيقة داخل ذلك المحتوى؛ أما إضافة بكسلات الحدود فلا توفر تفاصيل إضافية عن الأجسام. بالنسبة إلى الصور عالية الدقة التي تحتوي على أجسام صغيرة، يعالج الاستدلال المُجزّأ مناطق منفصلة من الصورة بمقياس فعّال أكبر للأجسام.
مثال على الإطار الحاوي في Python#
ثبّت Pillow باستخدام pip install pillow. وتغيّر عملية ImageOps.pad حجم الصورة وتوسّطها على لوحة مبطّنة. يستخدم هذا المثال صورة الحافلة الموزعة لدروس الرؤية الحاسوبية.
from urllib.request import urlretrieve
from PIL import Image, ImageOps
urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
image = Image.open("bus.jpg")
image = image.convert("RGB")
# Preserve proportions and fill the unused area with gray.
letterboxed = ImageOps.pad(image, (640, 640), color=(114, 114, 114))
letterboxed.save("letterboxed_bus.png")
print(f"{image.size} -> {letterboxed.size}")أبعاد الإخراج هي (810, 1080) -> (640, 640)، وتُعبّر عن العرض والارتفاع. تحتوي الصورة المحفوظة على الصورة الفوتوغرافية كاملة، بعد تغيير حجمها إلى 480 x 640، مع حد بعرض 80 بكسل على كل جانب.
مطابقة التعليقات التوضيحية والتنبؤات#
يحوّل الإطار الحاوي نظام الإحداثيات، إلى جانب البكسلات. يجب تحجيم كل إحداثي في مربع الإحاطة وإزاحته بمقدار الحشو الأيسر أو العلوي. وتنطبق الهندسة نفسها على النقاط المفتاحية في تقدير الوضعية وعلى حدود الأجسام في تجزئة المثيلات. يؤدي إبقاء التعليقات التوضيحية دون تغيير أثناء التدريب إلى عدم محاذاة الأهداف مع الأجسام التي تصفها.
بعد الاستدلال، تعكس إعادة تحجيم الإحداثيات التحويل: اطرح إزاحة الحشو، ثم اقسم على معامل تغيير الحجم. بالنسبة إلى مربع محدد الموضع بصورة صحيحة مع حشو غير صفري، يؤدي إغفال تلك الإزاحة إلى تحريك المربع وخفض قيمة التقاطع على الاتحاد بينه وبين الحقيقة الأرضية. في مثال الحافلة، تتحول نقطة عند الإحداثيات (320, 320) ضمن الصورة المحشوة إلى الإحداثيات الأصلية (405, 540) بعد طرح 80 من x وقسمة كلا الإحداثيين على 640 / 1080.










