Python الاستخدام
مرحبًا بك في وثائق الاستخدام YOLO11 Python ! صُمم هذا الدليل لمساعدتك على دمج YOLO11 بسلاسة في مشاريعك Python لاكتشاف الأجسام وتجزئتها وتصنيفها. ستتعلم هنا كيفية تحميل واستخدام النماذج المدربة مسبقًا، وتدريب نماذج جديدة، وإجراء تنبؤات على الصور. تُعد واجهة Python سهلة الاستخدام مورداً قيماً لأي شخص يتطلع إلى دمج YOLO11 في مشاريعه Python ، مما يتيح لك تنفيذ إمكانات متقدمة للكشف عن الكائنات بسرعة. هيا بنا نبدأ!
شاهد: إتقان Ultralytics YOLO11 : Python
على سبيل المثال، يمكن للمستخدمين تحميل نموذج وتدريبه وتقييم أدائه على مجموعة التحقق، وحتى تصديره إلى تنسيق ONNX ببضعة أسطر من التعليمات البرمجية.
Python
from ultralytics import YOLO
# Create a new YOLO model from scratch
model = YOLO("yolo11n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo11n.pt")
# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)
# Evaluate the model's performance on the validation set
results = model.val()
# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")
# Export the model to ONNX format
success = model.export(format="onnx")
القطار
يُستخدم وضع التدريب لتدريب نموذج YOLO11 على مجموعة بيانات مخصصة. في هذا الوضع، يتم تدريب النموذج باستخدام مجموعة البيانات المحددة والمعلمات الفائقة. تتضمن عملية التدريب تحسين معلمات النموذج حتى يتمكن من التنبؤ بدقة بفئات ومواقع الكائنات في الصورة.
القطار
فال
يُستخدم وضع Val للتحقق من صحة نموذج YOLO11 بعد تدريبه. في هذا الوضع، يتم تقييم النموذج على مجموعة التحقق من الصحة لقياس دقته وأداء التعميم. يمكن استخدام هذا الوضع لضبط المعلمات الفائقة للنموذج لتحسين أدائه.
فال
التنبؤ
يُستخدم وضع التنبؤ لإجراء تنبؤات باستخدام نموذج YOLO11 مدرب على صور أو مقاطع فيديو جديدة. في هذا الوضع، يتم تحميل النموذج من ملف نقطة تدقيق، ويمكن للمستخدم توفير صور أو مقاطع فيديو لإجراء الاستدلال. يتنبأ النموذج بفئات ومواقع الكائنات في الصور أو مقاطع الفيديو المدخلة.
التنبؤ
import cv2
from PIL import Image
from ultralytics import YOLO
model = YOLO("model.pt")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True) # Display preds. Accepts all YOLO predict arguments
# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True) # save plotted images
# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True) # save predictions as labels
# from list of PIL/ndarray
results = model.predict(source=[im1, im2])
# results would be a list of Results object including all the predictions by default
# but be careful as it could occupy a lot memory when there're many images,
# especially the task is segmentation.
# 1. return as a list
results = model.predict(source="folder")
# results would be a generator which is more friendly to memory by setting stream=True
# 2. return as a generator
results = model.predict(source=0, stream=True)
for result in results:
# Detection
result.boxes.xyxy # box with xyxy format, (N, 4)
result.boxes.xywh # box with xywh format, (N, 4)
result.boxes.xyxyn # box with xyxy format but normalized, (N, 4)
result.boxes.xywhn # box with xywh format but normalized, (N, 4)
result.boxes.conf # confidence score, (N, 1)
result.boxes.cls # cls, (N, 1)
# Segmentation
result.masks.data # masks, (N, H, W)
result.masks.xy # x,y segments (pixels), List[segment] * N
result.masks.xyn # x,y segments (normalized), List[segment] * N
# Classification
result.probs # cls prob, (num_class, )
# Each result is composed of torch.Tensor by default,
# in which you can easily use following functionality:
result = result.cuda()
result = result.cpu()
result = result.to("cpu")
result = result.numpy()
التصدير
يُستخدم وضع التصدير لتصدير نموذج YOLO11 إلى تنسيق يمكن استخدامه للنشر. في هذا الوضع، يتم تحويل النموذج إلى تنسيق يمكن استخدامه من قبل تطبيقات برمجية أو أجهزة أخرى. هذا الوضع مفيد عند نشر النموذج في بيئات الإنتاج.
التصدير
قم بتصدير نموذج YOLO11n رسمي إلى ONNX مع حجم الدفعة الديناميكي وحجم الصورة.
المضمار
يُستخدم وضع التتبع لتتبع الأجسام في الوقت الفعلي باستخدام نموذج YOLO11 . في هذا الوضع، يتم تحميل النموذج من ملف نقطة تفتيش، ويمكن للمستخدم توفير دفق فيديو مباشر لإجراء تتبع الأجسام في الوقت الفعلي. هذا الوضع مفيد لتطبيقات مثل أنظمة المراقبة أو السيارات ذاتية القيادة.
المضمار
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load an official detection model
model = YOLO("yolo11n-seg.pt") # load an official segmentation model
model = YOLO("path/to/best.pt") # load a custom model
# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")
المعيار
يُستخدم الوضع المعياري لقياس سرعة ودقة تنسيقات التصدير المختلفة YOLO11. توفر المقاييس المرجعية معلومات عن حجم التنسيق المُصدَّر، و mAP50-95
المقاييس (لاكتشاف الأجسام وتجزئتها) أو accuracy_top5
المقاييس (للتصنيف)، وزمن الاستدلال بالمللي ثانية لكل صورة عبر تنسيقات التصدير المختلفة مثل ONNX و OpenVINO و TensorRT وغيرها. يمكن أن تساعد هذه المعلومات المستخدمين على اختيار تنسيق التصدير الأمثل لحالة الاستخدام الخاصة بهم بناءً على متطلباتهم من حيث السرعة والدقة.
المعيار
استخدام المدربين
YOLO
فئة النموذج هي غلاف عالي المستوى على فئات المدرب. كل مهمة YOLO لها مدربها الخاص الذي يرث من BaseTrainer
.
مثال مدرب الكشف عن المدرب
from ultralytics.models.yolo import DetectionPredictor, DetectionTrainer, DetectionValidator
# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best
# Validator
val = DetectionValidator(args=...)
val(model=trained_model)
# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)
# resume from last weight
overrides["resume"] = trainer.last
trainer = detect.DetectionTrainer(overrides=overrides)
يمكنك بسهولة تخصيص المدربين لدعم المهام المخصصة أو استكشاف أفكار البحث والتطوير. تعرف على المزيد حول التخصيص Trainers
, Validators
و Predictors
لتناسب احتياجات مشروعك في قسم التخصيص.
الأسئلة الشائعة
كيف يمكنني دمج YOLO11 في مشروع Python الخاص بي لاكتشاف الكائنات؟
يعد دمج Ultralytics YOLO11 في مشاريعك Python أمرًا بسيطًا. يمكنك تحميل نموذج مدرب مسبقاً أو تدريب نموذج جديد من البداية. إليك كيفية البدء:
from ultralytics import YOLO
# Load a pretrained YOLO model
model = YOLO("yolo11n.pt")
# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
for result in results:
result.show()
راجع المزيد من الأمثلة التفصيلية في قسم وضع التنبؤ.
ما هي الأوضاع المختلفة المتوفرة في YOLO11 ؟
Ultralytics YOLO11 أنماطًا مختلفة لتلبية احتياجات سير عمل التعلُّم الآلي المختلفة. وتشمل هذه الأوضاع:
- القطار: تدريب نموذج باستخدام مجموعات بيانات مخصصة.
- فال: التحقق من صحة أداء النموذج على مجموعة التحقق من الصحة.
- التنبؤ: قم بعمل تنبؤات على الصور أو تدفقات الفيديو الجديدة.
- التصدير: تصدير النماذج إلى تنسيقات مختلفة مثل ONNX ، TensorRT.
- المسار: تتبع الأجسام في الوقت الحقيقي في تدفقات الفيديو.
- المعيار: أداء النموذج المعياري عبر تكوينات مختلفة.
تم تصميم كل وضع لتوفير وظائف شاملة لمراحل مختلفة من تطوير النموذج ونشره.
كيف يمكنني تدريب نموذج YOLO11 مخصص باستخدام مجموعة البيانات الخاصة بي؟
لتدريب نموذج YOLO11 مخصص، تحتاج إلى تحديد مجموعة البيانات الخاصة بك والمعلمات الفائقة الأخرى. إليك مثال سريع:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo11n.yaml")
# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)
لمزيد من التفاصيل حول التدريب والارتباطات التشعبية لأمثلة على الاستخدام، تفضل بزيارة صفحة "وضع التدريب".
كيف يمكنني تصدير نماذج YOLO11 للنشر؟
يعد تصدير النماذج YOLO11 بتنسيق مناسب للنشر أمرًا سهلاً ومباشرًا باستخدام export
وظيفة. على سبيل المثال، يمكنك تصدير نموذج إلى تنسيق ONNX :
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx")
للاطلاع على خيارات التصدير المختلفة، راجع وثائق وضع التصدير.
هل يمكنني التحقق من صحة نموذج YOLO11 الخاص بي على مجموعات بيانات مختلفة؟
نعم، يمكن التحقق من صحة نماذج YOLO11 على مجموعات بيانات مختلفة. بعد التدريب، يمكنك استخدام وضع التحقق من الصحة لتقييم الأداء:
from ultralytics import YOLO
# Load a YOLO11 model
model = YOLO("yolo11n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=5)
# Validate the model on a different dataset
model.val(data="path/to/separate/data.yaml")
راجع صفحة وضع فال للحصول على أمثلة مفصلة واستخدامات مفصلة.