Spaces:
Runtime error
Runtime error
Shafeek Saleem
commited on
Commit
·
8345b1c
1
Parent(s):
719fca4
ssf
Browse files- pages/4_Trying It Out.py +1 -1
- utils/inference.py +8 -11
pages/4_Trying It Out.py
CHANGED
|
@@ -32,7 +32,7 @@ def step4_page():
|
|
| 32 |
st.info("Select your input type to analyze!")
|
| 33 |
input_type = st.radio("Select the Input Type", ["Image upload", "Camera"])
|
| 34 |
# Put slide to adjust tolerance
|
| 35 |
-
tolerance = 0.
|
| 36 |
# tolerance = st.slider("Tolerance", 0.0, 1.0, 0.15, 0.01)
|
| 37 |
# st.info(
|
| 38 |
# "Tolerance is the threshold for face recognition. The lower the tolerance, the more strict the face recognition. The higher the tolerance, the more loose the face recognition.")
|
|
|
|
| 32 |
st.info("Select your input type to analyze!")
|
| 33 |
input_type = st.radio("Select the Input Type", ["Image upload", "Camera"])
|
| 34 |
# Put slide to adjust tolerance
|
| 35 |
+
tolerance = 0.2
|
| 36 |
# tolerance = st.slider("Tolerance", 0.0, 1.0, 0.15, 0.01)
|
| 37 |
# st.info(
|
| 38 |
# "Tolerance is the threshold for face recognition. The lower the tolerance, the more strict the face recognition. The higher the tolerance, the more loose the face recognition.")
|
utils/inference.py
CHANGED
|
@@ -16,23 +16,20 @@ def recognize(image,tolerance):
|
|
| 16 |
face_locations = face_recognition.face_locations(image)
|
| 17 |
face_encodings = face_recognition.face_encodings(image,face_locations)
|
| 18 |
for (top,right,bottom,left), face_encoding in zip(face_locations,face_encodings):
|
| 19 |
-
st.write("face_encoding")
|
| 20 |
-
st.write(face_encoding.shape)
|
| 21 |
-
st.write("known_encoding")
|
| 22 |
-
st.write(len(known_encoding))
|
| 23 |
-
st.write(known_encoding[0].shape)
|
| 24 |
matches = face_recognition.compare_faces(known_encoding,face_encoding,tolerance=tolerance)
|
| 25 |
-
|
| 26 |
name = 'Unknown'
|
| 27 |
face_id = 'Unknown'
|
|
|
|
| 28 |
for i in range(len(matches)):
|
| 29 |
if matches[i].all():
|
| 30 |
match_index = i
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
|
|
|
| 36 |
cv2.rectangle(image,(left,top),(right,bottom),(0,255,0),2)
|
| 37 |
cv2.putText(image,name,(left,top-10),cv2.FONT_HERSHEY_SIMPLEX,0.75,(0,255,0),2)
|
| 38 |
return image, name, face_id
|
|
|
|
| 16 |
face_locations = face_recognition.face_locations(image)
|
| 17 |
face_encodings = face_recognition.face_encodings(image,face_locations)
|
| 18 |
for (top,right,bottom,left), face_encoding in zip(face_locations,face_encodings):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
matches = face_recognition.compare_faces(known_encoding,face_encoding,tolerance=tolerance)
|
| 20 |
+
distances = face_recognition.face_distance(known_encoding,face_encoding)
|
| 21 |
name = 'Unknown'
|
| 22 |
face_id = 'Unknown'
|
| 23 |
+
distance = 100000
|
| 24 |
for i in range(len(matches)):
|
| 25 |
if matches[i].all():
|
| 26 |
match_index = i
|
| 27 |
+
temp_dist = round(np.sum(distances[match_index]),2)
|
| 28 |
+
if temp_dist < distance:
|
| 29 |
+
distance = temp_dist
|
| 30 |
+
name = database[match_index]['name']
|
| 31 |
+
face_id = database[match_index]['face_id'].split("_")[1]
|
| 32 |
+
# cv2.putText(image,str(distance),(left,top-30),cv2.FONT_HERSHEY_SIMPLEX,0.75,(0,255,0),2)
|
| 33 |
cv2.rectangle(image,(left,top),(right,bottom),(0,255,0),2)
|
| 34 |
cv2.putText(image,name,(left,top-10),cv2.FONT_HERSHEY_SIMPLEX,0.75,(0,255,0),2)
|
| 35 |
return image, name, face_id
|