Ultralytics YOLO27:

Görüntü Sınıflandırma Veri Kümelerine Genel Bakış#

YOLO Sınıflandırma Görevleri için Veri Kümesi Yapısı#

Ultralytics YOLO sınıflandırma görevleri için veri kümesi, root dizini altında belirli bir bölünmüş dizin yapısında düzenlenmelidir. Bu yapı, isteğe bağlı bir test dizini ile birlikte bir train dizini ve bir val dizini (valid ve validation de kabul edilir) içerir. Hiçinci doğrulama dizini yoksa, doğrulama için bunun yerine test dizini kullanılır.

Bu dizinlerin her biri, veri kümesindeki her sınıf için bir alt dizin içermelidir. Alt dizinler ilgili sınıfın adını taşır ve o sınıfa ait tüm görüntüleri içerir. Her görüntü dosyasının benzersiz şekilde adlandırıldığından ve JPEG veya PNG gibi yaygın bir formatta depolandığından emin ol.

Klasör Yapısı Örneği#

Örnek olarak CIFAR-10 veri kümesini ele alalım. Klasör yapısı şöyle görünmelidir:

cifar-10-/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/ (optional)
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/
|   |-- airplane/
|   |   |-- 105_airplane.png
|   |   |-- 106_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 102_automobile.png
|   |   |-- 103_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1045_bird.png
|   |   |-- 1046_bird.png
|   |   |-- ...
|   |
|   |-- ...

Bu yapılandırılmış yaklaşım, modelin eğitim aşamasında iyi düzenlenmiş sınıflardan etkili biçimde öğrenmesini ve test ile doğrulama aşamalarında performansı doğru şekilde değerlendirmesini sağlar.

Kullanım#

Örnek
from ultralytics import YOLO

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

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
İpucu

Yerleşik veri kümesi adlarının çoğu (örneğin cifar10, imagenette veya mnist160), bunlara ilk kez başvurduğunda verileri otomatik olarak indirip önbelleğe alır. data öğesini yalnızca özel bir veri kümesini derleyip düzenlediğinde bir klasör yoluna yönlendir.

Desteklenen Veri Kümeleri#

Ultralytics, otomatik indirme özelliğine sahip aşağıdaki veri kümelerini destekler. Bu veri kümelerinin çoğu, görselleri ve ek açıklamaları inceleyebileceğin, veri kümesi istatistiklerini görüntüleyebileceğin ve bulut tabanlı eğitim için bunları klonlayabileceğin Ultralytics Platform üzerinde de barındırılır.

  • Caltech 101: görüntü sınıflandırma görevleri için 101 nesne kategorisine ait görüntüleri içeren bir veri kümesi.
  • Caltech 256: 256 nesne kategorisi ve daha zorlu görüntüler içeren, Caltech 101'in genişletilmiş sürümüdür.
  • CIFAR-10: 10 sınıfta 60 bin adet 32x32 renkli görüntüden oluşan ve sınıf başına 6 bin görüntü içeren bir veri kümesidir.
  • CIFAR-100: 100 nesne kategorisi ve sınıf başına 600 görüntü içeren, CIFAR-10'un genişletilmiş sürümüdür.
  • Fashion-MNIST: Görüntü sınıflandırma görevleri için 10 moda kategorisine ait 70.000 gri tonlamalı görüntüden oluşan bir veri kümesidir.
  • ImageNet: 14 milyondan fazla görüntü ve 20.000 kategori içeren, nesne tespiti ve görüntü sınıflandırma için büyük ölçekli bir veri kümesi.
  • ImageNet-10: Daha hızlı deneme ve test için ImageNet'in 10 kategorili daha küçük bir alt kümesidir.
  • Imagenette: Daha hızlı eğitim ve test için kolayca ayırt edilebilen 10 sınıf içeren, ImageNet'in daha küçük bir alt kümesidir.
  • Imagewoof: Görüntü sınıflandırma görevleri için 10 köpek ırkı kategorisi içeren, ImageNet'in daha zorlu bir alt kümesidir.
  • MNIST: Görüntü sınıflandırma görevleri için el yazısıyla yazılmış rakamların 70.000 gri tonlamalı görüntüsünden oluşan bir veri kümesidir.
  • MNIST160: MNIST'in hem eğitim hem de test bölümlerindeki her rakamın (0-9) ilk 8 görüntüsünden oluşur. Veri kümesinde toplam 160 görüntü bulunur.

