Ultralytics YOLO27:
Get Started

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/cfg/datasets/coco8.yaml
# 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

train, 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.

`*.txt` dosyasında görüntü yolları
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: person

Bu 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).

YOLO labeled image with bounding boxes on persons and tie

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:

YOLO format label file with normalized coordinates

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.

YOLO dataset directory structure with train and val folders

Kullanım Örneği#

Modelini eğitmek için YOLO biçimindeki veri kümelerini şöyle kullanabilirsin:

Örnek
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:

  1. 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
  2. Görüntü kayıtları (sonraki satırlar): Boyutlar, etiketler ve dosya yolları dahil olmak üzere ayrı görüntü verilerini içerir
NDJSON Örneği
{
    "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:

Örnek
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:

Ö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 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.zip

    Etiketler, her görüntü için bir dosya olacak şekilde *.txt dosyalarında, normalize edilmiş koordinatlarla class x_center y_center width height biç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:

    Örnek
    from 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.

Yorumlar