おはこんにちは、Liquid R&Dチームの布目です。
Liquid R&Dチームで現在重点的に取り組んでいることに、eKYCでの顔の真贋判定があります。この記事では真贋判定について簡単に解説します。また真贋判定をより頑強にするための、顔3次元復元+3Dプリンタで人体錬成する取り組みについてまとめました。
真贋判定とは
真贋判定は、本物と偽物を判定するといった意味合いです。顔の真贋判定では、撮影された顔が本物か偽物かを判定することになります。顔の偽物は大雑把に3種類に分けることができます。
- Photo Attack
- 偽装したい人の顔写真を紙に印刷して容貌撮影
- Display Attack
- 偽装したい人の画像/動画をスマホやディスプレイに表示して容貌撮影
- Mask Attack
- 偽装したい人の顔のお面を使って容貌撮影
eKYCでは、例えば不正な手段で入手した他人の顔画像を印刷して、顔撮影を突破しようとすることが想定されます。もし突破されてしまうと、赤の他人で本人確認ができてしまい、銀行口座の開設などができるようになってしまいます。撮影された顔が本物であるか偽物であるか見極めるのはとても大切です。しかしながら、本物は本物と、偽物は偽物と判定する手法はまだまだ発展途上であり多くの研究が行われています。(arxivなどでface anti spoofなどをキーワードに検索するとたくさん論文を読むことができます。)
真贋判定の課題点の一つにデータ集めがあります。上であげたPhoto AttackとDisplay Attackは多大な工数が必要ですが、比較的容易にデータ収集できます。しかしMask Attackはそもそも誰かのお面を作る必要があります。今回は3Dプリンタでお面を作ることを目標に、機材、3次元復元手法について調査しました。最終的には以下のようなサイクルを想定しています!
顔3次元復元について
3つの方向性があります。
- RGBカメラで複数の角度から撮った数枚の画像から復元
- RGB-Dカメラで複数の角度から撮った数枚の画像から復元
- 3Dスキャナで顔形状の復元
RGBカメラとRGB-Dカメラを使ったものを試しました。
RGBカメラ
RGBカメラはスマートフォンやデジタルカメラなどに搭載されてるカメラです。いわゆる一般的なカメラですね。
MetaShapeとFaceBuilderというソフトを試しました。
MetaShapeはちょっとギザギザした感じ、FaceBuilderはなんとなくスムージングされたモデルを出力しました。
RGB-Dカメラ
RGB-Dカメラは、RGBカメラ同様の画像に追加で深さ(depth)情報を取得できるカメラです。MicrosoftのKincet, Kincet AzureやIntelのReal SenseシリーズなどがRGB-Dカメラにあたります。(AppleのFaceIDでも使われているようです。)
まずはReal Sense d415 + RecFusionというソフトを試しました。
ちょっと荒さを感じる結果になりました。
ちょうどこれらを調べている時期にRGB-Dカメラを使ったフォトリアルな3次元復元手法に関する論文が出たのでそちらも試しました。(https://arxiv.org/pdf/2010.05562.pdf) こちらはAzureKinectを使用しています。
なかなかリアルなモデルが出力されて良さそう!でも目がない!となりました。
おわりに
RGB,RGB-Dカメラでの3次元復元を試し、なかなか良いモデル作成が行えることを確認しました。どちらの場合でも言えることですが、高性能なカメラ、正確なカメラキャリブレーションがないとリアルなモデルの作成は難しいです。またリアルなモデルが真贋判定で有利になるのかはまた別に議論が必要な点です。実はちょっとカクカクしているなどの低品質なマスクの方が真贋判定を欺ける可能性も十分に考えられるので、今後も実験を試していきたいところになります。
今回の人体錬成で持って行かれるものはお金と時間だけです!腕と脚は持ってかれないのでとても良心的です!みなさんも気軽に人体錬成しましょう!