YOLOv9: Nesne Tespiti Teknolojisinde İleriye Doğru Büyük Bir Adım#
YOLOv9, gerçek zamanlı nesne tespitinde önemli bir ilerleme sunarak Programlanabilir Gradyan Bilgisi (PGI) ve Genelleştirilmiş Verimli Katman Birleştirme Ağı (GELAN) gibi çığır açan teknikleri kullanıma sunar. Bu model, MS COCO veri kümesinde verimlilik, doğruluk ve uyarlanabilirlik açısından dikkate değer iyileştirmeler göstererek yeni ölçütler belirler. Ayrı bir açık kaynak ekip tarafından geliştirilen YOLOv9 projesi, Ultralytics YOLOv5 tarafından sağlanan güçlü kod tabanını temel alır ve yapay zekâ araştırma topluluğunun iş birliğine dayalı ruhunu sergiler.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

YOLOv9'a Giriş#
En iyi gerçek zamanlı nesne tespitini elde etme arayışında YOLOv9, derin sinir ağlarında bulunan bilgi kaybı sorunlarının üstesinden gelmeye yönelik yenilikçi yaklaşımıyla öne çıkar. PGI ve çok yönlü GELAN mimarisini entegre eden YOLOv9, modelin öğrenme kapasitesini artırmakla kalmaz, aynı zamanda tespit süreci boyunca kritik bilgilerin korunmasını sağlayarak olağanüstü doğruluk ve performans elde eder.
YOLOv9'un Temel Yenilikleri#
YOLOv9'un ilerlemeleri, derin sinir ağlarındaki bilgi kaybının yol açtığı sorunları ele almaya dayanır. Bilgi Darboğazı İlkesi ve Tersine Çevrilebilir İşlevlerin yenilikçi kullanımı, tasarımının merkezinde yer alır ve YOLOv9'un yüksek verimlilik ile doğruluğu korumasını sağlar.
Bilgi Darboğazı İlkesi#
Bilgi Darboğazı İlkesi, derin öğrenmede 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 şu şekilde gösterilir:
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))Burada I karşılıklı bilgiyi, f ve g ise sırasıyla theta ve phi parametrelerine sahip dönüşüm işlevlerini belirtir. 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 gradyan üretimi ve bunun sonucunda daha iyi model yakınsaması ile performans sağlar.
Tersine Çevrilebilir İşlevler#
Tersine Çevrilebilir İşlevler kavramı, YOLOv9 tasarımının bir diğer temel unsurudur. Bir işlev, herhangi bir bilgi kaybı olmadan tersine çevrilebiliyorsa tersine çevrilebilir kabul edilir ve bu durum şu şekilde ifade edilir:
X = v_zeta(r_psi(X))Burada psi ve zeta, sırasıyla tersine çevrilebilir işlevin ve onun ters işlevinin parametreleridir. Bu özellik, derin öğrenme mimarileri için kritik öneme sahiptir; çünkü ağın eksiksiz bir bilgi akışını korumasına ve böylece model parametrelerinde daha doğru güncellemeler yapılmasına olanak tanır. YOLOv9, özellikle daha derin katmanlarda bilgi bozulması riskini azaltmak ve nesne tespiti görevleri için kritik verilerin korunmasını sağlamak amacıyla mimarisi içinde tersine çevrilebilir işlevler kullanır.
Hafif Modeller Üzerindeki Etki#
Bilgi kaybını ele almak, genellikle yetersiz parametreli olan ve ileri besleme süreci sırasında önemli miktarda bilgi kaybetmeye yatkın hafif modeller için özellikle hayati önem taşır. YOLOv9'un mimarisi, PGI ve tersine çevrilebilir işlevlerin kullanımı sayesinde, sadeleştirilmiş bir modelde bile doğru nesne tespiti için gereken temel bilgilerin korunmasını ve etkili şekilde 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 amacıyla YOLOv9'da sunulan yeni bir kavramdır. Bu yaklaşım, güvenilir gradyanların üretilmesini sağlayarak doğru model güncellemelerini kolaylaştırır ve genel tespit performansını iyileştirir.
Genelleştirilmiş Verimli Katman Birleştirme Ağı (GELAN)#
GELAN, YOLOv9'un üstün parametre kullanımı ve hesaplama verimliliği elde etmesini sağlayan stratejik bir mimari ilerlemeyi temsil eder. Tasarımı, çeşitli hesaplama bloklarının esnek biçimde entegre edilmesine olanak tanır; bu da YOLOv9'u hız veya doğruluktan ödün vermeden çok çeşitli uygulamalara uyarlanabilir hâle getirir.

