CZK | EUR | USD

Rychlá implementace rozpoznávání obličeje odolného proti spoofingu bez připojení ke cloudu

By Stephen Evanczuk

Contributed By Digi-Key's North American Editors

Rozpoznávání obličeje se široce používá k ověřování při přístupu k chytrým telefonům, ale pokusy o širší uplatnění této technologie v jiných oblastech zkrachovaly i přes její efektivitu a snadnost používání. Vývojáři musí kromě technických výzev, jako je implementace spolehlivých a levných řešení strojového učení, řešit také obavy uživatelů ohledně spolehlivosti a ochrany soukromí konvenčních metod rozpoznávání obličeje, které závisí na připojeních ke cloudu zranitelných vůči spoofingu.

Tento článek pojednává o obtížnosti zabezpečeného ověřování a poté představí hardwarové a softwarové řešení od společnosti NXP Semiconductors, které tyto problémy řeší. Poté si ukážeme, jak mohou vývojáři bez předchozích zkušeností s metodami strojového učení použít řešení v chytrém produktu k rychlé implementaci offline rozpoznávání obličeje s ochranou proti spoofingu.

Výzvy zabezpečeného ověřování pro chytré produkty

Při řešení rostoucích obav o zabezpečení chytrých produktů zbylo vývojářům několik udržitelných možností pro spolehlivé ověřování uživatelů, kteří požadují rychlý, ale bezpečný přístup. Tradiční metody se spoléhají na metody vícefaktorového ověřování, které spočívají na nějaké kombinaci tří klasických faktorů ověřování: „Něco, co znáte“, například heslo; „Něco, co máte“, například fyzický klíč nebo karta s klíčem; a „Něco, čím jste“, což je obvykle biometrický faktor, jako je otisk prstu nebo oční duhovka. Při použití tohoto přístupu může silně zabezpečený zámek dveří k odemčení vyžadovat, aby uživatel zadal přístupový kód, použil kartu s klíčem a ještě poskytl otisk prstu. V praxi jsou takto přísné požadavky na obtíž nebo jednoduše nepraktické pro spotřebitele, kteří se potřebují často a snadno opakovaně ověřovat k přístupu k chytrému telefonu nebo jinému běžně používanému zařízení.

Použití rozpoznávání obličeje výrazně zjednodušilo ověřování uživatelů chytrých telefonů, ale chytré telefony mají některé výhody, které nemusejí mít všechna zařízení. Kromě významného výpočetního výkonu, který je u špičkových chytrých telefonů k dispozici, je základním požadavkem pro poskytování sofistikované škály služeb, které jejich uživatelé běžně očekávají, také neustálá konektivita.

U mnoha produktů, které vyžadují zabezpečené ověřování, bude základní operační platforma obvykle poskytovat skromnější výpočetní prostředky a omezenější konektivitu. Služby rozpoznávání obličeje od předních poskytovatelů cloudových služeb přesouvají zatížení zpracování na cloud, ale potřeba robustní konektivity pro zajištění minimální latence odezvy by mohla mít za následek požadavky, které překračují možnosti platformy. Stejně důležité nebo ještě důležitější je pro uživatele přenos jejich obrazu přes veřejné sítě kvůli zpracování a dále potenciální uložení v cloudu, což v nich vzbuzuje významné obavy o ochranu soukromí.

Použitím procesorů i.MX RT106F společnosti NXP Semiconductors a souvisejícího softwaru mohou nyní vývojáři implementovat offline rozpoznávání tváře, které tyto obavy přímo řeší.

Hardware a software pro offline rozpoznávání tváře odolné vůči spoofingu

Zástupce i.MX RT1060 mikrokontrolérů (MCU) crossover společnosti NXP patří do řady i.MX RT106F společnosti NXP, která je speciálně navržená tak, aby podporovala snadnou integraci offline rozpoznávání obličeje do chytrých domácích zařízení, spotřebních zařízení, bezpečnostních zařízení a průmyslového vybavení. Procesory jsou založeny na jádru Arm® Cortex®-M7 a v procesoru MIMXRT106FCVL5B průmyslové třídy běží na průmyslové frekvenci 528 MHz. V procesorech komerční třídy, jako jsou modely MIMXRT106FDVL6AMIMXRT106FDVL6B, běží při 600 MHz.

