
    |h                     @    d dl Z d dlmZ d dlmZ dgZ G d de      Zy)    N)DetectionValidator)opsNASValidatorc                   "     e Zd ZdZ fdZ xZS )r   a  
    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.

    Examples:
        >>> from ultralytics import NAS
        >>> model = NAS("yolo_nas_s")
        >>> validator = model.validator
        >>> # Assumes that raw_preds are available
        >>> final_preds = validator.postprocess(raw_preds)

    Notes:
        This class is generally not instantiated directly but is used internally within the NAS class.
    c                     t        j                  |d   d         }t        j                  ||d   d   fd      j	                  ddd      }t
        |   |      S )z4Apply Non-maximum suppression to prediction outputs.r         )r   	xyxy2xywhtorchcatpermutesuperpostprocess)selfpreds_inboxespreds	__class__s       Y/var/www/html/test/engine/venv/lib/python3.12/site-packages/ultralytics/models/nas/val.pyr   zNASValidator.postprocess#   sU    hqk!n-		5(1+a.126>>q!QGw"5))    )__name__
__module____qualname____doc__r   __classcell__)r   s   @r   r   r      s    .* *r   )r   ultralytics.models.yolo.detectr   ultralytics.utilsr   __all__r    r   r   <module>r!      s%     = !
*% *r   