İçeriğe geç

YOLOv9: Nesne Algılama Teknolojisinde Bir Atılım

YOLOv9, Programlanabilir Gradyan Bilgisi (PGI) ve Genelleştirilmiş Verimli Katman Toplama Ağı (GELAN) gibi çığır açan teknikler sunarak gerçek zamanlı nesne algılamada önemli bir ilerleme kaydetmektedir. Bu model, verimlilik, doğruluk ve uyarlanabilirlik açısından dikkat çekici gelişmeler göstererek MS COCO veri kümesinde yeni ölçütler belirlemektedir. Ayrı bir açık kaynak ekibi tarafından geliştirilen YOLOv9 projesi, UltralyticsYOLOv5 tarafından sağlanan sağlam kod tabanı üzerine inşa edilerek, yapay zeka araştırma topluluğunun işbirlikçi ruhunu sergilemektedir.



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

YOLOv9 performans karşılaştırması

YOLOv9'a Giriş

Optimum gerçek zamanlı nesne algılama arayışında, YOLOv9, derin sinir ağlarında var olan bilgi kaybı zorluklarının üstesinden gelmek için yenilikçi yaklaşımıyla öne çıkıyor. PGI ve çok yönlü GELAN mimarisini entegre ederek, YOLOv9 yalnızca modelin öğrenme kapasitesini artırmakla kalmıyor, aynı zamanda algılama süreci boyunca önemli bilgilerin korunmasını sağlayarak olağanüstü doğruluk ve performans elde ediyor.

YOLOv9'un Temel Yenilikleri

YOLOv9'un gelişmeleri, derin sinir ağlarındaki bilgi kaybının yarattığı zorlukları ele almaya derinden bağlıdır. Bilgi Darboğazı İlkesi ve Geri Dönüşümlü Fonksiyonların yenilikçi kullanımı, tasarımının merkezinde yer alır ve YOLOv9'un yüksek verimlilik ve doğruluğu korumasını sağlar.

Bilgi Darboğazı Prensibi

Bilgi Darboğazı İlkesi, derin öğrenmede temel bir zorluğu ortaya koymaktadır: Veriler bir ağın ardışık katmanlarından geçerken, bilgi kaybı potansiyeli artar. Bu olgu matematiksel olarak şu şekilde ifade edilir:

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

nerede I karşılıklı bilgiyi belirtir ve f ve g parametrelerle dönüşüm fonksiyonlarını temsil eder theta ve phi, sırasıyla. YOLOv9, ağın derinliği boyunca temel verilerin korunmasına yardımcı olan, daha güvenilir gradyan üretimi ve sonuç olarak daha iyi model yakınsaması ve performansı sağlayan Programlanabilir Gradyan Bilgisi'ni (PGI) uygulayarak bu zorluğun üstesinden gelir.

Geri Dönüştürülebilir Fonksiyonlar

Tersine Çevrilebilir Fonksiyonlar kavramı, YOLOv9'un tasarımının bir diğer temel taşıdır. Bir fonksiyon, aşağıdaki gibi ifade edildiği gibi, herhangi bir bilgi kaybı olmadan tersine çevrilebiliyorsa tersine çevrilebilir olarak kabul edilir:

X = v_zeta(r_psi(X))

ile psi ve zeta sırasıyla ters çevrilebilir ve ters fonksiyonu için parametreler olarak. Bu özellik, aşağıdakiler için çok önemlidir: derin öğrenme mimari, ağın eksiksiz bir bilgi akışını korumasını sağlayarak modelin parametrelerine daha doğru güncellemeler yapılmasını sağlar. YOLOv9, özellikle daha derin katmanlarda bilgi bozulması riskini azaltmak için mimarisine geri dönüşümlü fonksiyonlar dahil ederek nesne detect görevleri için kritik verilerin korunmasını sağlar.

Hafif Modeller Üzerindeki Etkisi

Bilgi kaybını ele almak, genellikle yetersiz parametrelendirilen ve ileri besleme sürecinde önemli bilgileri kaybetmeye eğilimli olan hafif modeller için özellikle önemlidir. YOLOv9'un mimarisi, PGI ve tersine çevrilebilir fonksiyonların kullanımı yoluyla, akıcı bir modelle bile doğru nesne detect etme için gereken temel bilgilerin korunmasını ve etkin bir şekilde kullanılmasını sağlar.

