Ultralytics YOLO27:

مجموعة بيانات COCO12-Formats#

مقدمة#

مجموعة بيانات COCO12-Formats من Ultralytics هي مجموعة اختبار متخصصة صُممت للتحقق من تحميل الصور عبر 12 امتدادًا لتنسيقات الصور المدعومة. تضم 12 صورة (6 للتدريب و6 للتحقق)، محفوظة كل منها بتنسيق مختلف لضمان اختبار شامل لمسار تحميل الصور.

هذه المجموعة قيّمة للغاية من أجل:

  • اختبار دعم تنسيقات الصور: التحقق من تحميل تنسيقات الصور الشائعة على نحو صحيح
  • مسارات CI/CD: الاختبار الآلي لتوافق التنسيقات
  • تصحيح الأخطاء: عزل المشكلات الخاصة بتنسيقات معينة في مسارات التدريب
  • التطوير: التحقق من الإضافات أو التغييرات الجديدة على التنسيقات

عند إدارة مجموعات البيانات على منصة Ultralytics، تُعالَج الصور بهذه التنسيقات تلقائيًا، من دون الحاجة إلى تحويل يدوي.

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

تتضمن مجموعة البيانات صورة واحدة لكل تنسيق من 12 تنسيقًا من امتدادات الصور الـ13 في IMG_FORMATS (المعرّفة في ultralytics/data/utils.py)؛ كما أن .heif مدعوم، لكن لا تتوفر له صورة نموذجية:

التنسيقالامتدادالوصفالتدريب/التحقق
AVIF.avifتنسيق ملفات الصور AV1 (حديث)التدريب
BMP.bmpصورة نقطية - تنسيق نقطي غير مضغوطالتدريب
DNG.dngDigital Negative - تنسيق RAW من Adobeالتدريب
HEIC.heicترميز الصور عالي الكفاءةالتدريب
JPEG.jpegJPEG بامتداد كاملالتدريب
JPG.jpgJPEG بامتداد مختصرالتدريب
JP2.jp2JPEG 2000 - للاستخدامات الطبية والجغرافية المكانيةالتحقق
MPO.mpoكائن متعدد الصور (صور مجسمة)التحقق
PNG.pngرسومات الشبكة المحمولةالتحقق
TIF.tifTIFF بامتداد مختصرالتحقق
TIFF.tiffتنسيق ملفات الصور الموسومالتحقق
WebP.webpتنسيق صور حديث للويبالتحقق

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

coco12-formats/
├── images/
│   ├── train/          # 6 images (avif, bmp, dng, heic, jpeg, jpg)
│   └── val/            # 6 images (jp2, mpo, png, tif, tiff, webp)
├── labels/
│   ├── train/          # Corresponding YOLO format labels
│   └── val/
└── coco12-formats.yaml # Dataset configuration

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

تُهيَّأ مجموعة بيانات COCO12-Formats باستخدام ملف YAML يحدد مسارات مجموعة البيانات وأسماء الفئات. يمكنك مراجعة الملف الرسمي coco12-formats.yaml في مستودع Ultralytics على GitHub.

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

# COCO12-Formats dataset (12 images testing all supported image formats) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco12-formats
# Example usage: yolo train data=coco12-formats.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco12-formats ← 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: coco12-formats # dataset root dir
train: images/train # train images (relative to 'path') 6 images
val: images/val # val images (relative to 'path') 6 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/coco12-formats.zip

المتطلبات#

لا يلزم أي إعداد يدوي. يقرأ OpenCV معظم التنسيقات مباشرة، ويلجأ Ultralytics إلى Pillow عند التعامل مع AVIF وHEIC وHEIF. يفك Pillow 11.3 أو أحدث ترميز AVIF مباشرة، لذا حدّث Pillow إذا تعذر تحميل ملفات AVIF؛ أما فك ترميز HEIC/HEIF فيثبّت تلقائيًا الحزمة الخفيفة pi-heif عند الاستخدام لأول مرة.

الاستخدام#

تُنزَّل مجموعة بيانات COCO12-Formats تلقائيًا عند بدء التدريب لأول مرة، ويبلغ حجمها 1 MB. لتدريب نموذج YOLO على مجموعة بيانات COCO12-Formats، استخدم الأمثلة التالية:

مثال على التدريب
from ultralytics import YOLO

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

# ⁨درّب على COCO12-Formats لاختبار 12 تنسيقًا مدعومًا للصور⁩
results = model.train(data="coco12-formats.yaml", epochs=1, imgsz=640)

