Ultralytics YOLO27:

نظرة عامة على مجموعات بيانات كشف الكائنات#

يتطلب تدريب نموذج متين ودقيق لـكشف الكائنات مجموعة بيانات شاملة. يقدم هذا الدليل تنسيقات مختلفة لمجموعات البيانات المتوافقة مع نموذج Ultralytics YOLO، ويعرض معلومات عن بنيتها واستخدامها وكيفية التحويل بين التنسيقات المختلفة.

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

تنسيق Ultralytics YOLO#

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

ultralytics/cfg/datasets/coco8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Classes
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

يقبل كل من train وval وtest دليلًا أو قائمة أدلة أو ملف *.txt يسرد مسار صورة واحدًا في كل سطر (تُفسّر المسارات التي تبدأ بـ./ نسبةً إلى ملف *.txt). يفيد ملف *.txt في التدريب على مجموعة فرعية من دليل، أو تخطي الصور غير الموسومة، أو دمج صور من مصادر متعددة في تقسيم واحد.

مسارات الصور في ملف `*.txt`
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
  0: person

ينبغي تصدير التسميات بهذا التنسيق إلى تنسيق YOLO، مع ملف *.txt واحد لكل صورة. إذا لم تتضمن الصورة أي كائنات، فلا حاجة إلى ملف *.txt. ينبغي تنسيق ملف *.txt بحيث يحتوي على صف واحد لكل كائن بتنسيق class x_center y_center width height. يجب أن تكون إحداثيات المربعات بتنسيق xywh مطبّع (من 0 إلى 1). إذا كانت مربعاتك بالبكسل، فقسّم x_center وwidth على عرض الصورة، وy_center وheight على ارتفاع الصورة. ينبغي أن يبدأ ترقيم الفئات من الصفر (يبدأ بـ0).

YOLO labeled image with bounding boxes on persons and tie

يحتوي ملف التسمية المقابل للصورة أعلاه على شخصين (الفئة 0) وربطة عنق (الفئة 27):

YOLO format label file with normalized coordinates

عند استخدام تنسيق Ultralytics YOLO، نظّم صور التدريب والتحقق وتسمياتها كما هو موضح في المثال أدناه من مجموعة بيانات COCO8.

YOLO dataset directory structure with train and val folders

مثال على الاستخدام#

إليك كيفية استخدام مجموعات البيانات بتنسيق YOLO لتدريب نموذجك:

مثال
from ultralytics import YOLO

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

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

تنسيق Ultralytics NDJSON#

يوفر تنسيق NDJSON (JSON المحدد بفواصل الأسطر) طريقة بديلة لتعريف مجموعات البيانات لنماذج Ultralytics YOLO. يخزن هذا التنسيق بيانات مجموعة البيانات الوصفية والتعليقات التوضيحية في ملف واحد، بحيث يحتوي كل سطر على كائن JSON منفصل.

يحتوي ملف مجموعة بيانات NDJSON على:

  1. سجل مجموعة البيانات (السطر الأول): يحتوي على البيانات الوصفية لمجموعة البيانات، بما في ذلك نوع المهمة وأسماء الفئات والمعلومات العامة
  2. سجلات الصور (الأسطر اللاحقة): تحتوي على بيانات كل صورة على حدة، بما في ذلك الأبعاد والتعليقات التوضيحية ومسارات الملفات
مثال على NDJSON
{
    "type": "dataset",
    "task": "detect",
    "name": "Example",
    "description": "COCO NDJSON example dataset",
    "url": "https://platform.ultralytics.com/user/datasets/example",
    "class_names": { "0": "person", "1": "bicycle", "2": "car" },
    "bytes": 426342,
    "version": 0,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2025-01-01T00:00:00Z"
}

بيانات وصفية مخصصة للصور#

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

{
    "type": "image",
    "file": "airbus-wing.jpg",
    "url": "https://example.com/airbus-wing.jpg",
    "split": "train",
    "metadata": {
        "aircraft": { "family": "A350", "section": "wing" },
        "inspectionStatus": "reviewed"
    }
}

