Ultralytics YOLO27: انضم إلى قائمة الانتظار.
ترخيص YOLO
أدلة إرشادية

اكتشاف الأجسام الصغيرة بتقسيم الصور إلى مربعات في Ultralytics YOLO، من Python إلى Rust

تعرّف على الحالات التي يساعد فيها تقسيم الصور إلى مربعات YOLO على اكتشاف الأجسام الصغيرة، وقارن تكلفته، وشغّل الاستدلال المضمّن على الصور المقسّمة إلى مربعات باستخدام Python أو Rust دون SAHI.

أونورالب سيزرOnuralp Sezer13 دقيقة قراءة
مشهد جوي لتقاطع مزدحم تحيط فيه Ultralytics YOLO26s بالسيارات باستخدام مربعات بحجم 640 بكسل، مع خطوط متقطعة تشير إلى حدود المربعات

لماذا يفوت كاشف يعمل جيدًا على الصور العادية معظم الأشخاص في لقطة من طائرة مسيّرة؟ غالبًا لأنه لا يراهم بحجمهم الكامل قط. عند القيمة الافتراضية imgsz=640، تصغّر Ultralytics YOLO إطارًا بدقة 1920 x 1080 ثلاث مرات قبل أن ينظر إليه النموذج، فيصبح ارتفاع أحد المشاة البالغ 15 بكسل نحو 5 بكسلات.

يمكن لتقسيم الصورة إلى مربعات الحفاظ على تفاصيل الأجسام الصغيرة هذه، وذلك بتشغيل النموذج على نوافذ متداخلة من الصورة كاملة الدقة ودمج النتائج. في أحد إطارات VisDrone الواردة في وثائقنا، زاد العدد مع Ultralytics YOLO26s من 35 اكتشافًا إلى 161. لكن الثمن هو زيادة العمل لكل إطار: ثمانية مدخلات للمربعات بدلًا من صورة واحدة لذلك الإطار.

أصبح تقسيم الصور إلى مربعات مدمجًا الآن على جانبي النشر. تتضمن حزمة Python وسيط tile منذ Ultralytics 8.4.204 في 6 نوفمبر، وأضافت حزمة Rust علامة --tile في Ultralytics Inference 0.0.57 في 9 نوفمبر. يوضح هذا الدليل متى يستعيد التقسيم إلى مربعات الأجسام الصغيرة، وما تكلفته، وكيفية تشغيله في كل منهما.

التغيير في الحجم هو ما يخفي الأجسام الصغيرة#

يصعب اكتشاف الأجسام الصغيرة لسبب بسيط: لا يملك الجسم إلا وحدات البكسل التي تظهر فيه. يتعلم نموذج اكتشاف الأجسام الأشكال من بضعة بكسلات لكل جسم، وعندما يُصغّر الإطار بأكمله إلى 640 بكسل على أطول أضلاعه، تصبح الأجسام البعيدة، مثل الأشخاص والمركبات والعيوب، أصغر من أن تتمكن الشبكة من تمييزها عن النسيج والضوضاء.

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

يحافظ التقسيم إلى مربعات على وحدات البكسل هذه. عند ضبط tile على حجم إدخال النموذج، يرى النموذج عدة نوافذ بالدقة الأصلية بدلًا من تمريرة واحدة على إطار مصغّر. وهذه هي الفكرة التي تسميها ورقة SAHI الاستدلال الفائق المدعوم بالتقطيع، وقد قيّمها مؤلفوها على مجموعتي البيانات الجويتين VisDrone وxView.

في دليل التقسيم إلى مربعات عالية الدقة، يعيد YOLO26s، عند تطبيقه على إطار VisDrone بدقة 1920 x 1080 وبعتبة الثقة الافتراضية، 35 اكتشافًا للصورة كاملة عند imgsz=640، و161 اكتشافًا مع tile=640، بما فيها المشاة وراكبو الدراجات والسيارات البعيدة. يعرض الدليل الصورتين جنبًا إلى جنب. هذه أعداد تنبؤات وليست تقييمًا محسوب الدرجات. أنتجت الأوزان نفسها العددين؛ كما غيّر التقسيم إلى مربعات السياق الذي تراه كل نافذة.

