DeepGlint: 顔認識の最新の進歩と産業グレードの大規模な顔認識の実践に関する議論

DeepGlint: 顔認識の最新の進歩と産業グレードの大規模な顔認識の実践に関する議論

[[380229]]  

1. 顔認識の背景紹介
簡単に言えば、顔認識の問題は、2 つの顔が与えられたときに、その 2 つの顔が同一人物であるかどうかを判断することです。これが顔認識の最も本来的な定義です。銀行のカウンター、税関、携帯電話のロック解除、ホテルのチェックイン、インターネットカフェの認証など、さまざまな用途に使用できます。ID カードが本人確認書類であるかどうかを確認します。このアプリケーションの主な特徴は、ほとんどのシナリオで最初に ID を提供し、それを自分の顔と比較する必要があることです。携帯電話のロック解除は例外かもしれませんが、事前に顔を登録して比較する必要があります。これは最も原始的な形式で、比較する必要がある 2 つの面をユーザーが直接提供します。これは最も単純な形式でもあり、バイナリ分類を行うのと同等です。

さらに、人を検索したい場合はどうすればよいでしょうか?たとえば、サイズ N の顔データベースと取得する写真があるとします。この人物がこの顔データベースに登場したかどうかを判断します。この場合、答えるべき N 個の質問があります。つまり、この顔はデータベース内の顔 1 ですか、顔 2 ですか、など、顔 N ですか、という質問です。これら N 個の質問に対する答えがすべて「いいえ」の場合、この人物は顔データベースに存在しないことを意味します。顔データベースに存在しないというのは非常に難しい質問です。つまり、顔データベースに存在しないことを本当に確認するには、N 個の質問に正しく答える必要があります。

実際の使用法としては、公安警察官が動画や写真から対象者を見つけ、顔をフレームに入れてシステムに提出し、データベースで検索するといった静的な検索が一般的です。すると、システムは、たとえば Top K を返します。ここで、K は通常、数十または 100 程度の数字です。これらの顔は類似性に従って分類され、どれが正しいかが手動で検証されます。トップ 1 が正しければ、それがベストです。一般的に、トップ 10 にランクインできれば良い結果ですが、100 を超えると、ユーザーにとって役立つ結果ではない可能性が高くなります。 TopK が許可されている場合は、Top 1 に配置する必要がないため、ベース データベースを比較的大きくすることができます。

公安評価を実施する際、評価は各省の公安環境で実施されます。データベースは一般的に非常に大きく、数千万から数億に及びます。これは、近年ディープラーニングが急速に発展したためでもあります。初期の頃は静的な検索しかできず、結果はあまり良くありませんでした。ディープラーニングアルゴリズムの発展に伴い、多くの企業のアルゴリズムはますます良くなってきています。評価中に異なるメーカーのアルゴリズムの良し悪しを区別することは困難です。そのため、テスト自体はますます難しくなり、検索に使用する画像の品質に対する要求もますます厳しくなっています。実際のアプリケーションでは、容疑者がカメラの比較的遠い距離に現れたり、横から現れたり、帽子や眼鏡で遮られたりなど、多くの問題も非常に厳しいものになっています。

例を挙げてみましょう。以下は、インターネットで見つけた有名人の写真です。実際のシナリオでは、クエリの品質はこれと似ており、場合によってはこれよりも少し難しいこともあります。現在主流の顔認識アルゴリズムがこの課題を解決する際、ベースデータベースが数千万の場合でも、TOP1 の再現率は依然として非常に高く、80 ~ 90 パーセントという問題はそれほど大きくなく、さらに高くなる可能性もあります。

