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

Video APIを使用したセキュアな顔認証アプリケーションの構築

最終更新日 May 10, 2021

所要時間:1 分

現在の世界的な大流行の中で、多くの業界は、生産性を拡大し、効果的な実装技術を導入することで、顧客ベースの広範なユースケースに対応するために、デジタルの導入を最大限に活用している。顔認証は、以下のような業界でこの技術が広く普及していることを示すように、より一般的になってきている:

  1. ホスピタリティ(航空会社およびホテル経営)

  • ホテルのチェックイン時に、ベンダーが提供する携帯電話やカメラで支払いを行う。

  • フライトチェックインと搭乗手続き

  1. 遠隔医療

  • 緊急サービスが必要な患者を識別し、手作業による事務処理を最小限に抑える。

  • 医師、患者、ナースプラクティショナーの顔を審査することで、ミスコミュニケーションを防ぎ、一貫した情報を伝える病院管理サービス。

  1. カスタマーサービス

  • ユーザー識別

  • 不正行為の防止

  1. 有権者登録

  • 不正投票への対応

上記のすべてのユースケースにおいて、顔認証は次のものを使用して有効にすることができます。 Video APIを使用して有効にすることができます。を使用することで、非接触型サービスを推進しながら、ユーザーデータや個人情報を保護し、安全でセキュアなカスタムソリューションを提供することができます。

このブログ記事では、Facial ID を使用した Video API について説明します。開発者がワークフローを理解するために必要なメソッドと関数はほんの少しです。これらの属性をカスタムソリューションのビルドにパーソナライズすることで、顔 ID をサブスクライブ、検出、識別、照合します。私たちの目標は、私たちのサンプル・コード・ベースを使用することで、開発時間を短縮することです。 opentokプラットフォーム.

要旨

Video APIを使用して完全な顔認識アプリケーションを構築するには、サンプル・コード・スニペットに記載されているように、メソッドとオブジェクトを使用します。 opentokリファレンス・コードをご覧ください。

テクノロジーと前提条件

加入者画像のスクリーンショットをサーバーにアップロードする

前述の適切なユースケースにおいて、顧客はサインアッププロセス中に写真を提供し、その写真はバックエンドに保存される。顧客がビデオ通話に参加したら、Vonage Video APIを使って顧客のビデオストリームのスクリーンショットを取得し、顔検出のためにサーバーにアップロードすることができる。

以下のコードでは subscriber.getImgData()を使ってビデオ・ストリームの画面を取得し、バックエンドにアップロードしています。

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は、sendScreenShot関数から呼び出されるヘルパーメソッドで、base64文字列をバイト配列に変換し、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;
}

マイクロソフトのAPIを使用したFaceIDの識別 一致したFace IDの結果を比較する

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

OpentokでFaceIDを検出する

detectFaceメソッドはサーバー側で実行される。このメソッドは、与えられた画像から顔の特徴を検出し、識別子を返します。このメソッドは2回呼び出されます。最初はサインアップ時に顧客の画像がアップロードされたとき(id1)、次にビデオストリームからのスクリーンショット(id2)です。

下記はサンプルコードです:

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

OpenTokでFaceIDを検証する

最後の検証では、verifyFace()メソッドを使用し、入力として画像ID id1とid2を渡す。ここで、Microsoft face APIはこれら2つの顔(id1とid2)を比較し、スナップショットとサインアップの過程で提出された写真を比較し、一致/不一致とスコアを含む結果を提供する。

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

背景

Vonage API のカスタマー・ソリューション・チームの主な目的は、開発、統合、サポート・サービスを拡張することで、開発者がイノベーションの障壁を越えられるようにすることです。私たちは、お客様のグローバルな成長率を加速させることにより、収益性の高い顧客中心の企業になることを目指し、持続可能なビジネスを達成するという共通の目標を共有するグローバルリーダーと協力しています。

私たちが提供する高速化サービスの一環として、アプリケーションの最適化、拡張、市場への早期投入を支援するガイド付き実装、デプロイメント、ベストガイド付き採用を提供することで、開発期間を最短化します。

結論

Vonageでは、お客様の利益を第一に考え、コアバリューを重視しています。絶え間ないイノベーションへの努力により、私たちは開発者コミュニティに最新かつ最高の機能を提供し、お客様のユースケース・シナリオに最適なアプリケーションのカスタマイズを可能にすることをお約束します。

Videoの利用は常に増加しており、Videoの需要が増加しているため、パートナーや当社との統合を成功させるために、より良い支援とサービスを提供できるよう、有能なリソースの配備に力を入れています。Vonage Video APIを使い始めるのは簡単です。 無料アカウントにご登録ください。無料アカウントにサインアップして、今すぐ弊社のサービスをフルにご活用ください!

機能、開発者向けドキュメント、ブログ記事の内容に関するご意見をお聞かせください。以下にコメントを残してください。 ツイッターまたは コミュニティSlackチャンネル.

シェア:

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.