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

نموذج التنبؤ مع Ultralytics YOLO

Ultralytics YOLO النظام البيئي والتكاملات

مقدمة

In the world of machine learning and computer vision, the process of making sense out of visual data is called 'inference' or 'prediction'. Ultralytics YOLO11 offers a powerful feature known as predict mode that is tailored for high-performance, real-time inference on a wide range of data sources.



شاهد: How to Extract the Outputs from Ultralytics YOLO Model for Custom Projects.

تطبيقات العالم الحقيقي

التصنيع رياضي أمان
الكشف عن قطع غيار المركبات كشف لاعب كرة القدم كشف سقوط الناس
الكشف عن قطع غيار المركبات كشف لاعب كرة القدم كشف سقوط الناس

لماذا الاستخدام Ultralytics YOLO للاستدلال؟

Here's why you should consider YOLO11's predict mode for your various inference needs:

  • براعه: قادر على عمل استنتاجات على الصور ومقاطع الفيديو وحتى البث المباشر.
  • Performance: Engineered for real-time, high-speed processing without sacrificing accuracy.
  • سهولة الاستخدام: بديهي Python و CLI واجهات للنشر والاختبار السريع.
  • قابل للتخصيص بدرجة عالية: إعدادات ومعلمات مختلفة لضبط سلوك الاستدلال الخاص بالنموذج وفقا لمتطلباتك الخاصة.

الميزات الرئيسية لوضع التنبؤ

YOLO11's predict mode is designed to be robust and versatile, featuring:

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

Ultralytics YOLO ترجع النماذج إما أ Python قائمة Results الكائنات ، أو كفاءة الذاكرة Python مولد Results الكائنات عندما stream=True يتم تمريره إلى النموذج أثناء الاستدلال:

تنبأ

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # pretrained YOLO11n 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 disk
from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # pretrained YOLO11n model

# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"], stream=True)  # return a generator of Results objects

# Process results generator
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 disk

مصادر الاستدلال

YOLO11 can process different types of input sources for inference, as shown in the table below. The sources include static images, video streams, and various data formats. The table also indicates whether each source can be used in streaming mode with the argument stream=True ✅ يعد وضع البث مفيدا لمعالجة مقاطع الفيديو أو البث المباشر لأنه ينشئ مولدا للنتائج بدلا من تحميل جميع الإطارات في الذاكرة.

بقشيش

استخدام stream=True لمعالجة مقاطع الفيديو الطويلة أو مجموعات البيانات الكبيرة لإدارة الذاكرة بكفاءة. متى stream=False، يتم تخزين نتائج جميع الإطارات أو نقاط البيانات في الذاكرة، والتي يمكن أن تتراكم بسرعة وتتسبب في حدوث أخطاء نفاد الذاكرة للمدخلات الكبيرة. في المقابل، stream=True يستخدم مولدا ، والذي يحتفظ فقط بنتائج الإطار الحالي أو نقطة البيانات في الذاكرة ، مما يقلل بشكل كبير من استهلاك الذاكرة ويمنع مشكلات نفاد الذاكرة.

مصدر مثل نوع تلاحظ
صورة 'image.jpg' str أو Path ملف صورة واحدة.
الرابط 'https://ultralytics.com/images/bus.jpg' str عنوان URL لصورة.
لقطة شاشة 'screen' str التقط لقطة شاشة.
بيل Image.open('image.jpg') PIL.Image تنسيق HWC مع قنوات RGB.
أوبن سي في cv2.imread('image.jpg') np.ndarray تنسيق HWC مع قنوات BGR uint8 (0-255).
خدر 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).
سي اس في 'sources.csv' str أو Path ملف CSV يحتوي على مسارات للصور أو مقاطع الفيديو أو الدلائل.
فيديو ✅ 'video.mp4' str أو Path ملف فيديو بتنسيقات مثل MP4 و AVI وما إلى ذلك.
دليل ✅ 'path/' str أو Path المسار إلى دليل يحتوي على صور أو مقاطع فيديو.
الكره ✅ 'path/*.jpg' str نمط Glob لمطابقة ملفات متعددة. استخدم الزر * حرف كحرف بدل.
يوتيوب ✅ 'https://youtu.be/LNwODJXcvt4' str عنوان URL لفيديو يوتيوب.
استدر ✅ 'rtsp://example.com/media.mp4' str عنوان URL لبروتوكولات البث مثل RTSP أو RTMP أو TCP أو عنوان IP.
متعدد الدفق ✅ 'list.streams' str أو Path *.streams ملف نصي بعنوان URL واحد للدفق لكل صف ، أي سيتم تشغيل 8 تدفقات بحجم الدفعة 8.
webcam ✅ 0 int Index of the connected camera device to run inference on.