もちろん、セキュリティやその他のアプリケーション シナリオでは、N:N の顔検索というより難しいタスクがあります。この場合、多数のカメラがあり、それぞれがリアルタイムでキャプチャしています。確認する必要があるキャプチャされた顔は多く、ライブラリも比較的大きくなります。たとえば、セキュリティ分野では、カメラが 100 台あり、各カメラが毎日 10,000 人を撮影すると仮定すると、検索の総回数は 100 万回になります。ある日に 10 人の容疑者がカメラに映り、100,000 件の項目のデータベースでその容疑者を検索する必要があるとします。アルゴリズムがあります。このアルゴリズムは、その日に警察に100回電話をかけるのに使用されました。警察はそれぞれを確認し、最終的に9人の容疑者を逮捕しました。合計10人が現れ、9人が逮捕され、リコール率は90%なので、これは良い結果だと思われます。では、誤報率を見てみましょう。100 回の警報のうち、9 回は正しく、91 回は間違っていました。誤報率は、91 を 100 万回 × 100,000 で割った値で、およそ 10 億回に 0.91 回、つまり 10 億回に 1 回ということになります。

この指標は、現在の顔認識アルゴリズムの中では比較的良好ですが、公安警察の目には理想的とは言えません。なぜなら、100回出動して9人しか捕まえられなかったからです。彼らは本当に10回で9人を捕まえたいので、コストはもっと低くなります。それでは、警察が10回中9人を捕まえた場合の誤報率を見てみましょう。 1桁少ないように思えますが、実際には誤報率を2桁増やす必要があります。現時点で誤報の数は1つだけであり、1を100万×10万で割るとすでに1000億分の1になるため、これを達成するのは非常に困難です。たとえ 1000 億分の 1 のアルゴリズムがあったとしても、100 台のカメラのニーズにしか対応できません。多くの都市では、カメラの数は簡単に数万台、あるいは数十万台にもなります。したがって、アルゴリズムは誤報率を N 桁削減するか、よりスマートな方法で使用する必要があり、まだ研究の余地が大いにあります。

もう 1 つのタイプのアプリケーションは、仮想顔 ID のクラスタリングです。仮想 ID とは、各人の ID 情報はわかっておらず、大量のカメラ キャプチャ結果のみを知っていることを意味します。これらの顔を、画像の特徴と、登場した時間や空間などの事前情報に基づいてクラスタリングし、ユーザーの軌跡や行動習慣を調査したいと考えています。この情報は、多くのシナリオで非常に役立ちます。最も単純なのは、顔アルバムのクラスタリングです。このアプリケーションは、1 人のアルバムをクラスタリングするだけでよく、ライブラリも非常に小さいため、非常にシンプルです。しかし、セキュリティや小売などのシナリオでは、データはすべて都市レベルにあります。うまく行けば、誰が誰とよく一緒にいるのか、A地点からB地点、C地点、D地点の間に異常があるかどうかなど、非常に貴重な情報をもたらすことができます。これらの人の流れの異常は、多くの場所、特に新疆やチベットで大きな懸念事項となっています。

顔認識の基本的なプロセスは、まず顔を検出することです。検出後、目、鼻、口の端などの重要なポイントが一般的に特定されます。この情報を使用して顔を修正し、より正常な状態に変換することで、その後のモデル分析または処理中にさまざまなパーツの位置合わせが容易になります。最終的には、顔の特徴表現(通常は 100 次元以上から数百次元の特徴表現)を抽出します。次に、異なる顔の特徴間の類似性または距離(類似性が高いほど優れ、距離が小さいほど優れています)を使用して 2 人の関係を特徴付け、ドメイン値を設定して 2 人が同一人物であるかどうかを判断します。今回は顔認識、主に顔の特徴抽出の最終部分についてお話します。

2. 最先端の顔認識アルゴリズムの紹介
顔認識には伝統的なアイデアが数多く存在し、ここで挙げたのはそのほんの一部にすぎません。これらの基本的なアルゴリズムを 1 つずつ確認してみましょう。

まず、ベースラインの CNN ベースの分類は、1980 年代後半にはすでに可能でした。このセットを人間の顔に使用したい場合は、簡単な置き換えを行うだけで済みます。文字入力が修正された顔入力に置き換えられます。 LeNet5 は ResNet とその後の改良版に置き換えることができます。次に分類です。顔は ID の数だけカテゴリに分類できます。その後、ネットワークをトレーニングすると、特徴が得られます。たとえば、最終的な FC 出力を顔の特徴として使用できます。

