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 入門

ブログ    
ブログ    

推薦する

機械学習は、足を上げることから敷居に落ちることまで行います

突然、AI 時代に入ったようです。裏では、多くの友人が、来たる All in AI を迎えるために、...

AIは単細胞生物が脳なしで意図した方向に移動する仕組みを説明するのに役立つ

単純な生物はどのようにして特定の場所へ移動できるのか?ウィーン大学で開発された人工知能と物理モデルが...

テスラは最初にこの問題の矢面に立たされ、自動運転の安全性の問題が再び話題となっている。

今日、自動運転は自動車産業の発展と変革の重要な方向性の一つとなっています。自動運転技術が成熟するにつ...

Google は、MLM 損失で直接事前トレーニングされた 24 個の小さな BERT モデルをリリースしました。

[[318598]] Google は最近、24 個の合理化された BERT モデルをダウンロード...

...

人工知能の時代において、あなたの子供は15年後にどんな職業に就くことができるでしょうか?

12年後の2030年、現在の小中学生が就職を控える頃の世界は、1.現在の職業の多くが消滅し、2.2...

...

...

グラフニューラルネットワークが深くなるほど、パフォーマンスは向上しますか?

数十または数百の層を持つニューラル ネットワークの応用は、ディープラーニングの重要な機能の 1 つで...

...

NLP タスクに最適な 6 つの Python ライブラリ

この記事では、自然言語処理タスクに最適な 6 つの Python ライブラリを紹介します。初心者でも...

人工知能は伝染病の予防と制御に役立ちます。正確にスクリーニングし、伝染病を推測し、ウイルスの発生源を追跡することができます。

感染予防・抑制の過程では、高リスクグループとスーパースプレッダーを迅速に特定し、感染の進行状況を正確...

...

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

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