Ë
    ëÓ^jé  ã                   óZ   — d Z ddlmZ ddlZdeeeef      dedee   deeeef      fd„Z	y)	z?Confidence-threshold sweep for precision/recall/F1 computation.é    )ÚAnyNÚper_class_dataÚconf_thresholdsÚclasses_with_gtÚreturnc                 óÈ  — t        | «      }g }|D �]¿  }g }g }g }t        |«      D ]Ï  }	| |	   }
|
d   }|
d   }|
d   }|
d   }||k\  }|| z  }||   }t        j                  |dk7  «      }t        j                  |dk(  «      }||z
  }||z   dkD  r|||z   z  nd}||z   dkD  r|||z   z  nd}||z   dkD  rd|z  |z  ||z   z  nd}|j	                  |«       |j	                  |«       |j	                  |«       ŒÑ t        |«      dkD  rst        j
                  |D �	cg c]  }	||	   ‘Œ	 c}	«      }t        j
                  |D �	cg c]  }	||	   ‘Œ	 c}	«      }t        j
                  |D �	cg c]  }	||	   ‘Œ	 c}	«      }nd}d}d}|j	                  ||||t        j                  |«      t        j                  |«      t        j                  |«      dœ«       �ŒÂ |S c c}	w c c}	w c c}	w )	uP  Sweep confidence thresholds and compute precision/recall/F1 at each.

    Args:
        per_class_data: Per-class matching data list indexed by class id.
            Each entry is a dict with keys ``"scores"``, ``"matches"``, ``"ignore"``, and ``"total_gt"``.
        conf_thresholds: Iterable of float confidence thresholds to evaluate.
        classes_with_gt: List of class indices that have at least one GT instance â€” used for macro-averaging.

    Returns:
        List of result dicts, one per threshold, each containing:
            - ``"confidence_threshold"``: float
            - ``"macro_f1"``: float
            - ``"macro_precision"``: float
            - ``"macro_recall"``: float
            - ``"per_class_prec"``: float ndarray
            - ``"per_class_rec"``: float ndarray
            - ``"per_class_f1"``: float ndarray
    ÚscoresÚmatchesÚignoreÚtotal_gtr   g        é   )Úconfidence_thresholdÚmacro_f1Úmacro_precisionÚmacro_recallÚper_class_precÚper_class_recÚper_class_f1)ÚlenÚrangeÚnpÚsumÚappendÚmeanÚarray)r   r   r   Únum_classesÚresultsÚconf_threshÚper_class_precisionsÚper_class_recallsÚper_class_f1sÚkÚdatar	   r
   r   r   Úabove_threshÚvalidÚvalid_matchesÚtpÚfpÚfnÚ	precisionÚrecallÚf1r   r   r   s                              úe/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/rfdetr/evaluation/f1_sweep.pyÚsweep_confidence_thresholdsr.      s  € ô. �nÓ%€KØ€Gà&ó 0
ˆØ!ÐØÐØˆä�{Ó#ò 	%ˆAØ! !Ñ$ˆDØ˜(‘^ˆFØ˜9‘oˆGØ˜(‘^ˆFØ˜JÑ'ˆHà! [Ñ0ˆLØ  F 7Ñ*ˆEà# E™NˆMä—‘˜¨Ñ*Ó+ˆBÜ—‘˜¨Ñ*Ó+ˆBØ˜B‘ˆBà+-°©7°aª-˜˜b 2™gš¸SˆIØ(*¨R©°1¢}�R˜2 ™7’^¸#ˆFØCLÈvÑCUÐYZÒBZ��Y‘ Ñ'¨9°vÑ+=Ò>Ð`cˆBà ×'Ñ'¨	Ô2Ø×$Ñ$ VÔ,Ø× Ñ  Õ$ð-	%ô0 ˆÓ !Ò#Ü Ÿg™gÈÖ&XÀ1Ð';¸AÓ'>Ò&XÓYˆOÜŸ7™7À/Ö#R¸QÐ$5°aÓ$8Ò#RÓSˆLÜ—w‘w¸/ÖJ°Q ¨aÓ 0ÒJÓK‰Hà!ˆOØˆLØˆHà�‰à(3Ø$Ø#2Ø ,Ü"$§(¡(Ð+?Ó"@Ü!#§¡Ð*;Ó!<Ü "§¡¨Ó 7ñö
	
ðM0
ðd €Nùò) 'YùÚ#RùÚJs   ÄG
Ä>G
Å$G
)
Ú__doc__Útypingr   Únumpyr   ÚlistÚdictÚstrÚintr.   © ó    r-   ú<module>r8      s]   ðñ Få ã ðLØ˜˜c 3˜h™Ñ(ðLàðLð ˜#‘YðLð 
ˆ$ˆs�Cˆx‰.Ñô	Lr7   