Kromě podpory široké škály externích paměťových rozhraní obsahují procesory i.MX RT106F 1MB paměť s náhodným přístupem (RAM) na čipu. Z toho 512 kB je nakonfigurováno jako univerzální RAM a zbylých 512 kB lze konfigurovat buď jako univerzální RAM, nebo jako úzce propojenou paměť (TCM) pro instrukce (I-TCM) nebo data (D-TCM). Spolu s řízením spotřeby energie na čipu nabízejí tyto procesory rozsáhlou sadu integrovaných funkcí pro grafiku, zabezpečení, ovládání systému a analogová i digitální rozhraní, která jsou obvykle nutná k podpoře spotřebních zařízení, průmyslových rozhraní člověk-stroj (HMI) a řízení motoru (obrázek 1).

Schéma procesorů i.MX RT106F od společnosti NXP Semiconductor (kliknutím zvětšíte)Obrázek 1: Procesory i.MX RT106F společnosti NXP Semiconductor kombinují celou sadu funkčních bloků potřebných k podpoře rozpoznávání tváře u spotřebních, průmyslových a bezpečnostních produktů. (Zdroj obrázku: společnost NXP)

I když jsou procesory i.MX RT106F podobné ostatním zástupcům řady i.MX RT1060, dodávají se s runtime licencí pro software rozpoznávání obličeje Oasis Lite společnosti NXP. Běhové prostředí Oasis Lite, navržené k vysoké inferenci v této třídě procesorů, provádí detekci, rozpoznávání a dokonce omezenou klasifikaci emocí pomocí inferenčních modelů neurální sítě (NN) běžících na inferenčním enginu a MiniCV – ořezané verzi knihovny počítačového vidění s otevřeným zdrojem OpenCV. Inferenční engine je založen na knihovně NN společnosti NXP a knihovně Arm Cortex Microcontroller System Interface Standard NN (CMSIS-NN) (obrázek 2).

Schéma běhové knihovny Oasis Lite společnosti NXPObrázek 2: Běhová knihovna Oasis Lite společnosti NXP obsahuje jádro Oasis Lite, které využívá MiniCV a inferenční engine NXP postavený na knihovnách neuronových sítí od společností NXP a Arm. (Zdroj obrázku: společnost NXP)

Inferenční modely jsou umístěny na platformě i.MX RT106F, takže se detekce a rozpoznávání obličeje provádějí lokálně, na rozdíl od jiných řešení, která při spouštění algoritmů strojového učení závisí na cloudových zdrojích. Díky této schopnosti rozpoznávání obličeje offline mohou konstruktéři chytrých produktů zajistit ochranu soukromí a zabezpečené ověřování i přes malou šířku pásma nebo nevyrovnané připojení k internetu. Kromě toho dochází k ověřování u této kombinace hardwaru a softwaru rychle, což vyžaduje méně než 800 ms, aby se procesor probudil z pohotovostního režimu s nízkou spotřebou a prováděl úplné rozpoznání obličeje.

Knihovna Oasis Lite zjednodušuje při použití s procesorem i.MX RT106F implementaci offline rozpoznávání obličeje u chytrých produktů, ale procesor a běhové prostředí jsou samozřejmě pouze součástí požadovaného systémového řešení. Spolu s úplnější sadou systémových komponent vyžaduje efektivní řešení ověřování schopnost zobrazování, která může zmírnit typ bezpečnostní hrozby zvané prezentační útoky. Tyto útoky se pokoušejí zfalšovat ověřování při rozpoznávání obličeje pomocí fotografií. Pro vývojáře, kteří chtějí rychle nasadit ověřování založené na obličeji ve svých vlastních produktech, poskytuje vývojová sada SLN-VIZNAS-IOT společnosti NXP a přidružený software platformu připravenou k použití pro hodnocení, prototypování a vývoj offline rozpoznávání obličeje s ochranou proti spoofingu.

Kompletní zabezpečené systémové řešení pro rozpoznávání obličeje

Stejně jako u nejpokročilejších procesorů vyžaduje procesor i.MX RT106F k zajištění efektivní výpočetní platformy pouze několik dalších komponent. Sada SLN-VIZNAS-IOT společnosti NXP doplňuje návrh integrací procesoru i.MX RT106F s dalšími zařízeními, a poskytuje tak úplnou hardwarovou platformu (obrázek 3).

