Ultralytics YOLO27:

استخدام YOLO26 مع SAHI للاستدلال المقسم#

Open SAHI for Sliced Inference In Colab

يوضح هذا الدليل كيفية استخدام YOLO26 مع SAHI (الاستدلال فائق الدقة المساعد بالتقطيع). سنتعمق في ماهية الاستدلال المساعد بالتقطيع، وسبب أهمية الاستدلال المقسم الحرجة للتطبيقات واسعة النطاق، وكيفية دمج هذه الوظائف مع YOLO26 لتحسين أداء اكتشاف الكائنات.

مقدمة إلى SAHI#

SAHI (الاستدلال فائق السرعة المدعوم بالتقسيم) مكتبة مبتكرة مصممة لتحسين خوارزميات اكتشاف الكائنات للصور واسعة النطاق وعالية الدقة. تتمثل وظيفتها الأساسية في تقسيم الصور إلى أجزاء يمكن التعامل معها، وإجراء اكتشاف الكائنات في كل جزء، ثم إعادة تجميع النتائج معًا. يتوافق SAHI مع مجموعة من نماذج اكتشاف الكائنات، بما في ذلك سلسلة YOLO، مما يوفر المرونة مع ضمان الاستخدام الأمثل للموارد الحاسوبية.



Watch: How to use SAHI with Ultralytics YOLO26 to Detect Small Objects | Slicing Aided Hyper Inference 🚀

الميزات الرئيسية في SAHI#

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

ما الاستدلال المُقسَّم؟#

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

فوائد الاستدلال المُقسَّم#

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

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

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

YOLO26 without SAHIYOLO26 with SAHI
YOLO26 without SAHIYOLO26 with SAHI

التثبيت والإعداد#

التثبيت#

لبدء الاستخدام، ثبّت أحدث إصدارات SAHI وUltralytics:

pip install -U ultralytics sahi

استيراد الوحدات وتنزيل الموارد#

إليك كيفية تنزيل بعض الصور الاختبارية:

from sahi.utils.file import download_from_url

# Download test images
download_from_url(
    "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
    "demo_data/small-vehicles1.jpeg",
)
download_from_url(
    "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
    "demo_data/terrain2.png",
)

الاستدلال القياسي باستخدام YOLO26#

إنشاء مثيل للنموذج#

يمكنك إنشاء مثيل لنموذج YOLO26 لاكتشاف الكائنات كما يلي:

from sahi import AutoDetectionModel

detection_model = AutoDetectionModel.from_pretrained(
    model_type="ultralytics",
    model_path="yolo26n.pt",
    confidence_threshold=0.3,
    device="cpu",  # or 'cuda:0'
)

إجراء التنبؤ القياسي#

إجراء استدلال قياسي باستخدام مسار صورة.

from sahi.predict import get_prediction

result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)

result.export_visuals(export_dir="demo_data/", hide_conf=True)

تصوير النتائج#

تصدير مربعات الإحاطة والأقنعة المتنبأ بها وتصويرها:

from PIL import Image

# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")

# Display the predicted image
processed_image.show()

الاستدلال المُقسَّم باستخدام YOLO26#

أجرِ استدلالًا مُقسَّمًا من خلال تحديد أبعاد الأجزاء ونِسَب التداخل:

from PIL import Image
from sahi.predict import get_sliced_prediction

