Ultralytics YOLO27:

استخدام بايثون#

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



Watch: Mastering Ultralytics YOLO: Python

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

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

التدريب#

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

التدريب
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # pass any model type
results = model.train(epochs=5)

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

التحقق#

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

التحقق
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()

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

التنبؤ#

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

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

أمثلة التنبؤ

التصدير#

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

التصدير

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

from ultralytics import YOLO

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

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

تتبع#

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

تتبع
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")

أمثلة التتبع

المعيار#

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

المعيار

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

from ultralytics.utils.benchmarks import benchmark

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

أمثلة القياس المقارن

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

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

مثال مدرب الاكتشاف
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

overrides = {"model": "yolo26n.pt", "data": "coco8.yaml", "epochs": 3}

# Trainer
trainer = DetectionTrainer(overrides=overrides)
trainer.train()
trained_model = trainer.best  # path to best.pt

# Validator
validator = DetectionValidator(args={"data": "coco8.yaml"})
validator(model=trained_model)

# Predictor
predictor = DetectionPredictor(overrides={"model": trained_model})
predictor(source="https://ultralytics.com/images/bus.jpg")

# Resume from the last checkpoint
trainer = DetectionTrainer(overrides={**overrides, "resume": trainer.last})

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

دروس التخصيص

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

  • يُعد دمج يولو من أولتراليتكس في مشاريع بايثون الخاصة بك أمرًا بسيطًا. يمكنك تحميل نموذج مدرب مسبقًا أو تدريب نموذج جديد من الصفر. إليك كيفية البدء:

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

    راجع المزيد من الأمثلة التفصيلية في قسم وضع التنبؤ لدينا.

  • يوفر يولو من أولتراليتكس أوضاعًا متنوعة لتلبية متطلبات التعلم الآلي المختلفة. وتشمل هذه:

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

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

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

    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 بتنسيق ملائم للنشر أمرًا مباشرًا باستخدام الدالة export. على سبيل المثال، يمكنك تصدير نموذج إلى تنسيق ONNX:

    from ultralytics import YOLO
    
    # Load the YOLO model
    model = YOLO("yolo26n.pt")
    
    # Export the model to ONNX format
    model.export(format="onnx")

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

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

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

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

التعليقات