Meituan YOLOv6
Genel Bakış
Meituan YOLOv6, hız ve doğruluk arasında dikkat çekici bir denge sunan, gerçek zamanlı uygulamalar için popüler bir seçim olan son teknoloji bir nesne tespit aracıdır. Bu model, bir Bi-directional Concatenation (BiC) modülünün uygulanması, bir anchor destekli eğitim (AAT) stratejisi ve COCO veri kümesinde son teknoloji doğruluğu için geliştirilmiş bir backbone ve neck tasarımı dahil olmak üzere mimarisi ve eğitim şeması üzerinde çeşitli önemli geliştirmeler sunar.
YOLOv6'ya genel bakış. Yeniden tasarlanan ağ bileşenlerini ve önemli performans iyileştirmelerine yol açan eğitim stratejilerini gösteren model mimarisi diyagramı. (a) YOLOv6'nın boynu (N ve S gösterilmiştir). M/L için RepBlocks'un CSPStackRep ile değiştirildiğine dikkat edin. (b) Bir BiC modülünün yapısı. (c) Bir SimCSPSPPF bloğu.kaynak).
Temel Özellikler
- Çift Yönlü Birleştirme (BiC) Modülü: YOLOv6, yerelleştirme sinyallerini geliştiren ve ihmal edilebilir hız düşüşüyle performans kazanımları sağlayan dedektörün boynunda bir BiC modülü sunar.
- Çapa Destekli Eğitim (AAT) Stratejisi: Bu model, çıkarım verimliliğinden ödün vermeden hem çapa tabanlı hem de çapa içermeyen paradigmaların faydalarından yararlanmak için AAT'yi önermektedir.
- Gelişmiş Backbone ve Neck Tasarımı: YOLOv6'yı derinleştirerek backbone ve neck'e başka bir aşama ekleyerek, bu model yüksek çözünürlüklü girdilerde COCO veri kümesinde son teknoloji performansı elde eder.
- Kendiliğinden Damıtma Stratejisi: Eğitim sırasında yardımcı regresyon dalını geliştirerek ve belirgin bir hız düşüşünü önlemek için çıkarım sırasında kaldırarak, YOLOv6'nın daha küçük modellerinin performansını artırmak için yeni bir kendiliğinden damıtma stratejisi uygulanır.
Performans Metrikleri
YOLOv6, farklı ölçeklerde çeşitli önceden eğitilmiş modeller sunar:
- YOLOv6-N: NVIDIA T4 GPU ile 1187 FPS'de COCO val2017 üzerinde %37,5 AP.
- YOLOv6-S: 484 FPS'de %45,0 AP.
- YOLOv6-M: 226 FPS'de %50,0 AP.
- YOLOv6-L: 116 FPS'de %52,8 AP.
- YOLOv6-L6: Gerçek zamanlı senaryoda son teknoloji.
YOLOv6 ayrıca farklı kesinlikler için nicelenmiş modeller ve mobil platformlar için optimize edilmiş modeller sunar.
Kullanım Örnekleri
Bu örnek, basit YOLOv6 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
YOLOv6 *.yaml
dosyaları YOLO()
Python'da ilgili modeli oluşturmak için sınıf:
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# 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 YOLOv6n 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 YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv6n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov6n.yaml source=path/to/bus.jpg
Desteklenen Görevler ve Modlar
YOLOv6 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 |
---|---|---|---|---|---|---|
YOLOv6-N | yolov6n.yaml |
Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
YOLOv6-S | yolov6s.yaml |
Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
YOLOv6-M | yolov6m.yaml |
Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
YOLOv6-L | yolov6l.yaml |
Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
YOLOv6-X | yolov6x.yaml |
Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
Bu tablo, YOLOv6 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 YOLOv6 modellerinin yeteneklerinden çok çeşitli nesne algılama senaryolarında tam olarak yararlanabilmelerini sağlar.
Alıntılar ve Teşekkürler
Gerçek zamanlı nesne algılama alanındaki önemli katkılarından dolayı yazarlara teşekkür etmek isteriz:
@misc{li2023yolov6,
title={YOLOv6 v3.0: A Full-Scale Reloading},
author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
year={2023},
eprint={2301.05586},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Orijinal YOLOv6 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
Meituan YOLOv6 nedir ve onu benzersiz kılan nedir?
Meituan YOLOv6, hız ve doğruluğu dengeleyen, gerçek zamanlı uygulamalar için ideal, son teknoloji bir nesne tespit aracıdır. Çift Yönlü Birleştirme (BiC) modülü ve Anchor Destekli Eğitim (AAT) stratejisi gibi önemli mimari geliştirmelere sahiptir. Bu yenilikler, minimum hız düşüşüyle önemli performans kazanımları sağlayarak YOLOv6'yı nesne algılama görevleri için rekabetçi bir seçenek haline getirir.
YOLOv6'daki Bi-directional Concatenation (BiC) Modülü, performansı nasıl artırır?
YOLOv6'daki Çift Yönlü Birleştirme (BiC) modülü, dedektörün boynundaki yerelleştirme sinyallerini geliştirerek ihmal edilebilir hız etkisiyle performans iyileştirmeleri sağlar. Bu modül, farklı özellik haritalarını etkili bir şekilde birleştirerek modelin nesneleri doğru bir şekilde algılama yeteneğini artırır. YOLOv6'nın özellikleri hakkında daha fazla ayrıntı için Temel Özellikler bölümüne bakın.
Ultralytics kullanarak bir YOLOv6 modelini nasıl eğitebilirim?
Ultralytics kullanarak basit Python veya CLI komutlarıyla bir YOLOv6 modeli eğitebilirsiniz. Örneğin:
Örnek
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
Daha fazla bilgi için Train sayfasını ziyaret edin.
YOLOv6'nın farklı versiyonları ve performans metrikleri nelerdir?
YOLOv6, her biri farklı performans gereksinimleri için optimize edilmiş birden çok sürüm sunar:
- YOLOv6-N: 1187 FPS'de %37,5 AP
- YOLOv6-S: 484 FPS'de %45,0 AP
- YOLOv6-M: 226 FPS'de %50,0 AP
- YOLOv6-L: 116 FPS'de %52,8 AP
- YOLOv6-L6: Gerçek zamanlı senaryolarda son teknoloji doğruluk
Bu modeller, bir NVIDIA T4 GPU kullanılarak COCO veri kümesi üzerinde değerlendirilir. Performans metrikleri hakkında daha fazla bilgi için Performans Metrikleri bölümüne bakın.
Anchor-Aided Training (AAT) stratejisi, YOLOv6'ya nasıl bir fayda sağlar?
YOLOv6'daki Çapa Destekli Eğitim (AAT), çapa tabanlı ve çapa içermeyen yaklaşımların öğelerini bir araya getirerek modelin çıkarım verimliliğinden ödün vermeden algılama yeteneklerini geliştirir. Bu strateji, sınırlayıcı kutu tahminlerini iyileştirmek için eğitim sırasında çapaları kullanarak YOLOv6'yı çeşitli nesne algılama görevlerinde etkili hale getirir.
Ultralytics'teki YOLOv6 modelleri hangi operasyonel modları destekliyor?
YOLOv6, Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma dahil olmak üzere çeşitli operasyonel modları destekler. Bu esneklik, kullanıcıların modelin yeteneklerini farklı senaryolarda tam olarak kullanmalarını sağlar. Her bir moda ilişkin ayrıntılı bir genel bakış için Desteklenen Görevler ve Modlar bölümüne göz atın.