https://d226lax1qjow5r.cloudfront.net/blog/blogposts/build-a-secure-facial-id-application-using-the-vonage-video-api/Blog_Facial-ID-Application_1200x600-1.png

Créer une application sécurisée d'identification faciale à l'aide de l'API Video de Vonage

Publié le May 10, 2021

Temps de lecture : 4 minutes

Dans le contexte actuel de pandémie mondiale, de nombreux secteurs d'activité ont maximisé l'adoption du numérique pour augmenter la productivité et mettre en place des techniques de mise en œuvre efficaces afin de servir des cas d'utilisation très répandus pour leur clientèle. L'identification faciale est de plus en plus répandue, comme en témoigne la prolifération de cette technologie dans des secteurs d'activité tels que :

  1. Hospitalité (compagnies aériennes et gestion hôtelière)

  • Processus de paiement lors de l'enregistrement à l'hôtel sur le téléphone portable ou l'appareil photo fourni par les vendeurs.

  • Enregistrement des vols et procédure d'embarquement

  1. Télémédecine

  • Identification des patients lorsque des services d'urgence sont nécessaires afin de réduire les formalités administratives.

  • Services de gestion hospitalière, en examinant le visage des médecins, des patients et des infirmières praticiennes afin d'éviter les erreurs de communication et de fournir des informations cohérentes à transmettre.

  1. Service clientèle

  • Identification de l'utilisateur

  • Prévention de la fraude

  1. Inscription sur les listes électorales

  • Gérer la fraude électorale

Dans tous les cas d'utilisation mentionnés ci-dessus, l'identification faciale peut être activée à l'aide de l'API vidéo de Video API de Vonage de Vonage, qui permettra d'offrir des services sans contact tout en protégeant les données de l'utilisateur et les informations personnelles, et en vous aidant à fournir des solutions personnalisées sûres et sécurisées.

Dans cet article de blog, nous allons vous présenter notre Video API en utilisant l'identification faciale. Il suffira de quelques méthodes et fonctions pour que vos développeurs comprennent le flux de travail, y compris l'abonnement, la détection, l'identification et la correspondance de l'identification faciale en personnalisant ces attributs dans leurs solutions personnalisées. Notre objectif est de réduire le temps de développement en démarrant avec une bonne longueur d'avance en utilisant notre base de code d'exemple qui est prêt à être utilisé pour l'identification faciale à l'aide de notre plateforme opentok.

Résumé

Pour construire une application complète d'identification faciale à l'aide de notre Video API, nous utilisons les méthodes et les objets mentionnés dans notre exemple de code. Vous pouvez trouver plus d'informations sur notre code de référence opentok intégré à l'API visage de Microsoft.

Technologies et conditions préalables

Téléchargement d'une capture d'écran de l'image de l'abonné sur le serveur

Dans le cas d'utilisation mentionné, le client fournit sa photo lors de la procédure d'inscription, qui est ensuite stockée dans le backend. Lorsque le client a rejoint l'appel vidéo, nous pouvons utiliser l'API Video de Vonage pour obtenir une capture d'écran du flux vidéo du client et la télécharger sur le serveur pour la détection des visages.

Dans le code ci-dessous, nous avons utilisé subscriber.getImgData() pour obtenir un écran du flux vidéo et le télécharger vers le backend.

function sendScreenShot() {
    var imgdata = undefined;
    if (subscriber) {
        imgdata = subscriber.getImgData();
    }
    if (imgdata != undefined) {
        try {
            var blob = this.b64toBlob(imgdata, "image/png");
            let formData = new FormData();
            formData.append('customer', blob);
            let res = await $HTTPDEMO.post('/faceIDDemo.php',
                formData, {
                    headers: {
                        'Content-Type': 'multipart/form-data'
                    }

                }
            );
            console.log(res.data);
            if (res.data.status != "success") {
                alert("Error uploading the file");
            } else {

            }
        } catch (error) {
            alert("error posting screenshot");
            console.log(error);
        }
    }
}

step 1step 1

b64toBlob est une méthode d'aide appelée par la fonction sendScreenShot qui convertit la chaîne base64 en un tableau d'octets afin que nous puissions l'envoyer au serveur en tant que multipart/form-data.

function b64toBlob(b64Data, contentType, sliceSize) {
    contentType = contentType || '';
    sliceSize = sliceSize || 512;
    var byteCharacters = atob(b64Data);
    var byteArrays = [];
    for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
        var slice = byteCharacters.slice(offset, offset + sliceSize);
        var byteNumbers = new Array(slice.length);
        for (var i = 0; i < slice.length; i++) {
            byteNumbers[i] = slice.charCodeAt(i);
        }
        var byteArray = new Uint8Array(byteNumbers);
        byteArrays.push(byteArray);
    }
    var blob = new Blob(byteArrays, {
        type: contentType
    });
    return blob;
}

