顔認識技術とマスクが出会うと...

顔認識技術とマスクが出会うと...

機能は完全に破綻。一目見るだけで解錠や支払いができた人工知能は、今や「役立たずのゴミ」のようになってしまった。

いいえ、ネットユーザーたちは不満を述べています。

一部のネットユーザーは、大手携帯電話メーカーが新しい機能を開発することを提案した。

当初、AI顔認識技術は個人の身元認証の重要な方法であり、犯罪者の写真管理や犯罪捜査、事件解決に使用されていることはわかっていました。現在、この技術はセキュリティシステムや取引システムに広く応用されています。

現在、私たちはこの機能に毎日頼っています。

朝起きたら、携帯電話を見るだけで自動的にロックが解除されます。

オンラインショッピングの「顔スキャン」決済。

買い物をするときに現金を持ち歩く必要がなく、機械の前で「顔をスキャン」するだけで支払いができ、仕事でも「顔をスキャン」するだけで出勤できます。

高速鉄道や飛行機にペーパーレスの「顔スキャン」セキュリティチェックチャネルが導入される予定だ......

日常生活のあらゆる分野に徐々に統合されてきたこの技術は、私たちの生活に多大な利便性をもたらしました。次に、この技術を簡単に学んでみましょう〜

01. AI顔認識

顔認識は、コンピュータービジョンとパターン認識の交差点であり、この 2 つを組み合わせたものです。

1980 年代後半には、神経生理学、脳神経学、視覚知識が顔認識に導入されました。コンピュータ技術の急速な発展とコンピューティング コストの急速な低下と相まって、大規模なサンプルの導入、多次元の特徴パラメータの抽出、モデリングなど、以前は時間とスペースを消費していたいくつかのパターン マッチング アルゴリズムが可能になりました。

顔認識の分野の研究は、理論的価値が高いだけでなく、実用的価値も高く、顔の特徴に基づいて人物を識別する生体認証技術です。

02. フィールドを特定する

顔検出

画像内の顔を検出して位置を特定し、高精度の顔フレーム座標を返すことを指します。これは、顔の分析と処理の最初のステップです。

初期検出プロセスは「スライディング ウィンドウ」と呼ばれ、画像内の長方形領域をスライディング ウィンドウとして選択し、このウィンドウからいくつかの特徴を抽出して画像領域を記述し、最後にこれらの特徴記述に基づいてこのウィンドウが顔であるかどうかを判断します (下の図を参照)。

顔検出のプロセスは、観察する必要があるウィンドウを継続的に横断することです。

顔のキーポイント検出

これは、顔の特徴と輪郭の重要なポイントの座標を特定して返すことを指します (下の図を参照)。

重要なポイントとしては、顔、輪郭、目、眉毛、唇、鼻の輪郭などがあります。

現在、Face++ などの一部の顔認識企業は、最大 106 ポイントの高精度なキーポイントを提供できます。

静止画像でも、動的なビデオストリームでも、顔に完璧にフィットします。

顔のキーポイント位置決め技術

キーポイント位置決め技術には主にカスケード形状回帰(CSR)が含まれます。現在、顔認識は一般的にDeepIDネットワーク構造に基づいています。

DeepID ネットワーク構造は畳み込みニューラル ネットワーク構造に似ていますが、主な違いは最後から 2 番目の層です。DeepID ネットワーク構造には DeepID 層があり、これは畳み込み層 4 と最大プーリング層 3 に接続されています。畳み込みニューラル ネットワーク層の数が多いほど視野が広くなるため、この接続方法ではローカル機能とグローバル機能の両方を考慮できます (下の図を参照)。

顔認証

2 つの顔が同一人物のものである可能性を分析することを指します。

2 つの顔を入力し、信頼スコアと対応するしきい値を取得して類似性を評価します。

次の図は、Face++ 顔検証オンライン インターフェイスを呼び出した結果を示しています。比較の結果、同一人物である可能性が高いことが判明しました。

顔属性検出

顔属性認識と顔感情分析に分かれています。

たとえば、人物の年齢、ひげの有無、感情(幸せ、普通、怒り、激怒)、性別、眼鏡の有無、肌の色などを入力することで、顔の属性認識や顔の感情分析を実行できます。

