Spaces:
Runtime error
Runtime error
import mediapipe as mp | |
from mediapipe import solutions | |
from mediapipe.framework.formats import landmark_pb2 | |
import numpy as np | |
def draw_mediapipe_landmarks_on_image(rgb_image: object, face_landmarks_list: object) -> object: | |
annotated_image = np.copy(rgb_image) | |
# Loop through the detected faces to visualize. | |
for idx in range(len(face_landmarks_list)): | |
face_landmarks = face_landmarks_list[idx] | |
# Draw the face landmarks. | |
face_landmarks_proto = landmark_pb2.NormalizedLandmarkList() | |
face_landmarks_proto.landmark.extend([ | |
landmark_pb2.NormalizedLandmark(x=landmark.x, y=landmark.y, z=landmark.z) for landmark in face_landmarks | |
]) | |
# print(len(mp.solutions.face_mesh.FACEMESH_TESSELATION)) | |
# exit() | |
solutions.drawing_utils.draw_landmarks( | |
image=annotated_image, | |
landmark_list=face_landmarks_proto, | |
connections=mp.solutions.face_mesh.FACEMESH_TESSELATION, | |
# connections=FACEMESH_NOSE, | |
landmark_drawing_spec=None, | |
connection_drawing_spec=mp.solutions.drawing_styles.get_default_face_mesh_tesselation_style() | |
) | |
solutions.drawing_utils.draw_landmarks( | |
image=annotated_image, | |
landmark_list=face_landmarks_proto, | |
connections=mp.solutions.face_mesh.FACEMESH_CONTOURS, | |
landmark_drawing_spec=None, | |
connection_drawing_spec=mp.solutions.drawing_styles.get_default_face_mesh_contours_style()) | |
solutions.drawing_utils.draw_landmarks( | |
image=annotated_image, | |
landmark_list=face_landmarks_proto, | |
connections=mp.solutions.face_mesh.FACEMESH_IRISES, | |
landmark_drawing_spec=None, | |
connection_drawing_spec=mp.solutions.drawing_styles.get_default_face_mesh_iris_connections_style()) | |
return annotated_image | |