もちろん、潜在的な問題もあります。カテゴリが多すぎると、トレーニングは失敗しますか?たとえば、認証アプリケーションに取り組んでいる場合、各カテゴリのトレーニング画像のサンプルが少なすぎませんか?トレーニング セットでの分類結果が非常に良好である場合、新しい ID の場合はどうでしょうか?分類モデルが適切にトレーニングされている場合、学習した特徴を顔認識に適用すると非常に優れていることを意味しますか?これらの問題は研究されており、そのいくつかは以下の紹介に反映されます。

DeepID アルゴリズムは、上記のアイデアをさらに細かく調整した具体的な実装です。最終的な顔の特徴を取得した後、確率統計に基づいて次元削減を実行します。この特徴も複数の特徴の融合です。顔の多くの重要な領域で CNN ネットワークをトレーニングして分類を行い、隠れた特徴を取得し、これらの特徴をつなぎ合わせてから、何らかの次元削減を行って最終的な特徴を取得し、この特徴を説明に使用すると理解できます。これは最も初期のDeepIDです。

DeepID2 はより詳細です。同じ人物の特徴は可能な限り近いものになることを期待しますが、異なる人物の特徴は比較的離れていてもかまいません。 2 枚の写真が入力として使用され、それぞれが CNN を使用して特徴を抽出します。2 つの CNN ネットワークはパラメータを共有し、Siamese Network を使用して同一人物かどうかを判断します。同一人物である場合、特徴間のユークリッド距離が小さいことが求められます。同一人物でない場合は、特徴間のユークリッド距離が少なくとも m 以上であることが望まれます。この損失から、損失が m 未満になると罰せられ、損失が m より大きい場合にのみ安全であることがわかります。このアプローチにより、特徴の表現がより明確になることが期待されます。この方法では、特に大きな FC レイヤーに依存する必要はありません。実際の人物の ID がいくつあっても、バイナリ分類に似た処理が実行されます。同時に、DeepID1 のソフトマックスと併用することもでき、いくつかの改善が期待できます。

DeepID2+ では、トレーニング サンプルの増加、特徴次元の拡大、監視信号の増加、ネットワークの中間の多くのレイヤーが最終的な分類および検証畳み込み関数に接続されるなど、いくつかの小さな変更が加えられました。これは GoogLeNet に多少似ていますが、当時は GoogLeNet はまだリリースされていませんでした。

ディープフェイス
DeepFace アルゴリズムには特別な革新はありません。その改善点は、以前の顔の前処理アライメント部分の微調整にあります。結果から、ある程度は役立つことがわかりますが、3D アライメントを使用すると、多くの場合、特に極端な場合には失敗する可能性があるため、疑問もあります。顔認識アルゴリズムは急速に発展しており、さまざまなアイデアや方法があります。ただし、さまざまなタイプのアプリケーションで実際にうまく機能するかどうかは、結論を出す前に試行錯誤が必要です。普遍的に適用できるとは限りません。

ディープID3
DeepID3 は 2015 年に行われた作業であり、GoogLeNet と VGG が登場した年であるため、著者らはより深い畳み込みネットワーク モジュールを追加し、いくつかの改善を加えました。

Google の FaceNet は少し異なります。これは Triplet Loss を採用しており、これは自身のデータ量に直接関係します。これまでの論文はすべて公開データに基づいており、顔 ID の数は 10,000 程度でした。しかし、Google は膨大なインターネット データを保有しています。同社の最大規模の実験では、2 億 6000 万の顔データが使用され、ID 番号の合計は約 800 万に上りました。当時、Google は最初から Triplet Loss を使用していました。つまり、Anchor、Negative、Positive という 3 つのサンプル ペアがあるということです。正とは、アンカーと同じタイプであることを意味します。アンカーと同じタイプでない場合は、負です。

Center Loss はより直接的です。Softmax を実行すると、データをペアに分類するだけでなく、各カテゴリがよりコンパクトで直接的になることが期待されます。その損失関数は比較的単純で、xi が各画像の特徴、yi がラベル、Cyi が特定のクラスの中心であることに相当します。これは、各画像の特徴を学習し、同時に各クラスのクラス中心を学習することと同じです。同じクラスに属するサンプルの特徴が、それぞれのクラス中心に近いことが期待されます。これをソフトマックスと組み合わせて新しい損失を生成することで、学習した特徴がユークリッド距離の下で異なる顔間の類似関係をより適切に表現できるようになります。