Identification de FaceID à l'aide de l'API de Microsoft pour comparer les résultats de l'identification du visage

Identifying FaceID Using Microsoft API To Compare Matched Face ID Results Identifying FaceID Using Microsoft API To Compare Matched Face ID Results

Détection de FaceID dans Opentok

La méthode detectFace s'exécute côté serveur. Elle détecte les traits du visage à partir d'une image donnée et renvoie un identifiant. Nous appelons cette méthode deux fois : d'abord lorsque l'image du client a été téléchargée au moment de l'inscription (id1), puis avec la capture d'écran du flux vidéo (id2).

Vous trouverez ci-dessous un exemple de code :

function detectFace($img){
        global $faceid_endpoint, $data_dir_url,$faceid_key;

        $client = new GuzzleHttp\Client([
            'base_uri' => $faceid_endpoint
        ]);

        $resp = $client->request('POST', 'face/v1.0/detect?recognitionModel=recognition_02&detectionModel=detection_02', [
            'headers' => [
                'Content-Type' => 'application/json',
                'Ocp-Apim-Subscription-Key' => $faceid_key
            ],
            'json' => ['url'=> $data_dir_url.$img]
        ]);

        $json = json_decode($resp->getBody(),true);
       
        return $json[0];
}

Detecting FaceID in OpentokDetecting FaceID in Opentok

Verify FaceID dans OpenTok

Pour la dernière étape de la vérification, nous utilisons la méthode verifyFace() et transmettons les ID d'image id1 et id2 en tant qu'entrées. Ici, l'API visage de Microsoft compare ces deux visages (id1 & id2), compare l'instantané avec la photographie soumise lors de la procédure d'inscription et fournit un résultat comprenant la correspondance/la non-correspondance et un score.

function verifyFace($id1,$id2){
        global $faceid_endpoint, $data_dir_url,$faceid_key;
        $client = new GuzzleHttp\Client([
            'base_uri' => $faceid_endpoint
        ]);

        $resp = $client->request('POST', 'face/v1.0/verify', [
            'headers' => [
                'Content-Type' => 'application/json',
                'Ocp-Apim-Subscription-Key' => $faceid_key
            ],
            'json' => [
                'faceid1'=>$id1,
                'faceid2'=>$id2
            ]
        ]);

        return $resp->getBody();
}

Verifying FaceID in OpenTokVerifying FaceID in OpenTok

Contexte

L'objectif principal de l'équipe des solutions clients de Vonage API est de permettre à nos développeurs de franchir les barrières de l'innovation en étendant les services de développement, d'intégration et d'assistance. Nous travaillons avec nos leaders mondiaux qui partagent un objectif commun, celui de devenir des entreprises rentables centrées sur le client en accélérant votre taux de croissance global.

Une partie de notre offre de services accélérés consiste à minimiser votre délai de développement en fournissant une mise en œuvre guidée, un déploiement et une adoption optimale qui aideront à optimiser, à mettre à l'échelle votre application et à entrer sur le marché plus rapidement.

Conclusion

Chez Vonage, nous nous concentrons sur nos valeurs fondamentales en plaçant l'intérêt du client au premier plan. Grâce à nos efforts constants en matière d'innovation, nous nous engageons à fournir à notre communauté de développeurs les fonctionnalités les plus récentes et les plus performantes, vous permettant ainsi de personnaliser votre application afin qu'elle corresponde au mieux à vos scénarios d'utilisation.

Nous constatons régulièrement une augmentation de l'utilisation de la vidéo et, compte tenu de la demande croissante de Video, nous nous concentrons davantage sur le déploiement de ressources qualifiées pour mieux vous aider et vous servir afin de réaliser des intégrations réussies avec nos partenaires et nous-mêmes. Il est facile de commencer à utiliser l'API Video de Vonage. inscrivez-vous à votre Account gratuit et profitez pleinement de notre offre dès aujourd'hui !

Nous serions ravis de connaître votre avis sur les fonctionnalités, les documents destinés aux développeurs et le contenu des articles de blog. Laissez un commentaire ci-dessous, contactez-nous sur sur Twitter ou rejoignez notre canal Slack de la communauté.

Partager:

https://a.storyblok.com/f/270183/250x250/a8981ee818/akshita-arun.png
Akshita Arun

Akshita is Customer Solutions Manager at Vonage with a background in technical account project management and solution architecture. Akshita has been working as a technical client advocate since 2015 and spends her days focused on consulting services helping her clients succeed.