Megtévesztésbiztos arcfelismerés gyors megvalósítása felhőkapcsolat nélkül
Contributed By DigiKey's North American Editors
2021-02-24
Az arcfelismerés széles körben elfogadottá vált az okostelefonokhoz való hozzáférés hitelesítésére, de a technológia más területeken való szélesebb körű alkalmazására tett kísérletek a hatékonyság és a könnyű használhatóság ellenére kudarcot vallottak. A megbízható, alacsony költségű gépi tanulási megoldások megvalósításának technikai kihívásai mellett a fejlesztőknek foglalkozniuk kell a felhasználóknak a megtévesztéssel szemben sebezhető, felhőkapcsolatoktól függő hagyományos arcfelismerési módszerek megbízhatóságával és adatvédelmével kapcsolatos aggályaival is.
Ez a cikk a biztonsági hitelesítés nehézségeit tárgyalja, majd ismerteti az NXP Semiconductors hardveres és szoftveres megoldását, amely megoldja a problémákat. Ezután bemutatja, hogy a gépi tanulási módszerek terén előzetes tapasztalattal nem rendelkező fejlesztők hogyan használhatják a megoldást a megtévesztésmentes arcfelismerés gyors offline megvalósítására egy intelligens termékben.
Az intelligens termékekhez való hozzáféréshez szükséges biztonsági hitelesítés kihívásai A biztonsági hitelesítés kihívásai intelligens termékekhez való hozzáféréskor
Az intelligens termékek biztonságával kapcsolatos növekvő aggodalmakra reagálva a fejlesztők kevés használható lehetőséget találtak a gyors, de biztonságos hozzáférést igénylő felhasználók megbízható hitelesítésére. A hagyományos módszerek többfaktoros hitelesítési módszerekre támaszkodnak, amelyek a klasszikus három hitelesítési tényező valamilyen kombinációján alapulnak: „Valami, amit tudsz”, például jelszó; „Valami, amivel rendelkezel”, például fizikai kulcs vagy kulcskártya; és „Valami, ami te vagy”, ami általában egy biometrikus tényező, például ujjlenyomat vagy írisz. Ezt a megközelítést alkalmazva egy erősen hitelesített ajtózár megkövetelheti, hogy a felhasználó jelszót írjon be, kulcskártyát használjon, valamint ujjlenyomatot adjon meg az ajtó kinyitásához. A gyakorlatban az ilyen szigorú követelmények zavaróak vagy egyszerűen kivitelezhetetlenek az olyan fogyasztók számára, akiknek gyakran és könnyen kell újra hitelesíteniük magukat okostelefonuk, vagy más, rutinszerűen használt eszközük számára.
Az arcfelismerés használata jelentősen leegyszerűsítette az okostelefon-felhasználók hitelesítését, de az okostelefonok rendelkeznek bizonyos előnyökkel, amelyek nem feltétlenül találhatók meg minden készülékben. Az élvonalbeli okostelefonok jelentős feldolgozási teljesítménye mellett a mindig rendelkezésre álló kapcsolat is alapvető követelmény a felhasználók által rutinszerűen elvárt kifinomult szolgáltatásnyújtáshoz.
Számos biztonsági hitelesítést igénylő termék esetében a mögöttes működési platform jellemzően szerényebb számítási erőforrásokat és korlátozottabb csatlakozási lehetőségeket biztosít. A vezető felhőszolgáltatók arcfelismerő szolgáltatásai a feldolgozás terhét a felhőre helyezik át, de a minimális válaszkésleltetés biztosításához szükséges robusztus kapcsolat olyan követelményeket támaszthat, amelyek meghaladják a platform képességeit. A felhasználók számára ugyanilyen vagy még nagyobb aggodalomra ad okot, hogy képük nyilvános hálózatokon keresztül történő továbbítása, feldolgozása és esetlegesen a felhőben történő tárolása jelentős adatvédelmi problémákat vet fel.
Az NXP Semiconductors i.MX RT106F processzorai és a hozzájuk tartozó szoftver segítségével a fejlesztők mostantól olyan offline arcfelismerést valósíthatnak meg, amely közvetlenül ezeket a problémákat orvosolja.
Hardver és szoftver megtévesztésbiztos offline arcfelismeréshez
Az NXP i.MX RT1060 Crossover mikrovezérlő (MCU) család tagjaként az NXP i.MX RT106F sorozatot kifejezetten úgy tervezték, hogy támogassa az offline arcfelismerés egyszerű integrálását az intelligens otthoni eszközökbe, fogyasztói készülékekbe, biztonsági eszközökbe és ipari berendezésekbe. Az Arm® Cortex®-M7 processzormagra épülő processzorok 528 megahertz (MHz) sebességgel működnek az ipari minőségű MIMXRT106FCVL5B esetében, illetve 600 MHz-en a kereskedelmi minőségű processzorok, például az MIMXRT106FDVL6A és MIMXRT106FDVL6B esetében.
Az i.MX RT106F processzorok a külső memóriainterfészek széles skálájának támogatása mellett 1 Mbyte chipbe épített véletlen hozzáférésű memóriát (RAM) tartalmaznak, amelyből 512 kbyte általános célú RAM-ként, 512 kbyte pedig általános célú RAM-ként vagy utasítások (I-TCM) vagy adatok (D-TCM) számára alacsony késleltetésű memóriaként (TCM) konfigurálható. A chipbe integrált energiafogyasztás-szabályozás mellett ezek a processzorok a fogyasztói eszközök, az ipari ember-gép interfészek (HMI-k) és a motorvezérlés támogatásához jellemzően szükséges grafika, biztonság, rendszerirányítás, valamint analóg és digitális interfészek számára integrált funkciók széles körét kínálják (1. ábra).
1. ábra: Az NXP Semiconductor i.MX RT106F processzoraiban egyesített formában megtalálható minden szükséges funkcionális blokk, amely a fogyasztói, ipari és biztonsági termékek arcfelismerésének támogatásához kell. (Kép: NXP)
Az i.MX RT1060 család többi tagjához hasonlóan az i.MX RT106F processzorok azonban az NXP Oasis Lite arcfelismerő szoftverének futtatókörnyezeti licencét is tartalmazzák. A következtetés ezen a processzorosztályon történő felgyorsítására tervezett Oasis Lite futtatókörnyezet arcészlelést, felismerést, sőt korlátozott érzelemosztályozást is végez neurális hálózati (NN) következtető modellek használatával, amelyek egy következtető motoron és MiniCV-n – a nyílt forráskódú OpenCV számítógépes képfeldolgozó könyvtár lecsupaszított változatán – futnak. A következtető motor egy NXP NN könyvtárra és az Arm Cortex Microcontroller System Interface Standard NN (CMSIS-NN) könyvtárra épül (2. ábra).
2. ábra: Az NXP Oasis Lite futtatókörnyezeti könyvtár tartalmaz egy Oasis Lite magot, amely MiniCV-t és egy NXP neurális hálózati könyvtárakra épülő NXP következtető motort használ. (Forrás: NXP)
A következtető modellek az i.MX RT106F platformon találhatók, így az arcészlelés és az arcfelismerés helyben történik, ellentétben más megoldásokkal, amelyek a gépi tanulási algoritmusok futtatásához felhőalapú erőforrásokra támaszkodnak. Ennek az offline arcfelismerési képességnek köszönhetően az intelligens termékek tervezői alacsony sávszélesség vagy akadozó internetkapcsolat mellett is biztosítani tudják a privát, biztonságos hitelesítést. Továbbá, a hitelesítés ezzel a hardver- és szoftverkombinációval gyorsan történik: a processzornak kevesebb mint 800 ms-ra van szüksége ahhoz, hogy felébredjen az alacsony energiaigényű készenléti állapotból és befejezze az arcfelismerést.
Az i.MX RT106F processzorral együtt használva az Oasis Lite futtatókörnyezet egyszerűsíti az offline arcfelismerés megvalósítását az intelligens termékekben, de a processzor és a futtatókörnyezet természetesen csak egyik része a szükséges rendszermegoldásnak. Egy hatékony hitelesítési megoldásnak a rendszerösszetevők teljesebb készlete mellett olyan képalkotási képességre van szüksége, amely képes gátolni az olyan biztonsági fenyegetéseket, amelyek a biometrikus azonosításon alapuló algoritmusok kijátszását (presentation attack) célozzák. Ezek a támadások fényképek felhasználásával próbálják megtéveszteni az arcfelismerő hitelesítést. Azon fejlesztők számára, akik gyorsan szeretnék saját termékeikben alkalmazni az arcalapú hitelesítést, az NXP SLN-VIZNAS-IOT fejlesztőkészlet és a hozzá tartozó szoftver azonnal használható platformot biztosít az offline, megtévesztésbiztos arcfelismerés kiértékeléséhez, prototípusok készítéséhez és fejlesztéséhez.
Teljes körű biztonságos rendszermegoldás arcfelismeréshez
A legtöbb fejlett processzorhoz hasonlóan az i.MX RT106F processzor is csak néhány további alkatrészt igényel ahhoz, hogy hatékony számítási platformot biztosítson. Az NXP SLN-VIZNAS-IOT készlet az i.MX RT106F és további eszközök integrálásával teszi teljessé a tervezést, így teljes hardverplatformot nyújt (3. ábra).
3. ábra: Az NXP SLN-VIZNAS-IOT készlet tartalmaz egy csatlakoztatott modult, amely a hitelesítési szoftver futtatásához szükséges robusztus csatlakoztatott rendszerplatformot adja. (Kép: NXP)
A készlet csatlakoztatott modulkártyája egy NXP MIMXRT106FDVL6A i.MX RT106F processzort, egy NXP A71CH biztonsági elemet és két csatlakozási lehetőséget — az NXP MKW41Z512VHT4 Kinetis KW41Z Bluetooth low energy (BLE) system-on-chip (SoC), illetve a Murata Electronics LBEE5KL1DX-883 Wi-Fi/Bluetooth modulját — kombinálja.
A processzor lapkán belüli memóriájának kiegészítésére a csatlakoztatott modul a Winbond Electronics W9825G6JB 256 Mbites szinkron dinamikus RAM-ját (SDRAM), az Integrated Silicon Solution Inc. (ISSI) IS26KL256S-DABLI00 256 Mbites NOR flash és az ISSI IS25LP256D 256 Mbites négyszeres soros perifériainterfész (SPI) eszközét tartalmazza.
Végül a modul egy Torex Semiconductor XCL214B333DR buck konverterrel egészíti ki az i.MX RT106F processzor belső energiagazdálkodási képességeit a csatlakoztatott modulkártyán lévő további eszközök számára.
A csatlakoztatott modul viszont egy olyan látó alkalmazási kártyára szerelhető, amely egy Murata Electronics gyártmányú IRA-S210ST01 passzív infravörös (PIR) érzékelőt, mozgásérzékelőt, akkumulátortöltőt, hangtámogatást, fénykibocsátó diódákat (LED), gombokat és interfészcsatlakozókat egyesít (4. ábra) .
4. ábra: Az NXP SLN-VIZNAS-IOT készletben a csatlakoztatott modul (balra) a látó alkalmazási kártyához kapcsolódik az arcfelismerés hardveres alapjának biztosítása céljából. (Kép: NXP)
E rendszerplatform mellett az arcfelismerő rendszer tervezéséhez egyértelműen szükség van egy megfelelő kameraérzékelőre, amely a felhasználó arcának képét rögzíti. Amint azonban korábban említettük, a biometrikus azonosításon alapuló algoritmusok kijátszásával kapcsolatos aggodalmak további képalkotási képességeket igényelnek.
A biometrikus azonosításon alapuló algoritmusok kijátszásának akadályozása
Kutatók évek óta vizsgálják a biometrikus azonosításon alapuló algoritmusok kijátszására tett különböző módszereket (PAD, presentation attack detection), amelyek célja az olyan kísérletek akadályozása, mint például látens ujjlenyomatok vagy arcképek felhasználása a biometrikus alapú hitelesítési rendszerek megtévesztésére. Bár a részletek jóval meghaladják e cikk kereteit, a PAD-módszerek általában a folyamat részeként a rögzített biometrikus adatok minőségének és jellemzőinek mélyreható elemzését, valamint az „élőség” felismerésére szolgáló azon eljárásokat használják, amelyek célja annak megállapítása, hogy a biometrikus adatok élő személytől származnak-e. E különböző módszerek közül soknak alapjaként a mély neurális hálózati (DNN) modellek nemcsak az arcfelismerésben játszanak fontos szerepet, hanem a rendszer megtévesztésére irányuló kísérletek azonosításában is. Mindazonáltal a felhasználó arcának rögzítésére használt képalkotó rendszer további támogatást nyújthat az élőség felismeréséhez.
Az SLN-VIZNAS-IOT készlethez az NXP az ON Semiconductor egy pár MT9M114 képérzékelőjét tartalmazó kameramodulokat mellékel. Itt az egyik kamera piros, zöld, kék (RGB) szűrővel, a másik kamera pedig infravörös (IR) szűrővel rendelkezik. A látó alkalmazási kártyához kamerainterfészeken keresztül csatlakoztatott RGB kamera normál látható fényű képet készít, az IR kamera pedig olyan képet, amely élő személy esetében eltérne az illető személy fényképéről készült képtől. Az SLN-VIZNAS-IOT készlet ezt az élőségérzékelési megközelítést és a belső arcfelismerő képességet alkalmazva offline, megtévesztésbiztos arcfelismerési képességet biztosít egy körülbelül 30 x 40 mm méretű tokban (5. ábra).
5. ábra: Az NXP SLN-VIZNAS-IOT hardverkészlet egy élőségérzékelésére szolgáló kettős kamerarendszert (fent) és egy csatlakoztatott modullal ellátott látó alkalmazási kártyát (lent) integrál a megtévesztésbiztos offline arcfelismerő megoldáshoz. (Forrás: NXP)
Az SLN-VIZNAS-IOT készlet használatának első lépései
Az NXP SLN-VIZNAS-IOT készlet használatra kész, beépített arcfelismerő modellekkel érkezik. A fejlesztők csatlakoztatnak egy USB-kábelt, és a készleten lévő gombot megérintve egyszerű kézi arcregisztrációt végeznek az előre betöltött „elock” alkalmazás és a hozzá tartozó mobilalkalmazás segítségével (6. ábra, balra). A regisztráció után a mobilalkalmazás megjeleníti az „Üdvözöljük itthon” üzenetet és a „feloldva” címkét, amikor a készlet hitelesíti a regisztrált arcot (6. ábra, jobbra).
6. ábra: Az NXP SLN-VIZNAS-IOT hardverkészlet kidobozolás után azonnal működik és egy társalkalmazást használ az arc regisztrálásához (balra), illetve a regisztrált arcok felismeréséhez (jobbra). (Forrás: NXP)
A készlet Oasis Lite arcfelismerő szoftvere 99,6%-os felismerési pontossággal dolgoz fel akár 3000 RGB arcot tartalmazó adatbázisból származó modelleket és 96,5%-os megtévesztés elleni pontossággal akár 100 IR arcot. Mint korábban említettük, az NXP hardver-/szoftvermegoldásának kevesebb mint egy másodpercre van szüksége az arcfelismeréshez, a képigazításhoz, a minőségellenőrzéshez, az élőség észleléséhez és a felismeréshez a 0,2 és 1,0 m közötti tartományban. Valójában a rendszer támogat egy alternatív „könnyű” következtetési modellt, amely ugyanezt a szekvenciát kevesebb mint 0,5 másodperc alatt képes végrehajtani, de kisebb, 1000 RGB arcot és 50 IR arcot tartalmazó maximális adatbázisméret mellett.
Egyedi arcfelismerő alkalmazások építése
Az NXP SLN-VIZNAS-IOT készletet önmagában használva a fejlesztők gyorsan elvégezhetik az arcfelismerő alkalmazások kiértékelését, prototípusának elkészítését és fejlesztését. Egyedi hardvermegoldások létrehozásakor a készlet komplett referenciatervként szolgál, teljes kapcsolási rajzokkal és részletes anyagjegyzékkel (BOM). A szoftverfejlesztéshez a programozók az NXP MCUXpresso integrált fejlesztőkörnyezetet (IDE) használhatják FreeRTOS támogatással és konfigurációs eszközökkel. Ehhez az alkalmazáshoz a fejlesztők egyszerűen az NXP online MCUXpresso SDK Builder segítségével konfigurálják az NXP VIZNAS SDK-val ellátott szoftverfejlesztői környezetüket, amely tartalmazza az NXP Oasis Lite gépi tanulású látás motort (7. ábra).
7. ábra: Az NXP átfogó szoftverkörnyezetet biztosít, amely a FreeRTOS operációs rendszeren futtatja az NXP Oasis Lite futtatókörnyezeti könyvtárat és a segédprogram-közvetítő szoftvert. (Forrás: NXP)
A szoftvercsomag tartalmazza az operációs környezet teljes forráskódját, valamint a korábban említett elock mintaalkalmazást. Az NXP nem bocsátja rendelkezésre a saját fejlesztésű Oasis Lite motorjának vagy a modelljeinek forráskódját. Ehelyett a fejlesztők az Oasis Lite futtatókörnyezeti könyvtárral dolgoznak a rendelkezésre bocsátott alkalmazásprogramozási felület (API) segítségével, amely intuitív függvényhívásokat tartalmaz a támogatott műveletek végrehajtásához. Ezen kívül a fejlesztők a C-definíciók és -struktúrák rendelkezésre bocsátott készletét használják a különböző paraméterek, köztük a képméret, a memóriakiosztás, a visszahívások és a rendszer által az Oasis Lite futtatókörnyezet indításakor használt engedélyezett funkciók specifikálására (1. lista).
Másolás
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;
1. lista: A fejlesztők a szoftver végrehajtási paramétereit olyan struktúrák tartalmának megváltoztatásával módosíthatják az Oasis Lite futtatókörnyezet inicializálásához, mint amilyen itt látható . (Kód: NXP)
Az elock mintaalkalmazás kódja bemutatja az Oasis FreeRTOS alatt futó feladatként való elindításának, a környezet inicializálásának és a normál futtatási fázisba való belépésének legfontosabb tervezési mintáit. A futtatási szakaszban a futtatókörnyezet a kép minden egyes képkockáján dolgozik és végrehajtja a környezetben definiált egyes eseményekhez tartozó, megadott visszahívási függvényeket (2. lista).
Másolás
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;
2. lista: Az Oasis Lite futtatókörnyezet felismeri az Oasis Lite futtatókörnyezet fejlécfájlban felsorolásként dokumentált eseménysorozatot. (Kód: NXP)
A mintaalkalmazás a fejlesztőknek lépésről lépésre hibakeresési üzeneteket biztosít, amelyek leírják az eseménykezelő (EvtHandler) által feldolgozott egyes eseményekhez kapcsolódó eredményeket. Például a minőségellenőrzés befejezése (OASISLT_EVT_QUALITY_CHK_COMPLETE) után a rendszer hibakeresési üzeneteket ír ki az eredményre vonatkozóan és az arcfelismerés befejezése (OASISLT_EVT_REC_COMPLETE) után a felismert arcok adatbázisából lekérdezi a felhasználó azonosítóját és nevét, majd kiírja ezeket az információkat (3. lista).
Másolás
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;
3. lista: Amint az NXP szoftverdisztribúcióban található mintaalkalmazásból vett részlet mutatja, egy eseménykezelő feldolgozza az arcfelismerés során fellépő eseményeket. (Kód: NXP)
Az NXP SLN-VIZNAS-IOT szoftver az arcfelismerés feldolgozási követelményeinek támogatása mellett a működési környezet védelmét is szolgálja. A futtatókörnyezet biztonsága érdekében a rendszer úgy van kialakítva, hogy a rendszerbe betöltött minden egyes aláírt kép integritását és hitelességét az SLN-VIZNAS-IOT készlet fájlrendszerében tárolt tanúsítvány segítségével ellenőrizze. Mivel ez az ellenőrzési szekvencia a csak olvasható memóriában (ROM) tárolt megbízható bootloaderrel kezdődik, a folyamat biztosítja a bizalmi láncot az alkalmazás firmwareének futtatásához. Mivel a kód aláírása és ellenőrzése lassíthatja a fejlesztést, ezt az ellenőrzési folyamatot úgy tervezték, hogy a szoftvertervezés és a hibakeresés során megkerülhető legyen. Valójában az SLN-VIZNAS-IOT készlet aláírt képekkel előre feltöltve érkezik, de a kódaláírás ellenőrzése alapértelmezés szerint kikapcsolt állapotban van. A gyártáshoz a fejlesztők könnyen beállíthatják a teljes kódaláírás-ellenőrzést lehetővé tevő opciókat.
Az NXP a futtatókörnyezet és a kapcsolódó mintaalkalmazások kódja mellett teljes java forráskóddal rendelkező Android mobilalkalmazásokat is rendelkezésre bocsát. Az egyik alkalmazás, a VIZNAS FaceRec Manager egyszerű felületet biztosít arcok regisztrálásához és felhasználók kezeléséhez. Egy másik alkalmazás, a VIZNAS Companion lehetővé teszi a felhasználók számára, hogy a készletet Wi-Fi hitelesítő adatokkal lássák el egy meglévő Wi-Fi vagy BLE kapcsolat segítségével.
Összegzés
Az arcfelismerés hatékony megközelítést kínál az intelligens termékekhez való hozzáférés hitelesítésére, de a gyors válaszadáshoz általában nagy helyi számítási kapacitásra vagy állandó nagy sávszélességű kapcsolatra van szükség. Emellett megtévesztés célpontjává is vált, továbbá a felhasználói adatok védelmével kapcsolatos aggályok is felmerülnek.
Mint látható, az NXP Semiconductors speciális processzora és szoftverkönyvtára olyan alternatív megközelítést kínál, amely felhőkapcsolat nélkül, kevesebb mint egy másodperc alatt képes pontosan elvégezni az offline arcfelismerést, miközben akadályozza a megtévesztési kísérleteket.
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 DigiKey or official policies of DigiKey.




