Перейти к содержимому

Ссылка для ultralytics/models/nas/val.py

Примечание

Этот файл доступен по адресу https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/models/nas/val .py. Если ты заметил проблему, пожалуйста, помоги исправить ее, отправив Pull Request 🛠️. Спасибо 🙏!



ultralytics.models.nas.val.NASValidator

Базы: DetectionValidator

Ultralytics YOLO NAS Validator для обнаружения объектов.

Расширяет DetectionValidator из пакета Ultralytics models и предназначен для постобработки сырых прогнозов. полученных с помощью YOLO NAS-моделей. Он выполняет не максимальное подавление, чтобы удалить перекрывающиеся и малодостоверные ящики, в итоге получаются финальные обнаружения.

Атрибуты:

Имя Тип Описание
args Namespace

Пространство имен, содержащее различные конфигурации для постобработки, такие как пороги уверенности и IoU.

lb Tensor

Дополнительный tensor для мультилаборатории NMS.

Пример
from ultralytics import NAS

model = NAS('yolo_nas_s')
validator = model.validator
# Assumes that raw_preds are available
final_preds = validator.postprocess(raw_preds)
Примечание

Этот класс обычно не инстанцируется напрямую, а используется внутри NAS класс.

Исходный код в ultralytics/models/nas/val.py
class NASValidator(DetectionValidator):
    """
    Ultralytics YOLO NAS Validator for object detection.

    Extends `DetectionValidator` from the Ultralytics models package and is designed to post-process the raw predictions
    generated by YOLO NAS models. It performs non-maximum suppression to remove overlapping and low-confidence boxes,
    ultimately producing the final detections.

    Attributes:
        args (Namespace): Namespace containing various configurations for post-processing, such as confidence and IoU thresholds.
        lb (torch.Tensor): Optional tensor for multilabel NMS.

    Example:
        ```python
        from ultralytics import NAS

        model = NAS('yolo_nas_s')
        validator = model.validator
        # Assumes that raw_preds are available
        final_preds = validator.postprocess(raw_preds)
        ```

    Note:
        This class is generally not instantiated directly but is used internally within the `NAS` class.
    """

    def postprocess(self, preds_in):
        """Apply Non-maximum suppression to prediction outputs."""
        boxes = ops.xyxy2xywh(preds_in[0][0])
        preds = torch.cat((boxes, preds_in[0][1]), -1).permute(0, 2, 1)
        return ops.non_max_suppression(
            preds,
            self.args.conf,
            self.args.iou,
            labels=self.lb,
            multi_label=False,
            agnostic=self.args.single_cls,
            max_det=self.args.max_det,
            max_time_img=0.5,
        )

postprocess(preds_in)

Примени не максимальное подавление к выходам предсказаний.

Исходный код в ultralytics/models/nas/val.py
def postprocess(self, preds_in):
    """Apply Non-maximum suppression to prediction outputs."""
    boxes = ops.xyxy2xywh(preds_in[0][0])
    preds = torch.cat((boxes, preds_in[0][1]), -1).permute(0, 2, 1)
    return ops.non_max_suppression(
        preds,
        self.args.conf,
        self.args.iou,
        labels=self.lb,
        multi_label=False,
        agnostic=self.args.single_cls,
        max_det=self.args.max_det,
        max_time_img=0.5,
    )





Создано 2023-11-12, Обновлено 2023-11-25
Авторы: glenn-jocher (3)