YOLOSERV
========
Dispension uses several complex Python project for facial recognition.
Although very powerful, these packages do take some time to initialise:
typically several sec EACH on a workstation and way more on a PI4.
These startup times and sheer package weights don't play well with UKDI.
Not because they don't work, but because they detract so heavily from
UKDI's core mission - which is to interface to hardware devices.
To get around it, we are obliged to run face recognition separately, whereby
all the initialisation is is done only once - at startup. Then we
simply call the services and everything is snappy.
As far as the UKDI architecture is concerned then, core will call
out to yoloserv the same way as it currently does to UKDI.
Keeping all the face recognition stuff in one project is also
pretty useful for encapsulating the files, models and required
disciplines in one place so complex machine learning stuff doesnt
get commingled with bread and butter kiosk tasks.
Yoloserv doesnt only implement yolo as the name implies. it also implements:
* OpenCV
* SciPy / NumPy / Keras / TensorFlow / Pillow etc
* ParaVision
* Realsense
* Facematch
To install the pre-reqs:
sbin/ctl.sh apt
/etc/ukdi.json (add yolo:localhost:8007,yolodir:/tmp)
Pre-requisites:
imgutes
Possible modules:
camera.py - use opencv to get data from a cheap YUV USB camera
seek.py - use seek lib to get data from a seek IR camera
flir.py - not implemented
fjpalmvein - get data from a fujitsu palm vein sensor
yolov5 - use yolov5 to find objects (faces)
yolov8 - use yolov8 to find objects (faces)
paravision - use paravision to compare two face images (proprietary $$$)
facematch - use facematch to compare two face images (open source)