RON | EUR | USD

Implementarea rapidă a recunoașterii faciale protejate împotriva spoofing-ului fără o conexiune în cloud

By Stephen Evanczuk

Contributed By Digi-Key's North American Editors

Recunoașterea facială a fost acceptată pe scară largă pentru autentificarea accesului la telefoane inteligente, dar încercările de aplicare a acestei tehnologii pe scară mai largă au eșuat în alte domenii, în ciuda eficacității și ușurinței de utilizare a acesteia. Pe lângă provocările tehnice legate de punerea în aplicare a unor soluții de învățare automată fiabile și cu costuri reduse, dezvoltatorii trebuie să abordeze preocupările utilizatorilor legate de fiabilitatea și confidențialitatea metodelor convenționale de recunoaștere facială, care depind de conexiunile în cloud vulnerabile la fenomenul de spoofing.

Acest articol discută despre dificultățile legate de autentificarea sigură înainte de a prezenta o soluție hardware și software de la NXP Semiconductors care abordează aceste probleme. Apoi arată cum dezvoltatorii care nu au experiență anterioară în metodele de învățare automată pot utiliza soluția pentru implementarea rapidă offline a recunoașterii faciale cu protecție împotriva spoofing-ului într-un produs inteligent.

Provocările legate de autentificarea sigură pentru produsele inteligente

Pentru a face față preocupărilor tot mai mari legate de securitatea produselor inteligente, dezvoltatorii au rămas cu puține opțiuni viabile pentru autentificarea fiabilă a utilizatorilor care doresc un acces rapid, dar sigur. Metodele tradiționale se bazează pe metode de autentificare cu factori multipli care utilizează o combinație a celor trei factori clasici de autentificare: „Ceva ce știi”, cum ar fi o parolă; „Ceva ce ai”, cum ar fi o cheie fizică sau un card de acces; și „Ceva ce ești”, care este, de obicei, un factor biometric, cum ar fi amprentele sau irisul. Utilizând această abordare, o încuietoare de ușă puternic autentificată ar putea cere utilizatorului să introducă un cod de acces, să utilizeze un card de acces și, în plus, să furnizeze o amprentă pentru a debloca ușa. În practică, astfel de cerințe stricte sunt complicate sau, pur și simplu, nepractice pentru consumatorii care trebuie să se autentifice din nou în mod frecvent și ușor cu un smartphone sau cu un alt dispozitiv utilizat în mod obișnuit.

Utilizarea recunoașterii faciale a simplificat considerabil autentificarea pentru utilizatorii de smartphone-uri, dar smartphone-urile posedă unele avantaje care ar putea să nu fie disponibile pe toate dispozitivele. Pe lângă puterea de procesare semnificativă disponibilă în smartphone-urile de ultimă generație, conectivitatea permanentă este o cerință fundamentală pentru furnizarea gamei sofisticate de servicii la care se așteaptă utilizatorii în mod obișnuit.

Pentru multe produse care necesită o autentificare securizată, platforma de operare de bază va oferi, de obicei, resurse de calcul mai modeste și o conectivitate mai limitată. Serviciile de recunoaștere a fețelor oferite de principalii furnizori de servicii cloud transferă sarcina de procesare în cloud, dar nevoia de conectivitate robustă pentru a asigura o latență minimă a răspunsului ar putea impune cerințe care rămân dincolo de capacitățile platformei. Fiind o preocupare la fel de mare, sau chiar mai mare, pentru utilizatori, transmiterea imaginii lor prin rețele publice pentru procesare și stocarea potențială a acesteia în cloud ridică probleme semnificative legate de confidențialitate.

Utilizând procesoarele i.MX RT106F de la NXP Semiconductors și software-ul asociat, dezvoltatorii pot implementa acum recunoașterea facială offline care abordează direct aceste probleme.

Hardware și software pentru recunoașterea facială offline cu protecție anti-spoofing

Făcând parte din familia de microcontrolere (MCU) NXP i.MX RT1060 Crossover, seria NXP i.MX RT106F este special concepută pentru a susține integrarea ușoară a recunoașterii faciale offline în dispozitive inteligente pentru casă, electrocasnice, dispozitive de securitate și echipamente industriale. Bazate pe un nucleu cu procesor Arm® Cortex®-M7, procesoarele funcționează la 528 megahertzi (MHz) pentru MIMXRT106FCVL5B de calitate industrială sau la 600 MHz pentru procesoarele de calitate comercială, cum ar fi MIMXRT106FDVL6A și MIMXRT106FDVL6B.

