6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

論文まとめ:MobileFaceNets: Efficient CNNs for Accurate Real- Time Face Verification on Mobile Devices

Last updated at Posted at 2021-03-15

はじめに

CCBR 2018より以下の論文
[1] S. Chen, et. al. "MobileFaceNets: Efficient CNNs for Accurate Real- Time Face Verification on Mobile Devices"
のまとめ

概要

  • 顔認証を行うモデル
  • 大型モデルと比較しても遜色ない精度を達成
  • モバイル向けモデルと比較した際には精度を上回り、かつ2倍の推論速度を達成
  • mobileNetを用いたモデルと比較した場合、最後のglobal average poolingをglobal depth-wise convolutionに替えていて、これが精度向上に寄与している

顔認証タスクにおける global average pooling の問題点

昨今のCNNでは出力前に global average pooling を使う場合が多い。しかし著者らに言わせると、こと顔認証においては問題がある。以下の図で

スクリーンショット 2021-03-16 8.09.36.png

last 7x7のfeature mapにおいて、中央の赤いピクセルは、入力画像において赤い矩形領域が受容野となる。一方で、last 7x7 feature mapにおける緑のピクセルは、入力画像において緑の矩形領域が受容野となり、顔の一部を網羅していない。

そうすると、図中右下 learned spatial importance に示したように中央の値は重要(値が高く)なり、端付近は低くなる。そうすると、「チャンネルによっては顔の端付近の情報を得たい場合に、得られない」という問題が生じる??? -> ここ間違ってたら連絡ください

global depth-wise convolutionを使った解決法

上記問題に対して、本論文では global average poolingをfeature mapと同じサイズのkernel(つまり7x7)によってdepth-wise convすることで、対応している。

つまり出力 $G$ の $m$ 番目の値は入力のfeaturemap $F$ に対して

G_m = \sum_{i,j}K_{i,j,m} \cdot F_{i,j,m}

とする。

ネットワーク

ネットワークは以下。

スクリーンショット 2021-03-17 5.44.48.png

基本は MobileNet なので、bottleneck 部分は depth-wise conv+point-wise convに対して residual なショートカットが加わった形。

loss

ArcFace[2]で提案されたArcFace lossを用いている。

これはArcFace論文によると additive angular margin loss と言っていて、以下のようなもの。

スクリーンショット 2021-03-17 6.23.14.png

lossの全体像

まず、点線で囲われた Additive Angular Margin Penalty 抜きで考えてみる。

スクリーンショット 2021-03-17 6.33.10.png

左上、モデルから出力された d 次元の特徴量が $x_i$。

これを正規化して $\frac{x_i}{| x_i |}$

一方で左下のように各クラス(行方向の n )の典型的な d 次元特徴量(列方向)を行列にした $W$を用意する。

これも各列 j に関して正規化しておく。つまり W の j 列目(クラス目)は $\frac{W_j}{| W_j |}$

この両者の内積を計算する。両者はもともと正規化されてるので、内積は j クラスのコサイン類似度のようなもの。

\cos \theta_j = \frac{x_i}{\| x_i \|} \cdot \frac{W_j}{\| W_j \|}

そうすると、コサイン類似度が高い j 列はモデルが最も確率が高いと予測した j クラスとなるので、softmaxを計算すると、確率が計算される。

これに対して通常のクラス分類ごとく target の one-hot ベクトルとで交差エントロピーを計算すればよい。

Additive Angular Margin Penalty な部分

これに対して、Additive Angular Margin Penalty は文字通り角度ベースでペナルティを加える。

スクリーンショット 2021-03-17 6.51.25.png

具体的には、正解クラス $y_i$ に対して角度ベースでマージンを加え、結果的にコサインの値を小さくする。

\cos (\arccos (\cos \theta_{y_i}) + m)

そうすると、マージンを加えられてもsoftmaxで最大となるよう、$x_i$ をより代表ベクトルに近づけるよう学習するだろう。

実験と結果

他のmobile系のモデルとの精度、速度、パラメータ数の比較

datasetはLFW dataset, AgeDB-30 を用いて、以下の結果。

スクリーンショット 2021-03-16 8.32.10.png

精度もスピードもよい

他の精度SOTAなモデルとのモデルサイズ・精度比較

LFW datasetを用いて他のSOTAな巨大モデルとの精度・パラメータ数を比較したものは以下。

スクリーンショット 2021-03-16 8.32.21.png

ArcFace等、巨大モデルとも比肩する精度。

reference

[2] J. Deng, et. al. "ArcFace: Additive Angular Margin Loss for Deep Face Recognition"

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?