YOLOv9 Karşılaştırmalı Testleri#
Ultralytics kullanılarak YOLOv9'da karşılaştırmalı test 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çimleriyle test etme.
- Çerçeve Desteği: Bu değerlendirmeleri kolaylaştırmak ve tutarlı ile güvenilir sonuçlar sağlamak amacıyla Ultralytics paketi içinde kapsamlı bir çerçeve sağlanır.
Karşılaştırmalı test yaparak modelinin yalnızca kontrollü test ortamlarında iyi performans göstermesini değil, aynı zamanda pratik gerçek dünya uygulamalarında da yüksek performansını korumasını sağlayabilirsin.
Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package
MS COCO Veri Kümesindeki Performans#
YOLOv9'un COCO veri kümesindeki performansı, gerçek zamanlı nesne tespitindeki önemli ilerlemelerini ortaya koyarak çeşitli model boyutlarında yeni ölçütler belirler. Tablo 1, son teknoloji gerçek zamanlı nesne tespit modellerinin kapsamlı bir karşılaştırmasını sunarak YOLOv9'un üstün verimliliğini ve doğruluğunu gösterir.
YOLOv9'un küçük t varyantından kapsamlı e modeline kadar uzanan sürümleri, yalnızca doğrulukta (mAP ölçütleri) değil, azaltılmış parametre sayısı ve hesaplama gereksinimleriyle (FLOP'lar) verimlilikte de iyileş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 sunma becerisini vurgular.
Karşılaştırmalı olarak YOLOv9 dikkate değer kazanımlar sergiler:
- Hafif Modeller: YOLOv9s, parametre verimliliği ve hesaplama yükü açısından YOLO MS-S'yi geride bırakırken AP değerinde %0,4∼%0,6 iyileşme sağlar.
- Orta ve Büyük Modeller: YOLOv9m ve YOLOv9e, model karmaşıklığı ile tespit performansı arasındaki dengeyi sağlamada kayda değer ilerlemeler gösterir; doğruluktaki iyileşmeler eşliğinde parametre ve hesaplama sayısında önemli azalmalar sunar.
Özellikle YOLOv9c modeli, mimari optimizasyonların etkililiğini 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şır ve YOLOv9'un önemli verimlilik iyileştirmelerini gösterir. Ayrıca YOLOv9e modeli, YOLOv8x modeline göre %15 daha az parametre ve %25 daha düşük hesaplama gereksinimiyle, AP'de kademeli %1,7 iyileşme sağlayarak büyük modeller için yeni bir standart belirler.
Bu sonuçlar, YOLOv9'un model tasarımındaki stratejik ilerlemelerini ortaya koyar ve gerçek zamanlı nesne tespiti görevleri için gerekli kesinlikten ödün vermeden geliştirilmiş verimliliğini vurgular. Model, performans ölçütlerinin sınırlarını zorlamakla kalmaz, aynı zamanda hesaplama verimliliğinin önemini de öne çıkararak bilgisayarlı görü alanında önemli bir gelişme hâline gelir.
Sonuç#
Şubat 2024'te yayımlanan YOLOv9, verimlilik, doğruluk ve uyarlanabilirlik açısından önemli iyileştirmeler sunarak gerçek zamanlı nesne tespitinde dönüm noktası niteliğinde bir gelişme olmuştur. PGI ve GELAN gibi yenilikçi çözümlerle kritik sorunları ele alan YOLOv9, yayımlandığı dönemde yeni ölçütler belirlemiştir. YOLO11 ve YOLO26 gibi daha yeni modeller o zamandan beri ek iyileştirmelerle yayımlanmış olsa da YOLOv9'un mimari yenilikleri alanı etkilemeye devam etmektedir.
Kullanım Örnekleri#
Bu örnek, basit YOLOv9 eğitimi ve çıkarımı örnekleri sunar. Bunlar ve diğer modlar hakkında eksiksiz belgeler için Predict, Train, Val ve Export belge sayfalarına bak.
PyTorch önceden eğitilmiş *.pt modelleri ile 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
# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")
# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Desteklenen Görevler ve Modlar#
YOLOv9 serisi, her biri yüksek performanslı Nesne Tespiti için optimize edilmiş çeşitli modeller sunar. Bu modeller, farklı hesaplama gereksinimlerine ve doğruluk ihtiyaçlarına hitap ederek çok çeşitli uygulamalar için esneklik sağlar.
| Model | Dosya Adları | Görevler | Eğitim | Doğrulama | Çıkarım | Dışa aktarma |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Nesne Tespiti | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Örnek Segmentasyonu | ✅ | ✅ | ✅ | ✅ |
Bu tablo, YOLOv9 model varyantlarına ayrıntılı bir genel bakış sunarak nesne tespiti görevlerindeki yeteneklerini ve Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma gibi çeşitli işlem modlarıyla uyumluluklarını vurgular. Bu kapsamlı destek, kullanıcıların çok çeşitli nesne tespiti senaryolarında YOLOv9 modellerinin yeteneklerinden tam olarak yararlanmasını sağlar.
YOLOv9 modellerini eğitmek, eşdeğer boyuttaki YOLOv8 modeline göre daha fazla kaynak gerektirir ve daha uzun sürer.
Atıflar ve Teşekkürler#
Gerçek zamanlı nesne tespiti alanına önemli katkılarından dolayı YOLOv9 yazarlarını anmak isteriz:
@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ımlanmış ve arXiv üzerinde bir ön baskısı paylaşılmıştır. Yazarlar çalışmalarını kamuya açık hâle getirmiş ve kod tabanına GitHub üzerinden erişim sağlamıştır. Alanın ilerlemesine ve çalışmalarını daha geniş topluluğun erişimine sunmalarına yönelik çabalarını takdir ediyoruz.
SSS#
YOLOv9, Programlanabilir Gradyan Bilgisi (PGI) ve Genelleştirilmiş Verimli Katman Birleştirme Ağı (GELAN) gibi çığır açan teknikleri 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 ölçütler belirleyen 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 tespit modellerini geride bırakır. COCO veri kümesinde YOLOv9 modelleri, hesaplama yükünü korurken veya azaltırken çeşitli boyutlarda üstün mAP puanları sergiler. Ö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.
YOLOv9 modelini hem Python hem de CLI komutlarını kullanarak eğitebilirsin. Python için
YOLOsınıfını kullanarak bir model örneği oluştur vetrainyöntemini çağır:from ultralytics import YOLO # Build a YOLOv9c model from pretrained weights and train model = YOLO("yolov9c.pt") results = model.train(data="coco8.yaml", epochs=100, imgsz=640)CLI ile eğitim için şunu çalıştır:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Eğitim ve çıkarım için kullanım örnekleri hakkında daha fazla bilgi edin.
YOLOv9, özellikle önemli miktarda bilgi kaybetmeye yatkın hafif modeller için kritik olan bilgi kaybını azaltmak üzere tasarlanmıştır. Programlanabilir Gradyan Bilgisini (PGI) ve tersine çevrilebilir işlevleri entegre eden YOLOv9, temel verilerin korunmasını sağlayarak modelin doğruluğunu ve verimliliğini artırır. Bu özellik, yüksek performanslı ve kompakt modeller gerektiren uygulamalar için onu son derece uygun hâle getirir. Daha fazla ayrıntı için YOLOv9'un hafif modeller üzerindeki etkisi bölümünü incele.
YOLOv9, nesne tespiti ve örnek segmentasyonu dâhil olmak üzere çeşitli görevleri destekler. Çıkarım, doğrulama, eğitim ve dışa aktarma gibi birden çok işlem moduyla uyumludur. Bu esneklik, YOLOv9'u çeşitli gerçek zamanlı bilgisayarlı görü uygulamalarına uyarlanabilir hâle getirir. Daha fazla bilgi için desteklenen görevler ve modlar bölümüne bak.