summaryrefslogtreecommitdiff
path: root/megapixels/app/processors/face_pose.py
diff options
context:
space:
mode:
Diffstat (limited to 'megapixels/app/processors/face_pose.py')
-rw-r--r--megapixels/app/processors/face_pose.py23
1 files changed, 11 insertions, 12 deletions
diff --git a/megapixels/app/processors/face_pose.py b/megapixels/app/processors/face_pose.py
index 5ac510ec..49a39a53 100644
--- a/megapixels/app/processors/face_pose.py
+++ b/megapixels/app/processors/face_pose.py
@@ -21,10 +21,10 @@ class FacePoseDLIB:
pose_types = {'pitch': (0,0,255), 'roll': (255,0,0), 'yaw': (0,255,0)}
def __init__(self):
- pass
+ self.log = logger_utils.Logger.getLogger()
- def pose(self, landmarks, dim):
+ def pose(self, landmarks_norm, dim):
'''Returns face pose information
:param landmarks: (list) of 68 (int, int) xy tuples
:param dim: (tuple|list) of image (width, height)
@@ -55,9 +55,10 @@ class FacePoseDLIB:
# find 6 pose points
pose_points = []
for j, idx in enumerate(pose_points_idx):
- pt = landmarks[idx]
- pose_points.append((pt[0], pt[1]))
- pose_points = np.array(pose_points, dtype='double') # convert to double
+ x,y = landmarks_norm[idx]
+ pt = (int(x*dim[0]), int(y*dim[1]))
+ pose_points.append(pt)
+ pose_points = np.array(pose_points, dtype='double') # convert to double, real dimensions
# create camera matrix
focal_length = dim[0]
@@ -75,18 +76,16 @@ class FacePoseDLIB:
result = {}
# project points
- #if project_points:
pts_im, jac = cv.projectPoints(axis, rot_vec, tran_vec, cam_mat, dist_coeffs)
pts_model, jac2 = cv.projectPoints(model_points, rot_vec, tran_vec, cam_mat, dist_coeffs)
- #result['points_model'] = pts_model
- #result['points_image'] = pts_im
+
result['points'] = {
- 'pitch': pts_im[0],
- 'roll': pts_im[2],
- 'yaw': pts_im[1]
+ 'pitch': list(map(int,pts_im[0][0])),
+ 'roll': list(map(int,pts_im[2][0])),
+ 'yaw': list(map(int,pts_im[1][0]))
}
- result['point_nose'] = tuple(landmarks[pose_points_idx[0]])
+ result['point_nose'] = tuple(map(int,pose_points[0]))
rvec_matrix = cv.Rodrigues(rot_vec)[0]
# convert to degrees