前回の記事では、写真に写っている顔を検出し、顔の特徴(鼻、目、眉毛など)をマークしました。この記事では、前回の記事に基づいてさらに顔認識を実装し、写真に写っている人物が誰であるかを判別します。 準備 私たちの顔認識は face_recognition ライブラリに基づいています。 Face_recognition は dlib に基づいて実装されており、ディープラーニング トレーニング データを使用しており、モデルの精度は最大 99.38% です。作業を始める前に、face_recognitionをインストールしましょう
顔のデジタル化 顔認識の最初のステップは、写真内の顔領域を検出し、顔画像データを長さ128のベクトルに変換することです。これらの128のデータは、以下に示すように、顔の128の特徴指標を表します。 既知の顔ごとに、このような 128 ビットのベクトルを生成します。未知の顔については、その 128 ビット ベクトルをすべての既知の顔の 128 ビット ベクトルと 1 つずつ比較し、最も類似度の高いもの、つまり未知の顔に対応する人物を見つけます。 画像データ 私たちはケイト王女の写真とウィリアム王子の写真を 2 枚用意し、それぞれ catherine.jpg と william.jpg として保存しました。この 2 枚の写真に写っている顔は、私たちが知っている顔です。 私たちの目標は、下の集合写真に写っている 2 人の顔を識別し、写真に名前を記入することです。次の画像はunknown.jpgとして保存されています コードの実装 次にプログラミング作業を始めましょう
まず、names 配列に格納されるタグ セットを定義します。 タグ名は画像のファイル名でもあります。
画像からデータを読み込むには、face_recognition.load_image_file を呼び出します。 ここでは、既知の顔と未知の顔の写真が入ったデータを読み込みます。未知の顔の写真は、上記の集合写真 unknown.jpg です。
face_recognition.face_encodings は、画像内のすべての顔の 128 ビットのベクトルを返します。 1人の人物の写真には顔が1つしかないため、face_recognition.face_encodings(image)[0]は最初の要素のみを取得します。グループ写真には 2 つの顔が含まれているため、unknown_face_encodings には 2 つの 128 ビット ベクトルが含まれます。
face_locations は各顔の位置情報を格納します。 ループ内では、検出された各顔をフレームに収めるために cv2.rectangle を呼び出します。 face_recognition.compare_faces は、既知の顔の 128 ビット ベクトルを各未知の顔の 128 ビット ベクトルと比較し、結果を結果配列に格納します。結果配列の各要素は True または False であり、その長さは面の数に等しくなります。結果内の各要素は、既知の顔と 1 対 1 で対応します。特定の位置の要素が True の場合、未知の顔がこの既知の顔として認識されていることを意味します。 識別された顔ごとに、cv2.putText を呼び出して画像にラベルを付けます。 コードはこれだけです。 テスト 興奮の瞬間がまたやってきました! 結果をテストしてみましょう。 上記のプログラムを実行すると、次の結果が表示されます。 ウィリアム王子とケイト王女の顔は正確に認識されました。顔の領域は緑色の枠で囲まれ、認識された人物の名前が枠の上に表示されます。 これまでに顔認識に成功しています。 今後は、切り抜き、手描き効果、QR コード認識、検証コード認識など、画像処理の他の興味深いアプリケーションも随時更新していきます。 |
<<: WeChat の赤い封筒のランダム アルゴリズムはどのように実装されていますか?
>>: 李開復氏はAIバブルが年末までに崩壊すると予測、ルクン氏:それは本当だ
今日の世界では、データはお金を意味します。アプリベースの世界への移行に伴い、データは飛躍的に増加して...
AIの学習は幼稚園から始まる最近、インターネット上で「人工知能実験教科書」の写真が流通している。この...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[345484]]誰もが Google 翻訳をよく知っているはずですが、ほぼすべての既知の言語を私...
人工知能 (AI) ベンチマークは、モデルを測定および比較するための方法を提供します。ベンチマークを...
大型モデルにおける幻覚の問題は、業界ではよく話題になります。最近、Vectara という組織が Gi...
一意の ID はデータの一意性を識別します。分散システムで一意の ID を生成する方法は多数あります...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
生成 AI の初年度で、すべての人の仕事のペースが大幅に加速しました。特に、今年は誰もが大型モデルの...
ウルトラマンの新たな動きが多くの開発者を怒らせた。これらの開発者は、プラグインの開発許可を待つのでは...
最近、AI(人工知能)同時通訳詐欺事件をめぐる議論がテクノロジーや翻訳界で話題となり、「AIは人間を...
効果的な IT 組織は、ハイパフォーマンス コンピューティング (HPC) から教訓を得て、システム...