Link to this sectionتوقع النموذج باستخدام Ultralytics YOLO#
Link to this sectionمقدمة#
في عالم تعلم الآلة ورؤية الحاسوب، غالباً ما تُسمى عملية فهم البيانات المرئية بالاستدلال أو التوقع. يوفر Ultralytics YOLO26 ميزة قوية تُعرف بـ وضع التوقع (predict mode)، وهي مصممة خصيصاً للاستدلال عالي الأداء وفائق السرعة عبر مجموعة واسعة من مصادر البيانات.
Watch: How to Extract Results from Ultralytics YOLO26 Tasks for Custom Projects 🚀
Link to this sectionتطبيقات العالم الحقيقي#
| التصنيع | الرياضة | السلامة |
|---|---|---|
![]() | ![]() | ![]() |
| كشف قطع غيار المركبات | كشف لاعبي كرة القدم | كشف سقوط الأشخاص |
Link to this sectionلماذا تستخدم Ultralytics YOLO للاستدلال؟#
إليك الأسباب التي تجعلك تفكر في استخدام وضع التوقع في YOLO26 لتلبية احتياجات الاستدلال المختلفة لديك:
- تعدد الاستخدامات: القدرة على تشغيل الاستدلال على الصور، ومقاطع الفيديو، وحتى البث المباشر.
- الأداء: مصمم للمعالجة في الوقت الفعلي وعالية السرعة دون التضحية بـ الدقة.
- سهولة الاستخدام: واجهات Python وCLI بديهية للنشر والاختبار السريع.
- قابلية عالية للتخصيص: إعدادات ومعلمات متنوعة لضبط سلوك استدلال النموذج وفقاً لمتطلباتك المحددة.
- جاهز للإنتاج: انشر النماذج كنقاط نهاية REST API على منصة Ultralytics مع خاصية التوسع التلقائي والمراقبة، أو قم بتشغيل الاستدلال محلياً.
Link to this sectionالميزات الرئيسية لوضع التوقع#
صُمم وضع التوقع في YOLO26 ليكون قوياً ومتعدد الاستخدامات، حيث يتميز بـ:
- التوافق مع مصادر بيانات متعددة: سواء كانت بياناتك في شكل صور فردية، أو مجموعة من الصور، أو ملفات فيديو، أو بث فيديو في الوقت الفعلي، فإن وضع التوقع يلبي احتياجاتك.
- وضع البث: استخدم ميزة البث لإنشاء مولد فعال في استهلاك الذاكرة لكائنات
Results. قم بتفعيل هذا عن طريق ضبطstream=Trueفي طريقة استدعاء أداة التوقع. - المعالجة بالدفعة (Batch Processing): عالج صوراً أو إطارات فيديو متعددة في دفعة واحدة، مما يقلل من وقت الاستدلال الإجمالي.
- سهولة التكامل: تكامل بسهولة مع مسارات بياناتك الحالية ومكونات البرامج الأخرى، بفضل الـ API المرن الخاص به.
تُرجع نماذج Ultralytics YOLO إما قائمة Python من كائنات Results أو مولداً فعالاً في استهلاك الذاكرة لكائنات Results عند تمرير stream=True إلى النموذج أثناء الاستدلال:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # pretrained YOLO26n model
# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"]) # return a list of Results objects
# Process results list
for result in results:
boxes = result.boxes # Boxes object for bounding box outputs
masks = result.masks # Masks object for segmentation masks outputs
keypoints = result.keypoints # Keypoints object for pose outputs
probs = result.probs # Probs object for classification outputs
obb = result.obb # Oriented boxes object for OBB outputs
result.show() # display to screen
result.save(filename="result.jpg") # save to diskLink to this sectionمصادر الاستدلال#
يمكن لـ YOLO26 معالجة أنواع مختلفة من مصادر الإدخال للاستدلال، كما هو موضح في الجدول أدناه. تشمل المصادر الصور الثابتة، وبث الفيديو، وتنسيقات البيانات المتنوعة. يشير الجدول أيضاً إلى ما إذا كان يمكن استخدام كل مصدر في وضع البث مع الوسيط stream=True ✅. يُعد وضع البث مفيداً لمعالجة مقاطع الفيديو أو البث المباشر لأنه ينشئ مولداً للنتائج بدلاً من تحميل جميع الإطارات في الذاكرة.
استخدم stream=True لمعالجة مقاطع الفيديو الطويلة أو مجموعات البيانات الكبيرة لإدارة الذاكرة بكفاءة. عند استخدام stream=False، يتم تخزين نتائج جميع الإطارات أو نقاط البيانات في الذاكرة، وهو ما يمكن أن يتراكم بسرعة ويؤدي إلى أخطاء نفاد الذاكرة للمدخلات الكبيرة. في المقابل، يستخدم stream=True مولداً يحتفظ فقط بنتائج الإطار الحالي أو نقطة البيانات الحالية في الذاكرة، مما يقلل من استهلاك الذاكرة بشكل كبير ويمنع مشاكل نفاد الذاكرة.
| المصدر | مثال | النوع | ملاحظات |
|---|---|---|---|
| صورة | 'image.jpg' | str أو Path | ملف صورة فردي. |
| URL | 'https://ultralytics.com/images/bus.jpg' | str | رابط URL لصورة. |
| لقطة شاشة | 'screen' | str | التقاط لقطة شاشة. |
| PIL | Image.open('image.jpg') | PIL.Image | تنسيق HWC مع قنوات RGB. |
| OpenCV | cv2.imread('image.jpg') | np.ndarray | تنسيق HWC مع قنوات BGR uint8 (0-255). |
| NumPy | np.zeros((640,1280,3)) | np.ndarray | تنسيق HWC مع قنوات BGR uint8 (0-255). |
| torch | torch.zeros(16,3,320,640) | torch.Tensor | تنسيق BCHW مع قنوات RGB float32 (0.0-1.0). |
| CSV | 'sources.csv' | str أو Path | ملف CSV يحتوي على مسارات لصور أو فيديوهات أو مجلدات. |
| فيديو ✅ | 'video.mp4' | str أو Path | ملف فيديو بتنسيقات مثل MP4 أو AVI وما إلى ذلك. |
| مجلد ✅ | 'path/' | str أو Path | مسار إلى مجلد يحتوي على صور أو فيديوهات. |
| glob ✅ | 'path/*.jpg' | str | نمط glob لمطابقة ملفات متعددة. استخدم الحرف * كحرف بدل. |
| YouTube ✅ | 'https://youtu.be/LNwODJXcvt4' | str | رابط URL لمقطع فيديو على YouTube. |
| بث ✅ | 'rtsp://example.com/media.mp4' | str | رابط URL لبروتوكولات البث مثل RTSP أو RTMP أو TCP أو عنوان IP. |
| بث متعدد ✅ | 'list.streams' | str أو Path | ملف نصي *.streams يحتوي على رابط بث واحد لكل سطر، أي سيتم تشغيل 8 بثوث بحجم دفعة 8. |
| كاميرا ويب ✅ | 0 | int | فهرس جهاز الكاميرا المتصل لتشغيل الاستدلال عليه. |
فيما يلي أمثلة برمجية لاستخدام كل نوع مصدر:
تشغيل الاستدلال على ملف صورة.
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")
# Define path to the image file
source = "path/to/image.jpg"
# Run inference on the source
results = model(source) # list of Results objectsLink to this sectionوسائط الاستنتاج#
يقبل model.predict() وسائط متعددة يمكن تمريرها في وقت الاستنتاج لتجاوز القيم الافتراضية:
Link to this sectionالشكل الثابت مقابل المستطيل الأدنى (rect)#
بشكل افتراضي، يستخدم التنبؤ rect=True، مما يتيح الحشو بـ المستطيل الأدنى (minimum-rectangle) كلما كان ذلك ممكناً. يتم تغيير حجم الصورة لتناسب imgsz ويتم حشوها فقط لأقرب مضاعف للخطوة (stride)، لذا قد يكون الموتر النهائي أصغر من imgsz. يتم استخدام حشو المستطيل الأدنى فقط عندما يكون لجميع الصور في الدفعة نفس الشكل ويدعمه النظام الأساسي (PyTorch .pt، أو ONNX ديناميكي / Triton). بخلاف ذلك، يتم حشو الصور إلى هدف imgsz الكامل.
استخدم rect=False للحشو دائماً إلى هدف imgsz الكامل. يوصى بهذا عندما تحتاج إلى حجم إدخال ثابت ليتطابق مع النماذج المُصدرة (ONNX، TensorRT، إلخ).
imgsz كرقم صحيح مقابل tuple
- يصبح الرقم الصحيح
imgsz=640هدفاً مربعاً(640, 640)بعد تقريب الخطوة (stride). - يحدد الـ tuple
imgsz=(384, 672)هدفاً مستطيلاً. معrect=Trueوauto=True، يمكن أن يكون الموتر الفعلي أصغر من هذا الهدف.
التدريب مقابل التنبؤ/التصدير
يقبل التدريب رقماً صحيحاً واحداً فقط لـ imgsz (يتم تحويل قائمة [h, w] إلى القيمة الأكبر). يقبل التنبؤ والتصدير إما رقماً صحيحاً أو tuple من نوع (height, width).
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")
# Run inference on 'bus.jpg' with arguments
model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.25)وسائط الاستدلال:
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
source | str أو int أو None | None | يحدد مصدر البيانات للاستدلال. يمكن أن يكون مسار صورة، أو ملف فيديو، أو دليلاً، أو URL، أو معرف جهاز للبث المباشر. إذا تم حذفه، يتم تسجيل تحذير ويعود النموذج إلى أصول العرض التوضيحي المضمنة (ultralytics/assets، أو URL عرض توضيحي لـ OBB). يدعم مجموعة واسعة من التنسيقات والمصادر، مما يتيح تطبيقاً مرناً عبر أنواع مختلفة من المدخلات. |
conf | float | 0.25 | يعين الحد الأدنى لعتبة الثقة للاكتشافات. سيتم تجاهل الكائنات التي يتم اكتشافها بثقة أقل من هذه العتبة. يمكن أن يساعد تعديل هذه القيمة في تقليل النتائج الإيجابية الخاطئة. |
iou | float | 0.7 | عتبة التقاطع فوق الاتحاد (IoU) لكبت غير الأعظمية (NMS). تؤدي القيم الأقل إلى اكتشافات أقل عن طريق التخلص من الصناديق المتداخلة، وهو أمر مفيد لتقليل التكرارات. |
imgsz | int أو tuple | 640 | هدف Letterbox. يعطي العدد الصحيح N×N مربعاً؛ ويعطي الصف (height, width). مع rect=True، قد يكون الموتر الفعلي أصغر من هذا الهدف بسبب حشو المستطيل الأدنى. استخدم rect=False لحجم ثابت. انظر الشكل الثابت مقابل المستطيل الأدنى. |
rect | bool | True | إذا كان True، فاستخدم حشو المستطيل الأدنى عندما يكون ذلك ممكناً (دفعة بنفس الشكل والطرف الخلفي المدعوم). إذا كان False، فقم دائماً بالحشو إلى imgsz الكامل. انظر الشكل الثابت مقابل المستطيل الأدنى. |
half | bool | False | يُمكن الاستدلال بنصف الدقة (FP16)، والذي يمكن أن يسرع استدلال النموذج على وحدات GPU المدعومة بأقل تأثير على الدقة. |
device | str | None | يحدد الجهاز للاستدلال (مثال: cpu، cuda:0، 0، npu أو npu:0). يسمح للمستخدمين بالاختيار بين CPU، أو GPU محدد، أو Huawei Ascend NPU، أو أجهزة حوسبة أخرى لتنفيذ النموذج. |
batch | int | 1 | يحدد حجم الدفعة للاستدلال (يعمل فقط عندما يكون المصدر دليلاً أو ملف فيديو أو ملف .txt). يمكن أن يوفر حجم دفعة أكبر معدل نقل أعلى، مما يقصر الوقت الإجمالي المطلوب للاستدلال. |
max_det | int | 300 | الحد الأقصى لعدد الاكتشافات المسموح به لكل صورة. يحد من إجمالي عدد الكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات المفرطة في المشاهد الكثيفة. |
vid_stride | int | 1 | خطوة الإطار لمدخلات الفيديو. يسمح بتخطي الإطارات في الفيديوهات لتسريع المعالجة على حساب الدقة الزمنية. تعالج القيمة 1 كل إطار، بينما تتخطى القيم الأعلى الإطارات. |
stream_buffer | bool | False | يحدد ما إذا كان يجب وضع الإطارات الواردة في طابور لتدفقات الفيديو. إذا كان False، يتم إسقاط الإطارات القديمة لاستيعاب الإطارات الجديدة (محسن للتطبيقات في الوقت الفعلي). إذا كان True، يتم وضع الإطارات الجديدة في طابور، مما يضمن عدم تخطي أي إطارات، ولكنه سيسبب تأخيراً إذا كان FPS الاستدلال أقل من FPS التدفق. |
visualize | bool | False | يُنشط تصور ميزات النموذج أثناء الاستدلال، مما يوفر رؤى حول ما "يراه" النموذج. مفيد لتصحيح الأخطاء وتفسير النموذج. |
augment | bool | False | يُمكن زيادة وقت الاختبار (TTA) للتنبؤات، مما قد يحسن متانة الاكتشاف على حساب سرعة الاستدلال. |
agnostic_nms | bool | False | يُمكن كبت غير الأعظمية (NMS) غير المرتبط بالفئة، والذي يدمج الصناديق المتداخلة للفئات المختلفة. مفيد في سيناريوهات الاكتشاف متعدد الفئات حيث يكون تداخل الفئة شائعاً. بالنسبة للنماذج الشاملة (YOLO26، YOLOv10)، هذا يمنع فقط ظهور نفس الاكتشاف بتسميات فئة متعددة (تكرارات IoU=1.0) ولا يقوم بكبت يعتمد على عتبة IoU بين الصناديق المميزة. |
classes | list[int] | None | يُصفي التنبؤات إلى مجموعة من معرفات الفئات. سيتم إرجاع الاكتشافات التي تنتمي إلى الفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الاكتشاف متعدد الفئات. |
retina_masks | bool | False | يُرجع أقنعة تجزئة عالية الدقة. ستطابق الأقنعة المُرجعة (masks.data) حجم الصورة الأصلي إذا تم تمكينه. إذا تم تعطيله، فسيكون لها حجم الصورة المستخدم أثناء الاستدلال. |
embed | list[int] | None | يحدد الطبقات التي يتم استخراج متجهات الميزات أو التضمينات منها. مفيد للمهام اللاحقة مثل التجميع أو البحث عن التشابه. |
project | str | None | اسم دليل المشروع حيث يتم حفظ مخرجات التنبؤ إذا تم تمكين save. |
name | str | None | اسم تشغيل التنبؤ. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين مخرجات التنبؤ إذا تم تمكين save. |
stream | bool | False | يُمكّن المعالجة الموفرة للذاكرة للفيديوهات الطويلة أو الصور العديدة عن طريق إرجاع مولد لكائنات النتائج بدلاً من تحميل جميع الإطارات في الذاكرة دفعة واحدة. |
verbose | bool | True | يتحكم في ما إذا كان يجب عرض سجلات الاستدلال التفصيلية في الطرفية، مما يوفر ملاحظات في الوقت الفعلي حول عملية التنبؤ. |
compile | bool أو str | False | يُفعّل تجميع الرسم البياني torch.compile في PyTorch 2.x مع backend='inductor'. يقبل True → "default"، False → للتعطيل، أو نمط نصي مثل "default"، "reduce-overhead"، "max-autotune-no-cudagraphs". يعود إلى الوضع السريع (eager) مع تحذير إذا كان غير مدعوم. |
end2end | bool | None | يتجاوز الوضع الشامل في نماذج YOLO التي تدعم الاستدلال الخالي من NMS (YOLO26، YOLOv10). يتيح لك ضبطه على False تشغيل التنبؤ باستخدام خط أنابيب NMS التقليدي، مما يتيح لك بالإضافة إلى ذلك الاستفادة من وسيط iou. راجع دليل الاكتشاف الشامل للحصول على التفاصيل. |
وسائط التصور:
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
show | bool | False | إذا كان True، فإنه يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار. |
save | bool | False or True | يُمكن حفظ الصور أو الفيديوهات المرفقة في ملفات. مفيد للتوثيق أو المزيد من التحليل أو مشاركة النتائج. الافتراضي هو True عند استخدام CLI و False عند الاستخدام في Python. |
save_frames | bool | False | عند معالجة الفيديوهات، يحفظ الإطارات الفردية كصور. مفيد لاستخراج إطارات معينة أو للتحليل التفصيلي إطاراً بإطار. |
save_txt | bool | False | يحفظ نتائج الاكتشاف في ملف نصي، باتباع التنسيق [class] [x_center] [y_center] [width] [height] [confidence]. مفيد للتكامل مع أدوات التحليل الأخرى. |
save_conf | bool | False | يتضمن درجات الثقة في الملفات النصية المحفوظة. يعزز التفاصيل المتاحة للمعالجة اللاحقة والتحليل. |
save_crop | bool | False | يحفظ صوراً مقصوصة للاكتشافات. مفيد لزيادة مجموعة البيانات أو التحليل أو إنشاء مجموعات بيانات مركزة لكائنات معينة. |
show_labels | bool | True | يعرض تصنيفات كل اكتشاف في المخرجات المرئية. يوفر فهماً فورياً للكائنات المكتشفة. |
show_conf | bool | True | يعرض درجة الثقة لكل اكتشاف بجانب التصنيف. يوفر رؤية حول مدى يقين النموذج في كل اكتشاف. |
show_boxes | bool | True | يرسم صناديق الإحاطة حول الكائنات المكتشفة. ضروري للتحديد البصري وموقع الكائنات في الصور أو إطارات الفيديو. |
line_width | int or None | None | يحدد عرض خط صناديق التحديد. إذا كان None، يتم تعديل عرض الخط تلقائياً بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح. |
Link to this sectionتنسيقات الصور والفيديو#
تدعم YOLO26 تنسيقات صور وفيديو متنوعة، كما هو محدد في ultralytics/data/utils.py. انظر الجداول أدناه لمعرفة اللواحق الصالحة وأوامر التنبؤ النموذجية.
Link to this sectionالصور#
يحتوي الجدول أدناه على تنسيقات صور Ultralytics الصالحة.
تتطلب تنسيقات HEIC/HEIF مكتبة pi-heif، والتي يتم تثبيتها تلقائياً عند الاستخدام الأول. تنسيق AVIF مدعوم أصلاً بواسطة Pillow.
| لواحق الصور | مثال على أمر التنبؤ | المرجع |
|---|---|---|
.avif | yolo predict source=image.avif | تنسيق ملف صورة AV1 |
.bmp | yolo predict source=image.bmp | تنسيق ملف BMP من Microsoft |
.dng | yolo predict source=image.dng | Adobe DNG |
.heic | yolo predict source=image.heic | تنسيق صورة عالي الكفاءة |
.heif | yolo predict source=image.heif | تنسيق صورة عالي الكفاءة |
.jp2 | yolo predict source=image.jp2 | JPEG 2000 |
.jpeg | yolo predict source=image.jpeg | JPEG |
.jpeg2000 | yolo predict source=image.jpeg2000 | JPEG 2000 |
.jpg | yolo predict source=image.jpg | JPEG |
.mpo | yolo predict source=image.mpo | كائن صور متعدد |
.png | yolo predict source=image.png | رسومات شبكة محمولة |
.tif | yolo predict source=image.tif | تنسيق ملف صورة Tag |
.tiff | yolo predict source=image.tiff | تنسيق ملف صورة Tag |
.webp | yolo predict source=image.webp | WebP |
Link to this sectionمقاطع الفيديو#
يحتوي الجدول أدناه على تنسيقات فيديو Ultralytics الصالحة.
| لواحق الفيديو | مثال على أمر التنبؤ | المرجع |
|---|---|---|
.asf | yolo predict source=video.asf | تنسيق الأنظمة المتقدمة |
.avi | yolo predict source=video.avi | تداخل الصوت والفيديو |
.gif | yolo predict source=video.gif | تنسيق تبادل الرسومات |
.m4v | yolo predict source=video.m4v | MPEG-4 الجزء 14 |
.mkv | yolo predict source=video.mkv | Matroska |
.mov | yolo predict source=video.mov | تنسيق ملف QuickTime |
.mp4 | yolo predict source=video.mp4 | MPEG-4 الجزء 14 - ويكيبيديا |
.mpeg | yolo predict source=video.mpeg | MPEG-1 الجزء 2 |
.mpg | yolo predict source=video.mpg | MPEG-1 الجزء 2 |
.ts | yolo predict source=video.ts | دفق نقل MPEG |
.wmv | yolo predict source=video.wmv | فيديو ويندوز ميديا |
.webm | yolo predict source=video.webm | مشروع WebM |
Link to this sectionالعمل مع النتائج#
ستُرجع جميع استدعاءات predict() في Ultralytics قائمة من كائنات Results:
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
results = model(
[
"https://ultralytics.com/images/bus.jpg",
"https://ultralytics.com/images/zidane.jpg",
]
) # batch inferenceتمتلك كائنات Results السمات التالية:
| السمة (Attribute) | النوع | الوصف |
|---|---|---|
orig_img | np.ndarray | الصورة الأصلية كمصفوفة NumPy. |
orig_shape | tuple | أبعاد الصورة الأصلية بتنسيق (الارتفاع، العرض). |
boxes | Boxes, optional | كائن Boxes يحتوي على مربعات الإحاطة (bounding boxes) للكشف. |
masks | Masks, optional | كائن Masks يحتوي على أقنعة الكشف. |
probs | Probs, optional | كائن Probs يحتوي على احتمالات كل فئة لمهمة التصنيف. |
keypoints | Keypoints, optional | كائن Keypoints يحتوي على النقاط الرئيسية المكتشفة لكل كائن. |
obb | OBB, optional | كائن OBB يحتوي على مربعات إحاطة موجهة (oriented bounding boxes). |
semantic_mask | SemanticMask, optional | كائن SemanticMask يحتوي على خريطة فئات كثيفة لكل بكسل. |
speed | dict | قاموس بسرعات المعالجة الأولية، والاستنتاج، والمعالجة اللاحقة بالملي ثانية لكل صورة. |
names | dict | قاموس يربط معرفات الفئات بأسماء الفئات. |
path | str | مسار ملف الصورة. |
save_dir | str, optional | الدليل لحفظ النتائج. |
Link to this sectionالنتائج حسب المهمة#
يُرجع كل تنبؤ كائن Results واحداً لكل صورة أو إطار. الحقول المشتركة أعلاه متاحة دائماً، بينما تُخزن بيانات التنبؤ الخاصة بالمهمة في الحقول أدناه. تكون موترات (tensors) الإحداثيات، والثقة، والاحتمالية من نوع torch.float32 ما لم يتم استخدام دقة نصفية (half precision)، حينها تكون torch.float16. بعد استخدام result.numpy()، تصبح الموترات مصفوفات NumPy بأنواع بيانات NumPy مطابقة. أقنعة المثيلات هي موترات ثنائية من نوع torch.uint8، بينما تستخدم الأقنعة الدلالية (semantic masks) أصغر نوع بيانات صحيح عملي لمعرفات الفئات: torch.uint8 أو torch.int16 أو torch.int32، اعتماداً على عدد الفئات.
| السمة (Attribute) | النوع | الشكل | الوصف |
|---|---|---|---|
result.boxes | Boxes | (N) | مربعات الكشف. |
result.boxes.data | torch.float32 | (N,6/7) | البيانات الخام [x1,y1,x2,y2,conf,cls]، بالإضافة إلى معرف التتبع الاختياري. |
result.boxes.xyxy | torch.float32 | (N,4) | مربعات البكسل بتنسيق xyxy. |
result.boxes.conf | torch.float32 | (N,) | درجات الثقة. |
result.boxes.cls | torch.float32 | (N,) | معرفات الفئات؛ يتم تحويلها إلى int للأسماء. |
كائنات Results تمتلك الطرق التالية:
| الطريقة (Method) | نوع الإرجاع | الوصف |
|---|---|---|
update() | None | تحديث كائن Results ببيانات جديدة مثل الصناديق، الأقنعة، الاحتمالات، obb، النقاط الرئيسية، أو الأقنعة الدلالية. |
cpu() | Results | إرجاع نسخة من كائن Results مع نقل جميع الموترات إلى ذاكرة CPU. |
numpy() | Results | إرجاع نسخة من كائن Results مع تحويل جميع الموترات إلى مصفوفات NumPy. |
cuda() | Results | إرجاع نسخة من كائن Results مع نقل جميع الموترات إلى ذاكرة GPU. |
to() | Results | إرجاع نسخة من كائن Results مع نقل الموترات إلى الجهاز ونوع البيانات المحدد. |
new() | Results | إنشاء كائن Results جديد بنفس سمات الصورة، المسار، الأسماء، والسرعة. |
plot() | np.ndarray | رسم نتائج الكشف على صورة BGR مدخلة وإرجاع الصورة المشروحة. |
show() | None | عرض الصورة مع نتائج الاستدلال المشروحة. |
save() | str | حفظ صورة نتائج الاستدلال المشروحة في ملف وإرجاع اسم الملف. |
verbose() | str | إرجاع سلسلة سجل لكل مهمة، توضح نتائج الكشف والتصنيف. |
save_txt() | str | حفظ نتائج الكشف في ملف نصي وإرجاع مسار الملف المحفوظ. |
save_crop() | None | حفظ صور الكشف المقصوصة في الدليل المحدد. |
summary() | List[Dict[str, Any]] | تحويل نتائج الاستدلال إلى قاموس ملخص مع إمكانية التطبيع الاختيارية. |
to_df() | DataFrame | تحويل نتائج الكشف إلى Polars DataFrame. |
to_csv() | str | تحويل نتائج الكشف إلى تنسيق CSV. |
to_json() | str | تحويل نتائج الكشف إلى تنسيق JSON. |
لمزيد من التفاصيل، راجع توثيق فئة Results.
Link to this sectionصناديق (Boxes)#
يمكن استخدام كائن Boxes للفهرسة، والمعالجة، وتحويل صناديق التحديد إلى تنسيقات مختلفة.
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg") # results list
# View results
for r in results:
print(r.boxes) # print the Boxes object containing the detection bounding boxesفيما يلي جدول لطرق وخصائص فئة Boxes، بما في ذلك أسمائها، وأنواعها، ووصفها:
| الاسم | النوع | الوصف |
|---|---|---|
cpu() | الطريقة (Method) | نقل الكائن إلى ذاكرة CPU. |
numpy() | الطريقة (Method) | تحويل الكائن إلى مصفوفة NumPy. |
cuda() | الطريقة (Method) | نقل الكائن إلى ذاكرة CUDA. |
to() | الطريقة (Method) | نقل الكائن إلى الجهاز المحدد. |
xyxy | خاصية (torch.Tensor) | إرجاع الصناديق بتنسيق xyxy. |
conf | خاصية (torch.Tensor) | إرجاع قيم الثقة للصناديق. |
cls | خاصية (torch.Tensor) | إرجاع قيم الفئة للصناديق. |
id | خاصية (torch.Tensor) | إرجاع معرفات التتبع للصناديق (إذا كانت متاحة). |
xywh | خاصية (torch.Tensor) | إرجاع الصناديق بتنسيق xywh. |
xyxyn | خاصية (torch.Tensor) | إرجاع الصناديق بتنسيق xyxy مطبعة وفقاً لحجم الصورة الأصلي. |
xywhn | خاصية (torch.Tensor) | إرجاع الصناديق بتنسيق xywh مطبعة وفقاً لحجم الصورة الأصلي. |
لمزيد من التفاصيل، راجع توثيق فئة Boxes.
Link to this sectionالأقنعة (Masks)#
يمكن استخدام كائن Masks للفهرسة، والمعالجة، وتحويل الأقنعة إلى أجزاء (segments).
from ultralytics import YOLO
# Load a pretrained YOLO26n-seg Segment model
model = YOLO("yolo26n-seg.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg") # results list
# View results
for r in results:
print(r.masks) # print the Masks object containing the detected instance masksفيما يلي جدول لطرق وخصائص فئة Masks، بما في ذلك أسمائها، وأنواعها، ووصفها:
| الاسم | النوع | الوصف |
|---|---|---|
data | خاصية (torch.Tensor) | موتور قناع ثنائي torch.uint8 بشكل (N,H,W) وقيم 0 أو 1. |
cpu() | الطريقة (Method) | إرجاع موتور الأقنعة على ذاكرة CPU. |
numpy() | الطريقة (Method) | إرجاع موتور الأقنعة كمصفوفة NumPy. |
cuda() | الطريقة (Method) | إرجاع موتور الأقنعة على ذاكرة GPU. |
to() | الطريقة (Method) | إرجاع موتور الأقنعة مع الجهاز ونوع البيانات المحدد. |
xyn | خاصية (list[np.ndarray]) | قائمة بمضلعات الأقنعة المطبعة. |
xy | خاصية (list[np.ndarray]) | قائمة بمضلعات الأقنعة بإحداثيات البكسل. |
لمزيد من التفاصيل، راجع توثيق فئة Masks.
Link to this sectionSemanticMask#
يخزن SemanticMask خريطة فئة كثيفة واحدة لنتائج التجزئة الدلالية. على عكس Masks، فإنه لا يحتوي على قناع ثنائي واحد لكل كائن ولا يوفر أدوات مساعدة للمضلعات.
from ultralytics import YOLO
# Load a pretrained YOLO26n-sem Semantic model
model = YOLO("yolo26n-sem.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg") # results list
# View results
for r in results:
print(r.semantic_mask.data) # print the H x W class-ID map| الاسم | النوع | الوصف |
|---|---|---|
data | خاصية (torch.Tensor) | خريطة معرف الفئة بشكل (H,W). نوع البيانات هو torch.uint8 أو torch.int16 أو torch.int32، ويتم اختياره بناءً على عدد الفئات. |
shape | خاصية (tuple) | شكل خريطة الفئة، وعادة ما يطابق result.orig_shape. |
cpu() | الطريقة (Method) | إرجاع موتور القناع الدلالي على ذاكرة CPU. |
numpy() | الطريقة (Method) | إرجاع موتور القناع الدلالي كمصفوفة NumPy. |
cuda() | الطريقة (Method) | إرجاع موتور القناع الدلالي على ذاكرة GPU. |
to() | الطريقة (Method) | إرجاع موتور القناع الدلالي مع الجهاز ونوع البيانات المحدد. |
Link to this sectionالنقاط الرئيسية (Keypoints)#
يمكن استخدام كائن Keypoints للفهرسة، والمعالجة، وتطبيع الإحداثيات.
from ultralytics import YOLO
# Load a pretrained YOLO26n-pose Pose model
model = YOLO("yolo26n-pose.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg") # results list
# View results
for r in results:
print(r.keypoints) # print the Keypoints object containing the detected keypointsفيما يلي جدول لطرق وخصائص فئة Keypoints، بما في ذلك أسمائها، وأنواعها، ووصفها:
| الاسم | النوع | الوصف |
|---|---|---|
cpu() | الطريقة (Method) | إرجاع موتور النقاط الرئيسية على ذاكرة CPU. |
numpy() | الطريقة (Method) | إرجاع موتور النقاط الرئيسية كمصفوفة NumPy. |
cuda() | الطريقة (Method) | إرجاع موتور النقاط الرئيسية على ذاكرة GPU. |
to() | الطريقة (Method) | إرجاع موتر النقاط الرئيسية (keypoints tensor) بالجهاز (device) ونوع البيانات (dtype) المحددين. |
xyn | خاصية (torch.Tensor) | قائمة من النقاط الرئيسية المطبّعة (normalized) ممثلة كموترات. |
xy | خاصية (torch.Tensor) | قائمة من النقاط الرئيسية بإحداثيات البكسل ممثلة كموترات. |
conf | خاصية (torch.Tensor) | إرجاع قيم ثقة النقاط الرئيسية إذا كانت متاحة، وإلا يتم إرجاع None. |
لمزيد من التفاصيل، راجع وثائق فئة Keypoints.
Link to this sectionProbs#
يمكن استخدام كائن Probs للفهرسة، والحصول على مؤشرات top1 و top5 ودرجات التصنيف.
from ultralytics import YOLO
# Load a pretrained YOLO26n-cls Classify model
model = YOLO("yolo26n-cls.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg") # results list
# View results
for r in results:
print(r.probs) # print the Probs object containing the detected class probabilitiesإليك جدول يلخص الأساليب والخصائص لفئة Probs:
| الاسم | النوع | الوصف |
|---|---|---|
cpu() | الطريقة (Method) | إرجاع نسخة من موتر الاحتمالات (probs tensor) على ذاكرة CPU. |
numpy() | الطريقة (Method) | إرجاع نسخة من موتر الاحتمالات (probs tensor) كمصفوفة NumPy. |
cuda() | الطريقة (Method) | إرجاع نسخة من موتر الاحتمالات (probs tensor) على ذاكرة GPU. |
to() | الطريقة (Method) | إرجاع نسخة من موتر الاحتمالات (probs tensor) بالجهاز (device) ونوع البيانات (dtype) المحددين. |
top1 | خاصية (int) | مؤشر الفئة الأولى (top 1). |
top5 | خاصية (list[int]) | مؤشرات الفئات الخمس الأولى (top 5). |
top1conf | خاصية (torch.Tensor) | ثقة الفئة الأولى (top 1). |
top5conf | خاصية (torch.Tensor) | ثقات الفئات الخمس الأولى (top 5). |
لمزيد من التفاصيل، راجع وثائق فئة Probs.
Link to this sectionOBB#
يمكن استخدام كائن OBB للفهرسة، والمعالجة، وتحويل صناديق الإحاطة الموجهة (oriented bounding boxes) إلى تنسيقات مختلفة.
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n-obb.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/boats.jpg") # results list
# View results
for r in results:
print(r.obb) # print the OBB object containing the oriented detection bounding boxesإليك جدول لأساليب وخصائص فئة OBB، بما في ذلك الاسم، والنوع، والوصف:
| الاسم | النوع | الوصف |
|---|---|---|
cpu() | الطريقة (Method) | نقل الكائن إلى ذاكرة CPU. |
numpy() | الطريقة (Method) | تحويل الكائن إلى مصفوفة NumPy. |
cuda() | الطريقة (Method) | نقل الكائن إلى ذاكرة CUDA. |
to() | الطريقة (Method) | نقل الكائن إلى الجهاز المحدد. |
conf | خاصية (torch.Tensor) | إرجاع قيم الثقة للصناديق. |
cls | خاصية (torch.Tensor) | إرجاع قيم الفئة للصناديق. |
id | خاصية (torch.Tensor) | إرجاع معرفات التتبع للصناديق (إذا كانت متاحة). |
xyxy | خاصية (torch.Tensor) | إرجاع الصناديق الأفقية بتنسيق xyxy. |
xywhr | خاصية (torch.Tensor) | إرجاع الصناديق المدورة بتنسيق xywhr. |
xyxyxyxy | خاصية (torch.Tensor) | إرجاع الصناديق المدورة بتنسيق xyxyxyxy. |
xyxyxyxyn | خاصية (torch.Tensor) | إرجاع الصناديق المدورة بتنسيق xyxyxyxy مُطبّعة (normalized) حسب حجم الصورة. |
لمزيد من التفاصيل، راجع وثائق فئة OBB.
Link to this sectionرسم النتائج#
يسهل أسلوب plot() في كائنات Results تصور التنبؤات من خلال تركيب الكائنات المكتشفة (مثل صناديق الإحاطة، والأقنعة، والنقاط الرئيسية، والاحتمالات) فوق الصورة الأصلية. يقوم هذا الأسلوب بإرجاع الصورة المعنونة كمصفوفة NumPy، مما يسمح بعرضها أو حفظها بسهولة.
from PIL import Image
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")
# Run inference on 'bus.jpg'
results = model(["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]) # results list
# Visualize the results
for i, r in enumerate(results):
# Plot results image
im_bgr = r.plot() # BGR-order numpy array
im_rgb = Image.fromarray(im_bgr[..., ::-1]) # RGB-order PIL image
# Show results to screen (in supported environments)
r.show()
# Save results to disk
r.save(filename=f"results{i}.jpg")Link to this sectionمعاملات أسلوب plot()#
يدعم أسلوب plot() وسائط متنوعة لتخصيص المخرجات:
| الوسيط | النوع | الوصف | الافتراضي |
|---|---|---|---|
conf | bool | تضمين درجات ثقة الكشف. | True |
line_width | float | عرض خط صناديق الإحاطة. يتناسب طردياً مع حجم الصورة إذا كانت القيمة None. | None |
font_size | float | حجم خط النص. يتناسب طردياً مع حجم الصورة إذا كانت القيمة None. | None |
font | str | اسم الخط للتعليقات النصية. | 'Arial.ttf' |
pil | bool | إرجاع الصورة ككائن صورة PIL. | False |
img | np.ndarray | صورة بديلة للرسم. تستخدم الصورة الأصلية إذا كانت القيمة None. | None |
im_gpu | torch.Tensor | صورة مسرعة بواسطة GPU لرسم الأقنعة بشكل أسرع. الشكل: (1, 3, 640, 640). | None |
kpt_radius | int | نصف قطر النقاط الرئيسية المرسومة. | 5 |
kpt_line | bool | توصيل النقاط الرئيسية بخطوط. | True |
labels | bool | تضمين تسميات الفئات في التعليقات. | True |
boxes | bool | تركيب صناديق الإحاطة على الصورة. | True |
masks | bool | تركيب الأقنعة على الصورة. | True |
probs | bool | تضمين احتمالات التصنيف. | True |
show | bool | عرض الصورة المعنونة مباشرة باستخدام عارض الصور الافتراضي. | False |
save | bool | حفظ الصورة المعنونة في ملف محدد بواسطة filename. | False |
filename | str | مسار واسم الملف لحفظ الصورة المعنونة إذا كان save مضبوطاً على True. | None |
color_mode | str | تحديد وضع اللون، على سبيل المثال، 'instance' أو 'class'. | 'class' |
txt_color | tuple[int, int, int] | لون نص BGR لصندوق الإحاطة وتسمية تصنيف الصورة. | (255, 255, 255) |
Link to this sectionالاستدلال الآمن خيطياً#
يعد ضمان سلامة الخيوط (thread safety) أثناء الاستدلال أمراً بالغ الأهمية عند تشغيل نماذج YOLO متعددة بالتوازي عبر خيوط مختلفة. يضمن الاستدلال الآمن للخيوط أن تكون تنبؤات كل خيط معزولة ولا تتداخل مع بعضها البعض، مما يتجنب ظروف السباق (race conditions) ويضمن مخرجات متسقة وموثوقة.
عند استخدام نماذج YOLO في تطبيق متعدد الخيوط، من المهم إنشاء كائنات نموذج منفصلة لكل خيط أو استخدام تخزين محلي للخيط لمنع التعارضات:
إنشاء نموذج واحد داخل كل خيط للاستدلال الآمن للخيوط:
from threading import Thread
from ultralytics import YOLO
def thread_safe_predict(model, image_path):
"""Performs thread-safe prediction on an image using a locally instantiated YOLO model."""
model = YOLO(model)
results = model.predict(image_path)
# Process results
# Starting threads that each have their own model instance
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image1.jpg")).start()
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image2.jpg")).start()للحصول على نظرة متعمقة حول الاستدلال الآمن للخيوط مع نماذج YOLO وتعليمات خطوة بخطوة، يرجى الرجوع إلى دليل استدلال YOLO الآمن للخيوط. سيوفر لك هذا الدليل جميع المعلومات اللازمة لتجنب العقبات الشائعة والتأكد من تشغيل الاستدلال متعدد الخيوط بسلاسة.
Link to this sectionحلقة for لمصدر البث (Streaming Source)#
إليك نص Python يستخدم OpenCV (cv2) و YOLO لتشغيل الاستدلال على إطارات الفيديو. يفترض هذا النص أنك قمت بالفعل بتثبيت الحزم الضرورية (opencv-python و ultralytics).
import cv2
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo26n.pt")
# Open the video file
video_path = "path/to/your/video/file.mp4"
cap = cv2.VideoCapture(video_path)
# Loop through the video frames
while cap.isOpened():
# Read a frame from the video
success, frame = cap.read()
if success:
# Run YOLO inference on the frame
results = model(frame)
# Visualize the results on the frame
annotated_frame = results[0].plot()
# Display the annotated frame
cv2.imshow("YOLO Inference", annotated_frame)
# Break the loop if 'q' is pressed
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
# Break the loop if the end of the video is reached
break
# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()سيقوم هذا النص بتشغيل التنبؤات على كل إطار من الفيديو، وتصور النتائج، وعرضها في نافذة. يمكن الخروج من الحلقة بالضغط على 'q'.
Link to this sectionالأسئلة الشائعة#
Link to this sectionما هو Ultralytics YOLO ووضع التنبؤ (predict mode) الخاص به للاستدلال في الوقت الفعلي؟#
Ultralytics YOLO هو نموذج متطور للاستدلال في الوقت الفعلي في مجالات كشف الكائنات، وتجزئة المثيلات، والتجزئة الدلالية، والتصنيف. يسمح وضع التنبؤ للمستخدمين بإجراء استدلال عالي السرعة على مصادر بيانات متنوعة مثل الصور، ومقاطع الفيديو، والبث المباشر. صُمم هذا الوضع للأداء وتعدد الاستخدامات، كما يوفر أوضاع المعالجة بالدفعة (batch) والبث. لمزيد من التفاصيل حول ميزاته، تحقق من وضع التنبؤ في Ultralytics YOLO.
Link to this sectionكيف يمكنني تشغيل الاستدلال باستخدام Ultralytics YOLO على مصادر بيانات مختلفة؟#
يمكن لـ Ultralytics YOLO معالجة مجموعة واسعة من مصادر البيانات، بما في ذلك الصور الفردية، ومقاطع الفيديو، والمجلدات، وعناوين URL، والبث. يمكنك تحديد مصدر البيانات في استدعاء model.predict(). على سبيل المثال، استخدم 'image.jpg' لصورة محلية أو 'https://ultralytics.com/images/bus.jpg' لرابط URL. تحقق من الأمثلة التفصيلية لمختلف مصادر الاستدلال في الوثائق.
Link to this sectionكيف يمكنني تحسين سرعة استدلال YOLO واستخدام الذاكرة؟#
لتحسين سرعة الاستدلال وإدارة الذاكرة بكفاءة، يمكنك استخدام وضع البث عن طريق ضبط stream=True في أسلوب استدعاء أداة التنبؤ. ينشئ وضع البث مولداً موفراً للذاكرة من كائنات Results بدلاً من تحميل جميع الإطارات في الذاكرة. لمعالجة مقاطع فيديو طويلة أو مجموعات بيانات كبيرة، يعد وضع البث مفيداً بشكل خاص. اعرف المزيد عن وضع البث.
Link to this sectionما هي وسائط الاستدلال التي يدعمها Ultralytics YOLO؟#
يدعم أسلوب model.predict() في YOLO وسائط متنوعة مثل conf، و iou، و imgsz، و device، والمزيد. تسمح لك هذه الوسائط بتخصيص عملية الاستدلال، وضبط معلمات مثل عتبات الثقة، وحجم الصورة، والجهاز المستخدم للحساب. يمكن العثور على أوصاف تفصيلية لهذه الوسائط في قسم وسائط الاستدلال.
Link to this sectionكيف يمكنني تصور وحفظ نتائج تنبؤات YOLO؟#
بعد تشغيل الاستدلال باستخدام YOLO، تحتوي كائنات Results على أساليب لعرض وحفظ الصور المعنونة. يمكنك استخدام أساليب مثل result.show() و result.save(filename="result.jpg") لتصور النتائج وحفظها. يتم إنشاء أي مجلدات رئيسية مفقودة في مسار اسم الملف تلقائياً (على سبيل المثال، result.save("path/to/result.jpg")). للحصول على قائمة شاملة بهذه الأساليب، ارجع إلى قسم العمل مع النتائج.