Programlanabilir Gradyan Bilgisi (PGI)

PGI, YOLOv9'da bilgi darboğazı sorununu çözmek için tanıtılan yeni bir kavramdır ve derin ağ katmanları arasında temel verilerin korunmasını sağlar. Bu, güvenilir gradyanların oluşturulmasına olanak tanıyarak doğru model güncellemelerini kolaylaştırır ve genel detect performansını artırır.

Genelleştirilmiş Verimli Katman Toplama Ağı (GELAN)

GELAN, YOLOv9'un üstün parametre kullanımı ve hesaplama verimliliği elde etmesini sağlayan stratejik bir mimari gelişmeyi temsil eder. Tasarımı, çeşitli hesaplama bloklarının esnek bir şekilde entegre edilmesini sağlayarak YOLOv9'u hız veya doğruluktan ödün vermeden çok çeşitli uygulamalara uyarlanabilir hale getirir.

YOLOv9 mimari karşılaştırması

YOLOv9 Kıyaslamaları

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

  • 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 modelin farklı dışa aktarma biçimlerinde test edilmesi.
  • Çerçeve Desteği: Bu değerlendirmeleri kolaylaştırmak ve tutarlı ve güvenilir sonuçlar sağlamak için Ultralytics YOLOv8 içinde kapsamlı bir çerçeve sağlamak.

Kıyaslama yaparak, modelinizin 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ğlayabilirsiniz.



İzle: Ultralytics Python Paketi Kullanarak YOLOv9 Modelini Nasıl Kıyaslayabilirsiniz

MS COCO Veri Kümesinde Performans

YOLOv9'un COCO veri setindeki performansı, gerçek zamanlı nesne tespitindeki önemli gelişmelerini örnekleyerek, çeşitli model boyutlarında yeni ölçütler belirlemektedir. Tablo 1, en son teknolojiye sahip 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
parametreler
(M)
FLOP'lar
(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
Modelboyut
(piksel)
mAPbox
50-95
mAPmask
50-95
parametreler
(M)
FLOP'lar
(B)
YOLOv9c-seg64052.442.227.9159.4
YOLOv9e-seg64055.144.360.5248.4

YOLOv9'un küçükten başlayarak değişen yinelemeleri, t varyantından kapsamlı e modeli, yalnızca doğrulukta (mAP metrikleri) değil, aynı zamanda azaltılmış parametre sayısı ve hesaplama ihtiyaçları (FLOP'lar) ile verimlilikte de iyileştirmeler gösterir. Bu tablo, YOLOv9'un yüksek kesinlik önceki sürümlere ve rakip modellere kıyasla hesaplama yükünü korurken veya azaltırken.

Karşılaştırmalı olarak, YOLOv9 dikkate değer kazanımlar sergiliyor:

  • Hafif Modeller: YOLOv9s, AP'de %0,4∼0,6'lık bir iyileşme elde ederken, parametre verimliliği ve hesaplama yükü açısından YOLO MS-S'i geride bırakıyor.
  • Orta ila Büyük Modeller: YOLOv9m ve YOLOv9e, model karmaşıklığı ve algılama performansı arasındaki dengede kayda değer gelişmeler göstererek, iyileştirilmiş doğruluk zemininde parametrelerde ve hesaplamalarda önemli azalmalar sunar.

Özellikle YOLOv9c modeli, mimarinin optimizasyonlarının etkinliğini vurgular. YOLOv7 AF'den %42 daha az parametre ve %21 daha az hesaplama talebiyle çalışır, ancak yine de karşılaştırılabilir doğruluk elde ederek YOLOv9'un önemli verimlilik iyileştirmelerini gösterir. Ayrıca, YOLOv9e modeli, büyük modeller için yeni bir standart belirleyerek, YOLOv8x'ten %15 daha az parametreye ve %25 daha az hesaplama ihtiyacına sahip olmasının yanı sıra, AP'de %1,7'lik artımlı bir iyileşme sağlar.

