ó
    œþöh’
  ã                   ó:   • S SK r S SKJr  S SKJr   " S S\5      rg)é    N)ÚDetectionPredictor)Úopsc                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )ÚNASPredictoré	   aÿ  
Ultralytics YOLO NAS Predictor for object detection.

This class extends the DetectionPredictor from Ultralytics engine and is responsible for post-processing the
raw predictions generated by the YOLO NAS models. It applies operations like non-maximum suppression and
scaling the bounding boxes to fit the original image dimensions.

Attributes:
    args (Namespace): Namespace containing various configurations for post-processing including confidence
        threshold, IoU threshold, agnostic NMS flag, maximum detections, and class filtering options.
    model (torch.nn.Module): The YOLO NAS model used for inference.
    batch (list): Batch of inputs for processing.

Examples:
    >>> from ultralytics import NAS
    >>> model = NAS("yolo_nas_s")
    >>> predictor = model.predictor

    Assume that raw_preds, img, orig_imgs are available
    >>> results = predictor.postprocess(raw_preds, img, orig_imgs)

Notes:
    Typically, this class is not instantiated directly. It is used internally within the NAS class.
c                 óº   >• [         R                  " US   S   5      n[        R                  " XAS   S   4S5      R	                  SSS5      n[
        TU ]  XRU5      $ )a’  
Postprocess NAS model predictions to generate final detection results.

This method takes raw predictions from a YOLO NAS model, converts bounding box formats, and applies
post-processing operations to generate the final detection results compatible with Ultralytics
result visualization and analysis tools.

Args:
    preds_in (list): Raw predictions from the NAS model, typically containing bounding boxes and class scores.
    img (torch.Tensor): Input image tensor that was fed to the model, with shape (B, C, H, W).
    orig_imgs (list | torch.Tensor | np.ndarray): Original images before preprocessing, used for scaling
        coordinates back to original dimensions.

Returns:
    (list): List of Results objects containing the processed predictions for each image in the batch.

Examples:
    >>> predictor = NAS("yolo_nas_s").predictor
    >>> results = predictor.postprocess(raw_preds, img, orig_imgs)
r   é   éÿÿÿÿé   )r   Ú	xyxy2xywhÚtorchÚcatÚpermuteÚsuperÚpostprocess)ÚselfÚpreds_inÚimgÚ	orig_imgsÚboxesÚpredsÚ	__class__s         €ÚX/home/james-whalen/.local/lib/python3.13/site-packages/ultralytics/models/nas/predict.pyr   ÚNASPredictor.postprocess#   sW   ø€ ô* —’˜h q™k¨!™nÓ-ˆÜ—	’	˜5¨1¡+¨a¡.Ð1°2Ó6×>Ñ>¸qÀ!ÀQÓGˆÜ‰wÑ" 5¨yÓ9Ð9ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r   	   s   ø† ñ÷2:ó :r   r   )r   Ú&ultralytics.models.yolo.detect.predictr   Úultralytics.utilsr   r   r   r   r   Ú<module>r&      s   ðó å EÝ !ô1:Ð%õ 1:r   