eye-blink-auth / FaceMeshModule.py
Loki1one's picture
Fix MediaPipe GPU crash and Gradio HF deployment issues
b10a28a
Raw
History Blame Contribute Delete
1.25 kB
import os
os.environ["MEDIAPIPE_DISABLE_GPU"] = "1"
import cv2 as cv
import mediapipe as mp
assert hasattr(mp, "solutions"), "MediaPipe solutions not available"
class FaceMeshGenerator:
def __init__(self, static_mode=False, max_faces=1, refine_landmarks=True):
self.mp_face_mesh = mp.solutions.face_mesh
self.face_mesh = self.mp_face_mesh.FaceMesh(
static_image_mode=static_mode,
max_num_faces=max_faces,
refine_landmarks=refine_landmarks,
min_detection_confidence=0.5,
min_tracking_confidence=0.5
)
def create_face_mesh(self, frame, draw=True):
img_rgb = cv.cvtColor(frame, cv.COLOR_BGR2RGB)
results = self.face_mesh.process(img_rgb)
landmarks = []
if results.multi_face_landmarks:
for face_landmarks in results.multi_face_landmarks:
h, w, _ = frame.shape
for lm in face_landmarks.landmark:
x, y = int(lm.x * w), int(lm.y * h)
landmarks.append((x, y))
if draw:
for point in landmarks:
cv.circle(frame, point, 1, (0, 255, 0), cv.FILLED)
return frame, landmarks