最初のいくつかのアルゴリズムは比較的伝統的で古いものであり、現在の顔認識システムではほとんど使用されていません。一般的に、それらのほとんどはロス設計に改良を加えてからソフトマックスと連携しています。しかし、Google は例外です。次に、より効果的と思われる次の方法は、基本的にソフトマックスに基づく詳細な探索です。

最も多くの変更を必要とした最初の比較的重要な作業は、L-softmax(Large-Margin Softmax)でした。これは、分類を行うときに、異なるクラスをより明確に区別し、同じクラスをより緊密に圧縮できることを期待することを意味します。ただし、以前のアイデアと一定の類似点がありますが、追加の制限は通過しません。ソフトマックス損失の形式を深く分析し、この形式に直接微妙な変更を加え、cosθをcosmθに変更することで、マージンを増やす効果があります。 mθ が特定の範囲を超えたときにそれを再定義するなど、まだいくつかの処理の詳細がありますが、大まかな考え方は理解しやすいです。

A-softmax は L-softmax に若干の変更を加えます。これらは 2 つの異なる論文ですが、それ以外は L-softmax とまったく同じです。 A-softmax は、m 倍の θ のマージンを考慮しながら 2 つの制約を追加します。1 つ目は、W のノルムが固定値である必要があることです。これを 1 に固定します。2 つ目は、B を直接 0 に設定します。W と比較して 1 つの次元しかないため、ネットワークの表現力には影響しないようです。同時に、説明を非常に自然にすることもできます。この場合のモデルの予測は、W と X の間の角度のみに依存します。しかし、実際にこのアルゴリズムを試してみると、マージンが非常に強いことがわかります。たとえば、θ が 30 で、サンプルがクラスの中心から 30 度しか離れていない場合、m=2 のときは、サンプルがクラスの中心からまだ 60 度離れていると保守的に想定されます。したがって、この制限は非常に強く、最適化が困難です。実際に使用する場合は、softmax+α 倍の A-softmax 最適化となります。α は最初はほぼ 0 に等しく、これは最初に softmax を最適化することと同等です。最適化が進むにつれて、α は徐々に増加し、A-softmax+margin の効果が得られます。

先ほど述べた A-softmax はマージンの観点から議論されました。その後、NormFace と CocoLoss という 2 つの論文が発表され、この問題を Norm の観点から分析しました。ソフトマックスを改善する際に、2 つの制限が追加されます。1 つは特徴です。各サンプル特徴のノルムは一定である必要があります。つまり、すべてのサンプルから学習された特徴ノルムの長さが固定数であることが期待されます。同時に、分類中にパラメータ行列 W が存在し、パラメータ行列の各列のノルムも固定数であることが期待されます。

2 つの論文は同時にこの点に着目しました。つまり、マージンを考慮せず、2 つの規範の制限のみを考慮しました。単純なアイデアのように思えます。たまたま 2 つの論文が重複していたのです。それらはほぼ同時に出版され、内容もほぼ同じでした。しかし、ここでは、論文分析がより詳細で、normface とトリプルロス (クラス センターを置き換えるエージェントを使用する場合) との関連性について説明している NormFace を紹介することにしました。もう1つのポイントは、ここから顔認識の特徴比較ではL2距離は使用されなくなり、基本的にコサイン距離が使用されるようになることです。この場合、L2 距離と cos 距離は実際には同じです。

これは実はとても重要なことです。初期の Google FaceNet では、特徴の正規化も実行されていたことがわかります。つまり、この点はずっと以前に発見されており、特徴の正規化は役立つということです。しかし、なぜ特徴量を正規化する必要があるのか​​、そしてなぜソフトマックスにマージンを追加する必要があるのか​​を詳しく調べてみましょう。実際、これを分析するには理論的なことがいくつかあります。2つの簡単なアイデアを紹介したいと思います。

  • まず、なぜ特徴量を正規化する必要があるのでしょうか?