Pe lângă faptul că acceptă o gamă largă de interfețe de memorie externă, procesoarele i.MX RT106F includ 1 megaoctet (Mbyte) de memorie cu acces aleatoriu (RAM) integrată, cu 512 kiloocteți (Kbyte) configurați ca memorie RAM de uz general și 512 Kbytes care pot fi configurați fie ca memorie RAM de uz general, fie ca memorie strâns cuplată (TCM) pentru instrucțiuni (I-TCM) sau date (D-TCM). Împreună cu gestionarea integrată a energiei, aceste procesoare oferă un set extins de caracteristici integrate pentru grafică, securitate, controlul sistemului și interfețe analogice și digitale care sunt, în mod obișnuit, necesare pentru a susține dispozitivele de consum, interfețele om-mașină (HMI) industriale și controlul motoarelor (Figura 1).

Schema procesoarelor i.MX RT106F de la NXP Semiconductor (faceți clic pentru a mări imaginea)Figura 1: procesoarele i.MX RT106F de la NXP Semiconductor combină un set complet de blocuri funcționale necesare pentru a susține recunoașterea facială pentru produse de consum, industriale și de securitate. (Sursă imagine: NXP)

Deși sunt similare cu alți membri ai familiei i.MX RT1060, procesoarele i.MX RT106F includ o licență de execuție pentru software-ul de recunoaștere facială Oasis Lite de la NXP. Conceput pentru a accelera inferența pe această clasă de procesoare, mediul de execuție Oasis Lite realizează detectarea și recunoașterea facială și chiar clasificarea limitată a emoțiilor folosind modele de inferență de rețele neuronale (NN) care rulează pe un motor de inferență și MiniCV – o versiune redusă a bibliotecii open-source OpenCV de vedere automatizată. Motorul de inferență se bazează pe o bibliotecă NN NXP și pe biblioteca NN standard de interfețe pentru sistemele microcontrolerelor de la Arm Cortex (CMSIS-NN) (Figura 2).

Schema bibliotecii de execuție NXP Oasis LiteFigura 2: biblioteca de execuție NXP Oasis Lite include un nucleu Oasis Lite care utilizează MiniCV și un motor de inferență NXP construit pe biblioteci de rețele neuronale de la NXP și Arm. (Sursă imagine: NXP)

Modelele de inferență sunt localizate pe platforma i.MX RT106F, astfel că detectarea și recunoașterea fețelor se execută la nivel local, spre deosebire de alte soluții care depind de resurse bazate pe cloud pentru a rula algoritmii de învățare automată. Datorită acestei funcții de recunoaștere facială offline, proiectanții de produse inteligente pot asigura o autentificare privată și sigură, în ciuda lățimii de bandă reduse sau a conectivității intermitente la internet. În plus, autentificarea se realizează rapid cu această combinație hardware și software, fiind nevoie de mai puțin de 800 de milisecunde (ms) pentru ca procesorul să se trezească din starea de standby cu consum redus de energie și să finalizeze recunoașterea facială.

Utilizat împreună cu procesorul i.MX RT106F, timpul de execuție Oasis Lite simplifică implementarea recunoașterii faciale offline pentru produsele inteligente, dar procesorul și mediul de execuție sunt, desigur, doar o parte a soluției de sistem necesare. Pe lângă un set mai complet de componente de sistem, o soluție de autentificare eficientă necesită o capacitate de imagistică care să poată atenua un tip de amenințare la adresa securității cunoscut sub numele de atacuri de prezentare. Aceste atacuri încearcă să păcălească autentificarea prin recunoașterea feței folosind fotografii. Pentru dezvoltatorii care doresc să implementeze rapid autentificarea bazată pe recunoașterea facială în propriile produse, kitul de dezvoltare NXP SLN-VIZNAS-IOT și software-ul asociat oferă o platformă gata de utilizare pentru evaluarea, prototiparea și dezvoltarea recunoașterii faciale offline și anti-spoofing.

Soluție completă de sisteme securizate pentru recunoașterea facială

Ca și în cazul majorității procesoarelor avansate, procesorul i.MX RT106F necesită doar câteva componente suplimentare pentru a oferi o platformă de calcul eficientă. Kitul NXP SLN-VIZNAS-IOT completează proiectul prin integrarea i.MX RT106F cu dispozitive suplimentare pentru a oferi o platformă hardware completă (Figura 3).