Bu sonuçlar, YOLOv9'un model tasarımındaki stratejik gelişmelerini sergileyerek, gerçek zamanlı nesne algılama görevleri için gerekli olan hassasiyetten ödün vermeden gelişmiş verimliliğini vurgulamaktadır. Model, yalnızca performans metriklerinin sınırlarını zorlamakla kalmıyor, aynı zamanda hesaplama verimliliğinin önemini de vurgulayarak bilgisayar görüşü alanında önemli bir gelişme olmasını sağlıyor.

Sonuç

YOLOv9, verimlilik, doğruluk ve uyarlanabilirlik açısından önemli iyileştirmeler sunarak gerçek zamanlı nesne algılamada önemli bir gelişmeyi temsil etmektedir. PGI ve GELAN gibi yenilikçi çözümler aracılığıyla kritik zorlukları ele alarak, YOLOv9 alandaki gelecekteki araştırma ve uygulamalar için yeni bir emsal oluşturmaktadır. Yapay zeka topluluğu gelişmeye devam ederken, YOLOv9 teknolojik ilerlemeyi yönlendirmede işbirliğinin ve yeniliğin gücünün bir kanıtı olarak durmaktadır.

Kullanım Örnekleri

Bu örnek, basit YOLOv9 eğitimi ve çıkarım örnekleri sunar. Bunlar ve diğer modlar hakkında tam dokümantasyon için Predict, Train, Val ve Export doküman sayfalarına bakın.

Örnek

PyTorch önceden eğitilmiş *.pt modellerin yanı sıra yapılandırma *.yaml dosyaları YOLO() python'da bir model örneği oluşturmak için sınıfa geçirilebilir:

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")

Modelleri doğrudan çalıştırmak için CLI komutları mevcuttur:

# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=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, çeşitli hesaplama ihtiyaçlarına ve doğruluk gereksinimlerine hitap ederek, onları çok çeşitli uygulamalar için çok yönlü hale getirir.

ModelDosya adlarıGörevlerÇıkarımDoğrulamaEğitimDış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 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 ç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 olarak yararlanabilmelerini sağlar.

Not

YOLOv9 modellerini eğitmek, eşdeğer boyuttaki bir YOLOv8 modeline göre daha fazla kaynak gerektirecek ve daha uzun sürecektir.

Alıntılar ve Teşekkürler

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

@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'de 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ş bir topluluk için erişilebilir hale getirme çabalarını takdir ediyoruz.

SSS

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

YOLOv9, Programlanabilir Gradyan Bilgisi (PGI) ve Genelleştirilmiş Verimli Katman Toplama 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ı arasında temel verileri korurken, GELAN parametre kullanımını ve hesaplama verimliliğini optimize eder. MS COCO veri kümesinde yeni kıstaslar belirleyen YOLOv9'un temel yenilikleri hakkında daha fazla bilgi edinin.

YOLOv9, MS COCO veri kümesinde diğer modellere kıyasla nasıl bir performans sergiliyor?

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

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

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

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, özellikle önemli bilgileri kaybetmeye eğilimli hafif modeller için önemli olan bilgi kaybını azaltmak üzere tasarlanmıştır. Programlanabilir Gradyan Bilgisi (PGI) ve tersine çevrilebilir fonksiyonları entegre ederek, YOLOv9 temel veri tutulmasını sağlayarak 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 etkisine ilişkin bölümü inceleyin.

YOLOv9 hangi görevleri ve modları desteklemektedir?

YOLOv9, nesne tespiti ve örnek segmentasyon dahil olmak üzere çeşitli görevleri destekler. Çıkarım, doğrulama, eğitim ve dışa aktarma gibi çoklu çalışma modlarıyla uyumludur. Bu çok yönlülük, YOLOv9'u çeşitli gerçek zamanlı bilgisayar görüşü uygulamalarına uyarlanabilir hale getirir. Daha fazla bilgi için desteklenen görevler ve modlar bölümüne bakın.



📅 1 yıl önce oluşturuldu ✏️ 1 ay önce güncellendi
glenn-jocherRizwanMunawarBurhan-QY-T-Gambitious-octopusLaughing-qMatthewNoyceUltralyticsAssistant

Yorumlar