COCO Veri Seti
COCO (Common Objects in Context) veri kümesi büyük ölçekli bir nesne algılama, segmentasyon ve altyazı oluşturma veri kümesidir. Çok çeşitli nesne kategorileri üzerine araştırmaları teşvik etmek için tasarlanmıştır ve bilgisayarla görme modellerini kıyaslamak için yaygın olarak kullanılır. Nesne algılama, segmentasyon ve poz tahmini görevleri üzerinde çalışan araştırmacılar ve geliştiriciler için önemli bir veri kümesidir.
İzle: Ultralytics COCO Veri Setine Genel Bakış
COCO Önceden Eğitilmiş Modeller
Model | boyut (piksel) |
mAPval 50-95 |
Hız CPU ONNX (ms) |
Hız T4TensorRT10 (ms) |
params (M) |
FLOP'lar (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 |
Temel Özellikler
- COCO, nesne algılama, segmentasyon ve altyazı görevleri için ek açıklamalara sahip 200K görüntü ile 330K görüntü içerir.
- Veri kümesi, arabalar, bisikletler ve hayvanlar gibi yaygın nesnelerin yanı sıra şemsiyeler, el çantaları ve spor malzemeleri gibi daha spesifik kategoriler de dahil olmak üzere 80 nesne kategorisinden oluşmaktadır.
- Ek açıklamalar, her görüntü için nesne sınırlayıcı kutuları, segmentasyon maskeleri ve başlıkları içerir.
- COCO, nesne algılama için Ortalama Ortalama Hassasiyet (mAP) ve segmentasyon görevleri için Ortalama Ortalama Geri Çağırma (mAR) gibi standartlaştırılmış değerlendirme metrikleri sağlayarak model performansını karşılaştırmak için uygun hale getirir.
Veri Kümesi Yapısı
COCO veri seti üç alt kümeye ayrılmıştır:
- Train2017: Bu alt küme, nesne algılama, segmentasyon ve altyazı modellerini eğitmek için 118 bin görüntü içerir.
- Val2017: Bu alt kümede model eğitimi sırasında doğrulama amacıyla kullanılan 5K görüntü bulunmaktadır.
- Test2017: Bu alt küme, eğitilen modellerin test edilmesi ve kıyaslanması için kullanılan 20 bin görüntüden oluşmaktadır. Bu alt küme için temel gerçek açıklamaları kamuya açık değildir ve sonuçlar performans değerlendirmesi için COCO değerlendirme sunucusuna gönderilir.
Uygulamalar
COCO veri seti, nesne algılama ( YOLO, Faster R-CNN ve SSD gibi), örnek segmentasyonu (Mask R-CNN gibi) ve kilit nokta algılama (OpenPose gibi) alanlarında derin öğrenme modellerini eğitmek ve değerlendirmek için yaygın olarak kullanılmaktadır. Veri setinin çeşitli nesne kategorileri, çok sayıda açıklamalı görüntü ve standartlaştırılmış değerlendirme metrikleri, onu bilgisayarla görme araştırmacıları ve uygulayıcıları için önemli bir kaynak haline getirmektedir.
Veri Kümesi YAML
Veri kümesi yapılandırmasını tanımlamak için bir YAML (Yet Another Markup Language) dosyası kullanılır. Veri kümesinin yolları, sınıfları ve diğer ilgili bilgiler hakkında bilgi içerir. COCO veri kümesi söz konusu olduğunda coco.yaml
dosyası şu adreste tutulur https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml.
ultralytics/cfg/datasets/coco.yaml
# Ultralytics YOLO 🚀, AGPL-3.0 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: ../datasets/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 ultralytics.utils.downloads import download
from pathlib import Path
# 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)
Kullanım
Bir YOLO11n modelini COCO veri kümesi üzerinde 640 görüntü boyutuyla 100 epok için eğitmek için aşağıdaki kod parçacıklarını kullanabilirsiniz. Kullanılabilir bağımsız değişkenlerin kapsamlı bir listesi için Model Eğitimi sayfasına bakın.
Tren Örneği
Örnek Görüntüler ve Açıklamalar
COCO veri kümesi, çeşitli nesne kategorileri ve karmaşık sahneler içeren çok çeşitli görüntüler içermektedir. Aşağıda, ilgili açıklamalarıyla birlikte veri kümesinden bazı görüntü örnekleri yer almaktadır:
- Mozaiklenmiş Görüntü: Bu görüntü, mozaiklenmiş veri kümesi görüntülerinden oluşan bir eğitim grubunu göstermektedir. Mozaikleme, eğitim sırasında kullanılan ve her bir eğitim grubundaki nesne ve sahne çeşitliliğini artırmak için birden fazla görüntüyü tek bir görüntüde birleştiren bir tekniktir. Bu, modelin farklı nesne boyutlarına, en boy oranlarına ve bağlamlara genelleme yeteneğini geliştirmeye yardımcı olur.
Bu örnek, COCO veri setindeki görüntülerin çeşitliliğini ve karmaşıklığını ve eğitim sürecinde mozaikleme kullanmanın faydalarını göstermektedir.
Atıflar ve Teşekkür
Araştırma veya geliştirme çalışmalarınızda COCO veri setini kullanıyorsanız, lütfen aşağıdaki makaleye atıfta bulunun:
@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}
}
Bilgisayarla görme topluluğu için bu değerli kaynağı yaratan ve sürdüren COCO Konsorsiyumu'na teşekkür ederiz. COCO veri seti ve yaratıcıları hakkında daha fazla bilgi için COCO veri seti web sitesini ziyaret edin.
SSS
COCO veri seti nedir ve bilgisayarla görme için neden önemlidir?
COCO veri kümesi (Common Objects in Context) nesne algılama, segmentasyon ve başlıklandırma için kullanılan büyük ölçekli bir veri kümesidir. 80 nesne kategorisi için ayrıntılı açıklamalar içeren 330 bin görüntü içerdiğinden bilgisayarla görme modellerinin kıyaslanması ve eğitilmesi için çok önemlidir. Araştırmacılar, çeşitli kategorileri ve Ortalama Ortalama Hassasiyet (mAP) gibi standartlaştırılmış değerlendirme metrikleri nedeniyle COCO'yu kullanmaktadır.
COCO veri setini kullanarak bir YOLO modelini nasıl eğitebilirim?
COCO veri kümesini kullanarak bir YOLO11 modelini eğitmek için aşağıdaki kod parçacıklarını kullanabilirsiniz:
Tren Örneği
Mevcut argümanlar hakkında daha fazla bilgi için Eğitim sayfasına bakın.
COCO veri setinin temel özellikleri nelerdir?
COCO veri seti şunları içerir:
- Nesne algılama, segmentasyon ve altyazı ekleme için 200K'sı açıklamalı 330K görüntü.
- Arabalar ve hayvanlar gibi yaygın nesnelerden el çantaları ve spor malzemeleri gibi özel nesnelere kadar 80 nesne kategorisi.
- Nesne algılama (mAP) ve segmentasyon (ortalama Ortalama Geri Çağırma, mAR) için standartlaştırılmış değerlendirme metrikleri.
- Çeşitli nesne boyutları ve bağlamları arasında model genellemesini geliştirmek için eğitim gruplarında mozaikleme tekniği.
COCO veri kümesi üzerinde eğitilmiş ön eğitimli YOLO11 modellerini nerede bulabilirim?
COCO veri setindeki önceden eğitilmiş YOLO11 modelleri belgelerde verilen bağlantılardan indirilebilir. Örnekler şunları içerir:
Bu modeller boyut, mAP ve çıkarım hızı bakımından farklılık göstererek farklı performans ve kaynak gereksinimleri için seçenekler sunar.
COCO veri seti nasıl yapılandırılmıştır ve nasıl kullanabilirim?
COCO veri seti üç alt kümeye ayrılmıştır:
- Train2017: Eğitim için 118K görüntü.
- Val2017: Eğitim sırasında doğrulama için 5K görüntü.
- Test2017: Eğitilmiş modelleri kıyaslamak için 20K görüntü. Sonuçların performans değerlendirmesi için COCO değerlendirme sunucusuna gönderilmesi gerekir.
Veri kümesinin YAML yapılandırma dosyası, yolları, sınıfları ve veri kümesi ayrıntılarını tanımlayan coco.yaml adresinde mevcuttur.