Baidu'nun RT-DETR Modeli: Görsel Transformer Tabanlı Gerçek Zamanlı Nesne Dedektörü#
Genel Bakış#
Baidu tarafından geliştirilen Gerçek Zamanlı Algılama Transformer'ı (RT-DETR), yüksek doğruluğu korurken gerçek zamanlı performans sunan son teknoloji uçtan uca bir nesne dedektörüdür. DETR (NMS içermeyen çerçeve) fikrine dayanmakta olup, aynı zamanda gerçek zamanlı hız elde etmek için konvülsiyon tabanlı omurga ve verimli bir hibrit kodlayıcı sunar. RT-DETR, ölçek içi etkileşimi ve ölçekler arası füzyonu ayırarak çok ölçekli özellikleri verimli bir çıkarımla işler. Model, yeniden eğitim gerektirmeden farklı kodlayıcı katmanları kullanarak çıkarım hızının esnek bir şekilde ayarlanmasını destekleyerek yüksek derecede uyarlanabilirdir. RT-DETR, TensorRT ile CUDA gibi hızlandırılmış arka uçlarda üstün başarı 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ı, kodlayıcıya giriş olarak omurganın son üç aşamasını {S3, S4, S5} göstermektedir. Verimli hibrit kodlayıcı, ölçek içi özellik etkileşimi (AIFI) ve ölçekler arası özellik füzyon modülü (CCFM) aracılığıyla çok ölçekli özellikleri bir dizi görüntü özelliğine dönüştürür. Kodlayıcı için başlangıç nesne sorguları olarak hizmet edecek sabit sayıda görüntü özelliğini seçmek üzere IoU farkındalıklı sorgu seçimi kullanılır. Son olarak, yardımcı tahmin kafalarına sahip kodlayıcı, kutular ve güven skorları üretmek için nesne sorgularını yinelemeli olarak optimize eder (kaynak).
Temel Özellikler#
- Verimli Hibrit Kodlayıcı: Baidu'nun RT-DETR modeli, ölçek içi etkileşimi ve ölçekler arası füzyonu ayırarak çok ölçekli özellikleri işleyen verimli bir hibrit kodlayıcı kullanır. Vizyon Transformer'larına dayanan bu benzersiz tasarım, hesaplama maliyetlerini düşürür ve gerçek zamanlı nesne tespiti yapılmasını sağlar.
- IoU Duyarlı Sorgu Seçimi: Baidu'nun RT-DETR modeli, IoU duyarlı sorgu seçimini kullanarak nesne sorgusu başlatma sürecini iyileştirir. Bu, modelin sahnedeki en alakalı nesnelere odaklanmasını sağlayarak algılama doğruluğunu artırır.
- Uyarlanabilir Çıkarım Hızı: Baidu'nun RT-DETR modeli, yeniden eğitime ihtiyaç duymadan farklı kodlayıcı katmanları kullanılarak çıkarım hızında esnek ayarlamalar yapılması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'yi temel alan RT-DETR, maksimum olmama bastırma sonrası işlemine olan ihtiyacı ortadan kaldırarak tespit boru hattını basitleştirir ve potansiyel olarak verimliliği artırır.
- Çapasız Tespit: Çapasız bir dedektör olan RT-DETR, tespit sürecini basitleştirir ve farklı veri kümelerindeki genellemeyi iyileştirebilir.
Önceden Eğitilmiş Modeller#
Ultralytics Python API, farklı ölçeklerde ö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 orijinal mimariyi gelişmiş performans metrikleriyle daha da ileriye taşıyan RTDETRv2'yi yayınladı.
Kullanım Örnekleri#
Bu örnek, basit RT-DETR eğitimi ve çıkarımı örnekleri sağlar. Bunlar ve diğer modlar hakkındaki eksiksiz belgeler için Tahmin, Eğitim, Doğrulama ve Dışa Aktarma belgeleri sayfalarına göz atabilirsin. 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")PyTorch 2.0 veya üzeri ile CUDA üzerinde RT-DETR eğitimi yaparken deterministic=False değerini ayarla. Deforme olabilen dikkati, deterministik bir CUDA geriye yayılımı olmayan F.grid_sample kullanır; bu nedenle deterministic=True çalıştırmayı tekrarlanabilir kıl The seed ağırlık başlatmayı, veri sırasını ve artırma örneklemesini kontrol etmeye devam eder.
RT-DETR önceden eğitilmiş ağırlıkları, yeniden eğitime gerek kalmadan gecikmeyi azaltmak için iki çıkarım zamanı ayarını 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ı kullanır;eval_idx=3ise 4 katman kullanır. TensorRT v10.11 yüklü bir T4 GPU üzerinde RT-DETR-L, 4 katmanla 8,0 ms / 52,7 mAP'den 7,4 ms / 52,5 mAP'ye iyileşir.num_queries: Nesne sorgularını azalt (varsayılan: 300). Değeri 100'e düşürmek aynı kurulumda COCO üzerinde 7,4 ms / 51,7 mAP değerine ulaşabilir. Görüntü başına daha az nesne içeren veri kümelerinde mAP düşüşü tipik olarak daha küçüktür, 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 veri kümenizdeki takas durumunu doğrulayın.
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 model tarafından desteklenen görevleri ve ✅ emojileriyle belirtilen desteklenen çeşitli modları (Train , Val, Predict, Export) sunar.
| Model Tipi | Önceden Eğitilmiş Ağırlıklar | Desteklenen Görevler | Eğitim | Doğrulama | Çıkarım | Dışa Aktar (Export) |
|---|---|---|---|---|---|---|
| RT-DETR Large | rtdetr-l.pt | Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
| RT-DETR Extra-Large | rtdetr-x.pt | Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
rtdetr-resnet50.yaml ve rtdetr-resnet101.yaml yalnızca YAML mimarileri olarak gönderilir. Ultralytics, ön eğitilmiş ağırlıkları yalnızca rtdetr-l ve rtdetr-x için yayınlar. ResNet varyantlarını YAML'dan örnekleyin (örneğin, RTDETR("rtdetr-resnet50.yaml")) ve gerektiği gibi eğitin veya ince ayar yapın.
İdeal Kullanım Senaryoları#
RT-DETR, hem yüksek doğruluk hem de gerçek zamanlı performans gerektiren uygulamalar için özellikle uygundur:
- Otonom Sürüş: Hem hızın hem de doğruluğun kritik olduğu otonom sürüş sistemlerinde güvenilir çevresel algılama için. Otonom araçlarda yapay zeka hakkında daha fazla bilgi edin.
- Gelişmiş Robotik: Robotların dinamik ortamlarda doğru nesne tanıma ve etkileşim gerektiren karmaşık görevleri gerçekleştirmesini sağlamak. Yapay zekanın robotiğindeki rolünü keşfet.
- Tıbbi Görüntüleme: Sağlık hizmetlerinde, nesne tespitindeki hassasiyetin teşhis için çok önemli olabileceği uygulamalar için. Sağlık hizmetlerinde yapay zekayı keşfet.
- Gözetim Sistemleri: Yüksek tespit doğruluğu ile gerçek zamanlı izleme gerektiren güvenlik uygulamaları için. Güvenlik alarm sistemleri hakkında bilgi edin.
- Uydu Görüntü Analizi: Küresel bağlam anlayışı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 oku.
Alıntılar ve Teşekkür#
Baidu'nun RT-DETR modelini araştırmanızda veya geliştirme çalışmalarınızda kullanıyorsanız, lütfen orijinal makaleye atıfta bulunun:
@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}
}computer vision topluluğu için bu değerli kaynagi oluşturan ve koruyan Baidu ekibine ve PaddlePaddle ekibine teşekkür ederiz. Vision Transformer tabanlı gerçek zamanlı nesne dedektörü RT-DETR'nin geliştirilmesiyle alana yaptıkları katkı çok takdir edilmektedir.
SSS#
Baidu'nun RT-DETR (Gerçek Zamanlı Algılama Transformer'ı) modeli, Vision Transformer mimarisi üzerine inşa edilmiş 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ı füzyonu ayırarak çok ölçekli özellikleri verimli bir şekilde işler. IoU farkındalıklı sorgu seçimi kullanarak model en ilgili nesnelere odaklanır ve tespit doğruluğunu artırır. Yeniden eğitim gerekmeden kodlayıcı katmanları ayarlanarak elde edilen uyarlanabilir çıkarım hızı, RT-DETR'yi çeşitli gerçek zamanlı nesne tespiti senaryoları için uygun hale getirir. RT-DETR özellikleri hakkında RT-DETR Arxiv makalesinden daha fazla bilgi edinebilirsin.
Önceden eğitilmiş PaddlePaddle RT-DETR modellerini kullanmak için Ultralytics Python API'sinden yararlanabilirsiniz. Örneğin, COCO val2017 üzerinde önceden eğitilmiş bir RT-DETR-l modelini yüklemek ve T4 GPU'da yüksek FPS elde etmek için aşağıdaki örneği kullanabilirsiniz:
Ö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 modeli; hesaplama maliyetlerini büyük ölçüde düşürürken yüksek doğruluğu koruyan verimli hibrit kodlayıcısı ve IoU farkındalıklı sorgu seçimi sayesinde öne çıkar. Yeniden eğitim gerektirmeden farklı kodlayıcı katmanları kullanarak çıkarım hızını ayarlama konusundaki benzersiz yeteneği, önemli bir esneklik kazandırır. Bu durum, TensorRT ile CUDA gibi hızlandırılmış arka uçlarda gerçek zamanlı performans gerektiren uygulamalar için modeli özellikle avantajlı hale getirir ve diğer birçok gerçek zamanlı nesne dedektörünü geride bırakır. Transformer mimarisi ayrıca geleneksel CNN tabanlı dedektörlere kıyasla daha iyi bir küresel bağlam anlayışı sağlar.
Baidu'nun RT-DETR modeli, yeniden eğitim gerektirmeden farklı kodlayıcı katmanları kullanarak çıkarım hızında esnek ayarlamalar yapılmasına olanak tanır. Bu uyarlanabilirlik, performansın çeşitli gerçek zamanlı nesne tespiti görevleri arasında ölçeklendirilmesi için çok önemlidir. Daha düşük hassasiyet ihtiyaçları için daha hızlı işleme veya daha yavaş ve daha doğru tespitler gerekip gerekmediğine bakılmaksızın, RT-DETR özel gereksinimlerinizi karşılayacak şekilde uyarlanabilir. Bu özellik, modelleri değişen hesaplama yeteneklerine sahip cihazlar arasında dağıtırken özellikle değerlidir.
Hayır. RT-DETR için
max_det, çıkarımdan sonra kaç tahminin döndürüleceğini sınırlar ancak kod çözücü tarafından üretilen nesne sorgusu sayısını artırmaz. Ultralytics RT-DETR ön eğitilmiş kontrol noktaları 300 nesne sorgusu kullanır, bu nedenlemax_detdeğerini daha büyük ayarlasanız bile görüntü başına 300'den fazla tespit döndüremezler.Yalnızca daha az sayıda yüksek güvenilirlikli tahmine ihtiyacınız olduğunda döndürülen tespitleri azaltmak için
max_detparametresini (örneğinmax_det=100) kullanın. Veri kümeniz görüntü başına 300'den fazla nesne içerebiliyorsa, model YAML dosyasında daha yüksek bir kod çözücü sorgu sayısına (nq) sahip özel bir RT-DETR modeli eğitin; eğitimi tamamladıktan sonra ön eğitilmiş bir kontrol noktasında bu değeri 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 dahil olmak üzere çeşitli Ultralytics modlarıyla uyumludur. Bu modların nasıl kullanılacağına dair ayrıntılı talimatlar için ilgili belgelere göz atabilirsin: Eğitim, Doğrulama, Tahmin ve Dışa Aktarma. Bu, nesne tespiti çözümlerini geliştirmeniz ve dağıtmanız için kapsamlı bir iş akışı sağlar. Ultralytics çerçevesi, farklı model mimarilerinde tutarlı bir API sunarak RT-DETR modelleriyle çalışmayı kolaylaştırır.