Skip to content

Register now for

# Reference for `ultralytics/models/yolo/obb/train.py`

Note

This file is available at https://github.com/ultralytics/ultralytics/blob/main/ultralytics/models/yolo/obb/train.py. If you spot a problem please help fix it by contributing a Pull Request 🛠️. Thank you 🙏!

## `` ultralytics.models.yolo.obb.train.OBBTrainer

    OBBTrainer(
        cfg=DEFAULT_CFG,
        overrides: dict | None = None,
        _callbacks: list[Any] | None = None,
    )

Bases: `DetectionTrainer`

A class extending the DetectionTrainer class for training based on an Oriented Bounding Box (OBB) model.

This trainer specializes in training YOLO models that detect oriented bounding boxes, which are useful for detecting objects at arbitrary angles rather than just axis-aligned rectangles.

Attributes:

Name | Type | Description
--- | --- | ---
`loss_names` | `tuple` | Names of the loss components used during training including box_loss, cls_loss, and dfl_loss.

Methods:

Name | Description
--- | ---
`get_model` | Return OBBModel initialized with specified config and weights.
`get_validator` | Return an instance of OBBValidator for validation of YOLO model.

Examples:

    >>> from ultralytics.models.yolo.obb import OBBTrainer
    >>> args = dict(model="yolo11n-obb.pt", data="dota8.yaml", epochs=3)
    >>> trainer = OBBTrainer(overrides=args)
    >>> trainer.train()

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`cfg` | `dict` | Configuration dictionary for the trainer. Contains training parameters and model configuration. | `DEFAULT_CFG`
`overrides` | `dict` | Dictionary of parameter overrides for the configuration. Any values here will take precedence over those in cfg. | `None`
`_callbacks` | `list[Any]` | List of callback functions to be invoked during training. | `None`

Source code in `ultralytics/models/yolo/obb/train.py`

    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    def __init__(self, cfg=DEFAULT_CFG, overrides: dict | None = None, _callbacks: list[Any] | None = None):
        """
        Initialize an OBBTrainer object for training Oriented Bounding Box (OBB) models.

        Args:
            cfg (dict, optional): Configuration dictionary for the trainer. Contains training parameters and
                model configuration.
            overrides (dict, optional): Dictionary of parameter overrides for the configuration. Any values here
                will take precedence over those in cfg.
            _callbacks (list[Any], optional): List of callback functions to be invoked during training.
        """
        if overrides is None:
            overrides = {}
        overrides["task"] = "obb"
        super().__init__(cfg, overrides, _callbacks)

### `` get_model

    get_model(
        cfg: str | dict | None = None,
        weights: str | Path | None = None,
        verbose: bool = True,
    ) -> OBBModel

Return OBBModel initialized with specified config and weights.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`cfg` | `str | dict` | Model configuration. Can be a path to a YAML config file, a dictionary containing configuration parameters, or None to use default configuration. | `None`
`weights` | `str | Path` | Path to pretrained weights file. If None, random initialization is used. | `None`
`verbose` | `bool` | Whether to display model information during initialization. | `True`

Returns:

Type | Description
--- | ---
`OBBModel` | Initialized OBBModel with the specified configuration and weights.

Examples:

    >>> trainer = OBBTrainer()
    >>> model = trainer.get_model(cfg="yolo11n-obb.yaml", weights="yolo11n-obb.pt")

Source code in `ultralytics/models/yolo/obb/train.py`

    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    def get_model(
        self, cfg: str | dict | None = None, weights: str | Path | None = None, verbose: bool = True
    ) -> OBBModel:
        """
        Return OBBModel initialized with specified config and weights.

        Args:
            cfg (str | dict, optional): Model configuration. Can be a path to a YAML config file, a dictionary
                containing configuration parameters, or None to use default configuration.
            weights (str | Path, optional): Path to pretrained weights file. If None, random initialization is used.
            verbose (bool): Whether to display model information during initialization.

        Returns:
            (OBBModel): Initialized OBBModel with the specified configuration and weights.

        Examples:
            >>> trainer = OBBTrainer()
            >>> model = trainer.get_model(cfg="yolo11n-obb.yaml", weights="yolo11n-obb.pt")
        """
        model = OBBModel(cfg, nc=self.data["nc"], ch=self.data["channels"], verbose=verbose and RANK == -1)
        if weights:
            model.load(weights)

        return model

### `` get_validator

    get_validator()

Return an instance of OBBValidator for validation of YOLO model.

Source code in `ultralytics/models/yolo/obb/train.py`

    77
    78
    79
    80
    81
    82
    def get_validator(self):
        """Return an instance of OBBValidator for validation of YOLO model."""
        self.loss_names = "box_loss", "cls_loss", "dfl_loss"
        return yolo.obb.OBBValidator(
            self.test_loader, save_dir=self.save_dir, args=copy(self.args), _callbacks=self.callbacks
        )

📅 Created 1 year ago ✏️ Updated 1 year ago