er1t0 commited on
Commit
51de831
1 Parent(s): 3d78f56

chore: Convert image format for DeepFace analysis

Browse files
Files changed (1) hide show
  1. app.py +16 -19
app.py CHANGED
@@ -4,30 +4,27 @@ import cv2
4
  import numpy as np
5
 
6
  def analyze_frame(frame):
7
- result = DeepFace.analyze(frame, actions=['gender'], enforce_detection=False)
 
 
8
  if result:
9
  gender = result[0]['gender']
10
  else:
11
  gender = "No face detected"
12
- return frame, f"Gender: {gender}"
13
 
14
- def video_feed():
15
- camera = cv2.VideoCapture(0)
16
- while True:
17
- ret, frame = camera.read()
18
- if not ret:
19
- break
20
- yield frame
21
- camera.release()
22
 
23
- with gr.Blocks() as demo:
24
- gr.Markdown("# Real-time Gender Detection")
25
-
26
- with gr.Row():
27
- video_stream = gr.Video(source=video_feed, streaming=True)
28
- result_image = gr.Image()
29
-
30
- video_stream.stream(fn=analyze_frame, inputs=video_stream, outputs=result_image)
31
 
32
  if __name__ == "__main__":
33
- demo.launch()
 
4
  import numpy as np
5
 
6
  def analyze_frame(frame):
7
+ # Convert frame from BGR to RGB format for DeepFace
8
+ frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
9
+ result = DeepFace.analyze(frame_rgb, actions=['gender'], enforce_detection=False)
10
  if result:
11
  gender = result[0]['gender']
12
  else:
13
  gender = "No face detected"
14
+ return frame, gender
15
 
16
+ def process_webcam_image(image):
17
+ # Convert the image to a format suitable for DeepFace
18
+ image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
19
+ frame, gender = analyze_frame(image)
20
+ return frame, gender
 
 
 
21
 
22
+ demo = gr.Interface(
23
+ fn=process_webcam_image,
24
+ inputs=gr.Image(source="webcam", streaming=True),
25
+ outputs=[gr.Image(), gr.Textbox()],
26
+ live=True
27
+ )
 
 
28
 
29
  if __name__ == "__main__":
30
+ demo.launch()