Inspired by some other discussions, I took the plunge and replaced my Ring Doorbell.
I came across these nodes the other day when looking for alternatives to node-red-contrib-facial-recognition
With the above node I couldn't seem to get very good recognition scores, however this one from Samsung Automation Studio Team does seem to be a lot more accurate with the detections.
It's not the easiest to figure out as the documentation is a bit thin on the ground, but well worth looking at as an alterative.
I'm creating some flows around the nodes to pre enrol directories of images and then recognise faces captured from my reolink doorbell camera.
Performance wise it takes around 2 seconds from image injection to matched name on my busy Pi4.
Tested the object detection node on a RPi5 and it seems to do a very good job and pretty fast on single shots. For some of my images I had to change the model to "s" to get a hit but those images are tricky
Seems to run pretty fast, for single shots and frontal views as from a doorbell camera I would assume you will get a very accurate result w face recognition. For object detection it worked fine detecting persons
For real time video streaming I expect you need a very powerful computer using high end NVIDIA graphics or similar. Anyway they have managed to implement a nice set of nodes w YOLO v8
I would expect the RPi5 to be some 5 times faster than the RPi4
It is not using TF, it is using the latest and more reliable & accurate YOLO, v8. YOLO is more resource hungry but also supports GPU. But I do not now if it does support it on the RPi and with these nodes (I'll ask on Github)
I have not used the face detection but the object detection is rather impressive and accurate I think
Darn it, I kind of want a RPi5 16GB now! Even though I don't actually NEED one and its power consumption seems to be about the same as the old laptop I'm using.
So I just setup the same flow on a Pi5, to test against a Pi4 doing the enrolling of faces with the above nodes.
Pi4 time to complete =160 sec vs Pi5 time to complete =38 sec
Other tests with single face recognition using same data averages 4 times faster.
Impressive though not very scientific at the moment as my Pi4 is running other flows.
As its my live Pi4 I cannot really stop other flows and services for a true comparison.
If "s" and "m" models are available somewhere, maybe the accuracy can be improved (hacking the source if needed). But it might be it is good enough. I have not used face recognition yet in my application but is cool, especially if you have a doorbell camera
It's the ONNX version that is used by this node. I have tried the larger YOLOv8s-Face and it works OK as a drop in replacement, thought unsurprisingly it takes a bit longer to run.
Sill experimenting, but the nano version seems to work fine anyway, so probably not worth using the larger model.