Ultralytics YOLO27:
Get Started

YOLOv9: Nesne Algılama Teknolojisinde İleriye Doğru Büyük Bir Adım#

YOLOv9, gerçek zamanlı nesne algılamada önemli bir ilerlemeye işaret eder ve Programlanabilir Gradyan Bilgisi (PGI) ile Genelleştirilmiş Verimli Katman Birleştirme Ağı (GELAN) gibi çığır açan teknikleri sunar. Bu model; verimlilik, doğruluk ve uyarlanabilirlik alanlarında kayda değer gelişmeler göstererek MS COCO veri kümesinde yeni kıyaslama sonuçları ortaya koyar. Ayrı bir açık kaynak ekip tarafından geliştirilmiş olsa da YOLOv9 projesi, yapay zekâ araştırma topluluğunun iş birliği ruhunu ortaya koyarak Ultralytics YOLOv5 tarafından sağlanan güçlü kod tabanını temel alır.



İzle: Ultralytics Kullanarak Özel Verilerle YOLOv9 Eğitimi | Endüstriyel Paket Veri Kümesi

YOLOv9 performans karşılaştırması

YOLOv9'a Giriş#

Gerçek zamanlı nesne algılamada en iyi sonuca ulaşma arayışında YOLOv9, derin sinir ağlarının doğasında bulunan bilgi kaybı sorunlarını aşmaya yönelik yenilikçi yaklaşımıyla öne çıkar. PGI ve çok yönlü GELAN mimarisini bir araya getiren YOLOv9, modelin öğrenme kapasitesini artırmanın yanı sıra algılama süreci boyunca kritik bilgilerin korunmasını da sağlar; böylece olağanüstü doğruluk ve performans sunar.

YOLOv9'un Temel Yenilikleri#

YOLOv9'daki gelişmeler, derin sinir ağlarında bilgi kaybının yol açtığı sorunları çözmeye dayanır. Bilgi Darboğazı İlkesi ve Tersinir Fonksiyonların yenilikçi kullanımı, YOLOv9'un yüksek verimlilik ve doğruluğu korumasını sağlayan tasarımının temel unsurlarıdır.

Bilgi Darboğazı İlkesi#

Bilgi Darboğazı İlkesi, derin öğrenmedeki temel bir sorunu ortaya koyar: Veriler bir ağın ardışık katmanlarından geçtikçe bilgi kaybı olasılığı artar. Bu olgu matematiksel olarak şöyle ifade edilir:

I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))

Burada I karşılıklı bilgiyi belirtirken, f ve g, sırasıyla theta ve phi parametrelerine sahip dönüşüm fonksiyonlarını ifade eder. YOLOv9, ağın derinliği boyunca temel verilerin korunmasına yardımcı olan Programlanabilir Gradyan Bilgisini (PGI) uygulayarak bu soruna karşı koyar; böylece daha güvenilir gradyanlar üretilir ve sonuç olarak model daha iyi yakınsar ve performans gösterir.

Tersinir Fonksiyonlar#

Tersinir Fonksiyonlar kavramı, YOLOv9 tasarımının bir diğer temel unsurudur. Bir fonksiyon, hiçbir bilgi kaybı olmadan tersi alınabiliyorsa tersinir kabul edilir; bu durum şöyle ifade edilir:

X = v_zeta(r_psi(X))

Burada psi ve zeta, sırasıyla tersinir fonksiyonun ve ters fonksiyonunun parametreleridir. Bu özellik, derin öğrenme mimarileri için kritik önemdedir; çünkü ağın bilgi akışını eksiksiz korumasına ve böylece model parametrelerini daha doğru güncellemesine olanak tanır. YOLOv9, bilgi bozulması riskini, özellikle daha derin katmanlarda azaltmak ve nesne algılama görevleri için kritik verilerin korunmasını sağlamak amacıyla mimarisinde tersinir fonksiyonlara yer verir.

Hafif Modeller Üzerindeki Etkisi#

