Mise en œuvre rapide de la reconnaissance faciale anti-usurpation sans connexion cloud

Par Stephen Evanczuk

Avec la contribution de Rédacteurs nord-américains de DigiKey

La reconnaissance faciale a été largement acceptée pour authentifier l'accès aux smartphones, mais les tentatives d'application de cette technologie à plus grande échelle ont échoué dans d'autres domaines malgré son efficacité et sa facilité d'utilisation. Outre les défis techniques que pose la mise en œuvre de solutions d'apprentissage automatique fiables et économiques, les développeurs doivent répondre aux préoccupations des utilisateurs concernant la fiabilité et la confidentialité des méthodes de reconnaissance faciale classiques qui dépendent de connexions cloud vulnérables à l'usurpation.

Cet article traite de la complexité de l'authentification sécurisée avant de présenter une solution matérielle et logicielle de NXP Semiconductors répondant à ces problèmes. Il montre ensuite comment des développeurs sans expérience préalable en méthodes d'apprentissage automatique peuvent utiliser la solution pour implémenter rapidement la reconnaissance faciale anti-usurpation hors ligne dans un produit intelligent.

Défis de l'authentification sécurisée pour les produits intelligents

Face aux préoccupations croissantes concernant la sécurité des produits intelligents, les développeurs ne disposaient que de peu d'options viables pour authentifier de manière fiable les utilisateurs à la recherche d'un accès rapide mais sécurisé. Les méthodes traditionnelles s'appuient sur des méthodes d'authentification à facteurs multiples reposant sur une combinaison de trois facteurs d'authentification classiques : « une information que vous connaissez », comme un mot de passe ; « un élément dont vous disposez », comme une clé physique ou une carte-clé ; et « une caractéristique qui vous est propre », généralement un facteur biométrique comme une empreinte digitale ou l'iris. Avec cette approche, une serrure de porte fortement authentifiée pourrait exiger de l'utilisateur qu'il saisisse un code d'accès, utilise une carte-clé et fournisse également une empreinte digitale pour déverrouiller la porte. En pratique, des exigences aussi strictes sont contraignantes ou tout simplement irréalistes pour les consommateurs qui doivent se ré-authentifier fréquemment et facilement avec un smartphone ou un autre dispositif utilisé régulièrement.

L'utilisation de la reconnaissance faciale a considérablement simplifié l'authentification des utilisateurs de smartphones, mais les smartphones présentent certains avantages qui ne sont pas forcément disponibles sur tous les dispositifs. Outre l'importante puissance de traitement disponible dans les smartphones de pointe, la connectivité permanente est une exigence fondamentale pour fournir la gamme de services sophistiqués que les utilisateurs attendent habituellement.

Pour de nombreux produits exigeant une authentification sécurisée, la plateforme d'exploitation sous-jacente fournit généralement des ressources informatiques plus modestes et une connectivité plus limitée. Les services de reconnaissance faciale des principaux fournisseurs de services cloud transfèrent la charge de traitement vers le cloud, mais la nécessité d'une connectivité robuste pour garantir une latence de réponse minimale pourrait imposer des exigences dépassant les capacités de la plateforme. Tout aussi voire plus préoccupant pour les utilisateurs, le fait de transmettre leur image sur les réseaux publics pour qu'elle soit traitée et éventuellement stockée dans le cloud soulève d'importants problèmes de protection de la vie privée.

Grâce aux processeurs i.MX RT106F de NXP Semiconductors et aux logiciels associés, les développeurs peuvent désormais mettre en œuvre une reconnaissance faciale hors ligne qui répond directement à ces préoccupations.

Matériels et logiciels pour la reconnaissance faciale hors ligne anti-usurpation

Appartenant à la gamme de microcontrôleurs (MCU) Crossover i.MX RT1060 de NXP, la série i.MX RT106F de NXP est spécialement conçue pour faciliter l'intégration de la reconnaissance faciale hors ligne dans les dispositifs de maison intelligente, les appareils électroménagers, les dispositifs de sécurité et les équipements industriels. Reposant sur un cœur de processeur Arm® Cortex®-M7, les processeurs fonctionnent à 528 mégahertz (MHz) pour le MIMXRT106FCVL5B de grade industriel, ou à 600 MHz pour les processeurs de grade commercial tels que le MIMXRT106FDVL6A et le MIMXRT106FDVL6B.

