face_recognition は、強力でシンプル、使いやすい顔認識オープンソース プロジェクトであり、完全な開発ドキュメントとアプリケーション ケースを備えており、特に Raspberry Pi システムと互換性があります。 Face_recognition はオープンソースとしてリリースされて以来、広く歓迎されてきました。その使いやすさと強力な機能により、非常に目立つラベルが付けられました。 Face_recognition は、企業や一部のエンジニアリング実践アプリケーション シナリオにとって非常に使いやすいツールです。認識プロジェクトを簡単に完了するために、それほど多くの理論的基礎は必要ないので、今日は具体的に説明します。 まず、face_recognition プロジェクトのオープンソース アドレスは次のとおりです。 https://github.com/ageitgey/face_recognition インターネット上には比較的完全な API の説明とサンプルアプリケーションが存在するため、ここでは詳細には触れません。まず、face_recognition をインストールする必要があります。これは pip を通じて実行できます。インストール中にエラーが発生した場合は、以下を参照してください。 https://yishuihancheng.blog.csdn.net/article/details/102679177 インストールが完了したら、使用できます。コーディングする前に、次に示すように、簡単なテストでインストールが成功したかどうかを確認できます。 インストールが成功したら、使用を開始できます。 1. 画像内の顔を見つける
以下のようなランダムな画像をインターネットで見つけました。 位置合わせの結果は次のとおりです。 それでも、非常に強力だと感じます。もちろん、練習中に、一部の画像認識では顔を検出できないこともわかりました。結局のところ、これは 100% の問題ではありません。Face_recognition は、独自の顔認識関連アプリケーションをより効率的に構築するのに役立つ基本的なフレームワークのようなものです。 2. 切り取った画像の各顔をローカルに保存する
使用した元の画像は上記と同じで、結果は次のようになります。 5 つの顔がすべて検出され、正常に保存されました。ここで、face_locations 関数の戻り結果に注意する必要があります。返されたサブリストの各サブリストには 4 つの要素が含まれており、これらは単一の顔画像の左上頂点と右下頂点の座標です。注目すべき主な点は、これら 4 つのパラメータの順序です。私が示した結果では、(x0、y0) は左上頂点の座標を表し、(x1、y1) は右下頂点の座標を表します。 3. 画像内の各顔を128次元のベクトルにエンコードする
ここで、顔認識のいくつかの応用原理についてお話ししなければなりません。以下は私の要約の一部です。不適切な点がありましたら、ご指摘いただければ幸いです。 face_recognition モジュールで顔認識アプリケーションを実装する原則: (1)識別したい顔の写真が与えられたら、それをエンコードし(1人につき1つのみ必要)、これらのさまざまな顔のエンコードのリストを作成します。エンコードでは、実際に顔画像を 128 次元の特徴ベクトルにマッピングします。 (2)画像ベクトル間の類似度を計算し、閾値または許容値に基づいて同一人物かどうかを判定する。 (3)認識結果ラベルを出力する。 face_recognitionの核心はこの部分のベクトル化処理にあると言っても過言ではありません。入力された顔画像はそれぞれ128次元の特徴ベクトルに変換されて保存されます。128次元の特徴ベクトルの生成もアルゴリズムです。興味があれば調べてみて詳細を知ることができます。ここでは詳しく説明しません。その後の顔認識は、2つの顔画像間のベクトル類似性の問題に変換されます。 ここでは、ジャッキー・チェンの画像をテストに使用します。元の画像は次のとおりです。 ベクトル化された結果は次のとおりです。 独自のカスタマイズされたアプリケーションを構築する場合は、通常、ここで変更することを選択します。最初に行う必要があるのは、ここで特徴ベクトルを保存することです。 4. 2枚の顔画像を入力して同一人物かどうかを判定する
これは実際には上記の 3 番目の部分と少し似ています。この部分は 3 番目の部分に基づいていますが、compare_faces 類似度計算インターフェースが付属しています。実際にここで置き換えを自分で実装することができます。 同様に、ジャッキー・チェンの画像 2 枚がテストに使用されました。元の画像は次のとおりです。 テスト結果は次のとおりです。 5. 顔のキーポイント認識とラベル付け
顔の重要なポイントには、鼻、口、目、眉毛などがあります。ここでも上記のジャッキー・チェンの写真を使用し、次の結果が出力されます。 6. メイク この部分は第5部分に基づいています。顔の特徴を取得した後、自動メイクを行うことができます。具体的な実装は次のとおりです。
ここでは、テストにアクアマンの写真を使用します。元の画像は次のとおりです。 処理後の結果は次のとおりです。 次のようなこともできます: 7. face_recognitionをベースにしたシンプルな顔認識アプリケーションを構築する 上記では、顔認識アプリケーションを多数紹介しました。ここで最も重要なのは、既存の機能に基づいて独自のパーソナライズされたアプリケーションを実現できることだと思います。ここではいくつかのアイデアを提示し、最もシンプルな独自の実装を示します。
データフォルダデータのスクリーンショットは次のとおりです。 test.png の内容は次のとおりです。 結果の出力は次のようになります。 もちろん、リアルタイムコンピューティングは、現在のコンピューティング方法では絶対に満たせないものです。これは、最も単純なアプリケーションにすぎません。ここでは、いくつかのアイデアを提案したいと思います。ここでは、face_recognition インターフェースを呼び出すことで類似性判断作業が完了します。もう 1 つの非常に一般的な方法は、顔画像の 128 次元の特徴ベクトルを取得した後、機械学習モデルに基づいて顔認識問題を単純な分類問題に変換することです。たとえば、SVM、RF、GBDT などはすべて、上記のタスクを非常にうまく完了できます。 さて、この記事はここで終わりです。コミュニケーションを歓迎します! |
<<: IBM Cloud Pack for Data が Wunderman Thompson の再開ガイドの作成を支援
>>: 解釈可能な機械学習のための Python ライブラリ
過去 10 年間、中国のスマート デバイス市場では、一連の技術的変化、エコシステムの変化、ユーザーの...
全国的な「オンライン授業」が始まって1か月、湖北省以外の省では新型コロナウイルスの新規感染者もそれほ...
懐疑論者は、完全な自動運転の実現は業界が考えているよりもずっと先のことかもしれないと述べている。 [...
ロボティック・プロセス・オートメーション (RPA) は、ビジネス プロセスの合理化に役立つ重要なテ...
過去数か月間、COVID-19ウイルスは世界中に大きな影響を与えてきました。世界保健機関によると、4...
ロボティック プロセス オートメーション (RPA) は、ルールベースのプロセスを使用して、人間より...
情報化建設の加速に伴い、ネットワークセキュリティは情報化時代のホットな話題となり、国民の関心と注目を...
すぐにスマートで健康的な建物で仕事に戻り、スマートフォンのアプリを使ってハンズフリーでドアを開けるこ...