Nesne Algılama Veri Kümelerine Genel Bakış#
Sağlam ve doğru bir nesne algılama modeli eğitmek için kapsamlı bir veri kümesi gerekir. Bu kılavuz, Ultralytics YOLO modeliyle uyumlu çeşitli veri kümesi biçimlerini tanıtır; yapılarına ve kullanımlarına, ayrıca farklı biçimler arasında dönüştürme yöntemlerine dair bilgiler sunar.
Desteklenen Veri Kümesi Biçimleri#
Ultralytics YOLO biçimi#
Ultralytics YOLO biçimi; veri kümesinin kök dizinini, eğitim/doğrulama/test görüntü dizinlerinin göreli yollarını veya görüntü yollarını içeren *.txt dosyalarını ve sınıf adlarından oluşan bir sözlüğü tanımlamanı sağlayan bir veri kümesi yapılandırma biçimidir. İşte bir örnek:
# 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.ziptrain, val ve test öğelerinin her biri bir dizin, dizin listesi veya her satırda bir görüntü yolu bulunan *.txt dosyası kabul eder (./ ile başlayan yollar, *.txt dosyasına göre çözümlenir). *.txt dosyası; bir dizinin alt kümesiyle eğitim yapmak, etiketsiz görüntüleri atlamak veya birden fazla kaynaktaki görüntüleri tek bir bölüme birleştirmek için kullanışlıdır.
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: personBu biçimdeki etiketler, YOLO biçiminde ve her görüntü için bir *.txt dosyası olacak şekilde dışa aktarılmalıdır. Bir görüntüde nesne yoksa *.txt dosyası gerekmez. *.txt dosyası, class x_center y_center width height biçiminde her nesne için bir satır içermelidir. Kutu koordinatları normalize edilmiş xywh biçiminde (0 ile 1 arasında) olmalıdır. Kutuların piksel cinsindense x_center ve width değerlerini görüntü genişliğine; y_center ve height değerlerini ise görüntü yüksekliğine bölmelisin. Sınıf numaraları sıfırdan indekslenmelidir (0'dan başlamalıdır).

Yukarıdaki görüntüye karşılık gelen etiket dosyasında 2 kişi (sınıf 0) ve bir kravat (sınıf 27) bulunur:

Ultralytics YOLO biçimini kullanırken eğitim ve doğrulama görüntülerini ve etiketlerini aşağıdaki COCO8 veri kümesi örneğinde gösterildiği gibi düzenle.

Kullanım Örneği#
Modelini eğitmek için YOLO biçimindeki veri kümelerini şöyle kullanabilirsin:
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n.pt") # Önceden eğitilmiş bir model yükle (eğitim için önerilir)
# Modeli eğit
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Ultralytics NDJSON biçimi#
NDJSON (Yeni Satırla Sınırlandırılmış JSON) biçimi, Ultralytics YOLO modelleri için veri kümelerini tanımlamanın alternatif bir yolunu sunar. Bu biçimde, veri kümesi meta verileri ve etiketleri tek bir dosyada saklanır ve her satır ayrı bir JSON nesnesi içerir.
Bir NDJSON veri kümesi dosyası şunları içerir:
- Veri kümesi kaydı (ilk satır): Görev türü, sınıf adları ve genel bilgiler dahil olmak üzere veri kümesi meta verilerini içerir
- Görüntü kayıtları (sonraki satırlar): Boyutlar, etiketler ve dosya yolları dahil olmak üzere ayrı görüntü verilerini içerir
{
"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"
}Özel görüntü meta verileri#
Her görüntü kaydı; çekim koşulları, ekipman tanımlayıcıları veya inceleme durumu gibi uygulamaya özgü bağlam bilgileri için bir metadata JSON nesnesi içerebilir. İç içe değerler desteklenir. Ultralytics Platform'a aktarıldığında meta veriler ilgili görüntüyle birlikte saklanır ve görüntünün tam ekran bilgi panelinden görüntülenebilir veya düzenlenebilir.
{
"type": "image",
"file": "airbus-wing.jpg",
"url": "https://example.com/airbus-wing.jpg",
"split": "train",
"metadata": {
"aircraft": { "family": "A350", "section": "wing" },
"inspectionStatus": "reviewed"
}
}Platform, en üst düzey meta veri anahtarlarını 128 karakterle, her görüntünün serileştirilmiş meta veri nesnesini 500.000 karakterle ve tek bir NDJSON içe aktarımındaki toplam etkin meta veriyi 500.000 karakterle sınırlar.
Kullanım Örneği#
YOLO26 ile bir NDJSON veri kümesi kullanmak için .ndjson dosyasının yolunu belirtmen yeterlidir:
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n.pt")
# NDJSON veri kümesini kullanarak eğit
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)NDJSON biçiminin avantajları#
- Tek dosya: Tüm veri kümesi bilgileri tek bir dosyada bulunur
- Akış işleme: Her şeyi belleğe yüklemeden büyük veri kümelerini satır satır işleyebilir
- Bulut entegrasyonu: Bulut tabanlı eğitim için uzak görüntü URL'lerini destekler
- Genişletilebilirlik: Özel meta veri alanları eklemek kolaydır
- Sürüm denetimi: Tek dosyalı biçim, git ve sürüm denetimi sistemleriyle iyi çalışır
Desteklenen Veri Kümeleri#
Desteklenen veri kümelerinin listesi ve her biri için kısa bir açıklama aşağıda verilmiştir. Bu veri kümelerinin çoğu, görüntülere ve etiketlere göz atabileceğin, veri kümesi istatistiklerini görüntüleyebileceğin ve bulut eğitimi için kopyalayabileceğin Ultralytics Platform üzerinde de barındırılır.
- African-wildlife: Bufalo, fil, gergedan ve zebralar dahil Afrika yaban hayatının görüntülerini içeren bir veri kümesi.
- Argoverse: 8 yol nesnesi sınıfını kapsayan, şehir içi otonom sürüş görüntülerinden oluşan 54.446 görüntülük Argoverse-HD 2D algılama veri kümesi.
- Brain-tumor: Beyin tümörlerini algılamaya yönelik bu veri kümesi, tümörün varlığı, konumu ve özelliklerine ilişkin ayrıntıları içeren MRI veya CT tarama görüntülerinden oluşur.
- COCO: Bağlamda Yaygın Nesneler (COCO), 80 nesne kategorisi içeren büyük ölçekli bir nesne algılama, segmentasyon ve altyazı veri kümesidir.
- COCO8: COCO train2017'deki ilk 8 görüntünün 4'ü eğitim, 4'ü doğrulama için kullanılan daha küçük bir alt kümesi; hızlı testler için uygundur.
- COCO8-Grayscale: RGB'nin gri tonlamaya dönüştürülmesiyle oluşturulan, tek kanallı model değerlendirmesi için kullanışlı bir COCO8 gri tonlama sürümü.
- COCO8-Multispectral: RGB dalga boylarının enterpolasyonuyla oluşturulan, spektral farkındalıklı model değerlendirmesi için kullanışlı, 10 kanallı çok spektrumlu bir COCO8 sürümü.
- COCO12-Formats: Görüntü yükleme işlem hatlarını doğrulamak için desteklenen 12 görüntü biçimini (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) kapsayan 12 görüntülük bir test veri kümesi.
- COCO16: Hızlı testlere uygun, COCO train2017'nin ilk 16 görüntüsünden oluşan bir alt küme (8 eğitim + 8 doğrulama).
- COCO32: Hızlı testlere uygun, COCO train2017'nin ilk 32 görüntüsünden oluşan bir alt küme (16 eğitim + 16 doğrulama).
- COCO64: Hızlı testlere uygun, COCO train2017'nin ilk 64 görüntüsünden oluşan bir alt küme (32 eğitim + 32 doğrulama).
- COCO128: COCO train2017'deki ilk 128 görüntünün testler için uygun, daha küçük bir alt kümesi.
- Construction-PPE: Baret, yelek, eldiven, bot ve koruyucu gözlük gibi güvenlik ekipmanları etiketlenmiş şantiye çalışanlarının görüntülerini içeren; gerçek dünya uyumluluk takibi için no_helmet ve no_goggle gibi eksik ekipman etiketlerine de yer veren bir veri kümesi.
- Global Wheat 2020: 2020 Global Wheat Challenge için buğday başaklarının görüntülerini içeren bir veri kümesi.
- HomeObjects-3K: Yatak, sandalye, TV ve daha fazlası gibi ev eşyalarını içeren bir iç mekân veri kümesi; akıllı ev otomasyonu, robotik, artırılmış gerçeklik ve oda düzeni analizi uygulamaları için idealdir.
- KITTI: Stereo, LiDAR ve GPS/IMU verileri içeren gerçek dünya sürüş sahnelerinden oluşan bu veri kümesi, şehir içi, kırsal ve otoyol ortamlarında otomobil, yaya ve bisikletli algılama gibi 2D nesne algılama görevlerinde kullanılır.
- LVIS: 1.203 nesne kategorisi içeren, büyük ölçekli bir nesne algılama ve örnek segmentasyonu veri kümesi.
- Medical-pills: İlaç kalitesi güvencesi, hapları sınıflandırma ve mevzuata uygunluk gibi uygulamalar için etiketlenmiş tıbbi hap görüntülerini içeren bir veri kümesi.
- Objects365: 365 nesne kategorisi ve 1,7 milyondan fazla eğitim görüntüsü içeren, nesne algılama için yüksek kaliteli ve büyük ölçekli bir veri kümesi.
- OpenImagesV7: Google'ın 1,7 milyon eğitim görüntüsü ve 42 bin doğrulama görüntüsü içeren kapsamlı bir veri kümesi.
- Roboflow 100: Kapsamlı model değerlendirmesi için yedi görüntü alanını kapsayan 100 veri kümesinden oluşan, çeşitli bir nesne algılama kıyaslama veri kümesi.
- Signature: Belge doğrulama ve sahtecilik tespiti araştırmalarını destekleyen, imzaları işaretlenmiş çeşitli belge görüntülerini içeren bir veri kümesi.
- SKU-110K: 11 binden fazla görüntü ve 1,7 milyon sınırlayıcı kutu içeren, perakende ortamlarındaki yoğun nesne algılamayı konu alan bir veri kümesi.
- TT100K: Sağlam algılama ve sınıflandırma için 221 tabela kategorisinden 16.817 sokak görünümü görüntüsü içeren Tsinghua-Tencent 100K (TT100K) trafik işareti veri kümesini keşfet.
- VisDrone: 10 binden fazla görüntü ve video dizisiyle, drone görüntülerinden elde edilen nesne algılama ve çoklu nesne izleme verilerini içeren bir veri kümesi.
- VOC: 20 nesne sınıfı ve 11 binden fazla görüntü içeren, nesne algılama ve segmentasyon için Pascal Görsel Nesne Sınıfları (VOC) veri kümesi.
- xView: 60 nesne kategorisi ve 1 milyondan fazla açıklama eklenmiş nesne içeren, havadan çekilmiş görüntülerde nesne algılamaya yönelik bir veri kümesi.
Kendi veri kümeni ekleme#
Kendi veri kümen varsa ve bunu Ultralytics YOLO biçiminde algılama modellerini eğitmek için kullanmak istiyorsan, "Ultralytics YOLO biçimi" başlığı altında yukarıda belirtilen biçime uygun olduğundan emin ol. Ek açıklamalarını gerekli biçime dönüştür ve YAML yapılandırma dosyasında yolları, sınıf sayısını ve sınıf adlarını belirt.
Etiket Biçimlerini Taşıma veya Dönüştürme#
COCO Veri Kümesi Biçiminden YOLO Biçimine#
Popüler COCO veri kümesi biçimindeki etiketleri aşağıdaki kod parçacığını kullanarak kolayca YOLO biçimine dönüştürebilirsin:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")Bu dönüştürme aracı, COCO veri kümesini veya COCO biçimindeki herhangi bir veri kümesini Ultralytics YOLO biçimine dönüştürmek için kullanılabilir. İşlem, JSON tabanlı COCO ek açıklamalarını daha basit, metin tabanlı YOLO biçimine dönüştürerek bunları Ultralytics YOLO modelleri ile uyumlu hâle getirir. Sınıf kimliği eşlemesi, dizin düzeni ve segmentasyon veya poz ek açıklamaları dâhil tüm iş akışı için COCO Ek Açıklamalarını YOLO'ya Dönüştürme sayfasına bak.
Kullanmak istediğin veri kümesinin modelinle uyumlu olup olmadığını ve gerekli biçim kurallarına uyup uymadığını mutlaka tekrar kontrol et. Doğru biçimlendirilmiş veri kümeleri, başarılı nesne algılama modelleri eğitmek için çok önemlidir.
Sırada ne var?#
Veri kümen biçimlendirildiğine göre modelini eğitmeye başla. Hangi önceden eğitilmiş modelle başlayacağından emin değil misin? YOLO26 model ailesindeki seçenekleri karşılaştır.
Sık Sorulan Sorular#
Ultralytics YOLO biçimi, eğitim projelerinde veri kümelerini tanımlamak için kullanılan yapılandırılmış bir ayardır. Eğitim, doğrulama ve test görüntülerinin yollarını ve bunlara karşılık gelen etiketleri belirlemeyi içerir. Örneğin:
# 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.zipEtiketler, her görüntü için bir dosya olacak şekilde
*.txtdosyalarında, normalize edilmiş koordinatlarlaclass x_center y_center width heightbiçiminde kaydedilir. Ayrıntılı bir kılavuz için COCO8 veri kümesi örneğine bak.Bir COCO veri kümesini Ultralytics dönüştürme araçlarını kullanarak YOLO biçimine dönüştürebilirsin. İşte hızlı bir yöntem:
from ultralytics.data.converter import convert_coco convert_coco(labels_dir="path/to/coco/annotations/")Bu kod, COCO ek açıklamalarını YOLO biçimine dönüştürerek Ultralytics YOLO modelleriyle sorunsuz entegrasyon sağlar. Daha fazla bilgi için Etiket Biçimlerini Taşıma veya Dönüştürme bölümünü ziyaret et.
Ultralytics YOLO, aşağıdakiler dâhil çok çeşitli veri kümelerini destekler:
Her veri kümesi sayfası, verimli YOLO26 eğitimi için uyarlanmış yapı ve kullanım hakkında ayrıntılı bilgi verir. Listenin tamamını Desteklenen Veri Kümeleri bölümünde keşfet.
YOLO26 modelini eğitmeye başlamak için veri kümenin doğru biçimlendirildiğinden ve yolların bir YAML dosyasında tanımlandığından emin ol. Eğitime başlamak için aşağıdaki betiği kullan:
Örnekfrom ultralytics import YOLO model = YOLO("yolo26n.pt") # Önceden eğitilmiş bir modeli yükle results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)CLI komutları dâhil farklı modları kullanma hakkında daha fazla bilgi için Kullanım bölümüne bak.
Ultralytics, çeşitli uygulamalarda YOLO26 kullanmaya yönelik çok sayıda örnek ve uygulamalı kılavuz sunar. Nesne algılama, segmentasyon ve daha fazlasını YOLO26 ile gösteren vaka incelemeleri, ayrıntılı eğitimler ve topluluk hikâyeleri için Ultralytics Blog sayfasını ziyaret et. Belirli örnekler için belgelerdeki Tahmin modu sayfasına bak.