diff --git a/actions/run.py b/actions/run.py index 86268952d53cc418889de2c3877ba142488cea80..c0249c0d2049fc7acba8ced8c7b83f0ec5bce2c2 100644 --- a/actions/run.py +++ b/actions/run.py @@ -34,11 +34,18 @@ def to_pose_25(pose_18): # 'LElbow', 'LWrist', 'RShoulder', 'RElbow', 'RWrist, 'Thorax' # Pose 25: https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Shahroudy_NTU_RGBD_A_CVPR_2016_paper.pdf + thorax_nose_v = pose_18[9] - pose_18[17] + left_right_should_v = pose_18[14] - pose_18[11] + correction_v = np.cross(left_right_should_v, thorax_nose_v) + correction_v = correction_v / np.linalg.norm(correction_v) * np.linalg.norm(thorax_nose_v) * 0.25 + thorax_nose_v = (thorax_nose_v + correction_v) * 0.97 + pose = np.zeros((25, 3), np.float32) pose[0, :] = pose_18[0, :] pose[1, :] = pose_18[0, :] + (pose_18[17, :] - pose_18[0, :]) * 4 / 7 # между 0 20 но чуть выше - 4 на 7 pose[2, :] = pose_18[8, :] - pose[3, :] = pose_18[9, :] # почти нос, только назад нужно - пока можно носу установить + # pose[3, :] = pose_18[9, :] # почти нос, только назад нужно - пока можно носу установить + pose[3, :] = pose_18[17] + thorax_nose_v pose[4, :] = pose_18[11, :] pose[5, :] = pose_18[12, :] pose[6, :] = pose_18[13, :]