Various performance improvements.
This commit is contained in:
@ -288,17 +288,27 @@ def filter_poses(poses3D, poses2D, roomparams, joint_names, drop_few_limbs=True)
|
||||
drop.append(i)
|
||||
continue
|
||||
|
||||
# Drop persons with too small average limb length
|
||||
# Drop persons with too small or high average limb length
|
||||
total_length = 0
|
||||
total_limbs = 0
|
||||
for limb in main_limbs:
|
||||
start_idx = joint_names.index(limb[0])
|
||||
end_idx = joint_names.index(limb[1])
|
||||
if pose[start_idx, -1] < 0.1 or pose[end_idx, -1] < 0.1:
|
||||
continue
|
||||
limb_length = np.linalg.norm(pose[end_idx, :3] - pose[start_idx, :3])
|
||||
total_length += limb_length
|
||||
average_length = total_length / len(main_limbs)
|
||||
total_limbs += 1
|
||||
if total_limbs == 0:
|
||||
drop.append(i)
|
||||
continue
|
||||
average_length = total_length / total_limbs
|
||||
if average_length < 0.1:
|
||||
drop.append(i)
|
||||
continue
|
||||
if average_length > 0.5:
|
||||
drop.append(i)
|
||||
continue
|
||||
|
||||
new_poses3D = []
|
||||
new_poses2D = [[] for _ in range(len(poses2D))]
|
||||
|
||||
Reference in New Issue
Block a user