YOLOv9: Nesne Algılama Teknolojisinde İleriye Doğru Bir Atılım

YOLOv9, Programlanabilir Gradyan Bilgisi (PGI) ve Genelleştirilmiş Verimli Katman Birleştirme Ağı (GELAN) gibi çığır açan teknikleri tanıtarak gerçek zamanlı nesne algılamada önemli bir ilerlemeyi işaret eder. Bu model, verimlilik, doğruluk ve uyarlanabilirlik konularında kayda değer gelişmeler göstererek MS COCO veri setinde yeni standartlar belirlemektedir. Bağımsız bir açık kaynak ekibi tarafından geliştirilmiş olsa da, YOLOv9 projesi Ultralytics YOLOv5 tarafından sağlanan sağlam kod tabanı üzerine inşa edilmiştir ve yapay zeka araştırma topluluğunun iş birliği ruhunu sergilemektedir.



Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

YOLOv9 performans karşılaştırması

YOLOv9'a Giriş

Optimum gerçek zamanlı nesne algılama arayışında YOLOv9, derin sinir ağlarında doğal olarak bulunan bilgi kaybı zorluklarının üstesinden gelmeye yönelik yenilikçi yaklaşımıyla öne çıkmaktadır. PGI ve çok yönlü GELAN mimarisini entegre ederek YOLOv9, yalnızca modelin öğrenme kapasitesini artırmakla kalmaz, aynı zamanda algılama süreci boyunca kritik bilgilerin korunmasını sağlayarak olağanüstü doğruluk ve performans elde eder.

YOLOv9'un Temel Yenilikleri

YOLOv9'un geliştirmeleri, derin sinir ağlarındaki bilgi kaybının yarattığı zorlukları ele almaya dayanmaktadır. Bilgi Darboğazı İlkesi ve Tersinir Fonksiyonların yenilikçi kullanımı, YOLOv9'un yüksek verimlilik ve doğruluk sağlamasında merkezi bir rol oynar.

Bilgi Darboğazı İlkesi

Bilgi Darboğazı İlkesi, derin öğrenmedeki temel bir zorluğu ortaya koyar: veri bir ağın ardışık katmanlarından geçerken, bilgi kaybı potansiyeli artar. Bu fenomen matematiksel olarak şu şekilde temsil edilir:

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 fonksiyonlarını ifade eder. YOLOv9, bu zorluğa karşı, ağın derinliği boyunca temel verilerin korunmasına yardımcı olan, böylece daha güvenilir gradyan üretimi ve buna bağlı olarak daha iyi model yakınsaması ve performansı sağlayan Programlanabilir Gradyan Bilgisi'ni (PGI) uygulayarak yanıt verir.

Tersinir Fonksiyonlar

Tersinir Fonksiyonlar kavramı, YOLOv9'un tasarımının bir diğer temel taşıdır. Bir fonksiyon, şu şekilde ifade edildiği üzere, herhangi bir bilgi kaybı olmadan tersine çevrilebiliyorsa tersinir olarak kabul edilir:

X = v_zeta(r_psi(X))

sırasıyla tersinir ve ters fonksiyon için psi ve zeta parametreleri ile. Bu özellik, derin öğrenme mimarileri için kritiktir; çünkü ağın eksiksiz bir bilgi akışını korumasına ve böylece model parametrelerinin daha doğru güncellenmesine olanak tanır. YOLOv9, mimarisine tersinir fonksiyonları dahil ederek, özellikle daha derin katmanlarda bilgi bozulması riskini azaltır ve nesne algılama görevleri için kritik verilerin korunmasını sağlar.

Hafif Modeller Üzerindeki Etkisi

Bilgi kaybını gidermek, genellikle yetersiz parametrelere sahip olan ve ileri besleme sürecinde önemli bilgileri kaybetmeye yatkın olan hafif modeller için özellikle hayati önem taşır. YOLOv9'un mimarisi, PGI ve tersinir fonksiyonların kullanımı sayesinde, basitleştirilmiş bir modelde bile doğru nesne algılama için gereken temel bilgilerin korunmasını ve etkin bir şekilde kullanılmasını sağlar.

Programlanabilir Gradyan Bilgisi (PGI)

PGI, bilgi darboğazı problemiyle mücadele etmek ve derin ağ katmanları boyunca temel verilerin korunmasını sağlamak için YOLOv9'da tanıtılan yeni bir kavramdır. Bu, güvenilir gradyanların oluşturulmasına izin vererek doğru model güncellemelerini kolaylaştırır ve genel algılama 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 bir şekilde entegrasyonuna izin vererek YOLOv9'u hız veya doğruluktan ödün vermeden çok çeşitli uygulamalara uyarlanabilir kılar.

