No announcement yet.

Face Recognition plug-in - User Guide

This topic is closed.
This is a sticky topic.
  • Filter
  • Time
  • Show
Clear All
new posts

    Face Recognition plug-in - User Guide


    System Requirements:

    This plugin is for HS3 or HS3PRO. It works only on Windows
    Most of USB webcams and IP cameras are supported.

    Plugin Installation:
    Download and install from the updater (Camera section) or download package from the Beta Testing thread and follow instructions to install.

    [B]Plugin Configuration
    - Start the plugin from the "PLUG-INS > Manage" page wait a few seconds for the plugin to initialize
    - go to the config page "PLUG-INS > FaceRecognition > Config"

    Click image for larger version

Name:	config.jpg
Views:	2
Size:	61.9 KB
ID:	1207336


    Select the type of camera you want to use as the video source.

    For a USB webcam select "Local Camera" then your camera name should appear in the Camera dropdown list.

    For an IP camera select "Network Stream", and set the stream URL in the URL field. Supported formats are mjpeg, h264, mpeg and the supported protocols are rtsp and http
    For example on the following screenshot the camera is using a h264 format over rtsp:
    Click image for larger version

Name:	video_stream_config.jpg
Views:	1
Size:	24.4 KB
ID:	1207345

    You can use snapshot URL instead of real video stream URL. A snapshot URL use the http protocol and when you paste it in your browser you get a jpeg picture instead of a real video.
    To use a snapshot URL, tick the Snapshot Mode checkbox, and if your URL does not end with .jpg, you will need to give a hint to the plugin by adding a .jpg parameter at the end. For example if your snapshot URL is
    then set
    in the URL field

    To use the kinect camera as your video source, enable the camera from the Kinect plugin, then paste your Snapshot URL and add the .jpg parameter like on the screeshot below:
    Click image for larger version

Name:	kinect_stream_config.jpg
Views:	2
Size:	25.7 KB
ID:	1207346


    Once you have your video source configured, the next step is to create the training data for the recognizer, i.e pics of the persons you want to be recognized.

    To do that click the "Manage Training Data" button, a new program called "Training Data Manager" should open. This program is a desktop .NET program that run on the machine where the plugin is installed. You should see your video feed with red rectangles if faces are detected, like on the screenshot below
    Click image for larger version

Name:	TrainingDataManager.jpg
Views:	2
Size:	157.9 KB
ID:	1207337

    For each person you want to be recognized, click the green '+' button and enter the name of the person. Then take some pictures of the person by clicking the "Add Image" button. Something between 20 and 30 pics for each person should be enough.
    Right now you can't delete specific images, but you can do it manually using windows explorer and deleting some of the image files in <hs3_root_dir>/Data/FaceRecognition/faces/<person_name>. Then restart the Training Data Manager

    When this is done, close the Training Data Manager then click "Train Recognizer", if everything is okay, you should now see all the training data pics in the faces tab, and some devices should have been created for each person.

    Click Start to restart the recognizer.

    When the plugin detects a face, the recognition model will try to find the best match and will return a distance to this best match. If this distance is greater than the "Eigen Threshold" setting the person will be considered as an unknown person. You will have to tweak this threshold to your specific configuration as it highly depends on your training data. If the model does not recognize anyone try to increase this value, if you get too much false positive, try to lower it down. To know what's the distance the model compute for each frame, set the log level to Debug, you will then see log lines like:
    Unknown detected (5354)
    Unknown detected (5310)
    Juliette detected (2967)
    the value between parenthesis is the distance to the best match

    The "Process Frame every X milliseconds" setting let you change the frequency at which the plugin process frames. The lower this value is the higher the CPU utilization will be.

    more to come....
    Last edited by spud; November 27, 2016, 02:44 PM.