以下に示す写真のテスト結果は、メイクと照明のせいであまり正確ではありません。

02. データ前処理

画像認識では、データの前処理が非常に重要なステップです。

ここでは、キャリブレーションのために facenet ソース コードの align モジュールを使用します。検出に使用するデータセットを、事前トレーニング モデルに使用するデータセットと同じサイズに調整する必要があります。

キャリブレーション プログラムを正しく実行するには、次の環境変数を設定する必要があります。

  1. PYTHONPATHをエクスポート=$YOURHOME/facenet/src

キャリブレーションコマンドは次のとおりです。

  1. N が {1..4} の場合、python src/align/align_dataset_mtcnn.py を実行します $YOURHOME/facenet /datasets/lfw/raw $YOURHOME/facenet/datasets/lfw/lfw_mtcnnpy_160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25 完了

ここでは、GitHub で提供されている事前トレーニング済みモデル 20170216-091149.zip を使用し、使用するトレーニング セットは MS-Celeb-1M データセットです。

MS-Celeb-1M は、Microsoft の非常に大規模な顔認識データベースです。これは、有名人リストから上位 100 万人の有名人を選択し、検索エンジンを通じて各有名人の顔画像を約 100 枚収集することによって作成されます。この事前トレーニング済みモデルの精度は 0.993±0.004 に達しました。

ダウンロードしたモデルを次のように解凍します。

  1. $YOURHOME/facenet/models/facenet/20170216-091149

含まれるファイルは次のとおりです。

  1. モデル-20170216-091149.ckpt-250000.データ-00000-of-00001  
  2. モデル-20170216-091149.ckpt-250000.インデックス 
  3. モデル-20170216-091149.met 10.4.3

03. テストを実施する

走る

facenet ディレクトリに入り、次のコマンドでスクリプトを実行します。

  1. python src/validate_on_lfw.py データセット/lfw/lfw_mtcnnpy_160 モデル

結果は次のとおりです。

  1. モデルディレクトリ: /media/data/DeepLearning/models/facenet/20170216-091149/ メタグラフファイル: model-20170216-091149.meta  
  2. チェックポイント ファイル: model-20170216-091149.ckpt-250000  
  3. LFW イメージのフォワードパスの実行 
  4. 精度: 0.993+-0.004  
  5. 検証率: 0.97533+ -0.01352 @ FAR = 0.00100  
  6. 曲線下面積(AUC):0.999  
  7. 等価エラー率 (EER): 0.008

比較する

ベンチマークとの比較のために、ここでは facenet/data/pairs.txt ファイルが使用されます。これは、一致する名前と一致しない名前と画像番号を含む、ランダムに生成された公式データです。

人物名と写真番号の一致例は次のとおりです。

  1. アベル・パチェコ 1 4

Abel_Pacheco の 1 枚目と 4 枚目の写真は同じ人物です。

名前と写真 ID が一致しない例には、次のようなものがあります。

  1. アブデル・マディ・シャブネ 1 ディーン・バーカー 1

つまり、Abdel_Madi_Shabneh の最初の写真と Dean_Barker の最初の写真は同一人物ではないということです。

検出

次に、validate_on_lfw.py がどのように顔を検出するかを見てみましょう。それは次の 4 つのステップに分けられます。

  1. def main(引数):  
  2. tf.Graph().as_default() を使用する場合:  
  3. tf.Session() を sess として使用:

1. 前のpairs.txtファイルを読む

読んだ後

  1. [['アベル・パチェコ', '1', '4']  
  2. ['Akhmed_Zakayev', '1', '3'] ['Slobodan_Milosevic', '2', 'Sok_An', '1']]ペア= lfw .read_pairs(os.path.expanduser(args.lfw_pairs))

ファイルパスを取得し、それが一致するかどうかを確認します

  1. パス、 actual_issame = lfw .get_paths(os.path.expanduser(args.lfw_dir)、  
  2. ペア、args.lfw_file_ext)