تحدد المنصة الحد الأقصى لمفاتيح البيانات الوصفية ذات المستوى الأعلى بـ128 حرفًا، وللكائن المتسلسل للبيانات الوصفية لكل صورة بـ500,000 حرف، ولإجمالي البيانات الوصفية الفعالة في عملية استيراد NDJSON واحدة بـ500,000 حرف.

مثال على الاستخدام#

لاستخدام مجموعة بيانات NDJSON مع YOLO26، حدّد ببساطة مسار ملف .ndjson:

مثال
from ultralytics import YOLO

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

# ⁨التدريب باستخدام مجموعة بيانات NDJSON⁩
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)

مزايا تنسيق NDJSON#

  • ملف واحد: تُحفظ جميع معلومات مجموعة البيانات في ملف واحد
  • المعالجة المتدفقة: يمكن معالجة مجموعات البيانات الكبيرة سطرًا بسطر دون تحميلها بالكامل إلى الذاكرة
  • التكامل السحابي: يدعم عناوين URL للصور البعيدة من أجل التدريب السحابي
  • قابلية التوسعة: يسهل إضافة حقول بيانات وصفية مخصصة
  • التحكم في الإصدارات: يعمل تنسيق الملف الواحد جيدًا مع git وأنظمة التحكم في الإصدارات

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

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

  • African-wildlife: مجموعة بيانات تضم صورًا للحياة البرية الأفريقية، بما في ذلك الجاموس والفيلة ووحيد القرن والحُمُر الوحشية.
  • Argoverse: مجموعة بيانات Argoverse-HD لكشف الكائنات ثنائية الأبعاد، تضم 54,446 صورة للقيادة الذاتية في المناطق الحضرية عبر 8 فئات من كائنات الطريق.
  • Brain-tumor: مجموعة بيانات لكشف أورام الدماغ، تضم صور MRI أو صور الأشعة المقطعية مع تفاصيل عن وجود الورم وموقعه وخصائصه.
  • COCO: الأشياء الشائعة في سياقاتها (COCO) هي مجموعة بيانات واسعة النطاق لـكشف الكائنات وتجزئتها وإضافة التعليقات التوضيحية إلى الصور، وتضم 80 فئة من الكائنات.
  • COCO8: مجموعة فرعية أصغر تضم أول 8 صور من COCO train2017، منها 4 للتدريب و4 للتحقق، وهي مناسبة للاختبارات السريعة.
  • COCO8-Grayscale: إصدار بتدرج الرمادي من COCO8 أُنشئ بتحويل RGB إلى تدرج الرمادي، وهو مفيد لتقييم النماذج أحادية القناة.
  • COCO8-Multispectral: إصدار متعدد الأطياف من COCO8 ذي 10 قنوات، أُنشئ بالاستيفاء بين أطوال موجات RGB، وهو مفيد لتقييم النماذج المراعية للطيف.
  • COCO12-Formats: مجموعة بيانات اختبار تضم 12 صورة تغطي 12 تنسيقًا مدعومًا للصور (AVIF وBMP وDNG وHEIC وJP2 وJPEG وJPG وMPO وPNG وTIF وTIFF وWebP) للتحقق من مسارات تحميل الصور.
  • COCO16: مجموعة فرعية من أول 16 صورة من COCO train2017 (8 للتدريب و8 للتحقق)، مناسبة للاختبارات السريعة.
  • COCO32: مجموعة فرعية من أول 32 صورة من COCO train2017 (16 للتدريب و16 للتحقق)، مناسبة للاختبارات السريعة.
  • COCO64: مجموعة فرعية من أول 64 صورة من COCO train2017 (32 للتدريب و32 للتحقق)، مناسبة للاختبارات السريعة.
  • COCO128: مجموعة فرعية أصغر تضم أول 128 صورة من COCO train2017، وهي مناسبة للاختبارات.
  • Construction-PPE: مجموعة بيانات تضم عمال مواقع البناء مع معدات السلامة الموسومة، مثل الخوذ والسترات والقفازات والأحذية والنظارات الواقية، بما في ذلك تعليقات توضيحية عن المعدات المفقودة مثل no_helmet وno_goggle لمراقبة الامتثال في العالم الحقيقي.
  • Global Wheat 2020: مجموعة بيانات تتضمن صورًا لسنابل القمح، أُعدّت لتحدي القمح العالمي لعام 2020.
  • HomeObjects-3K: مجموعة بيانات للأغراض المنزلية الداخلية، بما في ذلك الأسرّة والكراسي وأجهزة التلفاز وغيرها؛ وهي مثالية لتطبيقات أتمتة المنازل الذكية والروبوتات والواقع المعزز وتحليل تخطيط الغرف.
  • KITTI: مجموعة بيانات تعرض مشاهد قيادة واقعية مع بيانات مجسمة وLiDAR وGPS/IMU، وتُستخدم هنا لمهام كشف الكائنات ثنائية الأبعاد، مثل تحديد السيارات والمشاة وراكبي الدراجات في البيئات الحضرية والريفية وعلى الطرق السريعة.
  • LVIS: مجموعة بيانات واسعة النطاق لاكتشاف الأجسام وتجزئة المثيلات، تضم 1,203 فئة من الأجسام.
  • Medical-pills: مجموعة بيانات تضم صورًا لحبوب الأدوية، مشروحة لتطبيقات مثل ضمان جودة المستحضرات الصيدلانية وفرز الحبوب والامتثال التنظيمي.
  • Objects365: مجموعة بيانات عالية الجودة وواسعة النطاق لكشف الكائنات، تضم 365 فئة من الكائنات وأكثر من 1.7 مليون صورة تدريب.
  • OpenImagesV7: مجموعة بيانات شاملة من Google تضم 1.7 مليون صورة تدريب و42 ألف صورة تحقق.
  • Roboflow 100: معيار متنوع لاكتشاف الكائنات يضم 100 مجموعة بيانات تغطي سبعة مجالات تصوير لتقييم النماذج تقييمًا شاملًا.
  • Signature: مجموعة بيانات تضم صورًا لوثائق متنوعة مع توقيعات موضّح عليها، وتدعم أبحاث التحقق من الوثائق واكتشاف الاحتيال.
  • SKU-110K: مجموعة بيانات تتميز بكثافة اكتشاف الكائنات في بيئات البيع بالتجزئة، وتضم أكثر من 11 ألف صورة و1.7 مليون مربع إحاطة.
  • TT100K: استكشف مجموعة بيانات إشارات المرور Tsinghua-Tencent 100K (TT100K)، التي تضم 16,817 صورة للمناظر من الشوارع ضمن 221 فئة من الإشارات، لدعم الكشف والتصنيف الموثوقين.
  • VisDrone: مجموعة بيانات تتضمن بيانات اكتشاف الأجسام وتتبع الأجسام المتعددة في صور التقطتها طائرات مسيّرة، وتضم أكثر من 10 آلاف صورة ومقاطع فيديو.
  • VOC: مجموعة بيانات Pascal Visual Object Classes (VOC) لاكتشاف الكائنات وتقسيمها، وتضم 20 فئة من الكائنات وأكثر من 11 ألف صورة.
  • xView: مجموعة بيانات لاكتشاف الأجسام في الصور الملتقطة من الأعلى، تضم 60 فئة من الأجسام وأكثر من مليون جسم مشروح.

