annotate scripts/clean-ground-truth.py @ 1240:bb14f919d1cb

cleaned use of centile (np only) and added info in classify-objects
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Mon, 05 Feb 2024 14:14:14 -0500
parents 933670761a57
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
998
933670761a57 updated code to python 3 (tests pass and scripts run, but non-executed parts of code are probably still not correct)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 782
diff changeset
1 #! /usr/bin/env python3
782
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
2 import argparse
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
3 import pandas as pd
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
4 import sqlite3
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
5 from numpy import min, max
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
6
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
7 #import utils
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
8 #import storage
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
9
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
10 parser = argparse.ArgumentParser(description='The program finds ground truth annotation objects with missing positions (and the times that do not have a position')
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
11 #parser.add_argument('configFilename', help = 'name of the configuration file')
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
12 parser.add_argument('-d', dest = 'databaseFilename', help = 'name of the Ground Truth Sqlite database', required = True)
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
13
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
14 args = parser.parse_args()
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
15
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
16 data = pd.read_sql_query("select object_id, frame_number from bounding_boxes", sqlite3.connect(args.databaseFilename))
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
17 #aggData = data.groupby(["object_id"]).agg([min, max, len])
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
18
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
19 nProblems = 0
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
20 for object_id in data["object_id"].unique():
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
21 tmp = data[data["object_id"] == object_id]
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
22 firstInstant = min(tmp["frame_number"])
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
23 lastInstant = max(tmp["frame_number"])
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
24 if lastInstant-firstInstant != len(tmp)-1:
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
25 nProblems += 1
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
26 times=set(range(firstInstant, lastInstant+1))
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
27 print("Object {} has missing positions at instants: {}".format(object_id, times.difference(tmp["frame_number"])))
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
28
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
29 if nProblems == 0:
08f82be22816 added script to detect issues in ground truth databases
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
30 print("No problems were detected in database {}".format(args.databaseFilename))