よく考えてみると、非常に興味深い特性があります。つまり、サンプルがすでに正しい状態、つまりクラスの中心 Wi に最も近い状態にある場合、ソフトマックス損失自体は特徴の係数とともに減少します。つまり、すでに正しく分類されている場合、ソフトマックスは係数を大きくする方向に最適化を続けます。しかし、係数のみが変わり、クラスの中心との角度は変わらないため、最終的な効果にはまったく役立ちません。ただし、ソフトマックスの観点から見ると、損失は実際に減少するため、各サンプルの特徴を自由に学習することはできず、その特徴に何らかの制限が課されることが期待されます。特徴を正規化するということは、特徴係数が制限される、つまりノルムが 1 または定数に等しいことを意味します。

  • 第二に、なぜマージンを追加する必要があるのでしょうか?

同様の特性として、たとえば、ある顔画像を分類する確率が高い特徴は 10 番目のカテゴリに属する​​はずであり、現在のモデルでは 10 番目のカテゴリに属する​​確率が非常に高い (たとえば 0.999) と予測される場合、サンプルの勾配を見ると、その勾配はほぼ 0 であることがわかります。これは、サンプルがほぼペアになっている場合、トレーニング プロセスはサンプルをサンプルのクラス中心に向かって圧縮しなくなることを意味します。デフォルトのソフトマックスにはマージンを生成する機能がないため、マージン項目を別途追加する必要があります。

つまり、直感的に理解できるのは、ソフトマックス損失において、学習した特徴をより意味のある、よりコンパクトなものにしたい場合、特徴の正規化とマージンをどのように追加するかを個別に検討する必要があるということです。

マージンについては、先ほどAsoftmaxについてお話ししましたが、実は他にもいくつか種類があります。1つ目はAMSoftmax、もう1つはCosFaceというものです。この2つは同じ考え方で、内容も基本的に同じです。マージンとは、SVM と同様に分類面間の間隔を指します。この間隔を最大化することで、2 つのクラスをさらに分離できます。 AMSoftmax では、xi とクラスの中心との距離は cosθ です。ASoftmax でも AMSoftmax でも、目標はこの数値を小さくすることです。元の類似度は 0.99 ですが、すぐに目的の値に達しないように、これを小さくしたいと考えています。より強い制限を課し、より高い要件を設定したいと考えています。したがって、m を引くことは、これを小さくすることと同等であり、xi がそのクラスに属する確率は 99% または 1 に到達するのがより困難になります。角度 θ は、確率が 1 に近くなり、必要な基準を満たすことができるように、より小さくする必要があります。右側でも同じことが言えます。この 2 つの式はほぼ同じです。同時に、誰もが W のノルムと x のノルムが固定されることを求めており、コサイン距離のみを気にしています。

3 つ目は、前の 2 つと非常によく似ており、InsightFace または ArcFace とも呼ばれます。名前は異なりますが、実際には同じ論文です。これら 3 つの方法はすべて cosθ を小さくします。1 つ目は θ に m を掛けて小さくする方法、2 つ目は cosθ から m を減算して cosθ を小さくする方法、3 つ目は θ に m を加えて cosθ を小さくする方法です。コサイン関数はθに対して単調減少なので、この関数を小さくする最初の方法はコサインから値を減算することであり、2番目の方法はその中のθを大きくすることです。大きくする方法はいくつかありますが、1つはmを掛けること、もう1つはmを加算することです。実は、この3つの方法は統合することができます。

著者は記事の中で、CosineFaceと比較すると、ArcFaceはトレーニング開始時に各クラスのサンプルとクラス中心の間の距離が比較的大きいと述べています。トレーニングが進むにつれて、それらはますますコンパクトになります。ArcFaceはよりコンパクトな

同時に、これら 3 つの方法を 1 つの式に組み合わせることもできます。θ に m を掛け、m2 を加算し、コサイン計算後に m3 を減算します。これら 3 つのパラメータのどれを調整しても、関数を元の設定よりも小さくすることができ、ソフトマックスでより強いマージンを追加することを意味します。いくつかの実験結果では、それぞれを個別に調整すると最適ではない可能性があり、一緒に調整するとより良い結果が得られる可能性があることが示されています。しかし、幾何学では特定の現象を説明するのがより困難であり、さらなる研究が必要になるかもしれません。

