Ultralytics YOLO27:

اكتشاف الكائنات باستخدام Ultralytics YOLO#

Ultralytics YOLO object detection with bounding boxes

اكتشاف الكائنات هو مهمة تتضمن تحديد مواضع الكائنات وفئاتها في صورة أو دفق فيديو.

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



Watch: Object Detection with Pretrained Ultralytics YOLO Model.
نصيحة

نماذج YOLO26 Detect هي نماذج YOLO26 الافتراضية، أي yolo26n.pt، وهي مدرّبة مسبقًا على COCO.

النماذج#

تظهر هنا نماذج YOLO26 Detect المدرّبة مسبقًا. نماذج Detect وSegment وPose مدرّبة مسبقًا على مجموعة بيانات COCO، ونماذج Semantic مدرّبة مسبقًا على Cityscapes، ونماذج Classify مدرّبة مسبقًا على مجموعة بيانات ImageNet.

تُنَزَّل النماذج تلقائيًا من أحدث إصدار من Ultralytics عند الاستخدام لأول مرة.

النموذجالحجم
(بكسل)
mAPval
50-95
mAPval
50-95(e2e)
السرعة
CPU ONNX
(مللي ثانية)
السرعة
T4 TensorRT10
(مللي ثانية)
المعاملات
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.5
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.9
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.4
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.8
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7194.4
  • mAPval values are for single-model single-scale on COCO val2017 dataset.
    Reproduce by yolo val detect data=coco.yaml device=0. Add nms=False to reproduce the e2e column.
  • السرعة هي المتوسط عبر صور COCO val باستخدام مثيل Amazon EC2 P4d.
    يمكن إعادة الإنتاج باستخدام yolo val detect data=coco.yaml batch=1 device=0|cpu nms=False
  • Params and FLOPs values are for fused models after Conv/BatchNorm folding and removal of the unused detection branch. Pretrained checkpoints retain the full training architecture and may show higher counts.

راجع معاينة YOLO27 غير الإصدار الرسمي للاطلاع على نتائج اكتشاف COCO الأولية.

التدريب#

درّب YOLO26n على مجموعة بيانات COCO8 لمدة 100 حقبة وبحجم صورة 640. للحصول على قائمة كاملة بالوسائط المتاحة، راجع صفحة Configuration.

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

اطّلع على التفاصيل الكاملة لوضع train في صفحة Train. ويمكن أيضًا تدريب نماذج الكشف باستخدام التدريب السحابي على Ultralytics Platform.

تنسيق مجموعة البيانات#

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

التحقق#

تحقّق من دقة نموذج YOLO26n المدرّب على مجموعة بيانات COCO8. لا حاجة إلى أي وسائط، إذ إن model يحتفظ بـ data ووسائط التدريب كسمات للنموذج.

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

التنبؤ#

استخدم نموذج YOLO26n المدرّب لإجراء التنبؤات على الصور.

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xywh = result.boxes.xywh  # center-x, center-y, width, height
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # top-left-x, top-left-y, bottom-right-x, bottom-right-y
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # class name of each box
    confs = result.boxes.conf  # confidence score of each box

راجع تفاصيل الوضع predict الكاملة في صفحة التنبؤ.

مخرجات النتائج#

يعيد اكتشاف الكائنات كائن Results واحدًا لكل صورة. وحقل التنبؤ الأساسي هو result.boxes، الذي يحتوي على إحداثيات المربع ومعرّفات الفئات ودرجات الثقة لكل كائن مكتشف.

السمةالنوعالشكلالوصف
result.boxesBoxes(N)مربعات الكشف.
result.boxes.datatorch.float32(N,6/7)[x1,y1,x2,y2,conf,cls] الخام، بالإضافة إلى معرّف التتبع الاختياري.
result.boxes.xyxytorch.float32(N,4)مربعات البكسلات xyxy.
result.boxes.conftorch.float32(N,)درجات الثقة.
result.boxes.clstorch.float32(N,)معرّفات الفئات؛ حوّلها إلى int للحصول على الأسماء.

للاطلاع على حقول Results الخاصة بالمهمة عبر جميع المهام، راجع قسم نتائج التنبؤ حسب المهمة.

التصدير#

صدّر نموذج YOLO26n إلى تنسيق مختلف مثل ONNX أو CoreML أو غيرهما.

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

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

تظهر تنسيقات تصدير YOLO26 المتاحة في الجدول أدناه. يمكنك التصدير إلى أي تنسيق باستخدام الوسيطة format، أي format='onnx' أو format='engine'. ويمكنك إجراء التنبؤ أو التحقق مباشرةً على النماذج المُصدّرة، أي yolo predict model=yolo26n.onnx. تظهر أمثلة الاستخدام لنموذجك بعد اكتمال التصدير.

