def frame_to_skel(frame, _id): frame_num = [val[4] for val in frame.values()][0] skel = Skeleton(_id, frame_num) for key, val in frame.items(): skel.addJoint(Joint(key, Position( val[CSVColumn['X_coord']], val[CSVColumn['Y_coord']]), ConfidenceState[val[CSVColumn['JointConfidence']]])) return skel
def build_reference_skeleton(pos_file): with open(pos_file, 'r') as f: reader = csv.reader(f) skel = Skeleton() for row in reader: skel.addJoint(Joint(row[CSVColumn['JointType']], Position( row[CSVColumn['X_coord']], row[CSVColumn['Y_coord']]), ConfidenceState[row[CSVColumn['JointConfidence']]])) return skel
def build_time_series(joints_file): with open(joints_file, 'r') as f: reader = csv.reader(f) bodies = {} prev_time = -1 prev_id = -1 skel = None for row in reader: body_id = row[CSVColumn['Skeleton_Id']] time = row[CSVColumn['Time']] frame = row[CSVColumn['Frame']] if time != prev_time or body_id != prev_id: skel = Skeleton(body_id, frame) skel.addJoint(Joint(row[CSVColumn['JointType']], Position( row[CSVColumn['X_coord']], row[CSVColumn['Y_coord']]), ConfidenceState[row[CSVColumn['JointConfidence']]])) if body_id not in bodies: bodies[body_id] = BodyTimeSeries(body_id) bodies[body_id].addTimeInstance(time, skel) prev_id = body_id prev_time = time return list(bodies.values())