--- library_name: transformers license: apache-2.0 language: - en pipeline_tag: object-detection tags: - object-detection - vision datasets: - coco widget: - src: >- https://huggingface.co/datasets/mishig/sample_images/resolve/main/savanna.jpg example_title: Savanna - src: >- https://huggingface.co/datasets/mishig/sample_images/resolve/main/football-match.jpg example_title: Football Match - src: >- https://huggingface.co/datasets/mishig/sample_images/resolve/main/airport.jpg example_title: Airport --- ## RT-DETRv2 ### **Overview** The RT-DETRv2 model was proposed in [RT-DETRv2: Improved Baseline with Bag-of-Freebies for Real-Time Detection Transformer](https://arxiv.org/abs/2407.17140) by Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang, Yi Liu. RT-DETRv2 refines RT-DETR by introducing selective multi-scale feature extraction, a discrete sampling operator for broader deployment compatibility, and improved training strategies like dynamic data augmentation and scale-adaptive hyperparameters. These changes enhance flexibility and practicality while maintaining real-time performance. This model was contributed by [@jadechoghari](https://x.com/jadechoghari) with the help of [@cyrilvallez](https://huggingface.co/cyrilvallez) and [@qubvel-hf](https://huggingface.co/qubvel-hf) This is ### **Performance** RT-DETRv2 consistently outperforms its predecessor across all model sizes while maintaining the same real-time speeds. ![rt-detr-v2-graph.png](https://huggingface.co/datasets/jadechoghari/images/resolve/main/rt-detr-v2-graph.png) ### **How to use** ```python import torch import requests from PIL import Image from transformers import RTDetrV2ForObjectDetection, RTDetrImageProcessor url = 'http://images.cocodataset.org/val2017/000000039769.jpg' image = Image.open(requests.get(url, stream=True).raw) image_processor = RTDetrImageProcessor.from_pretrained("PekingU/rtdetr_v2_r50vd") model = RTDetrV2ForObjectDetection.from_pretrained("PekingU/rtdetr_v2_r50vd") inputs = image_processor(images=image, return_tensors="pt") with torch.no_grad(): outputs = model(**inputs) results = image_processor.post_process_object_detection(outputs, target_sizes=torch.tensor([(image.height, image.width)]), threshold=0.5) for result in results: for score, label_id, box in zip(result["scores"], result["labels"], result["boxes"]): score, label = score.item(), label_id.item() box = [round(i, 2) for i in box.tolist()] print(f"{model.config.id2label[label]}: {score:.2f} {box}") ``` ``` cat: 0.97 [341.14, 25.11, 639.98, 372.89] cat: 0.96 [12.78, 56.35, 317.67, 471.34] remote: 0.95 [39.96, 73.12, 175.65, 117.44] sofa: 0.86 [-0.11, 2.97, 639.89, 473.62] sofa: 0.82 [-0.12, 1.78, 639.87, 473.52] remote: 0.79 [333.65, 76.38, 370.69, 187.48] ``` ### **Training** RT-DETRv2 is trained on COCO (Lin et al. [2014]) train2017 and validated on COCO val2017 dataset. We report the standard AP metrics (averaged over uniformly sampled IoU thresholds ranging from 0.50 − 0.95 with a step size of 0.05), and APval50 commonly used in real scenarios. ### **Applications** RT-DETRv2 is ideal for real-time object detection in diverse applications such as **autonomous driving**, **surveillance systems**, **robotics**, and **retail analytics**. Its enhanced flexibility and deployment-friendly design make it suitable for both edge devices and large-scale systems + ensures high accuracy and speed in dynamic, real-world environments.