YOLO Vision 2026:

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

يتطلب تدريب نموذج اكتشاف كائنات قوي ودقيق مجموعة بيانات شاملة. يقدم هذا الدليل تنسيقات مختلفة لمجموعات البيانات المتوافقة مع نموذج 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

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
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://app.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 Platform، يتم تخزين البيانات الوصفية مع تلك الصورة ويمكن عرضها أو تعديلها من لوحة المعلومات الخاصة بها بملء الشاشة.

{
    "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

# Load a model
model = YOLO("yolo26n.pt")

# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)

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

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

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

فيما يلي قائمة بمجموعات البيانات المدعومة ووصف موجز لكل منها:

  • الحياة البرية الإفريقية: مجموعة بيانات تضم صوراً للحياة البرية الإفريقية، بما في ذلك الجاموس، والفيلة، ووحيد القرن، والحمير الوحشية.
  • Argoverse: مجموعة بيانات تحتوي على بيانات تتبع ثنائي الأبعاد وتنبؤ بالحركة من بيئات حضرية مع تعليقات توضيحية غنية.
  • أورام الدماغ: مجموعة بيانات لاكتشاف أورام الدماغ تتضمن صور تصوير بالرنين المغناطيسي أو الأشعة المقطعية مع تفاصيل حول وجود الورم وموقعه وخصائصه.
  • COCO: مجموعة بيانات الكائنات المشتركة في السياق (COCO) هي مجموعة بيانات واسعة النطاق لـ اكتشاف الكائنات، والتجزئة، والتعليق التوضيحي مع 80 فئة من الكائنات.
  • COCO8: مجموعة فرعية أصغر تضم أول 4 صور من بيانات تدريب وقياس COCO، وهي مناسبة للاختبارات السريعة.
  • COCO8-Grayscale: نسخة بالدرجات الرمادية من مجموعة COCO8 تم إنشاؤها عن طريق تحويل الألوان إلى درجات رمادية، وهي مفيدة لتقييم النماذج أحادية القناة.
  • COCO8-Multispectral: نسخة متعددة الطيف من مجموعة COCO8 تضم 10 قنوات تم إنشاؤها عن طريق استيفاء الأطوال الموجية لألوان RGB، وهي مفيدة لتقييم النماذج الواعية للطيف.
  • COCO12-Formats: مجموعة بيانات اختبار تحتوي على 12 صورة تغطي 12 تنسيق صور مدعوماً (AVIF، BMP، DNG، HEIC، JP2، JPEG، JPG، MPO، PNG، TIF، TIFF، WebP) للتحقق من خطوط أنابيب تحميل الصور.
  • COCO16: مجموعة فرعية تضم أول 16 صورة من بيانات تدريب COCO 2017 (8 تدريب + 8 تقييم)، وهي مناسبة للاختبارات السريعة.
  • COCO32: مجموعة فرعية تضم أول 32 صورة من بيانات تدريب COCO 2017 (16 تدريب + 16 تقييم)، وهي مناسبة للاختبارات السريعة.
  • COCO64: مجموعة فرعية تضم أول 64 صورة من بيانات تدريب COCO 2017 (32 تدريب + 32 تقييم)، وهي مناسبة للاختبارات السريعة.
  • COCO128: مجموعة فرعية أصغر تضم أول 128 صورة من بيانات تدريب COCO 2017، وهي مناسبة للاختبارات.
  • معدات الوقاية الشخصية في البناء: مجموعة بيانات تضم عمال مواقع البناء مع معدات سلامة مسجلة مثل الخوذات، والسترات، والقفازات، والأحذية، والنظارات واقية، وتتضمن تعليقات توضيحية للمعدات المفقودة مثل no_helmet وno_goggle لمراقبة الامتثال في العالم الحقيقي.
  • القمح العالمي 2020: مجموعة بيانات تحتوي على صور لرؤوس القمح لتحدي القمح العالمي 2020.
  • HomeObjects-3K: مجموعة بيانات للأدوات المنزلية الداخلية تشمل الأسرة، والكراسي، وأجهزة التلفزيون، وغيرها—وهي مثالية للتطبيقات في أتمتة المنازل الذكية، والروبوتات، والواقع المعزز، وتحليل تخطيط الغرف.
  • KITTI: مجموعة بيانات تتميز بمشاهد القيادة في العالم الحقيقي مع بيانات الستريو، وLiDAR، وGPS/IMU، وتُستخدم هنا لمهام اكتشاف الكائنات ثنائية الأبعاد مثل التعرف على السيارات، والمشاة، وراكبي الدراجات في البيئات الحضرية والريفية وعلى الطرق السريعة.
  • LVIS: مجموعة بيانات واسعة النطاق لاكتشاف الكائنات، والتجزئة، والتعليق التوضيحي مع 1203 فئات من الكائنات.
  • الحبوب الطبية: مجموعة بيانات تضم صوراً للحبوب الطبية، مع تعليقات توضيحية لتطبيقات مثل ضمان الجودة الدوائية، وفرز الحبوب، والامتثال التنظيمي.
  • Objects365: مجموعة بيانات عالية الجودة وواسعة النطاق لاكتشاف الكائنات مع 365 فئة كائنات وأكثر من 600 ألف صورة مصنفة.
  • OpenImagesV7: مجموعة بيانات شاملة من Google تضم 1.7 مليون صورة تدريب و42 ألف صورة للتحقق من الصحة.
  • Roboflow 100: معيار قياسي متنوع لاكتشاف الكائنات يضم 100 مجموعة بيانات تغطي سبعة مجالات للصور لتقييم النماذج بشكل شامل.
  • التوقيعات: مجموعة بيانات تضم صوراً لمستندات مختلفة مع توقيعات مسجلة، مما يدعم التحقق من المستندات وأبحاث الكشف عن الاحتيال.
  • SKU-110K: مجموعة بيانات تتميز باكتشاف الكائنات المزدحمة في بيئات البيع بالتجزئة مع أكثر من 11 ألف صورة و1.7 مليون صندوق محيط.
  • TT100K: استكشف مجموعة بيانات إشارات المرور Tsinghua-Tencent 100K (TT100K) التي تضم 16,817 صورة لشارع عبر 221 فئة إشارات من أجل اكتشاف وتصنيف قوي.
  • VisDrone: مجموعة بيانات تحتوي على بيانات اكتشاف الكائنات وتتبع متعدد الكائنات مأخوذة من صور ملتقطة بطائرات بدون طيار (درون) مع أكثر من 10 آلاف صورة وتسلسل فيديو.
  • VOC: مجموعة بيانات الفئات المرئية لباسكال (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.

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

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

بعد تنسيق مجموعة البيانات الخاصة بك، ابدأ تدريب نموذجك. ألسْتَ متأكداً من النموذج المدرب مسبقاً الذي يجب أن تبدأ به؟ قارن بين الخيارات في عائلة نماذج YOLO26.

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

ما هو تنسيق مجموعة بيانات Ultralytics YOLO وكيفية هيكلته؟#

تنسيق 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؟#

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

from ultralytics.data.converter import convert_coco

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

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

ما هي مجموعات البيانات المدعومة من قبل Ultralytics YOLO لاكتشاف الكائنات؟#

يدعم Ultralytics YOLO مجموعة واسعة من مجموعات البيانات، بما في ذلك:

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

كيف أبدأ في تدريب نموذج YOLO26 باستخدام مجموعة البيانات الخاصة بي؟#

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

مثال
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

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

أين يمكنني العثور على أمثلة عملية لاستخدام Ultralytics YOLO لاكتشاف الكائنات؟#

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

التعليقات