Schema kitului NXP SLN-VIZNAS-IOT (faceți clic pentru a mări imaginea)Figura 3: kitul NXP SLN-VIZNAS-IOT include un modul conectat care oferă o platformă robustă cu sistem conectat, necesară pentru a rula software-ul de autentificare. (Sursă imagine: NXP)

Placa de modul conectat a kitului combină un procesor NXP MIMXRT106FDVL6A i.MX RT106F, un element securizat NXP A71CH și două opțiuni de conectivitate – sistemul pe un cip (SoC) KW41Z512VHT4 Kinetis KW41Z Bluetooth de energie redusă (BLE) de la NXP și modulul LBEE5KL1DX-883 Wi-Fi/Bluetooth de la Murata Electronics.

Pentru a suplimenta memoria pe un cip a procesorului, modulul conectat adaugă memoria RAM dinamică sincronă (SDRAM) de 256 megabiți (Mbit) W9825G6JB de la Winbond Electronics, o memorie flash NOR de 256 Mbiți de la Integrated Silicon Solution. Inc. (ISSI), IS26KL256S-DABLI00, și dispozitivul ISSI IS25LP256D de 256 Mbiți cu interfață serială periferică (SPI) cu patru elemente.

În cele din urmă, modulul adaugă un convertor de coborâre Torex Semiconductor XCL214B333DR pentru a suplimenta capacitățile interne de gestionare a energiei ale procesorului i.MX RT106F pentru dispozitivele suplimentare de pe placa modulului conectat.

La rândul său, modulul conectat se montează pe o placă de aplicații de vedere care combină un senzor în infraroșu pasiv (PIR) IRA-S210ST01 de la Murata Electronics, un senzor de mișcare, un încărcător de baterii, suport audio, diode emițătoare de lumină (leduri), butoane și conectori de interfață (Figura 4).

Imaginea kitului NXP SLN-VIZNAS-IOT (faceți clic pentru a mări imaginea)Figura 4: în kitul NXP SLN-VIZNAS-IOT, modulul conectat (stânga) este atașat la placa de aplicații de vedere pentru a asigura baza hardware pentru recunoașterea facială. (Sursă imagine: NXP)

Pe lângă această platformă de sistem, proiectarea unui sistem de recunoaștere facială necesită, în mod clar, un senzor de cameră adecvat pentru a capta o imagine a feței utilizatorului. Cu toate acestea, după cum s-a menționat anterior, preocupările legate de atacurile de prezentare necesită capacități imagistice suplimentare.

Atenuarea atacurilor de prezentare

Cercetătorii explorează de ani de zile diferite metode de detectare a atacurilor de prezentare (PAD), concepute pentru a atenua încercările de utilizare a amprentelor sau a imaginilor feței latente pentru a păcăli sistemele de autentificare bazate pe date biometrice. Deși detaliile depășesc cu mult sfera de aplicare a acestui articol, metodele PAD utilizează, în general, o analiză aprofundată a calității și a caracteristicilor datelor biometrice capturate ca parte a procesului, precum și metode de detectare a „vitalității” concepute pentru a determina dacă datele biometrice au fost capturate de la o persoană vie. Aflându-se la baza multora dintre aceste metode diferite, modelele de rețele neuronale profunde (DNN) joacă un rol important nu numai în recunoașterea facială, ci și în identificarea încercărilor de păcălire a sistemului. Cu toate acestea, sistemul de imagistică utilizat pentru a capta fața utilizatorului poate oferi un sprijin suplimentar pentru detectarea vitalității.

Pentru kitul SLN-VIZNAS-IOT, NXP include module de cameră care conțin o pereche de senzori de imagine MT9M114 de la ON Semiconductor. Aici, o cameră este echipată cu un filtru roșu, verde, albastru (RGB), iar cealaltă cameră este dotată cu un filtru infraroșu (IR). Atașată prin intermediul interfețelor camerei la placa de aplicații de vedere, camera RGB generează o imagine normală în lumină vizibilă, în timp ce camera IR captează o imagine care ar fi diferită pentru o persoană vie comparativ cu o imagine a persoanei. Utilizând această abordare de detectare a vitalității împreună cu funcția internă de recunoaștere facială, kitul SLN-VIZNAS-IOT oferă o funcție de recunoaștere facială offline și anti-spoofing într-un pachet care măsoară aproximativ 30 x 40 milimetri (mm) (Figura 5).

