Initial Thoughts on Facebox

I am running Hass.io in a docker container on an intel nuc with 32GB ram and 512 GB SSD.

I have been wanting to get face recognition up and running for some time with some junky cameras I hav laying around and saw this as an opportunity to give it a go seeing as the free-tier has 20 free “Faces”. I also liked how easy it seemed to be to train “Faces” and the fact that its all local and doesn’t use cloud APIs. (The only call it makes is to check your key vs your usage tier.

My thoughts:

Given it comes in its own docker container, and I’m running Hass.io it was easy to set up. The only difference was I ran it on a specified ip address, not localhost since I run my HA server headless.

The web configuration page is stellar, it had all the info and tutorials I needed to get up and running

I used the teach_facebox python script to train my faces and here is where the problem lies…
20 FACES = 20 TRAINING IMAGES NOT FACES

Since I was teaching my system to recognize myself, my wife, and my two kids, this meant I had 5 training pictures per face ( 5 training pics * 4 people = 20 images ) Without going nuts on using different pictures to optimize training this gave be .50-.6 confidence for our 4 faces (admittedly with a not great camera).

Frankly I think this is weak for testing. If it was truly 20 faces with unlimited amount of training pictures per face that would be a different story. Especially since this lowest paid tier is $99 per month. Remember this is all local, its not a cloud service…

You also lose your training data whenever you restart the docker container (i.e. server reboot) which frankly isn’t an issue because retraining 20 images doesn’t take too long.

I like it, and it does set up a good construct for training faces, but 20 images not faces is ridiculous in my view to really get anywhere.

Mike

2 Likes

I didn’t realize the limit was # of training images. That won’t work for what I have planned :confused: That $99 per month is just too much for this. Will need to investigate other options.

It looks like this limit has been increased to 100 on the free tier!

That’s great news, going to have to fire this back up then

Were you able to get back to test Facebox? I was looking into it and wanted to see if it’s worth it before putting in a lot of work.

Thanks.

Yes, as a matter of fact, I’ve tested many of their box platforms both on HA and off. With the excellent integration into HA its actually not alot of work at all depending on what you want to use it for. Let me know how you plan to use it and I can help you through it.

Mike

I’d like to run it on my Synology, with 16GB of ram. Then with my security cameras around the house run automations through Node-Red. For example, when my daughter gets up in the morning have an announcement saying good morning or if an unknown person is in the driveway, backyard or walking up to the front door have an announcement go off.

So install the Facebox add in,
run the Teach Facebox Script linked earlier in this thread
and start by feeding one of your camera feeds into the Facebox API

I had it announcing 'Daughter’s Name, you look beautiful today" over my Sonos with minimal effort.
I do have some questions as to how it might scale with many real-time video feeds, but you could set it only to do so when there is motion for example.

I also use node-red and it wouldn’t be hard to integrate that as well, wither through the HA nodes, or using a direct request to the API.

You could even spin-up Facebox (non-HA) version and integrate with node-red outside of HA then feed the data/events back in via node-red.

I only needed 5-10 pictures before each person was identified with 70% accuracy which was good enough for my use.

If you update me through your process I am happy to help.

It also does things like count faces, so it could be a teenage party-detector for example when you are away.

I didn’t realize it would do that. She’s a little young for parties but glad that option is there. I could also do it when we have people over. It will automatically turn on guest\party modes that will turn off some automation and turn on others.

Do you know if it’s possible to setup a local volume to prevent having to retrain each time the container is bounced?