YOLOv9 mimari karşılaştırması

YOLOv9 Kıyaslamaları

Ultralytics kullanarak YOLOv9'daki kıyaslama, eğitilmiş ve doğrulanmış modelinizin gerçek dünya senaryolarındaki performansını değerlendirmeyi içerir. Bu süreç şunları kapsar:

  • Performans Değerlendirmesi: Modelin hız ve doğruluğunun değerlendirilmesi.
  • Dışa Aktarma Formatları: Gerekli standartları karşıladığından ve çeşitli ortamlarda iyi çalıştığından emin olmak için modelin farklı dışa aktarma formatlarında test edilmesi.
  • Çerçeve Desteği: Bu değerlendirmeleri kolaylaştırmak ve tutarlı, güvenilir sonuçlar sağlamak için Ultralytics YOLOv8 içinde kapsamlı bir çerçeve sağlanması.

Kıyaslama yaparak, modelinizin yalnızca kontrollü test ortamlarında iyi performans göstermesini sağlamakla kalmaz, aynı zamanda pratik, gerçek dünya uygulamalarında da yüksek performansını korumasını sağlarsınız.



Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package

MS COCO Veri Setindeki Performans

YOLOv9'un COCO veri setindeki performansı, gerçek zamanlı nesne algılamadaki önemli ilerlemelerini örneklemekte ve çeşitli model boyutlarında yeni standartlar belirlemektedir. Tablo 1, en son teknoloji gerçek zamanlı nesne dedektörlerinin kapsamlı bir karşılaştırmasını sunarak YOLOv9'un üstün verimliliğini ve doğruluğunu göstermektedir.

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 geniş e modeline kadar değişen yinelemeleri, yalnızca doğrulukta (mAP metrikleri) değil, aynı zamanda daha az parametre sayısı ve hesaplama ihtiyacı (FLOPs) ile verimlilikte de iyileştirmeler 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 hassasiyet sunma yeteneğinin altını çizmektedir.

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

  • Hafif Modeller: YOLOv9s, AP'de 0.4∼0.6% iyileşme sağlarken 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 dengeyi kurmada kayda değer ilerlemeler göstererek, iyileştirilmiş doğruluk zemininde parametrelerde ve hesaplamalarda önemli azalmalar sunar.

YOLOv9c modeli, özellikle mimarinin optimizasyonlarının etkinliğini vurgular. YOLOv7 AF'den %42 daha az parametre ve %21 daha az hesaplama ihtiyacı ile çalışmasına rağmen, benzer doğruluk elde ederek YOLOv9'un önemli verimlilik iyileştirmelerini gösterir. Ayrıca YOLOv9e modeli, YOLOv8x'e göre %15 daha az parametre ve %25 daha az hesaplama ihtiyacının yanı sıra AP'de %1.7'lik artımlı bir iyileşme ile büyük modeller için yeni bir standart belirler.

Bu sonuçlar, YOLOv9'un model tasarımındaki stratejik ilerlemelerini sergileyerek, gerçek zamanlı nesne algılama görevleri için gerekli olan hassasiyetten ödün vermeden artırılmış verimliliğini vurgulamaktadır. Model sadece performans metriklerinin sınırlarını zorlamakla kalmaz, aynı zamanda hesaplama verimliliğinin önemini vurgulayarak bilgisayarlı görü alanında önemli bir gelişme haline gelir.

Sonuç

Şubat 2024'te piyasaya sürülen YOLOv9, verimlilik, doğruluk ve uyarlanabilirlik açısından önemli iyileştirmeler sunarak gerçek zamanlı nesne algılamada önemli bir gelişmeyi temsil etti. PGI ve GELAN gibi yenilikçi çözümlerle kritik zorlukları ele alarak, YOLOv9 piyasaya sürüldüğü dönemde yeni standartlar belirledi. O zamandan beri YOLO11 ve YOLO26 gibi ek iyileştirmelerle daha yeni modeller piyasaya sürülmüş olsa da, YOLOv9'un mimari yenilikleri alanı etkilemeye devam etmektedir.

Kullanım Örnekleri

Bu örnek, temel YOLOv9 eğitim ve çıkarım örneklerini sağlar. Bunlar ve diğer modlar hakkındaki tam belgeler için Tahmin, Eğitim, Doğrulama ve Dışa Aktarma belgeleri sayfalarına bakın.

Örnek