التقاطع الجوي نفسه في صورتين: مربعات تحيط ببضع سيارات بعد تصغير الإطار كاملًا إلى 640 بكسل، ومربعات تحيط بمعظم السيارات باستخدام مربعات بحجم 640 بكسل

إطار تحقق ثانٍ من VisDrone بدقة 1920 x 1080؛ YOLO26s عند عتبة الثقة الافتراضية: 8 اكتشافات على الإطار كاملًا عند imgsz=640، و128 عند tile=640. لقطة مقصوصة للطريق، والمربعات بلا تسميات للفئات.

يضيف التقسيم إلى مربعات إدخالًا واحدًا للنموذج لكل نافذة#

يحدد الدليل آلية تقسيم النوافذ بدقة. تتداخل النوافذ بنسبة أساسية قدرها 20%، ويُحاذى الصف والعمود الأخيران مع حدود الصورة، ولذلك قد يكون التداخل أكبر عند النوافذ الطرفية. وإذا كانت الصورة أصغر من النافذة، تُستخدم نافذة واحدة للصورة كاملة.

وهذا يجعل تقدير التكلفة سهلًا. يعالج الإطار ذو الدقة 1920 x 1080 عند tile=640 ثماني نوافذ، أربعًا أفقيًا واثنتين عموديًا. ويعالج إطار بدقة 3840 x 2160 عند tile=1280 ثماني نوافذ أيضًا. أما تطبيق قاعدة التداخل نفسها، البالغة 20%، على إطار بدقة 3840 x 2160 عند tile=640 فينتج ثمانية أعمدة وأربعة صفوف، أي 32 نافذة؛ لذا فإن تقليل حجم النافذة إلى النصف في إطار 4K يضاعف مدخلات المربعات أربع مرات.

إطار جوي بدقة 1920 x 1080 مقسّم إلى ثماني نوافذ متداخلة بحجم 640 x 640، مع تظليل نطاقات التداخل

النوافذ الثماني التي يستخدمها tile=640 في إطار بدقة 1920 x 1080: تبدأ الأعمدة عند x = 0 و512 و1024 و1280، والصفوف عند y = 0 و440. تظهر النطاقات المظللة في أكثر من نافذة واحدة.

يغيّر التجميع كيفية وصول هذه المدخلات إلى النموذج. في Python، يحدد batch عدد النوافذ التي تمر عبر النموذج معًا في استدعاء استدلال واحد، وتفعل حزمة Rust الشيء نفسه باستخدام --batch مع تصدير الدفعات الديناميكية. قد يحسّن التجميع معدل النقل، لكن قِس زمن الاستجابة على أجهزتك؛ يشرح دليلنا حول الاستدلال بالدفعات باستخدام Ultralytics YOLO السبب.

إليك مقارنة التقسيم إلى مربعات بالطرق الأخرى لمنح الأجسام الصغيرة مزيدًا من وحدات البكسل:

النهجمدخلات النموذج لإطار بدقة 1920 x 1080ما يراه النموذجمتى يكون الأنسب
الصورة كاملة، imgsz=6401الإطار مصغّر 3 مراتتظل الأجسام واضحة بعد تغيير الحجم
الصورة كاملة، imgsz=12801، بحوسبة تعادل نحو 4 أضعاف ما يتطلبه حجم 640الإطار مصغّر 1.5 مرةتسمح الذاكرة وزمن الاستجابة باستخدام إدخال أكبر
tile=True مع imgsz=6408نوافذ بحجم 640 بكسل وبدقة الصورة الأصليةصور أكبر بعدة مرات من حجم إدخال النموذج
tile=400 مع imgsz=640أكثر من 8تكبير النوافذ إلى 640أجسام لا يتجاوز عرضها بضعة بكسلات حتى بالدقة الأصلية

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

متى يفيد التقسيم إلى مربعات ومتى يضر#

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

