Survey recent face identification model
kyakuno opened this issue · comments
現状、arcfaceとinsightfaceしかないので、商用に耐えうる最新のモデルがないかなと考えています。
取り急ぎ、slackにて共有させて頂いた内容
https://axincai.slack.com/archives/C019HCVQBCP/p1710974187099469?thread_ts=1707350225.508149&cid=C019HCVQBCP
筋が良いと感じた3手法
────────────────────────
①UNPG
https://paperswithcode.com/paper/unified-negative-pair-generation-toward-well
- paper with codeにて、MegaFaceというデータセットでTOP1
- 2023年の提案
- CNNベース(ResNet等)
- 学習方法の提案と思われます
- 学習済みモデル、配布されているようです
────────────────────────
②DeepFace-EMD: Re-ranking Using Patch-wise Earth Mover’s Distance Improves Out-Of-Distribution Face Identification
https://paperswithcode.com/paper/deepface-emd-re-ranking-using-patch-wise
- paper with codeにランキングの記載なし
- CVPR2022採択
- CNNベース(添付画像1枚目)
- ネットワーク、及び、入力画像にパッチ画像も用いるという手法
- 学習済みモデル、配布されているようです
────────────────────────
③Fast and Interpretable Face Identification for Out-Of-Distribution Data Using Vision Transformers
https://paperswithcode.com/paper/fast-and-interpretable-face-identification
- paper with codeにランキングの記載なし
- WACV2023採択
- transformerベース(添付画像2枚目)
- ②手法の後継で、高速版のようです
- 学習済みモデル、配布されているようです
- ②と著者が同一であるようです
────────────────────────
📝 (論文まとめRough)
Fast and Interpretable Face Identification for Out-Of-Distribution Data Using
Vision Transformers
(ビジョントランスフォーマーを使用した分布外データの顔識別を高速かつ解釈可能に)
Abstract
- 殆どの顔識別アプローチは、Siamese neural networkを使用して、2画像を埋め込みレベルで比較します
- ただし、この技術はオクルージョン(マスクやサングラス等)や、分布外データの影響を受ける可能性があります
- DeepFace-EMD [40] は、最初に2画像を画像レベルで比較し、次にパッチレベルで比較することにより、配布外のデータに対して最先端の精度に達します
- しかし、その後のパッチごとの再ランキング段階では、最適なトランスポート最適化により、1画像につきnパッチの場合、
O(n 3 log n)
という大きな時間計算量に達します - この論文では、クロス アテンションを使用して、2画像をパッチレベルで比較する、新しい2画像ビジョントランスフォーマー(ViT)を提案します
- CASIA Webface [58] 上の200万の画像ペアでトレーニングした後、私たちのモデルは、配信外のデータに対して DeepFace-EMD と同等の精度で実行されますが、DeepFace-EMD [40] の2倍以上の推論速度で実行されます
- さらに、人体研究を通じて、私たちのモデルは交差注意の視覚化を通じて有望な説明可能性を示しています
- 私たちは、私たちの取り組みが、顔識別に ViT を使用する際のさらなる探究を促すことができると信じています
1. Introduction
- 写真から個人を自動的に識別できる技術である顔認証 (FI) は、法執行機関 [18、43、44]、民間企業 [2]、スマートフォン [19] などで広く使用されています
- データ量が増大する中、リアルタイムデータを処理および分析して顔やパターンを効果的に識別するには、高速かつ高性能の FI システムが最も重要です
- 残念ながら、顔情報は必ずしも理想的な条件で取得できるとは限らず、配布外データ (OOD) が使用されます
- マスク、サングラス、またはその他の敵対的なコンポーネントを顔に付けていると、ターゲットを正しく識別することが困難になります
- FI の精度は、OOD データで大幅に低下する可能性があります (たとえば、クエリの顔がマスクを着用している場合 [40] または敵対的に変更されている場合、LFW では 98.41% から 39.79% に低下します)
Figure 1
- オクルージョン下の顔識別における再ランキング計算の実際の実行時間 (秒単位) (短いほど良い)
- 私たちが提案したモデルは、すべてのデータセットにわたって最先端の DeepFace-EMD [40] よりも少なくとも 2 倍高速です
- OOD データの FI の精度に加えて、この分野は 2 つの実際的な課題に直面しています
- 最初の課題は、OOD 設定での顔を迅速に識別することです
- 迅速な識別は、デバイスのロック解除、アカウントへのアクセス [19]、セキュリティ チェック [2] の待ち時間を短縮し、機械が生成した結果 [17] に対する人々の信頼を高め、緊急対応 [35] を軽減することで、ユーザーエクスペリエンスを向上させることができます
- 2 番目の課題は、FI の決定をエンドユーザーにどのように説明するかということですが、興味深いことに十分に研究されていません
- 実際には、FI システムは、リアルタイムの回答とその回答が得られる理由を期待するエンドユーザー [41] によって操作されることがよくあります
- 現在制限されているマシンとユーザーの相互運用性により、多数の誤った決定が引き起こされます [7、22、26、43]
- 具体的には、FI 予測の説明を作成した研究はわずかであり [40, 48]、ユーザーに関する解釈可能な FI モデルからの説明を評価した研究はありません
- この研究では、FI の 2 つの入力画像間のクロス画像注意を可能にする ViT の設計空間を調査します
- 以下、3 つの重要な基準に関して、ViT、CNN、EMD ベースのパッチごとの再ランキング手法を比較します (図 3)
- (1) 分布内および OOD データの精度
- (2) 計算の複雑さ
- (3) 説明可能性
- そして、次のことを見つけます
- 複数の画像に注意を払うことで、2 つの画像の Hybrid-ViT モデルは効果的な再ランキング アプローチとなります
- これは、配信内データと OOD データの両方において、従来の FI モデル (CNN および 1 イメージ ViT に基づく) よりも優れたパフォーマンスを発揮します
- 当社の 2 イメージ Hybrid-ViT は、OOD 顔識別に対する最先端のアプローチである DeepFace-EMD [40] と同等の性能を発揮します
- さらに、私たちが提案するモデルは、図1に示すようによりスケーラブルです
- つまり、最適なトランスポート最適化フェーズ(セクション5.3)により遅いDeepFace-EMDよりも実際には2倍以上高速に実行されます
- 21 人を対象とした人間の研究では、HybridViT と DeepFace-EMD の説明のユーザーは、顔認証においてシャム ニューラル ネットワーク (SNN) のユーザーよりも大幅に高いスコアを獲得しました (セクション 5.4)
- 複数の画像に注意を払うことで、2 つの画像の Hybrid-ViT モデルは効果的な再ランキング アプローチとなります
- 私たちは、視覚的な説明によりエンドユーザーの顔認証の精度が向上することを初めて報告しました
- 私たちの知る限り、私たちの研究は初めて…
- (1) OOD データ上の FI 問題に対する ViTs [16] の設計空間を探索するもの
- (2) ViT ベースと EMD ベースの画像類似性アプローチを比較するもの [40、59、60、62]
- (3) 視覚的な説明によって人間の顔認証の精度がどのように向上するかを研究するもの
2. Related Work
- 顔認識の場合、これまでの深層アプローチは通常、CNN アーキテクチャ (VGGNet [47]、ResNet [23] など) をバックボーンとして採用して、深層顔の特徴を抽出し、メトリクス学習手法 [12、45] を使用してアイデンティティを分類します
- この設計は、多くの場合、in-distributionでは優れた結果を達成しますが、OOD データでは失敗します
- 最近の研究である DeepFace-EMD [40] は、CNN 出力からクロスイメージ情報を取得するために Earth Mover's Distance (EMD) 距離を提供し、顔の OOD を改善しました
- DeepFaceEMD と同様に、入力間の相互注意情報を利用するトランスフォーマーを調査します
配布外の顔識別
- オクルージョン [40、42、52] または敵対的な変化 [64] の下で顔を識別することは困難です
- SNN を使用する FI システムは、サングラス、マスク、または敵対的な摂動を含む画像に対して脆弱です
- 一連のアプローチでは、顔が部分的に隠れている画像に対してディープ CNN 特徴抽出器を再トレーニングします [21,39,50,52,56,56]
- ただし、特定の種類のオクルージョン (フェイス マスクなど) に対するデータ拡張は、入力画像内の新しい OOD 変更 (ヘアスタイルなど) への一般化を保証するものではありません [40]
- OOD 顔データの代替手法は、FI [25、32、55、57、61、66] を実行する前に欠落したピクセルを再構築することです
- しかし、オクルージョン解除プロセス [8、15、20] では、対象者のアイデンティティを保存できず、FI システムが決定を計算する方法に別のレベルの抽象化が追加され、意思決定プロセスがさらに不透明になる可能性があります
パッチごとの比較のためのSiamese networks
- 一般的な FI 手法には、Siameseアーキテクチャの採用があり、一対の入力画像を 2 つの重み共有された CNN ベースの特徴抽出器に入力し、2 つの出力画像レベルの埋め込み間のコサイン類似性を比較することが含まれます [12、34、45、54]
- 最近の EMD ベースの画像類似性研究では、画像レベルとパッチレベルの類似性の両方を組み合わせると、配信内データ [62] と OOD データ [40,60] でより高い精度が得られることがわかりました
- DeepFace-EMD [40] は、SNN からの 2 つの画像埋め込みのコサイン類似性に基づく従来の方法 [12、45、54] よりも常に優れています
- ただし、このようなアプローチでは、グローバルな画像レベルの比較のみが実行され、有用なローカルなパッチレベルの情報が破棄される可能性があります
- 研究者は、FI タスクのためのより正確で効率的なアーキテクチャを探しています
パッチごとの比較のための Vision Transformers
- パッチ レベルで動作する ViT は、コンピューター ビジョン [16、29、49、67] でますます人気があり、顕著な画像分類精度を達成することが示されており、CNN ベースのモデルのような明示的な特徴抽出を必要としません
- ViT のほとんどの研究は、自己注意 [51] を利用して画像内パッチ [65] の間、または画像 - テキスト アーキテクチャにおける画像パッチとテキスト トークン間の類似性を比較する単一画像アーキテクチャ [27,31] に焦点を当てています
- CrossViT [11] は、2 つの画像ではなく、同じ画像の 2 つの異なるスケールのバージョンに対して 2 つの Transformer を使用することを提案しました
- 私たちが知っている限り、FI で ViT を利用する唯一の作業は、[65] による同時作業です
- これは、単一の画像上でバニラ ViT を使用するため、画像間の相互作用は提供されません
- 他のいくつかの同時研究では、2 つの画像入力に対する ViT も調査していますが、むしろ人物の再識別 [33, 53] を対象としています
- これは、通常 FI で切り取られ位置合わせされた画像よりも制約のない画像分布を伴う別のタスクです
- これらにより、2 つの顔画像を比較するための画像間の相互作用を探索するための大きな余地が残されています
ビジョン トランスフォーマーのモデルの解釈可能性
- ViTの効果を可視化するために、さまざまな取り組みが行われています
- Blackら[6] は、それぞれが異なる 1 イメージ ViT によって処理された 2 つのイメージ間の相互相関とアテンション フロー近似を組み合わせる新しい方法を提案しました
- マルチモーダルな視覚言語トランスフォーマーについては、Kimら [27] が類似性スコアの説明として、テキストと画像のトークン間の類似性フローを使用します
- Cheferら[9, 10]は、層全体の集合的なクロスアテンションとその勾配を利用して、2 つの入力間の類似性の視覚化を導き出しました
- 私たちの研究では、[48] によって提案された手法を使用してすべての ViT を視覚化します
3. Method
- 我々は、OOD データ上の FI 用の新しい ViT アーキテクチャ (モデル H2L と表記) を提案します
- 2 つの画像を入力として取り込み、自己注意と相互注意の両方を活用して 2 つの画像の類似性スコアを計算します
3.1. 問題の定式化
- DeepFace-EMD [40] と同様に、私たちの方法は、クエリとのペアごとの類似性に基づいてすべてのギャラリー画像をランク付けすることにより、クエリ画像内の人物を識別します
- ランク付け (ST1) または再ランク付け (ST2) の後、上位 1 番目に近い画像を予測されたアイデンティティとして採用します
- このペーパーの範囲では、ジェスチャーを含まない正面の顔で構成されるデータのみを考慮します
3.2. アーキテクチャ: 2 つのイメージのハイブリッド ViT
- モデルの全体的なアーキテクチャを表1と図2に示します
- 事前トレーニングされた CNN (ArcFace [12]) からパッチの埋め込みを取り込みます
- Transformer エンコーダは、マルチヘッド セルフ アテンション (MSA) 層と MLP 層のブロックで構成されます
- 2 つの入力画像からのセルフ アテンションとクロス アテンションの両方を含むTransformer エンコーダの N 層の後、入力画像のパッチ エンベディングは 2 つの線形層を通過します
Figure 2.
- 提案されている ViT ベースのモデル H2L のアーキテクチャ
Table 1.
- この作業で評価された 6 つのネットワークのプロパティ
- 1イメージモデルと2イメージモデルの2種類に分類します
- 1 枚の画像モデルには CNN (C) と ViT (V) が含まれ、2 枚の画像グループには DeepFace-EMD (D) が含まれます
- ハイブリッド ViT は 1 イメージ (H1) または 2 イメージ (H2 および H2L) です
- H2 と H2L の違いは、[CLS] と [CLS] のトランス出力です
- それぞれ2-線形
Face embeddings.
- ゼロショット顔問題の場合、深層計量学習は効率的に機能します [34,45,54]
- 特徴埋め込み用の [CLS] (分類トークン) [13, 16] に加えて、残りの 2 つの出力も使用して線形層を分離し、深層メトリクス学習方式に展開される特徴を抽出します (詳細は図2を参照)
- 2 つの入力 2D 顔画像 x1、x2 が与えられると、寸法 ∈ R H×W×C を持つようにそれらを再形成します
- 顔埋め込み xp1、xp2 ∈ R P 2×D は、CNN または線形埋め込み層から抽出されます
- ここで、P は顔パッチの数、D はパッチ埋め込みのサイズです
- ここの損失関数 ArcFace [12] では、D = 512 および P = 8 を使用します
- 学習可能な埋め込みを E および Epos ∈ R (2×P 2+2)×D、2 つの追加の学習可能な埋め込みを XCLS および XSEP 、Transformer エンコーダーの中間層を zi と表します
- f1 と f2 は、2 つの画像間のクロスアテンション情報を含む 2 つの線形レイヤーからの特徴です
- 私たちが提案する 2 つの画像ベースのモデルは次のように定式化できます
Position embeddings
- vanilla Transformers [51] の位置埋め込みは、機械翻訳用に文内の単語の位置を示します
- ここでは、顔入力でも使用されます
- 顔のパーツが制約された順序で配置されている場合、たとえば、 目や口などの位置、この位置情報によって顔の構造が維持されます
Attention-based outputs.
- マルチヘッドアテンション(MSA)層からの出力
$z_l^{\prime}$ は、セルフアテンションプロセスとクロスアテンションプロセスの組み合わせを通じて取得されます - 以前の ViT 作品 [4、11、16、28] は通常、特定のタスクに対する追加の学習可能な埋め込みとして [CLS] を適用します
- ただし、CNN の空間パッチ埋め込みと同様に、2 つの画像入力ベースのモデルは、両方の画像からの情報を含むパッチ埋め込み出力
$z_l^1$ 、$z_l^2$ を利用し、画像間特徴を抽出するためにそれらを線形層に置きます - これらの画像間特徴と [CLS] のパフォーマンスを比較するためのアブレーション研究を Sec. 4. で提供します
- 顔認識における以前のディープメトリクス学習方法 [34、45、54] と同様に、ここでは ArcFace を損失関数 [12] として使用し、画像間のマージンを対応するラベルに分離して学習します
3.3. Dataset
- このモデルは、CASIA Webface [58] データセットでトレーニングされており、現実世界の 10,575 のアイデンティティの 494,414 枚の顔画像が含まれており、[45] などの FI タスクに広く使用されています
- 処理済みのクリーンな CASIA Webface データセットから、すべてのアイデンティティから構成される 200 万のペア (100 万のポジティブと 100 万のネガティブ) をサンプリングします
Figure 3.
- この作業では、提案した H2L を含む 6 つのネットワークのアーキテクチャが評価されました
3.4. Evaluation against various network structures
- ここでは、ArcFace [12]、DeepFace-EMD [40]、および Transformer ViT を備えた SNN を含む、顔認識のためのさまざまなアーキテクチャを持つ 6 つのモデルを研究します
- そのプロパティはTab.1. にまとめられています
- Siamese CNN モデル (表では C として示されている) が、研究のベースラインとして使用されます
- ViT ベースのモデル (V と表記) は、イメージ レベルではなくパッチ レベルで動作します
- The 1-image hybrid-ViT [16] (Model H1) は、パッチの埋め込みが事前トレーニングされた CNN からのものであることを除いて、元の ViT と同じであり、ViT ベースのモデルのベースラインとして機能します
- The 2-image Hybrid-ViT (Model H2) は、1 つのソフトマックス分類器層のバイナリ クロスエントロピー損失に [CLS] を使用し、これを 1-image モデルと比較します
- The 2-image Hybrid-ViT (Model H2L) は、コサイン類似度の計算に 2 出力特徴を使用します
- 1-image モデルには入力ごとに個別の ViT がありますが、2-image モデルでは 2 つの機能を単一の Transformer に入れてクロスアテンションを実装しています
- DeepFace-EMD [40] (D) は CNN の特徴全体を使用しますが、2 つの段階で使用します
- まず、画像埋め込みを使用して画像を比較し、次にパッチ埋め込みを使用して再ランク付けします
- モデル H2、H2L、および D は、ViT アテンション (H2 および H2L) または 2 つの画像入力間の最適トランスポート (D) を介して、画像間のパッチごとの比較を実行します
- モデル H2L の場合、空間特徴埋め込み (ResNet-18 [24] の 8 × 8 など) は、ArcFace [12] 損失関数に展開される線形レイヤーを介して特徴ベクトルを計算するために再利用されます
- この損失関数を画像間特徴に利用すると、知識を迅速に伝達するだけでなく、さらなる改善にも役立ちます
- パラメータ選択の詳細については、Table 1. およびセクション 3.4 を参照してください
4. Ablation Studies (手法の中からある条件だけを抜くことで,その要素の重要さについて考察するような実験)
- モデルの理解とパラメータの選択のために、異なる設定のネットワークに対して 2 つの主要なアブレーション研究を実施します:
- (1) 分布内データと OOD の両方について、交差注意 2 画像と交差注意なし 1 画像の比較 (セクション 4.1)
- (2) クロスアテンションあり、2 出力リニア対 1 出力 [CLS] (セクション 4.2)
- さらに、トランスフォーマーの深さと頭部を選択する方法についての検討を提供します (Sec.S5)
Datasets.
- 分布内 LFW [58] とマスクされた顔オクルージョン MLFW [52] の 2 つのデータセットで顔検証実験を実行します
- 顔認証タスクには 6,000 のペア (ポジティブ 3000 枚とネガティブ 3000 枚、合計 12,000 枚の画像) があります
- ハイブリッド モデル (C、および D) には、事前トレーニングされた ResNet18 ArcFace モデル [12] を使用しました
- 画像は、MTCNN アルゴリズム [45] によって位置合わせされ、128 × 128 にトリミングされます
- 入力は、127.5 を減算し、127.5 で割ることにより [0, 1] に正規化されます
- モデル V の場合、画像は [0, 255] の元の RGB 値で 112 × 112 にトリミングされます
- すべてのモデルは、クリーンで処理された CASIA Webface データベースでトレーニングされます [58]
Model training.
- バッチ サイズ 320 画像、最初のウォームアップ エポックでは 1e −6、残りの 49 エポックでは 1e −5 の学習率でモデルをトレーニングします
- Transformer 設定の場合、モデルは深さ = 1、2、4、8、頭 = 1、2、4、6、8 でトレーニングされます
- ハイブリッド ViT の CNN バックボーンの場合、パラメーターは更新されません
- ArcFace 損失 [12] については、ハイパーパラメータについてはセクション S2 で説明されています
- すべての実験は 8 つの 40GB A100 SXM GPU で実行されます
4.1. クロスアテンション 2 画像 ViT は 1 画像より優れています
- 交差注意を使用すると顔認識のパフォーマンスが向上するという仮説を調査するために、提案した 2 つの画像 (交差注意) モデルと 1 つの画像 (交差注意なし) モデルを比較します
Experiment.
- モデル V の場合、深さ 20、頭部 8 を使用します
- モデル V および H1 の場合、[CLS] 出力を使用して 512 次元の特徴を抽出します
- モデル H2L の場合、残りの 2 出力を 512 次元の埋め込みで使用します
- すべての特徴は、アイデンティティを分類するために ArcFace 損失関数 [12] で学習されます
Results.
- まず、LFW および MLFW データセットでは、2 画像 (クロスアテンション) モデルが 1 画像 (クロスアテンションなし) モデルよりも大幅に優れていることがわかり、クロス画像情報が OOD データの処理に役立つことが示されています (Tab.2)
- たとえば、LFW では、H2L (深さ = 4、ヘッド = 6) の精度が 〜 3.14% (モデル H1)、〜 1.5% (モデル V)、および 〜 1.25% (CNN) 向上します
- さらに、2 枚の画像モデル H2L は、MLFW での OOD 分布に関して 1 枚の画像モデルよりも有用な類似性情報を実質的に提供します (Tab.2; モデル H2L - 73% 対 C-70.75%、H1- 57.92%、および V- 57.62%)
- 第二に、興味深いことに、ハイブリッド モデル (H1 および H2L) は、深さがわずか 1 でより高い精度を達成できることがわかりました
- つまり、トランスフォーマーに効率的な浅層を追加すると、パフォーマンスが向上します (例: LFW では、H2L が 99.28% に対して、H1 が 98.02%)
- ViT モデル (V) と比較すると、同じことがわかります
- 対照的に、1 画像非クロスアテンション モデルは、分布内 LFW (図 4 を参照) および OOD MLFW (表 2) ではパフォーマンスが悪くなります
- 深さが 8 と大きくなると、モデル H1 は LFW で悪化します (表 2 H2L-99.22% 対 H1-58.00%)
4.2. Cross-Attentionにて、2-linear-outputは、1-output [CLS] を上回ります
- 以前の Transformer ベースの FI 作品 [14、16] は通常、追加の学習可能な埋め込み [CLS] を使用し、有用なクロスイメージ情報を含む可能性のある残りの埋め込みを破棄します
- ここでは、1 出力 [CLS] (モデル H2) と 2 出力 (モデル H2L) を実験して、埋め込みによってどのようにパフォーマンスが向上するかを研究します
Experiment.
- 1 出力 [CLS] では、バイナリ クロス エントロピー損失を導入してアイデンティティを分類します
- 深さ 1 と 2 でトランスフォーマーをトレーニングします
Results.
- まず、LFW および MLFW では 2 線形出力モデル H2L が 1 出力 [CLS] モデル H2 よりも一貫して優れていることがわかり (表 3)、2 つの画像間の残りの埋め込みクロス画像情報がモデル改善に役立つことが確認されています
- LFW (分配内) では、2 出力モデルにより精度が +8.55 ポイント向上しました (表 3; H2 の 90.45% から H2L の 99.22%)
- 分布外のマスクされた顔画像 (MLFW) データセットでは、精度が +21.75 ポイント増加すると、改善はさらに顕著になります (表 3; H2 の 48.40% 対 H2L の 70.15%)
- 第 2 に、2 出力モデル H2L のトレーニングは、わずか数回の反復で 1 出力モデル H2 よりも優れたパフォーマンスと安定性を示します (図 5)
- たとえば、1 出力 [CLS] モデル H2 は LFW に対して 80% の精度しか達成できませんが、2 出力モデル H2L は少ない反復回数で 99% の精度に達します (図 5a、b、d)
- 要約すると、深度 1 という低い値を使用することで OOD でのモデルのパフォーマンスを向上させることができます
- これにより、計算コストが節約され、ディストリビューション内ドメインと OOD ドメインの両方で H2L のパフォーマンスが向上することがわかります
- さらに、深さが深くなると、H2 のパフォーマンスは低下します
Figure 5.
- LFW での CLS (モデル H2) と ArcFace ハイブリッド ViT (モデル H2L) のトレーニング パフォーマンス
- モデル H2L は、トレーニング プロセスにおいて常に優れたパフォーマンスを発揮し、より高い安定性を実現します
5. Main Results
- セクション 5.1 と 5.2 では、マスク、サングラス、敵対的な顔を含むさまざまな OOD クエリ タイプを実験します
- ここでは、深さ 1、頭部 1、2、または 6 を含む、セクション 4 のアブレーション研究から最適な設定を選択します
- セクション 5.3 では、他の層タイプと比較して、モデルの時間計算量が速いことを示します
- セクション5.4では、モデルの顔の説明可能性について説明します
- パフォーマンスを向上させるために、私たちが提案するモデル H2L は、DeepFaceEMD のような 2 段階の方法で使用できます。つまり、CNN w.r.t コサイン類似度スコアを使用してステージ 1 の上位 100 個の候補 (k = 100) を選択し、これらの候補を相互クロスで再ランク付けします。 画像の特徴 — Transformers からの 2 つの出力
- また、オクルージョンの場合に最適な α = 0.7 の 2 つのステージの組み合わせを再利用します [40]
- セクション 4 で説明した設定でトレーニングされたモデルは、元の ArcFace および DeepFaceEMD と比較して 2 段階 (ST1 および ST2) でレポートされます
- 結果は、P@1、RP、M@R の 3 つのメトリクスによって計算されます [37,62]
- これらの指標の詳細については、セクションS3を参照してください
...
📝 (Githubリポジトリ確認Rough)
Fast and Interpretable Face Identification for Out-Of-Distribution Data Using Vision Transformers
- official Implementation : https://github.com/anguyen8/face-vit
記載のデータやモデル等について
- 学習とテストを行うためのデータセットの紹介として、幾つかのリンクを用意して下さっている
- https://github.com/anguyen8/face-vit?tab=readme-ov-file#2-download-datasets-and-pretrained-models
- この内、CASIAデータセットは紹介のリンクからDownloadすることが難しいが、別途Kaggleのリンクからデータを得ることができる
- LFWについては、out-of-distribution(OOD)とするための加工がされた「マスク」「サングラス」のデータなどをダウンロードすることができる
- test.pyを動かす際には、比較対象ペアを表現したtxtファイルが必要だが、それは見つけることができず、自前で作成をして精度評価を実施した
- データを用意して、
itertools.combinations(filename_list, 2)
等を駆使して、比較的簡単にリストは作成できる
- データを用意して、
- test.pyを動かす際には、比較対象ペアを表現したtxtファイルが必要だが、それは見つけることができず、自前で作成をして精度評価を実施した
- 別途、以下リンクのAsian Face Dataset Cleanedが有望そうなのだが、zipファイルのパスワードが分からず、使用できなかった
- https://github.com/vitoralbiero/afd_dataset_cleaned?tab=readme-ov-file
- READMEに沿って、パスワード共有のお願いメールをしたが、返信なし
- 別途以下のリンクから、Asian-celeb datasetというものをダウンロードできる
- deepinsight/insightface#1977
- 100GB弱程の容量の、個人毎にフォルダ分けされた学習データ「train_celebrity.tar.gz」をダウンロードすることができた
- 解凍すると、以下のようなレイアウトであった
- ./celebrity
├── 10000127
│ ├── 1174212268,1428908528_align.jpg
│ ├── 1471363678,3088703426_align.jpg
│ ├── 1567547479,2287369560_align.jpg
│ ├── …
│ ├── b8014a90f603738d505b34b7b31bb051f819ec16.jpg_align.jpg
│ ├── bd3eb13533fa828b053aa576fd1f4134970a5a0d.jpg_align.jpg
│ └── d043ad4bd11373f0632e570aa40f4bfbfbed0415.jpg_align.jpg
├── 10000207
│ ├── 1517662845,2845745492_align.jpg
│ ├── 2120650568,2478378549_align.jpg
│ ├── 2396100771,3332616371_align.jpg
│ ├── 4014354810,993095686_align.jpg
│ ├── 4279193289,1758596758_align.jpg
│ ├── d52a2834349b033be23d51f611ce36d3d539bd61.jpg_align.jpg
│ └── fab3ac11717bde3eca80c48e.jpg_align.jpg
├── 10000614
│ ├── 1068056581,531401204_align.jpg
│ ├── 1293933361,2638801324_align.jpg
│ ├── 3174911707,2119134179_align.jpg
│ ├── 3659451043,3944349514_align.jpg
│ ├── 4119301830,799137584_align.jpg
│ └── 65190419,3888778856_align.jpg
├── 10000787
│ ├── 2009960157,2531342572_align.jpg
│ ├── 3128351165,680612430_align.jpg
│ ├── 3141727179,462710453_align.jpg
│ ├── 4146439009,708557137_align.jpg
│ └── 912703374,3883341723_align.jpg
├── …
└── 9999882
├── 1166746776,1838900629_align.jpg
├── 1277534803,3776517958_align.jpg
├── 1341285813,3213518941_align.jpg
├── 2559246026,1872684710_align.jpg
├── 2594604176,2083631403_align.jpg
├── 2642547371,2863194642_align.jpg
├── 3397068385,1319670352_align.jpg
├── 373907790,285742577_align.jpg
├── 3847435221,2656644531_align.jpg
├── 4bd1e8039361b86b3812bb2e.jpg_align.jpg
├── 5af4d7ead81d409fd439c905.jpg_align.jpg
├── 7aad4ae7c0035962b8382004.jpg_align.jpg
├── caae6809a19ddae32fddd45d.jpg_align.jpg
├── d8b8c92aeefa8813d52af147.jpg_align.jpg
├── ea85a9453005f46acefca35e.jpg_align.jpg
└── faacb56469e30ebcf636545d.jpg_align.jpg
93979 directories, 2830146 files
- ./celebrity
- 以下のような、解像度400x400の画像が含まれる
- リポジトリのリンクより、幾つか用意してくれている学重済みモデルファイルに辿り着くことができるが、各ファイル内容についての説明がリポジトリ上になく、かつ、論文に記載されている内容ともリンクさせづらくはある
- test.pyで使用できるモデルは、論文中に記載されているH2L(Hybrid-ViT with 2-image input)という型だと思われる
- ViT-P8S8_2-image_webface_2m_arcface_resnet18_s1_depth_4_head_8_hybrid/best.pt
- ViT-P8S8_2-image_webface_2m_arcface_resnet18_s1_depth_8_head_2_hybrid/best.pt
- etc...
- H2Lモデルは、論文ではcosine similarityを用いる旨が記載されているが、test.pyではEuclid-Distanceが用いられている
- また、train.pyは、lossの計算については、cross-entropyのみのオプションとなっている
- Euclid-Distanceとcross-entropyとで学習をした結果だとは、どうも考えづらそうである為、学習コードはコーディングの必要がありそうな印象
- embedding特徴を算出する迄の処理はtest.pyに記載がされている為、pytorch-metric-learningなどを参考に実装すれば、学習の実施は可能
- その後、lossについては、ArcFaceを用いている旨、著者からの返答を頂きました
- test.pyで使用できるモデルは、論文中に記載されているH2L(Hybrid-ViT with 2-image input)という型だと思われる
日本人の顔認証でのテスト精度
- 顔が似ているとされる芸能人のペアを幾つかダウンロードする形で、テストデータを各人20画像ずつ準備
- ダウンロードをした方
- 三上愛さんx小松菜奈さん
- 広瀬アリスさんx水野美紀さん
- 宮崎あおいさんx二階堂ふみさんx山本舞香さん
- 工藤大輝さんx山下健二郎さん
- 田中圭さんx向井理さん
- 竹野内豊さんx大谷亮平さん
- 福士蒼汰さんx中川大志さん
- 同傾向の画像を避けるようにしてダウンロードを実施
- ダウンロードした画像に対して、dlibによる顔検出を実施し、得られたBoundingBoxを長辺で正方形に加工したうえで、10%のpaddingを付与し、そこからcrop画像を得た
- Asian-celeb datasetと比べると、位置合わせや、未補正の傾きが、若干キツイ印象
- ダウンロードをした方
- モデルは幾つか適用を試みたが、以下のモデルにて、Euclid距離(L2)を適用した際が最も精度が高かった
- ViT-P8S8_2-image_webface_2m_arcface_resnet18_s1_depth_4_head_8_hybrid/best.pt
- LFWで学習されたモデルであり、基本は欧米人の認証に強い形
- LFWのデータからラフに精度検証を行ってみたところで、accuracyが0.95を超えることが多かった
- 論文記載によれば、99%を超えるとのこと
- Cosine距離も用意されていたので試してみたが、精度低く、恐らくはモデルの学習がそれによって行われていない様子であった
- 精度は、最もaccuracyが高い閾値にて、以下confusion-matrixであった
- tp:0.06 fp0.07
fn:0.02 tn0.85
acc:0.9089086859688196 - 予測分布(青が比較の2画像間の距離、橙が同一人物が1で異なる人物が0のラベル値)
- 苦戦している様子が伺える
- 欧米人の顔画像にて学習した結果にしては、精度が高いのかもしれない
- 似ているとされる芸能人のペアを多く含めた為、少し厳しい評価になっている可能性がある
- 識別誤りの傾向分析までは、まだできていない
- 顔の傾きや、オクルージョンなども影響している可能性があると考えている
- 男性は男性、女性は女性とだけ比較をしている
- 同性については、似ているとされるペア以外にも組み合わせ(計22,450ペア)にて、認証比較を実施した
- tp:0.06 fp0.07
- ViT-P8S8_2-image_webface_2m_arcface_resnet18_s1_depth_4_head_8_hybrid/best.pt