التنسيقوسيط formatالنموذجالبيانات الوصفيةالوسائط
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz، quantize، dynamic، nms، batch، device
ONNXonnxyolo26n.onnximgsz، quantize، dynamic، simplify، opset، nms، batch، data، fraction، device
OpenVINOopenvinoyolo26n_openvino_model/imgsz، quantize، dynamic، nms، batch، data، fraction، device
TensorRTengineyolo26n.engineimgsz، quantize، dynamic، simplify، opset، workspace، nms، batch، data، fraction، device
CoreMLcoremlyolo26n.mlpackageimgsz، dynamic، quantize، nms، batch، device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz، keras، quantize، opset، nms، batch، data، fraction، device
TF GraphDefpbyolo26n.pbimgsz، opset، batch، device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz، quantize، opset، data، fraction، device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz، batch، device
MNNmnnyolo26n.mnnimgsz، batch، dynamic، quantize، simplify، opset، nms، device
NCNNncnnyolo26n_ncnn_model/imgsz، quantize، batch، device
IMX500imxyolo26n_imx_model/imgsz، quantize، data، fraction، nms، device
RKNNrknnyolo26n_rknn_model/imgsz، batch، name، quantize، simplify، opset، data، fraction، device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz، batch، device
Axeleraaxelerayolo26n_axelera_model/imgsz، batch، quantize، data، fraction، device
DEEPXdeepxyolo26n_deepx_model/imgsz، quantize، simplify، opset، data، optimize، device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz، batch، name، quantize، simplify، opset، data، fraction، device
LiteRTlitertyolo26n.tfliteimgsz، quantize، batch، data، fraction، device
Hailohailoyolo26n_hailo_model/imgsz، name، quantize، data، fraction، simplify، conf، iou
Huawei Ascendascendyolo26n_ascend_model/imgsz، batch، name، quantize، opset، simplify، nms
Apple Core AIcoreaiyolo26n.aimodelimgsz، batch، quantize

يفترض nms=None المخرجات الخام لـ NMS الخارجي. قم بتعيين nms=False لتحديد رأس متاح خالٍ من NMS؛ وتتراجع التنسيقات غير المدعومة إلى مسار إخراجها الأصلي. وتحدد مُدخلات nms أعلاه التنسيقات التي يمكنها تضمين NMS باستخدام nms=True.

راجع تفاصيل export الكاملة في صفحة التصدير.

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

  • نعم. يغطي دليل البدء السريع لـ Ultralytics Platform سير عمل قائمًا على المتصفح لإضافة التعليقات التوضيحية إلى مجموعات البيانات، وتدريب نماذج الكشف على وحدات GPU السحابية، ونشرها إلى نقاط نهاية الاستدلال.

  • يتضمن تدريب نموذج YOLO26 على مجموعة بيانات مخصصة بضع خطوات:

    1. إعداد مجموعة البيانات: تأكد من أن مجموعة بياناتك بتنسيق YOLO. للحصول على الإرشادات، راجع دليل مجموعات البيانات.
    2. تحميل النموذج: استخدم مكتبة Ultralytics YOLO لتحميل نموذج مدرّب مسبقًا أو إنشاء نموذج جديد من ملف YAML.
    3. تدريب النموذج: نفّذ الطريقة train في Python أو الأمر yolo detect train في CLI.
    مثال
    from ultralytics import YOLO
    
    # Load a pretrained model
    model = YOLO("yolo26n.pt")
    
    # Train the model on your custom dataset
    model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)

    للحصول على خيارات التهيئة التفصيلية، انتقل إلى صفحة Configuration.

  • يوفر Ultralytics YOLO26 نماذج مدرّبة مسبقًا متنوعة لـاكتشاف الكائنات، وتجزئة الكائنات، والتجزئة الدلالية، وتقدير الوضعية. هذه النماذج مدرّبة مسبقًا على مجموعة بيانات COCO، أو Cityscapes لمهام التجزئة الدلالية، أو ImageNet لمهام التصنيف. فيما يلي بعض النماذج المتاحة:

    للحصول على قائمة تفصيلية ومقاييس الأداء، راجع قسم Models.

  • للتحقق من دقة نموذج YOLO26 المدرّب، يمكنك استخدام الطريقة .val() في Python أو الأمر yolo detect val في CLI. سيوفر ذلك مقاييس مثل mAP50-95 وmAP50 وغيرها.

    مثال
    from ultralytics import YOLO
    
    # Load the model
    model = YOLO("path/to/best.pt")
    
    # Validate the model
    metrics = model.val()
    print(metrics.box.map)  # mAP50-95

    لمزيد من تفاصيل التحقق، انتقل إلى صفحة Val.

  • يتيح Ultralytics YOLO26 تصدير النماذج إلى تنسيقات متنوعة مثل ONNX وTensorRT وCoreML وغيرها، لضمان التوافق عبر مختلف المنصات والأجهزة.

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

    تحقق من القائمة الكاملة للتنسيقات المدعومة والتعليمات في صفحة Export.

  • صُمم Ultralytics YOLO26 لتقديم أداء متطور لـاكتشاف الكائنات، وتجزئة الكائنات، والتجزئة الدلالية، وتقدير الوضعية. فيما يلي بعض المزايا الرئيسية:

    1. النماذج المدرّبة مسبقًا: استفد من نماذج مدرّبة مسبقًا على مجموعات بيانات شائعة مثل COCO وImageNet لتسريع عملية التطوير.
    2. الدقة العالية: يحقق درجات mAP متميزة، مما يضمن اكتشافًا موثوقًا للكائنات.
    3. السرعة: مُحسّن لـالاستدلال في الوقت الفعلي، مما يجعله مثاليًا للتطبيقات التي تتطلب معالجة سريعة.
    4. المرونة: صدّر النماذج إلى تنسيقات متنوعة مثل ONNX وTensorRT لنشرها عبر منصات متعددة.

    استكشف مدونتنا للاطلاع على حالات الاستخدام وقصص النجاح التي تعرض YOLO26 أثناء العمل.

التعليقات