ويضر عندما تكون الأجسام كبيرة. فالنافذة لا ترى سوى جزء من شاحنة تملأ نصف الإطار، والدليل واضح في هذا الشأن: قد تُقسّم الأجسام الأكبر من نطاق التداخل، إذ لا ترى أي نافذة الجسم كاملًا، كما أن الدمج لا يصل الأجزاء المنفصلة بعضها ببعض. كذلك، يزيل التقسيم السياق العام، وهو أمر مهم خصوصًا للتصنيف والعمق، حيث قد لا تتفق مخرجات المربعات على امتداد الصورة.

تأتي النوافذ الأصغر بمفاضلة إضافية. إن تكبير نافذة بحجم 400 بكسل إلى 640 يساعد مع الأجسام التي لا يتجاوز عرضها بضعة بكسلات، لكنه يكبّر أيضًا الفوضى في الخلفية، ما قد يؤدي إلى نتائج إيجابية كاذبة. قارن حجمين أو ثلاثة أحجام للمربعات على مجموعة التحقق الخاصة بك، وراقب الدقة وكذلك الاستدعاء.

كيفية دمج المربعات مجددًا في نتيجة واحدة#

تنتج كل نافذة تنبؤاتها الخاصة بإحداثيات النافذة. يعيد تقسيم المربعات إسقاطها على إحداثيات الصورة المصدر، ويُرجع كائن Results واحدًا لكل صورة أصلية، لذا يعمل أي كود لاحق يقرأ result.boxes دون تغيير.

قد يُكتشف الجسم القريب من حد فاصل مرتين بسبب التداخل. في الاكتشاف، تُحذف التكرارات باستخدام الكبت غير الأقصى مع إعدادات iou وagnostic_nms وmax_det، لذا ينطبق مباشرةً دليلنا حول ضبط عتبة IoU في NMS على المخرجات المقسّمة إلى مربعات. يُسقط المربع الذي يقطعه حد النافذة عندما ترى نافذة أخرى الجسم بعيدًا عن حدودها ويغطيه مربع محتفَظ به، وبذلك يحتفظ الحد الفاصل بالتنبؤ الأكثر اكتمالًا. أما المربع المقطوع الذي لا يطابقه مربع أفضل، فيُحتفَظ به.

مربعات من نوافذ متجاورة عند حد فاصل: مربعات مقطوعة من نوافذ الصف العلوي بجانب مربعات كاملة من نوافذ الصف السفلي، ثم مربع واحد لكل سيارة بعد الدمج

رسم توضيحي لمعالجة الحد الفاصل عند y = 640 في الإطار نفسه. تقطع المربعات السماوية الحافة السفلية لنوافذ الصف العلوي، وتأتي المربعات الأرجوانية من نوافذ الصف السفلي، وتُظهر اللوحة اليمنى المربع الأكثر اكتمالًا المحتفَظ به لكل سيارة بعد الدمج.

تدمج كل مهمة من مهام Ultralytics YOLO النتائج بطريقتها الخاصة:

  • الاكتشاف والتجزئة والوضعية وOBB تعيد المربعات أو الأقنعة أو النقاط المفتاحية أو المربعات المدارة إلى إحداثيات المصدر، وتطبّق اختيار المربعات، مع استخدام NMS المدارة لـ OBB.
  • التجزئة الدلالية تصل خرائط الفئات، وتختار المربع الأكثر تمركزًا عند تداخل النوافذ.
  • العمق يدمج خرائط العمق المتداخلة بأوزان تزداد كلما اقتربت من مركز كل مربع.
  • التصنيف يحسب متوسط احتمالات المربعات.

تدعم عملية التنبؤ في Python أيضًا تقسيم تنبؤات YOLO-World وYOLOE وRT-DETR وFastSAM إلى مربعات. أما SAM فيستخدم مسار القص الخاص به، ولا يقبل tile.

الاستدلال على الصور المقسّمة إلى مربعات في Python باستخدام وسيط tile#

