Baidu'nun RT-DETR'ı: Vision Transformer tabanlı gerçek zamanlı nesne dedektörü#
Genel Bakış#
Baidu tarafından geliştirilen Gerçek Zamanlı Tespit Transformer'ı (RT-DETR), yüksek doğruluğu korurken gerçek zamanlı performans sunan, son teknoloji ürünü uçtan uca bir nesne dedektörüdür. DETR (NMS içermeyen çerçeve) fikrini temel alırken gerçek zamanlı hız elde etmek için konvolüsyon tabanlı bir omurga ve verimli bir hibrit kodlayıcı kullanır. RT-DETR, ölçek içi etkileşimi ve ölçekler arası birleştirmeyi birbirinden ayırarak çok ölçekli özellikleri verimli bir şekilde işler. Model, yeniden eğitime gerek kalmadan farklı kod çözücü katmanları kullanarak çıkarım hızının esnek biçimde ayarlanmasını destekler. RT-DETR, TensorRT ile CUDA gibi hızlandırılmış arka uçlarda üstün performans göstererek diğer birçok gerçek zamanlı nesne dedektörünü geride bırakır.
Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀
Baidu'nun RT-DETR modeline genel bakış. RT-DETR model mimarisi diyagramı, omurganın son üç aşamasını {S3, S4, S5} kodlayıcıya girdi olarak gösterir. Verimli hibrit kodlayıcı, ölçek içi özellik etkileşimi (AIFI) ve ölçekler arası özellik birleştirme modülü (CCFM) aracılığıyla çok ölçekli özellikleri bir görüntü özellikleri dizisine dönüştürür. IoU farkındalıklı sorgu seçimi, kod çözücü için başlangıç nesne sorguları olarak kullanılacak sabit sayıda görüntü özelliğini seçer. Son olarak, yardımcı tahmin başlıklarına sahip kod çözücü, kutular ve güven skorları oluşturmak için nesne sorgularını yinelemeli olarak optimize eder (kaynak).
Temel Özellikler#
- Verimli Hibrit Kodlayıcı: Baidu'nun RT-DETR'ı, ölçek içi etkileşimi ve ölçekler arası birleştirmeyi birbirinden ayırarak çok ölçekli özellikleri işleyen verimli bir hibrit kodlayıcı kullanır. Bu benzersiz Vision Transformers tabanlı tasarım, hesaplama maliyetlerini azaltır ve gerçek zamanlı nesne algılamaya olanak tanır.
- IoU Farkındalıklı Sorgu Seçimi: Baidu'nun RT-DETR'ı, IoU farkındalıklı sorgu seçimini kullanarak nesne sorgusu başlatma işlemini iyileştirir. Bu sayede model, sahnedeki en ilgili nesnelere odaklanarak algılama doğruluğunu artırır.
- Uyarlanabilir Çıkarım Hızı: Baidu'nun RT-DETR'ı, yeniden eğitime gerek kalmadan farklı kod çözücü katmanlarını kullanarak çıkarım hızının esnek biçimde ayarlanmasını destekler. Bu uyarlanabilirlik, çeşitli gerçek zamanlı nesne algılama senaryolarında pratik uygulamayı kolaylaştırır.
- NMS İçermeyen Çerçeve: DETR'ı temel alan RT-DETR, maksimum olmayan bastırma son işlemine duyulan ihtiyacı ortadan kaldırarak algılama işlem hattını basitleştirir ve verimliliği potansiyel olarak artırır.
- Çapa İçermeyen Algılama: Bir çapa içermeyen dedektör olarak RT-DETR, algılama sürecini basitleştirir ve farklı veri kümeleri genelinde genellemeyi iyileştirebilir.
Önceden Eğitilmiş Modeller#
Ultralytics Python API, farklı ölçeklere sahip önceden eğitilmiş PaddlePaddle RT-DETR modelleri sunar:
- RT-DETR-L: COCO val2017 üzerinde %53,0 AP, T4 GPU üzerinde 114 FPS
- RT-DETR-X: COCO val2017 üzerinde %54,8 AP, T4 GPU üzerinde 74 FPS
Ayrıca Baidu, Temmuz 2024'te özgün mimariyi geliştirilmiş performans ölçümleriyle daha da iyileştiren RTDETRv2'yi yayımladı.
Kullanım Örnekleri#
Bu örnek, basit RT-DETR eğitimi ve çıkarımı örnekleri sunar. Bunlar ve diğer modlar hakkında eksiksiz belgeler için Predict, Train, Val ve Export belge sayfalarına bak. Modeller ayrıca Ultralytics Platform aracılığıyla bulut GPU'larında eğitilebilir.
from ultralytics import RTDETR
# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.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 RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")RT-DETR'ı CUDA üzerinde PyTorch 2.0 veya sonraki bir sürümle eğitirken deterministic=False değerini ayarla. Deforme edilebilir attention mekanizması, belirlenebilir CUDA geri yayılımı bulunmayan F.grid_sample kullanır; bu nedenle deterministic=True çalışmanın yeniden üretilebilir olmasını sağlayamaz ve eğitim verimini düşürebilir. seed yine de ağırlık başlatmayı, veri sırasını ve artırma örneklemesini kontrol eder.
RT-DETR önceden eğitilmiş ağırlıkları, yeniden eğitim olmadan gecikmeyi azaltmak için çıkarım zamanında kullanılabilecek iki ayarı destekler:
eval_idx: Kod çözmeyi erken durdur. Varsayılan 6 katmanlı kod çözücü için sıfır tabanlı bir dizin (0–5) kullan.eval_idx=5tüm katmanları,eval_idx=3ise 4 katmanı kullanır. TensorRT v10.11 ile T4 GPU üzerinde RT-DETR-L, 4 katmanla 8,0 ms / 52,7 mAP değerlerinden 7,4 ms / 52,5 mAP değerlerine iyileşir.num_queries: Nesne sorgularını azalt (varsayılan: 300). Sayıyı 100'e düşürmek, aynı kurulumda COCO üzerinde 7,4 ms / 51,7 mAP değerlerine ulaşabilir. Görüntü başına daha az nesne içeren veri kümelerinde mAP düşüşü genellikle daha küçük olur; ancak değeri görüntü başına beklenen maksimum nesne sayısının üzerinde tut.
Her iki ayar da mAP değerini düşürebilir; dağıtımdan önce ödünleşimi kendi veri kümen üzerinde doğrula.
from ultralytics import RTDETR
rtdetr = RTDETR("rtdetr-l.pt")
head = rtdetr.model.model[-1]
# Choose one or both settings after validating the speed/accuracy trade-off.
head.decoder.eval_idx = 3 # Use 4 of 6 decoder layers.
head.num_queries = 100 # Use fewer object queries.
results = rtdetr("path/to/image.jpg")
# Export uses the same decoder and query settings, including TensorRT exports.
rtdetr.export(format="engine", device=0, quantize=16)Desteklenen Görevler ve Modlar#
Bu tablo model türlerini, belirli ön eğitilmiş ağırlıkları, her modelin desteklediği görevleri ve ✅ emojileriyle belirtilen desteklenen çeşitli modları (Train, Val, Predict, Export) sunar.
| Model Türü | Önceden Eğitilmiş Ağırlıklar | Desteklenen Görevler | Eğitim | Doğrulama | Çıkarım | Dışa aktarma |
|---|---|---|---|---|---|---|
| RT-DETR Büyük | rtdetr-l.pt | Nesne Tespiti | ✅ | ✅ | ✅ | ✅ |
| RT-DETR Ekstra Büyük | rtdetr-x.pt | Nesne Tespiti | ✅ | ✅ | ✅ | ✅ |
rtdetr-resnet50.yaml ve rtdetr-resnet101.yaml yalnızca YAML mimarileri olarak sunulur. Ultralytics, yalnızca rtdetr-l ve rtdetr-x için önceden eğitilmiş ağırlıklar yayımlar. ResNet varyantlarını YAML'dan (örneğin, RTDETR("rtdetr-resnet50.yaml")) örnekle ve gerektiğinde bunları eğit veya ince ayar yap.
İdeal Kullanım Alanları#
RT-DETR, özellikle hem yüksek doğruluk hem de gerçek zamanlı performans gerektiren uygulamalar için uygundur:
- Otonom Sürüş: Hız ve doğruluğun kritik olduğu sürücüsüz sistemlerde güvenilir çevre algılama için. Sürücüsüz otomobillerde yapay zekâ hakkında daha fazla bilgi edin.
- İleri Düzey Robotik: Dinamik ortamlarda doğru nesne tanıma ve etkileşim gerektiren karmaşık görevleri robotların gerçekleştirmesini sağlar. Yapay zekânın robotikteki rolünü keşfet.
- Tıbbi Görüntüleme: Nesne algılama hassasiyetinin tanı açısından kritik olabileceği sağlık uygulamaları için. Sağlık hizmetlerinde yapay zekâyı keşfet.
- Gözetim Sistemleri: Yüksek algılama doğruluğuyla gerçek zamanlı izleme gerektiren güvenlik uygulamaları için. Güvenlik alarm sistemleri hakkında bilgi edin.
- Uydu Görüntüsü Analizi: Küresel bağlamın anlaşılmasının önemli olduğu yüksek çözünürlüklü görüntülerin ayrıntılı analizi için. Uydu görüntülerinde bilgisayarlı görü hakkında bilgi edin.
Atıflar ve Teşekkürler#
Baidu'nun RT-DETR'ını araştırma veya geliştirme çalışmalarında kullanıyorsan lütfen özgün makaleye atıfta bulun:
@misc{lv2023detrs,
title={DETRs Beat YOLOs on Real-time Object Detection},
author={Wenyu Lv and Shangliang Xu and Yian Zhao and Guanzhong Wang and Jinman Wei and Cheng Cui and Yuning Du and Qingqing Dang and Yi Liu},
year={2023},
eprint={2304.08069},
archivePrefix={arXiv},
primaryClass={cs.CV}
}RTDETRv2 için 2024 tarihli makaleye atıfta bulunabilirsin:
@misc{lv2024rtdetrv2,
title={RTDETRv2: All-in-One Detection Transformer Beats YOLO and DINO},
author={Wenyu Lv and Yian Zhao and Qinyao Chang and Kui Huang and Guanzhong Wang and Yi Liu},
year={2024},
eprint={2407.17140},
archivePrefix={arXiv},
primaryClass={cs.CV}
}Bu değerli kaynağı bilgisayarlı görü topluluğu için oluşturan ve sürdüren Baidu ile PaddlePaddle ekibine teşekkür ederiz. Vision Transformers tabanlı gerçek zamanlı nesne dedektörü RT-DETR'ın geliştirilmesiyle alana yaptıkları katkı büyük takdir görmektedir.
SSS#
Baidu'nun RT-DETR'ı (Gerçek Zamanlı Tespit Transformer'ı), Vision Transformer mimarisi üzerine kurulmuş gelişmiş bir gerçek zamanlı nesne dedektörüdür. Verimli hibrit kodlayıcısı aracılığıyla ölçek içi etkileşimi ve ölçekler arası birleştirmeyi birbirinden ayırarak çok ölçekli özellikleri verimli biçimde işler. IoU farkındalıklı sorgu seçimini kullanan model, en ilgili nesnelere odaklanarak algılama doğruluğunu artırır. Yeniden eğitim olmadan kod çözücü katmanlarının ayarlanmasıyla elde edilen uyarlanabilir çıkarım hızı, RT-DETR'ı çeşitli gerçek zamanlı nesne algılama senaryoları için uygun kılar. RT-DETR özellikleri hakkında RT-DETR Arxiv makalesinden daha fazla bilgi edin.
Önceden eğitilmiş PaddlePaddle RT-DETR modellerini kullanmak için Ultralytics Python API'den yararlanabilirsin. Örneğin, COCO val2017 üzerinde önceden eğitilmiş bir RT-DETR-l modelini yüklemek ve T4 GPU üzerinde yüksek FPS elde etmek için aşağıdaki örneği kullanabilirsin:
Örnekfrom ultralytics import RTDETR # Load a COCO-pretrained RT-DETR-l model model = RTDETR("rtdetr-l.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 RT-DETR-l model on the 'bus.jpg' image results = model("path/to/bus.jpg")Baidu'nun RT-DETR'ı, yüksek doğruluğu korurken hesaplama maliyetlerini büyük ölçüde azaltan verimli hibrit kodlayıcısı ve IoU farkındalıklı sorgu seçimiyle öne çıkar. Yeniden eğitim olmadan farklı kod çözücü katmanlarını kullanarak çıkarım hızını ayarlayabilmesi önemli bir esneklik sağlar. Bu, TensorRT ile CUDA gibi hızlandırılmış arka uçlarda gerçek zamanlı performans gerektiren uygulamalarda RT-DETR'ı özellikle avantajlı kılar ve diğer birçok gerçek zamanlı nesne dedektörünü geride bırakır. Transformer mimarisi, geleneksel CNN tabanlı dedektörlere kıyasla daha iyi küresel bağlam anlayışı da sağlar.
Baidu'nun RT-DETR'ı, yeniden eğitim gerektirmeden farklı kod çözücü katmanlarını kullanarak çıkarım hızının esnek biçimde ayarlanmasına olanak tanır. Bu uyarlanabilirlik, çeşitli gerçek zamanlı nesne algılama görevlerinde performansı ölçeklendirmek için kritik öneme sahiptir. Daha düşük hassasiyet gereksinimleri için daha hızlı işlemeye veya daha yavaş ve daha doğru algılamalara ihtiyaç duyduğunda RT-DETR, özel gereksinimlerini karşılayacak şekilde uyarlanabilir. Bu özellik, modelleri farklı hesaplama kapasitelerine sahip cihazlara dağıtırken özellikle değerlidir.
Hayır. RT-DETR için
max_det, çıkarımdan sonra kaç tahmin döndürüleceğini sınırlar; ancak kod çözücü tarafından üretilen nesne sorgularının sayısını artırmaz. Ultralytics RT-DETR önceden eğitilmiş kontrol noktaları 300 nesne sorgusu kullanır; bu nedenlemax_detdeğerini daha yüksek bir sayıya ayarlasan bile görüntü başına 300'den fazla algılama döndüremezler.Daha az sayıda yüksek güvenli tahmine ihtiyaç duyduğunda, örneğin
max_det=100, döndürülen algılamaları azaltmak içinmax_detkullan. Veri kümen görüntü başına 300'den fazla nesne içerebiliyorsa model YAML'ında daha yüksek bir kod çözücü sorgu sayısına (nq) sahip özel bir RT-DETR modeli eğit; eğitimden sonra bu değeri önceden eğitilmiş bir kontrol noktasında değiştirmek eşdeğer değildir ve ek sorguların öğrenilmesi için yeniden eğitim gerektirir.Evet, RT-DETR modelleri eğitim, doğrulama, tahmin ve dışa aktarma dâhil olmak üzere çeşitli Ultralytics modlarıyla uyumludur. Bu modların nasıl kullanılacağına ilişkin ayrıntılı talimatlar için ilgili belgelere başvurabilirsin: Train, Val, Predict ve Export. Bu, nesne algılama çözümlerini geliştirmek ve dağıtmak için kapsamlı bir iş akışı sağlar. Ultralytics çerçevesi, farklı model mimarileri arasında tutarlı bir API sunarak RT-DETR modelleriyle çalışmayı kolaylaştırır.