Face-api.jsフレームワークに基づいて、顔認識はフロントエンドで完了します

Face-api.jsフレームワークに基づいて、顔認識はフロントエンドで完了します

[[271667]]

この記事では、ブラウザ上で動作する顔認識フレームワーク、Face-api.js を紹介します。これはTensorFlow.jsに基づいており、顔検出、特徴点抽出、記述子計算、顔マッチングまでの一連のステップを完了します。

識別効果図

このフレームワークは使いやすいため、数行の JavaScript コードでエンドツーエンドの認識を完了できます。顔認識の一般的な手順は次のとおりです。

顔検出

まず、画像またはビデオフレームから顔を特定します。このフレームワークは、顔検出用の 3 つのモデルを提供します。

小さな顔検出装置

Tiny Face Detector は、SSD Mobilenet V1 顔検出器よりも高速で、小型で、リソース消費が少ない、非常に高性能なリアルタイム顔検出器です。ただし、その代わりに、小さな顔を検出するパフォーマンスは若干劣ります。このモデルは、モバイル性とネットワーク性が非常に優れているため、モバイル デバイスやリソースが限られたクライアントでの顔検出に最も適しています。量子化されたモデルのサイズはわずか 190 KB (tiny_face_detector_model) です。

SSD モバイルネット V1

顔検出のために、このプロジェクトでは MobileNetV1 に基づく SSD (Single Shot Multibox Detector) を実装します。ニューラル ネットワークは、画像内の各顔の位置を計算し、各顔の確率とともに境界ボックスを返します。この顔検出器は、推論時間を短縮することよりも、顔の境界ボックスを高精度に検出することを目的としています。量子化モデルのサイズは約 5.4 MB (ssd_mobilenetv1_model) です。

MTCNNN について

MTCNN (マルチタスク カスケード畳み込みニューラル ネットワーク) は、より多くの構成スペースを提供する SSD Mobilenet v1 および Tiny Yolo v2 の代替顔検出器です。入力パラメータを調整することで、MTCNN はさまざまな顔の境界ボックスのサイズを検出できるようになります。 MTCNN は 3 段階のカスケード CNN であり、5 つの顔のランドマークと、各顔の境界ボックスとスコアを同時に返します。さらに、モデルのサイズはわずか 2MB です。

68個の特徴点を抽出

このキットは、非常に軽量で高速かつ正確な 68 ポイントの顔ランドマーク検出器を実装します。デフォルト モデルのサイズはわずか 350kb (face_landmark_68_model) で、小型モデルのサイズはわずか 80kb (face_landmark_68_tiny_model) です。どちらのモデルも、深さ方向に分離可能な畳み込みと密に接続されたブロックという考え方を採用しています。さらに、このモデルは、68 個の顔の特徴がラベル付けされた約 35,000 枚の顔画像のデータセットでトレーニングされています。

顔の特徴点パターン

記述子を計算する

顔認識の場合、ResNet-34 のようなアーキテクチャが実装され、任意の顔画像から顔記述子 (128 個の値を持つ特徴ベクトル) を計算します。顔記述子は、人間の顔の特徴を記述するために使用されます。このモデルは、トレーニングに使用された顔のセットに限定されないため、自分自身のような誰の顔認識にも使用できます。ユークリッド距離を計算したり、任意の他の分類器を使用したりして、顔の記述子を比較することで、任意の 2 つの顔の類似性を判断できます。

完全な顔認識

記述子に基づいて、顔認識マッチャーを構築できます。ビデオフレーム内の顔記述子と比較し、存在する場合は名前と類似度を出力します。

補充する

さらに、このプロジェクトには独自の表情検出機能と年齢検出機能があります。具体的なコードの使用方法は、github オープンソース プロジェクトで確認できます。

https://github.com/justadudewhohacks/face-api.js

以下は追加の機能効果図です。

表現検出チャート

年齢検出チャート

<<:  サーバーが過負荷状態です! GANで生成された肖像油絵は人気があり、一瞬でルネッサンス時代に戻ることができます

>>:  強力な視覚 AI でもこれらの写真を正確に識別できないのはなぜでしょうか?

ブログ    
ブログ    
ブログ    

推薦する

人工知能は企業の持続可能な発展をどのようにサポートできるのでしょうか?

人工知能の普及は社会に大きな影響を与え、私たちの仕事、生活、コミュニケーションの方法を変えました。現...

...

初心者向けガイド: 機械学習とディープラーニング

ウェッジ:機械学習とディープラーニングは現在注目されており、突然多くの人がそれについて話していること...

「あなたのことを理解します」に向けて:ロボットは「他人の視点から考える」ことができる

「あなたはロボットですか?なぜ私の立場になって考えられないのですか?」人々が争いを抱えるたびに、この...

IoT が成功するために AI が必要な理由

モノのインターネットは膨大な量のデータを生成します。そのデータは、都市が事故や犯罪を予測するのに役立...

2021 年の機械学習の 6 つのトレンド

機械学習は今日ではよく知られた革新的な技術となっています。ある調査によると、現在人々が使用しているデ...

TCP輻輳制御アルゴリズムについての簡単な説明

最近、TCP/IP プロトコルの学習に時間を費やしました。主な理由は、TCP/IP に関する私の理解...

小井ロボットの華蔵エコシステムの出現は、大型モデルの商業化の始まりを示しています

10月26日、「人工知能分野での中国初の上場企業」であるXiaoi RobotがHuazang Un...

C# DES アルゴリズムの暗号化と復号化の例の分析

C# DES アルゴリズムの暗号化と復号化は、開発のセキュリティ部分として、その使用方法を理解する必...

アコーディオン: HBase の「呼吸」メモリ圧縮アルゴリズム

導入現在、HBase を搭載した最新の製品では、HBase の読み取りおよび書き込みパフォーマンスに...

...

人工知能の発展を推進する4つの技術

[[419350]] 「人工知能」という用語は 1956 年に初めて登場しました。人工知能とは、機械...

...

顔認識技術の開発と実用的なソリューションの設計

顔認識技術は、Google、Facebook、Alibaba、Tencent、Baiduなどの国内外...