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örevlerinde veri kümesi, root dizini altında belirli bir bölümlenmiş dizin yapısına göre düzenlenmelidir. Bu yapı, train ve val dizinlerini (valid ve validation da kabul edilir) ve isteğe bağlı bir test dizinini içerir. Doğrulama dizini yoksa doğrulama için test dizini kullanılır. Kök dizinde hiç train dizini yoksa ancak her sınıf için bir klasör varsa Ultralytics, görselleri otomatik olarak 80/20 oranında bölüp train ve val alt dizinlerini içeren yeni bir <root>_split dizini oluşturur.
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örselleri içerir. Her görsel dosyasının benzersiz bir ada sahip ve JPEG ya da PNG gibi yaygın bir biçimde kaydedilmiş olduğundan 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:
cifar10/
|
|-- 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#
from ultralytics import YOLO
# Bir model yükle
model = YOLO("yolo26n-cls.pt") # Önceden eğitilmiş bir model yükle (eğitim için önerilir)
# Modeli eğit
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)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 değerini yalnızca özel bir veri kümesini kendin hazırladıysan bir klasör yoluna ayarla.
Desteklenen Veri Kümeleri#
Ultralytics, otomatik indirmeyi destekleyen aşağıdaki veri kümelerini sunar. Bu veri kümelerinin çoğu, görsellere ve açıklamalara göz atabileceğin, veri kümesi istatistiklerini görüntüleyebileceğin ve bulutta eğitim için 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 kategorisinden görseller 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ü.
- CIFAR-10: Her sınıfta 6 bin olmak üzere, 10 sınıfa ayrılmış 60 bin adet 32x32 renkli görüntüden oluşan bir veri kümesi.
- CIFAR-100: 100 nesne kategorisi ve her sınıfta 600 görüntü içeren, CIFAR-10'un genişletilmiş sürümü.
- 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ümesi.
- ImageNet: 1.000 sınıf, 1,28 milyon eğitim görseli ve 50.000 doğrulama görseli içeren ImageNet-1k (ILSVRC-2012) görüntü sınıflandırma kıyaslama veri kümesi.
- ImageNet-10: Daha hızlı deneme ve testler için 10 kategoriden oluşan, ImageNet'in daha küçük bir alt kümesi.
- 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ümesi.
- 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ümesi.
- 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ümesi.
- MNIST160: Hem MNIST eğitim hem de test bölümlerinden her rakamın (0-9) ilk 8 görüntüsü. Veri kümesi toplam 160 görüntü içerir.
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 uyduğundan emin ol; ardından eğitim betiğini başlatırken data bağımsız değişkenini veri kümesi dizinine ayarla.
Sık Sorulan Sorular#
Ultralytics YOLO sınıflandırma görevleri için veri kümeni yapılandırırken belirli bir bölümlenmiş dizin biçimini izlemelisin. Veri kümeni
trainvevaldizinlerine, isteğe bağlı olarak datestdizinine ayır. Bu dizinlerin her biri, her sınıfın adını taşıyan alt dizinler ve ilgili görselleri içermelidir. Bu yapı, eğitim ve değerlendirme süreçlerinin sorunsuz ilerlemesini sağlar. Örnek olarak CIFAR-10 veri kümesi biçimini incele:cifar10/ |-- train/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- val/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- test/ (optional) | |-- airplane/ | |-- automobile/ | |-- bird/ | ...Daha fazla bilgi 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 indirilmesini destekler. Bu veri kümeleri YOLO ile kolayca kullanılabilecek şekilde yapılandırılmıştır. Her veri kümesinin sayfasında yapısı ve uygulamaları hakkında daha fazla bilgi bulunur.
Kendi veri kümeni Ultralytics YOLO ile kullanmak için sınıflandırma görevinin gerektirdiği belirtilen dizin biçimine uyduğundan emin ol. Veri kümesi, ayrı
trainvevaldizinlerini (isteğe bağlı olaraktestdizinini) ve her sınıfın görsellerini içeren alt dizinleri barındırmalıdır. Veri kümen doğru yapılandırıldıktan sonra eğitim betiğini başlatırkendatabağımsız değişkenini veri kümesinin kök dizinine ayarla. Python örneği:from ultralytics import YOLO # Bir model yükle model = YOLO("yolo26n-cls.pt") # Önceden eğitilmiş bir model yükle (eğitim için önerilir) # Modeli eğit results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)Daha fazla ayrıntıyı Kendi veri kümeni ekleme bölümünde bulabilirsin.
Ultralytics YOLO, görüntü sınıflandırma için aşağıdakiler de dahil olmak üzere çeşitli avantajlar sunar:
- Önceden Eğitilmiş Modeller: Eğitim sürecini hızla başlatmak için
yolo26n-cls.ptgibi ö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 ürünü doğruluk ve hız.
- Birden Fazla Veri Kümesini Destekleme: CIFAR-10, ImageNet ve daha fazlası gibi popüler veri kümeleriyle sorunsuz entegrasyon.
- Topluluk ve Destek: Sorun giderme ve iyileştirmeler için kapsamlı belgelere ve aktif bir topluluğa erişim.
Ek bilgiler ve gerçek dünya uygulamaları için Ultralytics YOLO sayfasını inceleyebilirsin.
- Önceden Eğitilmiş Modeller: Eğitim sürecini hızla başlatmak için
Ultralytics YOLO kullanarak Python'da ve CLI üzerinden kolayca model eğitebilirsin. Örnek:
Örnekfrom ultralytics import YOLO # Bir model yükle model = YOLO("yolo26n-cls.pt") # önceden eğitilmiş bir modeli yükle # Modeli eğit results = model.train(data="path/to/dataset", epochs=100, imgsz=640)Bu örnekler, her iki yöntemle de YOLO modelini eğitmenin ne kadar kolay olduğunu gösterir. Daha fazla bilgi için Kullanım bölümünü ve sınıflandırma görevlerine yönelik Eğitim sayfasını ziyaret et.