Pythonで簡単な顔認識を実装すると、私はこの星にとても似ていることが判明しました

Pythonで簡単な顔認識を実装すると、私はこの星にとても似ていることが判明しました

近年、人工知能の人気が急上昇しており、画像認識、音声認識、機械翻訳、自動運転車など、AI の能力と威力が人々に知られるようになりました。一般的に、AI の敷居はまだ比較的高いです。フレームワークの使い方を学ぶ必要があるだけでなく、さらに重要なのは、線形代数、行列、微積分などの特定の数学的基礎を身に付けていることです。

幸いなことに、国内外の多くの優れた専門家がすでに私たちのために「車輪」を構築しており、特定のモデルを直接使用することができます。今日は、顔の比較の簡単なバージョンを実装する方法を皆さんと共有します。とても興味深いです!

全体的なアイデア:

  • 必要な顔認識モデルを事前にインポートする
  • フォルダ内の写真を走査し、モデルにキャラクターの外観を「記憶」させます
  • 新しい画像を入力し、前のフォルダ内の画像と比較し、最も近い結果を返します。

使用されるサードパーティのモジュールとモデル:

モジュール: os、dlib、glob、numpy

モデル: 顔キーポイント検出器、顔認識モデル

1. 必要なモジュールとモデルをインポートする

ここに 2 つの dat ファイルがあります:

それらは本質的にはパラメータ値(つまり、ニューラル ネットワークの重み)です。顔認識はディープラーニングの応用であり、事前に大量の顔画像を使ったトレーニングが必要です。したがって、最初に、人間の顔を「記憶」するためのニューラル ネットワーク構造を設計する必要があります。

ニューラル ネットワークの場合、構造が同じであっても、パラメーターが異なると認識結果も異なります。ここで、2 つのパラメータ ファイルは異なる関数に対応しています (異なるニューラル ネットワーク構造に対応しています)。

shape_predictor.dat は、目や口などの顔のキーポイントを検出するために使用されます。dlib_face_recognition.dat は、以前に検出されたキーポイントに基づいて顔の特徴値を生成します。

したがって、後でdlib モジュールを使用する場合、これは実際には特定のニューラル ネットワーク構造を呼び出して、呼び出したニューラル ネットワークに事前トレーニング済みのパラメーターを渡すのと同じことになります。ちなみに、ディープラーニングの分野では、数百メガバイトのパラメータを持つモデルをトレーニングするのが普通です。

2. トレーニングセットを特定する

このステップでは、画像フォルダ内の人物画像の顔の特徴を計算し、リストに入れて、後で新しい画像との距離計算を実行できるようにする必要があります。重要なポイントはコメントで説明されており、理解するのは難しくないはずです。具体的な実装は次のとおりです。

この手順を完了したら、出力リスト記述子を確認すると、次のような配列が表示されます。各配列は各画像の特徴値 (128 次元) を表します。次に、L2 ノルム (ユークリッド距離) を使用して、2 つの間の距離を計算できます。

例えば、計算後、Aの固有値は[x1,x2,x3]、Bの固有値は[y1,y2,y3]、Cの固有値は[z1,z2,z3]、

すると、A と B はより近いので、A と B はより似ていると考えられます。極端なケースを想像してください。これらが同じ人物の 2 つの異なる写真である場合、それらの固有値はほぼ近いはずではありませんか?これを知れば、先に進むことができます。

3. 比較する画像を処理する

実は、原理は同じです。目的は固有値を計算することなので、2 番目のステップと似ています。次に、2 番目のステップで新しい画像と各画像間の距離を計算し、それらを辞書型に合成し、並べ替えて、最小値を選択すれば完了です。

4. 走ってみる

ここでは「破水流名人」林國斌の写真を使用しましたが、認識結果は予想通り、ドーンに最も近いものでした(笑、ドーンが大好きです)。しかし、事前にトレーニング画像セットにラム・クォックビンの写真を入れておけば、結果はラム・クォックビンになります。

なぜドーンなのか?入力画像内の文字 *** と各星の間の距離を調べ、出力を印刷してみましょう。

そうです、ドーンとの距離が一番近いので、一番似ているんです!

Python はとても面白くて楽しいです。クローラーで遊んだり、データ分析を探求したり、定量金融でお金を稼いだりすることができます。女の子をナンパしたり、自動化作業を行うこともできます。機械学習の分野はさらに優れており、顔認識、自然言語処理、データ予測、マイニングなどがあります。 [編集者:パン・グイユ TEL: (010) 68476606]

<<:  Amazon SageMaker を使用した機械学習モデルのトレーニングとデプロイ

>>:  オープンソースツール | データサイエンスのための Python 入門

ブログ    
ブログ    
ブログ    

推薦する

なぜディープラーニングは非パラメトリックなのでしょうか?

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

大企業に必須の、偉大な神からのオープンソースアルゴリズムツールブック

近年、大企業への入社要件はますます高くなり、アルゴリズムに対する要求も徐々に高まっています。アルゴリ...

...

AIの未来: 汎用人工知能

人工知能を真に理解するために、研究者は、環境に対する人間のような理解を再現できる基礎的な AGI 技...

年末総括:2020年の顔認識業界の注目イベント一覧

「顔スキャン」時代の到来が加速するにつれ、人々が旅行したり、出勤記録を取ったり、医療の予約を取ったり...

ガートナーレポート: 世界のカスタマーサービスセンターが会話型 AI を導入、今年の支出は 16.2% 増加

8月1日、市場調査会社ガートナーが発表した最新のレポートによると、世界中のカスタマーサービスセンター...

さまざまな専門家が独自のカスタムGPTを提供しました。24時間のトップ9リストはこちらです。

11月10日の早朝、OpenAIはGPTをリリースしました。ChatGPT Plusのすべての加入...

...

東方世界の楊暁:AR開発技術のポイントを探る

[51CTO.comからのオリジナル記事] 市場調査会社Digi-Capitalのデータによると、2...

アヴネットは18年連続で「トップ10ベスト国際ブランドディストリビューター」の称号を獲得しました。

[[284150]] 深圳でグローバル電子部品販売代理店優秀賞授賞式が開催されました。アヴネット中...

AIがイノベーションの大きな原動力となる理由

近年、人工知能は新興技術から必需品へと徐々に変化してきました。より大規模な企業の問題に対する解決策を...

AIは急速に変化しています。コンピュータービジョンの未来はどこにあるのでしょうか?

著者: 張傑[51CTO.com からのオリジナル記事]コンピューター ビジョン (CV) は、人工...

1000ステップ未満の微調整で、LLaMAコンテキストは32Kに拡張されました。これは、Tian Yuandongチームの最新の研究です。

誰もが独自の大規模モデルをアップグレードして反復し続けるにつれて、コンテキスト ウィンドウを処理する...

Github のデータサイエンスと機械学習のリポジトリ トップ 10

この記事では、データサイエンスと機械学習の愛好家にとって最も役立つ Github リポジトリをいくつ...