Реализуйте детерминированную сводку сопоставления предсказаний object detection один к одному.
Дана IoU-матрица: строки соответствуют ground-truth объектам, колонки — предсказанным bounding boxes. Пару можно сопоставить только если её IoU не меньше threshold. Используйте жадное сопоставление по убыванию IoU; при равенстве сначала выбирайте меньший индекс ground-truth, затем меньший индекс предсказания. Каждый ground-truth объект и каждое предсказание можно использовать не больше одного раза.
Верните:
[true_positives, false_positives, false_negatives, mean_matched_iou]
Если сопоставлений нет, mean_matched_iou должен быть 0.0.
def greedy_iou_matching_summary(iou_matrix: list[list[float]], threshold: float) -> list[float | int]:iou_matrix = [[0.9,0.1],[0.4,0.8]]threshold = 0.5[2,0,0,0.8500000000000001]Два корректных сопоставления
iou_matrix = [[0.6],[0.6]]threshold = 0.5[1,0,1,0.6]Одно предсказание не может сопоставиться с двумя ground-truth boxes
iou_matrix = [[0.2,0.1],[0,0.4]]threshold = 0.5[0,2,2,0]Ни один IoU не достигает порога