def project_landmarks_to_shape_model(landmarks): final = [] for lms in landmarks: lms = PointCloud(lms) similarity = AlignmentSimilarity(pca.global_transform.source, lms) projected_target = similarity.pseudoinverse().apply(lms) target = pca.model.reconstruct(projected_target) target = similarity.apply(target) final.append(target.points) return np.array(final).astype(np.float32)