Close

V3 is nearly here, functionally complete. But facedb work dropped.

A project log for $7 ESP32 CAM example expanded

A proper implementation of a ESP32 CAM webserver; based on the Espressif example, but extended for real-world use

owenOwen 10/13/2020 at 14:330 Comments

I've uploaded the V3 release candidate; functionality complete. It may get some fixes, but my next task is to revamp the documentation and do the final release.

I've decided to not do any development on the faceDB. This sketch is, and remains, a re-working of the Expressif example.

In the esp example sketch the face recognition support is very basic; it does not use the 'named' face database, just a simple list. It only runs when the stream is running, and only works in low resolution modes. This is fine for an example and demo. But you need to look elsewhere for projects that really make use of the face recognition. One of my document tasks is to add a list of projects exploring the capabilities of these boards in more detail.

TL;DR:

I had to get real about saving the face database, eg it's not going to happen in this project without a proper library to work with. I spent a weekend of idle work on this, and decided I do not want to take the time needed to do it properly.

The face database is actually a series of direct memory data structures created on the fly by the enrol functions; malloc()'d and then pointed to by a array of pointers. All very confusing, I got lost trying to work this all out in the source. I could relatively easily read the structs, but working out how to import and link everything would have taken too long.

There is direct support in the esp face library for flashing the database to a memory partition.. which makes for permanent storage, **but** you need to provide a new partition map to the build system. Since I want to keep this project compatible with the ArduinoIDE I do not want to be telling people to hack their board definitions etc.. so this solution is rejected for now.

- Maybe it could be done as an option for a platformio build. PR's on github are welcome.

Discussions