يتطلب التقسيم إلى مربعات Ultralytics 8.4.204 أو إصدارًا أحدث، ولا يحتاج إلى أي حزمة إضافية. في وضع التنبؤ، مرّر tile=True لاستخدام imgsz بوصفه حجم النافذة، أو مرّر عددًا صحيحًا لتعيين حجم النافذة بشكل منفصل:

from ultralytics import YOLO

model = YOLO("yolo26s.pt")

# ⁨خط أساس: تمريرة واحدة على الإطار بعد تصغيره إلى 640 بكسل⁩
full = model.predict("intersection.jpg", imgsz=640)

# ⁨مقسّم إلى مربعات: نوافذ بحجم 640 بكسل بالدقة الأصلية، و8 نوافذ لكل دفعة⁩
tiled = model.predict("intersection.jpg", imgsz=640, tile=640, batch=8)

print(len(full[0].boxes), len(tiled[0].boxes))

يعمل الوسيط نفسه من CLI باستخدام yolo predict model=yolo26s.pt source=large-image.tif tile=640 imgsz=640 batch=8. للفيديو، مرّر stream=True للحد من استهلاك الذاكرة. في وضع التتبع، يعمل المتعقّب مرة واحدة لكل إطار على التنبؤات المدمجة.

لا يقتصر التقسيم إلى مربعات على التنبؤ. عندما تكون الصور أكبر بكثير من imgsz، درّب النموذج وتحقق منه بالإعداد نفسه:

  1. درّب على المربعات باستخدام model.train(data="aerial.yaml", tile=True, imgsz=640). تُقصّ التسميات لتناسب كل نافذة، وتُزال المثيلات التي يتبقى أقل من 10% من مساحة مربعها الأصلية، وتظل النوافذ الفارغة ضمن البيانات بوصفها أمثلة سلبية.
  2. تحقّق من النتائج المدمجة باستخدام model.val(data="aerial.yaml", tile=True, imgsz=640). تُدمج التنبؤات قبل تقييمها مقارنةً بالتعليقات التوضيحية الأصلية، لذا يعكس mAP ما ستنشره فعليًا.
  3. خزّن المصادر الكبيرة مؤقتًا باستخدام cache="ram"، لأن التدريب يخلط ترتيب المربعات، ومن دون ذلك سيُفك ترميز الصورة الكبيرة نفسها مرات عديدة.
  4. قارن بخط أساس للصورة كاملة على قسم التحقق نفسه قبل اعتماد النموذج المقسّم إلى مربعات. ولمزيد من الطرق لتحسين النتائج على الأجسام الصغيرة جدًا، راجع قائمة التحقق من mAP للأجسام الصغيرة.

يُظهر التدريب على المربعات للنموذج الأجسام بالمقياس الذي سيراه أثناء التنبؤ المقسّم إلى مربعات. يشرح دليل مجموعة بيانات اكتشاف الأجسام بالطائرات المسيّرة دورة التدريب والتقسيم والتقييم كاملةً على إطارات 4K.

تُقسّم النماذج المصدّرة إلى مربعات أيضًا. يُنفّذ التقسيم ضمن مسار التنبؤ في Python، لذا يحتفظ النموذج المصدّر إلى ONNX أو TensorRT برسم الإدخال المعتاد، ويعمل YOLO("yolo26s.onnx").predict(source, tile=640) كالمعتاد، بما في ذلك أحجام دفعات التصدير الثابتة والدفعة الجزئية الأخيرة.

صفحة مجموعة بيانات VisDrone في Ultralytics Platform تعرض صورها الجوية

مجموعة بيانات VisDrone في Ultralytics Platform، وهي معيار جاهز لاختبار أحجام المربعات قبل وسم بياناتك الخاصة.

لتجربة أحجام المربعات على بيانات عامة أولًا، ابدأ من مجموعة بيانات VisDrone على Ultralytics Platform. لتتبع تشغيل مقسّم إلى مربعات إلى جانب خط الأساس، انسخ أمر التدريب المحلي من نافذة التدريب في Platform، واضبط project على مشروع Platform لخط الأساس، وأضف tile=True لإرسال مقاييس التشغيل المقسّم إلى مربعات إليه.

