RT-DETR de Baidu : Un détecteur d'objets en temps réel basé sur Transformer Vision
Aperçu
Le Real-Time Detection Transformer (RT-DETR), développé par Baidu, est un détecteur d’objets de pointe de bout en bout qui offre des performances en temps réel tout en maintenant une grande précision. Il est basé sur l’idée de DETR (le framework sans NMS), tout en introduisant un backbone basé sur conv et un encodeur hybride efficace pour gagner en vitesse en temps réel. RT-DETR traite efficacement les caractéristiques multi-échelles en découplant l’interaction intra-échelle et la fusion inter-échelles. Le modèle est hautement adaptable, prenant en charge l’ajustement flexible de la vitesse d’inférence à l’aide de différentes couches de décodeur sans réentraînement. RT-DETR excelle sur les backends accélérés comme CUDA avec TensorRT, surpassant de nombreux autres détecteurs d’objets en temps réel.
Regarder : Transformateur de détection en temps réel (RT-DETR)
Aperçu de RT-DETR de Baidu. Le diagramme d'architecture du modèle RT-DETR montre les trois dernières étapes du backbone {S3, S4, S5} comme entrée de l'encodeur. L'encodeur hybride efficace transforme les caractéristiques multi-échelles en une séquence de caractéristiques d'image grâce à l'interaction des caractéristiques intra-échelle (AIFI) et au module de fusion des caractéristiques inter-échelles (CCFM). La sélection de requêtes basée sur l'IoU est utilisée pour sélectionner un nombre fixe de caractéristiques d'image qui serviront de requêtes d'objet initiales pour le décodeur. Enfin, le décodeur avec des têtes de prédiction auxiliaires optimise de manière itérative les requêtes d'objet pour générer des boîtes et des scores de confiance (source).
Principales caractéristiques
- Encodeur hybride efficace : Le RT-DETR de Baidu utilise un encodeur hybride efficace qui traite les caractéristiques multi-échelles en découplant l'interaction intra-échelle et la fusion inter-échelles. Cette conception unique basée sur les Vision Transformers réduit les coûts de calcul et permet une détection d'objets en temps réel.
- Sélection de requêtes basée sur l'IoU : Le RT-DETR de Baidu améliore l'initialisation des requêtes d'objets en utilisant la sélection de requêtes basée sur l'IoU. Cela permet au modèle de se concentrer sur les objets les plus pertinents de la scène, améliorant ainsi la précision de la détection.
- Vitesse d’inférence adaptable : Le RT-DETR de Baidu prend en charge les ajustements flexibles de la vitesse d’inférence en utilisant différentes couches de décodeur sans avoir besoin d’un réentraînement. Cette adaptabilité facilite l’application pratique dans divers scénarios de détection d’objets en temps réel.
- Framework sans NMS : Basé sur DETR, RT-DETR élimine le besoin de post-traitement de suppression non maximale, ce qui simplifie le pipeline de détection et améliore potentiellement l’efficacité.
- Détection sans ancres : En tant que détecteur sans ancres, RT-DETR simplifie le processus de détection et peut améliorer la généralisation sur différents ensembles de données.
Modèles pré-entraînés
L'API Ultralytics python fournit des modèles PaddlePaddle RT-DETR pré-entraînés avec différentes échelles :
- RT-DETR-L : 53,0 % AP sur COCO val2017, 114 FPS sur GPU T4
- RT-DETR-X : 54,8 % AP sur COCO val2017, 74 FPS sur GPU T4
De plus, Baidu a lancé RTDETRv2 en juillet 2024, qui améliore encore l'architecture d'origine avec des métriques de performance accrues.
Exemples d'utilisation
Cet exemple fournit des exemples simples d'entraînement et d'inférence RT-DETR. Pour une documentation complète sur ces modes et d'autres, consultez les pages de documentation Predict, Train, Val et Export.
Exemple
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")
# Load a COCO-pretrained RT-DETR-l model and train it on the COCO8 example dataset for 100 epochs
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained RT-DETR-l model and run inference on the 'bus.jpg' image
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg
Tâches et modes pris en charge
Ce tableau présente les types de modèles, les poids pré-entraînés spécifiques, les tâches prises en charge par chaque modèle et les différents modes (Entraînement, Val, Prédiction, Exportation) qui sont pris en charge, indiqués par des emojis ✅.
Type de modèle | Poids pré-entraînés | Tâches prises en charge | Inférence | Validation | Entraînement | Exporter |
---|---|---|---|---|---|---|
RT-DETR Large | rtdetr-l.pt | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
RT-DETR Extra-Large | rtdetr-x.pt | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
Cas d'utilisation idéaux
RT-DETR est particulièrement bien adapté aux applications nécessitant à la fois une haute précision et des performances en temps réel :
- Conduite autonome : Pour une perception fiable de l'environnement dans les systèmes de conduite autonome où la vitesse et la précision sont essentielles. En savoir plus sur l'IA dans les voitures autonomes.
- Robotique avancée : Permettre aux robots d'effectuer des tâches complexes nécessitant une reconnaissance et une interaction précises des objets dans des environnements dynamiques. Découvrez le rôle de l'IA dans la robotique.
- Imagerie médicale : Pour les applications dans le domaine de la santé où la précision de la détection d'objets peut être cruciale pour les diagnostics. Découvrez l'IA dans le domaine de la santé.
- Systèmes de surveillance : Pour les applications de sécurité nécessitant une surveillance en temps réel avec une grande précision de détection. En savoir plus sur les systèmes d’alarme de sécurité.
- Analyse d'images satellite : Pour une analyse détaillée de l'imagerie à haute résolution où la compréhension du contexte global est importante. En savoir plus sur la vision par ordinateur dans l'imagerie satellite.
Citations et remerciements
Si vous utilisez RT-DETR de Baidu dans vos travaux de recherche ou de développement, veuillez citer l'article original :
@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}
}
Pour RTDETRv2, vous pouvez citer l'article de 2024 :
@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}
}
Nous tenons à remercier Baidu et l'équipe PaddlePaddle pour la création et la maintenance de cette ressource précieuse pour la communauté de la vision par ordinateur. Leur contribution au domaine avec le développement du détecteur d'objets en temps réel basé sur les Vision Transformers, RT-DETR, est grandement appréciée.
FAQ
Qu'est-ce que le modèle RT-DETR de Baidu et comment fonctionne-t-il ?
RT-DETR (Real-Time Detection Transformer) de Baidu est un détecteur d'objets en temps réel avancé basé sur l'architecture Vision Transformer. Il traite efficacement les caractéristiques multi-échelles en découplant l'interaction intra-échelle et la fusion inter-échelles grâce à son encodeur hybride efficace. En employant la sélection de requêtes basée sur IoU, le modèle se concentre sur les objets les plus pertinents, améliorant ainsi la précision de la détection. Sa vitesse d'inférence adaptable, obtenue en ajustant les couches de décodeur sans réentraînement, rend RT-DETR adapté à divers scénarios de détection d'objets en temps réel. Apprenez-en davantage sur les fonctionnalités de RT-DETR dans le document Arxiv de RT-DETR.
Comment puis-je utiliser les modèles RT-DETR pré-entraînés fournis par Ultralytics ?
Vous pouvez exploiter l'API Python Ultralytics pour utiliser les modèles PaddlePaddle RT-DETR pré-entraînés. Par exemple, pour charger un modèle RT-DETR-l pré-entraîné sur COCO val2017 et obtenir un nombre élevé d'images par seconde sur un GPU T4, vous pouvez utiliser l'exemple suivant :
Exemple
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")
# Load a COCO-pretrained RT-DETR-l model and train it on the COCO8 example dataset for 100 epochs
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained RT-DETR-l model and run inference on the 'bus.jpg' image
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg
Pourquoi devrais-je choisir RT-DETR de Baidu plutôt que d'autres détecteurs d'objets en temps réel ?
RT-DETR de Baidu se distingue par son encodeur hybride efficace et sa sélection de requêtes basée sur IoU, qui réduisent considérablement les coûts de calcul tout en maintenant une haute précision. Sa capacité unique à ajuster la vitesse d'inférence en utilisant différentes couches de décodeur sans réentraînement ajoute une flexibilité significative. Cela le rend particulièrement avantageux pour les applications nécessitant des performances en temps réel sur des backends accélérés comme CUDA avec TensorRT, surpassant de nombreux autres détecteurs d'objets en temps réel. L'architecture de transformateur offre également une meilleure compréhension du contexte global par rapport aux détecteurs traditionnels basés sur CNN.
Comment RT-DETR prend-il en charge une vitesse d'inférence adaptable pour différentes applications en temps réel ?
RT-DETR de Baidu permet des ajustements flexibles de la vitesse d'inférence en utilisant différentes couches de décodeur sans nécessiter de réentraînement. Cette adaptabilité est cruciale pour adapter les performances à diverses tâches de détection d'objets en temps réel. Que vous ayez besoin d'un traitement plus rapide pour des besoins de précision moindres ou de détections plus lentes et plus précises, RT-DETR peut être adapté pour répondre à vos exigences spécifiques. Cette fonctionnalité est particulièrement précieuse lors du déploiement de modèles sur des appareils dotés de capacités de calcul variables.
Puis-je utiliser les modèles RT-DETR avec d'autres modes Ultralytics, tels que la formation, la validation et l'exportation ?
Oui, les modèles RT-DETR sont compatibles avec divers modes Ultralytics, notamment l'entraînement, la validation, la prédiction et l'exportation. Vous pouvez vous référer à la documentation respective pour obtenir des instructions détaillées sur l'utilisation de ces modes : Entraînement, Validation, Prédiction et Exportation. Cela garantit un flux de travail complet pour le développement et le déploiement de vos solutions de détection d'objets. Le framework Ultralytics fournit une API cohérente pour différentes architectures de modèles, ce qui facilite le travail avec les modèles RT-DETR.