نظرة عامة على مجموعات بيانات كشف الكائنات#
يتطلب تدريب نموذج متين ودقيق لـكشف الكائنات مجموعة بيانات شاملة. يقدم هذا الدليل تنسيقات مختلفة لمجموعات البيانات المتوافقة مع نموذج Ultralytics YOLO، ويعرض معلومات عن بنيتها واستخدامها وكيفية التحويل بين التنسيقات المختلفة.
تنسيقات مجموعات البيانات المدعومة#
تنسيق Ultralytics YOLO#
تنسيق Ultralytics YOLO هو تنسيق إعداد لمجموعة البيانات يتيح لك تحديد الدليل الجذر لمجموعة البيانات، والمسارات النسبية إلى أدلة صور التدريب/التحقق/الاختبار أو ملفات *.txt التي تحتوي على مسارات الصور، وقاموسًا بأسماء الفئات. إليك مثالًا:
# 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 في التدريب على مجموعة فرعية من دليل، أو تخطي الصور غير الموسومة، أو دمج صور من مصادر متعددة في تقسيم واحد.
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).

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

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

مثال على الاستخدام#
إليك كيفية استخدام مجموعات البيانات بتنسيق 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 على:
- سجل مجموعة البيانات (السطر الأول): يحتوي على البيانات الوصفية لمجموعة البيانات، بما في ذلك نوع المهمة وأسماء الفئات والمعلومات العامة
- سجلات الصور (الأسطر اللاحقة): تحتوي على بيانات كل صورة على حدة، بما في ذلك الأبعاد والتعليقات التوضيحية ومسارات الملفات
{
"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. وللاطلاع على أمثلة محددة، راجع صفحة وضع التنبؤ في الوثائق.