Outre la prise en charge d'un large éventail d'interfaces mémoires externes, les processeurs i.MX RT106F incluent 1 méga-octet (Mo) de mémoire vive (RAM) sur puce avec 512 kilo-octets (Ko) configurés comme RAM à usage général, et 512 Ko pouvant être configurés comme RAM à usage général ou comme mémoire à couplage étroit (TCM) pour les instructions (I-TCM) ou les données (D-TCM). En plus de la gestion intégrée de l'alimentation, ces processeurs offrent un ensemble complet de fonctions intégrées pour les graphiques, la sécurité, le contrôle système, et les interfaces analogiques et numériques généralement nécessaires pour prendre en charge les dispositifs grand public, les interfaces homme-machine (IHM) industrielles et la commande moteur (Figure 1).

Schéma des processeurs i.MX RT106F de NXP Semiconductors (cliquez pour agrandir)Figure 1 : Les processeurs i.MX RT106F de NXP Semiconductors combinent un ensemble complet de blocs fonctionnels requis pour la prise en charge de la reconnaissance faciale pour les produits grand public, industriels et de sécurité. (Source de l'image : NXP)

Bien que similaires aux autres membres de la gamme i.MX RT1060, les processeurs i.MX RT106F incluent une licence d'exécution pour le logiciel de reconnaissance faciale Oasis Lite de NXP. Conçu pour accélérer l'inférence sur cette classe de processeurs, l'environnement d'exécution Oasis Lite effectue la détection faciale, la reconnaissance faciale et même la classification limitée des émotions, en utilisant des modèles d'inférence de réseau neuronal (NN) fonctionnant sur un moteur d'inférence et MiniCV — une version réduite de la bibliothèque de vision artificielle OpenCV open-source. Le moteur d'inférence s'appuie sur une bibliothèque NN de NXP et sur la bibliothèque Arm CMSIS-NN (Cortex Microcontroller System Interface Standard NN) (Figure 2).

Schéma de la bibliothèque d'exécution Oasis Lite de NXPFigure 2 : La bibliothèque d'exécution Oasis Lite de NXP inclut un cœur Oasis Lite utilisant MiniCV et un moteur d'inférence NXP basé sur les bibliothèques de réseaux neuronaux de NXP et Arm. (Source de l'image : NXP)

Les modèles d'inférence résident sur la plateforme i.MX RT106F, de sorte que la détection et la reconnaissance faciales s'exécutent localement, contrairement à d'autres solutions qui dépendent des ressources cloud pour exécuter les algorithmes d'apprentissage automatique. Grâce à cette capacité de reconnaissance faciale hors ligne, les concepteurs de produits intelligents peuvent garantir une authentification privée et sécurisée malgré une faible bande passante ou une connectivité Internet irrégulière. De plus, l'authentification se fait rapidement avec cette combinaison matérielle et logicielle : le processeur met moins de 800 millisecondes (ms) pour sortir du mode veille basse consommation et effectuer une reconnaissance faciale complète.

Utilisé avec le processeur i.MX RT106F, l'environnement d'exécution Oasis Lite simplifie la mise en œuvre de la reconnaissance faciale hors ligne pour les produits intelligents, mais le processeur et l'environnement d'exécution ne sont bien sûr qu'une partie de la solution système requise. Outre un ensemble plus complet de composants système, une solution d'authentification efficace requiert une capacité d'imagerie pouvant atténuer un type de menace de sécurité connu sous le nom d'attaques de présentation. Ces attaques tentent de falsifier l'authentification par reconnaissance faciale en utilisant des photographies. Pour les développeurs cherchant à déployer rapidement l'authentification basée sur la reconnaissance faciale dans leurs propres produits, le kit de développement SLN-VIZNAS-IOT de NXP et les logiciels associés fournissent une plateforme prête à l'emploi pour l'évaluation, le prototypage et le développement de la reconnaissance faciale anti-usurpation hors ligne.

Solution complète de systèmes sécurisés pour la reconnaissance faciale

