(self, pred_scenes)
| 12 | return gt_scene_list |
| 13 | |
| 14 | def evaluate_performance(self, pred_scenes): |
| 15 | total_correct = 0 |
| 16 | total_pred = 0 |
| 17 | total_gt = 0 |
| 18 | assert pred_scenes |
| 19 | |
| 20 | for scene_file, pred in pred_scenes.items(): |
| 21 | gt_scene_list = self._load_scenes(scene_file) |
| 22 | pred_list = pred["pred_scenes"] |
| 23 | total_correct += len(set(pred_list) & set(gt_scene_list)) |
| 24 | total_pred += len(pred_list) |
| 25 | total_gt += len(gt_scene_list) |
| 26 | |
| 27 | recall = total_correct / total_gt |
| 28 | precision = total_correct / total_pred if total_pred != 0 else 0 |
| 29 | f1 = 2 * recall * precision / (recall + precision) if (recall + precision) != 0 else 0 |
| 30 | avg_elapsed = mean([x["elapsed"] for x in pred_scenes.values()]) |
| 31 | result = { |
| 32 | "recall": recall * 100, |
| 33 | "precision": precision * 100, |
| 34 | "f1": f1 * 100, |
| 35 | "elapsed": avg_elapsed, |
| 36 | } |
| 37 | return result |
no test coverage detected