awacke1 commited on
Commit
0346279
1 Parent(s): a4b5766

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -12
app.py CHANGED
@@ -44,10 +44,6 @@ def process_sheet(sheet):
44
  processed_lines.append(processed_line)
45
  return '<br>'.join(processed_lines)
46
 
47
- # Load a sample image and learn how to recognize it
48
- known_image = face_recognition.load_image_file("known_face.jpg")
49
- known_encoding = face_recognition.face_encodings(known_image)[0]
50
-
51
  # Main Function
52
  def main():
53
  # Layout Configuration
@@ -74,17 +70,28 @@ def main():
74
  face_locations = face_recognition.face_locations(rgb_image)
75
  face_encodings = face_recognition.face_encodings(rgb_image, face_locations)
76
 
 
 
 
 
 
 
 
77
  # Iterate over detected faces and compare with known face
78
  for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
79
- matches = face_recognition.compare_faces([known_encoding], face_encoding)
80
-
81
- if True in matches:
82
- # If a match is found, draw a green rectangle and label
83
- cv2.rectangle(rgb_image, (left, top), (right, bottom), (0, 255, 0), 2)
84
- cv2.putText(rgb_image, "Known Face", (left, top - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)
 
 
 
 
85
  else:
86
- # If no match, draw a red rectangle
87
- cv2.rectangle(rgb_image, (left, top), (right, bottom), (0, 0, 255), 2)
88
 
89
  # Convert the RGB image back to BGR format for display
90
  bgr_image = cv2.cvtColor(rgb_image, cv2.COLOR_RGB2BGR)
@@ -96,6 +103,11 @@ def main():
96
  st.session_state['captured_images'].append(filename)
97
  st.session_state['last_captured'] = time.time()
98
 
 
 
 
 
 
99
  sidebar_html = "<div style='display:flex;flex-direction:column;'>"
100
  for img_file in st.session_state['captured_images']:
101
  image_base64 = get_image_base64(img_file)
 
44
  processed_lines.append(processed_line)
45
  return '<br>'.join(processed_lines)
46
 
 
 
 
 
47
  # Main Function
48
  def main():
49
  # Layout Configuration
 
70
  face_locations = face_recognition.face_locations(rgb_image)
71
  face_encodings = face_recognition.face_encodings(rgb_image, face_locations)
72
 
73
+ # Check if the known face image exists
74
+ if os.path.isfile("known_face.jpg"):
75
+ known_image = face_recognition.load_image_file("known_face.jpg")
76
+ known_encoding = face_recognition.face_encodings(known_image)[0]
77
+ else:
78
+ known_encoding = None
79
+
80
  # Iterate over detected faces and compare with known face
81
  for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
82
+ if known_encoding is not None:
83
+ matches = face_recognition.compare_faces([known_encoding], face_encoding)
84
+
85
+ if True in matches:
86
+ # If a match is found, draw a green rectangle and label
87
+ cv2.rectangle(rgb_image, (left, top), (right, bottom), (0, 255, 0), 2)
88
+ cv2.putText(rgb_image, "Known Face", (left, top - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)
89
+ else:
90
+ # If no match, draw a red rectangle
91
+ cv2.rectangle(rgb_image, (left, top), (right, bottom), (0, 0, 255), 2)
92
  else:
93
+ # If no known face is registered, draw a blue rectangle
94
+ cv2.rectangle(rgb_image, (left, top), (right, bottom), (255, 0, 0), 2)
95
 
96
  # Convert the RGB image back to BGR format for display
97
  bgr_image = cv2.cvtColor(rgb_image, cv2.COLOR_RGB2BGR)
 
103
  st.session_state['captured_images'].append(filename)
104
  st.session_state['last_captured'] = time.time()
105
 
106
+ if st.button("Register Known Face"):
107
+ if image is not None:
108
+ cv2.imwrite("known_face.jpg", np.array(image))
109
+ st.success("Known face registered successfully!")
110
+
111
  sidebar_html = "<div style='display:flex;flex-direction:column;'>"
112
  for img_file in st.session_state['captured_images']:
113
  image_base64 = get_image_base64(img_file)