Comme la plupart des processeurs avancés, le processeur i.MX RT106F ne nécessite que quelques composants additionnels pour fournir une plateforme de calcul efficace. Le kit SLN-VIZNAS-IOT de NXP complète la conception en intégrant l'i.MX RT106F avec des dispositifs supplémentaires pour fournir une plateforme matérielle complète (Figure 3).

Schéma du kit SLN-VIZNAS-IOT de NXP (cliquez pour agrandir)Figure 3 : Le kit SLN-VIZNAS-IOT de NXP inclut un module connecté qui fournit une plateforme système connectée robuste, requise pour exécuter le logiciel d'authentification. (Source de l'image : NXP)

La carte de module connecté du kit combine un processeur i.MX RT106F MIMXRT106FDVL6A de NXP, un élément de sécurité A71CH de NXP et deux options de connectivité : le système sur puce (SoC) Bluetooth Low Energy (BLE) Kinetis KW41Z MKW41Z512VHT4 de NXP et le module Wi-Fi/Bluetooth LBEE5KL1DX-883 de Murata Electronics.

Pour compléter la mémoire sur puce du processeur, le module connecté ajoute 256 mégabits (Mb) de RAM dynamique synchrone (SDRAM) W9825G6JB de Winbond Electronics, 256 Mb de Flash NOR d'Integrated Silicon Solution. Inc. (ISSI) (IS26KL256S-DABLI00) et le dispositif SPI quadruple 256 Mb IS25LP256D d'ISSI.

Enfin, le module ajoute un convertisseur abaisseur XCL214B333DR de Torex Semiconductor pour compléter les capacités internes de gestion de l'alimentation du processeur i.MX RT106F pour les dispositifs supplémentaires sur la carte du module connecté.

Le module connecté se monte à son tour sur une carte d'application de vision qui combine un capteur infrarouge passif (PIR) IRA-S210ST01 de Murata Electronics, un capteur de mouvement, un chargeur de batterie, un support audio, des diodes électroluminescentes (LED), des boutons et des connecteurs d'interface (Figure 4).

Image du kit SLN-VIZNAS-IOT de NXP (cliquez pour agrandir)Figure 4 : Dans le kit SLN-VIZNAS-IOT de NXP, le module connecté (à gauche) est relié à la carte d'application de vision pour fournir la base matérielle de la reconnaissance faciale. (Source de l'image : NXP)

Parallèlement à cette plateforme système, la conception d'un système de reconnaissance faciale nécessite clairement un capteur de caméra adapté pour capturer une image du visage de l'utilisateur. Toutefois, comme mentionné précédemment, les inquiétudes concernant les attaques de présentation exigent des capacités d'imagerie supplémentaires.

Atténuer les attaques de présentation

Pendant des années, les chercheurs ont exploré différentes méthodes de détection des attaques de présentation (PAD) visant à atténuer les tentatives telles que l'utilisation d'empreintes digitales latentes ou d'images d'un visage pour usurper les systèmes d'authentification basés sur la biométrie. Bien que les détails dépassent largement le cadre de cet article, les méthodes PAD utilisent en général une analyse approfondie de la qualité et des caractéristiques des données biométriques capturées dans le cadre du processus, ainsi que des méthodes de détection du « caractère vivant » conçues pour déterminer si les données biométriques ont été saisies sur une personne vivante. Sous-jacents à nombre de ces différentes méthodes, les modèles de réseaux neuronaux profonds (DNN) jouent un rôle important non seulement dans la reconnaissance faciale, mais également dans l'identification des tentatives d'usurpation des systèmes. Néanmoins, le système d'imagerie utilisé pour capturer le visage de l'utilisateur peut fournir une aide supplémentaire à la détection du caractère vivant.

Pour le kit SLN-VIZNAS-IOT, NXP inclut des modules de caméra qui contiennent deux capteurs d'image MT9M114 d'ON Semiconductor. Ici, une caméra est équipée d'un filtre rouge, vert, bleu (RVB), et l'autre caméra est équipée d'un filtre infrarouge (IR). Connectée à la carte d'application de vision via des interfaces de caméra, la caméra RVB génère une image de lumière visible normale, tandis que la caméra IR capture une image qui sera différente selon qu'il s'agit d'une personne vivante ou d'une image de la personne. En utilisant cette approche de détection du caractère vivant avec la capacité de reconnaissance faciale interne, le kit SLN-VIZNAS-IOT offre une capacité de reconnaissance faciale hors ligne et anti-usurpation dans un boîtier mesurant environ 30 millimètres (mm) x 40 mm (Figure 5).

