eyad222 commited on
Commit
7f114bb
·
verified ·
1 Parent(s): 728dd01

Upload 28 files

Browse files
Files changed (29) hide show
  1. .gitattributes +6 -0
  2. face_recognition_space/app.py +83 -0
  3. face_recognition_space/images/Dr. Marwa Solayman.jpg +0 -0
  4. face_recognition_space/images/Dr. Mohamed Ghoniemy.jpg +0 -0
  5. face_recognition_space/images/Dr.Ahmed-Farouk.jpg +3 -0
  6. face_recognition_space/images/Dr.Khayri.png +0 -0
  7. face_recognition_space/images/EYAD1.jpg +3 -0
  8. face_recognition_space/images/Eng. Abdelrahman Ezzeldin.jpg +0 -0
  9. face_recognition_space/images/Eng. Bassendh Hesham.jpg +0 -0
  10. face_recognition_space/images/Eng. Farah Darwish.jpg +0 -0
  11. face_recognition_space/images/Eng. Habiba Mohamed.jpg +0 -0
  12. face_recognition_space/images/Eng. Hanan Tarek.jpg +0 -0
  13. face_recognition_space/images/Eng. Menna Khaled.jpg +0 -0
  14. face_recognition_space/images/Eng. Moamen Zaher.jpg +0 -0
  15. face_recognition_space/images/Eng. Mohamed Ashraf.jpg +0 -0
  16. face_recognition_space/images/Eng. Mohamed Seif.jpg +0 -0
  17. face_recognition_space/images/Eng. Omnia Fawzi.jpg +0 -0
  18. face_recognition_space/images/Eng. Raghda Ali.jpg +0 -0
  19. face_recognition_space/images/Eyad.jpg +3 -0
  20. face_recognition_space/images/Mrs. Nancy Barakat.jpg +0 -0
  21. face_recognition_space/images/Palmer.jpg +3 -0
  22. face_recognition_space/images/Prof. Ahmed Elshafee.jpg +0 -0
  23. face_recognition_space/images/Prof. Ali El-Bastawissy.png +0 -0
  24. face_recognition_space/images/Prof. Ammar Mohammed.png +3 -0
  25. face_recognition_space/images/Prof. Ayman Ezzat.png +3 -0
  26. face_recognition_space/images/Prof. Mohamed Nagy Saad.jpg +0 -0
  27. face_recognition_space/images/Prof. Wael Gomaa.jpg +0 -0
  28. face_recognition_space/images/messi.jpg +0 -0
  29. face_recognition_space/requirements.txt +4 -0
.gitattributes CHANGED
@@ -33,3 +33,9 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ face_recognition_space/images/Dr.Ahmed-Farouk.jpg filter=lfs diff=lfs merge=lfs -text
37
+ face_recognition_space/images/Eyad.jpg filter=lfs diff=lfs merge=lfs -text
38
+ face_recognition_space/images/EYAD1.jpg filter=lfs diff=lfs merge=lfs -text
39
+ face_recognition_space/images/Palmer.jpg filter=lfs diff=lfs merge=lfs -text
40
+ face_recognition_space/images/Prof.[[:space:]]Ammar[[:space:]]Mohammed.png filter=lfs diff=lfs merge=lfs -text
41
+ face_recognition_space/images/Prof.[[:space:]]Ayman[[:space:]]Ezzat.png filter=lfs diff=lfs merge=lfs -text
face_recognition_space/app.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import cv2
2
+ import os
3
+ import insightface
4
+ import numpy as np
5
+ from collections import deque
6
+
7
+ # Initialize face detector and recognizer
8
+ model = insightface.app.FaceAnalysis(allowed_modules=['detection', 'recognition'])
9
+ model.prepare(ctx_id=0, det_size=(640, 640)) # Use ctx_id=-1 for CPU
10
+
11
+ def normalize(v):
12
+ return v / np.linalg.norm(v)
13
+
14
+ def cosine_similarity(a, b):
15
+ return np.dot(a, b)
16
+
17
+ # Load known faces
18
+ known_embs = []
19
+ names = []
20
+ for fname in os.listdir("images"):
21
+ if fname.lower().endswith(('.jpg', '.png')):
22
+ img = cv2.imread(os.path.join("images", fname))
23
+ faces = model.get(img)
24
+ if faces:
25
+ emb = normalize(faces[0].embedding)
26
+ known_embs.append(emb)
27
+ names.append(os.path.splitext(fname)[0])
28
+ print(f"Loaded {fname}")
29
+ else:
30
+ print(f"No face in {fname}")
31
+
32
+ # Smoothing buffers for each face
33
+ face_buffers = {} # key: face_id, value: deque of embeddings
34
+
35
+ # Start video
36
+ cap = cv2.VideoCapture(0)
37
+ face_id_counter = 0
38
+
39
+ while True:
40
+ ret, frame = cap.read()
41
+ if not ret:
42
+ break
43
+
44
+ faces = model.get(frame)
45
+ current_buffers = {}
46
+
47
+ for i, face in enumerate(faces):
48
+ x1, y1, x2, y2 = face.bbox.astype(int)
49
+ emb = normalize(face.embedding)
50
+
51
+ # Use a temporary ID for each face based on bbox location
52
+ face_id = f"{x1}-{y1}-{x2}-{y2}"
53
+ if face_id not in face_buffers:
54
+ face_buffers[face_id] = deque(maxlen=5)
55
+
56
+ face_buffers[face_id].append(emb)
57
+ current_buffers[face_id] = face_buffers[face_id] # mark as active this frame
58
+
59
+ # Smooth embedding
60
+ avg_emb = normalize(np.mean(face_buffers[face_id], axis=0))
61
+
62
+ # Find best match
63
+ sims = [cosine_similarity(avg_emb, known) for known in known_embs]
64
+ max_idx = np.argmax(sims)
65
+ name = "Unknown"
66
+ if sims[max_idx] > 0.5:
67
+ name = names[max_idx]
68
+
69
+ # Draw result
70
+ cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 200, 0), 2)
71
+ cv2.putText(frame, name, (x1, y1 - 10),
72
+ cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 200, 0), 2)
73
+
74
+ # Remove stale buffers
75
+ face_buffers = {fid: buf for fid, buf in face_buffers.items() if fid in current_buffers}
76
+
77
+ # Show frame
78
+ cv2.imshow("InsightFace Multi-Face Recognition", frame)
79
+ if cv2.waitKey(1) == 27: # ESC key
80
+ break
81
+
82
+ cap.release()
83
+ cv2.destroyAllWindows()
face_recognition_space/images/Dr. Marwa Solayman.jpg ADDED
face_recognition_space/images/Dr. Mohamed Ghoniemy.jpg ADDED
face_recognition_space/images/Dr.Ahmed-Farouk.jpg ADDED

