# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license """ Interface for Baidu's RT-DETR, a Vision Transformer-based real-time object detector. RT-DETR offers real-time performance and high accuracy, excelling in accelerated backends like CUDA with TensorRT. It features an efficient hybrid encoder and IoU-aware query selection for enhanced detection accuracy. References: https://arxiv.org/pdf/2304.08069.pdf """ from ultralytics.engine.model import Model from ultralytics.nn.tasks import RTDETRDetectionModel from .predict import RTDETRPredictor from .train import RTDETRTrainer from .val import RTDETRValidator class RTDETR(Model): """ Interface for Baidu's RT-DETR model, a Vision Transformer-based real-time object detector. This model provides real-time performance with high accuracy. It supports efficient hybrid encoding, IoU-aware query selection, and adaptable inference speed. Attributes: model (str): Path to the pre-trained model. Methods: task_map: Return a task map for RT-DETR, associating tasks with corresponding Ultralytics classes. Examples: Initialize RT-DETR with a pre-trained model >>> from ultralytics import RTDETR >>> model = RTDETR("rtdetr-l.pt") >>> results = model("image.jpg") """ def __init__(self, model: str = "rtdetr-l.pt") -> None: """ Initialize the RT-DETR model with the given pre-trained model file. Args: model (str): Path to the pre-trained model. Supports .pt, .yaml, and .yml formats. """ super().__init__(model=model, task="detect") @property def task_map(self) -> dict: """ Return a task map for RT-DETR, associating tasks with corresponding Ultralytics classes. Returns: (dict): A dictionary mapping task names to Ultralytics task classes for the RT-DETR model. """ return { "detect": { "predictor": RTDETRPredictor, "validator": RTDETRValidator, "trainer": RTDETRTrainer, "model": RTDETRDetectionModel, } }