Bilgi kaybını ele almak, genellikle yetersiz sayıda parametreye sahip olan ve ileri beslemeli süreçte önemli miktarda bilgi kaybetmeye yatkın hafif modeller için özellikle önemlidir. YOLOv9 mimarisi; PGI ve tersinir fonksiyonlardan yararlanarak sadeleştirilmiş bir modelde bile doğru nesne algılama için gereken temel bilgilerin korunmasını ve etkili biçimde kullanılmasını sağlar.

Programlanabilir Gradyan Bilgisi (PGI)#

PGI, bilgi darboğazı sorunuyla mücadele etmek ve derin ağ katmanları boyunca temel verilerin korunmasını sağlamak için YOLOv9'da sunulan yeni bir kavramdır. Güvenilir gradyanların üretilmesini sağlayarak modelin doğru biçimde güncellenmesine yardımcı olur ve genel algılama performansını artırır.

Genelleştirilmiş Verimli Katman Birleştirme Ağı (GELAN)#

GELAN, YOLOv9'un parametreleri daha verimli kullanmasını ve hesaplama verimliliğini artırmasını sağlayan stratejik bir mimari gelişmedir. Tasarımı, çeşitli hesaplama bloklarının esnek biçimde birleştirilmesine olanak tanır; böylece YOLOv9 hızdan veya doğruluktan ödün vermeden çok çeşitli uygulamalara uyarlanabilir.

YOLOv9 mimari karşılaştırması

YOLOv9 Kıyaslama Sonuçları#

Ultralytics ile YOLOv9 kıyaslaması yapmak, eğitilmiş ve doğrulanmış modelinin gerçek dünya senaryolarındaki performansını değerlendirmeyi içerir. Bu süreç şunları kapsar:

  • Performans Değerlendirmesi: Modelin hızını ve doğruluğunu değerlendirme.
  • Dışa Aktarma Biçimleri: Gerekli standartları karşıladığından ve çeşitli ortamlarda iyi performans gösterdiğinden emin olmak için modeli farklı dışa aktarma biçimlerinde test etme.
  • Çerçeve Desteği: Bu değerlendirmeleri kolaylaştırmak ve tutarlı, güvenilir sonuçlar elde edilmesini sağlamak için Ultralytics paketi içinde kapsamlı bir çerçeve sunma.

Kıyaslama yaparak modelinin yalnızca kontrollü test ortamlarında iyi performans gösterdiğinden değil, gerçek dünyadaki pratik uygulamalarda da yüksek performansını koruduğundan emin olabilirsin.



İzle: Ultralytics Python Paketiyle YOLOv9 Modelinde Benchmark Nasıl Yapılır

MS COCO Veri Kümesindeki Performans#

YOLOv9'un COCO veri kümesindeki performansı, gerçek zamanlı nesne algılamadaki önemli gelişmelerini ortaya koyar ve çeşitli model boyutlarında yeni kıyaslama sonuçları sunar. Tablo 1, son teknoloji gerçek zamanlı nesne algılayıcılarının kapsamlı bir karşılaştırmasını sunarak YOLOv9'un üstün verimliliğini ve doğruluğunu gösterir.

Performans
Modelboyut
(piksel)
mAPval
50-95
mAPval
50
parametre
(M)
FLOPs
(B)
YOLOv9t64038.353.12.07.7
YOLOv9s64046.863.47.226.7
YOLOv9m64051.468.120.176.8
YOLOv9c64053.070.225.5102.8
YOLOv9e64055.672.858.1192.5

YOLOv9'un küçük t varyantından kapsamlı e modeline uzanan sürümleri, yalnızca doğrulukta (mAP ölçütleri) değil, parametre sayısının ve hesaplama gereksinimlerinin (FLOPs) azaltılmasıyla verimlilikte de gelişmeler gösterir. Bu tablo, YOLOv9'un önceki sürümlere ve rakip modellere kıyasla hesaplama yükünü korurken veya azaltırken yüksek kesinlik sunabildiğini vurgular.

