Compare commits

..

No commits in common. "a7c6aaacd30bbec02b6fa5d531623ade7b3ade4f" and "5bf60e4579a375063e3cc04fcebe17834ba69ef4" have entirely different histories.

4 changed files with 73 additions and 105 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -290,49 +290,49 @@ class Track:
t.predictions,
t.fps/step_size)
# def get_binned(self, bin_size=.5, remove_overlap=True):
# """
# For an experiment: what if we predict using only concrete positions, by mapping
# dx,dy to a grid. Thus prediction can be for 8 moves, or rather headings
# see ~/notes/attachments example svg
# """
def get_binned(self, bin_size=.5, remove_overlap=True):
"""
For an experiment: what if we predict using only concrete positions, by mapping
dx,dy to a grid. Thus prediction can be for 8 moves, or rather headings
see ~/notes/attachments example svg
"""
# new_history: List[Detection] = []
# for i, (det0, det1) in enumerate(zip(self.history[:-1], self.history[1:]):
# if i == 0:
# new_history.append(det0)
# continue
# if abs(det1.x - new_history[-1].x) < bin_size or abs(det1.y - new_history[-1].y) < bin_size:
# continue
new_history: List[Detection] = []
for i, (det0, det1) in enumerate(zip(self.history[:-1], self.history[1:]):
if i == 0:
new_history.append(det0)
continue
if abs(det1.x - new_history[-1].x) < bin_size or abs(det1.y - new_history[-1].y) < bin_size:
continue
# # det1 falls outside of the box [-bin_size:+bin_size] around last detection
# det1 falls outside of the box [-bin_size:+bin_size] around last detection
# # 1. Interpolate exact point between det0 and det1 that this happens
# if abs(det1.x - new_history[-1].x) >= bin_size:
# if det1.x - new_history[-1].x >= bin_size:
# # det1 left of last
# x = new_history[-1].x + bin_size
# f = inv_lerp(det0.x, det1.x, x)
# elif new_history[-1].x - det1.x >= bin_size:
# # det1 left of last
# x = new_history[-1].x - bin_size
# f = inv_lerp(det0.x, det1.x, x)
# y = lerp(det0.y, det1.y, f)
# if abs(det1.y - new_history[-1].y) >= bin_size:
# if det1.y - new_history[-1].y >= bin_size:
# # det1 left of last
# y = new_history[-1].y + bin_size
# f = inv_lerp(det0.y, det1.y, x)
# elif new_history[-1].y - det1.y >= bin_size:
# # det1 left of last
# y = new_history[-1].y - bin_size
# f = inv_lerp(det0.y, det1.y, x)
# x = lerp(det0.x, det1.x, f)
# 1. Interpolate exact point between det0 and det1 that this happens
if abs(det1.x - new_history[-1].x) >= bin_size:
if det1.x - new_history[-1].x >= bin_size:
# det1 left of last
x = new_history[-1].x + bin_size
f = inv_lerp(det0.x, det1.x, x)
elif new_history[-1].x - det1.x >= bin_size:
# det1 left of last
x = new_history[-1].x - bin_size
f = inv_lerp(det0.x, det1.x, x)
y = lerp(det0.y, det1.y, f)
if abs(det1.y - new_history[-1].y) >= bin_size:
if det1.y - new_history[-1].y >= bin_size:
# det1 left of last
y = new_history[-1].y + bin_size
f = inv_lerp(det0.y, det1.y, x)
elif new_history[-1].y - det1.y >= bin_size:
# det1 left of last
y = new_history[-1].y - bin_size
f = inv_lerp(det0.y, det1.y, x)
x = lerp(det0.x, det1.x, f)
# # 2. Find closest point on rectangle (rectangle's four corners, or 4 midpoints)
# points = [[bin_size, 0], [bin_size, bin_size], [0, bin_size], [-bin_size, bin_size], [-bin_size, 0], [-bin_size, -bin_size], [0, -bin_size], [bin_size, -bin_size]]
# # todo Offsets to points:[ history for in points]
# 2. Find closest point on rectangle (rectangle's four corners, or 4 midpoints)
points = [[bin_size, 0], [bin_size, bin_size], [0, bin_size], [-bin_size, bin_size], [-bin_size, 0], [-bin_size, -bin_size], [0, -bin_size], [bin_size, -bin_size]]
# todo Offsets to points:[ history for in points]
def to_trajectron_node(self, camera: Camera, env: Environment) -> Node:

View file

@ -11,7 +11,7 @@ import pandas as pd
import trap.tracker
from trap.config import parser
from trap.frame_emitter import Camera, Detection, DetectionState, video_src_from_config, Frame
from trap.tracker import DETECTOR_YOLOv8, FinalDisplacementFilter, Smoother, TrackReader, _yolov8_track, Track, TrainingDataWriter, Tracker, read_tracks_json
from trap.tracker import DETECTOR_YOLOv8, Smoother, TrackReader, _yolov8_track, Track, TrainingDataWriter, Tracker, read_tracks_json
from collections import defaultdict
import logging
@ -297,9 +297,6 @@ def blacklist_tracks():
path: Path = config.save_for_training
reader = TrackReader(path, config.camera.fps, exclude_whitelisted = True)
tracks = [t for t in reader]
filter = FinalDisplacementFilter(2.0)
tracks = filter.apply(tracks, config.camera)
# blacklist_file = path / "blacklist.jsonl"
# whitelist_file = path / "whitelist.jsonl" # for skipping
# tracks_file = path / "tracks.json"
@ -314,7 +311,7 @@ def blacklist_tracks():
# whitelist = []
smoother = Smoother()
try:
for track in tqdm.tqdm(tracks):
for track in reader:
if len(track.history) < 5:
continue