これまで、顔認識には主に、顔画像の収集、顔認識の前処理、本人確認、身元検索などの技術とシステムが含まれていました。現在、顔認識は徐々にドライバー検出、歩行者追跡、さらには ADAS における動的物体追跡にまで拡張されています。
顔認識システムが単純な画像処理からリアルタイムのビデオ処理まで発展したことがわかります。さらに、アルゴリズムは、Adaboots や PCA などの従来の統計手法から、CNN や RCNN などの深層学習手法とその改良手法に変更されました。現在、かなりの数の人々が 3D 顔認識の研究を始めており、この種のプロジェクトは現在、学界、産業界、国によって支援されています。
まず、現在の研究状況を見てみましょう。上記の開発傾向からわかるように、現在の主な研究方向は、深層学習手法を使用してビデオの顔認識を解決することです。
主な研究者:
は以下の通りです: 中国科学院計算技術研究所のShan Shiguang教授、中国科学院生体認証研究所のLi Ziqing教授、Su教授清華大学のGuangda氏、香港中文大学のTang Xiaoou教授、Ross B. Girshick氏ら。
主なオープンソース プロジェクト:
SeetaFace 顔認識エンジン。このエンジンは、中国科学院計算技術研究所の研究員シャン・シーグアン氏が率いる顔認識研究グループによって開発された。コードは C ベースで実装されており、サードパーティのライブラリ関数に依存せず、オープンソース ライセンスは BSD-2 であり、学術界および産業界で無料で使用できます。
メイン ソフトウェア API/SDK:
- 顔。 Face.com は、無料の顔検出、顔認識、顔属性分析などのサービスを提供するクラウド サービス プラットフォームです。 Face は、Beijing Megvii Technology Co., Ltd. が所有する新しい Face テクノロジー クラウド プラットフォームです。ダークホース競争で、Face は年間チャンピオンを獲得し、Lenovo Star の投資を受けています。
- スカイバイオメトリ。これには主に顔検出、顔認識、顔のグループ化が含まれます。
主な顔認識画像データベース:
現在公開されている優れた顔画像データベースには、LFW (Labelled Faces in the Wild) および YFW (Youtube Faces in the Wild) が含まれます。現在の実験データセットは基本的にLFWから得られたものであり、現在の画像顔認識の精度は99%に達しており、基本的に既存の画像データベースは使い果たされています。以下は既存の顔画像データベースの概要です:
中国では顔認識を行う企業がますます増えており、その応用も非常に普及しています。その中で、ハンワンテクノロジーは最も高い市場シェアを持っています。主要企業の研究方向と現状は次のとおりです。
- Hanwang Technology: Hanwang Technology は主に、入退室管理システムや勤怠管理システムなどで使用される顔認識認証を行っています。
- iFlytek: iFlytek は、香港中文大学の Tang Xiaoou 教授のチームの支援を受けて、ガウス プロセス (Gussian face) に基づく顔認識技術を開発しました。LFW でのこの技術の認識率は 98.52 です。 %. 、現在の LFW での同社 DEEPID2 の認識率は 99.4% に達しています。
- 四川大学志生氏: 同社の現在の研究のハイライトは3D顔認識であり、3Dフルフェイスカメラなどの工業化にまで拡大しています。
- SenseTime: 人工知能の中核となる「ディープラーニング」テクノロジーのブレークスルーをリードし、人工知能とビッグデータ分析のための業界ソリューションを構築することに主に特化した会社で、現在は顔認識、テキスト認識に取り組んでいます。 、人体認識、車両認識、物体認識、画像処理などの分野で強い競争力を持っています。顔認識では、106 個の顔キーポイントが認識されます。
顔認識のプロセス
顔認識は主に、顔検出 (顔検出)、顔調整 (顔位置合わせ)、顔確認 (顔照合) の 4 つの主要な部分に分かれています。 )、顔識別(顔識別)。
顔の位置決め (顔検出):
画像内の顔を検出し、結果を長方形のフレームに収めます。 openCV には、直接使用できる Harr 分類器があります。
顔位置調整:
検出された顔の姿勢を補正し、できるだけ「ポジティブな顔」に補正することで、顔認識の精度を向上させることができます。補正方法には2D補正と3D補正があり、3D補正の方が側面を認識しやすくなります。
顔補正を行う場合、特徴点の位置を検出する工程があり、その特徴点の位置は主に鼻の左側、鼻の穴の下、瞳孔の位置、鼻の穴などの位置です。これらの特徴点の位置がわかったら、位置に応じた変形を行うことで、顔を「修正」することができます。以下の図に示すように:
これは、2014 年に MSRA によって開発されたテクノロジー、Joint Cascade Face Detection and Alignment (ECCV14) です。この記事では、検出と位置合わせの両方を 30 ミリ秒で直接実行します。
顔認証:
顔認証はペアの照合に基づいているため、得られる答えは「はい」または「いいえ」です。具体的な操作としては、テスト画像を与えて1人ずつペアマッチングを行い、マッチングが成功すればテスト画像とマッチングされた顔が同一人物の顔であることを意味します。
この方法は、小規模オフィスの顔スキャンパンチインシステムで一般的に使われている(はず)具体的な運用方法は、大まかに以下のような手順になります:オフラインで従業員の顔写真を1人ずつ入力(入力した人物)従業員(通常、顔は複数あります)がチェックインのために顔をスワイプする際にカメラが画像を撮影した後、まず上記の方法で顔検出を実行し、次に顔補正を実行し、その後顔認証を実行します。照合結果が「はい」となり、顔をスキャンした人物がこの事務所に所属していることがわかり、これで顔認証は完了となります。
従業員の顔をオフラインで入力すると、顔とその人の名前を照合できるため、顔認証が成功すると、その人が誰であるかを知ることができます。
上記のシステムのメリットは、開発コストが低く小規模オフィスに適していることですが、デメリットは、キャプチャ時にブロックできないことと、顔の姿勢が比較的まっすぐである必要があることです(私たちはこのシステムを所有していますが、経験したことはありません)。次の図は、概略的な説明を示します。
顔識別/認識:
顔識別または顔認識、顔認識は次のとおりです。図に示すように、答えたいのは「私は誰ですか?」であり、顔認証で使用されるペアマッチングと比較して、認識段階でより多くの分類手法が使用されます。実際には、前の 2 つのステップ、つまり顔検出と顔補正を実行した後、画像 (顔) を分類します。
6. DeepFace のブログ投稿: http://blog.csdn.net/Hao_Zhang_Vision/article/details/52831399?locationNum=2&fps=1DeepFace は FaceBook によって提案され、次に DeepID と FaceNet が続きました。 。また、DeepFaceはDeepIDやFaceNetでも見られるため、DeepFaceは顔認証におけるCNNの基礎とも言え、現在、顔認証においてもディープラーニングは非常に良い成果を上げています。ここで DeepFace から学び始めます。 DeepFace の学習プロセスでは、DeepFace で使用されるメソッドだけでなく、このステップで現在使用されている他の主要なアルゴリズムも紹介され、既存の画像顔認識について簡単かつ包括的に説明します。テクノロジー。 DeepFaceの基本フレームワーク1. 顔認識の基本プロセス顔検出→顔位置合わせ→顔照合→顔識別 2 . 顔検出 2.1 既存の技術:
haar 分類子:
顔検出 (検出) には、Viola-Jones アルゴリズムに基づいて、opencv で直接使用できる haar 分類子がすでにあります。
Adaboost アルゴリズム (カスケード分類器):
1. 参考論文: 堅牢なリアルタイム顔検出。
2. 参考中国語ブログ: http://blog.csdn.net/cyh_24/article/details/39755661
3. ブログ: http://blog.sina.com.cn /s/blog_7769660f01019ep0.html
2.2 記事で使用されている方法
この記事では、検出点 (基準点検出器) に基づく顔検出方法を使用しています。
- まず、6 つの基準点、2 つの目の中心、1 つの鼻の点、および口の 3 つの点を選択します。
- SVR を使用して、LBP 機能を通じて基準点を学習します。
効果は次のとおりです:
3. フェイス アライメント (顔の位置合わせ)
2D アライメント:
- 検出された画像の 2 次元トリミングを実行し、画像を 6 つのアンカー位置に拡大縮小、回転、および移動します。顔の部分を切り抜きます。
3D 位置合わせ:
- 3D モデルを見つけ、この 3D モデルを使用して 2D 顔を 3D 顔にトリミングします。 67 の基点を使用し、ドローネー三角形分割を行い、不連続性を避けるために輪郭に三角形を追加します。
- 三角形化された面を 3D 形状に変換します
- 三角形化された面は深い 3D 三角形メッシュになります
- 顔の正面が正面を向くように三角形メッシュを偏向します
- 最終的な面はまっすぐに配置されます
効果は次のとおりです:
上記の 2D 位置合わせは (b) の図に対応します。 3Dアライメントは(c)~(h)に対応します。
4 顔認証
4.1 既存技術
LBP && Joint Bayesian:
LBP と Joint Bayesian の 2 つの高次元手法の組み合わせを通じて。
- 論文: Bayesian Face Revisited: A Joint Formulation
DeepID シリーズ:
SVM を使用して 7 つの結合ベイジアン モデルを融合、精度は 99.15% に到達
- 論文: 共同識別検証による深層学習顔表現
4.2 記事内の手法
##論文内、ディープ ニューラル ネットワーク (DNN) は、複数カテゴリの顔認識タスクを通じてトレーニングされます。ネットワーク構造は上の図に示されています。
構造パラメータ:
3D 位置合わせ後、形成された画像はすべて 152×152 の画像であり、上記のネットワーク構造に入力されます。構造のパラメータは次のとおりです:
- Conv: 11×11×3の 32 個の畳み込みカーネル
- max-pooling: 3×3、stride=2
- Conv: 9×9 の 16 個の畳み込みカーネル
- Local-Conv: 16 個の 9x9 コンボリューション カーネル、ローカルとは、コンボリューション カーネルのパラメーターが共有されないことを意味します
- Local-Conv: 16 個の 7x7 コンボリューション カーネル、パラメーターは共有されません
- ローカル変換: 16 の 5×5 コンボリューション カーネル、パラメーターは共有されません
- 完全接続: 4096 次元
- ソフトマックス: 4030 次元
低レベルの特徴の抽出:
プロセスは次のとおりです:
- 前処理段階: 3 チャネルの顔を入力し、3D 補正を実行し、152 に正規化* 152 ピクセル サイズ - 152*152*3.
- 畳み込み層 C1 経由: C1 には 32 個の 11*11*3 フィルター (つまり、畳み込みカーネル) が含まれており、結果として 32 個の特徴マップ - 32*142*142* 3.
- 最大ポーリング層 M2 を通じて: M2 のスライディング ウィンドウ サイズは 3*3、スライディング ステップ サイズは 2、3 つのチャネルは独立してポーリングされます。
- 別の畳み込み層 C3 経由: C3 には、9*9*16 の 16 個の 3 次元畳み込みカーネルが含まれています。
上記の 3 層ネットワークは、単純なエッジ特徴やテクスチャ特徴などの低レベルの特徴を抽出するためのものです。 Max-polling 層により、畳み込みネットワークはローカル変換に対してより堅牢になります。入力が修正された顔である場合、ネットワークは小さなラベル付けエラーに対してより堅牢になります。
ただし、このようなポーリング層では、顔の詳細な構造や小さなテクスチャの正確な位置に関する情報がネットワークから失われます。したがって、論文では最初の畳み込み層の後に Max-polling 層のみを追加しています。これらの前の層は、フロントエンド適応前処理レベルと呼ばれます。ただし、これが必要な多くの計算では、これらのレイヤーにはパラメーターがほとんどありません。入力画像を単純なローカル特徴セットに拡張するだけです。
後続の層:
L4、L5、および L6 はすべてローカルに接続された層です。畳み込み層がフィルターを使用するのと同じように、特徴の各位置で異なる層のセットがトレーニングおよび学習されます。画像のフィルターです。補正後の領域が異なると統計的特性も異なるため、畳み込みネットワークの空間安定性の仮定を確立することはできません。
たとえば、鼻と口の間の領域と比較して、目と眉の間の領域は非常に異なる外観を示し、高度に区別されます。つまり、入力された補正画像を利用して、DNN の構造をカスタマイズします。
ローカル接続層の使用は、特徴抽出中の計算負荷には影響しませんが、トレーニング パラメーターの数には影響します。ラベル付けされた面の非常に大規模なライブラリがあるという理由だけで、局所的に接続された 3 つの大きなレイヤーを用意できます。ローカル接続層の出力ユニットは大きな入力パッチの影響を受け、ローカル接続層の使用 (パラメータ) はそれに応じて調整できます (重みは共有されません)
たとえば、 L6 レイヤーは 74* の影響を受けます。74*3 入力パッチの影響により、修正された顔では、このような大きなパッチ間で統計パラメータを共有することは困難です。
最上位層:
最後に、ネットワークの最上位 2 つの層 (F7、F8) が完全に接続され、すべての出力ユニットがすべての入力に接続されます。これら 2 つのレイヤーにより、顔画像内の離れた領域の特徴間の相関関係を捉えることができます。例えば、目の位置と形状と口の位置と形状の相関関係(この部分にも情報が含まれています)は、この2つのレイヤーから得られます。最初の完全に接続された層 F7 の出力は、オリジナルの顔の特徴表現ベクトルです。
特徴表現の観点から見ると、この特徴ベクトルは従来の LBP ベースの特徴記述とは大きく異なります。従来の方法では通常、局所的な特徴の説明 (ヒストグラムの計算) が使用され、分類器への入力として機能します。
最後の完全接続層 F8 の出力は、K ウェイ ソフトマックス (K はカテゴリの数) に入り、カテゴリ ラベルの確率分布を生成できます。ネットワークを通過した後の入力画像の k 番目の出力を Ok とします。つまり、出力クラス ラベル k の確率は次の式で表すことができます。
トレーニングの目標は、クラスの正しい出力確率 (顔の ID) を最大化することです。これは、各トレーニング サンプルのクロス エントロピー損失を最小限に抑えることで実現されます。 k が指定された入力の正しいカテゴリのラベルを表すとすると、クロスエントロピー損失は次のようになります。
上でクロスエントロピー損失 L の勾配を計算します。パラメータを調整し、確率的勾配低減法を使用してクロスエントロピー損失を最小限に抑えます。
勾配は、誤差の標準的な逆伝播によって計算されます。興味深いことに、このネットワークによって生成される特徴は非常にまばらです。最上位の機能要素の 75% 以上が 0 です。これは主に ReLU アクティベーション機能の使用によるものです。このソフトしきい値非線形関数は、すべての畳み込み層、局所接続層、完全接続層 (最後の層 F8 を除く) で使用され、カスケード全体の後に高度に非線形でまばらな特徴が得られます。
スパース性は、トレーニング中にランダムな特徴要素を 0 に設定するドロップアウト正則化の使用にも関連します。 F7 完全接続層のドロップアウトのみを使用しましたが、トレーニング セットが大規模だったため、トレーニング プロセス中に重大な過学習は見つかりませんでした。
画像 I が与えられると、その特徴表現 G(I) はフィードフォワード ネットワークを通じて計算されます。各 L 層のフィードフォワード ネットワークは一連の関数とみなすことができます。
正規化:
最後のレベルでは、フィーチャの要素を 0 から 1 に正規化し、照明の変化に対するフィーチャの感度を下げます。特徴ベクトルの各要素は、トレーニング セットの対応する最大値で除算されます。次に、L2 正規化を実行します。 ReLU 活性化関数を使用しているため、システムは画像のスケールに対してあまり不変ではありません。
出力 4096-d ベクトルの場合:
- まず、各次元を正規化します。つまり、結果ベクトルの各次元について、次元を全体で除算します。トレーニングセット。
- 各ベクトルは L2 正規化されています。
2. 検証
2.1 カイ二乗距離
このシステムでは、正規化された DeepFace 特徴ベクトルは、従来のヒストグラム ベースの特徴 (たとえば、 LBP) には次の類似点があります:
- すべての値が負です
- 非常にまばらです
- 特徴要素の値はすべて間隔 [ 0, 1]
カイ二乗距離の計算式は次のとおりです。
2.2 シャム ネットワーク
記事エンドツーエンドのメトリクス学習方法についても言及しました。学習 (トレーニング) が完了すると、顔認識ネットワーク (F7 まで) が 2 つの入力画像で再利用され、取得された 2 つの特徴ベクトルを直接使用して、2 つの画像が一致するかどうかを予測します。入力された画像は同一人物のものです。これは次のステップに分かれています:
a. 2 つのフィーチャ間の絶対差を計算します;
b、完全に接続された層、単一の論理ユニットにマップされます (出力が同じ/異なる)。
3. 実験評価
3.1 データセット
- ソーシャル顔分類データセット(SFC): 440 万顔/4030 人
- LFW: 13323 顔/5749 人
- 制限: はい/いいえタグのみ
- 制限なし: 他のトレーニング ペアも取得できます
- 監督なし: LFW ではトレーニングされていません
- Youtube Face(YTF): 3425 動画/1595 人
LFW での結果:
YTF の結果:
DeepFace と以下の最大の方法の違いは、DeepFace が使用する方法です。ニューラルネットワークをトレーニングする前の位置合わせ方法。論文では、ニューラルネットワークが機能する理由は、一度顔の位置を調整すると、顔領域の特徴が特定のピクセルに固定されるためであり、このとき、畳み込みニューラルネットワークを使用して特徴を学習できるためであると考えています。
この記事のモデルは、C ツールボックス dlib の深層学習に基づく最新の顔認識手法を使用しています。屋外顔データ テスト ライブラリ Labeled Faces in the Wild のベンチマーク レベルに基づくと、精度は次のとおりです。 99.38%。
その他のアルゴリズム
http://www.gycc.com/trends/顔認識/overview/
dlib: http ://dlib.net/Data testing library Labeled Faces in the Wild: http://vis-www.cs.umass.edu/lfw/
このモデルは、ユーザーが次のことを行うためのシンプルな face_recognition コマンド ライン ツールを提供します。画像フォルダーを直接使用して、コマンドを通じて顔認識操作を実行します。
写真で顔の特徴をキャプチャします
#すべての顔を 1 枚の写真でキャプチャします写真で顔の特徴を見つけて処理します顔の位置と輪郭を見つけます一人一人の目、鼻、口、顎。 import face_recognitionimage = face_recognition.load_image_file("your_file.jpg")face_locations = face_recognition.face_locations(image)顔の特徴をキャプチャしますもちろん、写真のデジタル メイクアップにも使用できます (Meitu Xiu Xiu など) デジタル メイクアップ: https://github.com/ageitgey/face_recognition / blob/master/examples/digital_makeup.py写真内の顔を認識する写真に写っている人を認識するこのメソッドは Python3/python2 をサポートしています。macOS と Linux でのみテストされています。Windows に適用できるかどうかはわかりません。 pypi の pip3 (または Python 2 の pip2) を使用してこのモジュールをインストールします。 重要な注意事項: dlib のコンパイル時に問題が発生する可能性があります。dlib は (pip の代わりに) ソース dlib からインストールできます。エラーを修正してください。インストールマニュアルを参照してください。 ソースから dlib をインストールする方法 # https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf
dlib を手動でインストールし、pip3 install face_recognition を実行してインストールを完了します。
コマンド ライン インターフェイスの使用方法face_recognition をインストールすると、face_recognition という単純なコマンド ライン プログラムを入手できます。これは、すべての顔の写真または写真フォルダーを認識するのに役立ちます。 まず、写真が含まれるフォルダーを指定する必要があります。写真に写っている人物が誰であるかはすでにわかっています。各人が写真ファイルを持っている必要があり、ファイル名はそれにちなんだ名前にする必要があります。 ;次に、認識したい顔の写真を含む別のフォルダーを準備する必要があります;その後、face_recognition コマンドを実行するだけで、プログラムはファイルを渡すことができます。既知の顔のフォルダは、未知の顔写真の人物が誰であるかを識別します;# 顔ごとに 1 行が出力されます。データは、ファイル名に認識された名前を加えたものです。人物をカンマで区切ります。
Python モジュール
写真内の顔を認識して名前を伝える
この例を参照してください: https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py
#Pythonコードケースすべての例はここにあります。https://github.com/ageitgey/face_recognition/tree/master/examples
·写真の中の顔を見つけるhttps://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py · 识别照片中的面部特征Identify specific facial features in a photograph https://github.com/ageitgey/face_recognition/blob/master/examples/find_facial_features_in_picture.py · 使用数字美颜Apply (horribly ugly) digital make-up https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py ·基于已知人名找到并识别出照片中的未知人脸Find and recognize unknown faces in a photograph based on photographs of known people https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.pypython人脸わかりました、今日の共有はここまでです~
以上がオフライン認識率最大99%のPython顔認識システム、オープンソース~の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
