Ultralytics YOLO27:
Get Started

استخدام YOLO26 مع SAHI للاستدلال بالتقسيم إلى شرائح#

Open SAHI for Sliced Inference In Colab

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

مقدمة إلى SAHI#

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



شاهد: كيفية استخدام SAHI مع Ultralytics YOLO26 لاكتشاف الكائنات الصغيرة | الاستدلال الفائق بمساعدة التقسيم 🚀

الميزات الأساسية لـ SAHI#

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

ما الاستدلال بالتقسيم إلى شرائح؟#

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

فوائد الاستدلال بالتقسيم إلى شرائح#

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

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

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

YOLO26 دون SAHIYOLO26 مع SAHI
YOLO26 without SAHIYOLO26 with SAHI

التثبيت والتحضير#

التثبيت#

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

pip install -U ultralytics sahi

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

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

from sahi.utils.file import download_from_url

# ⁨تنزيل صور الاختبار⁩
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",  # ⁨أو '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

# ⁨فتح الصورة المتنبأ بها⁩
processed_image = Image.open("demo_data/prediction_visual.png")

# ⁨عرض الصورة المتنبأ بها⁩
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,
)

# ⁨تصدير النتائج⁩
result.export_visuals(export_dir="demo_data/", hide_conf=True)

# ⁨فتح الصورة المتنبأ بها⁩
processed_image = Image.open("demo_data/prediction_visual.png")

# ⁨عرض الصورة المتنبأ بها⁩
processed_image.show()

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

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

# ⁨الوصول إلى قائمة التنبؤات الخاصة بالكائن⁩
object_prediction_list = result.object_prediction_list

# ⁨التحويل إلى تنسيقي التعليقات التوضيحية والتنبؤات في COCO⁩
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",  # ⁨أو '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_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",  # ⁨أو '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,
    )

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

التعليقات