最近、face_recognitionという顔認識プロジェクトがGitHubのトレンドリストに掲載され、注目を集めています。オープンソース化されてから執筆時点までに、このプロジェクトの Github 上のスター数は 26,500 に達し、フォーク数は 7,117 に達しました。本稿では、主に国内開発者による研究・調査を促進するために、プロジェクトの指示と使用方法を紹介します。 face_recognition は、史上最も強力かつシンプルな顔認識プロジェクトであると主張しています。このプロジェクトは、ソフトウェアエンジニアリング開発者兼コンサルタントのアダム・ガイトギー氏によって開発されたと報じられています。その強みは、業界をリードする C++ オープンソースライブラリ dlib のディープラーニングモデルに基づいているだけでなく、マサチューセッツ大学アマースト校が作成した Labeled Faces in the Wild という顔データセットも使用していることです。このデータセットには、インターネットから収集された 13,000 枚以上の顔画像が含まれており、精度は最大 99.38% です。さらに、このプロジェクトには、Raspberry Pi システムと特に互換性のある完全な開発ドキュメントとアプリケーション ケースが装備されています。シンプルさの理由は、オペレーターが Python とコマンドライン ツールを直接使用して顔を抽出、認識、操作できるからです。 現在、プロジェクトの説明には中国語の翻訳があります。この記事では翻訳者(GitHub ID:TommyZihao)の許可を得て、その翻訳を引用し、プロジェクトについて簡単に紹介します。 いつものように、GitHub プロジェクトのリンクは次のとおりです。
特性1. 画像内のすべての顔を見つけて位置を特定します。
2. 顔の重要なポイント(目、鼻、口、あごなど)を特定する
私の顔認識プロジェクトは、いくつかの重要な分野で重要な役割を果たすだけでなく、デジタルメイクの自動メイクアップ機能(Meitu XiuXiuに類似)も備えており、「遊び心」を喚起する可能性があります。 3. 写真に写っている人物を特定する
4. 他の Python ライブラリ (opencv など) と組み合わせることで、このプロジェクトではリアルタイムの顔検出も実現できます。詳細な例については、以下を参照してください。
インストール環境構成:
さまざまなオペレーティング システムのインストール方法: 1. このプロジェクトを Mac または Linux にインストールします。 方法1: まず、dlib と関連する Python 依存関係をインストールします。
次に、次のコードを使用して、pip3 または Python 2 の pip2 経由でインストールします。
インストールが失敗した場合は、Ubuntu 仮想マシンを使用してインストールできます。次のチュートリアルを参照してください。
(VMWare Player または VirtualBox がコンピューターにインストールされている必要があります) 方法2: pip ミラー ソースを Tsinghua ミラーに変更し、pip install face_recognition を使用します。これにより、dlib を含むさまざまな依存関係が自動的にインストールされます。 dlib はコンパイルする必要があるため、dlib のインストール時に問題が発生する可能性があります。この問題は通常、gcc または g++ のバージョンの問題であるため、pip install face_recognition を実行する前に、コマンドラインで入力できます。
gcc と g++ の場所を指定します (この 2 つの文は、現在のターミナルの環境変数 /usr/local/bin/gcc を、gcc または g++ が配置されているディレクトリに対応するように一時的に変更します)。 2. Raspberry Piにインストールします。 Raspberry Pi インストールガイド:
3. Windows へのインストール: このプロジェクトは正式には Windows をサポートしていませんが、一部の専門家は Windows でこのプロジェクトを実行する方法を見つけました。@masoudr は、Win10 システムに dlib ライブラリと face_recognition プロジェクトをインストールする方法に関するチュートリアルを作成しました。
Ubuntu 仮想マシン イメージ ファイルを使用して、仮想マシンをインストールおよび構成します。このプロジェクトは、このイメージに既に含まれています。
使い方1. コマンドラインツールの使用 プロジェクトがインストールされると、次の 2 つのコマンド ライン ツールが利用できるようになります。
face_recognition コマンドラインツール: face_recognition コマンドライン ツールは、単一の画像または画像フォルダー内の顔を識別できます。まず、名前がわかっている顔画像のフォルダが、人物ごとに 1 つずつ必要です。画像のファイル名は、対応する人物の名前です。次に、認識したい画像を含む 2 番目の画像フォルダが必要です。 次に、コマンド ラインで 2 つのフォルダーが配置されているパスに切り替え、face_recognition コマンド ラインを使用して 2 つの画像フォルダーを渡すと、不明な画像内の人物の名前が出力されます。
出力の各行は画像内の顔に対応し、画像名と対応する顔認識結果はカンマで区切られます。 結果に unknown_person が出力された場合、この顔は既知の顔画像フォルダー内のどの人物にも一致しないことを意味します。 face_detection コマンドラインツール face_detection コマンドライン ツールは、単一の画像または画像フォルダー内の顔を特定できます (出力ピクセル座標)。コマンドラインで face_detection を使用し、画像のフォルダーまたは単一の画像ファイルを渡して顔の位置を検出します。
出力の各行は画像内の顔に対応し、出力座標は顔の上、右、下、左のピクセル座標を表します。 顔認識の許容度と感度を調整する 顔が複数の結果で認識された場合、その人は他の人と非常に似ていることを意味します (さらに、子供とアジア人に対するこのプロジェクトの精度を向上させる必要があります)。エラー許容度を下げると、認識結果をより厳密にすることができます。この機能は、パラメータ --tolerance を渡すことで実現できます。デフォルトの許容率は 0.6 です。許容率が低いほど、認識は厳格かつ正確になります。
顔のマッチングの具体的な値は、パラメータ --show-distance true を渡すことで表示できます。
認識速度に満足できない場合はどうすればいいですか? CPU に複数のコアがある場合は、並列コンピューティングによって顔認識を高速化できます。たとえば、CPU に 4 つのコアがある場合、それらを並列化することで操作の速度を約 4 倍に上げることができます。 Python 3.4 以降を使用する場合は、--cpus <number_of_cpu_cores_to_use> パラメータを渡すことができます。
(--cpus -1 パラメータを渡すと、CPU のすべてのコアを呼び出すことができます。) さらに、Tommy Zihao 氏は、Raspberry Pi 3B には 4 つの CPU コアがあり、マルチコア パラメータを渡すと、画像認識の速度が大幅に向上すると述べました。 その他のケーススタディ 画像のファイル名は気にせず、フォルダー内の画像に誰が含まれているかだけを知りたい場合は、次のパイプ コマンドを使用できます。
2. Pythonの使用 Python で face_recognition モジュールをインポートし、豊富な API インターフェースを呼び出すと、わずか数行のコードでさまざまな顔認識機能を簡単に使用できるようになります。 API インターフェースのドキュメント:
顔の位置を特定したり、顔の身元を認識したりするにはどうすればよいでしょうか? Python では、次のコードを使用して画像内の顔を特定できます。
参考事例:
画像内の顔を識別します。
参考事例:
顔認識に関して厳密な要件がある場合はどうすればよいでしょうか? ディープラーニング モデルを使用すると、より正確な顔の位置決めを実現できますが、この方法では GPU アクセラレーション (NVIDIA グラフィック カードの CUDA ライブラリによって駆動) が必要であり、dlib をコンパイルしてインストールするときに CUDA サポートも有効にする必要があることに注意してください。
参考事例:
認識する画像が多数あり、GPU がある場合は、次の例を参照できます。
1 枚の画像で顔の重要なポイントを識別するにはどうすればよいでしょうか?
参考事例:
オバマとバイデンの顔の特徴を特定する その他の例:
顔の位置 事例:バイデン氏の顔の位置特定
事例: 畳み込みニューラルネットワークのディープラーニングモデルを使用してバイデンの顔を見つける
事例: 畳み込みニューラル ネットワークのディープラーニング モデルを使用して画像内の顔をバッチ認識する
例: ウェブカメラのビデオの顔のガウスぼかし (OpenCV がインストールされている必要があります)
顔のキーポイント認識 事例:オバマ氏とバイデン氏の顔の重要なポイントの抽出
事例:バイデン米副大統領に化粧を施す
顔認識 事例:オバマかバイデンか?
例: 顔認識後に元の画像に枠を描き、名前をラベル付けする
例: 異なる精度で 2 つの顔を比較し、同じ人物のものであるかどうかを確認する
例: 顔認識のためにカメラからビデオを取得する - 低速バージョン (OpenCV のインストールが必要)
顔認識に関する記事とチュートリアル
顔認識の仕組み 顔認識のブラックボックスについて詳しく知りたい場合は、この記事をお読みください。
警告メモこのプロジェクトの顔認識モデルは成人を対象としており、子供にはうまく機能しない可能性があります。画像に子供がいる場合は、しきい値を 0.6 に設定することをお勧めします。人種によって認識結果が異なる場合があります。詳細については、Wikipedia のページを参照してください。 このプロジェクトをクラウド サーバー (Heroku、AWS など) にデプロイします。このプロジェクトは C++ ライブラリ dlib に基づいているため、Heroku や AWS などのクラウド サーバーにこのプロジェクトをデプロイするのが賢明です。 このプロセスを簡素化するために、face_recognition アプリを Docker コンテナー ファイルにパッケージ化する方法を説明する Dockerfile の例があります。このコンテナー ファイルは、Docker イメージ ファイルをサポートする任意のクラウド サービスにデプロイできます。 何か問題が発生しましたか?何か問題が発生した場合は、Github で問題を送信する前に、一般的なエラーを確認してください。 |
>>: ファーウェイ、セキュリティ業界を洞察から先見へと進化させる2019年スマートセキュリティ事業戦略を発表
アプリケーションの可観測性と AI の信頼、リスク、セキュリティ管理は、ガートナーが 2023 年に...
オンライン学習によって引き起こされる壊滅的な忘却問題を解決するために、北京大学などの研究機関は、勾配...
人間が自分よりも賢いものを創造できる理由について考えたことがありますか?あなたは、人工知能というこの...
世界の通信業界の専門家が2024年を予測5G が世界をカバーし、人工知能がネットワークを再形成し、デ...
ここ数か月、私はたくさんのロボットに取り組んできました。このプロセスで私が学んだ教訓をいくつか紹介し...
序文今後ますます多くの企業が AI 関連のテクノロジーを利用するようになるでしょう。ほとんどの AI...
私は長年、学界と産業界の両方で機械学習モデリングに取り組んできましたが、Scalable ML で「...
今日、あらゆる業界にとって、「マルウェアを効果的に検出する方法」は、ネットワーク セキュリティに関す...
ヒューマンマシンインターフェースがなければ、ドライバーは自動運転車 (AV) と通信できません。さら...
今日の物語の主人公は、サンジーヴ・アローラとアニルド・ゴヤルという二人の科学者です。アローラ氏はプリ...
[[431145]]過去1年間、COVID-19パンデミックにより、多くの業界が開発戦略を再考し、変...
[[205684]] Tu Weiwei 氏は、Fourth Paradigm Prophet プラ...
人工知能(AI)は未来の技術ではなく、すでに存在している技術です。機械学習のイノベーションにより A...