許容範囲のある顔認証AIモデル
AIゆめ
顔認証技術には様々な技術がありますが、本ページでは、笑顔や疲れた顔など、顔の状態が変化しても顔認証が可能な「許容範囲のある顔認証AIモデル」を試してみたいと思います。時系列データにおいて、データ数がある程度多い時にはAIモデルの予測精度が極めて高いことを、
時系列データの未来予測 - 航空機乗客数の予測のページで述べました。これと同様の発想から、許容範囲のある顔画像を多数用意さえすれば、顔認証の許容範囲が広がるであろうという考えです。そして、その第一ステップとして、StyleGAN3(一部StyleGAN2-ada-pytorch)を使用し、下の動画の通り、
StyleGAN3による顔認証画像の生成のページで2つの画像の間を補完する100~200枚の画像を生成しました。
顔認証となるモデルとしてはネットに多数あるものの、肖像権の問題など不明な点も多いため、ここでは、Kaggleにある顔認証モデルの
Pins Face Recognitionと
Bollywood Celebrity Facesのページで比較的大きな画像を提供されている俳優さんの写真を使用させていただきました。図1の左から、Alexandra Daddario氏、Brian J. Smith氏、Chris Hemsworth氏、Richa Chadda氏、Tamannaah Bhatia氏の5名です。以下、ファーストネームで表示させて頂きます。
図1 StyleGAN3による俳優の顔認証モデルの生成
StyleGAN3で生成した画像による顔認証AIモデル
5人の俳優の画像を使用してどの程度の精度で顔認証が可能か調べます。顔認証のモデルを適用する際に、既にImageNetで事前トレーニングされたKeras画像分類モデルInceptionV3()を使用するという方法もあるでしょう。しかし、俳優のデータ数は各俳優で100~200枚と比較的少ない上に、100%近くの認証精度を目指しているため転移学習は使用しませんでした。使用したモデルは、
画像分類 - 困難な課題で予測精度を上げるのページや
画像分類 - MNISTで予測精度を試すのページでよく使用する4層のCNNモデルです。
StyleGAN3で生成した画像の学習状況と評価結果を図2,3に示します。学習状況が示す通り、かなり高い精度で予測されていることがわかります。テストデータで評価した結果も100%的中しています。一見、これで上手く行ったかのように見えますが、生成画像ではない本人の画像での評価ミスが多いことが判明しました。StyleGAN3では、かなり高精度に本人画像に似た画像が合成されているようですが、画像サイズが十分でないなど、様々な理由で原画像とは異なった画像になっているようです。
図2 StyleGAN3で生成した顔認証AIモデルの学習状況
図3 StyleGAN3で生成した顔認証AIモデルの評価結果
生成画像と本人画像を混合した顔認証AIモデル
前項で問題であった本人画像もしっかり認識できるよう、生成画像に本人画像も加えて評価して行きます。2枚(許容範囲を示す両端の画像)、10枚(両端の画像x5)、20枚(両端の画像x10)と、同じ画像を増やした結果、2枚、10枚では過学習が大きいものの、20枚になると過学習が比較的小さくなったため、ここではその結果を示します。学習状況が示す通り、かなり高い精度で予測されていることがわかります。テストデータで評価した結果も100%的中しています。評価結果の中の横に広がっている顔が本人の原画像の評価結果です。MTCNN顔検出器を使用して顔部分のみ切り出して与えているためこのような表示になっています。CNNモデルに多数の同一の本人画像を与えることにより、狭い範囲の高精度な本人認証モデルを構築できることはわかっていますが、StyleGAN3やCycleGANなどの手法で、これに少し幅を持たせた画像を用意してやれば、高い精度で認証できる許容範囲のある顔認証AIモデルを構築することができるでしょう。
図4 生成画像と本人画像を混合した顔認証AIモデルの学習状況
図5 生成画像と本人画像を混合した顔認証AIモデルの評価結果