İçeriğe geç

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.

Örnek etiketli görüntü

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):

Örnek etiket dosyası

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.

Örnek veri kümesi dizin yapısı

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.



📅 1 yıl önce oluşturuldu ✏️ 15 gün önce güncellendi

Yorumlar