نموذج التنبؤ مع 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. |
فيما يلي أمثلة التعليمات البرمجية لاستخدام كل نوع مصدر:
مصادر التنبؤ
تشغيل الاستدلال على ملف صورة.
قم بتشغيل الاستدلال على محتوى الشاشة الحالي كلقطة شاشة.
قم بتشغيل الاستدلال على صورة أو مقطع فيديو مستضاف عن بعد عبر عنوان URL.
تشغيل الاستدلال على صورة مفتوحة باستخدام Python مكتبة التصوير (PIL).
قم بتشغيل الاستدلال على صورة مقروءة باستخدام OpenCV.
قم بتشغيل الاستدلال على صورة ممثلة كصفيف 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.
تشغيل الاستدلال على ملف فيديو. باستخدام stream=True
، يمكنك إنشاء منشئ كائنات النتائج لتقليل استخدام الذاكرة.
قم بتشغيل الاستدلال على جميع الصور ومقاطع الفيديو في دليل. لالتقاط الصور ومقاطع الفيديو أيضا في الدلائل الفرعية ، استخدم نمط glob ، أي path/to/dir/**/*
.
تشغيل الاستدلال على جميع الصور ومقاطع الفيديو التي تطابق تعبير 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
، يمكنك إنشاء منشئ لكائنات النتائج لتقليل استخدام الذاكرة لمقاطع الفيديو الطويلة.
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.
حجج الاستدلال
model.predict()
يقبل وسيطات متعددة يمكن تمريرها في وقت الاستدلال لتجاوز الإعدادات الافتراضية:
مثل
حجج الاستدلال:
جدال | نوع | افتراضي | وصف |
---|---|---|---|
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
الكائنات:
النتائج
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
يمكن استخدام الكائن لفهرسة ومعالجة وتحويل المربعات المحيطة إلى تنسيقات مختلفة.
مربعات
هنا جدول ل 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
يمكن استخدام الكائن فهرسة ومعالجة وتحويل الأقنعة إلى شرائح.
الكمامات
هنا جدول ل Masks
طرق وخصائص الفئة، بما في ذلك اسمها ونوعها ووصفها:
اسم | نوع | وصف |
---|---|---|
cpu() |
أسلوب | إرجاع الأقنعة tensor على ذاكرة CPU . |
numpy() |
أسلوب | إرجاع الأقنعة tensor كصفيف numpy. |
cuda() |
أسلوب | إرجاع الأقنعة tensor على ذاكرة GPU . |
to() |
أسلوب | إرجاع الأقنعة tensor مع الجهاز المحدد و dtype. |
xyn |
الملكية (torch.Tensor ) |
قائمة بالمقاطع الطبيعية الممثلة كموترات. |
xy |
الملكية (torch.Tensor ) |
قائمة بالمقاطع في إحداثيات البكسل ممثلة كموترات. |
لمزيد من التفاصيل انظر Masks
وثائق الفصل.
النقاط الرئيسية
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
مؤشرات ودرجات التصنيف.
تحقيقات
فيما يلي جدول يلخص طرق وخصائص 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
يمكن استخدام الكائن لفهرسة ومعالجة وتحويل المربعات المحيطة الموجهة إلى تنسيقات مختلفة.
أوب
هنا جدول ل 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")
لتصور النتائج وحفظها. للاطلاع على قائمة شاملة بهذه الطرق، ارجع إلى العمل بالنتائج القسم.