def test_pnp(): # Test that facepose can be estimated properly using landmarks + pnp algorithm detector = Detector(face_model="RetinaFace", landmark_model="MobileFaceNet", facepose_model="PnP") bboxes = detector.detect_faces(frame=img01) lms = detector.detect_landmarks(frame=img01, detected_faces=bboxes) poses = detector.detect_facepose(frame=img01, landmarks=lms) pose_to_test = poses[0][0] # first image and first face pitch, roll, yaw = pose_to_test.reshape(-1) assert -10 < pitch < 10 assert -5 < roll < 5 assert -10 < yaw < 10
def test_img2pose(): # Test that both face detection and facepose estimation work detector = Detector(face_model="img2pose", facepose_model="img2pose") # Face detection faces = detector.detect_faces(img01)[0] bbox_x = faces[0][0] assert bbox_x is not None assert len(faces[0]) == 5 assert 180 < bbox_x < 200 # Pose estimation poses = detector.detect_facepose(img01)[0] pose_to_test = poses[0][0] # first image and first face pitch, roll, yaw = pose_to_test.reshape(-1) assert -10 < pitch < 10 assert -5 < roll < 5 assert -10 < yaw < 10