Spaces:
Sleeping
Sleeping
import torch | |
import numpy as np | |
import fiftyone as fo | |
# from box_metrics import BoxMetrics | |
from seametrics.fo_utils.utils import fo_to_payload | |
from tqdm import tqdm | |
import evaluate | |
tags = [] | |
dataset_name = "SENTRY_VIDEOS_DATASET_QA" | |
model = "cerulean-level-17_11_2023_RL_SPLIT_ep147_CNN" | |
det_gt_field = "ground_truth_det" | |
dataset = fo.load_dataset(dataset_name) | |
dataset_view = fo.load_dataset(dataset_name).match_tags(tags) if tags else fo.load_dataset(dataset_name) | |
sequences = dataset_view.distinct("sequence") | |
# bbox_metric = BoxMetrics(max_iou=0.01) | |
bbox_metric = evaluate.load("SEA-AI/box-metrics") | |
for sequence in tqdm(sequences): | |
try: | |
payload = fo_to_payload(dataset = dataset_name, | |
gt_field = det_gt_field, | |
models = [model], | |
tracking_mode = False, | |
sequence_list = [sequence], | |
group_slices = ["thermal_wide"], | |
excluded_classes = ["SUN_REFLECTIONS"], | |
) | |
bbox_metric.add_payload(payload) | |
except Exception as e: | |
print(f"Error in {sequence}: {e}") | |
result = bbox_metric.compute() | |
summary = bbox_metric.summarize(result) | |
for sequence in result: | |
print(f"Sequence: {sequence}") | |
for model in result[sequence]: | |
print(f"Model: {model}") | |
for metric in result[sequence][model]: | |
print(f"{metric}: {result[sequence][model][metric]}") | |
print("\n") |