الاستدلال على الصور المقسّمة إلى مربعات في Rust باستخدام العلامة الجديدة --tile#

Ultralytics Inference هي حزمة Rust وCLI الخاصة بنا لتشغيل نماذج ONNX المصدّرة عبر ONNX Runtime، ونماذج OpenVINO IR مباشرةً، من دون بيئة تشغيل Python وقت الاستدلال. وهي تستهدف الخوادم والحاويات والأجهزة الطرفية التي تستخدم CPU أو CUDA أو TensorRT أو CoreML أو OpenVINO أو غيرها من موفّرات التنفيذ. يجلب الإصدار 0.0.57 أسلوب التقسيم نفسه المستخدم في Python: تداخل أساسي للنوافذ بنسبة 20%، وإعادة النتائج إلى إحداثيات الصورة المصدر، وإزالة التكرارات لكل فئة.

كاميرا مرور وحاسوب طرفي صغير الحجم مثبتان على عمود فوق تقاطع طرق سريع عند الغروب

للتوضيح. كاميرا على جانب الطريق مع حاسوب طرفي، وهو نوع النشر المستهدف لحزمة Rust دون Python.

تحقق الفريق من المخرجات المقسّمة إلى مربعات بمقارنتها مع Ultralytics Python على ONNX Runtime باستخدام CPU، وOpenVINO باستخدام CPU، ووحدة GPU وNPU، وCUDA وTensorRT، للصور والفيديو وكاميرا الويب. وجميع نماذج الاكتشاف والتجزئة والتجزئة الدلالية والعمق والتصنيف والوضعية وOBB مدعومة.

من CLI، أضف --tile مع تحديد حجم النافذة، أو مرّره دون قيمة لاستخدام --imgsz. تصدير النموذج خطوة تُنفّذ مرة واحدة باستخدام Python؛ أما الاستدلال نفسه فلا يحتاج إلا إلى الملف التنفيذي لـ Rust:

# One-time export in Python: a dynamic-batch ONNX model so several windows run per call
pip install -U "ultralytics[export-base]>=8.4.204"
yolo export model=yolo26s.pt format=onnx dynamic=True

# Install the Rust CLI
cargo install ultralytics-inference

# Tiled inference on a large image: 640-pixel windows, 8 per batch
ultralytics-inference predict --model yolo26s.onnx --source aerial.jpg --tile 640 --batch 8

بوصفها مكتبة، اضبط التقسيم إلى مربعات مرة واحدة في InferenceConfig، وستُقسّم كل استدعاءات predict إلى مربعات. يستخدم with_tile(0) حجم الاستدلال:

use ultralytics_inference::{InferenceConfig, YOLOModel};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = InferenceConfig::new().with_tile(640);
    let mut model = YOLOModel::load_with_config("yolo26s.onnx", config)?;
    let results = model.predict("aerial.jpg")?;
    if let Some(ref boxes) = results[0].boxes {
        println!("{} detections", boxes.len());
    }
    Ok(())
}

تُزال المربعات المكررة بين النوافذ باستخدام NMS لكل فئة عند قيمة --iou المضبوطة، والتي يبلغ إعدادها الافتراضي 0.5 منذ الإصدار نفسه، بما يتوافق مع الإعدادات الافتراضية للتنبؤ في Ultralytics. يظل التقسيم إلى مربعات معطّلًا افتراضيًا، لأن كل نافذة تمثل إدخالًا إضافيًا للنموذج. فعّله عندما تكون التفاصيل مهمة، وقِس زمن استدلال الجهاز المستهدف، واختر موفّر التنفيذ المناسب له؛ تساعدك مقارنة ONNX وTensorRT على أجهزة NVIDIA، ويشرح دليل NVIDIA Jetson الإعداد على الجهاز.

يمكن لمستخدمي SAHI الانتقال إلى وسيط تقسيم الصور المضمّن#

