https://a.storyblok.com/f/270183/30882/04164b6cde/blog_facial-id-application_1200x600-1.png

Crie um aplicativo seguro de identificação facial usando a Video API da Vonage

Publicado em May 10, 2021

Tempo de leitura: 4 minutos

Na atual pandemia global, muitos setores da indústria maximizaram a adoção de tecnologias digitais para ampliar a produtividade e implementar técnicas eficazes que atendam a uma ampla gama de casos de uso para sua base de clientes. O reconhecimento facial tornou-se mais comum, evidenciando a ampla difusão dessa tecnologia em setores como:

  1. Hotelaria (Companhias aéreas e gestão hoteleira)

  • Processo de pagamento no check-in em hotéis, por meio de celular ou câmera fornecida por seus fornecedores

  • Check-in e processo de embarque

  1. Telemedicina

  • Identificação do paciente em situações em que são necessários serviços de emergência, a fim de ajudar a minimizar a burocracia manual

  • Serviços de gestão hospitalar, por meio da identificação de médicos, pacientes e enfermeiros para evitar falhas de comunicação e garantir que as informações transmitidas sejam consistentes

  1. Atendimento ao Cliente

  • Identificação do usuário

  • Prevenção de fraudes

  1. Cadastro eleitoral

  • Combater a fraude eleitoral

Em todos os casos de uso mencionados acima, o reconhecimento facial pode ser ativado usando a Video API da Vonage , que possibilitará a prestação de serviços sem contato, ao mesmo tempo em que protege os dados e as informações pessoais dos usuários, ajudando você a oferecer soluções personalizadas seguras e confiáveis.

Nesta postagem do blog, vamos guiá-lo pela nossa Video API usando o reconhecimento facial. Bastarão alguns métodos e funções para que seus desenvolvedores compreendam o fluxo de trabalho, incluindo a assinatura, a detecção, a identificação e a correspondência do reconhecimento facial, personalizando esses atributos em suas soluções personalizadas. Nosso objetivo é reduzir o tempo de desenvolvimento, dando um bom impulso inicial com nossa base de código de exemplo, pronta para uso com o reconhecimento facial na nossa plataforma opentok.

Resumo

Para desenvolver um aplicativo completo de identificação facial usando nossa Video API, utilizamos métodos e objetos conforme mencionado em nosso trecho de código de exemplo. Você pode encontrar mais informações em nosso código de referência do Opentok integrado à API de reconhecimento facial da Microsoft.

Tecnologias e pré-requisitos

Envio de captura de tela da imagem do assinante para o servidor

No caso de uso mencionado, o cliente fornece sua fotografia durante o processo de cadastro, que é então armazenada no backend. Quando o cliente entra na videochamada, podemos usar a Video API do Vonage para capturar uma imagem da transmissão de vídeo do cliente e enviá-la ao servidor para detecção facial.

No código abaixo, utilizamos subscriber.getImgData() para capturar um quadro do fluxo de Video e enviá-lo para o 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 é um método auxiliar chamado pela função sendScreenShot que converte uma string base64 em uma matriz de bytes para que possamos enviá-la como multipart/form-data ao servidor.

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

Identificação do Face ID usando a API da Microsoft para comparar os resultados correspondentes do Face ID

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

Detecção do FaceID no Opentok

O método `detectFace` é executado no lado do servidor. Ele detecta as características faciais de uma determinada imagem e retorna um identificador. Chamamos esse método duas vezes: primeiro, quando a imagem do cliente é enviada no momento do cadastro (id1) e, em seguida, com a captura de tela da transmissão de Video (id2).

Segue abaixo um trecho de código de exemplo:

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

Verificação do FaceID no OpenTok

Para a última etapa da verificação, utilizamos o método verifyFace() e passamos os IDs das imagens id1 e id2 como entradas. Nesse momento, a API de reconhecimento facial da Microsoft compara esses dois rostos (id1 e id2), compara o instantâneo com a fotografia enviada durante o processo de cadastro e fornece um resultado que inclui a correspondência ou não correspondência e uma pontuação.

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

Contexto

O principal objetivo da equipe de soluções para clientes da Vonage API é permitir que nossos desenvolvedores superem as barreiras à inovação, por meio da ampliação dos serviços de desenvolvimento, integração e suporte. Trabalhamos com nossos líderes globais, que compartilham o objetivo comum de alcançar negócios sustentáveis, visando tornar-se empresas lucrativas e centradas no cliente, acelerando sua taxa de crescimento global.

Parte da nossa oferta de serviços acelerados consiste em minimizar o seu prazo de desenvolvimento, oferecendo implementação orientada, implantação e adoção com orientação especializada, o que ajudará a otimizar e escalar sua aplicação, além de permitir que você chegue ao mercado mais rapidamente.

Conclusão

Na Vonage, nos concentramos em nossos valores fundamentais, colocando os interesses do cliente em primeiro lugar. Com nossos esforços constantes em prol da inovação incansável, estamos comprometidos em oferecer à nossa comunidade de desenvolvedores os recursos mais recentes e avançados — permitindo que você personalize seu aplicativo para se adequar da melhor forma aos seus cenários de uso.

Temos observado constantemente um aumento significativo no uso de nossos serviços de Video e, com essa demanda crescente, estamos cada vez mais focados em alocar recursos qualificados para melhor ajudá-lo e atendê-lo, a fim de garantir integrações bem-sucedidas entre você, nossos parceiros e nós. É muito fácil começar a usar a Video API da Vonage, então cadastre-se para obter sua conta gratuita e aproveite ao máximo nossa oferta hoje mesmo!

Adoraríamos receber seus comentários sobre os recursos, a documentação para desenvolvedores e o conteúdo das postagens do blog. Deixe um comentário abaixo ou entre em contato conosco no Twitter ou participe do nosso canal da Comunidade no Slack.

Compartilhar:

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.