Facial Recognition on Desktop

Before going through this tutorial, you should have the following set up:

  • Start the Redis server:

  • Make sure the dependencies for the face recognition service are installed in your virtual environment:

    pip install social-interaction-cloud[face-recognition]
  • Use the following command to start the face recognition service, and pass the model files (the cascade classifier file used in this example can be found here: haarcascade_frontalface_default.xml, and the resnet50 model file can be found here resnet50_ft_weight.pt):

    run-face-recognition --model resnet50_ft_weight.pt --cascadefile haarcascade_frontalface_default.xml

Create a new file with the code below or use demo_desktop_camera_facerecognition.py from GitHub.

import queue import cv2 from sic_framework.core.message_python2 import BoundingBoxesMessage from sic_framework.core.message_python2 import CompressedImageMessage from sic_framework.core.utils_cv2 import draw_on_image from sic_framework.devices.desktop.desktop_camera import DesktopCamera from sic_framework.services.face_recognition_dnn.face_recognition_service import DNNFaceRecognition imgs_buffer = queue.Queue() def on_image(image_message: CompressedImageMessage): try: imgs_buffer.get_nowait() # remove previous message if its still there except queue.Empty: pass imgs_buffer.put(image_message.image) faces_buffer = queue.Queue() def on_faces(message: BoundingBoxesMessage): try: faces_buffer.get_nowait() # remove previous message if its still there except queue.Empty: pass faces_buffer.put(message.bboxes) # code continues below

 

 

Here is the schematic overview of how this program works. The camera streams its output to the face recognition service, and both stream the output to the program on your laptop.

Â