Schéma sady SLN-VIZNAS-IOT společnosti NXP (kliknutím zvětšíte)Obrázek 3: Sada SLN-VIZNAS-IOT společnosti NXP obsahuje připojený modul, který poskytuje robustní připojenou systémovou platformu potřebnou ke spuštění ověřovacího softwaru. (Zdroj obrázku: společnost NXP)

Připojená deska modulu sady kombinuje procesor MIMXRT106FDVL6A i.MX RT106F, bezpečnostní prvek A71CH, obojí od společnosti NXP, a dvě možnosti připojení – systém na čipu (SoC) s nízkou spotřebou energie (BLE) Kinetis KW41Z MKW41Z512VHT4 společnosti NXP a modul Wi-Fi / Bluetooth LBEE5KL1DX-883 společnosti Murata Electronics.

K doplnění paměti procesoru na čipu přidává připojený modul 256MB synchronní dynamickou RAM (SDRAM) W9825G6JB společnosti Winbond Electronics, dále od společnosti Integrated Silicon Solution, Inc. 256Mbit flash paměť NOR IS26KL256S-DABLI00 (ISSI) a 256Mbitové zařízení IS25LP256D společnosti ISSI se čtyřmi sériovými periferními rozhraními (SPI).

Nakonec je do modulu přidán snižovač napětí XCL214B333DR společnosti Torex Semiconductor k doplnění interních funkcí řízení spotřeby energie procesoru i.MX RT106F pro další zařízení na připojené desce modulu.

Připojený modul se naopak připevňuje k aplikační desce vidění, která kombinuje pasivní infračervený (PIR) snímač IRA-S210ST01 společnosti Murata Electronics, snímač pohybu, nabíječku baterií, podporu zvuku, světelné diody (LED), tlačítka a konektory rozhraní (obrázek 4).

Schéma sady SLN-VIZNAS-IOT společnosti NXP (kliknutím zvětšíte)Obrázek 4: V sadě SLN-VIZNAS-IOT společnosti NXP je připojený modul (vlevo) připojen k aplikační desce vidění, aby poskytl hardwarový základ pro rozpoznávání obličeje. (Zdroj obrázku: společnost NXP)

Spolu s touto systémovou platformou vyžaduje zcela jasně návrh systému rozpoznávání obličeje vhodný kamerový senzor k zachycení obrazu obličeje uživatele. Jak již bylo zmíněno dříve, obavy z prezentačních útoků vyžadují další zobrazovací schopnosti.

Potlačení prezentačních útoků

Vědci po celá léta zkoumali různé metody detekce prezentačních útoků (PAD) určené k potlačení těchto pokusů, jako je použití latentních otisků prstů nebo obrázků obličeje k obelstění ověřovacích systémů založených na biometrických prvcích. Ačkoli podrobnosti dalece přesahují rámec tohoto článku, metody PAD obecně používají hloubkovou analýzu kvality a charakteristik biometrických údajů zachycených jako součást procesu, jakož i metody detekce „živosti“ určené k rozpoznání, zda byly biometrické údaje zachyceny od živé osoby. V pozadí mnoha z těchto různých metod hrají modely hlubokých neuronových sítí (DNN) důležitou roli nejen při rozpoznávání obličejů, ale také při identifikaci pokusů o obelstění systému. Nicméně zobrazovací systém používaný k zachycení obličeje uživatele může poskytnout další podporu detekce živosti.

Společnost NXP zahrnula do sady SLN-VIZNAS-IOT kamerové moduly, které obsahují pár obrazových senzorů MT9M114 společnosti ON Semiconductor. Zde je jedna kamera vybavena červeným, zeleným, modrým (RGB) filtrem a druhá kamera je vybavena infračerveným (IR) filtrem. Kamera RGB, připojená přes rozhraní kamery k aplikační desce vidění, generuje normální obraz viditelného světla, zatímco infračervená kamera snímá obraz, který by se pro živého člověka lišil od obrazu osoby. Pomocí tohoto přístupu detekce živosti spolu s jeho interní funkcí rozpoznávání obličeje poskytuje sada SLN-VIZNAS-IOT offline schopnost rozpoznávání obličeje s ochranou proti spoofingu v balení o rozměrech přibližně 30 × 40 mm (obrázek 5).