これは新しいアルゴリズムの簡単なレビューです。これらのアルゴリズムは日常的な使用において問題がなく、学術界の公開トレーニング セットでも比較的良好な結果を達成できます。しかし、学術レベルと産業レベルの間には大きな違いがあります。主な違いは、写真の数、ID あたりの顔の平均数、顔 ID の数、ビデオ メモリの使用量、トレーニング時間などです。

3. 分散顔認識トレーニング
私たちはシンプルな分散顔認識トレーニング フレームワークを設計しました。そのアイデアは非常にシンプルで、データの並列性 + モデルの並列性です。

1 つ目はデータの並列性です。N 個のコンピューティング ノード、N 個のマシンがあり、各マシンに M 個のカードがあるとします。まず、データの並列処理を使用して、大きなバッチを各カードに均等に分割します。次に、各カードは同じパラメータで CNN ネットワークを実行し、その部分のデータの特徴を取得します。これらの特徴は、複数のレベルと複数のカードにわたって集約され、すべてのバッチのデータの合計特徴 X が取得されます。なぜ機能集約が必要なのでしょうか?これは主に、次のモデルが並列であるためです。

このモデルは、W パラメータ マトリックスをカード上で並列化し、複数のカードに均等に分割します。たとえば、最初のカードは各サンプルが 0 ~ 100,000 カテゴリに属する​​確率を予測し、2 番目のカードは 100,000 ~ 200,000 カテゴリに属する​​確率を予測します。たとえば、1 枚のカードが 100,000 カテゴリを担当し、合計 100 枚のカードがある場合、1,000 万カテゴリの分類を実行できます。パラメータが分割された後、各サンプルが各クラスに属する確率を各カードで計算できますが、カテゴリを計算する場合は指数演算を実行し、すべてのカードの指数の合計を取得してから、それを分割して知る必要があるため、ここでは通信が必要です。しかし、通信量が非常に少ないという利点があります。各カードは、自分の部分の合計を計算し、この合計を他の GPU に同期するだけです。合計は 1 つの数字だけです (もちろん、ここには細かい点がいくつかあります。計算の安定性を考慮すると、最大値などの情報も同期する必要がありますが、通信コストは非常に小さいです)。

各カードの各サンプルが、そのカードが担当するカテゴリに属する​​確率を計算すれば、残りの作業は簡単になります。下の図の偏微分式は Pk の確率のみに依存することがわかるからです。Pk の確率を取得したら、計算された fk に関する目的関数の導関数を直接書き出すことができます。これは、損失関数の W に関する導関数と X に関する導関数を同時に取得することと同じです。ただし、損失関数は複数のカードに分割されているため、全体の特徴の導関数を取得するには、X の導関数を複数のマシンとカードで集計する必要があります。 W パラメータの導関数については、各カードは独立しており、互いに影響を与えないため、各カードは通信なしで自身を更新するだけで済みます。すべての X の勾配を合計するための通信量は大きくありません。X の導関数を取得した後、以前の順方向伝播パスをたどり、複数のマシンと複数のカードで逆伝播を実行できます。

データ並列化は非常に成熟した技術です。例えば、ImageNetデータセットをマルチレベル、マルチGPU環境でトレーニングできたという報告が多くあり、1時間程度でトレーニングを完了できるそうです。モデルの並列処理部分も追加しました。モデルの並列処理はそれほど複雑ではなく、マシン間の通信量を制御できるかどうかを考慮することが重要です。したがって、このアイデアは実装が比較的簡単で、モデルのメモリ使用量と計算ワークロードを各 GPU に均等に分散し、追加の通信帯域幅を追加することなく線形加速を実現できます。FC レイヤーでの勾配更新に必要な帯域幅も削減されます。 W マトリックスが分割されていない場合、W の勾配は複数のカード間で同期される必要があります。W が各カードに分割された後は、勾配を同期する必要はありません。