result = get_sliced_prediction(
    "demo_data/small-vehicles1.jpeg",
    detection_model,
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

# Export results
result.export_visuals(export_dir="demo_data/", hide_conf=True)

# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")

# Display the predicted image
processed_image.show()

التعامل مع نتائج التنبؤ#

يوفر SAHI كائن PredictionResult، الذي يمكن تحويله إلى تنسيقات تعليقات توضيحية مختلفة:

# Access the object prediction list
object_prediction_list = result.object_prediction_list

# Convert to COCO annotation and COCO prediction formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]
تنسيقات تصدير إضافية

يمكن لـPredictionResult أيضًا تحويل الاكتشافات إلى كائنات imantics وFiftyOne باستخدام result.to_imantics_annotations() وresult.to_fiftyone_detections(). تتطلب هذه الأساليب الحزم المعنية، لذا ثبّتها أولًا باستخدام pip install imantics fiftyone.

التنبؤ على دفعات#

لإجراء تنبؤ على دفعات ضمن مجلد من الصور:

from sahi.predict import predict

predict(
    model_type="ultralytics",
    model_path="yolo26n.pt",
    model_device="cpu",  # or 'cuda:0'
    model_confidence_threshold=0.4,
    source="path/to/dir",
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

أصبحت الآن مستعدًا لاستخدام YOLO26 مع SAHI للاستدلال القياسي والمُقسَّم على حد سواء.

الاقتباسات والشكر والتقدير#

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

اقتباس
@article{akyon2022sahi,
  title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection},
  author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin},
  journal={2022 IEEE International Conference on Image Processing (ICIP)},
  doi={10.1109/ICIP46576.2022.9897990},
  pages={966-970},
  year={2022}
}

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

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

  • يؤدي دمج Ultralytics YOLO26 مع SAHI (الاستدلال فائق السرعة المدعوم بالتقسيم) للاستدلال المُقسَّم إلى تحسين مهام اكتشاف الكائنات على الصور عالية الدقة من خلال تقسيمها إلى أجزاء يمكن التعامل معها. يحسّن هذا النهج استخدام الذاكرة ويضمن دقة اكتشاف عالية. للبدء، تحتاج إلى تثبيت مكتبتي ultralytics وsahi:

    pip install -U ultralytics sahi

    بعد ذلك، نزّل الصور الاختبارية:

    from sahi.utils.file import download_from_url
    
    # Download test images
    download_from_url(
        "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
        "demo_data/small-vehicles1.jpeg",
    )
    download_from_url(
        "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
        "demo_data/terrain2.png",
    )

    للحصول على تعليمات أكثر تفصيلًا، راجع دليل الاستدلال المُقسَّم.

  • يوفر استخدام SAHI مع Ultralytics YOLO26 لاكتشاف الكائنات في الصور الكبيرة فوائد عديدة:

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

    تعرّف على المزيد حول فوائد الاستدلال المُقسَّم في وثائقنا.

  • نعم، يمكنك تصوير نتائج التنبؤ عند استخدام YOLO26 مع SAHI. إليك كيفية تصدير النتائج وتصويرها:

    from PIL import Image
    
    result.export_visuals(export_dir="demo_data/", hide_conf=True)
    
    processed_image = Image.open("demo_data/prediction_visual.png")
    
    processed_image.show()

    سيحفظ هذا الأمر التنبؤات المُصوَّرة في المجلد المحدد، ويمكنك بعد ذلك تحميل الصورة لعرضها في دفتر الملاحظات أو التطبيق. للحصول على دليل مفصل، راجع قسم الاستدلال القياسي.

  • يوفر SAHI (الاستدلال فائق السرعة المدعوم بالتقسيم) عدة ميزات تكمل Ultralytics YOLO26 في اكتشاف الكائنات:

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

    لفهم أعمق، اقرأ عن الميزات الرئيسية في SAHI.

  • للتعامل مع مشاريع الاستدلال واسعة النطاق باستخدام YOLO26 وSAHI، اتبع أفضل الممارسات التالية:

    1. تثبيت المكتبات المطلوبة: تأكد من امتلاكك أحدث إصدارات ultralytics وsahi.
    2. تهيئة الاستدلال المُقسَّم: حدّد أبعاد الأجزاء ونِسَب التداخل المثلى لمشروعك المحدد.
    3. تشغيل التنبؤات على دفعات: استخدم إمكانات SAHI لإجراء تنبؤات على دفعات ضمن مجلد من الصور، مما يحسّن الكفاءة.

    مثال على التنبؤ على دفعات:

    from sahi.predict import predict
    
    predict(
        model_type="ultralytics",
        model_path="path/to/yolo26n.pt",
        model_device="cpu",  # or 'cuda:0'
        model_confidence_threshold=0.4,
        source="path/to/dir",
        slice_height=256,
        slice_width=256,
        overlap_height_ratio=0.2,
        overlap_width_ratio=0.2,
    )

    لمزيد من الخطوات التفصيلية، تفضل بزيارة قسم التنبؤ على دفعات.

التعليقات