ملاحظات خاصة بكل تنسيق#

AVIF (تنسيق ملفات الصور AV1)#

AVIF تنسيق صور حديث يستند إلى برنامج ترميز الفيديو AV1، ويوفر ضغطًا ممتازًا. يفك Ultralytics ترميزه عبر Pillow 11.3 أو أحدث عندما لا يدعم OpenCV تنسيق AVIF، ولا يتطلب ذلك تثبيت حزم إضافية.

DNG (Digital Negative)#

DNG هو تنسيق RAW مفتوح من Adobe يستند إلى TIFF. ولأغراض الاختبار، تستخدم مجموعة البيانات ملفات تستند إلى TIFF بامتداد .dng.

JP2 (JPEG 2000)#

JPEG 2000 معيار لضغط الصور يستند إلى المويجات، ويوفر ضغطًا وجودة أفضل من JPEG التقليدي. يُستخدم عادةً في التصوير الطبي (DICOM) والتطبيقات الجغرافية المكانية والسينما الرقمية. ويدعمه كل من OpenCV وPillow مباشرةً.

MPO (كائن متعدد الصور)#

تُستخدم ملفات MPO للصور المجسمة (ثلاثية الأبعاد). تخزّن مجموعة البيانات بيانات JPEG قياسية بامتداد .mpo لاختبار التنسيق.

HEIC / HEIF (تنسيق ملفات الصور عالي الكفاءة)#

يشير الامتدادان .heic و.heif إلى الحاوية نفسها ISO/IEC 23008-12. ووفقًا للعرف، يشير .heic إلى ملفات HEIF المشفّرة باستخدام HEVC (النوع الذي تنتجه أجهزة Apple)، بينما يُعد .heif الامتداد الأوسع نطاقًا.

يفك Ultralytics ترميز كليهما عبر مسار الرجوع من OpenCV إلى Pillow في ultralytics/utils/patches.py، والذي يثبّت تلقائيًا pi-heif (خفيف ومخصص لفك الترميز فقط) عند الاستخدام لأول مرة؛ ولا يلزم إعداد يدوي للقراءة. لإنشاء ملفات HEIC/HEIF بنفسك (مثلًا، لإعادة ترميز الصور النموذجية)، ثبّت الحزمة الكاملة pillow-heif التي تتضمن برامج ترميز:

pip install pillow-heif

حالات الاستخدام#

اختبار CI/CD#

from ultralytics import YOLO

def test_image_formats():
    """Test that 12 supported image formats load correctly."""
    model = YOLO("yolo26n.pt")
    results = model.train(data="coco12-formats.yaml", epochs=1, imgsz=64)
    assert results is not None

التحقق من صحة التنسيق#

from pathlib import Path

from ultralytics.data.utils import IMG_FORMATS

# Verify all dataset formats are supported
dataset_dir = Path("datasets/coco12-formats/images")
found_formats = {f.suffix[1:].lower() for f in dataset_dir.rglob("*.*")}
assert found_formats <= IMG_FORMATS, f"Unsupported formats: {found_formats - IMG_FORMATS}"

الاستشهادات والشكر والتقدير#

إذا استخدمت مجموعة بيانات 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{\'a}r},
      year={2015},
      eprint={1405.0312},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

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

  • صُممت مجموعة بيانات COCO12-Formats لاختبار توافق تنسيقات الصور في مسارات التدريب لدى Ultralytics YOLO. وهي تضمن تحميل تنسيقات الصور الـ12 المدعومة (AVIF وBMP وDNG وHEIC وJP2 وJPEG وJPG وMPO وPNG وTIF وTIFF وWebP) ومعالجتها على نحو صحيح.

  • لكل تنسيق صور خصائص فريدة (كالضغط وعمق البت ومساحات الألوان). ويضمن اختبار جميع التنسيقات ما يلي:

    • متانة شيفرة تحميل الصور
    • التوافق مع مجموعات بيانات متنوعة
    • الكشف المبكر عن الأخطاء الخاصة بتنسيقات معينة
  • لا يتطلب أي منها تثبيتًا يدويًا. يفك Pillow 11.3 أو أحدث ترميز AVIF مباشرةً، كما يثبّت فك ترميز HEIC/HEIF الحزمة pi-heif تلقائيًا عند الاستخدام لأول مرة. ثبّت الحزمة الكاملة pillow-heif فقط إذا كنت بحاجة إلى كتابة ملفات HEIC/HEIF بنفسك.

التعليقات