今回の場合、実際のネットワーク環境では100枚以上のカードのトレーニングをサポートでき、512次元の特徴で数千万カテゴリの顔認識を実現できることをテストしました。次元を少し減らして、たとえば128次元に圧縮すると、数億カテゴリの顔認識をサポートできます。また、カードの数が増えてもパフォーマンスの低下はなく、基本的に線形加速です。その利点は、ほとんどの主流の損失関数の拡張をサポートしていることです。

以下は、単純なアルゴリズムの効果のデモンストレーションです。この考えに基づくと、他の変更を加えなくても、データ量が十分であれば、誤認識率 10 億分の 1、再現率 90% 程度を簡単に達成できます。インターネット製品であれば、さらに高くなる可能性があります。しかし、先ほども述べたように、顔データベースの数やカメラ撮影量の増加に伴い、10億分の1の認識率では依然として多くの誤報が発生するため、継続的な改善が必要です。

顔認識に影響を与える重要な要素は他にもたくさんあります。ここで簡単に挙げておきます。興味のある学生は注目してください。

▌IV. 大規模顔評価プラットフォームの紹介
これを行う理由はいくつかあります。

まず、1:1 認証用の 6,000 組の顔を持つ LFW など、学術界では非常に有名なテスト セットが数多くありました。ただし、99% を超えるスコア、あるいは 99.8% を超えるスコアを達成できるアルゴリズムも多数存在するため、この効果はもはやアルゴリズムの品質を測る良い指標ではありません。LFW で 99.8% を達成する 2 つのアルゴリズムでも、異なるデータ セットを使用すると、まったく異なる結果が生成される場合があります。

第二に、MegaFace は学術界でも非常に有名です。そのテスト条件は、100万の干渉項目の中から目的の顔を見つけることです。当初は誰もがこれは難しい問題だと思っていましたが、学界での数年にわたる研究を経て、リストのトップは98.9%を超え、一定の飽和傾向にあるようです。最初は多少のノイズがありましたが、何人かの研究者がそれを発見して修正した後、このテスト セットは想像していたほど難しくないことがわかりました。さらに、提供される正の顔のペアの数は比較的限られており、各正のサンプル間の違いはそれほど大きくないため、この問題は当初誰もが予想したほど難しくない可能性があります。

そのため、私たちはトレーニング セットをより大規模に拡張し、より客観的な評価を実施し、顔の研究を行っている同僚が今後数年間にわたって継続して使用できるテスト プラットフォームを利用できるようにすることを目標としました。私たちは 2 つのことを行いました。1 つ目は比較的大きな顔のトレーニング セットを作成すること、2 つ目は比較的大きな顔のテスト セットを作成することです。トレーニング セットには約 18 万人、合計約 680 万枚の写真が含まれており、テスト セットには約 187 万の顔が含まれています。

以下は、これらのトレーニング セットの作成とクリーニングのプロセスについて簡単に紹介したものです。トレーニング セットの一部は、公開されている MS-Celeb に基づいてクリーニングされ、重複する有名人が削除されました。次に、約 10 万の ID を持つアジアの有名人のデータベースが収集されました。次に、この 2 つを結合して重複を削除し、最後にデータを結合しました。 MS データセットには 2 種類のノイズがあります。1 つはクラス内ノイズで、各クラスに 1 人だけが含まれるわけではないことを意味します。もう 1 つはクラス間ノイズです。同じ俳優が別の映画に出演したり、複数の異なる名前を持っていたりして、2 つの異なるクラスに分類されます。

クリーニング プロセスでは、まず検出と調整を行い、次により良いモデルを使用して特徴を抽出します。このプロセスでは、元のデータ セット内の誤検出を除去できます。クリーンアップ時に、元のクラスごとに階層的クラスタリングを実行します。データセットを精製するために、各元のクラスでクラスタリングした後、最大のクラスターのみを保持し、各カテゴリが十分にスリムであることを確認します。ただし、各クラスで最大のクラスターのみを保持するのが最善であるかどうかは議論の余地があります。現在の暫定バージョンでは、最大のクラスターが保持されます。