Git LFS Details

  • SHA256: a9965c493b17d1aaf16b0a2f698bf0927987e529b15168958082873d51493766
  • Pointer size: 131 Bytes
  • Size of remote file: 115 kB
face_recognition_space/images/Dr.Khayri.png ADDED
face_recognition_space/images/EYAD1.jpg ADDED

Git LFS Details

  • SHA256: a29cd3a8e1e783ef199829706dbd8b02d431f5a2a8e1980ec2d7a323c3d6ef7f
  • Pointer size: 131 Bytes
  • Size of remote file: 138 kB
face_recognition_space/images/Eng. Abdelrahman Ezzeldin.jpg ADDED
face_recognition_space/images/Eng. Bassendh Hesham.jpg ADDED
face_recognition_space/images/Eng. Farah Darwish.jpg ADDED
face_recognition_space/images/Eng. Habiba Mohamed.jpg ADDED
face_recognition_space/images/Eng. Hanan Tarek.jpg ADDED
face_recognition_space/images/Eng. Menna Khaled.jpg ADDED
face_recognition_space/images/Eng. Moamen Zaher.jpg ADDED
face_recognition_space/images/Eng. Mohamed Ashraf.jpg ADDED
face_recognition_space/images/Eng. Mohamed Seif.jpg ADDED
face_recognition_space/images/Eng. Omnia Fawzi.jpg ADDED
face_recognition_space/images/Eng. Raghda Ali.jpg ADDED
face_recognition_space/images/Eyad.jpg ADDED

Git LFS Details

  • SHA256: 5dbee58b3e515b056e755d3f179bea13a57132a9a715e6ea7a56a53fc1a35ace
  • Pointer size: 131 Bytes
  • Size of remote file: 177 kB
face_recognition_space/images/Mrs. Nancy Barakat.jpg ADDED
face_recognition_space/images/Palmer.jpg ADDED

Git LFS Details

  • SHA256: e6a0b9dc44713601dd7abdef75e81567bcaf0237edd04ef3e430d8d123033848
  • Pointer size: 131 Bytes
  • Size of remote file: 208 kB
face_recognition_space/images/Prof. Ahmed Elshafee.jpg ADDED
face_recognition_space/images/Prof. Ali El-Bastawissy.png ADDED
face_recognition_space/images/Prof. Ammar Mohammed.png ADDED

Git LFS Details

  • SHA256: 9117425f53856eb27d8041ba5d90fab364a989c10ea1e6d4fc69809df8e08000
  • Pointer size: 131 Bytes
  • Size of remote file: 279 kB
face_recognition_space/images/Prof. Ayman Ezzat.png ADDED

Git LFS Details

  • SHA256: 037fcf255beaf2e419f39d72b27bb4146bded71142040085ee18538d06f48fb7
  • Pointer size: 131 Bytes
  • Size of remote file: 320 kB
face_recognition_space/images/Prof. Mohamed Nagy Saad.jpg ADDED
face_recognition_space/images/Prof. Wael Gomaa.jpg ADDED
face_recognition_space/images/messi.jpg ADDED
face_recognition_space/requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ gradio
2
+ face_recognition
3
+ opencv-python
4
+ numpy