YOLOv7: Eğitilebilir Ücretsiz Çantalar
YOLOv7, 5 FPS ila 160 FPS aralığında hem hız hem de doğruluk açısından bilinen tüm nesne dedektörlerini geride bırakan son teknoloji ürünü bir gerçek zamanlı nesne dedektörüdür. GPU V100 adresinde 30 FPS veya daha yüksek hızda bilinen tüm gerçek zamanlı nesne dedektörleri arasında en yüksek doğruluğa (%56,8 AP) sahiptir. Ayrıca, YOLOv7, YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5 ve diğerleri gibi diğer nesne dedektörlerinden hız ve doğruluk açısından daha iyi performans gösterir. Model, başka veri kümeleri veya önceden eğitilmiş ağırlıklar kullanılmadan sıfırdan MS COCO veri kümesi üzerinde eğitilmiştir. YOLOv7 için kaynak kodu GitHub'da mevcuttur.
SOTA nesne dedektörlerinin karşılaştırılması
YOLO karşılaştırma tablosundaki sonuçlardan, önerilen yöntemin kapsamlı olarak en iyi hız-doğruluk dengesine sahip olduğunu biliyoruz. YOLOv7-tiny-SiLU'yu YOLOv5-N (r6.1) ile karşılaştırırsak, yöntemimizin 127 fps daha hızlı ve AP'de %10,7 daha doğru olduğunu görürüz. Buna ek olarak, YOLOv7 161 fps kare hızında %51,4 AP'ye sahipken, aynı AP'ye sahip PPYOLOE-L sadece 78 fps kare hızına sahiptir. Parametre kullanımı açısından YOLOv7, PPYOLOE-L'den %41 daha azdır. 114 fps çıkarım hızına sahip YOLOv7-X'i 99 fps çıkarım hızına sahip YOLOv5-L (r6.1) ile karşılaştırırsak, YOLOv7-X AP'yi %3,9 oranında iyileştirebilir. YOLOv7-X, benzer ölçekteki YOLOv5-X (r6.1) ile karşılaştırılırsa, YOLOv7-X'in çıkarım hızı 31 fps daha hızlıdır. Ayrıca, parametre ve hesaplama miktarı açısından YOLOv7-X, YOLOv5-X (r6.1) ile karşılaştırıldığında parametrelerin %22'sini ve hesaplamanın %8'ini azaltır, ancak AP'yi %2,2 oranında iyileştirir(Kaynak).
Model | Params (M) |
FLOP'lar (G) |
Boyut (piksel) |
FPS | APtest/ val 50-95 |
APtest 50 |
APtest 75 |
APtest S |
APtest M |
APtest L |
---|---|---|---|---|---|---|---|---|---|---|
YOLOX-S | 9.0M | 26.8G | 640 | 102 | 40.5% / 40.5% | - | - | - | - | - |
YOLOX-M | 25.3M | 73.8G | 640 | 81 | 47.2% / 46.9% | - | - | - | - | - |
YOLOX-L | 54.2M | 155.6G | 640 | 69 | 50.1% / 49.7% | - | - | - | - | - |
YOLOX-X | 99.1M | 281.9G | 640 | 58 | 51.5% / 51.1% | - | - | - | - | - |
PPYOLOE-S | 7.9M | 17.4G | 640 | 208 | 43.1% / 42.7% | 60.5% | 46.6% | 23.2% | 46.4% | 56.9% |
PPYOLOE-M | 23.4M | 49.9G | 640 | 123 | 48.9% / 48.6% | 66.5% | 53.0% | 28.6% | 52.9% | 63.8% |
PPYOLOE-L | 52.2M | 110.1G | 640 | 78 | 51.4% / 50.9% | 68.9% | 55.6% | 31.4% | 55.3% | 66.1% |
PPYOLOE-X | 98.4M | 206.6G | 640 | 45 | 52.2% / 51.9% | 69.9% | 56.5% | 33.3% | 56.3% | 66.4% |
YOLOv5-N (r6.1) | 1.9M | 4.5G | 640 | 159 | - / 28.0% | - | - | - | - | - |
YOLOv5-S (r6.1) | 7.2M | 16.5G | 640 | 156 | - / 37.4% | - | - | - | - | - |
YOLOv5-M (r6.1) | 21.2M | 49.0G | 640 | 122 | - / 45.4% | - | - | - | - | - |
YOLOv5-L (r6.1) | 46.5M | 109.1G | 640 | 99 | - / 49.0% | - | - | - | - | - |
YOLOv5-X (r6.1) | 86.7M | 205.7G | 640 | 83 | - / 50.7% | - | - | - | - | - |
YOLOR-CSP | 52.9M | 120.4G | 640 | 106 | 51.1% / 50.8% | 69.6% | 55.7% | 31.7% | 55.3% | 64.7% |
YOLOR-CSP-X | 96.9M | 226.8G | 640 | 87 | 53.0% / 52.7% | 71.4% | 57.9% | 33.7% | 57.1% | 66.8% |
YOLOv7-tiny-SiLU | 6.2M | 13.8G | 640 | 286 | 38.7% / 38.7% | 56.7% | 41.7% | 18.8% | 42.4% | 51.9% |
YOLOv7 | 36.9M | 104.7G | 640 | 161 | 51.4% / 51.2% | 69.7% | 55.9% | 31.8% | 55.5% | 65.0% |
YOLOv7-X | 71.3M | 189.9G | 640 | 114 | 53.1% / 52.9% | 71.2% | 57.8% | 33.8% | 57.1% | 67.4% |
YOLOv5-N6 (r6.1) | 3.2M | 18.4G | 1280 | 123 | - / 36.0% | - | - | - | - | - |
YOLOv5-S6 (r6.1) | 12.6M | 67.2G | 1280 | 122 | - / 44.8% | - | - | - | - | - |
YOLOv5-M6 (r6.1) | 35.7M | 200.0G | 1280 | 90 | - / 51.3% | - | - | - | - | - |
YOLOv5-L6 (r6.1) | 76.8M | 445.6G | 1280 | 63 | - / 53.7% | - | - | - | - | - |
YOLOv5-X6 (r6.1) | 140.7M | 839.2G | 1280 | 38 | - / 55.0% | - | - | - | - | - |
YOLOR-P6 | 37.2M | 325.6G | 1280 | 76 | 53.9% / 53.5% | 71.4% | 58.9% | 36.1% | 57.7% | 65.6% |
YOLOR-W6 | 79.8G | 453.2G | 1280 | 66 | 55.2% / 54.8% | 72.7% | 60.5% | 37.7% | 59.1% | 67.1% |
YOLOR-E6 | 115.8M | 683.2G | 1280 | 45 | 55.8% / 55.7% | 73.4% | 61.1% | 38.4% | 59.7% | 67.7% |
YOLOR-D6 | 151.7M | 935.6G | 1280 | 34 | 56.5% / 56.1% | 74.1% | 61.9% | 38.9% | 60.4% | 68.7% |
YOLOv7-W6 | 70.4M | 360.0G | 1280 | 84 | 54.9% / 54.6% | 72.6% | 60.1% | 37.3% | 58.7% | 67.1% |
YOLOv7-E6 | 97.2M | 515.2G | 1280 | 56 | 56.0% / 55.9% | 73.5% | 61.2% | 38.0% | 59.9% | 68.4% |
YOLOv7-D6 | 154.7M | 806.8G | 1280 | 44 | 56.6% / 56.3% | 74.0% | 61.8% | 38.8% | 60.1% | 69.5% |
YOLOv7-E6E | 151.7M | 843.2G | 1280 | 36 | 56.8% / 56.8% | 74.4% | 62.1% | 39.3% | 60.5% | 69.0% |
Genel Bakış
Gerçek zamanlı nesne algılama, çoklu nesne takibi, otonom sürüş, robotik ve tıbbi görüntü analizi dahil olmak üzere birçok bilgisayarla görme sisteminde önemli bir bileşendir. Son yıllarda, gerçek zamanlı nesne algılama gelişimi, verimli mimariler tasarlamaya ve çeşitli CPU'ların, GPU'ların ve sinir işleme birimlerinin (NPU'lar) çıkarım hızını artırmaya odaklanmıştır. YOLOv7, uçtan buluta kadar hem mobil GPU hem de GPU cihazlarını desteklemektedir.
Mimari optimizasyonuna odaklanan geleneksel gerçek zamanlı nesne dedektörlerinin aksine, YOLOv7 eğitim sürecinin optimizasyonuna odaklanmaktadır. Bu, "eğitilebilir ücretsiz torba" olarak bilinen bir kavram olan çıkarım maliyetini artırmadan nesne algılama doğruluğunu artırmak için tasarlanmış modülleri ve optimizasyon yöntemlerini içerir.
Temel Özellikler
YOLOv7 birkaç temel özellik sunuyor:
-
Model Yeniden Parametrelendirme: YOLOv7, gradyan yayılım yolu kavramı ile farklı ağlardaki katmanlara uygulanabilen bir strateji olan planlı bir yeniden parametreli model önermektedir.
-
Dinamik Etiket Ataması: Birden fazla çıktı katmanına sahip modelin eğitimi yeni bir sorun ortaya çıkarmaktadır: "Farklı dalların çıktıları için dinamik hedefler nasıl atanır?" Bu sorunu çözmek için YOLOv7, kabadan inceye kılavuzlu etiket ataması adı verilen yeni bir etiket atama yöntemi sunmaktadır.
-
Genişletilmiş ve Bileşik Ölçeklendirme: YOLOv7, gerçek zamanlı nesne dedektörü için parametreleri ve hesaplamayı etkin bir şekilde kullanabilen "genişletme" ve "bileşik ölçeklendirme" yöntemleri önermektedir.
-
Verimlilik: YOLOv7 tarafından önerilen yöntem, son teknoloji ürünü gerçek zamanlı nesne dedektörünün yaklaşık %40 parametresini ve %50 hesaplamasını etkili bir şekilde azaltabilir ve daha hızlı çıkarım hızına ve daha yüksek tespit doğruluğuna sahiptir.
Kullanım Örnekleri
Yazının yazıldığı tarih itibariyle Ultralytics şu anda YOLOv7 modellerini desteklememektedir. Bu nedenle, YOLOv7'yi kullanmak isteyen tüm kullanıcıların kurulum ve kullanım talimatları için doğrudan YOLOv7 GitHub deposuna başvurmaları gerekecektir.
İşte YOLOv7'yi kullanmak için atabileceğiniz tipik adımlara kısa bir genel bakış:
-
YOLOv7 GitHub deposunu ziyaret edin: https://github.com/WongKinYiu/yolov7.
-
Kurulum için README dosyasında verilen talimatları izleyin. Bu genellikle deponun klonlanmasını, gerekli bağımlılıkların kurulmasını ve gerekli ortam değişkenlerinin ayarlanmasını içerir.
-
Kurulum tamamlandıktan sonra, depoda sağlanan kullanım talimatlarına göre modeli eğitebilir ve kullanabilirsiniz. Bu genellikle veri setinizi hazırlamayı, model parametrelerini yapılandırmayı, modeli eğitmeyi ve ardından nesne algılama gerçekleştirmek için eğitilmiş modeli kullanmayı içerir.
Lütfen belirli adımların özel kullanım durumunuza ve YOLOv7 deposunun mevcut durumuna bağlı olarak değişebileceğini unutmayın. Bu nedenle, doğrudan YOLOv7 GitHub deposunda sağlanan talimatlara başvurmanız şiddetle tavsiye edilir.
Bunun neden olabileceği her türlü rahatsızlıktan dolayı üzgünüz ve YOLOv7 desteği uygulandığında bu belgeyi Ultralytics için kullanım örnekleriyle güncellemeye çalışacağız.
Atıflar ve Teşekkür
YOLOv7 yazarlarına gerçek zamanlı nesne algılama alanındaki önemli katkılarından dolayı teşekkür ederiz:
Orijinal YOLOv7 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
YOLOv7 nedir ve neden gerçek zamanlı nesne algılamada bir çığır açtığı düşünülüyor?
YOLOv7, benzersiz hız ve doğruluğa ulaşan son teknoloji ürünü bir gerçek zamanlı nesne algılama modelidir. Hem parametre kullanımı hem de çıkarım hızı açısından YOLOX, YOLOv5 ve PPYOLOE gibi diğer modelleri geride bırakmaktadır. YOLOv7'nin ayırt edici özellikleri arasında modelin yeniden parametrelendirilmesi ve çıkarım maliyetlerini artırmadan performansını optimize eden dinamik etiket ataması yer almaktadır. Mimarisi ve diğer son teknoloji nesne dedektörleriyle karşılaştırma metrikleri hakkında daha fazla teknik ayrıntı için YOLOv7 makalesine bakın.
YOLOv7, YOLOv4 ve YOLOv5 gibi önceki YOLO modellerini nasıl geliştiriyor?
YOLOv7, eğitim sürecini geliştiren ve çıkarım doğruluğunu artıran model yeniden parametrelendirme ve dinamik etiket atama gibi çeşitli yenilikler sunar. YOLOv5 ile karşılaştırıldığında, YOLOv7 hız ve doğruluğu önemli ölçüde artırır. Örneğin, YOLOv7-X, YOLOv5-X ile karşılaştırıldığında doğruluğu %2,2 oranında artırır ve parametreleri %22 oranında azaltır. Ayrıntılı karşılaştırmalar YOLOv7'nin SOTA nesne dedektörleriyle karşılaştırıldığı performans tablosunda bulunabilir.
YOLOv7'yi Ultralytics araçları ve platformları ile kullanabilir miyim?
Şu an itibariyle Ultralytics , araçlarında ve platformlarında YOLOv7'yi doğrudan desteklememektedir. YOLOv7'yi kullanmak isteyen kullanıcıların YOLOv7 GitHub deposunda sağlanan kurulum ve kullanım talimatlarını takip etmeleri gerekmektedir. Diğer son teknoloji modeller için, Ultralytics HUB gibi Ultralytics araçlarını kullanarak keşfedebilir ve eğitebilirsiniz.
Özel bir nesne algılama projesi için YOLOv7'yi nasıl kurabilir ve çalıştırabilirim?
YOLOv7'yi yüklemek ve çalıştırmak için aşağıdaki adımları izleyin:
- YOLOv7 deposunu klonlayın:
- Klonlanmış dizine gidin ve bağımlılıkları yükleyin:
- Veri setinizi hazırlayın ve model parametrelerini depoda sağlanan kullanım talimatlarına göre yapılandırın. Daha fazla rehberlik için, en son bilgiler ve güncellemeler için YOLOv7 GitHub deposunu ziyaret edin.
YOLOv7'de sunulan temel özellikler ve optimizasyonlar nelerdir?
YOLOv7, gerçek zamanlı nesne algılamada devrim yaratan birkaç temel özellik sunar:
- Model Yeniden Parametrelendirme: Gradyan yayılım yollarını optimize ederek modelin performansını artırır.
- Dinamik Etiket Atama: Farklı branşlardaki çıktılar için dinamik hedefler atamak için kabadan inceye kılavuzlu bir yöntem kullanır ve doğruluğu artırır.
- Genişletilmiş ve Bileşik Ölçeklendirme: Çeşitli gerçek zamanlı uygulamalar için modeli ölçeklendirmek üzere parametreleri ve hesaplamayı verimli bir şekilde kullanır.
- Verimlilik: Diğer son teknoloji modellere kıyasla parametre sayısını %40 ve hesaplamayı %50 azaltırken daha yüksek çıkarım hızlarına ulaşır.
Bu özellikler hakkında daha fazla ayrıntı için YOLOv7'ye Genel Bakış bölümüne bakın.