2 つ目は、カテゴリ間のエラーを減らすことです。たとえば、これら 2 つのカテゴリは同一人物ですが、一方は映画の登場人物の名前で、もう一方はその人物自身の名前である場合などです。 MS-Celebデータセットが元々コンパイルされた場合、クラスタリングは画像とそれらを取り巻くテキスト情報を使用して行われたため、この点で特定の割合のエラーがあることは避けられません。クリーニングを行うと、各クラスのメインクラスターを取得し、2つの異なるクラスの最小距離を比較すると、特定のクラスが融合していることを意味します。

また、アジアの有名人のデータセットもあります。以前のMSには、約100,000人のアジアの有名人のデータを奪いました。一般に、アジアの有名人のデータセットは、元のMSよりも不均衡です。

テストセットの生産ロジックは似ていますが、テストセットには精度のための要件が​​高いため、テストセットにより多くの労力を費やしました。以前のトレーニングセットでは、LFWの5,000人の有名人が除外されたため、テストセットはすべてLFWの有名人の写真を獲得し、その後160万枚の干渉アイテムをrawった後、最終的には大規模なテストセットになりました。

ご覧のとおり、新しい評価セットで検出された画像のカテゴリは、メガネ、サイドフェイス、大きな表現、メイクアップ、年齢の変化、光効果、黒と白、帽子をかぶるなど、非常に多様です。すべての一般的な変更が含まれています。

評価基準を下の図に示します。

<<:  顔認証ロック解除を使用するとき、携帯電話はどのようにしてあなたを「認識」するのでしょうか?顔認識について詳しく知る

>>:  オブジェクトストレージがAIの最大の課題を克服するのに理想的な理由

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

マトリックスシミュレーション! Transformer の大型モデルの 3D 視覚化。GPT-3 と Nano-GPT の各層がはっきりと見える

「マトリックスシミュレーション」の世界は本当に存在するかもしれない。人間のニューロンをシミュレートし...

...

iCubヒューマノイドロボットは目を動かしたり、話したり、人を抱きしめたりすることができ、今回は遠隔操作も可能だ

2011 年には、子供のような iCub ヒューマノイド ロボットについて耳にしていました。これは次...

NLP モデルは人間の言語を理解できないのでしょうか? Microsoft AdaTestはエラーの検出効率が5倍向上

自然言語処理 (NLP) モデルは人間の言語を理解できず、テキストを反対の意味として解釈しますが、こ...

MITとマイクロソフトはAI向けにLeetCodeプログラミング問題集をカスタマイズした

[[407672]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

人工知能の現状と今後の動向

[[375724]]開発状況近年、デジタル経済の継続的な進歩を背景に、人工知能は急速に発展し、さまざ...

マイクロソフト、マルチモーダルアプローチでAIの理解能力を向上させるプロジェクトRumiを実証

新興技術のデジタル時代において、大規模言語モデル (LLM) は、人間社会と文化の多くの側面に革命を...

AMU-Botロボット:作物の間を移動しながら除草する

手作業による除草は時間がかかり、労力もかかりますが、除草剤を散布するのは決して環境に優しくありません...

...

OpenLLMを使用して大規模なモデルアプリケーションを構築および展開する

この共有のテーマは、「OpenLLM を使用して大規模な言語モデル アプリケーションを迅速に構築およ...

...

トロント大学のデュヴノーチームは確率微分方程式を組み合わせて、無限深ベイズニューラルネットワークを提案した。

[[433557]]ニューラル ネットワークの制限を無限の数の残差層の組み合わせとして見ると、その...

GPT-4 は P≠NP であると結論付け、Terence Tao の予測は実現しました。世界の数学の問題を解く「ソクラテス的推論」対話97ラウンド

大規模言語モデルは実際に数学の定理の研究に使用できます。最近、Microsoft Research ...

データ駆動型パーソナライゼーションの時代: AI と ML がデータの読み取りと理解の方法をどのように変えているのか

今日のビジネスはデータとデータに基づく理解によって支配されています。データをどのように理解し、それを...

研究AI面接に合格するには? RedditユーザーがGoogleの面接体験を語る

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...