a
    yf                     @   s8   d dl mZ d dlmZ d dlmZ G dd deZdS )    )BasePredictor)Results)opsc                   @   s   e Zd ZdZdd ZdS )DetectionPredictora  
    A class extending the BasePredictor class for prediction based on a detection model.

    Example:
        ```python
        from ultralytics.utils import ASSETS
        from ultralytics.models.yolo.detect import DetectionPredictor

        args = dict(model="yolov8n.pt", source=ASSETS)
        predictor = DetectionPredictor(overrides=args)
        predictor.predict_cli()
        ```
    c              	   C   s   t j|| jj| jj| jj| jj| jjd}t|t	s>t 
|}g }t||| jd D ]^\}}}t |jdd |ddddf |j|ddddf< |t||| jj|d qT|S )zAPost-processes predictions and returns a list of Results objects.)Zagnosticmax_detclassesr      N   )pathnamesZboxes)r   Znon_max_suppressionargsconfZiouZagnostic_nmsr   r   
isinstancelistZconvert_torch2numpy_batchzipbatchZscale_boxesshapeappendr   modelr   )selfpredsZimgZ	orig_imgsresultspredZorig_imgZimg_path r   b/var/www/html/django/DPS/env/lib/python3.9/site-packages/ultralytics/models/yolo/detect/predict.pypostprocess   s    	

:zDetectionPredictor.postprocessN)__name__
__module____qualname____doc__r   r   r   r   r   r      s   r   N)Zultralytics.engine.predictorr   Zultralytics.engine.resultsr   Zultralytics.utilsr   r   r   r   r   r   <module>   s   