Obrázek hardwarové sady SLN-VIZNAS-IOT společnosti NXPObrázek 5: Hardwarová sada SLN-VIZNAS-IOT společnosti NXP integruje duální kamerový systém pro detekci živosti (nahoře) a aplikační desku vidění (dole) s připojeným modulem, aby poskytla miniaturní řešení pro offline rozpoznávání obličeje s funkcí ochrany proti spoofingu. (Zdroj obrázku: společnost NXP)

Začínáme se sadou SLN-VIZNAS-IOT

Sada SLN-VIZNAS-IOT společnosti NXP je připravena k použití s vestavěnými modely rozpoznávání obličeje. Vývojáři zapojí kabel USB a stisknutím tlačítka na sadě provedou jednoduchou manuální registraci obličeje pomocí předinstalované aplikace „elock“ a doprovodné mobilní aplikace (obrázek 6, vlevo). Po registraci a ověření registrovaného obličeje sadou zobrazí mobilní aplikace zprávu „Vítejte doma“ a štítek „Odemčeno“ (obrázek 6, vpravo).

Obrázek hardwarové sady SLN-VIZNAS-IOT společnosti NXP je funkční ihned po vybalení z krabiceObrázek 6: Hardwarová sada SLN-VIZNAS-IOT společnosti NXP funguje ihned po vybalení z krabice a využívá doprovodnou aplikaci k registraci obličeje (vlevo) a k rozpoznání registrovaných obličejů (vpravo). (Zdroj obrázku: společnost NXP)

Software Oasis Lite pro rozpoznávání obličeje, který je součástí sady, zpracovává modely ze své databáze až 3000 obličejů RGB s přesností rozpoznávání 99,6 % a až 100 IR obličejů s přesností ochrany proti spoofingu 96,5 %. Jak již bylo zmíněno dříve, hardwarové/softwarové řešení společnosti NXP potřebuje méně než jednu sekundu k provedení detekce obličeje, porovnání obrazu, kontrole kvality, detekci živosti a rozpoznání v rozsahu od 0,2 do 1,0 metru. Ve skutečnosti podporuje systém alternativní „lehký“ inferenční model, který je schopen provést stejnou sekvenci za méně než 0,5 s, ale podporuje menší maximální velikost databáze 1000 obličejů RGB a 50 obličejů IR.

Vytváření vlastních aplikací pro rozpoznávání obličejů

Sada SLN-VIZNAS-IOT společnosti NXP tak, jak je, umožňuje vývojářům rychle vyhodnotit, prototypovat a vyvíjet aplikace pro rozpoznávání obličejů. Při vytváření vlastních hardwarových řešení slouží sada jako kompletní referenční návrh s úplnými schématy a podrobným kusovníkem (BOM). Pro vývoj softwaru mohou programátoři používat integrované vývojové prostředí (IDE) MCUXpresso společnosti NXP s podporou a konfiguračními nástroji FreeRTOS. Pro tuto aplikaci vývojáři jednoduše používají online nástroj MCUXpresso SDK Builder společnosti NXP ke konfiguraci svého vývojového prostředí softwaru pomocí sady VIZNAS SDK od společnosti NXP, která obsahuje modul vidění strojového učení Oasis Lite společnosti NXP (obrázek 7).

Schéma – společnost NXP poskytuje komplexní softwarové prostředíObrázek 7: Společnost NXP poskytuje komplexní softwarové prostředí, které spouští běhovou knihovnu Oasis Lite společnosti NXP a obslužný middleware v operačním systému FreeRTOS. (Zdroj obrázku: společnost NXP)

Softwarový balíček obsahuje kompletní zdrojový kód pro operační prostředí i ukázkovou aplikaci elock, uvedenou výše. Společnost NXP neposkytuje zdrojový kód pro svůj vlastní engine Oasis Lite ani pro modely. Místo toho pracují vývojáři s běhovou knihovnou Oasis Lite pomocí poskytovaného aplikačního programovacího rozhraní (API), které obsahuje sadu intuitivních volání funkcí k provádění podporovaných operací. Vývojáři navíc používají poskytnutou sadu definic a struktur C k určení různých parametrů, včetně velikosti obrazu, přidělení paměti, zpětných volání a povolených funkcí používaných systémem při spuštění běhového prostředí Oasis Lite (zápis 1).