فيما يلي أمثلة التعليمات البرمجية لاستخدام كل نوع مصدر:

مصادر التنبؤ

تشغيل الاستدلال على ملف صورة.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define path to the image file
source = "path/to/image.jpg"

# Run inference on the source
results = model(source)  # list of Results objects

قم بتشغيل الاستدلال على محتوى الشاشة الحالي كلقطة شاشة.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define current screenshot as source
source = "screen"

# Run inference on the source
results = model(source)  # list of Results objects

قم بتشغيل الاستدلال على صورة أو مقطع فيديو مستضاف عن بعد عبر عنوان URL.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define remote image or video URL
source = "https://ultralytics.com/images/bus.jpg"

# Run inference on the source
results = model(source)  # list of Results objects

تشغيل الاستدلال على صورة مفتوحة باستخدام Python مكتبة التصوير (PIL).

from PIL import Image

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Open an image using PIL
source = Image.open("path/to/image.jpg")

# Run inference on the source
results = model(source)  # list of Results objects

قم بتشغيل الاستدلال على صورة مقروءة باستخدام OpenCV.

import cv2

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Read an image using OpenCV
source = cv2.imread("path/to/image.jpg")

# Run inference on the source
results = model(source)  # list of Results objects

قم بتشغيل الاستدلال على صورة ممثلة كصفيف numpy.

import numpy as np

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Create a random numpy array of HWC shape (640, 640, 3) with values in range [0, 255] and type uint8
source = np.random.randint(low=0, high=255, size=(640, 640, 3), dtype="uint8")

# Run inference on the source
results = model(source)  # list of Results objects

Run inference on an image represented as a PyTorch tensor.

import torch

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Create a random torch tensor of BCHW shape (1, 3, 640, 640) with values in range [0, 1] and type float32
source = torch.rand(1, 3, 640, 640, dtype=torch.float32)

# Run inference on the source
results = model(source)  # list of Results objects

قم بتشغيل الاستدلال على مجموعة من الصور وعناوين URL ومقاطع الفيديو والدلائل المدرجة في ملف CSV.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define a path to a CSV file with images, URLs, videos and directories
source = "path/to/file.csv"

# Run inference on the source
results = model(source)  # list of Results objects

تشغيل الاستدلال على ملف فيديو. باستخدام stream=True، يمكنك إنشاء منشئ كائنات النتائج لتقليل استخدام الذاكرة.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define path to video file
source = "path/to/video.mp4"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

قم بتشغيل الاستدلال على جميع الصور ومقاطع الفيديو في دليل. لالتقاط الصور ومقاطع الفيديو أيضا في الدلائل الفرعية ، استخدم نمط glob ، أي path/to/dir/**/*.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define path to directory containing images and videos for inference
source = "path/to/dir"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

تشغيل الاستدلال على جميع الصور ومقاطع الفيديو التي تطابق تعبير glob مع * الاحرف.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define a glob search for all JPG files in a directory
source = "path/to/dir/*.jpg"

# OR define a recursive glob search for all JPG files including subdirectories
source = "path/to/dir/**/*.jpg"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

تشغيل الاستدلال على فيديو يوتيوب. باستخدام stream=True، يمكنك إنشاء منشئ لكائنات النتائج لتقليل استخدام الذاكرة لمقاطع الفيديو الطويلة.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define source as YouTube video URL
source = "https://youtu.be/LNwODJXcvt4"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