إذا كنت تقسّم الصور بالفعل باستخدام مكتبة SAHI، فإن الوسيط المضمّن يؤدي المهمة نفسها داخل Ultralytics، من دون حزمة إضافية أو تنسيق منفصل للنتائج. أصبح دليل تكامل SAHI مهملًا الآن لصالح tile.

لا يتطلب نقل سكربت SAHI سوى تغيير الوسائط في معظمه:

SAHIالتقسيم المضمّن إلى مربعات
AutoDetectionModel.from_pretrained(model_type="ultralytics", ...)YOLO("yolo26s.pt")
get_sliced_prediction(image, model, slice_height=256, slice_width=256, ...)model.predict(image, tile=256)
overlap_height_ratio, overlap_width_ratioتداخل أساسي ثابت بنسبة 20%، مع محاذاة النوافذ الطرفية إلى حدود الصورة
PredictionResult في SAHIResults القياسي في Ultralytics

النوافذ مربعة، ويتبع التداخل والدمج القواعد الموضحة أعلاه بدلًا من المعالجة اللاحقة القابلة للضبط في SAHI، لذا توقّع مربعات متشابهة لا متطابقة. أعد التحقق من العتبات باستخدام مجموعة تحقق بعد الانتقال.

الفرق العملي هو التكامل. يتكامل tile مع التدريب والتحقق والتنبؤ والتتبع في Ultralytics باستخدام الوسيط نفسه، ويُرجع كائنات Results القياسية، ويتوفر له خيار مماثل في حزمة Rust؛ لذا يمكن نقل حجم المربع الذي تحققت من صلاحيته في دفتر ملاحظات إلى ملف Rust تنفيذي على الجهاز الطرفي.

من ينبغي له تفعيل التقسيم إلى مربعات؟#

فعّل التقسيم إلى مربعات إذا كنت تشغّل Ultralytics YOLO على صور أكبر بعدة مرات من حجم إدخال النموذج، وأظهرت نتائج التحقق لديك تفويت أجسام صغيرة: مثل فرق الطائرات المسيّرة والأقمار الصناعية، ومتكاملي أنظمة المرور والأمن الذين يستخدمون كاميرات واسعة الزاوية، وفرق الفحص التي تصوّر لوحات أو ألواحًا أو رفوفًا كاملة. ويحصل مستخدمو Rust على أسلوب التقسيم نفسه للأجهزة الطرفية من دون بيئة تشغيل Python.

اتركه معطّلًا عندما تكون الأجسام كبيرة مقارنةً بالإطار، أو عندما يستعيدها حجم أكبر لـimgsz في تمريرة واحدة، أو عندما لا تسمح ميزانية زمن الاستجابة بإضافة عدة مدخلات للمربعات في كل إطار. في جميع الحالات، قارن نتائج التقسيم إلى مربعات بنتائج الصورة كاملة على قسم التحقق نفسه وعند عتبة الثقة نفسها، مع فحص الاستدعاء والنتائج الإيجابية الكاذبة وزمن الاستجابة، ولا تُبقِ التقسيم مفعّلًا إلا عندما تستحق مكاسبه العمل الإضافي.

تتيح Ultralytics Platform إجراء هذه المقارنة في مكان واحد: ضع تسميات لصورك عالية الدقة أو ابدأ من VisDrone، ودرّب خط أساس للصورة كاملة على وحدات GPU سحابية، ودرّب خط أساس آخر باستخدام قيمة أكبر لـimgsz، وسجّل تشغيلًا مقسّمًا إلى مربعات من جهازك في المشروع نفسه. يوضّح دليل التقسيم إلى مربعات عالية الدقة خيارات التقسيم، وتغطي وثائق Ultralytics Inference النشر باستخدام Rust.

تتوفر كل من حزمة Python وحزمة Rust بموجب AGPL-3.0. إذا كان الاكتشاف المقسّم إلى مربعات سيُستخدم في منتج مغلق المصدر أو جهاز طرفي تشحنه إلى العملاء، فإن ترخيص Ultralytics Enterprise يتيح الاستخدام التجاري لبرامج Ultralytics المشمولة دون متطلبات الإفصاح عن المصدر بموجب AGPL-3.0، وفقًا لشروطه.