2. モデルをロードする

  1. print('モデルディレクトリ: %s' % args.model_dir)  
  2. meta_file、 ckpt_file = facenet.get_model_filenames (os.path.expanduser  
  3. (args.model_dir))  
  4. print('メタグラフファイル: %s' % meta_file)  
  5. print('チェックポイントファイル: %s' % ckpt_file)  
  6. facenet.load_model(args.model_dir、meta_file、ckpt_file) 関数は、モデルディレクトリに格納されたモデルをロードします。

3.入力テンソルと出力テンソルを取得する

  1. images_placeholder = tf .get_default_graph().get_tensor_by_name("入力:0")  
  2. 埋め込み= tf .get_default_graph().get_tensor_by_name("埋め込み:0")  
  3. phase_train_placeholder = tf .get_default_graph().get_tensor_by_name  
  4. ("phase_train:0")  
  5. image_size = images_placeholder.get_shape () です 
  6. 埋め込みサイズ=埋め込み.get_shape ()

4. フォワードプロパゲーションを使用して検証する

  1. print('LFW イメージでフォワード パスを実行しています')  
  2. batch_size = args.lfw_batch_size  
  3. nrof_images =長さ(パス)  
  4. nrof_batches = int (math.ceil(1.0*nrof_images / batch_size))  
  5. バッチの総数emb_array = np.zeros ((nrof_images,embedding_size))  
  6. i が範囲内(nrof_batches)の場合:  
  7. 開始インデックス= i*バッチサイズ 
  8. end_index = min ((i+1)*batch_size, nrof_images)  
  9. パスpaths_batch = パス[start_index:end_index]  
  10. 画像= facenet.load_data (paths_batch, False, False, image_size)  
  11. feed_dict = { images_placeholder:画像、phase_train_placeholder:False }  
  12. emb_array[開始インデックス:終了インデックス,:] = sess.run(埋め込み,  
  13. feed_dict =フィードディクショナリ)

5. 計算

ここでは、10 倍交差検証法を使用して精度と検証率を計算します。

  1. tpr、fpr、精度、val、val_std、 far = lfw .evaluate(emb_array、  
  2. 実際の_issame、 nrof_folds = args.lfw_nrof_folds )  
  3. print('精度: %1.3f+-%1.3f' % (np.mean(精度), np.std(精度)))  
  4. print('検証率: %2.5f+-%2.5f @ FAR =%2.5f' % (val, val_std, far))  
  5. auc値を取得します。auc = metrics.auc (fpr, tpr)  
  6. print('曲線下面積 (AUC): %1.3f' % auc)  
  7. 等エラー率(eer)を取得する 
  8. eer = brentq (lambda x: 1. - x - interpolate.interp1d(fpr, tpr)(x), 0., 1.)  
  9. print('等価エラー率 (EER): %1.3f' % eer)

ここでは、アルゴリズムの精度をテストするために 10 倍のクロス検証法が使用されます。 10 分割交差検証は、一般的に使用される精度テスト方法です。具体的な戦略は、データセットを 10 の部分に分割し、そのうち 9 つをトレーニング セットとして、1 つをテスト セットとして交互に使用し、10 の結果の平均をアルゴリズムの精度の推定値として使用することです。通常、平均を計算するには、複数の 10 分割交差検証が必要です。たとえば、10 分割交差検証を 10 回実行し、平均を計算してアルゴリズムの精度の推定値として使用します。

04. AI顔認識技術は進歩している

現在、外出時にマスクを正しく着用することは必要な予防策です。

しかし、マスクは不透明なため、カメラで撮影した画像では口や鼻などの顔の特徴を捉えることができません。

顔認識モデルは顔の特徴全体を使用するため、マスクを着用すると AI 顔認識が失敗し、手動検査は非効率的になります。

幸いなことに、主要な科学技術の巨人たちは、AI 顔認識をこれまでよりもさらにスマートにする方法の研究に専念してきました。

マスク認識モデル

Baiduのエンジニアが開発したAIマスク検査装置です。

公共の場で使用すると、非接触でリアルタイムの画像でマスクを着用していない人や正しく着用していない人を迅速かつ正確に識別できます。

[[317581]]

マスク着用者の顔認識モデル

SenseTimeはAIを活用した伝染病予防ソリューションを立ち上げた。

