Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AdaFace(CVPR'22)

kuzma
November 08, 2022

 AdaFace(CVPR'22)

CVPR 2022, Oral採択の顔認証向け損失関数の論文AdaFaceについて紹介しています
CVPR2022論文読み会向けにまとめましたが、諸事情により登壇できず…
折角なのでアップしました

kuzma

November 08, 2022
Tweet

More Decks by kuzma

Other Decks in Technology

Transcript

  1. A d a F a c e : Q u

    a l i t y A d a p t i v e M a r g i n f o r F a c e R e c o g n i t i o n M i n c h u l K i m , A n i l K . J a i n , X i a o m i n g L i u D e p a r t m e n t o f C o m p u t e r S c i e n c e a n d E n g i n e e r i n g , M i c h i g a n S t a t e U n i v e r s i t y
  2. 自己紹介 前野 一樹 - パナソニックコネクト(株)で顔認証やってます( n年目) - 育休からだいぶ経ちましたが変わらず子育てに追われてます (発表中に乱入してくるかもしれません) -

    3年ぶりの発表でだいぶ緊張しているのでお手柔らかにお願いします slideshare Kazuki Maeno Twitter kuzma (@kuz44ma69) Qiita @kuz44ma69 CV Face Verification/ Identification Face Recognition
  3. 発 表 す る 論 文 に つ い て

    ( 1 / 3 ) 概 要 3 誰の顔か同定出来ない(=無理ゲーな)画像が学習データに存在 ⇒ 顔認証では無視すべきところを特徴としてしまうモデルに 問題 無理ゲーなサンプルを重要視しすぎない損失関数を提案 やってること1 提案の妥当性を頑張って検証 やってること2
  4. 発 表 す る 論 文 に つ い て

    ( 2 / 3 ) : 関 連 リ ン ク 集 ▪ 公式 - arxiv - CVPR 2022, CVPR 2022 Oral 動画 - 著者所属: Michigan State University(MSU)のComputer Vision Lab ▪ 解説 - cvpaper.challenge CVPR2022 網羅的サーベイ # 職場の同僚がまとめてくれていました - MoT Karasawaさんの顔認証の損失関数まとめ資料の中でも紹介 - takoroyさん解説記事 - (MoT Plot Hongさんの顔画像品質のまとめ資料も関連分野把握の参考になりそう) 4
  5. 発 表 す る 論 文 に つ い て

    ( 3 / 3 ) : 自 分 の 発 表 と の 繋 が り ICCV 2019読み会で紹介した論文と、同じラボの、少し似た系統の論文 5 “Anil”の誤りです… (今回見返して気づいた…)
  6. ( 独 断 と 偏 見 に 基 づ く

    ) 関 連 論 文 年 表 ざっくり関連論文(リンク埋込してます)をピックアップするとこんな感じ 点線で繋いだものが比較的関係が強い(と思う). 特にArcFaceとMagFace 6 ArcFace (CVPR 2019) L-Softmax (ICML 2016) MV-ArcFace (AAAI 2020) AdaFace (CVPR 2022) PFE (ICCV 2019) ERS (2021) L2-Softmax / Crystal Loss (2017/2018) Automatic Face Image Quality Prediction (2017) CFSM (ECCV 2022) URL (CVPR 2020) MSU MSU MSU MSU MSU MSU CosFace (CVPR 2018) 2016 損失関数 顔画像品質 (Set/Video-Based) 損失関数 X (顔画像)品質 低品質耐性 2022 CurricularFace (CVPR 2020) Adaptiveの導入 Marginベースの デファクト Qualityを 認証モデルと紐づけ Quality推定の自動化 Marginベースの はじまり? QualityとL2ノルムの関係 MagFace (CVPR 2021) 2019 いらんかも Qualityを認証モデルの 学習に活用 低Qualityのテスト精度への 影響大きすぎ問題言及 データ拡張最適化 In 顔認証 Difficulty(Quality)を 考慮したMargin Difficultyと Qualityの分離
  7. A r c F a c e : A d

    d i t i v e A n g u l a r M a r g i n L o s s f o r D e e p F a c e R e c o g n i t i o n 顔認証の損失関数でデファクトと言えるであろうArcFace (CVPR2019) 正解クラスの分類をcos類似度で角度mだけ難しくしてからsoftmax・cross entropyする このmをマージンと呼ぶ 7 クラスの代表ベクトル (がクラス数Cだけ並んだもの) =最後のFC層/Classifier クラスの代表ベクトル と画像xのcos類似度 (がクラス数Cだけ並んだもの) 正解クラス以外は いつも通り(マージン無)の意 Yu4uさんのQiita記事から引用 (本家ArcFaceの図より見やすい)
  8. M a g F a c e : A U

    n i v e r s a l R e p r e s e n t a t i o n f o r F a c e R e c o g n i t i o n a n d Q u a l i t y A s s e s s m e n t - Qualityが低い=認識が難しいと仮定し、難しいサンプルを過学習しないようにしたい ⇒ マージンmを可変にして、Hardサンプルの分類が難しくなりすぎないように調整 - QualityがL2ノルムとして現れるよう、L2ノルムに基づきマージンが変化する損失を提案 ⇒ (結果的に)L2ノルムによるQualityの推定も可能に 8 𝑎𝑖 =L2ノルム ⇒ L2ノルムでマージンが変化 L2ノルム 赤点線 =クラス中心のベクトル Hard 中心となす角: 大 L2ノルム: 小 Easy 中心となす角: 小 L2ノルム: 大 (横軸)cosθ:クラス中心となす角 (縦軸): L2ノルム ArcFaceとの差分 𝑚(𝑎𝑖 ): L2ノルム小 ⇒ マージン小 ⇒ 損失小 𝑔(𝑎𝑖 ): L2ノルム小 ⇒ gの値(=損失)大 ⇒ gによる正則化でバランスを取ってる
  9. A d a F a c e で ” や

    り た い ” こ と 通常のArcFace: 悪影響する超低品質な画像が重要視されてしまう (MagFaceと同じ思い) Hardさでマージンを決めると、高画質なHardを過少に強調してしまう (MagFaceの問題) ⇒ 品質的に無理ゲーなサンプルの影響は抑え、そうでないHardサンプルは重要視したい 9
  10. A d a F a c e で ” や

    っ て る ” こ と - 品質に応じたマージンを設定 (MagFaceと一緒だが式が違う) - 品質≒L2ノルムとして、ミニバッチのL2ノルム値で正規化(標準化)した値を利用 - (ついでに、)ArcFace(↓のangle)とCosFace(↓のadd)のマージンのつけ方をがっちゃんこ 10
  11. L 2 ノ ル ム で 品 質 評 価

    値 を 代 替 し て 大 丈 夫 な ん で す ? 品質の指標(BRISQUE)とL2ノルムの相関を調査 - 学習初期からL2ノルムは品質評価指標と高い(?)相関がみられる ⇒ L2ノルムを品質の指標として採用して大丈夫! - 正解クラスの予測確率(的なlogits->softmax取った時の値)は相関が低そう 11 Epochごとの相関の変化 緑: L2ノルム (Feature Norm) 橙: 予測確率 最終Epochの相関分析 (L2 Norm) 相関がみられる 最終Epochの相関分析 (予測確率) 相関がみられない
  12. M a g F a c e と の ”

    お 気 持 ち ” 的 な 違 い - MagFaceは、Face QualityはImage Qualityだけで上手く扱えない(↓の図)から、 difficultyでとらえようと思っている ↔ AdaFaceは、Image Qualityは気にしつつ、顔特有な難しさは解くべきだと思っている (高画質で顔が横向いてるとかは解くべきだけど、ボケボケとかは捨てる) - MagFaceは、L2ノルムはQualityを指すように学習しようとしている ↔ AdaFaceは、L2ノルムは(Image) Qualityと相関するため学習(backprop)しない 12 一般的な画像の品質 (BrisqueはAdaFaceで登場) これらを基準に除外しても、 エラーが減らない ⇒ Face Quality != Image Quality Brisque Piqe Niqe 画像の評価からの除外率 Qualityが低い画像から順に除外する 本人エラー率 (本人を他人とした割合) 低いと嬉しい better テスト時に無理ゲーサンプルを なくしていくとどうなるか という評価
  13. M a g F a c e と の ”

    実 際 ” 的 な 違 い - ハイパラの数: MagFace: 多い(5), AdaFace: 少ない(2 ※EMAのためのパラメタ除く) # MagFace: うち2つのハイパラミスるだけでArcFaceに届かない… # AdaFace: どっちもそこまで酷い精度変化はしないっぽい - 実際のマージンの範囲: MagFace: 狭い(0.46~0.53), AdaFace: 広い(-0.5~0.5)) - 品質推定の可否: MagFace: 出来る, AdaFace: 出来ない 13 AdaFace
  14. 勾 配 ( の ス ケ ー ル ) か

    ら 提 案 手 法 が 機 能 し て い る か 確 認 - ★品質が高い場合は、難しいサンプルを強調 (黒丸 vs 黒三角: 黒三角の方がGST大) - 品質が低い場合は、簡単なサンプルを強調 (白丸 vs 白三角: 白丸の方がGST大) (品質が低い(=L2ノルムが小さい)方が、高い場合より常に強調されてるけど良い??) 14 本人クラスの予測確率 ロスの識別器による微分 j番目クラスとしてるが、 本人クラスと思ってOK スカラー 同じ |g|を学習への寄与度(学習における強調度) とみなして↑の図を作成
  15. 前 頁 の G S T に つ い て

    の 疑 問 - Curricular Faceは正解クラスはArcFaceと同じマージンで、 他人クラスの方が高い類似度だと違うマージンになる GSTの計算式は正解クラスに対してのことしか考えてないのに、 図が変化する意味が分からん (negative classは無視するって書いてるし) - MagFaceは実際はハイパラで制御してマージンの差はそんなに出ないと思うが、 本当にあんなにスケールに差がある? MagFaceの世界で正規化してる?? そうだとして、手法間で同じスケールだとどう? 15
  16. 結 果 : S O T A と の 比

    較 AdaFaceがいい感じなことを確認 16
  17. 結 果 ( A b l a t i o

    n ) : ハ イ パ ラ の 影 響 - h, m: どう設定してもまぁまぁ良い(CF同等以上)感じ. 特に低品質評価(LQ)は強い - Proxy(マージンの調整指標): L2ノルム > 予測確率(𝑃𝑦𝑖 ) > 画像品質(BRISQUE) 画像品質は計算コストの関係でデータ拡張なしのケースを事前計算 ⇒ 学習中にデータ拡張を反映して計算できるためにL2ノルムが良い?? 17 hの変化 mの変化 Proxyの変化
  18. 結 果 ( A b l a t i o

    n ) : デ ー タ 拡 張 の 適 用 確 率 の 影 響 検 証 - Curricular Faceはデータ拡張すると精度が下がる - AdaFaceだと適用した方が精度が上がる (無理ゲーな拡張になった時にマージンを控えめにする仕組みが上手く効いてそう) 18 Bag of Tricks for Image Classification with Convolutional Neural Networks (CVPR 2019)のデータ拡張を採用 顔認証だと ImageNet向けの拡張だと 精度低下しがち (拡張で認証できない画像出来がちなため) だけど大丈夫 そうAdaFaceなら
  19. H a r n e s s i n g

    U n r e c o g n i z a b l e F a c e s f o r I m p r o v i n g F a c e R e c o g n i t i o n ( E R S ) 本人ペアスコアが低い話も問題だが、他人ペア(False Pos)スコアが高い方がやばい問題 低品質な画像は特徴空間でクラスタ形成(=高い他人ペアスコアを量産)すると言及 前頁のデモで、こういう他人ペアがArcFaceで出てAdaFaceで出てないところが気になる (他人ペアスコアが減少して閾値が下がったことで高精度化したのか、 本人ペアスコアが増加して閾値を超えるケースが増えたことで高精度したのか、気になる) 20
  20. 発 表 す る 論 文 に つ い て

    ま と め 21 誰の顔か同定出来ない(=無理ゲーな)画像が学習データに存在 ⇒ 顔認証では無視すべきところを特徴としてしまうモデルに 問題 無理ゲーなサンプルを重要視しすぎない損失関数を提案 具体的には、L2ノルムを品質の評価指標とみなし、 L2ノルムのミニバッチにおける相対的な大きさから、マージンを変化させる方式を提案 やってること1 提案の妥当性を頑張って検証 具体的には、①L2ノルムが品質評価指標(BRISQUE)と学習初期から相関することを確認、 ②勾配のスケールの大きさ(≒学習への寄与度)が、クラス中心から離れた際に、(近い場合 に比べ)、低品質である場合は小さく、高品質である場合は大きくなることを確認 やってること2
  21. 所 感 - 問題設定が面白く好き - 画像品質と相関あるからL2ノルムというのは、まぁ分かるという気持ちと、 本当にそれでよいんか?という気持ちを感じる (相関もそこまで高くない気がする) GSTの解析も、低品質(小L2)がそもそも高品質(大L2)より大きいのはどうなん?と思う -

    ArcFaceとCosFaceをがっちゃんこしたら良くなるというのは、ArcFaceの公式実装で実 験結果が(昔は)示されていて、AdaFaceのメインアイディアで良くなったのか、がっちゃ んこ部分で良くなったのか気になる - 同じラボのPFEはGitHubのIssuesでボロクソにたたかれているので、今回の実装は大丈 夫だろうかと若干心配(今回は結構closedになってるし大丈夫そうではある) 22