Use the stream mode to run inference on live video streams using RTSP, RTMP, TCP, or IP address protocols. If a single stream is provided, the model runs inference with a batch size of 1. For multiple streams, a .streams text file can be used to perform batched inference, where the batch size is determined by the number of streams provided (e.g., batch-size 8 for 8 streams).

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Single stream with batch-size 1 inference
source = "rtsp://example.com/media.mp4"  # RTSP, RTMP, TCP, or IP streaming address

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

For single stream usage, the batch size is set to 1 by default, allowing efficient real-time processing of the video feed.

To handle multiple video streams simultaneously, use a .streams text file containing the streaming sources. The model will run batched inference where the batch size equals the number of streams. This setup enables efficient processing of multiple feeds concurrently.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Multiple streams with batched inference (e.g., batch-size 8 for 8 streams)
source = "path/to/list.streams"  # *.streams text file with one streaming address per line

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

مثل .streams text file:

rtsp://example.com/media1.mp4
rtsp://example.com/media2.mp4
rtmp://example2.com/live
tcp://192.168.1.100:554
...

Each row in the file represents a streaming source, allowing you to monitor and perform inference on several video streams at once.

You can run inference on a connected camera device by passing the index of that particular camera to source.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on the source
results = model(source=0, stream=True)  # generator of Results objects

حجج الاستدلال

model.predict() يقبل وسيطات متعددة يمكن تمريرها في وقت الاستدلال لتجاوز الإعدادات الافتراضية:

مثل

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on 'bus.jpg' with arguments
model.predict("bus.jpg", save=True, imgsz=320, conf=0.5)

حجج الاستدلال:

جدال نوع افتراضي وصف
source str 'ultralytics/assets' Specifies the data source for inference. Can be an image path, video file, directory, URL, or device ID for live feeds. Supports a wide range of formats and sources, enabling flexible application across different types of input.
conf float 0.25 يعين الحد الأدنى للثقة للاكتشافات. سيتم تجاهل الكائنات المكتشفة بثقة أقل من هذا الحد. يمكن أن يساعد ضبط هذه القيمة في تقليل الإيجابيات الخاطئة.
iou float 0.7 Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Lower values result in fewer detections by eliminating overlapping boxes, useful for reducing duplicates.
imgsz int or tuple 640 يحدد حجم الصورة للاستدلال. يمكن أن يكون عددا صحيحا واحدا 640 for square resizing or a (height, width) tuple. Proper sizing can improve detection accuracy and processing speed.
half bool False Enables half-precision (FP16) inference, which can speed up model inference on supported GPUs with minimal impact on accuracy.
device str None يحدد جهاز الاستدلال (على سبيل المثال ، cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU ، أو جهاز GPU معين، أو أجهزة حوسبة أخرى لتنفيذ النموذج.
max_det int 300 الحد الأقصى لعدد الاكتشافات المسموح بها لكل صورة. يحد من العدد الإجمالي للكائنات التي يمكن للنموذج اكتشافها في استدلال واحد، مما يمنع المخرجات الزائدة في المشاهد الكثيفة.
vid_stride int 1 خطوة الإطار لمدخلات الفيديو. يسمح بتخطي الإطارات في مقاطع الفيديو لتسريع المعالجة على حساب الدقة الزمنية. قيمة 1 تعالج كل إطار ، القيم الأعلى تتخطى الإطارات.
stream_buffer bool False Determines whether to queue incoming frames for video streams. If False, old frames get dropped to accomodate new frames (optimized for real-time applications). If `True', queues new frames in a buffer, ensuring no frames get skipped, but will cause latency if inference FPS is lower than stream FPS.
visualize bool False ينشط تصور ميزات النموذج أثناء الاستدلال ، مما يوفر رؤى حول ما "يراه" النموذج. مفيد لتصحيح الأخطاء وتفسير النموذج.
augment bool False يتيح زيادة وقت الاختبار (TTA) للتنبؤات ، مما قد يؤدي إلى تحسين متانة الكشف على حساب سرعة الاستدلال.
agnostic_nms bool False تمكين منع عدم الحد الأقصى (NMS) اللاأدري للفئة ، والذي يدمج المربعات المتداخلة لفئات مختلفة. مفيد في سيناريوهات الكشف متعددة الفئات حيث يكون تداخل الفئة شائعا.
classes list[int] None تصفية التوقعات إلى مجموعة من معرفات الفئة. سيتم إرجاع الاكتشافات التي تنتمي إلى الفئات المحددة فقط. مفيد للتركيز على الكائنات ذات الصلة في مهام الكشف متعددة الفئات.
retina_masks bool False يستخدم أقنعة تجزئة عالية الدقة إذا كانت متوفرة في النموذج. يمكن أن يؤدي ذلك إلى تحسين جودة القناع لمهام التجزئة ، مما يوفر تفاصيل أدق.
embed list[int] None Specifies the layers from which to extract feature vectors or embeddings. Useful for downstream tasks like clustering or similarity search.

وسيطات التصور:

جدال نوع افتراضي وصف
show bool False لو True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للملاحظات المرئية الفورية أثناء التطوير أو الاختبار.
save bool False أو True Enables saving of the annotated images or videos to file. Useful for documentation, further analysis, or sharing results. Defaults to True when using CLI & False when used in 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 None أو int None يحدد عرض خط المربعات المحيطة. لو None، يتم ضبط عرض الخط تلقائيا بناء على حجم الصورة. يوفر التخصيص المرئي للوضوح.

تنسيقات الصور والفيديو

YOLO11 supports various image and video formats, as specified in ultralytics/data/utils.py. See the tables below for the valid suffixes and example predict commands.

الصور

يحتوي الجدول أدناه على صالح Ultralytics تنسيقات الصور.

ملاحظه

HEIC images are supported for inference only, not for training.

لواحق الصور مثال على أمر التنبؤ مرجع
.bmp yolo predict source=image.bmp Microsoft تنسيق ملف BMP
.dng yolo predict source=image.dng أدوبي DNG
.jpeg yolo predict source=image.jpeg جبيغ
.jpg yolo predict source=image.jpg جبيغ
.mpo yolo predict source=image.mpo كائن متعدد الصور
.png yolo predict source=image.png رسومات الشبكة المحمولة
.tif yolo predict source=image.tif تنسيق ملف صورة العلامة
.tiff yolo predict source=image.tiff تنسيق ملف صورة العلامة
.webp yolo predict source=image.webp ويب بي
.pfm yolo predict source=image.pfm خريطة عائمة محمولة
.HEIC yolo predict source=image.HEIC High Efficiency Image Format

الفيديوات

يحتوي الجدول أدناه على صالح 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 متروسكا
.mov yolo predict source=video.mov تنسيق ملف كويك تايم
.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 مشروع ويب إم

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

كل Ultralytics predict() ستعيد المكالمات قائمة ب Results الكائنات:

النتائج

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model("bus.jpg")  # list of 1 Results object
results = model(["bus.jpg", "zidane.jpg"])  # list of 2 Results objects

Results الكائنات لها السمات التالية:

صفة نوع وصف
orig_img numpy.ndarray الصورة الأصلية كصفيف numpy.
orig_shape tuple شكل الصورة الأصلي بتنسيق (الارتفاع والعرض).
boxes Boxes, optional كائن مربعات يحتوي على المربعات المحيطة بالكشف.
masks Masks, optional كائن أقنعة يحتوي على أقنعة الكشف.
probs Probs, optional كائن Probs يحتوي على احتمالات كل فئة لمهمة التصنيف.
keypoints Keypoints, optional كائن النقاط الرئيسية يحتوي على نقاط المفاتيح المكتشفة لكل كائن.
obb OBB, optional كائن OBB يحتوي على مربعات محيطة موجهة.
speed dict قاموس لسرعات ما قبل المعالجة والاستدلال وما بعد المعالجة بالمللي ثانية لكل صورة.
names dict قاموس أسماء الطبقات.
path str المسار إلى ملف الصورة.

Results الكائنات لها الطرق التالية:

أسلوب نوع الإرجاع وصف
update() None قم بتحديث سمات المربعات والأقنعة و probs لكائن النتائج.
cpu() Results إرجاع نسخة من كائن النتائج مع جميع الموترين على ذاكرة CPU .
numpy() Results إرجاع نسخة من كائن النتائج مع كافة الموترات كمصفوفات رقمية.
cuda() Results إرجاع نسخة من كائن النتائج مع جميع الموترين على ذاكرة GPU .
to() Results إرجاع نسخة من كائن النتائج مع الموترات على الجهاز المحدد و dtype.
new() Results إرجاع كائن نتائج جديد بنفس الصورة والمسار والأسماء.
plot() numpy.ndarray يخطط نتائج الكشف. إرجاع صفيف رقمي من الصورة المشروحة.
show() None إظهار النتائج المشروحة على الشاشة.
save() None احفظ النتائج المشروحة في الملف.
verbose() str إرجاع سلسلة السجل لكل مهمة.
save_txt() None احفظ التوقعات في ملف txt.
save_crop() None حفظ التوقعات التي تم اقتصاصها إلى save_dir/cls/file_name.jpg.
tojson() str تحويل الكائن إلى تنسيق JSON.

لمزيد من التفاصيل انظر Results وثائق الفصل.

مربعات

Boxes يمكن استخدام الكائن لفهرسة ومعالجة وتحويل المربعات المحيطة إلى تنسيقات مختلفة.

مربعات

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model("bus.jpg")  # results list

# View results
for r in results:
    print(r.boxes)  # print the Boxes object containing the detection bounding boxes

هنا جدول ل Boxes طرق وخصائص الفئة، بما في ذلك اسمها ونوعها ووصفها:

اسم نوع وصف
cpu() أسلوب انقل الكائن إلى ذاكرة CPU .
numpy() أسلوب تحويل الكائن إلى صفيف numpy.
cuda() أسلوب انقل الكائن إلى ذاكرة CUDA .
to() أسلوب انقل الكائن إلى الجهاز المحدد.
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 وثائق الفصل.

الكمامات

Masks يمكن استخدام الكائن فهرسة ومعالجة وتحويل الأقنعة إلى شرائح.

الكمامات

from ultralytics import YOLO

# Load a pretrained YOLO11n-seg Segment model
model = YOLO("yolo11n-seg.pt")

# Run inference on an image
results = model("bus.jpg")  # results list

# View results
for r in results:
    print(r.masks)  # print the Masks object containing the detected instance masks

هنا جدول ل Masks طرق وخصائص الفئة، بما في ذلك اسمها ونوعها ووصفها:

اسم نوع وصف
cpu() أسلوب إرجاع الأقنعة tensor على ذاكرة CPU .
numpy() أسلوب إرجاع الأقنعة tensor كصفيف numpy.
cuda() أسلوب إرجاع الأقنعة tensor على ذاكرة GPU .
to() أسلوب إرجاع الأقنعة tensor مع الجهاز المحدد و dtype.
xyn الملكية (torch.Tensor) قائمة بالمقاطع الطبيعية الممثلة كموترات.
xy الملكية (torch.Tensor) قائمة بالمقاطع في إحداثيات البكسل ممثلة كموترات.

لمزيد من التفاصيل انظر Masks وثائق الفصل.

النقاط الرئيسية

Keypoints يمكن استخدام الكائن فهرس ومعالجة وتطبيع الإحداثيات.

النقاط الرئيسية

from ultralytics import YOLO

# Load a pretrained YOLO11n-pose Pose model
model = YOLO("yolo11n-pose.pt")

# Run inference on an image
results = model("bus.jpg")  # results list

# View results
for r in results:
    print(r.keypoints)  # print the Keypoints object containing the detected keypoints

هنا جدول ل Keypoints طرق وخصائص الفئة، بما في ذلك اسمها ونوعها ووصفها:

اسم نوع وصف
cpu() أسلوب إرجاع النقاط الرئيسية tensor على ذاكرة CPU .
numpy() أسلوب إرجاع النقاط الأساسية tensor كصفيف numpy.
cuda() أسلوب إرجاع النقاط الرئيسية tensor على ذاكرة GPU .
to() أسلوب إرجاع النقاط الأساسية tensor مع الجهاز المحدد و dtype.
xyn الملكية (torch.Tensor) قائمة بالنقاط الرئيسية الطبيعية الممثلة كموترات.
xy الملكية (torch.Tensor) قائمة بالنقاط الرئيسية في إحداثيات البكسل ممثلة كموترات.
conf الملكية (torch.Tensor) إرجاع قيم الثقة للنقاط الرئيسية إذا كانت متوفرة، وإلا لا شيء.

لمزيد من التفاصيل انظر Keypoints وثائق الفصل.

تحقيقات

Probs كائن يمكن استخدامها فهرس ، والحصول على top1 و top5 مؤشرات ودرجات التصنيف.

تحقيقات

from ultralytics import YOLO

# Load a pretrained YOLO11n-cls Classify model
model = YOLO("yolo11n-cls.pt")

# Run inference on an image
results = model("bus.jpg")  # results list

# View results
for r in results:
    print(r.probs)  # print the Probs object containing the detected class probabilities

فيما يلي جدول يلخص طرق وخصائص Probs فصل:

اسم نوع وصف
cpu() أسلوب إرجاع نسخة من probs tensor على الذاكرة CPU .
numpy() أسلوب إرجاع نسخة من الاحتمالات tensor كصفيف numpy.
cuda() أسلوب إرجاع نسخة من probs tensor على الذاكرة GPU .
to() أسلوب إرجاع نسخة من الاحتمالات tensor مع الجهاز المحدد و dtype.
top1 الملكية (int) مؤشر أعلى 1 فئة.
top5 الملكية (list[int]) مؤشرات أعلى 5 فئات.
top1conf الملكية (torch.Tensor) ثقة أعلى 1 درجة.
top5conf الملكية (torch.Tensor) ثقة أعلى 5 فصول.

لمزيد من التفاصيل انظر Probs وثائق الفصل.

أوب

OBB يمكن استخدام الكائن لفهرسة ومعالجة وتحويل المربعات المحيطة الموجهة إلى تنسيقات مختلفة.

أوب

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n-obb.pt")

# Run inference on an image
results = model("bus.jpg")  # results list

# View results
for r in results:
    print(r.obb)  # print the OBB object containing the oriented detection bounding boxes

هنا جدول ل OBB طرق وخصائص الفئة، بما في ذلك اسمها ونوعها ووصفها:

اسم نوع وصف
cpu() أسلوب انقل الكائن إلى ذاكرة CPU .
numpy() أسلوب تحويل الكائن إلى صفيف numpy.
cuda() أسلوب انقل الكائن إلى ذاكرة CUDA .
to() أسلوب انقل الكائن إلى الجهاز المحدد.
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 التي تمت تسويتها حسب حجم الصورة.

لمزيد من التفاصيل انظر OBB وثائق الفصل.

نتائج التخطيط

ال plot() الطريقة في Results تسهل الكائنات تصور التنبؤات بتراكب الكائنات المكتشفة (مثل المربعات المحيطة والأقنعة والنقاط الرئيسية والاحتمالات) على الصورة الأصلية. ترجع هذه الطريقة الصورة المشروحة كمصفوفة NumPy ، مما يسمح بسهولة العرض أو الحفظ.

التامر

from PIL import Image

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on 'bus.jpg'
results = model(["bus.jpg", "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")

plot() معلمات الطريقة

ال plot() تدعم الطريقة وسيطات مختلفة لتخصيص الإخراج:

جدال نوع وصف افتراضي
conf bool قم بتضمين درجات ثقة الكشف. True
line_width float عرض خط المربعات المحيطة. يقيس بحجم الصورة إذا None. None
font_size float حجم خط النص. يقيس بحجم الصورة إذا None. None
font str اسم الخط للتعليقات التوضيحية النصية. 'Arial.ttf'
pil bool إرجاع الصورة ككائن صورة PIL. False
img numpy.ndarray صورة بديلة للتخطيط. يستخدم الصورة الأصلية إذا None. None
im_gpu torch.Tensor GPU-accelerated image for faster mask plotting. الشكل: (1، 3، 640، 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 حدد وضع اللون، على سبيل المثال، "مثيل" أو "فئة". 'class'

الاستدلال الآمن للخيط

يعد ضمان سلامة مؤشر الترابط أثناء الاستدلال أمرا بالغ الأهمية عند تشغيل عدة رسائل YOLO نماذج بالتوازي عبر خيوط مختلفة. يضمن الاستدلال الآمن للخيط عزل تنبؤات كل مؤشر ترابط وعدم تداخل مع بعضها البعض ، وتجنب ظروف السباق وضمان مخرجات متسقة وموثوقة.

عند استخدام 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=("yolo11n.pt", "image1.jpg")).start()
Thread(target=thread_safe_predict, args=("yolo11n.pt", "image2.jpg")).start()

لإلقاء نظرة متعمقة على الاستدلال الآمن للخيط باستخدام YOLO النماذج والتعليمات خطوة بخطوة ، يرجى الرجوع إلى YOLO دليل الاستدلال الآمن للخيط. سيوفر لك هذا الدليل جميع المعلومات اللازمة لتجنب المزالق الشائعة والتأكد من أن الاستدلال متعدد الخيوط يعمل بسلاسة.

مصدر الجري for-حلقه

هنا Python البرنامج النصي باستخدام OpenCV (cv2) and YOLO to run inference on video frames. This script assumes you have already installed the necessary packages (opencv-python و ultralytics).

البث من أجل حلقة

import cv2

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.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".

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

What is Ultralytics YOLO and its predict mode for real-time inference?

Ultralytics YOLO is a state-of-the-art model for real-time object detection, segmentation, and classification. Its predict mode allows users to perform high-speed inference on various data sources such as images, videos, and live streams. Designed for performance and versatility, it also offers batch processing and streaming modes. For more details on its features, check out the Ultralytics YOLO predict mode.

How can I run inference using Ultralytics YOLO on different data sources?

Ultralytics YOLO can process a wide range of data sources, including individual images, videos, directories, URLs, and streams. You can specify the data source in the model.predict() الاتصال. على سبيل المثال، استخدم 'image.jpg' لصورة محلية أو 'https://ultralytics.com/images/bus.jpg' لعنوان URL. راجع الأمثلة التفصيلية لمختلف مصادر الاستدلال في الوثائق.

How do I optimize YOLO inference speed and memory usage?

لتحسين سرعة الاستدلال وإدارة الذاكرة بكفاءة، يمكنك استخدام وضع التدفق عن طريق تعيين stream=True في طريقة استدعاء المتنبئ. يُنشئ وضع التدفق مولدًا فعالاً للذاكرة لـ Results بدلاً من تحميل جميع الإطارات في الذاكرة. لمعالجة مقاطع الفيديو الطويلة أو مجموعات البيانات الكبيرة، يكون وضع التدفق مفيدًا بشكل خاص. تعرف على المزيد حول وضع البث.

What inference arguments does Ultralytics YOLO support?

ال model.predict() method in YOLO supports various arguments such as conf, iou, imgsz, deviceوالمزيد. تسمح لك هذه الوسيطات بتخصيص عملية الاستدلال، وتعيين معلمات مثل عتبات الثقة، وحجم الصورة، والجهاز المستخدم في الحساب. يمكن العثور على وصف تفصيلي لهذه الوسيطات في حجج الاستدلال القسم.

How can I visualize and save the results of YOLO predictions?

After running inference with YOLO, the Results على طرق لعرض الصور المشروحة وحفظها. يمكنك استخدام أساليب مثل result.show() و result.save(filename="result.jpg") لتصور النتائج وحفظها. للاطلاع على قائمة شاملة بهذه الطرق، ارجع إلى العمل بالنتائج القسم.


📅 Created 11 months ago ✏️ Updated 0 days ago

التعليقات