Ultralytics YOLO27:
Get Started

اكتشاف الأجسام باستخدام Ultralytics YOLO#

Ultralytics YOLO object detection with bounding boxes

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

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



شاهد: اكتشاف الكائنات باستخدام نموذج Ultralytics YOLO مُدرّب مسبقًا.
نصيحة

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

النماذج#

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

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

النموذجالحجم
(بكسل)
mAPالتحقق
50-95
mAPالتحقق
50-95(e2e)
السرعة
CPU ONNX
(مللي ثانية)
السرعة
T4 TensorRT10
(ms)
المعاملات
(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 خاصة بنموذج واحد ومقياس واحد على مجموعة بيانات COCO val2017.
    أعِد إنتاج النتائج باستخدام yolo detect val data=coco.yaml device=0. أضف nms=False لإعادة إنتاج عمود e2e.
  • السرعة هي متوسط القياس على صور COCO val باستخدام ONNX على CPU وTensorRT10 على وحدة معالجة الرسومات NVIDIA T4.
    أعِد إنتاج النتائج باستخدام yolo detect val data=coco.yaml batch=1 device=0|cpu nms=False.
  • قيم المعلمات وFLOPs خاصة بالنماذج المدمجة بعد طي Conv/BatchNorm وإزالة فرع الاكتشاف غير المستخدم. تحتفظ نقاط التحقق المدرّبة مسبقًا ببنية التدريب الكاملة، وقد تُظهر أعدادًا أعلى.

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

التدريب#

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

مثال
from ultralytics import YOLO

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

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

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

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

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

التحقق#

تحقّق من دقة نموذج YOLO26n المدرّب. لا حاجة إلى تمرير أي وسائط، إذ يحتفظ model بـ data الخاص بالتدريب وبالوسائط على هيئة سمات للنموذج: يتحقّق path/to/best.pt الوارد في مثال التدريب من النتائج على COCO8. تسجّل الأوزان الرسمية مسار مجموعة بيانات التدريب الذي قد لا يكون موجودًا على جهازك، لذا تعود إلى coco8.yaml الافتراضي للمهمة مع إصدار تحذير. مرّر data للتحقق من النتائج على مجموعة بيانات أخرى.

مثال
from ultralytics import YOLO

# ⁨تحميل نموذج⁩
model = YOLO("yolo26n.pt")  # ⁨حمّل نموذجًا رسميًا⁩
model = YOLO("path/to/best.pt")  # ⁨تحميل نموذج مخصص⁩

# ⁨تحقّق من النموذج⁩
metrics = model.val()  # ⁨لا حاجة إلى وسيطات؛ إذ تُحفظ مجموعة البيانات والإعدادات⁩
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # ⁨قائمة تتضمن mAP50-95 لكل فئة⁩
metrics.box.image_metrics  # ⁨قاموس المقاييس لكل صورة، ويشمل precision وrecall وF1 وTP وFP وFN⁩

التنبؤ#

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

مثال
from ultralytics import YOLO

# ⁨تحميل نموذج⁩
model = YOLO("yolo26n.pt")  # ⁨حمّل نموذجًا رسميًا⁩
model = YOLO("path/to/best.pt")  # ⁨تحميل نموذج مخصص⁩

# ⁨أجرِ التنبؤ باستخدام النموذج⁩
results = model("https://ultralytics.com/images/bus.jpg")  # ⁨أجرِ التنبؤ على صورة⁩

# ⁨الوصول إلى النتائج⁩
for result in results:
    xywh = result.boxes.xywh  # ⁨مركز-x، مركز-y، العرض، الارتفاع⁩
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # ⁨أعلى اليسار-x، أعلى اليسار-y، أسفل اليمين-x، أسفل اليمين-y⁩
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # ⁨اسم فئة كل مربع⁩
    confs = result.boxes.conf  # ⁨درجة الثقة لكل مربع⁩

اطّلع على التفاصيل الكاملة لوضع 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 الخاصة بكل مهمة، راجع قسم نتائج التنبؤ حسب المهمة.

التصدير#

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

مثال
from ultralytics import YOLO

# ⁨تحميل نموذج⁩
model = YOLO("yolo26n.pt")  # ⁨حمّل نموذجًا رسميًا⁩
model = YOLO("path/to/best.pt")  # ⁨تحميل نموذج مخصص⁩

# ⁨صدّر النموذج⁩
model.export(format="onnx")

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

التنسيقوسيط formatالنموذجالبيانات الوصفيةالوسيطات
PyTorch-yolo26n.pt✅-
TorchScripttorchscriptyolo26n.torchscript✅imgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnx✅imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/✅imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engine✅imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackage✅imgsz, dynamic, quantize, nms, batch, device
Apple Core AIcoreaiyolo26n.aimodel✅imgsz, batch, quantize
TF SavedModelsaved_modelyolo26n_saved_model/✅imgsz, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pb❌imgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tflite✅imgsz, quantize, opset, data, fraction, device
LiteRTlitertyolo26n.tflite✅imgsz, quantize, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/✅imgsz, batch, device
MNNmnnyolo26n.mnn✅imgsz, 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.onnx✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
Hailohailoyolo26n_hailo_model/✅imgsz, name, quantize, data, fraction, simplify, conf, iou, device
Huawei Ascendascendyolo26n_ascend_model/✅imgsz, batch, name, quantize, opset, simplify, nms, device
AMD Xilinxxilinxyolo26n_xilinx_model/✅imgsz, name, quantize, data, fraction, opset, simplify, device

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

اطّلع على التفاصيل الكاملة لـexport في صفحة التصدير.

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

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

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

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

    للاطلاع على خيارات الإعداد التفصيلية، تفضّل بزيارة صفحة الإعدادات.

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

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

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

    مثال
    from ultralytics import YOLO
    
    # ⁨حمّل النموذج⁩
    model = YOLO("path/to/best.pt")
    
    # ⁨تحقّق من النموذج⁩
    metrics = model.val()
    print(metrics.box.map)  # mAP50-95

    لمزيد من تفاصيل التحقق، تفضّل بزيارة صفحة التحقق.

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

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

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

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

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

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

التعليقات