同社の地域アクセスモジュールはマスクを着用した人の身元を認識できるとしている。マスクを着用した人が鼻梁の50%が露出していれば、通過率は85%に達する。

ダイナミック顔認識

ハンワンテクノロジーは最近、ダイナミック顔認識マシンの明るいシルバーダイヤモンドモデルを発売しました。

マスク着用者の認識率も85%に達します。

現在、このシステムは北京で20人以上のユーザーと約200セットのアプリケーション機器を擁しています。

[[317582]]

アリババやファーウェイも、認識率の高いモデルを開発している。

これまでは、顔全体の情報特徴に頼って身元を識別していました。将来的には、顔の半分、あるいは目さえも使って、AI顔認識システムが私たち一人ひとりを正確に識別できるようになります。テクノロジーが活発に発展すれば、生活の中で起こるさまざまな問題に対処するのに役立つでしょう。

AI顔認識技術についてもっと知りたいですか?この本「TensorFlow テクノロジーの分析と実践」は、すべての人にお勧めです。

TensorFlow は Google が開発したディープラーニング フレームワークであり、現在ディープラーニングの主流フレームワークの 1 つです。この本は、ディープラーニングの基礎から始まり、TensorFlow フレームワークの原理、インストール、モデル、ソースコード、統計分析など、さまざまな側面を詳しく説明します。この本は、基礎、実践、改善の 3 つの部分に分かれています。最後の付録では、参考として公開されているデータセットをいくつかリストし、著者のプロジェクト経験に基づいたプロジェクト管理に関する提案をいくつか紹介します。

<<:  2020年のサイバーセキュリティの転換点: 人工知能

>>:  ハリー・シャムが清華大学の記録を破り、ビデオを通じて任命された史上初の教授となり、説明可能なAIを訴える

ブログ    
ブログ    
ブログ    

推薦する

話題の「人工知能」について、気になるNの質問にお答えします

人工知能は、かなり長い間人気を博してきました。多くの投資家、起業家、そしてあらゆる規模の企業が、この...

自動車所有者は完全自動運転を導入すべきでしょうか?マスク氏:よく分かりません

北京時間7月27日、テスラは最近、自動車所有者に「完全自動運転」(FSD)機能のサブスクリプションを...

生成 AI は私たちに必要な技術革命でしょうか?

アンディ・ノーラン過去、生成 AI について多くの人が話し、使用し、さまざまなユースケースを試してき...

OpenAI の人事異動は、Nvidia、AMD、Intel、Microsoft にどのような影響を与えるでしょうか?

OpenAI の人事異動の影響:ウルトラマンが勝つ彼はついに株式を取得することができました!マイク...

...

ChatGPT が作成した履歴書が人事部の心を動かし、彼は卒業後すぐに夢のオファーを獲得しました。

こんにちは、最近卒業した人が ChatGPT を使用してカバーレターを作成し、数分で履歴書のスクリー...

IDCは、年平均成長率31.4%で、世界のAIソフトウェアの収益は2027年に2,790億ドルに達すると予測している。

11月2日、市場調査会社IDCが発表した最新の予測レポートによると、世界のAIソフトウェア市場規模...

...

...

一流大学のAIが一流弁護士に勝つ:契約書のレビューを26秒で完了

最近、アメリカの一流弁護士たちが人工知能と競争したが、弁護士たちは負けたと報じられている。法律AIプ...

年収100万ドルでもまだ足りない。AI人材はどれくらい高価なのか?

シリコンバレーで最も隠し切れない秘密の一つは、人工知能の専門家が実際に給料やボーナスでどれくらい稼い...

...

AIとクラウドコンピューティングが相互に利益をもたらし、ビジネス効率を向上させる方法

長年にわたり、クラウド コンピューティングは現代のビジネスに欠かせないツールとなり、2020 年には...

人工知能の長所と短所をどのように見ていますか?

人工知能は、人間の生活に強固な物質的基盤を築くだけでなく、より多くの人々を単純で退屈な反復作業から解...

人工知能は2018年にこれら5つの業界に革命を起こすだろう

科学技術分野における人工知能技術に関する議論は最高潮に達したようだ。昨年半ば、国務院は「新世代人工知...