Implementare rapidamente il riconoscimento facciale resistente allo spoofing senza una connessione al cloud
Contributo di Editori nordamericani di DigiKey
2021-02-24
Il riconoscimento facciale ha visto un'ampia accettazione per autenticare l'accesso agli smartphone, ma i tentativi di applicare questa tecnologia in modo esteso sono falliti nonostante la sua efficacia e facilità d'uso. Oltre alle sfide tecniche dell'implementazione di soluzioni di apprendimento automatico affidabili e a basso costo, gli sviluppatori devono anche affrontare il timore degli utenti circa l'affidabilità e la privacy dei metodi di riconoscimento facciale convenzionali che dipendono da connessioni cloud che sono vulnerabili allo spoofing.
Questo articolo discute la difficoltà dell'autenticazione sicura prima di introdurre una soluzione hardware e software di NXP Semiconductors che risolve questi problemi. Mostra poi come gli sviluppatori senza esperienza con i metodi di apprendimento automatico possono utilizzare la soluzione per implementare rapidamente il riconoscimento facciale anti-spoofing offline in un prodotto intelligente.
Le sfide dell'autenticazione sicura per i prodotti intelligenti
Nell'affrontare le crescenti preoccupazioni sulla sicurezza dei prodotti intelligenti, gli sviluppatori si sono ritrovati con poche opzioni praticabili per autenticare in modo affidabile gli utenti che cercano un accesso rapido ma sicuro. I metodi tradizionali si basano su metodi di autenticazione multifattoriale che si basano su una combinazione dei classici tre fattori di autenticazione: "Qualcosa che sai", come una password, "Qualcosa che hai", come una chiave fisica o una tessera e "Qualcosa che sei", che è tipicamente un fattore biometrico come l'impronta digitale o l'iride. Usando questo approccio, una serratura fortemente autenticata potrebbe richiedere all'utente di inserire un codice di accesso, usare una scheda e fornire un'impronta digitale per sbloccare la porta. In pratica, tali requisiti rigorosi sono scomodi o semplicemente poco pratici per i consumatori che hanno bisogno di riautenticarsi frequentemente e facilmente con uno smartphone o un altro dispositivo usato abitualmente.
L'uso del riconoscimento facciale ha semplificato notevolmente l'autenticazione per gli utenti, ma gli smartphone possiedono alcuni vantaggi che potrebbero non essere disponibili in ogni dispositivo. Oltre alla notevole potenza di elaborazione disponibile negli smartphone all'avanguardia, la connettività "sempre in funzione" è un requisito fondamentale per fornire la sofisticata gamma di servizi che i loro utenti si aspettano abitualmente.
Per molti prodotti che richiedono un'autenticazione sicura, la piattaforma operativa sottostante fornirà tipicamente risorse di calcolo più modeste e una connettività più limitata. I servizi di riconoscimento facciale dei principali fornitori di servizi cloud spostano il carico di elaborazione sul cloud, ma la necessità di una connettività robusta per garantire una latenza di risposta minima potrebbe imporre requisiti che vanno oltre le capacità della piattaforma. Di pari o maggiore preoccupazione per gli utenti, la trasmissione della loro immagine attraverso reti pubbliche per l'elaborazione e potenzialmente l'archiviazione nel cloud solleva importanti questioni di privacy.
Utilizzando i processori i.MX RT106F di NXP Semiconductors e il software associato, gli sviluppatori possono ora implementare il riconoscimento facciale offline per affrontare direttamente queste preoccupazioni.
Hardware e software per il riconoscimento facciale offline anti-spoofing
Parte della famiglia di microcontroller (MCU) i.MX RT1060 Crossover di NXP, la serie i.MX RT106F è specificamente progettata per supportare una facile integrazione del riconoscimento facciale offline nei dispositivi di domotica, negli elettrodomestici, nei dispositivi di sicurezza e nelle apparecchiature industriali. Basati su un core di processore Arm® Cortex®-M7, i processori funzionano a 528 MHz (modello MIMXRT106FCVL5B di grado industriale) o a 600 MHz per i processori di grado commerciale come MIMXRT106FDVL6A e MIMXRT106FDVL6B.
Oltre a supportare una vasta gamma di interfacce di memoria esterna, i processori i.MX RT106F includono 1 MB di memoria ad accesso casuale (RAM) su chip con 512 kB configurati come RAM per uso generale e 512 kB che possono essere configurati come RAM per uso generale o come memoria strettamente accoppiata (TCM) per istruzioni (I-TCM) o dati (D-TCM). Insieme alla gestione dell'alimentazione su chip, questi processori offrono un ampio set di funzioni integrate per la grafica, la sicurezza, il controllo del sistema e le interfacce analogiche e digitali tipicamente necessarie per supportare i dispositivi consumer, le interfacce uomo-macchina (HMI) industriali e il controllo dei motori (Figura 1).
Figura 1: I processori i.MX RT106F di NXP Semiconductors combinano un set completo di blocchi funzionali necessari per supportare il riconoscimento facciale per i prodotti consumer, industriali e di sicurezza. (Immagine per gentile concessione di NXP)
Anche se simile ad altri membri della famiglia i.MX RT1060, i processori i.MX RT106F includono una licenza runtime per il software di riconoscimento facciale NXP Oasis Lite. Progettato per accelerare l'inferenza su questa classe di processori, l'ambiente di runtime Oasis Lite esegue il rilevamento e il riconoscimento dei volti e anche una limitata classificazione delle emozioni utilizzando modelli di inferenza delle reti neurali (NN) in esecuzione su un motore di inferenza e MiniCV, una versione ridotta della libreria open-source di visione artificiale OpenCV. Il motore di inferenza si basa su una libreria NN di NXP e sulla libreria Arm Cortex Microcontroller System Interface Standard NN (CMSIS-NN) (Figura 2).
Figura 2: La libreria runtime NXP Oasis Lite include un core Oasis Lite che utilizza MiniCV e un motore di inferenza NXP costruito su librerie di reti neurali di NXP e Arm. (Immagine per gentile concessione di NXP)
I modelli di inferenza risiedono sulla piattaforma i.MX RT106F, quindi il rilevamento e il riconoscimento facciale avvengono localmente, a differenza di altre soluzioni che dipendono da risorse basate sul cloud per eseguire gli algoritmi di apprendimento automatico. Grazie a questa capacità di riconoscimento facciale offline, i progettisti di prodotti intelligenti possono garantire un'autenticazione privata e sicura nonostante la bassa larghezza di banda o la connettività Internet discontinua. Inoltre, l'autenticazione avviene rapidamente con questa combinazione hardware e software, richiedendo meno di 800 millisecondi al processore per riattivarsi dallo standby a basso consumo e completare il riconoscimento facciale.
Utilizzato con il processore i.MX RT106F, il runtime Oasis Lite semplifica l'implementazione del riconoscimento facciale offline nei prodotti intelligenti, ma il processore e l'ambiente runtime sono ovviamente solo una parte di una soluzione completa. Insieme a un set più completo di componenti del sistema, una soluzione di autenticazione efficace richiede una capacità di acquisizione immagini che possa mitigare un tipo di minaccia alla sicurezza chiamata attacco di presentazione. Questi attacchi tentano di falsificare l'autenticazione del riconoscimento facciale utilizzando le fotografie. Per gli sviluppatori che desiderano implementare rapidamente nei loro prodotti l'autenticazione basata sul volto, il kit di sviluppo SLN-VIZNAS-IOT di NXP e il software associato sono una piattaforma pronta per l'uso per la valutazione, la prototipazione e lo sviluppo del riconoscimento facciale offline e anti-spoofing.
Soluzione completa di sistemi sicuri per il riconoscimento facciale
Come con la maggior parte dei processori avanzati, il processore i.MX RT106F richiede solo pochi componenti aggiuntivi per diventare una piattaforma di calcolo efficace. Il kit SLN-VIZNAS-IOT di NXP completa il progetto integrando i.MX RT106F con dispositivi aggiuntivi per fornire una piattaforma hardware completa (Figura 3).
Figura 3: Il kit SLN-VIZNAS-IOT di NXP include un modulo connesso che fornisce una robusta piattaforma di sistema necessaria per eseguire il software di autenticazione. (Immagine per gentile concessione di NXP)
La scheda del modulo connesso del kit combina un processore MIMXRT106FDVL6A i.MX RT106F, un elemento sicuro A71CH di NXP e due opzioni di connettività: il system-on-chip (SoC) Bluetooth Low Energy (BLE) MKW41Z512VHT4 Kinetis KW41Z di NXP e il modulo Wi-Fi/Bluetooth LBEE5KL1DX-883 di Murata Electronics.
Per integrare la memoria su chip del processore, il modulo connesso aggiunge 256 Mbit di RAM sincrona dinamica (SDRAM) W9825G6JB prodotta da Winbond Electronics. Di Integrated Silicon Solution, Inc. (ISSI) è invece la flash NOR da 256 Mbit IS26KL256S-DABLI00 e l'interfaccia periferica seriale (SPI) quad da 256 Mbit IS25LP256D.
Infine, il modulo aggiunge un convertitore buck XCL214B333DR di Torex Semiconductor per integrare le capacità di gestione dell'alimentazione interna del processore i.MX RT106F per i dispositivi aggiuntivi sulla scheda del modulo connesso.
Il modulo connesso a sua volta si monta su una scheda applicativa di visione che combina prodotti di Murata Electronics, come un sensore a infrarossi passivi (PIR) IRA-S210ST01, un sensore di movimento, un caricabatterie, un supporto audio, diodi a emissione luminosa (LED), pulsanti e connettori di interfaccia (Figura 4).
Figura 4: Nel kit SLN-VIZNAS-IOT di NXP, il modulo connesso (a sinistra) è collegato alla scheda applicativa di visione per fornire la base hardware per il riconoscimento facciale. (Immagine per gentile concessione di NXP)
Insieme a questa piattaforma di sistema, la progettazione di un sistema di riconoscimento facciale richiede ovviamente un sensore per fotocamera adatto con cui acquisire l'immagine del volto dell'utente. Come menzionato in precedenza, tuttavia, i timori di attacchi di presentazione richiedono ulteriori capacità di imaging.
Mitigare gli attacchi di presentazione
I ricercatori hanno esplorato per anni diversi metodi di rilevamento degli attacchi di presentazione (PAD) per mitigare i tentativi di intrusione, come l'uso di impronte digitali latenti o immagini di un volto per falsificare i sistemi di autenticazione basati sulla biometria. Anche se i dettagli vanno ben oltre lo scopo di questo articolo, i metodi PAD in generale utilizzano un'analisi approfondita della qualità e delle caratteristiche dei dati biometrici acquisiti come parte del processo, così come metodi di rilevamento della "vitalità" progettati per determinare se i dati biometrici sono stati acquisiti da una persona viva. Alla base di molti di questi diversi metodi, i modelli di reti neurali profonde (DNN) giocano un ruolo importante non solo nel riconoscimento facciale, ma anche nell'identificare i tentativi di spoofing del sistema. Tuttavia, il sistema di imaging utilizzato per catturare il volto dell'utente può fornire un supporto aggiuntivo per il rilevamento della vitalità.
Per il kit SLN-VIZNAS-IOT, NXP include moduli di fotocamera che contengono una coppia di sensori di immagine MT9M114 di ON Semiconductor. Qui, una fotocamera è dotata di un filtro rosso, verde e blu (RGB) e l'altra è dotata di un filtro a infrarossi (IR). Montata tramite interfacce alla scheda applicativa di visione, la fotocamera RGB genera una normale immagine di luce visibile, mentre quella agli infrarossi acquisisce un'immagine che sarebbe diversa per una persona viva rispetto a un'immagine della persona. Utilizzando questo approccio di rilevamento della vitalità insieme alla sua capacità interna di riconoscimento facciale, il kit SLN-VIZNAS-IOT fornisce capacità di riconoscimento facciale offline anti-spoofing in un contenitore che misura circa 30 x 40 mm (Figura 5).
Figura 5: Il kit hardware SLN-VIZNAS-IOT di NXP integra un sistema a doppia fotocamera per il rilevamento della vitalità (in alto) e una scheda applicativa di visione (in basso) con un modulo connesso per fornire una soluzione drop-in per il riconoscimento facciale offline con capacità anti-spoofing. (Immagine per gentile concessione di NXP)
Come usare il kit SLN-VIZNAS-IOT
Il kit NXP SLN-VIZNAS-IOT è pronto per l'uso con modelli di riconoscimento facciale integrati. Gli sviluppatori collegano un cavo USB e premono un pulsante sul kit per eseguire una semplice registrazione manuale del volto utilizzando l'applicazione "elock" precaricata e l'applicazione mobile di accompagnamento (Figura 6, a sinistra). Dopo la registrazione, l'applicazione mobile visualizzerà un messaggio di "benvenuto" e l'etichetta "sbloccato" quando il kit autentica il volto registrato (Figura 6, a destra).
Figura 6: Il kit hardware SLN-VIZNAS-IOT di NXP è pronto per l'uso e utilizza un'app per registrare un volto (sinistra) e riconoscere i volti registrati (destra). (Immagine per gentile concessione di NXP)
Il software di riconoscimento facciale Oasis Lite del kit elabora i modelli dal suo database contenente fino a 3000 volti RGB con una precisione di riconoscimento del 99,6% e fino a 100 volti IR con una precisione anti-spoofing del 96,5%. Come notato in precedenza, la soluzione hardware/software di NXP ha bisogno di meno di un secondo per eseguire il rilevamento facciale, l'allineamento dell'immagine, il controllo della qualità, il rilevamento della vitalità e il riconoscimento su un raggio da 0,2 a 1,0 metri. In effetti, il sistema supporta un modello alternativo di inferenza "leggero" in grado di eseguire questa stessa sequenza in meno di 0,5 s, ma supporta un database più piccolo di 1000 volti RGB e 50 volti IR.
Come creare applicazioni di riconoscimento facciale personalizzate
Usato così, il kit NXP SLN-VIZNAS-IOT permette agli sviluppatori di valutare, prototipare e sviluppare rapidamente applicazioni di riconoscimento facciale. Quando si creano soluzioni hardware personalizzate, il kit serve come progetto di riferimento completo con schemi completi e una distinta base (BOM) dettagliata. Per lo sviluppo del software, i programmatori possono utilizzare l'ambiente di sviluppo integrato (IDE) NXP MCUXpresso con supporto e strumenti di configurazione FreeRTOS. Per questa applicazione, gli sviluppatori utilizzano semplicemente MCUXpresso SDK Builder online di NXP per configurare il loro ambiente di sviluppo software con l'SDK VIZNAS di NXP, che include il motore di visione per l'apprendimento automatico NXP Oasis Lite (Figura 7).
Figura 7: NXP fornisce un ambiente software completo che esegue la libreria runtime NXP Oasis Lite e il middleware di utilità sul sistema operativo FreeRTOS. (Immagine per gentile concessione di NXP)
Il pacchetto software include il codice sorgente completo per l'ambiente operativo e l'applicazione campione elock menzionata in precedenza. NXP non fornisce il codice sorgente per il suo motore proprietario Oasis Lite o per i modelli. Invece, gli sviluppatori lavorano con la libreria runtime di Oasis Lite usando l'interfaccia di programmazione di applicazioni (API) fornita, che include una serie di chiamate di funzione intuitive per eseguire le operazioni supportate. Inoltre, gli sviluppatori usano un set fornito di definizioni e strutture C per specificare vari parametri tra cui la dimensione dell'immagine, l'allocazione della memoria, i callback e le funzioni abilitate utilizzate dal sistema all'avvio dell'ambiente runtime di Oasis Lite (Listato 1).
Copy
typedef struct {
//max input image height, width and channel, min_face: minimum face can be detected
int height;
int width;
//only valid for RGB images; for IR image, always GREY888 format
OASISLTImageFormat_t img_format;
OASISLTImageType_t img_type;
//min_face should not smaller than 40
int min_face;
/*memory pool pointer, this memory pool should only be used by OASIS LIB*/
char* mem_pool;
/*memory pool size*/
int size;
/*output parameter,indicate authenticated or not*/
int auth;
/*callback functions provided by caller*/
InfCallbacks_t cbs;
/*what functions should be enabled in OASIS LIB*/
uint8_t enable_flags;
/*only valid when OASIS_ENABLE_EMO is activated*/
OASISLTEmoMode_t emo_mode;
/*false accept rate*/
OASISLTFar_t false_accept_rate;
/*model class */
OASISLTModelClass_t mod_class;
} OASISLTInitPara_t;
Listato 1: Gli sviluppatori possono modificare i parametri di esecuzione del software modificando il contenuto di strutture come quella mostrata qui per l'inizializzazione del runtime di Oasis Lite. (Codice per gentile concessione di NXP)
Il codice dell'applicazione di esempio di elock dimostra i modelli di progettazione chiave per avviare Oasis come attività in esecuzione su FreeRTOS, inizializzare l'ambiente ed entrare nella sua normale fase di esecuzione. Nella fase di esecuzione, l'ambiente runtime opera su ogni fotogramma di un'immagine, eseguendo le funzioni di callback fornite associate a ogni evento definito nell'ambiente (Listato 2).
Copy
typedef enum {
/*indicate the start of face detection, user can update frame data if it is needed.
* all parameter in callback parameter is invalid.*/
OASISLT_EVT_DET_START,
/*The end of face detection.
*if a face is found, pfaceBox(OASISLTCbPara_t) indicated the rect(left,top,right,bottom point value)
*info and landmark value of the face.
*if no face is found,pfaceBox is NULL, following event will not be triggered for current frame.
*other parameter in callback parameter is invalid */
OASISLT_EVT_DET_COMPLETE,
/*Face quality check is done before face recognition*/
OASISLT_EVT_QUALITY_CHK_START,
OASISLT_EVT_QUALITY_CHK_COMPLETE,
/*Start of face recognition*/
OASISLT_EVT_REC_START,
/*The end of face recognition.
* when face feature in current frame is gotten, GetRegisteredFaces callback will be called to get all
* faces feature registered and OASIS lib will try to search this face in registered faces, if this face
* is matched, a valid face ID will be set in callback parameter faceID and corresponding simularity(indicate
* how confidence for the match) also will be set.
* if no face match, a invalid(INVALID_FACE_ID) will be set.*/
OASISLT_EVT_REC_COMPLETE,
/*start of emotion recognition*/
OASISLT_EVT_EMO_REC_START,
/*End of emotion recognition, emoID indicate which emotion current face is.*/
OASISLT_EVT_EMO_REC_COMPLETE,
/*if user set a registration flag in a call of OASISLT_run and a face is detected, this two events will be notified
* for auto registration mode, only new face(not recognized) is added(call AddNewFace callback function)
* for manu registration mode, face will be added forcely.
* for both cases, face ID of new added face will be set in callback function */
OASISLT_EVT_REG_START,
/*when registration start, for each valid frame is handled,this event will be triggered and indicate
* registration process is going forward a little.
* */
OASISLT_EVT_REG_IN_PROGRESS,
OASISLT_EVT_REG_COMPLETE,
OASISLT_EVT_NUM
} OASISLTEvt_t;
Listato 2: Il runtime di Oasis Lite riconosce una serie di eventi documentati come un set enumerato nel file header del runtime di Oasis Lite. (Codice per gentile concessione di NXP)
L'applicazione di esempio può fornire agli sviluppatori messaggi di debug che descrivono i risultati associati a ogni evento elaborato dal gestore di eventi (EvtHandler). Ad esempio, dopo il controllo di qualità (OASISLT_EVT_QUALITY_CHK_COMPLETE), il sistema stampa i messaggi di debug che descrivono il risultato e dopo il riconoscimento facciale (OASISLT_EVT_REC_COMPLETE), il sistema estrae l'ID e il nome dell'utente dal suo database di volti riconosciuti e stampa queste informazioni (Listato 3).
Copy
static void EvtHandler(ImageFrame_t *frames[], OASISLTEvt_t evt, OASISLTCbPara_t *para, void *user_data)
{
[code redacted for simplification]
case OASISLT_EVT_QUALITY_CHK_COMPLETE:
{
UsbShell_Printf("[OASIS]:quality chk res:%d\r\n", para->qualityResult);
pQMsg->msg.info.irLive = para->reserved[5];
pQMsg->msg.info.front = para->reserved[1];
pQMsg->msg.info.blur = para->reserved[3];
pQMsg->msg.info.rgbLive = para->reserved[8];
if (para->qualityResult == OASIS_QUALITY_RESULT_FACE_OK_WITHOUT_GLASSES ||
para->qualityResult == OASIS_QUALITY_RESULT_FACE_OK_WITH_GLASSES)
{
UsbShell_DbgPrintf(VERBOSE_MODE_L2, "[EVT]:ok!\r\n");
}
else if (OASIS_QUALITY_RESULT_FACE_SIDE_FACE == para->qualityResult)
{
UsbShell_DbgPrintf(VERBOSE_MODE_L2, "[EVT]:side face!\r\n");
}
else if (para->qualityResult == OASIS_QUALITY_RESULT_FACE_TOO_SMALL)
{
UsbShell_DbgPrintf(VERBOSE_MODE_L2, "[EVT]:Small Face!\r\n");
}
else if (para->qualityResult == OASIS_QUALITY_RESULT_FACE_BLUR)
{
UsbShell_DbgPrintf(VERBOSE_MODE_L2, "[EVT]: Blurry Face!\r\n");
}
else if (para->qualityResult == OASIS_QUALITY_RESULT_FAIL_LIVENESS_IR)
{
UsbShell_DbgPrintf(VERBOSE_MODE_L2, "[EVT]: IR Fake Face!\r\n");
}
else if (para->qualityResult == OASIS_QUALITY_RESULT_FAIL_LIVENESS_RGB)
{
UsbShell_DbgPrintf(VERBOSE_MODE_L2, "[EVT]: RGB Fake Face!\r\n");
}
}
break;
[code redacted for simplification]
case OASISLT_EVT_REC_COMPLETE:
{
int diff;
unsigned id = para->faceID;
OASISLTRecognizeRes_t recResult = para->recResult;
timeState->rec_comp = Time_Now();
pQMsg->msg.info.rt = timeState->rec_start - timeState->rec_comp;
face_info.rt = pQMsg->msg.info.rt;
#ifdef SHOW_FPS
/*pit timer unit is us*/
timeState->rec_fps++;
diff = abs(timeState->rec_fps_start - timeState->rec_comp);
if (diff > 1000000 / PIT_TIMER_UNIT)
{
// update fps
pQMsg->msg.info.recognize_fps = timeState->rec_fps * 1000.0f / diff;
timeState->rec_fps = 0;
timeState->rec_fps_start = timeState->rec_comp;
}
#endif
memset(pQMsg->msg.info.name, 0x0, sizeof(pQMsg->msg.info.name));
if (recResult == OASIS_REC_RESULT_KNOWN_FACE)
{
std::string name;
UsbShell_DbgPrintf(VERBOSE_MODE_L2, "[OASIS]:face id:%d\r\n", id);
DB_GetName(id, name);
memcpy(pQMsg->msg.info.name, name.c_str(), name.size());
face_info.recognize = true;
face_info.name = std::string(name);
UsbShell_DbgPrintf(VERBOSE_MODE_L2, "[OASIS]:face id:%d name:%s\r\n", id, pQMsg->msg.info.name);
}
else
{
// face is not recognized, do nothing
UsbShell_DbgPrintf(VERBOSE_MODE_L2, "[OASIS]:face unrecognized\r\n");
face_info.recognize = false;
}
VIZN_RecognizeEvent(gApiHandle, face_info);
}
break;
Listato 3: Come mostrato in questo stralcio da un'applicazione campione nella distribuzione del software NXP, un gestore di eventi elabora gli eventi incontrati durante la sequenza di riconoscimento facciale. (Codice per gentile concessione di NXP)
Oltre a supportare i requisiti di elaborazione del riconoscimento facciale, il software SLN-VIZNAS-IOT di NXP è concepito per proteggere l'ambiente operativo. Per garantire la sicurezza di runtime, il sistema verifica l'integrità e l'autenticità di ogni immagine firmata caricata nel sistema utilizzando un certificato memorizzato nel file system del kit SLN-VIZNAS-IOT. Poiché questa sequenza di verifica inizia con un bootloader affidabile memorizzato nella memoria di sola lettura (ROM), questo processo fornisce una catena di attendibilità per l'esecuzione del firmware dell'applicazione. Inoltre, poiché la firma e la verifica del codice possono rallentare lo sviluppo, questo processo di verifica può essere aggirato durante la progettazione e il debug del software. Infatti, il kit SLN-VIZNAS-IOT viene precaricato con immagini firmate, ma la verifica della firma del codice è esclusa per impostazione predefinita. Gli sviluppatori possono facilmente impostare le opzioni per abilitare la verifica completa della firma del codice per la produzione.
Insieme all'ambiente runtime e al codice applicativo di esempio associato, NXP fornisce applicazioni mobili Android con codice sorgente java completo. Un'applicazione, VIZNAS FaceRec Manager, fornisce una semplice interfaccia per la registrazione dei volti e la gestione degli utenti. Un'altra app, VIZNAS Companion, permette agli utenti di fornire al kit le credenziali Wi-Fi utilizzando una connessione Wi-Fi o BLE esistente.
Conclusione
Il riconoscimento facciale è un approccio efficace per l'autenticazione dell'accesso ai prodotti intelligenti, ma la sua implementazione ha sempre richiesto una potenza di calcolo locale ad alte prestazioni o una connettività a banda larga sempre attiva per risposte rapide. È stato anche preso di mira come bersaglio di spoofing e desta preoccupazioni legate alla privacy degli utenti.
Come mostrato, un processore specializzato e una libreria software di NXP Semiconductors offrono un approccio alternativo che può eseguire con precisione il riconoscimento facciale offline in meno di un secondo senza una connessione cloud, mitigando i tentativi di spoofing.

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.