def trackforward(id, frame, tracker, trackid, tracks): frame = int(frame) trackid = int(trackid) job = session.query(Job).get(id) segment = job.segment video = segment.video paths = [path for path in readpaths(tracks) if path is not None] paths = trackutils.totrackpaths(paths) logger.info("Job Id: {0}".format(id)) logger.info("Algorithm: {0}".format(tracker)) start = frame stop = segment.stop outpath = tracking.api.online(tracker, start, stop, video.location, trackid, paths) path = trackutils.fromtrackpath(outpath, job, start, stop) attrs = [(x.attributeid, x.frame, x.value) for x in path.attributes] logger.info("Path: {0}".format(path)) return { "label": 0, "boxes": [tuple(x) for x in path.getboxes()], "attributes": attrs }
def trackbetweenframes(id, leftframe, rightframe, tracker, trackid, tracks): leftframe = int(leftframe) rightframe = int(rightframe) trackid = int(trackid) job = session.query(Job).get(id) segment = job.segment video = segment.video paths = [path for path in readpaths(tracks) if path is not None] paths = trackutils.totrackpaths(paths) logger.info("Job Id: {0}".format(id)) logger.info("Algorithm: {0}".format(tracker)) outpath = tracking.api.bidirectional(tracker, leftframe, rightframe, video.location, trackid, paths) path = trackutils.fromtrackpath(outpath, job, leftframe, rightframe) attrs = [(x.attributeid, x.frame, x.value) for x in path.attributes] logger.info("Path: {0}".format(path)) return { "label": 0, "boxes": [tuple(x) for x in path.getboxes()], "attributes": attrs }
def getboxesforjob(id): job = session.query(Job).get(id) result = [] for path in job.paths: attrs = [(x.attributeid, x.frame, x.value) for x in path.attributes] result.append({"label": path.labelid, "boxes": [tuple(x) for x in path.getboxes()], "attributes": attrs}) return result
def trackfull(id, tracker): job = session.query(Job).get(id) segment = job.segment video = segment.video tracks = tracking.runfulltracker(tracker, segment.start, segment.stop, video.location) allpaths = [convert_track_to_path(segment.start, track, job) for track in tracks] allattrs = [[(x.attributeid, x.frame, x.value) for x in path.attributes] for path in allpaths] return [{ "label": 0, "boxes":[tuple(x) for x in path.getboxes()], "attributes":attrs, } for path, attrs in zip(allpaths, allattrs)]
def trackfull(id, tracker): job = session.query(Job).get(id) segment = job.segment video = segment.video tracks = tracking.runfulltracker(tracker, segment.start, segment.stop, video.location) allpaths = [ convert_track_to_path(segment.start, track, job) for track in tracks ] allattrs = [[(x.attributeid, x.frame, x.value) for x in path.attributes] for path in allpaths] return [{ "label": 0, "boxes": [tuple(x) for x in path.getboxes()], "attributes": attrs, } for path, attrs in zip(allpaths, allattrs)]