إضافة مجموعة البيانات الخاصة بك#

إذا كانت لديك مجموعة بيانات خاصة بك وترغب في استخدامها لتدريب نماذج الكشف بتنسيق Ultralytics YOLO، فتأكد من توافقها مع التنسيق الموضح أعلاه ضمن «تنسيق Ultralytics YOLO». حوّل التعليقات التوضيحية إلى التنسيق المطلوب، وحدد المسارات وعدد الفئات وأسماءها في ملف إعداد YAML.

نقل تنسيقات التسميات أو تحويلها#

تحويل تنسيق مجموعة بيانات COCO إلى تنسيق YOLO#

يمكنك بسهولة تحويل التسميات من تنسيق مجموعة بيانات COCO الشائعة إلى تنسيق YOLO باستخدام مقتطف الشيفرة التالي:

مثال
from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

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

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

ما الخطوة التالية؟#

بعد تنسيق مجموعة البيانات، ابدأ تدريب نموذجك. ألست متأكدًا من النموذج المدرّب مسبقًا الذي ينبغي البدء به؟ قارن الخيارات ضمن عائلة نماذج YOLO26.

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

  • تنسيق Ultralytics YOLO هو إعداد منظّم لتعريف مجموعات البيانات في مشاريع التدريب. ويتضمن تحديد مسارات صور التدريب والتحقق والاختبار والتسميات المقابلة لها. على سبيل المثال:

    # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
    
    # COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
    # Documentation: https://docs.ultralytics.com/datasets/detect/coco8
    # Example usage: yolo train data=coco8.yaml
    # parent
    # ├── ultralytics
    # └── datasets
    #     └── coco8 ← downloads here (1 MB)
    
    # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
    path: coco8 # dataset root dir
    train: images/train # train images (relative to 'path') 4 images
    val: images/val # val images (relative to 'path') 4 images
    test: # test images (optional)
    
    # Classes
    names:
      0: person
      1: bicycle
      2: car
      3: motorcycle
      4: airplane
      5: bus
      6: train
      7: truck
      8: boat
      9: traffic light
      10: fire hydrant
      11: stop sign
      12: parking meter
      13: bench
      14: bird
      15: cat
      16: dog
      17: horse
      18: sheep
      19: cow
      20: elephant
      21: bear
      22: zebra
      23: giraffe
      24: backpack
      25: umbrella
      26: handbag
      27: tie
      28: suitcase
      29: frisbee
      30: skis
      31: snowboard
      32: sports ball
      33: kite
      34: baseball bat
      35: baseball glove
      36: skateboard
      37: surfboard
      38: tennis racket
      39: bottle
      40: wine glass
      41: cup
      42: fork
      43: knife
      44: spoon
      45: bowl
      46: banana
      47: apple
      48: sandwich
      49: orange
      50: broccoli
      51: carrot
      52: hot dog
      53: pizza
      54: donut
      55: cake
      56: chair
      57: couch
      58: potted plant
      59: bed
      60: dining table
      61: toilet
      62: tv
      63: laptop
      64: mouse
      65: remote
      66: keyboard
      67: cell phone
      68: microwave
      69: oven
      70: toaster
      71: sink
      72: refrigerator
      73: book
      74: clock
      75: vase
      76: scissors
      77: teddy bear
      78: hair drier
      79: toothbrush
    
    # Download script/URL (optional)
    download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

    تُحفظ التسميات في ملفات *.txt، بملف واحد لكل صورة، وتُنسّق على شكل class x_center y_center width height بإحداثيات مُطبّعة. للاطلاع على دليل مفصل، راجع مثال مجموعة بيانات COCO8.

  • يمكنك تحويل مجموعة بيانات COCO إلى تنسيق YOLO باستخدام أدوات التحويل من Ultralytics. إليك طريقة سريعة:

    from ultralytics.data.converter import convert_coco
    
    convert_coco(labels_dir="path/to/coco/annotations/")

    تحوّل هذه الشيفرة تعليقات COCO التوضيحية إلى تنسيق YOLO، ما يتيح دمجها بسلاسة مع نماذج Ultralytics YOLO. لمزيد من التفاصيل، راجع قسم نقل تنسيقات التسميات أو تحويلها.

  • يدعم Ultralytics YOLO مجموعة واسعة من مجموعات البيانات، ومنها:

    توفّر صفحة كل مجموعة بيانات معلومات مفصلة عن بنيتها واستخدامها، بما يلائم تدريب YOLO26 بكفاءة. استكشف القائمة الكاملة في قسم مجموعات البيانات المدعومة.

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

    مثال
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")  # ⁨تحميل نموذج مدرَّب مسبقًا⁩
    results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

    راجع قسم الاستخدام لمزيد من التفاصيل حول استخدام الأوضاع المختلفة، بما فيها أوامر CLI.

  • يوفر Ultralytics أمثلة وأدلة عملية عديدة لاستخدام YOLO26 في تطبيقات متنوعة. للاطلاع على نظرة شاملة، تفضل بزيارة مدونة Ultralytics، حيث تجد دراسات حالة ودروسًا مفصلة وتجارب من المجتمع تعرض اكتشاف الكائنات وتقسيمها وغير ذلك باستخدام YOLO26. وللاطلاع على أمثلة محددة، راجع صفحة وضع التنبؤ في الوثائق.

التعليقات