Spaces:
Runtime error
Runtime error
Update face_analysis.py
Browse files- face_analysis.py +1 -27
face_analysis.py
CHANGED
|
@@ -24,7 +24,7 @@ def cluster_faces(embeddings):
|
|
| 24 |
return np.zeros(len(embeddings), dtype=int)
|
| 25 |
|
| 26 |
X = np.stack(embeddings)
|
| 27 |
-
dbscan = DBSCAN(eps=0.
|
| 28 |
clusters = dbscan.fit_predict(X)
|
| 29 |
|
| 30 |
if np.all(clusters == -1):
|
|
@@ -40,29 +40,3 @@ def organize_faces_by_person(embeddings_by_frame, clusters, aligned_faces_folder
|
|
| 40 |
src = os.path.join(aligned_faces_folder, f"frame_{frame_num}_face.jpg")
|
| 41 |
dst = os.path.join(person_folder, f"frame_{frame_num}_face.jpg")
|
| 42 |
shutil.copy(src, dst)
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
def draw_facial_landmarks(image, landmarks):
|
| 46 |
-
mp_face_mesh = mp.solutions.face_mesh
|
| 47 |
-
mp_drawing = mp.solutions.drawing_utils
|
| 48 |
-
|
| 49 |
-
# Adjust these values to make the drawing thinner and less obtrusive
|
| 50 |
-
connection_drawing_spec = mp_drawing.DrawingSpec(color=(255, 0, 0), thickness=1)
|
| 51 |
-
|
| 52 |
-
if landmarks:
|
| 53 |
-
# Create a blank image with the same dimensions as the input image
|
| 54 |
-
connections_layer = np.zeros_like(image)
|
| 55 |
-
|
| 56 |
-
# Draw connections on the blank image
|
| 57 |
-
mp_drawing.draw_landmarks(
|
| 58 |
-
image=connections_layer,
|
| 59 |
-
landmark_list=landmarks,
|
| 60 |
-
connections=mp_face_mesh.FACEMESH_TESSELATION,
|
| 61 |
-
landmark_drawing_spec=None, # Set to None to avoid drawing points
|
| 62 |
-
connection_drawing_spec=connection_drawing_spec)
|
| 63 |
-
|
| 64 |
-
# Blend the connections layer with the original image
|
| 65 |
-
alpha = 0.25
|
| 66 |
-
image = cv2.addWeighted(image, 1, connections_layer, alpha, 0)
|
| 67 |
-
|
| 68 |
-
return image
|
|
|
|
| 24 |
return np.zeros(len(embeddings), dtype=int)
|
| 25 |
|
| 26 |
X = np.stack(embeddings)
|
| 27 |
+
dbscan = DBSCAN(eps=0.3, min_samples=5, metric='cosine')
|
| 28 |
clusters = dbscan.fit_predict(X)
|
| 29 |
|
| 30 |
if np.all(clusters == -1):
|
|
|
|
| 40 |
src = os.path.join(aligned_faces_folder, f"frame_{frame_num}_face.jpg")
|
| 41 |
dst = os.path.join(person_folder, f"frame_{frame_num}_face.jpg")
|
| 42 |
shutil.copy(src, dst)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|