الأسئلة الشائعة

  • يقسّم تقسيم الصور إلى مربعات الصورة الكبيرة إلى نوافذ متداخلة، ويشغّل الكاشف على كل نافذة، ثم يدمج المربعات مجددًا على الصورة الأصلية. عندما يتطابق حجم النافذة مع حجم إدخال النموذج، تحتفظ الأجسام الصغيرة بوحدات بكسل كانت ستفقدها لو أُعيد تغيير حجم الصورة كاملة. وفي Ultralytics YOLO، ينفّذ وسيط tile ذلك بتداخل أساسي قدره 20%، ويُرجع نتيجة واحدة لكل صورة.

  • تحقق أولًا مما إذا كان تغيير الحجم هو المشكلة: إذا تقلّصت الأجسام إلى بضعة بكسلات عند imgsz=640، فاختبر قيمة أكبر لـimgsz أو tile=True. درّب بالإعداد نفسه الذي ستستخدمه للتنبؤ، كي يتعلم النموذج الأجسام بمقياسها عند النشر، وتحقق من الأداء بحسب الحجم والفئة. يناسب التقسيم إلى مربعات الصور الأكبر بعدة مرات من حجم إدخال النموذج.

  • فهو يضيف إدخالًا واحدًا للنموذج لكل نافذة: إذ ينتج عن إطار بدقة 1920 x 1080 عند tile=640 ثمانية مدخلات للمربعات بدلًا من صورة واحدة. ويمكن أن يؤدي تشغيل عدة مربعات في استدعاء مجمّع واحد، باستخدام batch في Python أو --batch مع تصدير الدفعات الديناميكية في Rust، إلى تحسين معدل النقل. قِس زمن الاستجابة على الأجهزة المستهدفة.

  • لا. فمنذ Ultralytics 8.4.204، يتولى الوسيط المضمّن tile الاستدلال بالتقطيع دون حزمة إضافية، كما يتيح تقسيم التدريب والتحقق والتتبع إلى مربعات. أصبح دليل SAHI في وثائقنا مهملًا لصالح tile.

  • نعم. في Python، تحتفظ النماذج المصدّرة برسم الإدخال المعتاد، وتمرّر tile إلى predict كالمعتاد. وفي Rust، يضيف Ultralytics Inference 0.0.57 الخيار --tile إلى CLI وwith_tile إلى InferenceConfig، وقد جرى التحقق منه بمقارنته مع Python على ONNX Runtime باستخدام CPU وOpenVINO وCUDA وTensorRT.

  • ابدأ بـ tile=True، الذي يستخدم imgsz حجمًا للنافذة. استخدم نافذة أصغر، مثل tile=400 مع imgsz=640، عندما لا يتجاوز عرض الأجسام بضعة بكسلات حتى بالدقة الأصلية، واستخدم نافذة أكبر عندما تكون الأجسام معرضة للاقتطاع عند الفواصل. قارن بين بضعة أحجام على مجموعة التحقق، مع مراقبة كلٍّ من الاستدعاء والإيجابيات الكاذبة.

بقلم

Onuralp Sezer
Onuralp Sezer

مهندس تعلم آلي أول · Ultralytics

يعمل أونورالب سيزر مهندسًا أول لتعلّم الآلة في Ultralytics، حيث يعمل على تطوير تقنيات الرؤية الحاسوبية مثل YOLO ويسهم في تطوير المصادر المفتوحة. وبصفته منظمًا منذ زمن طويل لمجموعة مطوري Google (GDG) ومساهمًا في المصادر المفتوحة، فهو نشط في مجتمع المطورين بصفته متحدثًا متخصصًا في تعلّم الآلة والرؤية الحاسوبية، وقد أسهم سابقًا في مشروع Fedora.

التعليقات

اطرح سؤالًا، أو شارك نتائجك، أو ساعد شخصًا آخر.

استكشف الحلول