PyTorch önceden eğitilmiş *.pt modellerinin yanı sıra 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 Algılama için optimize edilmiş bir dizi model sunar. Bu modeller, değişen hesaplama ihtiyaçlarını ve doğruluk gereksinimlerini karşılayarak onları çok çeşitli uygulamalar için çok yönlü hale getirir.

ModelDosya AdlarıGörevlerÇıkarımDoğrulamaEğitimDışa Aktar (Export)
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptNesne Tespiti
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptInstance Segmentasyon

Bu tablo, YOLOv9 model varyantlarına ilişkin ayrıntılı bir genel bakış sunarak, nesne algılama görevlerindeki yeteneklerini ve Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma gibi çeşitli operasyonel modlarla uyumluluklarını vurgulamaktadır. Bu kapsamlı destek, kullanıcıların YOLOv9 modellerinin yeteneklerinden çok çeşitli nesne algılama senaryolarında tam olarak yararlanabilmelerini sağlar.

Not

YOLOv9 modellerini eğitmek, eşdeğer boyuttaki YOLOv8 modelinden daha fazla kaynak gerektirir ve daha uzun sürer.

Alıntılar ve Teşekkür

Gerçek zamanlı nesne algılama alanına yaptıkları önemli katkılardan dolayı YOLOv9 yazarlarına teşekkür ederiz:

Alıntı
@article{wang2024yolov9,
  title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao  and Liao, Hong-Yuan Mark},
  booktitle={arXiv preprint arXiv:2402.13616},
  year={2024}
}

Orijinal YOLOv9 makalesi arXiv üzerinde bulunabilir. Yazarlar çalışmalarını kamuya açık hale getirmişlerdir ve kod tabanına GitHub üzerinden erişilebilir. Alanı ilerletme ve çalışmalarını daha geniş topluluğun erişimine sunma çabalarını takdir ediyoruz.

SSS

YOLOv9, gerçek zamanlı nesne algılama için hangi yenilikleri getiriyor?

YOLOv9, Programlanabilir Gradyan Bilgisi (PGI) ve Genelleştirilmiş Verimli Katman Birleştirme Ağı (GELAN) gibi çığır açan teknikleri tanıtır. Bu yenilikler, derin sinir ağlarındaki bilgi kaybı zorlukları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 setinde yeni standartlar belirleyen YOLOv9'un temel yenilikleri hakkında daha fazla bilgi edinin.

YOLOv9, MS COCO veri setinde diğer modellere kıyasla nasıl bir performans gösteriyor?

YOLOv9, daha yüksek doğruluk ve verimlilik elde ederek en son teknoloji gerçek zamanlı nesne dedektörlerinden daha iyi performans gösterir. COCO veri setinde, YOLOv9 modelleri, hesaplama yükünü korurken veya azaltırken çeşitli boyutlarda üstün mAP puanları sergiler. Örneğin, YOLOv9c, YOLOv7 AF'ye kıyasla %42 daha az parametre ve %21 daha az hesaplama ihtiyacı ile benzer doğruluk elde eder. Ayrıntılı metrikler için performans karşılaştırmalarını keşfedin.

Python ve CLI kullanarak nasıl bir YOLOv9 modeli eğitebilirim?

Bir YOLOv9 modelini hem Python hem de CLI komutlarını kullanarak eğitebilirsiniz. Python için, YOLO sınıfını kullanarak bir model oluşturun ve train yöntemini çağırın:

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 eğitimi için şunu çalıştırın:

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

Eğitim ve çıkarım için kullanım örnekleri hakkında daha fazla bilgi edinin.

Hafif modeller için Ultralytics YOLOv9 kullanmanın avantajları nelerdir?

YOLOv9, genellikle önemli bilgileri kaybetmeye yatkın olan hafif modeller için özellikle önemli olan bilgi kaybını azaltmak üzere tasarlanmıştır. Programlanabilir Gradyan Bilgisi (PGI) ve tersinir fonksiyonları entegre ederek YOLOv9, temel verilerin korunmasını sağlar ve modelin doğruluğunu ve verimliliğini artırır. Bu, onu yüksek performanslı kompakt modeller gerektiren uygulamalar için oldukça uygun hale getirir. Daha fazla ayrıntı için YOLOv9'un hafif modeller üzerindeki etkisi hakkındaki bölüme göz atın.

YOLOv9 hangi görevleri ve modları destekler?

YOLOv9, nesne algılama ve örnek bölümleme dahil olmak üzere çeşitli görevleri destekler. Çıkarım, doğrulama, eğitim ve dışa aktarma gibi birden fazla operasyonel mod ile 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ın.

Yorumlar