Baidu'nun RT-DETR'si: Vision Transformer Tabanlı Gerçek Zamanlı Nesne Algılayıcı
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 sağlayan son teknoloji ürünü, uçtan uca bir nesne algılayıcıdır. DETR (NMS'siz çerçeve) fikrine dayanırken, gerçek zamanlı hız elde etmek için konvolüsyon tabanlı backbone ve verimli bir hibrit kodlayıcıyı tanıtır. RT-DETR, ölçek içi etkileşimi ve ölçekler arası füzyonu ayırarak çok ölçekli özellikleri verimli bir şekilde işler. Model, yeniden eğitime gerek kalmadan farklı kodlayıcı katmanları kullanılarak çıkarım hızının esnek bir şekilde ayarlanmasını desteklediğinden oldukça uyumludur. RT-DETR, TensorRT ile CUDA gibi hızlandırılmış arka uçlarda mükemmel performans göstererek diğer birçok gerçek zamanlı nesne algılayıcıyı geride bırakır.
Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀
Baidu RT-DETR'ye Genel Bakış. RT-DETR model mimarisi diyagramı, kodlayıcıya giriş olarak backbone'un son üç aşamasını {S3, S4, S5} gösterir. 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 görüntü özellikleri dizisine dönüştürür. IoU duyarlı sorgu seçimi, kodlayıcı için ilk nesne sorguları görevi görecek sabit sayıda görüntü özelliğini seçmek için kullanılır. Son olarak, yardımcı tahmin başlıklarına sahip kodlayıcı, kutuları ve güven skorlarını üretmek için nesne sorgularını yinelemeli olarak optimize eder (kaynak).
Temel Özellikler
- Verimli Hibrit Kodlayıcı: Baidu RT-DETR, ö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. Bu benzersiz Vision Transformer tabanlı tasarım, hesaplama maliyetlerini azaltır ve gerçek zamanlı nesne algılamaya olanak tanır.
- IoU Duyarlı Sorgu Seçimi: Baidu RT-DETR, IoU duyarlı sorgu seçiminden yararlanarak nesne sorgusu başlatma işlemini 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 RT-DETR, yeniden eğitime gerek kalmadan farklı kodlayıcı katmanları kullanarak çıkarım hızının esnek bir şekilde ayarlanmasını destekler. Bu uyarlanabilirlik, çeşitli gerçek zamanlı nesne algılama senaryolarında pratik uygulamayı kolaylaştırır.
- NMS'siz Çerçeve: DETR'ye dayanan RT-DETR, non-maximum suppression (NMS) sonrası işleme ihtiyacını ortadan kaldırarak algılama hattını basitleştirir ve potansiyel olarak verimliliği artırır.
- Çapasız Algılama: Bir çapasız algılayıcı olarak RT-DETR, algılama sürecini basitleştirir ve farklı veri kümelerinde genelleştirmeyi iyileştirebilir.
Önceden Eğitilmiş Modeller
Ultralytics Python API, farklı ölçeklerde önceden eğitilmiş PaddlePaddle RT-DETR modelleri sağlar:
- 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 iyileştiren RTDETRv2'yi yayınladı.
Kullanım Örnekleri
Bu örnek, basit RT-DETR eğitimi ve çıkarım örnekleri sunar. Bunlar ve diğer modlar hakkında tam dokümantasyon için Predict, Train, Val ve Export doküman sayfalarına bakın. 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 ö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 sonlandır. Varsayılan 6 katmanlı kodlayıcı için sıfır tabanlı bir dizin (0–5) kullan.eval_idx=5tüm katmanları kullanır;eval_idx=34 katman kullanır. TensorRT v10.11 ile bir T4 GPU üzerinde RT-DETR-L, 4 katman ile 8,0 ms / 52,7 mAP değerinden 7,4 ms / 52,5 mAP değerine iyileşir.num_queries: Nesne sorgularını azalt (varsayılan: 300). 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üşüşü genellikle 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'yi düşürebilir — dağıtımdan önce veri kümeniz üzerindeki takası 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, half=True)Desteklenen Görevler ve Modlar
Bu tablo, model türlerini, belirli önceden eğitilmiş ağırlıkları, her modelin desteklediği 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 | Çıkarım | Doğrulama | Eğitim | Dışa Aktar (Export) |
|---|---|---|---|---|---|---|
| RT-DETR Large | rtdetr-l.pt | Nesne Tespiti | ✅ | ✅ | ✅ | ✅ |
| RT-DETR Extra-Large | rtdetr-x.pt | Nesne Tespiti | ✅ | ✅ | ✅ | ✅ |
rtdetr-resnet50.yaml ve rtdetr-resnet101.yaml yalnızca YAML mimarileri olarak gönderilir. Ultralytics, yalnızca rtdetr-l ve rtdetr-x için önceden eğitilmiş ağırlıklar yayınlar. ResNet varyantlarını YAML'den başlat (örneğin, RTDETR("rtdetr-resnet50.yaml")) ve gerektiğinde eğit veya ince ayar yap.
İdeal Kullanım Durumları
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 kendi kendine giden sistemlerde güvenilir çevresel algılama için. Kendi kendine giden arabalarda yapay zeka hakkında daha fazla bilgi edinin.
- 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 robotikteki rolünü keşfedin.
- Tıbbi Görüntüleme: Nesne algılamadaki hassasiyetin teşhis için kritik olabileceği sağlık hizmetlerindeki uygulamalar için. Sağlık hizmetlerinde yapay zekayı keşfedin.
- Gözetim Sistemleri: Yüksek algılama doğruluğu ile gerçek zamanlı izleme gerektiren güvenlik uygulamaları için. Güvenlik alarm sistemleri hakkında bilgi edinin.
- Uydu Görüntüsü 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 edinin.
Alıntılar ve Teşekkür
Baidu'nun RT-DETR'sini araştırma 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 makalesine atıfta bulunabilirsiniz:
@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}
}We would like to acknowledge Baidu and the PaddlePaddle team for creating and maintaining this valuable resource for the computer vision community. Their contribution to the field with the development of the Vision Transformers-based real-time object detector, RT-DETR, is greatly appreciated.
SSS
Baidu RT-DETR modeli nedir ve nasıl çalışır?
Baidu RT-DETR (Gerçek Zamanlı Algılama Transformer'ı), Vision Transformer mimarisi üzerine inşa edilmiş gelişmiş bir gerçek zamanlı nesne algılayıcı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 duyarlı sorgu seçimi kullanarak model, en alakalı nesnelere odaklanarak algılama doğruluğunu artırır. Yeniden eğitime gerek kalmadan kodlayıcı katmanlarını ayarlayarak elde edilen uyarlanabilir çıkarım hızı, RT-DETR'yi çeşitli gerçek zamanlı nesne algılama senaryoları için uygun hale getirir. RT-DETR özellikleri hakkında RT-DETR Arxiv makalesinden daha fazla bilgi edinin.
Ultralytics tarafından sağlanan önceden eğitilmiş RT-DETR modellerini nasıl kullanabilirim?
Ö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'da yüksek FPS elde etmek için aşağıdaki örneği kullanabilirsin:
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")Neden diğer gerçek zamanlı nesne algılayıcılar yerine Baidu'nun RT-DETR'sini seçmeliyim?
Baidu RT-DETR, yüksek doğruluğu korurken hesaplama maliyetlerini önemli ölçüde azaltan verimli hibrit kodlayıcısı ve IoU duyarlı sorgu seçimi ile öne çıkar. Yeniden eğitime gerek kalmadan farklı kodlayıcı katmanlarını kullanarak çıkarım hızını ayarlama konusundaki benzersiz yeteneği, önemli bir esneklik sağlar. Bu, onu TensorRT ile CUDA gibi hızlandırılmış arka uçlarda gerçek zamanlı performans gerektiren uygulamalar için özellikle avantajlı hale getirerek diğer birçok gerçek zamanlı nesne algılayıcıyı geride bırakır. transformer architecture ayrıca geleneksel CNN tabanlı algılayıcılara kıyasla daha iyi küresel bağlam anlayışı sağlar.
RT-DETR, farklı gerçek zamanlı uygulamalar için uyarlanabilir çıkarım hızını nasıl destekler?
Baidu RT-DETR, yeniden eğitime ihtiyaç duymadan farklı kodlayıcı katmanlarını kullanarak çıkarım hızının esnek bir şekilde ayarlanmasına izin verir. Bu uyarlanabilirlik, çeşitli gerçek zamanlı nesne algılama görevlerinde performansı ölçeklendirmek için çok önemlidir. İster daha düşük hassasiyet ihtiyaçları için daha hızlı işleme, ister daha yavaş, daha doğru algılamalar iste, RT-DETR özel gereksinimlerini karşılayacak şekilde uyarlanabilir. Bu özellik, modelleri farklı hesaplama yeteneklerine sahip cihazlarda dağıtırken özellikle değerlidir.
RT-DETR modellerini eğitim, doğrulama ve dışa aktarma gibi diğer Ultralytics modlarıyla kullanabilir miyim?
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 dokümantasyona 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 mimarilerinde tutarlı bir API sunarak RT-DETR modelleriyle çalışmayı kolaylaştırır.