الرؤية الحاسوبية في الرياضة

الرؤية الحاسوبية في الرياضة

اكتشف كيف يعزّز Ultralytics YOLO الرؤية الحاسوبية الرياضية عبر تتبّع اللاعبين والكرة، وتحليلات الأداء، ورؤى التدريب، وإعادة تأهيل الرياضيين.
معرفة المزيد
الرؤية الحاسوبية للصور الجوية

الرؤية الحاسوبية للصور الجوية

حوّل صور الطائرات المسيّرة والصور الجوية إلى رؤى آنية للزراعة وتربية الأحياء المائية والحفاظ على البيئة والتحليل الجغرافي المكاني باستخدام Ultralytics YOLO.
معرفة المزيد
الرؤية الحاسوبية في قطاع الطيران والفضاء

الرؤية الحاسوبية في قطاع الطيران والفضاء

طبّق الرؤية الحاسوبية في مجال الطيران والفضاء باستخدام Ultralytics YOLO لفحص الطائرات، واكتشاف الأجسام الغريبة على المدارج (FOD)، والعمليات الأرضية في المطارات، واكتشاف عيوب المواد المركّبة.
معرفة المزيد
الرؤية الحاسوبية في مجال الأمن

الرؤية الحاسوبية في مجال الأمن

احمِ كل موقع باستخدام نماذج Ultralytics YOLO. يدعم الذكاء الاصطناعي البصري مراقبة المحيط، واكتشاف التهديدات، والتعرف على لوحات المركبات، والسلامة في مكان العمل.
معرفة المزيد
الرؤية الحاسوبية في الروبوتات

الرؤية الحاسوبية في الروبوتات

عزّز أداء الآلات الذكية باستخدام نماذج Ultralytics YOLO. يدعم الذكاء الاصطناعي البصري في الروبوتات الملاحة الذاتية والإدراك وتعقب الأجسام والتحكم الآني.
معرفة المزيد
الرؤية الحاسوبية في الخدمات اللوجستية

الرؤية الحاسوبية في الخدمات اللوجستية

بسّط العمليات اللوجستية باستخدام نماذج Ultralytics YOLO. يتيح الذكاء الاصطناعي البصري فحص الطرود وفرزها وتتبع المركبات ومراقبة سلامة المستودعات في الوقت الفعلي.
معرفة المزيد
الرؤية الحاسوبية في تجارة التجزئة

الرؤية الحاسوبية في تجارة التجزئة

أعِد تصور تجارة التجزئة باستخدام نماذج Ultralytics YOLO. يتيح الذكاء الاصطناعي البصري تتبع المخزون ومراقبة الرفوف وإدارة الطوابير واستخلاص رؤى أذكى عن العملاء.
معرفة المزيد
الرؤية الحاسوبية في الرعاية الصحية

الرؤية الحاسوبية في الرعاية الصحية

أنشئ حلولًا للرعاية الصحية باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي البصري في الرعاية الصحية سرعة التصوير الطبي، وكفاءة التشخيص، ومراقبة المرضى.
معرفة المزيد
الرؤية الحاسوبية في التصنيع

الرؤية الحاسوبية في التصنيع

حسّن التصنيع باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي للرؤية مراقبة الجودة واكتشاف العيوب والالتزام بمعدات الوقاية الشخصية وأتمتة خطوط التجميع.
معرفة المزيد
الرؤية الحاسوبية في قطاع السيارات

الرؤية الحاسوبية في قطاع السيارات

طبّق الرؤية الحاسوبية في قطاع السيارات باستخدام نماذج Ultralytics YOLO. يعزز الذكاء الاصطناعي للرؤية سلامة الطرق ومساعدة السائق وأتمتة المركبات لإنشاء طرق أكثر ذكاءً.
معرفة المزيد
الرؤية الحاسوبية في الزراعة

الرؤية الحاسوبية في الزراعة

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

لنبنِ مستقبل الذكاء الاصطناعي معًا!

ابدأ رحلتك نحو مستقبل تعلّم الآلة