Ultralytics Docs: استخدام YOLO11 مع SAHI للاستدلال المقطعي
مرحبًا بك في وثائق Ultralytics حول كيفية استخدام YOLO11 مع SAHI (الاستدلال المفرط بمساعدة التقطيع). يهدف هذا الدليل الشامل إلى تزويدك بكل المعرفة الأساسية التي ستحتاجها لتنفيذ SAHI جنبًا إلى جنب مع YOLO11. سنتعمق في ماهية SAHI، ولماذا يعتبر الاستدلال المقطّع أمرًا بالغ الأهمية للتطبيقات واسعة النطاق، وكيفية دمج هذه الوظائف مع YOLO11 لتحسين أداء الكشف عن الأجسام.
مقدمة إلى SAHI
SAHI (الاستدلال المفرط المدعوم بالتقطيع) هي مكتبة مبتكرة مصممة لتحسين خوارزميات الكشف عن الكائنات للصور واسعة النطاق وعالية الدقة. تكمن وظيفتها الأساسية في تقسيم الصور إلى شرائح يمكن التحكم فيها، وتشغيل الكشف عن الكائنات على كل شريحة، ثم تجميع النتائج مرة أخرى. تتوافق SAHI مع مجموعة من نماذج الكشف عن الكائنات، بما في ذلك سلسلة YOLO، وبالتالي توفر المرونة مع ضمان الاستخدام الأمثل للموارد الحسابية.
شاهد: الاستدلال باستخدام SAHI (الاستدلال المفرط بمساعدة التقطيع) باستخدام Ultralytics YOLO11
الميزات الرئيسية لـ SAHI
- تكامل سلس: يتكامل SAHI بسهولة مع نماذج YOLO، مما يعني أنه يمكنك البدء في التقطيع والاكتشاف دون الكثير من تعديل التعليمات البرمجية.
- كفاءة الموارد: من خلال تقسيم الصور الكبيرة إلى أجزاء أصغر، يعمل SAHI على تحسين استخدام الذاكرة، مما يسمح لك بتشغيل اكتشاف عالي الجودة على الأجهزة ذات الموارد المحدودة.
- دقة عالية: يحافظ SAHI على دقة الكشف عن طريق استخدام خوارزميات ذكية لدمج مربعات الكشف المتداخلة أثناء عملية التجميع.
ما هو الاستدلال المقسم؟
يشير الاستدلال المقسم إلى ممارسة تقسيم صورة كبيرة أو عالية الدقة إلى شرائح (أجزاء) أصغر، وإجراء الكشف عن الكائنات على هذه الشرائح، ثم إعادة تجميع الشرائح لإعادة بناء مواقع الكائنات على الصورة الأصلية. هذه التقنية لا تقدر بثمن في السيناريوهات التي تكون فيها الموارد الحسابية محدودة أو عند العمل مع صور عالية الدقة للغاية والتي قد تؤدي إلى مشاكل في الذاكرة.
فوائد الاستدلال المقسم
-
عبء حسابي مخفض: معالجة الشرائح الأصغر من الصور أسرع وتستهلك ذاكرة أقل، مما يتيح تشغيلًا أكثر سلاسة على الأجهزة منخفضة المواصفات.
-
جودة الكشف المحفوظة: نظرًا لأن كل شريحة تُعامل بشكل مستقل، فلا يوجد انخفاض في جودة الكشف عن الكائنات، بشرط أن تكون الشرائح كبيرة بما يكفي لالتقاط الكائنات ذات الأهمية.
-
قابلية تطوير محسنة: تتيح هذه التقنية توسيع نطاق الكشف عن الكائنات بسهولة أكبر عبر أحجام ودقة مختلفة للصور، مما يجعلها مثالية لمجموعة واسعة من التطبيقات من صور الأقمار الصناعية إلى التشخيصات الطبية.
YOLO11 بدون SAHI | YOLO11 مع SAHI |
---|---|
![]() |
![]() |
التثبيت والإعداد
التثبيت
للبدء، قم بتثبيت أحدث إصدارات SAHI و Ultralytics:
pip install -U ultralytics sahi
استيراد الوحدات النمطية وتنزيل الموارد
إليك كيفية استيراد الوحدات النمطية الضرورية وتنزيل نموذج YOLO11 وبعض الصور الاختبارية:
from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo11n_model
# Download YOLO11 model
model_path = "models/yolo11n.pt"
download_yolo11n_model(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",
)
الاستدلال القياسي مع YOLO11
إنشاء نموذج
يمكنك إنشاء نموذج YOLO11 للكشف عن الأجسام كالتالي:
from sahi import AutoDetectionModel
detection_model = AutoDetectionModel.from_pretrained(
model_type="ultralytics",
model_path=model_path,
confidence_threshold=0.3,
device="cpu", # or 'cuda:0'
)
إجراء تنبؤ قياسي
إجراء استدلال قياسي باستخدام مسار صورة أو صورة numpy.
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_with_np_image = get_prediction(read_image("demo_data/small-vehicles1.jpeg"), detection_model)
تصور النتائج
تصدير وتصور المربعات المحيطة والأقنعة المتوقعة:
result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")
الاستدلال المقسم مع YOLO11
إجراء استدلال مُقطّع عن طريق تحديد أبعاد الشريحة ونسب التداخل:
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,
)
التعامل مع نتائج التنبؤ
توفر SAHI 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="ultralytics",
model_path="path/to/yolo11n.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,
)
هذا كل شيء! أنت الآن مجهز لاستخدام YOLO11 مع 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.
الأسئلة الشائعة
كيف يمكنني دمج YOLO11 مع SAHI للاستدلال المقسم في الكشف عن الكائنات؟
يعمل دمج Ultralytics YOLO11 مع SAHI (Slicing Aided Hyper Inference) للاستدلال المقسم على تحسين مهام الكشف عن الكائنات الخاصة بك على الصور عالية الدقة عن طريق تقسيمها إلى شرائح يمكن التحكم فيها. يحسن هذا النهج استخدام الذاكرة ويضمن دقة عالية في الكشف. للبدء، تحتاج إلى تثبيت مكتبات ultralytics و sahi:
pip install -U ultralytics sahi
ثم قم بتنزيل نموذج YOLO11 وصور الاختبار:
from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo11n_model
# Download YOLO11 model
model_path = "models/yolo11n.pt"
download_yolo11n_model(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 مع YOLO11 لاكتشاف الكائنات على الصور الكبيرة؟
يوفر استخدام SAHI مع Ultralytics YOLO11 لاكتشاف الكائنات على الصور الكبيرة العديد من المزايا:
- عبء حسابي مخفض: الشرائح الأصغر أسرع في المعالجة وتستهلك ذاكرة أقل، مما يجعل من الممكن تشغيل عمليات الكشف عالية الجودة على الأجهزة ذات الموارد المحدودة.
- الحفاظ على دقة الكشف: تستخدم SAHI خوارزميات ذكية لدمج الصناديق المتداخلة، مما يحافظ على جودة الكشف.
- قابلية تطوير محسنة: من خلال توسيع نطاق مهام الكشف عن الكائنات عبر أحجام ودقة صور مختلفة، يصبح SAHI مثاليًا للتطبيقات المختلفة، مثل تحليل صور الأقمار الصناعية والتشخيصات الطبية.
تعرف على المزيد حول فوائد الاستدلال المقسم (sliced inference) في وثائقنا.
هل يمكنني تصور نتائج التوقع عند استخدام YOLO11 مع SAHI؟
نعم، يمكنك تصور نتائج التنبؤ عند استخدام YOLO11 مع SAHI. إليك كيفية تصدير النتائج وتصورها:
from IPython.display import Image
result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")
سيحفظ هذا الأمر التنبؤات المرئية في الدليل المحدد، ويمكنك بعد ذلك تحميل الصورة لعرضها في دفتر الملاحظات أو التطبيق الخاص بك. للحصول على دليل مفصل، تحقق من قسم الاستدلال القياسي.
ما هي الميزات التي يوفرها SAHI لتحسين اكتشاف الكائنات في YOLO11؟
تقدم SAHI (الاستدلال المفرط المدعوم بالتقطيع) العديد من الميزات التي تكمل Ultralytics YOLO11 للكشف عن الكائنات:
- تكامل سلس: يتكامل SAHI بسهولة مع نماذج YOLO، مما يتطلب الحد الأدنى من تعديلات التعليمات البرمجية.
- كفاءة الموارد: يقوم بتقسيم الصور الكبيرة إلى شرائح أصغر، مما يحسن استخدام الذاكرة والسرعة.
- دقة عالية: من خلال الدمج الفعال لمربعات الكشف المتداخلة أثناء عملية التجميع، يحافظ SAHI على دقة كشف عالية.
لفهم أعمق، اقرأ عن الميزات الرئيسية لـ SAHI.
كيف يمكنني التعامل مع مشاريع الاستدلال واسعة النطاق باستخدام YOLO11 و SAHI؟
للتعامل مع مشاريع الاستدلال واسعة النطاق باستخدام YOLO11 و SAHI، اتبع أفضل الممارسات التالية:
- تثبيت المكتبات المطلوبة: تأكد من أن لديك أحدث الإصدارات من ultralytics و sahi.
- تكوين الاستدلال المقسم: حدد الأبعاد المثالية للشرائح ونسب التداخل لمشروعك المحدد.
- تشغيل التنبؤات المجمعة: استخدم قدرات SAHI لإجراء تنبؤات مجمعة على دليل للصور، مما يحسن الكفاءة.
مثال للتنبؤ الدفعي:
from sahi.predict import predict
predict(
model_type="ultralytics",
model_path="path/to/yolo11n.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,
)
للحصول على خطوات أكثر تفصيلاً، قم بزيارة قسمنا حول التنبؤ بالدُفعات.