Kendi veri kümeni ekleme#

Kendi veri kümen varsa ve bunu Ultralytics YOLO ile sınıflandırma modellerini eğitmek için kullanmak istiyorsan, "Veri Kümesi Yapısı" bölümünde yukarıda belirtilen biçime uygun olduğundan emin ol ve ardından eğitim betiğini başlatırken data bağımsız değişkenini veri kümesi dizinine yönlendir.

SSS#

  • Veri kümeni Ultralytics YOLO sınıflandırma görevleri için yapılandırmak amacıyla belirli bir bölünmüş dizin biçimini takip etmelisin. Veri kümeni train ve val için ayrı dizinlere ve isteğe bağlı olarak test için ayrı bir dizine düzenle. Bu dizinlerin her biri, içinde ilgili görsellerle birlikte her sınıfa göre adlandırılmış alt dizinler içermelidir. Bu, sorunsuz eğitim ve değerlendirme süreçlerini kolaylaştırır. Örnek olarak CIFAR-10 veri kümesi biçimini incele:

    cifar-10-/
    |-- train/
    |   |-- airplane/
    |   |-- automobile/
    |   |-- bird/
    |   ...
    |-- val/
    |   |-- airplane/
    |   |-- automobile/
    |   |-- bird/
    |   ...
    |-- test/ (optional)
    |   |-- airplane/
    |   |-- automobile/
    |   |-- bird/
    |   ...

    Daha fazla ayrıntı için YOLO Sınıflandırma Görevleri için Veri Kümesi Yapısı bölümünü ziyaret et.

  • Ultralytics YOLO, görüntü sınıflandırma için Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof ve MNIST dahil olmak üzere çeşitli veri kümelerinin otomatik olarak indirilmesini destekler. Bu veri kümeleri YOLO ile kullanımı kolaylaştıracak şekilde yapılandırılmıştır. Her veri kümesinin sayfasında yapısı ve uygulamaları hakkında daha fazla ayrıntı bulunur.

  • Kendi veri kümeni Ultralytics YOLO ile kullanmak için veri kümesinin, sınıflandırma görevi için gereken belirtilen dizin biçimini takip ettiğinden emin ol; ayrı train ve val dizinleri (ve isteğe bağlı olarak test) ile ilgili görselleri içeren her sınıf için alt dizinler bulunmalıdır. Veri kümen doğru şekilde yapılandırıldıktan sonra, eğitim betiğini başlatırken data argümanını veri kümenin kök dizinine yönlendir. Python dilinde bir örnek:

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n-cls.pt")  # load a pretrained model (recommended for training)
    
    # Train the model
    results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

    Daha fazla ayrıntı Kendi veri kümeni ekleme bölümünde bulunabilir.

  • Ultralytics YOLO, görüntü sınıflandırma için aşağıdakiler dahil olmak üzere çeşitli avantajlar sunar:

    • Önceden Eğitilmiş Modeller: Eğitim sürecini hızlandırmak için yolo26n-cls.pt gibi önceden eğitilmiş modelleri yükle.
    • Kullanım Kolaylığı: Eğitim ve değerlendirme için basit API ve CLI komutları.
    • Yüksek Performans: Gerçek zamanlı uygulamalar için ideal, son teknoloji doğruluk ve hız.
    • Birden Çok Veri Kümesi Desteği: CIFAR-10, ImageNet ve diğer popüler veri kümeleriyle sorunsuz entegrasyon.
    • Topluluk ve Destek: Sorun giderme ve geliştirmeler için kapsamlı belgelere ve aktif bir topluluğa erişim.

    Ek bilgiler ve gerçek dünyadaki uygulamalar için Ultralytics YOLO sayfasını inceleyebilirsin.

  • Ultralytics YOLO kullanarak bir modeli hem Python hem de CLI ile kolayca eğitebilirsin. Bir örnek:

    Örnek
    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n-cls.pt")  # load a pretrained model
    
    # Train the model
    results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

    Bu örnekler, her iki yaklaşımı kullanarak bir YOLO modelini eğitme sürecinin ne kadar basit olduğunu gösterir. Daha fazla bilgi için Kullanım bölümünü ve sınıflandırma görevleri için Eğit sayfasını ziyaret et.

Yorumlar