انتقل إلى المحتوى

Ultralytics المستندات: استخدام YOLOv8 مع SAHI للاستدلال الشرائح

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

نظرة عامة على الاستدلال شرائح SAHI

مقدمة عن ساهي

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



شاهد: الاستدلال باستخدام SAHI (الاستدلال المفرط بمساعدة التقطيع) باستخدام Ultralytics YOLOv8

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

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

ما هو الاستدلال المقطع؟

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

فوائد الاستدلال المقطع

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

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

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

YOLOv8 بدون ساهي YOLOv8 مع ساهي
YOLOv8 بدون ساهي YOLOv8 مع ساهي

التركيب والتحضير

تركيب

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

pip install -U ultralytics sahi

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

إليك كيفية استيراد الوحدات الضرورية وتنزيل ملف YOLOv8 النموذج وبعض صور الاختبار:

from sahi.utils.file import download_from_url
from sahi.utils.yolov8 import download_yolov8s_model

# Download YOLOv8 model
yolov8_model_path = "models/yolov8s.pt"
download_yolov8s_model(yolov8_model_path)

# 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",
)

الاستدلال القياسي مع YOLOv8

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

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

from sahi import AutoDetectionModel

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

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

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

from sahi.predict import get_prediction

# With an image path
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)

# With a numpy image
result = get_prediction(read_image("demo_data/small-vehicles1.jpeg"), detection_model)

تصور النتائج

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

result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")

الاستدلال المقطع مع YOLOv8

قم بإجراء الاستدلال المقطع عن طريق تحديد أبعاد الشريحة ونسب التداخل:

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,
)

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

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

# Access the object prediction list
object_prediction_list = result.object_prediction_list

# Convert to COCO annotation, COCO prediction, imantics, and fiftyone formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]
result.to_imantics_annotations()[:3]
result.to_fiftyone_detections()[:3]

التنبؤ دفعة

للتنبؤ بالدفعات في دليل الصور:

from sahi.predict import predict

predict(
    model_type="yolov8",
    model_path="path/to/yolov8n.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,
)

هذا هو! أنت الآن جاهز للاستخدام YOLOv8 مع 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.

الأسئلة المتداولة

كيف يمكنني دمج YOLOv8 مع SAHI للاستدلال المقطعي في الكشف عن الأجسام؟

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

pip install -U ultralytics sahi

بعد ذلك، قم بتنزيل نموذج YOLOv8 واختبر الصور:

from sahi.utils.file import download_from_url
from sahi.utils.yolov8 import download_yolov8s_model

# Download YOLOv8 model
yolov8_model_path = "models/yolov8s.pt"
download_yolov8s_model(yolov8_model_path)

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

للمزيد من الإرشادات التفصيلية، راجع دليل الاستدلال المقطعي.

لماذا يجب استخدام SAHI مع YOLOv8 للكشف عن الأجسام في الصور الكبيرة؟

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

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

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

هل يمكنني تصور نتائج التنبؤ عند استخدام YOLOv8 مع SAHI؟

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

result.export_visuals(export_dir="demo_data/")
from IPython.display import Image

Image("demo_data/prediction_visual.png")

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

ما هي الميزات التي يقدمها SAHI لتحسين اكتشاف الأجسام YOLOv8 ؟

يقدم SAHI (الاستدلال الفائق بمساعدة التقطيع) العديد من الميزات التي تكمل Ultralytics YOLOv8 للكشف عن الأجسام:

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

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

كيف يمكنني التعامل مع مشاريع الاستدلال واسعة النطاق باستخدام YOLOv8 و SAHI؟

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

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

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

from sahi.predict import predict

predict(
    model_type="yolov8",
    model_path="path/to/yolov8n.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,
)

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



تم الإنشاء 2023-11-12-2023، تم التحديث 2024-07-05
المؤلفون: جلين-جوتشر (7)، رضوان منور (1)

التعليقات