Image du kit matériel SLN-VIZNAS-IOT de NXPFigure 5 : Le kit matériel SLN-VIZNAS-IOT de NXP intègre un système à double caméra pour la détection du caractère vivant (en haut) et une carte d'application de vision (en bas) avec un module connecté pour fournir une solution prête à l'emploi pour la reconnaissance faciale hors ligne avec capacité anti-usurpation. (Source de l'image : NXP)

Démarrer avec le kit SLN-VIZNAS-IOT

Le kit SLN-VIZNAS-IOT de NXP est fourni prêt à l'emploi avec des modèles de reconnaissance faciale intégrés. Les développeurs ont juste à brancher un câble USB et à appuyer sur un bouton du kit pour effectuer un simple enregistrement manuel du visage à l'aide de l'application « elock » préchargée et de l'application mobile associée (Figure 6, à gauche). Après l'enregistrement, l'application mobile affiche un message de bienvenue et une indication de déverrouillage lorsque le kit authentifie le visage enregistré (Figure 6, à droite).

Image du kit matériel prêt à l'emploi SLN-VIZNAS-IOT de NXPFigure 6 : Le kit matériel prêt à l'emploi SLN-VIZNAS-IOT de NXP fonctionne immédiatement, en utilisant une application associée pour enregistrer un visage (à gauche) et reconnaître les visages enregistrés (à droite). (Source de l'image : NXP)

Le logiciel de reconnaissance faciale Oasis Lite du kit traite les modèles à partir de sa base de données pouvant contenir jusqu'à 3000 visages RVB avec une précision de reconnaissance de 99,6 %, et jusqu'à 100 visages IR avec une précision anti-usurpation de 96,5 %. Comme indiqué précédemment, la solution matérielle/logicielle de NXP a besoin de moins d'une seconde (s) pour effectuer la détection faciale, l'alignement des images, le contrôle de la qualité, la détection du caractère vivant et la reconnaissance sur une portée de 0,2 mètre (m) à 1,0 m. En fait, le système prend en charge un autre modèle d'inférence « léger » capable d'exécuter cette même séquence en moins de 0,5 s mais prenant en charge une taille de base de données maximale plus petite de 1000 visages RVB et 50 visages IR.

Créer des applications de reconnaissance faciale personnalisées

Utilisé tel quel, le kit SLN-VIZNAS-IOT de NXP permet aux développeurs d'évaluer, de prototyper et de développer rapidement des applications de reconnaissance faciale. Lors de la création de solutions matérielles personnalisées, le kit sert de conception de référence complète avec des schémas complets et une nomenclature (BOM) détaillée. Pour le développement logiciel, les programmeurs peuvent utiliser l'environnement de développement intégré (IDE) MCUXpresso de NXP avec les outils de configuration et de support FreeRTOS. Pour cette application, les développeurs peuvent simplement utiliser le MCUXpresso SDK Builder en ligne de NXP pour configurer leur environnement de développement logiciel avec le SDK VIZNAS de NXP, qui inclut le moteur de vision d'apprentissage automatique Oasis Lite de NXP (Figure 7).

Schéma de NXP fournissant un environnement logiciel completFigure 7 : NXP fournit un environnement logiciel complet qui exécute l'intergiciel utilitaire et la bibliothèque Oasis Lite de NXP sur le système d'exploitation FreeRTOS. (Source de l'image : NXP)

Le progiciel inclut le code source complet pour l'environnement d'exploitation ainsi que l'application d'exemple elock mentionnée précédemment. NXP ne fournit pas le code source pour son moteur Oasis Lite propriétaire ni pour les modèles. À la place, les développeurs travaillent avec la bibliothèque d'exécution Oasis Lite en utilisant l'interface de programmation (API) fournie, qui inclut un ensemble d'appels de fonctions intuitifs pour effectuer les opérations prises en charge. De plus, les développeurs utilisent un ensemble fourni de définitions et de structures C pour spécifier divers paramètres, notamment la taille d'image, l'allocation de mémoire, les rappels et les fonctions activées utilisées par le système lors du démarrage de l'environnement d'exécution Oasis Lite (Liste 1).

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

Liste 1 : Les développeurs peuvent modifier les paramètres d'exécution du logiciel en modifiant le contenu de structures telles que celle présentée ici pour l'initialisation de l'environnement d'exécution Oasis Lite. (Source du code : NXP)

Le code d'application d'exemple elock démontre les principaux modèles de conception pour lancer Oasis en tant que tâche s'exécutant sous FreeRTOS, initialiser l'environnement et entrer dans la phase d'exécution normale. Dans la phase d'exécution, l'environnement d'exécution opère sur chaque trame d'une image, en exécutant les fonctions de rappel fournies associées à chaque événement défini dans l'environnement (Liste 2).

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

Liste 2 : L'environnement d'exécution Oasis Lite reconnaît une série d'événements documentés comme un ensemble énuméré dans le fichier d'en-tête Oasis Lite. (Source du code : NXP)

L'application d'exemple peut fournir aux développeurs des messages de débogage étape par étape décrivant les résultats associés à chaque événement traité par le gestionnaire d'événements (EvtHandler). Par exemple, une fois le contrôle qualité terminé (OASISLT_EVT_QUALITY_CHK_COMPLETE), le système produit des messages de débogage décrivant le résultat, et une fois la reconnaissance faciale terminée (OASISLT_EVT_REC_COMPLETE), le système extrait l'identifiant et le nom de l'utilisateur de sa base de données de visages reconnus et fournit ces informations (Liste 3).

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

Liste 3 : Comme le montre cet extrait d'une application d'exemple dans la distribution logicielle NXP, un gestionnaire d'événements traite les événements rencontrés pendant la séquence de reconnaissance faciale. (Source du code : NXP)

Outre la prise en charge des exigences de traitement de la reconnaissance faciale, le logiciel SLN-VIZNAS-IOT de NXP est conçu pour protéger l'environnement d'exploitation. Pour garantir la sécurité d'exécution, le système est conçu pour vérifier l'intégrité et l'authenticité de chaque image signée chargée dans le système en utilisant un certificat stocké dans le système de fichiers du kit SLN-VIZNAS-IOT. Comme cette séquence de vérification commence avec un chargeur d'amorçage de confiance stocké en mémoire morte (ROM), ce processus fournit une chaîne de confiance pour l'exécution du micrologiciel de l'application. De plus, comme la signature et la vérification du code peuvent ralentir le développement, ce processus de vérification est conçu pour être contourné pendant la conception et le débogage du logiciel. En fait, le kit SLN-VIZNAS-IOT est fourni préchargé avec des images signées, mais la vérification de la signature du code est contournée par défaut. Les développeurs peuvent facilement définir des options pour permettre la vérification complète de la signature de code pour la production.

En plus de l'environnement d'exécution et du code d'application d'exemple associé, NXP fournit le code source java complet pour les applications mobiles Android. Une application, VIZNAS FaceRec Manager, fournit une interface simple pour l'enregistrement des visages et la gestion des utilisateurs. Une autre application, l'application VIZNAS Companion, permet aux utilisateurs de provisionner le kit avec les identifiants Wi-Fi en utilisant une connexion Wi-Fi ou BLE existante.

Conclusion

La reconnaissance faciale offre une approche efficace pour authentifier l'accès aux produits intelligents, mais sa mise en œuvre requiert généralement un calcul local haute performance ou une connectivité permanente à large bande passante pour des réponses rapides. Elle est également la cible d'usurpation d'identité et suscite des inquiétudes quant à la confidentialité des utilisateurs.

Comme illustré, un processeur spécialisé et une bibliothèque logicielle de NXP Semiconductors offrent une approche alternative qui permet d'effectuer avec précision la reconnaissance faciale hors ligne en moins d'une seconde sans connexion au cloud, tout en réduisant les risques de tentatives d'usurpation.

DigiKey logo

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.

À propos de l'auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey