YOLO Vision 2026:

Nesne Algılama Veri Kümelerine Genel Bakış#

Sağlam ve doğru bir nesne tespiti modeli eğitmek kapsamlı bir veri seti gerektirir. Bu kılavuz, Ultralytics YOLO modeli ile uyumlu olan çeşitli veri seti formatlarını tanıtır ve bunların yapısı, kullanımı ile farklı formatlar arasında nasıl dönüştürme yapılacağı hakkında bilgiler sunar.

Desteklenen Veri Kümesi Formatları#

Ultralytics YOLO formatı#

Ultralytics YOLO formatı; veri seti 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ı sözlüğünü tanımlamanıza olanak tanıyan bir veri seti yapılandırma formatıdır. İş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, bir dizin listesi veya her satırda bir görsel yolu listeleyen bir *.txt dosyası kabul eder (./ ile başlayan yollar *.txt dosyasına göre çözümlenir). Bir *.txt dosyası, bir dizinin alt kümesi üzerinde eğitim yapmak, etiketlenmemiş görselleri atlamak veya birden fazla kaynaktan gelen görselleri tek bir bölüme (split) birleştirmek için kullanışlıdır.

`*.txt` dosyası olarak 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 format için etiketler, görüntü başına bir *.txt dosyası olacak şekilde YOLO formatında 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 formatında her nesne için bir satır içerecek şekilde biçimlendirilmelidir. Kutu koordinatları normalize edilmiş xywh formatında (0 ile 1 arasında) olmalıdır. Kutularınız 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ölmelisiniz. Sınıf numaraları sıfır tabanlı indekslenmelidir (0 ile başlar).

YOLO labeled image with bounding boxes on persons and tie

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

YOLO format label file with normalized coordinates

Ultralytics YOLO formatını kullanırken, eğitim ve doğrulama görsellerinizi ile etiketlerinizi aşağıdaki COCO8 veri seti örneğinde gösterildiği gibi düzenle.

YOLO dataset directory structure with train and val folders

Kullanım Örneği#

YOLO formatındaki veri kümelerini modelini eğitmek için şu şekilde kullanabilirsin:

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Ultralytics NDJSON formatı#

NDJSON (Newline Delimited JSON) formatı, Ultralytics YOLO modelleri için veri kümelerini tanımlamanın alternatif bir yolunu sunar. Bu format, veri kümesi meta verilerini ve açıklamalarını, her satırın ayrı bir JSON nesnesi içerdiği tek bir dosyada depolar.

Bir NDJSON veri kümesi dosyası şunları içerir:

  1. Veri kümesi kaydı (ilk satır): Görev türü, sınıf isimleri ve genel bilgiler dahil olmak üzere veri kümesi meta verilerini içerir
  2. Görüntü kayıtları (sonraki satırlar): Boyutlar, açıklamalar ve dosya yolları dahil olmak üzere bireysel görüntü verilerini içerir
NDJSON Örneği
{
    "type": "dataset",
    "task": "detect",
    "name": "Example",
    "description": "COCO NDJSON example dataset",
    "url": "https://app.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 özel bağlam için bir metadata JSON nesnesi içerebilir. İç içe değerler desteklenir. Ultralytics Platform'a içe aktarıldığında, meta veriler ilgili görüntüyle birlikte saklanır ve 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, ü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 birleştirilmiş etkili meta verileri 500.000 karakterle sınırlar.

Kullanım Örneği#

YOLO26 ile bir NDJSON veri seti kullanmak için .ndjson dosyasının yolunu belirtmen yeterlidir:

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)

NDJSON formatının avantajları#

  • Tek dosya: Tüm veri kümesi bilgileri tek bir dosyada bulunur
  • Akış: Büyük veri kümelerini her şeyi belleğe yüklemeden satır satır işleyebilir
  • Bulut entegrasyonu: Bulut tabanlı eğitim için uzak görüntü URL'lerini destekler
  • Genişletilebilir: Özel meta veri alanları eklemek kolaydır
  • Sürüm kontrolü: Tek dosya formatı git ve sürüm kontrol sistemleriyle uyumlu çalışır

Desteklenen Veri Kümeleri#

İşte desteklenen veri kümelerinin listesi ve her biri için kısa bir açıklama:

  • African-wildlife: Manda, fil, gergedan ve zebralar dahil olmak üzere Afrika yaban hayatının görüntülerine yer veren bir veri seti.
  • Argoverse: Zengin etiketlere sahip kentsel ortamlardan 3B izleme ve hareket tahmin verileri içeren bir veri seti.
  • Brain-tumor: Beyin tümörlerini tespit etmeye yönelik bu veri seti; tümörün varlığı, konumu ve özellikleri hakkında ayrıntılar içeren MRI veya BT tarama görüntüleri barındırır.
  • COCO: Bağlam İçindeki Ortak Nesneler (COCO), 80 nesne kategorisine sahip büyük ölçekli bir nesne tespiti, segmentasyon ve altyazı veri setidir.
  • COCO8: Hızlı testler için uygun olan, COCO train ve COCO val setlerindeki ilk 4 görselden oluşan daha küçük bir alt küme.
  • COCO8-Grayscale: RGB'nin gri tonlamalıya dönüştürülmesiyle oluşturulan ve tek kanallı model değerlendirmesi için yararlı olan bir COCO8 gri tonlamalı sürümü.
  • COCO8-Multispectral: RGB dalga boylarının enterpolasyonu ile oluşturulan ve spektruma duyarlı model değerlendirmesi için yararlı olan 10 kanallı çok spektrumlu bir COCO8 sürümü.
  • COCO12-Formats: Görüntü yükleme hatlarını doğrulamak için desteklenen 12 görüntü formatını (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP) kapsayan 12 görüntülük bir test veri seti.
  • COCO16: Hızlı testler için uygun olan, COCO train2017 setindeki ilk 16 görselden oluşan bir alt küme (8 eğitim + 8 doğrulama).
  • COCO32: Hızlı testler için uygun olan, COCO train2017 setindeki ilk 32 görselden oluşan bir alt küme (16 eğitim + 16 doğrulama).
  • COCO64: Hızlı testler için uygun olan, COCO train2017 setindeki ilk 64 görselden oluşan bir alt küme (32 eğitim + 32 doğrulama).
  • COCO128: Testler için uygun, COCO train2017'nin ilk 128 görüntüsünden oluşan daha küçük bir alt küme.
  • Construction-PPE: Gerçek dünya uyumluluk takibi için no_helmet, no_goggle gibi eksik ekipman etiketleri dahil olmak üzere baret, yelek, eldiven, çizme ve koruyucu gözlük gibi etiketli güvenlik donanımlarına sahip şantiye çalışanlarını içeren bir veri seti.
  • Global Wheat 2020: Global Wheat Challenge 2020 için buğday başaklarının görsellerini içeren bir veri seti.
  • HomeObjects-3K: Akıllı ev otomasyonu, robotik, artırılmış gerçeklik ve oda yerleşimi analizi uygulamaları için ideal olan; yataklar, sandalyeler, TV'ler ve daha fazlasını içeren iç mekan ev eşyaları veri seti.
  • KITTI: Kentsel, kırsal ve otoyol ortamlarında araba, yaya ve bisikletlileri belirleme gibi 2B nesne tespiti görevleri için burada kullanılan; stereo, LiDAR ve GPS/IMU verilerine sahip gerçek dünya sürüş sahnelerini içeren bir veri seti.
  • LVIS: 1203 nesne kategorisine sahip büyük ölçekli bir nesne tespiti, segmentasyon ve altyazı veri seti.
  • Medical-pills: İlaç kalite güvencesi, hap sıralama ve yasal uyumluluk gibi uygulamalar için etiketlenmiş tıbbi hap görüntülerini içeren bir veri seti.
  • Objects365: 365 nesne kategorisi ve 600 binden fazla etiketli görsel ile nesne tespiti için yüksek kaliteli, büyük ölçekli bir veri seti.
  • OpenImagesV7: Google tarafından sunulan; 1,7 milyon eğitim ve 42 bin doğrulama görüntüsü içeren kapsamlı bir veri seti.
  • Roboflow 100: Kapsamlı model değerlendirmesi için yedi görsel alanını kapsayan 100 veri setine sahip, çeşitli bir nesne tespiti kıyaslama testi.
  • Signature: Belge doğrulama ve sahtekarlık tespit araştırmalarını destekleyen, etiketli imzalara sahip çeşitli belgelerin görüntülerinden oluşan bir veri seti.
  • SKU-110K: 11 binden fazla görüntü ve 1,7 milyon sınırlayıcı kutu ile perakende ortamlarında yoğun nesne tespiti içeren bir veri seti.
  • TT100K: Sağlam tespit ve sınıflandırma için 221 tabela kategorisinde 16.817 sokak görünümü görüntüsü içeren Tsinghua-Tencent 100K (TT100K) trafik işareti veri setini keşfet.
  • VisDrone: 10 binden fazla görüntü ve video sekmesi ile drone ile çekilen görüntülerden elde edilen nesne tespiti ve çoklu nesne izleme verilerini içeren bir veri seti.
  • VOC: 20 nesne sınıfı ve 11 binden fazla görüntüyle nesne tespiti ve segmentasyonu için Pascal Visual Object Classes (VOC) veri seti.
  • xView: 60 nesne kategorisi ve 1 milyondan fazla etiketli nesne ile yüksekten çekilen görüntülerde nesne tespiti için bir veri seti.

Kendi veri kümeni ekleme#

Kendi veri kümen varsa ve bunu Ultralytics YOLO formatıyla nesne algılama modelleri eğitmek için kullanmak istiyorsan, "Ultralytics YOLO formatı" bölümünde belirtilen formata uygun olduğundan emin ol. Açıklamalarını gerekli formata dönüştür ve YAML yapılandırma dosyasında yolları, sınıf sayısını ve sınıf isimlerini belirt.

Etiket Formatlarını Bağlama veya Dönüştürme#

COCO Veri Kümesi Formatından YOLO Formatına#

Aşağıdaki kod parçasını kullanarak etiketleri popüler COCO veri seti formatından kolayca YOLO formatına 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 formatındaki herhangi bir veri kümesini Ultralytics YOLO formatına dönüştürmek için kullanılabilir. Bu süreç, JSON tabanlı COCO etiketlerini daha basit metin tabanlı YOLO formatına dönüştürerek Ultralytics YOLO models ile uyumlu hale getirir. Sınıf ID eşlemesi, dizin düzeni ve segmentasyon veya poz etiketleri dahil olmak üzere tüm iş akışı için Convert COCO Annotations to YOLO sayfasına bak.

Kullanmak istediğin veri kümesinin modelinle uyumlu olduğundan ve gerekli format kurallarına uyduğundan emin ol. Doğru biçimlendirilmiş veri kümeleri, başarılı nesne algılama modelleri eğitmek için kritiktir.

Sırada ne var#

Veri setin biçimlendirildikten sonra modelini eğitmeye başla. Hangi ön eğitilmiş modelle başlayacağından emin değil misin? YOLO26 model ailesindeki seçenekleri karşılaştır.

SSS#

  • Ultralytics YOLO formatı, eğitim projelerindeki veri kümelerini tanımlamak için kullanılan yapılandırılmış bir yapılandırmadır. Eğitim, doğrulama ve test görüntülerine ve karşılık gelen etiketlere yolların ayarlanmasını 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, görüntü başına bir dosya olacak şekilde *.txt dosyalarında, normalize edilmiş koordinatlarla class x_center y_center width height olarak biçimlendirilmiş şekilde kaydedilir. Ayrıntılı bir kılavuz için COCO8 veri seti örneğine göz at.

  • Ultralytics dönüştürme araçlarını kullanarak bir COCO veri setini YOLO formatına 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 etiketlerini YOLO formatına dönüştürerek Ultralytics YOLO modelleri ile kusursuz entegrasyon sağlar. Ek ayrıntılar için Etiket Formatlarını Bağlama veya Dönüştürme bölümünü ziyaret et.

  • Ultralytics YOLO, aşağıdakiler dahil olmak üzere geniş bir veri kümesi yelpazesini destekler:

    Her veri seti sayfası, verimli YOLO26 eğitimi için uyarlanmış yapı ve kullanım hakkında ayrıntılı bilgi sağlar. Desteklenen Veri Setleri bölümünde listenin tamamını incele.

  • Bir 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")  # Load a pretrained model
    results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

    CLI komutları dahil olmak üzere farklı modların kullanımı hakkında daha fazla ayrıntı için Kullanım bölümüne göz at.

  • Ultralytics, YOLO26'yı farklı uygulamalarda kullanmak için çok sayıda örnek ve pratik kılavuz sunar. Kapsamlı bir genel bakış için YOLO26 ile nesne tespiti, segmentasyon ve daha fazlasını sergileyen vaka çalışmalarını, ayrıntılı eğitimleri ve topluluk hikayelerini bulabileceğin Ultralytics Blog sayfasını ziyaret et. Belirli örnekler için belgelerdeki Kullanım bölümünü kontrol et.

Yorumlar