YOLOv9: Nesne Algılama Teknolojisinde Bir Sıçrama
YOLOv9, gerçek zamanlı nesne algılamada önemli bir ilerlemeyi işaret ederek, Programlanabilir Gradyan Bilgisi (PGI) ve Genelleştirilmiş Verimli Katman Toplama Ağı (GELAN) gibi çığır açan teknikler sunar. 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, Ultralytics YOLOv5 tarafından sağlanan sağlam kod tabanı üzerine inşa edilmiştir ve 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'a Giriş
Optimal gerçek zamanlı nesne tespiti 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 kritik 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ın ele alınmasına derinden bağlıdır. Bilgi Darboğazı İlkesi ve Tersine Çevrilebilir Fonksiyonların yenilikçi kullanımı, YOLOv9'un yüksek verimlilik ve doğruluğu korumasını sağlamak için tasarımının merkezinde yer almaktadır.
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 mimarisinde, ağın eksiksiz bir bilgi akışını korumasını sağlayarak model parametrelerine daha doğru güncellemeler yapılmasını sağlar. YOLOv9, özellikle daha derin katmanlarda bilgi bozulması riskini azaltmak için mimarisi içinde geri dönüşümlü fonksiyonlar içerir ve nesne algılama görevleri için kritik verilerin korunmasını sağlar.
Hafif Modeller Üzerindeki Etkisi
Bilgi kaybını ele almak, genellikle yetersiz parametrelere sahip olan 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 tespiti için gerekli temel bilgilerin korunmasını ve etkin bir şekilde kullanılmasını sağlar.
Programlanabilir Gradyan Bilgisi (PGI)
PGI, derin ağ katmanları arasında temel verilerin korunmasını sağlayarak bilgi darboğazı sorununu çözmek için YOLOv9'da tanıtılan yeni bir kavramdır. Bu, güvenilir gradyanların oluşturulmasına olanak tanır, doğru model güncellemelerini kolaylaştırır ve genel algılama 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 Kıyaslamaları
Ultralytics kullanarak 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 Paketini Kullanarak YOLOv9 Modelini Nasıl Kıyaslayabilirim?
MS COCO Veri Kümesinde Performans
YOLOv9'un COCO veri kümesi üzerindeki performansı, gerçek zamanlı nesne algılamadaki önemli gelişmelerini örnekleyerek çeşitli model boyutlarında yeni ölçütler belirlemektedir. Tablo 1, YOLOv9'un üstün verimliliğini ve doğruluğunu gösteren, son teknoloji gerçek zamanlı nesne dedektörlerinin kapsamlı bir karşılaştırmasını sunmaktadır.
Performans
Model | boyut (piksel) |
mAPval 50-95 |
mAPval 50 |
parametreler (M) |
FLOP'lar (B) |
---|---|---|---|---|---|
YOLOv9t | 640 | 38.3 | 53.1 | 2.0 | 7.7 |
YOLOv9s | 640 | 46.8 | 63.4 | 7.2 | 26.7 |
YOLOv9m | 640 | 51.4 | 68.1 | 20.1 | 76.8 |
YOLOv9c | 640 | 53.0 | 70.2 | 25.5 | 102.8 |
YOLOv9e | 640 | 55.6 | 72.8 | 58.1 | 192.5 |
Model | boyut (piksel) |
mAPbox 50-95 |
mAPmask 50-95 |
parametreler (M) |
FLOP'lar (B) |
---|---|---|---|---|---|
YOLOv9c-seg | 640 | 52.4 | 42.2 | 27.9 | 159.4 |
YOLOv9e-seg | 640 | 55.1 | 44.3 | 60.5 | 248.4 |
YOLOv9'un yinelemeleri, küçücükten başlayarak 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 performans sunma yeteneğinin altını çiziyor 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 sergiler:
- Hafif Modeller: YOLOv9s, parametre verimliliği ve hesaplama yükü açısından YOLO MS-S'yi geride bırakırken, AP'de %0,4∼0,6'lık bir iyileşme sağlar.
- 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 işlem 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 belirler; 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ış sağlar.
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 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 gelişmeler sunan gerçek zamanlı nesne algılamada önemli bir gelişmeyi temsil etmektedir. PGI ve GELAN gibi yenilikçi çözümlerle kritik zorlukların üstesinden gelerek 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 Tahmin, Eğitim, Değerlendirme ve Dışa Aktarma 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 çok çeşitli uygulamalar için çok yönlü hale getirir.
Model | Dosya adları | Görevler | Çıkarım | Doğrulama | Eğitim | Dışa aktar |
---|---|---|---|---|---|---|
YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt |
Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
YOLOv9-seg | yolov9c-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ı 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 modeline kıyasla daha fazla kaynak gerektirecek ve daha uzun sürecektir.
Alıntılar ve Teşekkürler
Gerçek zamanlı nesne algılama alanındaki önemli katkılarından dolayı YOLOv9 yazarlarına teşekkür ederiz:
@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 makalesine arXiv üzerinden ulaşılabilir. Yazarlar çalışmalarını kamuya açık hale getirmişlerdir ve kod tabanına GitHub üzerinden erişilebilir. Alanı geliştirmedeki ve çalışmalarını daha geniş bir topluluğa erişilebilir kılmadaki çabalarını takdir ediyoruz.
SSS
YOLOv9, gerçek zamanlı nesne tespiti için hangi yenilikleri sunuyor?
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 ölçütler belirleyen YOLOv9'un temel yenilikleri hakkında daha fazla bilgi edinin.
YOLOv9'un MS COCO veri kümesindeki performansı diğer modellere kıyasla nasıldır?
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 göre %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 modelini 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 büyük önem taşıyan 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 algılama ve örnek segmentasyonu dahil olmak üzere çeşitli görevleri destekler. Çıkarım, doğrulama, eğitim ve dışa aktarma gibi çoklu operasyonel modlarla 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.