Skip to main content

استخدام Python

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



Watch: Mastering Ultralytics YOLO: Python

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

Python
from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.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("yolo26n.pt")  # pass any model type
results = model.train(epochs=5)

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

التحقق (Val)

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

التحقق (Val)
from ultralytics import YOLO

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

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

# Validate on training data
model.val()

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

التنبؤ

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

التنبؤ
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])

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

التصدير

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

التصدير

تصدير نموذج YOLO رسمي إلى ONNX بحجم دفعة (batch-size) وحجم صورة ديناميكيين.

from ultralytics import YOLO

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

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

التتبع (Track)

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

التتبع (Track)
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official detection model
model = YOLO("yolo26n-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")

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

قياس الأداء (Benchmark)

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

قياس الأداء (Benchmark)

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

from ultralytics.utils.benchmarks import benchmark

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

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

استخدام المدربين (Trainers)

فئة النموذج YOLO تعمل كغلاف عالي المستوى لفئات المدرب (Trainer). لكل مهمة YOLO مدرب خاص بها، يرث من BaseTrainer. تتيح هذه البنية مرونة أكبر وتخصيصًا في سير عمل تعلم الآلة.

مثال على مدرب الكشف
from ultralytics.models.yolo.detect 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("yolo26n.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 أوضاعًا متنوعة لتلبية تعلم الآلة سير العمل المختلفة. وتشمل هذه:

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

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

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

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

from ultralytics import YOLO

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

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

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

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

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

from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo26n.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")

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

التعليقات