LOW COST ACCESS CONTROL WITH ESP32CAM AND COMPREFACE (DEMO VERSION TO MANAGE 50000 FACES)
exadel-inc/CompreFace: Leading free and open-source face recognition system (github.com)
This is me, Miguel
This is CameraWebServer´s Front-End - SVGA mode
The Back-End is the Arduino make communication with EXADEL COMPREFACE DEMO
The examples in COMPREFACE are in PYTHON, JAVA and CURL, but for Arduino ? Based on this i ported to Arduino the basic code for sending the image to the RECOGNIZER service, of the COMPREFACE server.
Exadel
Exadel is a global software consulting and development company that partners with organizations to help them become digital leaders in their industries.
We look beyond the code to understand the impact our clients want to make and help them get from ideation to development and outcomes.
We accelerate the results of digital transformations through an open, collaborative approach combined with our deep experience across industries, business processes, and technologies.
EXADELCOMPREFACE
Exadel CompreFace is a free and open source facial recognition service that can be easily integrated into any system without prior machine learning skills. CompreFace provides REST API for facial recognition, face scanning, face detection, landmark detection, mask detection, head posture detection, age and gender recognition, and is easily deployed with docker.
Efficient for 50000 registered images (DEMO VERSION).
Contact to get the PRO Version of COMPREFACE
Maciej Walendowski to the PRO Version
See the link below how to install on WINDOWS or LINUX
Start DOCKER, register the IP of the machine that is running
Enter IP:8000 and create the Services and Subjects for recognition, write down the API key
This is my Picture on COMPREFACE WebServer
Arduino ESP32
Install Arduino and Select Board AI-THINKER ESP32-CAM
Code based
curl -X POST "http://IP:8000/api/v1/recognition/recognize" \
-H "Content-Type: application/json" \
-H "x-api-key: <service_api_key>" \
-d {"file": "<base64_value>"}
Follow code
//https://onlinejpgtools.com/convert-base64-to-jpg
/*
FRAMESIZE_UXGA (1600 x 1200)
FRAMESIZE_QVGA (320 x 240)
FRAMESIZE_CIF (352 x 288)
FRAMESIZE_VGA (640 x 480)
FRAMESIZE_SVGA (800 x 600)
FRAMESIZE_XGA (1024 x 768)
FRAMESIZE_SXGA (1280 x 1024)
*/
#include "esp_camera.h"
#include <WiFi.h>
#include <ArduinoJson.h>
#include <base64.h>
#include <EEPROM.h>
#include <Arduino.h>
#include "PinDefinitionsAndMore.h" //Define macros for input and output pin etc.
#include <HTTPClient.h>
#define LED_FLASH 4
//
// WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality
// Ensure ESP32 Wrover Module or other board with PSRAM is selected
// Partial images will be transmitted if image exceeds buffer size
//
// You must select partition scheme from the board menu that has at least 3MB APP space.
// Face Recognition is DISABLED for ESP32 and ESP32-S2, because it takes up from 15
// seconds to process single frame. Face Detection is ENABLED if PSRAM is enabled as well
// ===================
// Select camera model
// ===================
//#define CAMERA_MODEL_WROVER_KIT // Has PSRAM
//#define CAMERA_MODEL_ESP_EYE // Has PSRAM
//#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM
//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM
//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM
//#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM
#define CAMERA_MODEL_AI_THINKER // Has PSRAM
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
// ** Espressif Internal Boards **
//#define CAMERA_MODEL_ESP32_CAM_BOARD
//#define CAMERA_MODEL_ESP32S2_CAM_BOARD
//#define CAMERA_MODEL_ESP32S3_CAM_LCD
#include "camera_pins.h"
// ===========================
// Enter your WiFi credentials
// ===========================
//const char* ssid = "DaltonReis";
//const char* password = "!anadal!";
const char* ssid = "Andreia Oi Miguel 2.4G";
const char* password = "xxxxxxxxx";
WiFiClient wifiClient;
HTTPClient http;
void Recognized(void)
{
digitalWrite(LED_FLASH, HIGH);
delay(10);
digitalWrite(LED_FLASH, LOW);
delay(10);
}
void startCameraServer();
void takePictureAndSubmitFacenet() {
camera_fb_t *fb = esp_camera_fb_get();
if(!fb) {
Serial.println("Camera capture failed");
return;
}
else {
Serial.println("Camera capture successful!");
}
const char *data = (const char *)fb->buf;
// Image metadata. Yes it should be cleaned up to use printf if the function is available
Serial.print("Size of image:");
Serial.println(fb->len);
Serial.print("Shape->width:");
Serial.print(fb->width);
Serial.print("height:");
Serial.println(fb->height);
//TO MAKE THE COMMUNICATION WITH COMPREFACE, I WILL NEED A COFFE :)
String encoded = base64::encode(fb->buf, fb->len);
//Serial.println(encoded);
// Killing cam resource
esp_camera_fb_return(fb);
http.begin(wifiClient, "http://192.168.100.90:8000/api/v1/recognition/recognize"); //Specify destination for HTTP request
http.addHeader("Content-Type", "application/json"); //Specify content-type header
http.addHeader("x-api-key", "91d3c644-ab7c-452e-a4c9-883ac1ab896c"); //KEY
String Package = "{\"file\": \"" + encoded + "\"}";
//240x320
Serial.println("Post...");
//Send the actual POST request
int httpResponseCode = http.POST(Package);
Serial.println("Analyse...");
if(httpResponseCode>0){
String response = http.getString(); //Get the response to the request
Serial.println(httpResponseCode); //Print return code
Serial.println(response); //Print request answer
//https://arduinojson.org/v6/assistant/#/step4
StaticJsonDocument<384> doc;
DeserializationError error = deserializeJson(doc, response);
if (error) {
Serial.print("deserializeJson() failed: ");
Serial.println(error.c_str());
return;
}
JsonObject result_0_box = doc["result"][0]["box"];
float result_0_box_probability = result_0_box["probability"]; // 0.99984
int result_0_box_x_max = result_0_box["x_max"]; // 392
int result_0_box_y_max = result_0_box["y_max"]; // 392
int result_0_box_x_min = result_0_box["x_min"]; // 66
int result_0_box_y_min = result_0_box["y_min"]; // 2
const char* result_0_subjects_0_subject = doc["result"][0]["subjects"][0]["subject"]; // "Miguel"
float result_0_subjects_0_similarity = doc["result"][0]["subjects"][0]["similarity"]; // 0.78965
Serial.println(result_0_subjects_0_subject);
Serial.println(result_0_subjects_0_similarity);
if(result_0_subjects_0_similarity>0.99)
Recognized();
}else{
Serial.print("Error on sending POST: ");
Serial.println(httpResponseCode);
}
// Killing cam resource
esp_camera_fb_return(fb);
http.end(); //Free resources
}
void setup() {
pinMode(LED_FLASH, OUTPUT); //LED BLINK > 0.99x
Serial.begin(115200);
Serial.setDebugOutput(true);
Serial.println();
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.frame_size = FRAMESIZE_UXGA;
config.pixel_format = PIXFORMAT_JPEG; // for streaming
//config.pixel_format = PIXFORMAT_RGB565; // for face detection/recognition
config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;
config.fb_location = CAMERA_FB_IN_PSRAM;
config.jpeg_quality = 12;
config.fb_count = 1;
// if PSRAM IC present, init with UXGA resolution and higher JPEG quality
// for larger pre-allocated frame buffer.
if(config.pixel_format == PIXFORMAT_JPEG){
if(psramFound()){
config.jpeg_quality = 10;
config.fb_count = 2;
config.grab_mode = CAMERA_GRAB_LATEST;
} else {
// Limit the frame size when PSRAM is not available
config.frame_size = FRAMESIZE_QVGA;
config.fb_location = CAMERA_FB_IN_DRAM;
}
} else {
// Best option for face detection/recognition
config.frame_size = FRAMESIZE_240X240;
#if CONFIG_IDF_TARGET_ESP32S3
config.fb_count = 2;
#endif
}
#if defined(CAMERA_MODEL_ESP_EYE)
pinMode(13, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
#endif
// camera init
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
return;
}
sensor_t * s = esp_camera_sensor_get();
// initial sensors are flipped vertically and colors are a bit saturated
if (s->id.PID == OV3660_PID) {
s->set_vflip(s, 1); // flip it back
s->set_brightness(s, 1); // up the brightness just a bit
s->set_saturation(s, -2); // lower the saturation
}
// drop down frame size for higher initial frame rate
if(config.pixel_format == PIXFORMAT_JPEG){
s->set_framesize(s, FRAMESIZE_SVGA); //<=====================
}
#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)
s->set_vflip(s, 1);
s->set_hmirror(s, 1);
#endif
#if defined(CAMERA_MODEL_ESP32S3_EYE)
s->set_vflip(s, 1);
#endif
WiFi.begin(ssid, password);
WiFi.setSleep(false);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
startCameraServer();
Serial.print("Camera Ready! Use 'http://");
Serial.print(WiFi.localIP());
Serial.println("' to connect");
}
void loop() {
Serial.println("Sending Face...");
takePictureAndSubmitFacenet();
delay(5000);
}
When detecting Similarity greater or equal to 0.99 will do a FLASH.
COMPREFACE IS REALLY COOL
See the FLASH Light :)
ESP32CAM in my LAB
CURL tests
curl -X POST "192.168.100.90:8000/api/v1/recognition/recognize" \
-H "Content-Type: application/json" \
-H "x-api-key: 91d3c644-ab7c-452e-a4c9-883ac1ab896c" \
-d '{"file": "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"}'
To do
Movement Detection (Hardware and Software)
Contact
Nenhum comentário:
Postar um comentário