Mercurial > hg > nsaunier > traffic-intelligence
annotate scripts/clean-ground-truth.py @ 1106:799ef82caa1a v0.2.4
added code to compute bounding rectangle around each user
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Fri, 15 Mar 2019 15:58:37 -0400 |
| parents | 933670761a57 |
| children |
| 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)) |
