مجموعة بيانات COCO
تعد COCO (الكائنات الشائعة في السياق) مجموعة بيانات واسعة النطاق للكشف عن الكائنات وتقسيمها وتسميتها. وهي مصممة لتشجيع البحث حول مجموعة واسعة من فئات الكائنات وتستخدم بشكل شائع لقياس نماذج رؤية الكمبيوتر. إنها مجموعة بيانات أساسية للباحثين والمطورين الذين يعملون على مهام الكشف عن الكائنات وتقسيمها وتقدير الوضع.
شاهد: نظرة عامة على مجموعة بيانات Ultralytics COCO
نماذج COCO المدربة مسبقًا
النموذج | الحجم (بالبكسل) |
mAPval 50-95 |
السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) |
السرعة T4 TensorRT10 (بالمللي ثانية) |
المعلمات (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLO11n | 640 | 39.5 | 56.1 ± 0.8 | 1.5 ± 0.0 | 2.6 | 6.5 |
YOLO11s | 640 | 47.0 | 90.0 ± 1.2 | 2.5 ± 0.0 | 9.4 | 21.5 |
YOLO11m | 640 | 51.5 | 183.2 ± 2.0 | 4.7 ± 0.1 | 20.1 | 68.0 |
YOLO11l | 640 | 53.4 | 238.6 ± 1.4 | 6.2 ± 0.1 | 25.3 | 86.9 |
YOLO11x | 640 | 54.7 | 462.8 ± 6.7 | 11.3 ± 0.2 | 56.9 | 194.9 |
الميزات الرئيسية
- تحتوي COCO على 330 ألف صورة، مع وجود تعليقات توضيحية لـ 200 ألف صورة لمهام الكشف عن الكائنات والتجزئة والوصف.
- تتكون مجموعة البيانات من 80 فئة من الكائنات، بما في ذلك الكائنات الشائعة مثل السيارات والدراجات والحيوانات، بالإضافة إلى فئات أكثر تحديدًا مثل المظلات وحقائب اليد والمعدات الرياضية.
- تتضمن التعليقات التوضيحية مربعات إحاطة الكائنات وأقنعة التجزئة والتسميات التوضيحية لكل صورة.
- توفر COCO مقاييس تقييم موحدة مثل متوسط الدقة المتوسطة (mAP) لاكتشاف الكائنات، ومتوسط الاسترجاع (mAR) لمهام التجزئة، مما يجعلها مناسبة لمقارنة أداء النماذج.
هيكل مجموعة البيانات
تنقسم مجموعة بيانات COCO إلى ثلاث مجموعات فرعية:
- Train2017: تحتوي هذه المجموعة الفرعية على 118 ألف صورة لتدريب نماذج الكشف عن الكائنات والتجزئة والتعليق.
- Val2017: تحتوي هذه المجموعة الفرعية على 5 آلاف صورة تستخدم لأغراض التحقق أثناء تدريب النموذج.
- Test2017: تتكون هذه المجموعة الفرعية من 20 ألف صورة تستخدم لاختبار وتقييم النماذج المدربة. التعليقات التوضيحية للحقيقة الأساسية لهذه المجموعة الفرعية غير متاحة للعامة، ويتم إرسال النتائج إلى خادم تقييم COCO لتقييم الأداء.
التطبيقات
تستخدم مجموعة بيانات COCO على نطاق واسع لتدريب وتقييم نماذج التعلم العميق في اكتشاف الكائنات (مثل Ultralytics YOLO و Faster R-CNN و SSD) و تجزئة المثيلات (مثل Mask R-CNN) واكتشاف النقاط الرئيسية (مثل OpenPose). إن مجموعة البيانات المتنوعة من فئات الكائنات والعدد الكبير من الصور المشروحة ومقاييس التقييم الموحدة تجعلها موردًا أساسيًا لباحثي وممارسي رؤية الكمبيوتر.
ملف YAML لمجموعة البيانات
يتم استخدام ملف YAML (وهي لغة ترميز أخرى) لتحديد تكوين مجموعة البيانات. يحتوي على معلومات حول مسارات مجموعة البيانات وفئاتها ومعلومات أخرى ذات صلة. في حالة مجموعة بيانات COCO، فإن coco.yaml
يتم الاحتفاظ بالملف في https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml.
ultralytics/cfg/datasets/coco.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO 2017 dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/detect/coco/
# Example usage: yolo train data=coco.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco ← downloads here (20.1 GB)
# 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: coco # dataset root dir
train: train2017.txt # train images (relative to 'path') 118287 images
val: val2017.txt # val images (relative to 'path') 5000 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794
# 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: |
from pathlib import Path
from ultralytics.utils.downloads import download
# Download labels
segments = True # segment or box labels
dir = Path(yaml["path"]) # dataset root dir
url = "https://github.com/ultralytics/assets/releases/download/v0.0.0/"
urls = [url + ("coco2017labels-segments.zip" if segments else "coco2017labels.zip")] # labels
download(urls, dir=dir.parent)
# Download data
urls = [
"http://images.cocodataset.org/zips/train2017.zip", # 19G, 118k images
"http://images.cocodataset.org/zips/val2017.zip", # 1G, 5k images
"http://images.cocodataset.org/zips/test2017.zip", # 7G, 41k images (optional)
]
download(urls, dir=dir / "images", threads=3)
الاستخدام
لتدريب نموذج YOLO11n على مجموعة بيانات COCO لعدد 100 حقبة (epochs) بحجم صورة 640، يمكنك استخدام مقتطفات التعليمات البرمجية التالية. للحصول على قائمة شاملة بالوسائط المتاحة، ارجع إلى صفحة تدريب النموذج.
مثال على التدريب
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco.yaml model=yolo11n.pt epochs=100 imgsz=640
عينات من الصور والشروحات التوضيحية
تحتوي مجموعة بيانات COCO على مجموعة متنوعة من الصور مع فئات كائنات مختلفة ومشاهد معقدة. فيما يلي بعض الأمثلة على الصور من مجموعة البيانات، جنبًا إلى جنب مع التعليقات التوضيحية المقابلة لها:
- صورة مجمعة: توضح هذه الصورة دفعة تدريبية تتكون من صور مجموعة بيانات مجمعة. التجميع هو أسلوب يستخدم أثناء التدريب يجمع بين صور متعددة في صورة واحدة لزيادة تنوع الكائنات والمشاهد داخل كل دفعة تدريبية. يساعد هذا في تحسين قدرة النموذج على التعميم على أحجام الكائنات ونسب العرض إلى الارتفاع والسياقات المختلفة.
يوضح المثال تنوع وتعقيد الصور في مجموعة بيانات COCO وفوائد استخدام التجميع أثناء عملية التدريب.
الاقتباسات والإقرارات
إذا كنت تستخدم مجموعة بيانات COCO في عملك البحثي أو التطويري، فيرجى الاستشهاد بالورقة التالية:
@misc{lin2015microsoft,
title={Microsoft COCO: Common Objects in Context},
author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
year={2015},
eprint={1405.0312},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
نود أن نعرب عن تقديرنا لـ COCO Consortium لإنشاء هذا المورد القيم والحفاظ عليه لمجتمع رؤية الكمبيوتر. لمزيد من المعلومات حول مجموعة بيانات COCO ومنشئيها، قم بزيارة موقع مجموعة بيانات COCO.
الأسئلة الشائعة
ما هي مجموعة بيانات COCO ولماذا هي مهمة لرؤية الكمبيوتر؟
تعتبر مجموعة بيانات COCO (الكائنات الشائعة في السياق) مجموعة بيانات واسعة النطاق تستخدم في الكشف عن الكائنات والتجزئة والتعليق. تحتوي على 330 ألف صورة مع تعليقات توضيحية مفصلة لـ 80 فئة من الكائنات، مما يجعلها ضرورية لتقييم وتدريب نماذج رؤية الكمبيوتر. يستخدم الباحثون COCO نظرًا لفئاتها المتنوعة ومقاييس التقييم الموحدة مثل متوسط الدقة Precision (mAP).
كيف يمكنني تدريب نموذج YOLO باستخدام مجموعة بيانات COCO؟
لتدريب نموذج YOLO11 باستخدام مجموعة بيانات COCO، يمكنك استخدام مقتطفات التعليمات البرمجية التالية:
مثال على التدريب
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco.yaml model=yolo11n.pt epochs=100 imgsz=640
راجع صفحة التدريب لمزيد من التفاصيل حول الحجج المتاحة.
ما هي الميزات الرئيسية لمجموعة بيانات COCO؟
تتضمن مجموعة بيانات COCO ما يلي:
- 330 ألف صورة، مع شرح 200 ألف صورة لاكتشاف الكائنات وتقسيمها وتسميتها.
- 80 فئة من الكائنات تتراوح من العناصر الشائعة مثل السيارات والحيوانات إلى عناصر محددة مثل حقائب اليد والمعدات الرياضية.
- مقاييس تقييم موحدة لاكتشاف الكائنات (mAP) وتقسيمها (متوسط الاسترجاع المتوسط، mAR).
- تقنية الفسيفساء في دفعات التدريب لتحسين تعميم النموذج عبر مختلف أحجام وسياقات الكائنات.
أين يمكنني العثور على نماذج YOLO11 المدربة مسبقًا على مجموعة بيانات COCO؟
يمكن تنزيل نماذج YOLO11 المدربة مسبقًا على مجموعة بيانات COCO من الروابط المتوفرة في الوثائق. تتضمن الأمثلة:
تختلف هذه النماذج في الحجم و mAP وسرعة الاستدلال، مما يوفر خيارات لمتطلبات الأداء والموارد المختلفة.
كيف يتم تنظيم مجموعة بيانات COCO وكيف يمكنني استخدامها؟
تنقسم مجموعة بيانات COCO إلى ثلاث مجموعات فرعية:
- Train2017: 118 ألف صورة للتدريب.
- Val2017: 5 آلاف صورة للتحقق من الصحة أثناء التدريب.
- Test2017: 20 ألف صورة لتقييم النماذج المدربة. يجب إرسال النتائج إلى خادم تقييم COCO لتقييم الأداء.
يتوفر ملف تكوين YAML لمجموعة البيانات في coco.yaml، والذي يحدد المسارات والفئات وتفاصيل مجموعة البيانات.