File size: 1,540 Bytes
930daa4
 
 
137b0e5
930daa4
 
137b0e5
930daa4
137b0e5
930daa4
 
 
 
 
 
 
 
137b0e5
f66e368
137b0e5
48a1df0
137b0e5
 
 
 
 
 
 
 
 
 
 
 
 
930daa4
137b0e5
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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")