تخطي إلى المحتوى

استخدام Python

مرحبًا بك في وثائق استخدام Ultralytics YOLO Python! تم تصميم هذا الدليل لمساعدتك على دمج Ultralytics YOLO بسلاسة في مشاريع Python الخاصة بك من أجل اكتشاف الكائنات و التجزئة و التصنيف. ستتعلم هنا كيفية تحميل واستخدام النماذج المدربة مسبقًا وتدريب نماذج جديدة وإجراء تنبؤات على الصور. تعد واجهة Python سهلة الاستخدام مصدرًا قيمًا لأي شخص يتطلع إلى دمج YOLO في مشاريع Python الخاصة به، مما يسمح لك بتنفيذ قدرات متقدمة لاكتشاف الكائنات بسرعة. هيا بنا نبدأ!



شاهد: إتقان Ultralytics YOLO: بايثون

على سبيل المثال، يمكن للمستخدمين تحميل نموذج وتدريبه وتقييم أدائه على مجموعة التحقق وحتى تصديره إلى تنسيق 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")

تدريب

يستخدم وضع التدريب لتدريب نموذج YOLO على مجموعة بيانات مخصصة. في هذا الوضع، يتم تدريب النموذج باستخدام مجموعة البيانات والمعلمات الفائقة المحددة. تتضمن عملية التدريب تحسين معلمات النموذج بحيث يمكنه التنبؤ بدقة بفئات ومواقع الكائنات في الصورة.

تدريب

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # pass any model type
results = model.train(epochs=5)
from ultralytics import YOLO

model = YOLO("yolo11n.yaml")
results = model.train(data="coco8.yaml", epochs=5)
model = YOLO("last.pt")
results = model.train(resume=True)

أمثلة على التدريب

التحقق

وضع التحقق (Val mode) يستخدم للتحقق من صحة نموذج YOLO بعد تدريبه. في هذا الوضع، يتم تقييم النموذج على مجموعة التحقق لقياس دقته وأداء التعميم. يمكن استخدام هذا الوضع لضبط المعلمات الفائقة للنموذج لتحسين أدائه.

التحقق

from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo11n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on training data
model.val()
from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo11n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on separate data
model.val(data="path/to/separate/data.yaml")

أمثلة على التحقق من الصحة

توقع

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

توقع

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()

أمثلة على التنبؤ

تصدير

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

تصدير

تصدير نموذج YOLO رسمي إلى ONNX مع حجم دفعة وحجم صورة ديناميكيين.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="onnx", dynamic=True)

تصدير نموذج YOLO رسمي إلى TensorRT على device=0 للتسريع على أجهزة CUDA.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="engine", device=0)

أمثلة على التصدير

تتبع

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

تتبع

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")

أمثلة على التتبع

قياس الأداء

وضع القياس يستخدم لتقييم سرعة ودقة تنسيقات التصدير المختلفة لـ YOLO. توفر المعايير معلومات حول حجم التنسيق المصدر، و mAP50-95 مقاييس (لكشف وتجزئة الكائنات) أو accuracy_top5 مقاييس الأداء (للتصنيف)، ووقت الاستدلال بالمللي ثانية لكل صورة عبر تنسيقات تصدير متنوعة مثل ONNX، OpenVINO، TensorRT وغيرها. يمكن أن تساعد هذه المعلومات المستخدمين على اختيار تنسيق التصدير الأمثل لحالة الاستخدام المحددة الخاصة بهم بناءً على متطلباتهم للسرعة والدقة.

قياس الأداء

قياس أداء نموذج YOLO رسمي عبر جميع تنسيقات التصدير.

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

أمثلة على القياس

استخدام المدربين

في 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 = DetectionTrainer(overrides=overrides)

يمكنك بسهولة تخصيص المدربين لدعم المهام المخصصة أو استكشاف أفكار البحث والتطوير. يتيح لك التصميم المعياري لـ Ultralytics YOLO تكييف الإطار مع احتياجاتك الخاصة، سواء كنت تعمل على مهمة رؤية حاسوبية جديدة أو تقوم بضبط النماذج الحالية لتحسين الأداء.

دروس التخصيص

الأسئلة الشائعة

كيف يمكنني دمج YOLO في مشروع Python الخاص بي للكشف عن الأجسام؟

يعد دمج Ultralytics YOLO في مشاريع 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()

شاهد أمثلة أكثر تفصيلاً في قسم وضع التوقع الخاص بنا.

ما هي الأوضاع المختلفة المتوفرة في YOLO؟

توفر Ultralytics YOLO أوضاعًا مختلفة لتلبية احتياجات سير عمل التعلم الآلي المختلفة. وتشمل هذه:

  • تدريب: تدريب نموذج باستخدام مجموعات بيانات مخصصة.
  • تقييم: تقييم أداء النموذج على مجموعة التحقق.
  • توقع: إجراء تنبؤات على صور جديدة أو تدفقات فيديو.
  • Export: تصدير النماذج إلى تنسيقات مختلفة مثل ONNX و TensorRT.
  • تتبع: تتبع الكائنات في الوقت الفعلي في تدفقات الفيديو.
  • قياس: قياس أداء النموذج عبر تكوينات مختلفة.

تم تصميم كل وضع لتوفير وظائف شاملة لمراحل مختلفة من تطوير النموذج ونشره.

كيف يمكنني تدريب نموذج YOLO مخصص باستخدام مجموعة البيانات الخاصة بي؟

لتدريب نموذج YOLO مخصص، تحتاج إلى تحديد مجموعة البيانات الخاصة بك والمعلمات الفائقة (hyperparameters) الأخرى. إليك مثال سريع:

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)

لمزيد من التفاصيل حول التدريب والروابط التشعبية لأمثلة الاستخدام، قم بزيارة صفحة وضع التدريب الخاصة بنا.

كيف يمكنني تصدير نماذج YOLO لنشرها؟

يعد تصدير نماذج YOLO بتنسيق مناسب للنشر أمرًا سهلاً باستخدام export وظيفة. على سبيل المثال، يمكنك تصدير نموذج إلى تنسيق ONNX:

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
model.export(format="onnx")

لخيارات التصدير المختلفة، راجع وثائق وضع التصدير.

هل يمكنني التحقق من صحة نموذج YOLO الخاص بي على مجموعات بيانات مختلفة؟

نعم، من الممكن التحقق من صحة نماذج YOLO على مجموعات بيانات مختلفة. بعد التدريب، يمكنك استخدام وضع التحقق لتقييم الأداء:

from ultralytics import YOLO

# Load a YOLO 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")

تحقق من صفحة وضع التحقق للحصول على أمثلة مفصلة واستخدام.



📅 أُنشئ منذ سنة واحدة ✏️ تم التحديث منذ 3 أشهر

تعليقات