|
|
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
|
|
"""
|
|
|
|
RT-DETR model interface
|
|
|
|
"""
|
|
|
|
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):
|
|
|
|
"""
|
|
|
|
RTDETR model interface.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def __init__(self, model='rtdetr-l.pt') -> None:
|
|
|
|
if model and not model.endswith('.pt') and not model.endswith('.yaml'):
|
|
|
|
raise NotImplementedError('RT-DETR only supports creating from pt file or yaml file.')
|
|
|
|
super().__init__(model=model, task='detect')
|
|
|
|
|
|
|
|
@property
|
|
|
|
def task_map(self):
|
|
|
|
return {
|
|
|
|
'detect': {
|
|
|
|
'predictor': RTDETRPredictor,
|
|
|
|
'validator': RTDETRValidator,
|
|
|
|
'trainer': RTDETRTrainer,
|
|
|
|
'model': RTDETRDetectionModel}}
|