Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import cv2 | |
| import mediapipe as mp | |
| mp_drawing = mp.solutions.drawing_utils | |
| mp_drawing_styles = mp.solutions.drawing_styles | |
| mp_face_mesh = mp.solutions.face_mesh | |
| drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1) | |
| def face_mesh( image ): | |
| with mp_face_mesh.FaceMesh( max_num_faces=1, refine_landmarks=True, min_detection_confidence=0.5 ) as face_mesh: | |
| # Convert the BGR image to RGB before processing. | |
| results = face_mesh.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) | |
| # Print and draw face mesh landmarks on the image. | |
| if results.multi_face_landmarks: | |
| annotated_image = image.copy() | |
| for face_landmarks in results.multi_face_landmarks: | |
| mp_drawing.draw_landmarks( | |
| image=annotated_image, | |
| landmark_list=face_landmarks, | |
| connections=mp_face_mesh.FACEMESH_TESSELATION, | |
| landmark_drawing_spec=None, | |
| connection_drawing_spec=mp_drawing_styles | |
| .get_default_face_mesh_tesselation_style()) | |
| mp_drawing.draw_landmarks( | |
| image=annotated_image, | |
| landmark_list=face_landmarks, | |
| connections=mp_face_mesh.FACEMESH_CONTOURS, | |
| landmark_drawing_spec=None, | |
| connection_drawing_spec=mp_drawing_styles | |
| .get_default_face_mesh_contours_style()) | |
| mp_drawing.draw_landmarks( | |
| image=annotated_image, | |
| landmark_list=face_landmarks, | |
| connections=mp_face_mesh.FACEMESH_IRISES, | |
| landmark_drawing_spec=None, | |
| connection_drawing_spec=mp_drawing_styles | |
| .get_default_face_mesh_iris_connections_style()) | |
| return annotated_image | |
| with gr.Blocks(title="Face Mesh | Data Science Dojo", css="footer {display:none !important} .output-markdown{display:none !important}") as demo: | |
| with gr.Row(): | |
| with gr.Column(): | |
| input = gr.Webcam(streaming=True) | |
| with gr.Column(): | |
| output = gr.outputs.Image() | |
| input.stream(fn=face_mesh, | |
| inputs = input, | |
| outputs = output) | |
| demo.launch(debug=True) |