Imaginea kitului hardware NXP SLN-VIZNAS-IOT SLN-VIZNAS-IOTFigura 5: kitul hardware NXP SLN-VIZNAS-IOT integrează un sistem cu două camere pentru detectarea vitalității (sus) și o placă de aplicații de vedere (jos) cu un modul conectat pentru a oferi o soluție directă pentru recunoașterea facială offline cu funcție anti-spoofing. (Sursă imagine: NXP)

Noțiuni de bază privind kitul SLN-VIZNAS-IOT

Kitul NXP SLN-VIZNAS-IOT este furnizat gata de utilizare cu modele de recunoaștere facială încorporate. Dezvoltatorii conectează un cablu USB și ating un buton de pe kit pentru a efectua o înregistrare facială manuală simplă folosind aplicația „de blocare electronică” preîncărcată și aplicația mobilă însoțitoare (Figura 6, stânga). După înregistrare, aplicația mobilă va afișa un mesaj „Bine ați venit acasă” și o etichetă „deblocat” atunci când kitul autentifică fața înregistrată (Figura 6, dreapta).

Imaginea kitului hardware NXP SLN-VIZNAS-IOT funcționează imediat după ce este scos din cutieFigura 6: kitul hardware NXP SLN-VIZNAS-IOT funcționează imediat după scoaterea din cutie, utilizând o aplicație însoțitoare pentru a înregistra o față (stânga) și a recunoaște fețele înregistrate (dreapta). (Sursă imagine: NXP)

Software-ul de recunoaștere facială Oasis Lite al kitului procesează modele din baza sa de date, ce include până la 3000 de fețe RGB, cu o precizie de recunoaștere de 99,6% și până la 100 de fețe IR cu o precizie de 96,5% pentru anti-spoofing. După cum s-a menționat anterior, soluția hardware/software NXP are nevoie de mai puțin de o secundă (s) pentru a efectua detectarea facială, alinierea imaginii, verificarea calității, detectarea vitalității și recunoașterea pe o rază cuprinsă între 0,2 și 1,0 metri (m). De fapt, sistemul acceptă un model alternativ de inferență „ușoară”, capabil să realizeze aceeași secvență în mai puțin de 0,5 s, dar acceptă o dimensiune maximă mai mică pentru baza de date, de 1000 de fețe RGB și 50 de fețe IR.

Crearea aplicațiilor personalizate de recunoaștere facială

Folosit ca atare, kitul NXP SLN-VIZNAS-IOT permite dezvoltatorilor să evalueze, să creeze prototipuri și să dezvolte rapid aplicații de recunoaștere a fețelor. Atunci când se creează soluții hardware personalizate, kitul servește ca un proiect de referință complet, cu scheme complete și o listă detaliată de materiale (BOM). Pentru dezvoltarea de software, programatorii pot utiliza mediul de dezvoltare integrat (IDE) NXP MCUXpresso cu suport FreeRTOS și instrumente de configurare. Pentru această aplicație, dezvoltatorii utilizează pur și simplu MCUXpresso SDK Builder online de la NXP pentru a-și configura mediul de dezvoltare software cu VIZNAS SDK de la NXP, care include motorul de vedere cu învățare automată NXP Oasis Lite (Figura 7).

Schemă cu NXP care oferă un mediu software complexFigura 7: NXP oferă un mediu software complex, care rulează biblioteca de execuție NXP Oasis Lite și middleware-ul utilitar pe sistemul de operare FreeRTOS. (Sursă imagine: NXP)

Pachetul de software include codul sursă complet pentru mediul de operare, precum și aplicația de probă pentru blocare electronică menționată anterior. NXP nu furnizează codul sursă pentru motorul său brevetat Oasis Lite sau pentru modele. În schimb, dezvoltatorii lucrează cu biblioteca de execuție Oasis Lite folosind interfața de programare a aplicațiilor (API) furnizată, ce include un set de apeluri de funcții intuitive pentru a efectua operațiunile acceptate. În plus, dezvoltatorii utilizează un set de definiții și structuri C furnizate pentru a specifica diverși parametri, inclusiv dimensiunea imaginii, alocarea memoriei, apeluri inverse și funcții activate utilizate de sistem la pornirea mediului de execuție Oasis Lite (Lista 1).

Copie
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;

Lista 1: dezvoltatorii pot modifica parametrii de execuție a software-ului prin modificarea conținutului structurilor, cum ar fi cea prezentată aici pentru inițializarea timpului de execuție Oasis Lite. (Sursă cod: NXP)

