[Go to site: main page, start]

أمان جاهز للمؤسسات: متوافق مع ISO 27001 و SOC 2 Type I.

استخدام Python#

مرحباً بكم في توثيق استخدام Ultralytics YOLO عبر Python! صُمم هذا الدليل لمساعدتك على دمج Ultralytics YOLO بسلاسة في مشاريع Python الخاصة بك لمهام object detection، وinstance segmentation، وsemantic segmentation، وdepth estimation، وclassification. ستتعلم هنا كيفية تحميل واستخدام النماذج المدربة مسبقاً، وتدريب نماذج جديدة، وإجراء التنبؤات على الصور. تُعد واجهة 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)

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

التحقق#

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

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

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

التنبؤ#

يُستخدم وضع التنبؤ لإجراء تنبؤات باستخدام نموذج 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])

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

التصدير#

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

التصدير

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

from ultralytics import YOLO

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

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

التتبع#

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

التتبع
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)#

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

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

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

from ultralytics.utils.benchmarks import benchmark

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

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

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

تعمل فئة النموذج YOLO كغلاف عالي المستوى لفئات المدرب (Trainer classes). لكل مهمة من مهام 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 أوضاعاً متنوعة لتلبية احتياجات تعلم الآلة المختلفة. وتشمل هذه:

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

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

كيف أقوم بتدريب نموذج 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")

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

التعليقات