Karşılaştırmalı olarak YOLOv9 kayda değer kazanımlar sunar:

  • Hafif Modeller: YOLOv9s, AP değerini %0.4∼0.6 artırırken parametre verimliliği ve hesaplama yükü açısından YOLO MS-S'yi geride bırakır.
  • Orta ve Büyük Modeller: YOLOv9m ve YOLOv9e, model karmaşıklığı ile algılama performansı arasındaki denge konusunda kayda değer gelişmeler sunar; doğruluk artarken parametre ve hesaplama miktarlarını önemli ölçüde azaltır.

Özellikle YOLOv9c modeli, mimarinin optimizasyonlarının etkisini ortaya koyar. YOLOv7 AF'ye göre %42 daha az parametre ve %21 daha düşük hesaplama gereksinimiyle çalışmasına rağmen benzer doğruluğa ulaşarak YOLOv9'un verimlilikteki önemli gelişmelerini gösterir. Ayrıca YOLOv9e modeli, YOLOv8x modeline kıyasla %15 daha az parametre ve %25 daha düşük hesaplama gereksinimiyle birlikte AP'de %1.7'lik ek bir artış sunarak büyük modeller için yeni bir standart belirler.

Bu sonuçlar, gerçek zamanlı nesne algılama görevleri için gereken kesinlikten ödün vermeden verimliliği artıran YOLOv9'un model tasarımındaki stratejik gelişmeleri ortaya koyar. Model, performans ölçütlerinin sınırlarını zorlamanın yanı sıra hesaplama verimliliğinin önemini de vurgulayarak bilgisayarlı görü alanında önemli bir gelişme olarak öne çıkar.

Sonuç#

Şubat 2024'te yayımlanan YOLOv9, verimlilik, doğruluk ve uyarlanabilirlik açısından önemli gelişmeler sunarak gerçek zamanlı nesne algılamada kritik bir gelişme oldu. PGI ve GELAN gibi yenilikçi çözümlerle kritik sorunları ele alan YOLOv9, yayımlandığı dönemde yeni kıyaslama sonuçları ortaya koydu. YOLO11 ve YOLO26 gibi daha yeni modeller ek iyileştirmelerle yayımlanmış olsa da YOLOv9'un mimari yenilikleri alanı etkilemeye devam ediyor.

Kullanım Örnekleri#

Bu örnekte temel YOLOv9 eğitim ve çıkarım örnekleri sunulmaktadır. Bu ve diğer modlar hakkında eksiksiz belgeler için Predict, Train, Val ve Export dokümantasyon sayfalarına bak.

Örnek

PyTorch önceden eğitilmiş *.pt modelleri ve yapılandırma *.yaml dosyaları, Python'da bir model örneği oluşturmak için YOLO() sınıfına aktarılabilir:

from ultralytics import YOLO

# Sıfırdan bir YOLOv9c modeli oluştur
model = YOLO("yolov9c.yaml")

# Önceden eğitilmiş ağırlıklardan bir YOLOv9c modeli oluştur
model = YOLO("yolov9c.pt")

# Model bilgilerini görüntüle (isteğe bağlı)
model.info()

# Modeli COCO8 örnek veri kümesinde 100 dönem boyunca eğit
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 'bus.jpg' görüntüsünde YOLOv9c modeliyle çıkarım yap
results = model("path/to/bus.jpg")

Desteklenen Görevler ve Modlar#

YOLOv9 serisi, yüksek performanslı Nesne Algılama için optimize edilmiş çeşitli modeller sunar. Bu modeller farklı hesaplama gereksinimlerine ve doğruluk beklentilerine hitap ederek çok çeşitli uygulamalarda kullanılabilir.

ModelDosya adlarıGörevlerEğitimDoğrulamaÇıkarımDışa aktar
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptNesne Algılama✅✅✅✅
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptÖrnek Segmentasyonu✅✅✅✅

Bu tablo, YOLOv9 model varyantlarına ayrıntılı bir genel bakış sunar; nesne algılama görevlerindeki yeteneklerini ve Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma gibi çeşitli çalışma modlarıyla uyumluluklarını vurgular. Bu kapsamlı destek, kullanıcıların YOLOv9 modellerinin yeteneklerinden çok çeşitli nesne algılama senaryolarında tam anlamıyla yararlanmasını sağlar.