Exemplul de cod al aplicației de blocare electronică demonstrează modelele cheie de proiectare pentru lansarea Oasis ca o sarcină care rulează sub FreeRTOS, pentru inițializarea mediului și pentru intrarea în etapa de execuție normală. În etapa de execuție, mediul de execuție operează pe fiecare cadru al unei imagini, executând funcțiile de apel invers furnizate asociate cu fiecare eveniment definit în mediu (Lista 2).

Copie
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;

Lista 2: timpul de execuție Oasis Lite recunoaște o serie de evenimente documentate ca un set enumerat în fișierul de antet al timpului de execuție Oasis Lite. (Sursă cod: NXP)

Aplicația de probă poate oferi dezvoltatorilor mesaje de depanare pas cu pas care descriu rezultatele asociate fiecărui eveniment procesat de gestionarul de evenimente (EvtHandler). De exemplu, după finalizarea verificării calității (OASISLT_EVT_QUALITY_CHK_COMPLETE), sistemul tipărește mesaje de depanare care descriu rezultatul, iar după finalizarea recunoașterii faciale (OASISLT_EVT_REC_COMPLETE), sistemul extrage ID-ul și numele utilizatorului din baza sa de date pentru fețele recunoscute și tipărește aceste informații (Lista 3).

Copie
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;

Lista 3: după cum se arată în acest fragment dintr-o aplicație de probă din distribuția de software NXP, un gestionar de evenimente procesează evenimentele întâlnite în timpul secvenței de recunoaștere facială. (Sursă cod: NXP)

Pe lângă faptul că acceptă cerințele de procesare a recunoașterii faciale, software-ul NXP SLN-VIZNAS-IOT este conceput pentru a proteja mediul de operare. Pentru a garanta securitatea în timpul rulării, sistemul este conceput să verifice integritatea și autenticitatea fiecărei imagini semnate încărcate în sistem, utilizând un certificat stocat în sistemul de fișiere al kitului SLN-VIZNAS-IOT. Deoarece această secvență de verificare începe cu un bootloader de încredere stocat în memoria doar cu citire (ROM), acest proces oferă un lanț de încredere pentru rularea firmware-ului aplicației. De asemenea, deoarece semnarea și verificarea codului pot încetini dezvoltarea, acest proces de verificare este conceput pentru a fi ocolit în timpul proiectării și depanării software-ului. De fapt, kitul SLN-VIZNAS-IOT este preîncărcat cu imagini semnate, dar verificarea semnăturilor de cod este ocolită în mod implicit. Dezvoltatorii pot seta cu ușurință opțiunile pentru activarea verificării complete a semnăturilor de cod pentru producție.

Împreună cu mediul de execuție și cu codul aplicației de probă asociate, NXP oferă aplicații mobile Android cu codul sursă Java complet. O aplicație, VIZNAS FaceRec Manager, oferă o interfață simplă pentru înregistrarea fețelor și gestionarea utilizatorilor. O altă aplicație, aplicația VIZNAS Companion, permite utilizatorilor să acorde kitului acces la datele Wi-Fi folosind o conexiune Wi-Fi sau BLE existentă.

Concluzie

Recunoașterea facială oferă o abordare eficientă pentru autentificarea accesului la produsele inteligente, dar punerea în aplicare a necesitat, de obicei, un sistem de calcul local de înaltă performanță sau o conectivitate permanentă cu lățime de bandă mare pentru răspunsuri rapide. Aceasta a fost, de asemenea, ținta unor acțiuni de spoofing și face obiectul unor preocupări legate de confidențialitatea utilizatorilor.

După cum s-a arătat, un procesor specializat și o bibliotecă software de la NXP Semiconductors oferă o abordare alternativă care poate efectua cu precizie recunoașterea facială offline în mai puțin de o secundă, fără o conexiune la cloud, reducând în același timp tentativele de spoofing.

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of Digi-Key Electronics or official policies of Digi-Key Electronics.

About this author

Stephen Evanczuk

Stephen Evanczuk has more than 20 years of experience writing for and about the electronics industry on a wide range of topics including hardware, software, systems, and applications including the IoT. He received his Ph.D. in neuroscience on neuronal networks and worked in the aerospace industry on massively distributed secure systems and algorithm acceleration methods. Currently, when he's not writing articles on technology and engineering, he's working on applications of deep learning to recognition and recommendation systems.

About this publisher

Digi-Key's North American Editors