Nesne Algılama Veri Kümelerine Genel Bakış
Güçlü ve doğru bir nesne algılama modeli eğitmek, kapsamlı bir veri kümesi gerektirir. Bu kılavuz, Ultralytics YOLO modeliyle uyumlu çeşitli veri kümesi biçimlerini tanıtmakta ve bunların yapısı, kullanımı ve farklı biçimler arasında nasıl dönüştürme yapılacağı hakkında bilgiler sağlamaktadır.
Desteklenen Veri Kümesi Formatları
Ultralytics YOLO formatı
Ultralytics YOLO formatı, veri kümesi kök dizinini, eğitim/doğrulama/test görüntü dizinlerine giden göreli yolları veya *.txt
görüntü yollarını içeren dosyalar ve sınıf adlarının bir sözlüğü. İş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.zip
Bu format için etiketler, bir adet olacak şekilde YOLO formatına aktarılmalıdır. *.txt
görüntü başına dosya. Bir görüntüde nesne yoksa, *.txt
dosyası gereklidir. Şuradaki *.txt
dosyası içindeki her nesne için bir satırla biçimlendirilmelidir. class x_center y_center width height
biçimindedir. Kutu koordinatları normalize edilmiş xywh biçimi (0 ile 1 arasında). Kutularınız piksel cinsindeyse, bölmelisiniz x_center
ve width
görüntü genişliğine göre ve y_center
ve height
görüntü yüksekliğine göre. Sınıf numaraları sıfır tabanlı (0 ile başlayarak) olmalıdır.
Yukarıdaki görüntüye karşılık gelen etiket dosyası 2 kişi (sınıf içeriyor 0
) ve bir beraberlik (sınıf 27
):
Ultralytics YOLO formatını kullanırken, eğitim ve doğrulama resimlerinizi ve etiketlerinizi aşağıdaki COCO8 veri kümesi örneğinde gösterildiği gibi düzenleyin.
Kullanım
İşte modelinizi eğitmek için bu formatları nasıl kullanabileceğiniz:
Örnek
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="coco8.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640
Desteklenen Veri Kümeleri
İşte desteklenen veri kümelerinin bir listesi ve her biri için kısa bir açıklama:
- Argoverse: Zengin açıklamalarla kentsel ortamlardan 3D izleme ve hareket tahmini verileri içeren bir veri kümesi.
- COCO: Common Objects in Context (COCO), 80 nesne kategorisine sahip geniş ölçekli bir nesne algılama, segmentasyon ve başlıklandırma veri kümesidir.
- LVIS: 1203 nesne kategorisine sahip, büyük ölçekli bir nesne algılama, segmentasyon ve başlıklandırma veri kümesidir.
- COCO8: Hızlı testler için uygun olan COCO train ve COCO val'den ilk 4 görüntünün daha küçük bir alt kümesidir.
- COCO8-Grayscale: RGB'nin gri tonlamaya dönüştürülmesiyle oluşturulan COCO8'in gri tonlamalı bir versiyonu, tek kanallı model değerlendirmesi için kullanışlıdır.
- COCO8-Multispectral: RGB dalga boylarını enterpolasyon yaparak oluşturulan COCO8'in 10 kanallı çok spektralli bir versiyonu, spektral duyarlı model değerlendirmesi için kullanışlıdır.
- COCO128: Testler için uygun olan COCO train ve COCO val'den ilk 128 görüntünün daha küçük bir alt kümesidir.
- Global Wheat 2020: Global Wheat Challenge 2020 için buğday başaklarının görüntülerini içeren bir veri kümesidir.
- Objects365: 365 nesne kategorisi ve 600 binden fazla etiketli görüntü ile nesne algılama için yüksek kaliteli, büyük ölçekli bir veri kümesidir.
- OpenImagesV7: Google tarafından sağlanan, 1,7 milyon eğitim görüntüsü ve 42 bin doğrulama görüntüsü içeren kapsamlı bir veri kümesidir.
- SKU-110K: 11 binden fazla görüntü ve 1,7 milyon sınırlayıcı kutu ile perakende ortamlarında yoğun nesne algılamaya sahip bir veri kümesi.
- HomeObjects-3K Yeni 🚀: Akıllı ev otomasyonu, robotik, artırılmış gerçeklik ve oda yerleşim analizi uygulamaları için ideal olan yataklar, sandalyeler, TV'ler ve daha fazlasını içeren bir iç mekan ev eşyası veri kümesi.
- VisDrone: 10 binden fazla görüntü ve video sekansı ile drone ile çekilmiş görüntülerden elde edilen nesne algılama ve çoklu nesne izleme verilerini içeren bir veri kümesidir.
- VOC: 20 nesne sınıfı ve 11 binden fazla görüntü ile nesne algılama ve segmentasyon için Pascal Visual Object Classes (VOC) veri kümesidir.
- xView: 60 nesne kategorisi ve 1 milyondan fazla etiketli nesne ile havadan çekilmiş görüntülerde nesne algılama için bir veri kümesidir.
- Roboflow 100: Kapsamlı model değerlendirmesi için yedi görüntüleme alanına yayılan 100 veri kümesiyle çeşitli bir nesne algılama kıyaslaması.
- Brain-tumor: Beyin tümörlerini tespit etmeye yönelik bir veri kümesi, tümör varlığı, konumu ve özellikleri hakkında ayrıntılar içeren MRI veya BT tarama görüntülerini içerir.
- African-wildlife: Bufalo, fil, gergedan ve zebralar dahil olmak üzere Afrika yaban hayatının görüntülerini içeren bir veri kümesidir.
- Signature: Belge doğrulama ve sahtecilik tespit araştırmalarını destekleyen, açıklamalı imzalar içeren çeşitli belgelerin görüntülerini içeren bir veri kümesidir.
- Medical-pills: İlaç kalite güvencesi, hapların sıralanması ve mevzuata uygunluk gibi uygulamalar için açıklama eklenmiş tıbbi hap görüntüleri içeren bir veri kümesi.
Kendi veri kümenizi ekleme
Eğer kendi veri kümeniz varsa ve bunu Ultralytics YOLO formatı ile algılama modellerini eğitmek için kullanmak istiyorsanız, yukarıda "Ultralytics YOLO formatı" altında belirtilen formata uygun olduğundan emin olun. Etiketlemelerinizi gerekli formata dönüştürün ve YAML yapılandırma dosyasında yolları, sınıf sayısını ve sınıf adlarını belirtin.
Etiket Formatlarını Taşıma veya Dönüştürme
COCO Veri Kümesi Formatından YOLO Formatına
Aşağıdaki kod parçasını kullanarak popüler COCO veri kümesi biçimindeki etiketleri YOLO biçimine kolayca dönüştürebilirsiniz:
Örnek
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 formatındaki herhangi bir veri kümesini Ultralytics YOLO formatına dönüştürmek için kullanılabilir. İşlem, JSON tabanlı COCO açıklamalarını daha basit metin tabanlı YOLO formatına dönüştürerek Ultralytics YOLO modelleri ile uyumlu hale getirir.
Kullanmak istediğiniz veri kümesinin modelinizle uyumlu olup olmadığını ve gerekli format kurallarına uyup uymadığını iki kez kontrol etmeyi unutmayın. Düzgün biçimlendirilmiş veri kümeleri, başarılı nesne algılama modellerini eğitmek için çok önemlidir.
SSS
Ultralytics YOLO veri seti formatı nedir ve nasıl yapılandırılır?
Ultralytics YOLO formatı, eğitim projelerinizde veri kümelerini tanımlamak için yapılandırılmış bir yapılandırmadır. Eğitim, doğrulama ve test görüntülerinizin ve karşılık gelen etiketlerinizin yollarını ayarlamayı 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.zip
Etiketler şuraya kaydedilir: *.txt
görüntü başına bir dosya olacak şekilde biçimlendirilmiş dosyalar class x_center y_center width height
normalize edilmiş koordinatlarla. Ayrıntılı bir kılavuz için bkz. COCO8 veri kümesi örneği.
Bir COCO veri setini YOLO formatına nasıl dönüştürürüm?
Ultralytics dönüştürme araçlarını kullanarak bir COCO veri kümesini YOLO biçimine dönüştürebilirsiniz. İşte hızlı bir yöntem:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")
Bu kod, COCO açıklamalarınızı YOLO biçimine dönüştürerek Ultralytics YOLO modelleriyle sorunsuz entegrasyon sağlar. Ek ayrıntılar için Etiket Biçimlerini Taşı veya Dönüştür bölümünü ziyaret edin.
Ultralytics YOLO tarafından nesne algılama için hangi veri kümeleri desteklenir?
Ultralytics YOLO, aşağıdakiler dahil olmak üzere çok çeşitli veri kümelerini destekler:
Her veri kümesi sayfası, verimli YOLO11 eğitimi için özel olarak hazırlanmış yapı ve kullanım hakkında ayrıntılı bilgi sağlar. Desteklenen Veri Kümeleri bölümünde tam listeyi inceleyin.
Veri kümemi kullanarak bir YOLO11 modelini eğitmeye nasıl başlarım?
Bir YOLO11 modelini eğitmeye başlamak için, veri kümenizin doğru biçimlendirildiğinden ve yolların bir YAML dosyasında tanımlandığından emin olun. Eğitime başlamak için aşağıdaki komut dosyasını kullanın:
Örnek
from ultralytics import YOLO
model = YOLO("yolo11n.pt") # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640
CLI komutları da dahil olmak üzere farklı modları kullanma hakkında daha fazla ayrıntı için Kullanım bölümüne bakın.
Ultralytics YOLO'yu nesne algılama için kullanmanın pratik örneklerini nerede bulabilirim?
Ultralytics, YOLO11'i çeşitli uygulamalarda kullanmak için çok sayıda örnek ve pratik kılavuz sunar. Kapsamlı bir genel bakış için, nesne algılama, bölütleme ve daha fazlasını YOLO11 ile sergileyen örnek olay incelemelerini, ayrıntılı eğitimleri ve topluluk hikayelerini bulabileceğiniz Ultralytics Blogunu ziyaret edin. Belirli örnekler için, belgedeki Kullanım bölümüne bakın.