顔認証システムの認証率って何?
顔認証は生体認証の中の一つです。
生体認証とは指紋や歩き方、虹彩、掌など何種類かありますが、100%信用できるものではありません。
どのようなことなのか解説します。
大企業がアピールする「認証率」
皆様は様々な顔認証システムについて、ニュースや企業サイトで「認証率」をご覧になることがあると思います。
「認証率」とは「この顔画像は誰が映っているか」正しく認証できる度合いを指します。通常100%に近いほうが「顔認証システムとして優れている」と思われています。ところが本来はそう単純な話ではありません。
FRR と FAR
例えば医療現場では「特異度 (Specificity) 」(または陰性判定率)という単語で表されますが、血液検査をする際に陽性判定率だけを高めても良いわけではなく、陰性判定率を同時に高めないと、偽陽性反応が高くなってしまう問題があります。
窃盗などのセキュリティで考えてみます。
カメラに映った顔画像を検出・認証する場合に
「犯人を正しく犯人と認識できる確率」 (Sensitivity) と
「犯人ではない人を、正しく犯人ではないと認識できる確率」 (Specificity)
の2つの確率を正しく評価しないといけません。
生体認証、例えば顔認証システムでは、本人拒否率(FRR: False Rejected Rate)と他人受入率(FAR: False acceptanceRate)という用語が主に使われます。
- 本人拒否率(FRR)
- 本人の生体情報と照合したときに本人が拒否される率
- 値が低いほど認証精度が高い
- 他人受入率(FAR)
- 他人の生体情報と照合したときに受け入れられてしまう率
- 値が小さいほど認証精度は高い
上のグラフは本人拒否率と他人受入率を表したものです。このグラフ上で任意の横方向にポイントをとった時、そのポイントを「閾値」といいます。
例えば本人拒否率をうんと低い位置にとったとします。この時他人受入率はうんと高くなります。
どういうことかと言うと、顔認証をよりスムーズにストレスなく本人確認をしてしまうと赤の他人を本人と誤認してしまう、ということです。実際ではスマホの顔認証などがそれに当たります。赤外線を照射するタイプを除いて、スマホの顔認証は本人拒否率を低くすることがセオリーです。そうすることによってストレスなくロックを解除できるようになります。よく兄弟でスマホロックが解除されてしまったなどと聞きますが、もともとそういう風に設定しているわけです。もしスマホの顔認証に於いて他人受入率を下げようとメーカーが閾値を設定すると本人拒否率は上がってしまい、本人でも解除されたりされなかったりしてしまいます。これでは消費者に受け入れられませんね。ですからモノによってどこに閾値を定めるかは違うのです。
また空港の顔認証の場合、他人受入率が高いと犯罪につながる恐れもあります。ですので他人受入率を低くするのですが、そうすると反対に本人拒否率は上がってしまい、空港で長い行列が出来てしまいます。ですのでちょうどよい交差ポイントを探し(上の図だとピンクの丸がそれに当たります)、さらにパスポートなどで保険をかけておくのです。こうした「保険をかける」手法の一つとしてマルチモーダル認証があります。(注:本来のマルチモーダルは複数の生体認証を掛け合わせることを指しますが分かりやすくマルチモーダルと使いました)
詳しくは「本人拒否率と他人受入率について」で解説しておりますのでご参照ください。
作る製品の使用用途や使用範囲
広告のあり方によるのですが、基本的に上で解説したような「○×率」をアピールはしません。分かりにくいからです。ですので「認証率 99% 」などのようにアピールするのですが、メーカーも分かっていてそのような表現にしていると思います。
しかしながら「顔認証のSDKを使って自社で製品にしたい」という場合はどうでしょうか。
一般消費者と違って、必ず本人拒否率や他人受入率が知りたいと思いますが気をつけなければいけないことがあります。先のスマホの例でもそうですが「作る製品の使用用途や使用範囲によって違う」という大前提です。
詳しくは「顔認証システムの選び方」のページに解説を載せましたのでそちらをご参照ください。
結論だけ申し上げると、NISTのFRVTで定められている、
- VisaMC dataset: FNMR of 0.025 or less at FMR=0.0001 OR
- Mugshot dataset: FNMR of 0.025 or less at FMR=0.00001
を必ずしも満たす必要は全くありません。「作る製品の使用用途や使用範囲によって違う」のです。
FRVT についてはこちらのページに紹介いたしました。ご参照ください。
FACE01シリーズは「弱い顔認証」を採用
「顔認証システムの選び方」のページでは
「強い顔認証(大規模顔認証システム)」と
「弱い顔認証(中小規模顔認証システム)」
という言葉が出てきます。
具体的には上記のページをご参照頂くとして結論だけ申し上げると
「空港、ATM 、警察等では強い顔認証を用いる」
「入退室管理、電子カルテなどのセキュリティには弱い顔認証を用いる」
が正解です。
もし入退室管理に「強い顔認証」を求めている、具体的にはNISTのFRVTの基準を満たすSDKを用いるならばオーバースペック過ぎます。つまり入退室管理という限られた使用範囲の顔認証に
- 異なる民族の10年経年変化した顔を正確に区別することが出来る
- 2660万枚のデータベースの中から一瞬で探し当てる(または居ないと判断できる)
- 別々の人物の顔を同じ人物と誤って判別してしまう確率が0.25%以下
という性能を求めていることになります。はたしてその部屋には 2660 万人も入るのですか?その部屋に様々な民族の方が入るのですか?しかも登録写真から10年もたった古いデータを使いまわしてそれでも本人確認が出来るような性能を求めていますか?
具体的に困るのはその費用と初期コストです。「強い顔認証」は多くの計算資源を使いますので通常のパーソナルコンピュータなどでは使えません。高性能 CPU 、高性能 GPU をふんだんに使います。例えば下のような感じです。( NEC サイトより引用)
- CPU :Intel Xeon E5-2670(8C/2.60GHz/20M)×1以上
- メモリ:128GB以上
ちょっと調べてみましたが、最低限のスペックで CPU 単体で 180,814 円が最安です。
本来ならこれよりもっと高性能で値段の高い CPU が必要とされます。
是非「顔認証システムの選び方」と「NIST とは何か、NIST と FRVT」をご覧ください。
一般の使用用途では圧倒的に「弱い顔認証(中小規模顔認証システム)」のシェアが高いのです。
いかがだったでしょうか。
顔認証システムの選択の一助になれば幸いです。
最後にFACE01 GRAPHICSを外プログラムから呼び出したサンプル動画を掲載いたします。どのくらいの正確性があるのかの参考になれば幸いです。
検証環境ですが、AMD Ryzen5 1400 、メモリ16GB 、グラフィックカードNVIDIA GeForce GTX 1660 Tiです。一言で言うと家庭用パソコンです。