Spaces:
Runtime error
Runtime error
Commit ·
fb7d89a
1
Parent(s): ac33b94
Reversed tracking
Browse files- inference.py +3 -3
- lib/fish_eye/tracker.py +4 -4
- scripts/detect_frames.py +1 -1
- scripts/track_detection.py +2 -2
inference.py
CHANGED
|
@@ -330,7 +330,7 @@ def do_tracking(all_preds, image_meter_width, image_meter_height, gp=None, max_a
|
|
| 330 |
|
| 331 |
return json_data
|
| 332 |
|
| 333 |
-
def do_associative_tracking(low_preds, high_preds, image_meter_width, image_meter_height,
|
| 334 |
|
| 335 |
if (gp): gp(0, "Tracking...")
|
| 336 |
|
|
@@ -342,11 +342,11 @@ def do_associative_tracking(low_preds, high_preds, image_meter_width, image_mete
|
|
| 342 |
'image_meter_width': image_meter_width,
|
| 343 |
'image_meter_height': image_meter_height
|
| 344 |
}
|
| 345 |
-
tracker = Tracker(clip_info, algorithm=Associate,
|
| 346 |
|
| 347 |
# Run tracking
|
| 348 |
with tqdm(total=len(low_preds), desc="Running tracking", ncols=0, disable=not verbose) as pbar:
|
| 349 |
-
for i, key in enumerate(sorted(low_preds.keys(), reverse=
|
| 350 |
if gp: gp(i / len(low_preds), pbar.__str__())
|
| 351 |
low_boxes = low_preds[key]
|
| 352 |
high_boxes = high_preds[key]
|
|
|
|
| 330 |
|
| 331 |
return json_data
|
| 332 |
|
| 333 |
+
def do_associative_tracking(low_preds, high_preds, image_meter_width, image_meter_height, reverse=False, gp=None, max_age=MAX_AGE, iou_thres=IOU_THRES, min_hits=MIN_HITS, min_length=MIN_LENGTH, verbose=True):
|
| 334 |
|
| 335 |
if (gp): gp(0, "Tracking...")
|
| 336 |
|
|
|
|
| 342 |
'image_meter_width': image_meter_width,
|
| 343 |
'image_meter_height': image_meter_height
|
| 344 |
}
|
| 345 |
+
tracker = Tracker(clip_info, algorithm=Associate, reverse=reverse, args={ 'max_age': max_age, 'min_hits': 0, 'iou_threshold': iou_thres}, min_hits=min_hits)
|
| 346 |
|
| 347 |
# Run tracking
|
| 348 |
with tqdm(total=len(low_preds), desc="Running tracking", ncols=0, disable=not verbose) as pbar:
|
| 349 |
+
for i, key in enumerate(sorted(low_preds.keys(), reverse=reverse)):
|
| 350 |
if gp: gp(i / len(low_preds), pbar.__str__())
|
| 351 |
low_boxes = low_preds[key]
|
| 352 |
high_boxes = high_preds[key]
|
lib/fish_eye/tracker.py
CHANGED
|
@@ -9,13 +9,13 @@ from sort import Sort
|
|
| 9 |
from associative import Associate
|
| 10 |
|
| 11 |
class Tracker:
|
| 12 |
-
def __init__(self, clip_info, algorithm=Sort, args={'max_age':1, 'min_hits':0, 'iou_threshold':0.05}, min_hits=3,
|
| 13 |
self.algorithm = algorithm(**args)
|
| 14 |
self.fish_ids = Counter()
|
| 15 |
-
self.
|
| 16 |
self.min_hits = min_hits
|
| 17 |
self.json_data = deepcopy(clip_info)
|
| 18 |
-
if
|
| 19 |
self.frame_id = self.json_data['end_frame']
|
| 20 |
else:
|
| 21 |
self.frame_id = self.json_data['start_frame']
|
|
@@ -63,7 +63,7 @@ class Tracker:
|
|
| 63 |
'frame_num': self.frame_id,
|
| 64 |
'fish': new_frame_entries
|
| 65 |
})
|
| 66 |
-
if self.
|
| 67 |
self.frame_id -= 1
|
| 68 |
else:
|
| 69 |
self.frame_id += 1
|
|
|
|
| 9 |
from associative import Associate
|
| 10 |
|
| 11 |
class Tracker:
|
| 12 |
+
def __init__(self, clip_info, algorithm=Sort, args={'max_age':1, 'min_hits':0, 'iou_threshold':0.05}, min_hits=3, reverse=False):
|
| 13 |
self.algorithm = algorithm(**args)
|
| 14 |
self.fish_ids = Counter()
|
| 15 |
+
self.reverse = reverse
|
| 16 |
self.min_hits = min_hits
|
| 17 |
self.json_data = deepcopy(clip_info)
|
| 18 |
+
if reverse:
|
| 19 |
self.frame_id = self.json_data['end_frame']
|
| 20 |
else:
|
| 21 |
self.frame_id = self.json_data['start_frame']
|
|
|
|
| 63 |
'frame_num': self.frame_id,
|
| 64 |
'fish': new_frame_entries
|
| 65 |
})
|
| 66 |
+
if self.reverse:
|
| 67 |
self.frame_id -= 1
|
| 68 |
else:
|
| 69 |
self.frame_id += 1
|
scripts/detect_frames.py
CHANGED
|
@@ -31,7 +31,7 @@ def main(args, verbose=True):
|
|
| 31 |
model, device = setup_model(args.weights)
|
| 32 |
|
| 33 |
locations = [
|
| 34 |
-
"kenai-
|
| 35 |
]
|
| 36 |
for loc in locations:
|
| 37 |
|
|
|
|
| 31 |
model, device = setup_model(args.weights)
|
| 32 |
|
| 33 |
locations = [
|
| 34 |
+
"kenai-rightbank"
|
| 35 |
]
|
| 36 |
for loc in locations:
|
| 37 |
|
scripts/track_detection.py
CHANGED
|
@@ -42,7 +42,7 @@ def main(args, config={}, verbose=True):
|
|
| 42 |
|
| 43 |
|
| 44 |
locations = [
|
| 45 |
-
"kenai-
|
| 46 |
]
|
| 47 |
for loc in locations:
|
| 48 |
|
|
@@ -109,7 +109,7 @@ def track(in_loc_dir, out_loc_dir, metadata_path, seq, config, verbose):
|
|
| 109 |
high_outputs = do_suppression(inference, conf_thres=config['high_conf_threshold'], iou_thres=config['nms_iou'], verbose=verbose)
|
| 110 |
high_preds, real_width, real_height = format_predictions(image_shapes, high_outputs, width, height, verbose=verbose)
|
| 111 |
|
| 112 |
-
results = do_associative_tracking(low_preds, high_preds, image_meter_width, image_meter_height, min_length=config['min_length'], max_age=config['max_age'], iou_thres=config['iou_threshold'], min_hits=config['min_hits'], verbose=verbose)
|
| 113 |
else:
|
| 114 |
outputs = do_suppression(inference, conf_thres=config['conf_threshold'], iou_thres=config['nms_iou'], verbose=verbose)
|
| 115 |
|
|
|
|
| 42 |
|
| 43 |
|
| 44 |
locations = [
|
| 45 |
+
"kenai-rightbank"
|
| 46 |
]
|
| 47 |
for loc in locations:
|
| 48 |
|
|
|
|
| 109 |
high_outputs = do_suppression(inference, conf_thres=config['high_conf_threshold'], iou_thres=config['nms_iou'], verbose=verbose)
|
| 110 |
high_preds, real_width, real_height = format_predictions(image_shapes, high_outputs, width, height, verbose=verbose)
|
| 111 |
|
| 112 |
+
results = do_associative_tracking(low_preds, high_preds, image_meter_width, image_meter_height, reverse=False, min_length=config['min_length'], max_age=config['max_age'], iou_thres=config['iou_threshold'], min_hits=config['min_hits'], verbose=verbose)
|
| 113 |
else:
|
| 114 |
outputs = do_suppression(inference, conf_thres=config['conf_threshold'], iou_thres=config['nms_iou'], verbose=verbose)
|
| 115 |
|