Kopírovat
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;

Zápis 1: Vývojáři mohou upravovat parametry spuštění softwaru úpravou obsahu struktur, jako je ta, která je zde uvedena pro inicializaci běhového prostředí Oasis Lite. (Zdroj obrázku: společnost NXP)

Ukázkový kód aplikace elock demonstruje klíčové vzory návrhu pro spuštění Oasis jako úlohy běžící v rámci systému FreeRTOS, inicializuje prostředí a přechází do jeho normální fáze běhu. Ve fázi běhu funguje běhové prostředí na každém snímku obrazu a provádí poskytované funkce zpětného volání spojené s každou událostí definovanou v prostředí (zápis 2).

Kopírovat
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;

Zápis 2: Běhový modul Oasis Lite rozpoznává řadu událostí dokumentovaných jako výčtová sada v souboru záhlaví běhového modulu Oasis Lite. (Zdroj obrázku: společnost NXP)

Ukázková aplikace může vývojářům poskytovat podrobné ladicí zprávy popisující výsledky spojené s každou událostí zpracovanou obslužnou rutinou události (EvtHandler). Například po dokončení kontroly kvality (OASISLT_EVT_QUALITY_CHK_COMPLETE) vytiskne systém ladicí zprávy popisující výsledek a po dokončení rozpoznávání obličeje (OASISLT_EVT_REC_COMPLETE) systém stáhne ID uživatele a jméno ze své databáze pro rozpoznané obličeje a vytiskne tyto informace (zápis 3).

Kopírovat
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;

Zápis 3: Jak je ukázáno v tomto fragmentu kódu ukázkové aplikace v distribuci softwaru NXP, obslužná rutina události zpracovává události, ke kterým došlo během sekvence rozpoznávání obličeje. (Zdroj obrázku: společnost NXP)

Kromě podpory požadavků na zpracování rozpoznávání obličeje je software SLN-VIZNAS-IOT společnosti NXP navržen tak, aby chránil operační prostředí. K zajištění zabezpečení běhového prostředí je systém navržen tak, aby ověřoval integritu a autenticitu každého podepsaného obrazu načteného do systému pomocí certifikátu uloženého v souborovém systému sady SLN-VIZNAS-IOT. Protože tato ověřovací sekvence začíná důvěryhodným spouštěcím zavaděčem uloženým v paměti jen ke čtení (ROM), poskytuje tento proces řetězec důvěryhodnosti pro spuštění firmwaru aplikace. Také proto, že podepisování a ověřování kódu může zpomalit vývoj, je tento proces ověřování navržen tak, aby ho bylo možné během návrhu a ladění softwaru obejít. Sada SLN-VIZNAS-IOT je ve skutečnosti dodávána s předinstalovanými podepsanými bitovými kopiemi, ale ověření podpisu kódu je ve výchozím nastavení obcházeno. Vývojáři mohou snadno nastavit možnosti umožňující úplné ověření podpisu kódu pro produkci.

Spolu s běhovým prostředím a souvisejícím ukázkovým kódem aplikace poskytuje společnost NXP mobilní aplikace pro systém Android s plným zdrojovým kódem Java. Jedna z aplikací, VIZNAS FaceRec Manager, poskytuje jednoduché rozhraní pro registraci obličejů a správu uživatelů. Další aplikace, VIZNAS Companion, umožňuje uživatelům poskytnout sadě pověření Wi-Fi pomocí existujícího připojení Wi-Fi nebo BLE.

Závěr

Rozpoznávání obličeje nabízí efektivní přístup k ověřování přístupu k chytrým produktům, ale jeho implementace si kvůli rychlé odezvě obvykle vyžaduje místní vysoce výkonné výpočty nebo vždy dostupnou konektivitu s velkou šířkou pásma. Tato funkce je také cílem spoofingu a je předmětem obav o soukromí uživatelů.

Jak je ukázáno, specializovaná procesorová a softwarová knihovna od společnosti NXP Semiconductors nabízí alternativní přístup, který dokáže přesně provést offline rozpoznávání obličeje za méně než jednu sekundu bez připojení ke cloudu a zároveň potlačit pokusy o 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