Not

YOLOv9 modellerini eğitmek, benzer boyuttaki YOLOv8 modeline kıyasla daha fazla kaynak gerektirir ve daha uzun sürer.

Atıflar ve Teşekkürler#

Gerçek zamanlı nesne algılama alanına önemli katkılarından dolayı YOLOv9 yazarlarına teşekkür etmek isteriz:

Alıntı
@inproceedings{wang2024yolov9,
  title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
  booktitle={Computer Vision -- ECCV 2024},
  pages={1--21},
  year={2024},
  organization={Springer Nature Switzerland}
}

Resmî YOLOv9 makalesi Springer ECCV 2024 bildirilerinde yayımlandı; ön baskısı arXiv üzerinde yer alıyor. Yazarlar çalışmalarını kamuya açık hâle getirdi ve kod tabanına GitHub üzerinden erişilebiliyor. Alanı geliştirme ve çalışmalarını daha geniş topluluğun erişimine açma çabalarını takdir ediyoruz.

Sık Sorulan Sorular#

  • YOLOv9, Programlanabilir Gradyan Bilgisi (PGI) ve Genelleştirilmiş Verimli Katman Birleştirme Ağı (GELAN) gibi çığır açan teknikler sunar. Bu yenilikler, derin sinir ağlarındaki bilgi kaybı sorunlarını ele alarak yüksek verimlilik, doğruluk ve uyarlanabilirlik sağlar. PGI, ağ katmanları boyunca temel verileri korurken GELAN, parametre kullanımını ve hesaplama verimliliğini optimize eder. MS COCO veri kümesinde yeni kıyaslama sonuçları ortaya koyan YOLOv9'un temel yenilikleri hakkında daha fazla bilgi edin.

  • YOLOv9, daha yüksek doğruluk ve verimlilik elde ederek son teknoloji gerçek zamanlı nesne algılayıcılarından daha iyi performans gösterir. COCO veri kümesinde YOLOv9 modelleri, hesaplama yükünü korurken veya azaltırken farklı boyutlarda daha yüksek mAP skorları sunar. Örneğin YOLOv9c, YOLOv7 AF'ye göre %42 daha az parametre ve %21 daha düşük hesaplama gereksinimiyle benzer doğruluğa ulaşır. Ayrıntılı ölçütler için performans karşılaştırmalarını incele.

  • Bir YOLOv9 modelini hem Python hem de CLI komutlarıyla eğitebilirsin. Python'da YOLO sınıfını kullanarak bir model örneği oluştur ve train metodunu çağır:

    from ultralytics import YOLO
    
    # Önceden eğitilmiş ağırlıklardan bir YOLOv9c modeli oluştur ve eğit
    model = YOLO("yolov9c.pt")
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    CLI ile eğitim için şu komutu çalıştır:

    yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

    Eğitim ve çıkarıma yönelik kullanım örnekleri hakkında daha fazla bilgi edin.

  • YOLOv9, özellikle önemli miktarda bilgi kaybetmeye yatkın hafif modeller için önem taşıyan bilgi kaybını azaltacak şekilde tasarlanmıştır. Programlanabilir Gradyan Bilgisini (PGI) ve tersinir fonksiyonları bir araya getiren YOLOv9, temel verilerin korunmasını sağlayarak modelin doğruluğunu ve verimliliğini artırır. Bu özellik, yüksek performanslı ve küçük boyutlu modeller gerektiren uygulamalar için YOLOv9'u son derece uygun kılar. Daha fazla ayrıntı için YOLOv9'un hafif modeller üzerindeki etkisi bölümünü incele.

  • YOLOv9, nesne algılama ve örnek bölütleme dahil çeşitli görevleri destekler. Çıkarım, doğrulama, eğitim ve dışa aktarma gibi birden fazla çalışma moduyla uyumludur. Bu çok yönlülük, YOLOv9'u çeşitli gerçek zamanlı bilgisayarlı görü uygulamalarına uyarlanabilir kılar. Daha fazla bilgi için desteklenen görevler ve modlar bölümüne bak.

Yorumlar