OpenCV (facial recognition)
OpenCV is the library ResourceSpace uses for facial recognition capability. You can install OpenCV from the system's repository (how to install on Ubuntu):
sudo apt install python3-opencv # You may also need to install separately (for virtual environments or because they're missing) the following: pip install -U opencv-python opencv-contrib-python numpy matplotlib
Advanced
To install OpenCV from source, on either Linux or Windows please check OpenCV's documentation.
Version requirements
- Python - 3.10.12
- OpenCV - 4.9.0
Check Python and OpenCV versions
To check Python version, type the following in your terminal:
python3 --version
To check what OpenCV you have installed run the following Python command:
python3 -c "import cv2; print(cv2.__version__)"
Configure facial recognition feature in ResourceSpace
All the configuration mentioned below should happen in config.php
- Set path to Python (adjust accordingly to your setup - be it system wide or Python virtual environment)
- Set the field used to store the name of the person suggested/ detected (MUST be a dynamic keyword list)
- Set the location for the face recogniser model state(s) and data
- Enable facial recognition
$python_path = '/usr/bin'; $facial_recognition = true; $facial_recognition_tag_field = 20; $facial_recognition_face_recognizer_models_location = '/var/faceRecogniserData';
Note: the above configuration is an example. Please adjust the values accordingly.
Marking resources to be used for the training data set
It's a good practice to keep the training data set to a small size to ensure a fast prediction. The aim is to have around maximum 10 images of each person be part of the set. You should choose the resources with the best and clear facial features of that person.
Create a metadata field (checkbox type) with one option - Yes and configure ResourceSpace with $facial_recognition_mark_for_training_field = [fieldID]. Then tag all resources that are part of the training set. The trainer will only process the resources marked for training.
Configure trainer to run on a regular basis
Create a cron job (Linux) or a new scheduled task (Windows) and make sure to run /path to ResourceSpace web root/pages/tools/facial_recognition_trainer.php.