Sitelet https://docs.ultralytics.com/ar/usage/python
Ultralytics YOLO27:

استخدام Python#

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



شاهد: إتقان Ultralytics YOLO: Python

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

Python
from ultralytics import YOLO

# ⁨إنشاء نموذج YOLO جديد من البداية⁩
model = YOLO("yolo26n.yaml")

# ⁨تحميل نموذج YOLO مدرّب مسبقًا (موصى به للتدريب)⁩
model = YOLO("yolo26n.pt")

# ⁨تدريب النموذج باستخدام مجموعة البيانات 'coco8.yaml' لمدة 3 عصور⁩
results = model.train(data="coco8.yaml", epochs=3)

# ⁨تقييم أداء النموذج على مجموعة التحقق⁩
results = model.val()

# ⁨إجراء كشف الكائنات في صورة باستخدام النموذج⁩
results = model("https://ultralytics.com/images/bus.jpg")

# ⁨تصدير النموذج إلى تنسيق ONNX⁩
success = model.export(format="onnx")

التدريب#

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

التدريب
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # ⁨مرّر أي نوع من النماذج⁩
results = model.train(epochs=5)

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

التحقق#

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

التحقق
from ultralytics import YOLO

# ⁨تحميل نموذج YOLO⁩
model = YOLO("yolo26n.yaml")

# ⁨تدريب النموذج⁩
model.train(data="coco8.yaml", epochs=5)

# ⁨التحقق باستخدام جزء التحقق من مجموعة بيانات التدريب⁩
model.val()

أمثلة التحقق

التنبؤ#

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

التنبؤ
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# ⁨يقبل جميع التنسيقات - image/dir/Path/URL/video/PIL/ndarray. 0 لكاميرا الويب⁩
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # ⁨عرض preds. يقبل جميع وسيطات تنبؤ YOLO⁩

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # ⁨حفظ الصور المرسومة⁩

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # ⁨حفظ التنبؤات كوسوم⁩

# ⁨من قائمة تضم PIL/ndarray⁩
results = model.predict(source=[im1, im2])

أمثلة التنبؤ

التصدير#

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

التصدير

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

from ultralytics import YOLO

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

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

التتبّع#

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

التتبّع
from ultralytics import YOLO

# ⁨تحميل نموذج⁩
model = YOLO("yolo26n.pt")  # ⁨تحميل نموذج كشف رسمي⁩
model = YOLO("yolo26n-seg.pt")  # ⁨تحميل نموذج تجزئة رسمي⁩
model = YOLO("path/to/best.pt")  # ⁨تحميل نموذج مخصص⁩

# ⁨التتبّع باستخدام النموذج⁩
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 وغيرها. ويمكن أن تساعد هذه المعلومات المستخدمين على اختيار تنسيق التصدير الأمثل لحالة الاستخدام الخاصة بهم، بناءً على متطلباتهم من حيث السرعة والدقة.

قياس الأداء

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

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  # ⁨مسار 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")

# ⁨استئناف تشغيل تدريب متوقف من آخر نقطة تحقق له⁩
trainer = DetectionTrainer(overrides={"resume": "path/to/last.pt"})
trainer.train()

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

دروس التخصيص

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

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

    from ultralytics import YOLO
    
    # ⁨تحميل نموذج YOLO مدرَّب مسبقًا⁩
    model = YOLO("yolo26n.pt")
    
    # ⁨إجراء كشف الكائنات في صورة⁩
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # ⁨تصوّر النتائج⁩
    for result in results:
        result.show()

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

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

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

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

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

    from ultralytics import YOLO
    
    # ⁨تحميل نموذج YOLO⁩
    model = YOLO("yolo26n.yaml")
    
    # ⁨تدريب النموذج باستخدام مجموعة بيانات مخصصة⁩
    model.train(data="path/to/your/dataset.yaml", epochs=10)

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

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

    from ultralytics import YOLO
    
    # ⁨تحميل نموذج YOLO⁩
    model = YOLO("yolo26n.pt")
    
    # ⁨تصدير النموذج إلى تنسيق ONNX⁩
    model.export(format="onnx")

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

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

    from ultralytics import YOLO
    
    # ⁨تحميل نموذج YOLO⁩
    model = YOLO("yolo26n.yaml")
    
    # ⁨تدريب النموذج⁩
    model.train(data="coco8.yaml", epochs=5)
    
    # ⁨التحقق من النموذج باستخدام مجموعة بيانات مختلفة⁩
    model.val(data="path/to/separate/data.yaml")

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

التعليقات