نظرة عامة على مجموعات بيانات اكتشاف الأجسام#
يتطلب تدريب نموذج قوي ودقيق لـ اكتشاف الأجسام مجموعة بيانات شاملة. يقدّم هذا الدليل تنسيقات متنوعة لمجموعات البيانات المتوافقة مع نموذج 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
# 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 على:
- سجل مجموعة البيانات (السطر الأول): يحتوي على البيانات الوصفية لمجموعة البيانات، بما في ذلك نوع المهمة وأسماء الفئات والمعلومات العامة
- سجلات الصور (الأسطر اللاحقة): تحتوي على بيانات الصور الفردية، بما في ذلك الأبعاد والتعليقات التوضيحية ومسارات الملفات
{
"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 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 حرف لكائن البيانات الوصفية المتسلسل لكل صورة، و500,000 حرف لإجمالي البيانات الوصفية الفعّالة في عملية استيراد NDJSON واحدة.
مثال على الاستخدام#
لاستخدام مجموعة بيانات 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#
- ملف واحد: جميع معلومات مجموعة البيانات موجودة في ملف واحد
- المعالجة المتدفقة: يمكن معالجة مجموعات البيانات الكبيرة سطرًا بسطر دون تحميلها بالكامل إلى الذاكرة
- التكامل السحابي: يدعم عناوين URL للصور البعيدة من أجل التدريب المستند إلى السحابة
- قابلية التوسّع: من السهل إضافة حقول بيانات وصفية مخصّصة
- التحكم في الإصدارات: يعمل تنسيق الملف الواحد جيدًا مع git وأنظمة التحكم في الإصدارات
مجموعات البيانات المدعومة#
إليك قائمة بالبيانات المدعومة ووصفاً موجزاً لكل منها. تُستضاف معظم مجموعات البيانات هذه أيضاً على منصة Ultralytics، حيث يمكنك تصفح الصور والتعليقات التوضيحية، وعرض إحصاءات مجموعة البيانات، واستنساخها للتدريب السحابي.
- African-wildlife: مجموعة بيانات تضم صورًا للحياة البرية الأفريقية، بما في ذلك الجاموس والفيل ووحيد القرن والحُمر الوحشية.
- Argoverse: مجموعة بيانات تحتوي على بيانات التتبع ثلاثي الأبعاد والتنبؤ بالحركة من البيئات الحضرية، مع تعليقات توضيحية غنية.
- Brain-tumor: مجموعة بيانات لاكتشاف أورام الدماغ، وتتضمن صور فحوصات MRI أو CT مع تفاصيل حول وجود الورم وموقعه وخصائصه.
- 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: مجموعة بيانات واسعة النطاق لاكتشاف الكائنات وتجزئتها وإنشاء أوصاف لها، وتضم 1203 فئات من الكائنات.
- Medical-pills: مجموعة بيانات تضم صورًا للأدوية على هيئة أقراص، مع تعليقات توضيحية لتطبيقات مثل ضمان الجودة الصيدلانية وفرز الأقراص والامتثال التنظيمي.
- Objects365: مجموعة بيانات عالية الجودة وواسعة النطاق لاكتشاف الكائنات، تضم 365 فئة من الكائنات وأكثر من 600 ألف صورة مشروحة.
- 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 (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. تحوّل العملية التعليقات التوضيحية المستندة إلى JSON في COCO إلى تنسيق 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") # Load a pretrained model results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)راجع قسم الاستخدام لمزيد من التفاصيل حول استخدام الأوضاع المختلفة، بما في ذلك أوامر CLI.
توفّر Ultralytics أمثلة وأدلة عملية عديدة لاستخدام YOLO26 في تطبيقات متنوعة. للحصول على نظرة شاملة، تفضل بزيارة مدونة Ultralytics، حيث يمكنك العثور على دراسات حالة وبرامج تعليمية مفصلة وقصص من المجتمع تعرض اكتشاف الأجسام والتجزئة وغير ذلك باستخدام YOLO26. وللاطلاع على أمثلة محددة، راجع قسم الاستخدام في الوثائق.