スマホの顔認証ってどうなってるの? 似ている人が突破できたりできなかったり

AndroidやWindowsで先行していた顔認証システムがついにiPhoneにも搭載されるようになり、これでほぼ全てのスマートフォンに顔認証システムが導入されたことになりました。iPhoneに搭載されている顔認証は従来のものより高性能だということですが、双子が認証を突破した事例性別の違う子供が突破してしまった事例が話題になっています。

「おいおい、顔認証って大丈夫なのか?」と心配になってしまうところですが、優れているはずの顔認証システムでどうしてこんな現象が起こるのか、誰にでも分かるようにざっくりと解説していきます。

顔認証では、顔の全てを細かく見ているわけじゃない

まず、顔認証はどうやって顔を認識しているのかをご説明しましょう。顔認証と言えば人工知能技術を応用した技術であり、さぞかし優れたテクノロジーが使われているものだと思いがちですが、仕組みは意外とシンプルです。

(顔認証の特徴点の一例_PetaPixel)

認証システムによって多少の仕組みの違いはありますが、基本的には上の写真のように目・鼻・眉・口・輪郭などの顔の特徴となるポイントを抽出し、それを繋いで人の顔を識別しています。つまり、この顔の特徴が似ていれば顔認証は突破できてしまうということです。

「それだと簡単すぎない?」と思うかもしれませんが、実はこれが本当に完璧にできていた場合は指紋認証以上の精度を達成できます。というのも、指紋の認証でも指紋の模様の中から特徴的な部分を見つけだし、それを使って認証しているからです。

どちらの認証方式でも顔や指紋の中にある全ての情報を正確に比較しているわけではないので、認証の正確性を分けるのは特徴の種類や数となります。指紋は平均すると100個前後の特徴点が存在し、12個が一致すれば同一とみなすのが国際的なルールです。少ないように思われますが、これは確率的には1兆分の1です。

一方、顔になると特徴点は多ければ数百から数千に及ぶこともあります。特徴点の一致に関する国際的な基準はありませんので、やろうと思えば指紋より高い精度で認証することが可能です。

ただ、全ての特徴点を抽出するのは時間がかかりますし、指紋が100個程度の特徴点で十分な精度を達成していることから分かるように、特徴点は50から100個程度で十分です。実際には、上の写真のように50個前後に抑えています。

顔認証では、こうして抽出した特徴点の全てを見ているわけではありませんが、特徴がほんの数個一致する可能性だけでも数百万分の1と極めて低く、認証システムの精度としては十分です。双子や親子の場合には特徴点が一致しやすくなりますが、それでも顔認証を突破するのは容易ではありません。

顔認証システムの鍵を握るのは「特徴」の見つけ方

顔の特徴点を使って顔認証をしていることはわかりました。話を聞くと簡単そうに聞こえますが、これがどうして難しかったのでしょうか。実は、顔認証において難しかったのは特徴点を見つける方法でした。

上の写真では、特徴となるポイントに黄色い点が付けられていますが、この「点」を見つけるのがコンピューターにとっては難問だったのです。

指紋の場合は突き詰めれば線と線の繋がりなので特徴点を見つけるのは簡単です。しかし、顔の場合は形状が複雑であり、何を特徴として見分ければ良いのかをコンピューターの教えるのが困難でした。そこで、ディープラーニングなどの機械学習技術が必要になったわけです。

機械学習では、ひたすら顔の特徴を学習しています。目の形、鼻の形、口の形、輪郭などを見分けています。繰り返し繰り返し学習し、正しい特徴点を見つけられるようになって初めて、その特徴点を使って顔と顔の比較ができるのです。

特徴を上手く見つけられないと精度が下がる

正しい特徴点を見つけられない場合、「顔の輪郭が実際の輪郭とずれている」「目の形が実際の目の形と違う」などが起こり、顔認証の精度は下がります。正しい特徴点を見つけられない状態で認証を行なうと、「本当は特徴が一致しているのに認証できなくなる」か、「特徴の不一致を無視して誤って認証してしまう」という可能性が高まります。

認証システムで最も困るのは「似ている人を認証してしまう」ことよりも「本人を認証しない」ことなので、多くの場合は精度の低い特徴は無視し、精度の高い特徴を使って認証を進めようとします。結果として似ている人が誤って認証される可能性が高まりますが、代わりに本人を確実に認証できるようになるので、実用性は高くなります。

そのあたりのバランスが難しいのですが、特徴抽出の精度を上げれば問題ありません。そして、精度を上げるために必要なことは学習です。学習に必要なのは様々な顔の情報ですので、顔の情報を集めてくるわけですが、これに偏りが合った場合に大きな問題が起こります。

バイアスの問題については、別の記事で詳しく解説しています。顔認証のケースでは、白人の顔の情報ばかりを教えればアジア人や黒人の特徴を見分けにくくなりますし、アジア人の顔ばかり学習させれば白人の顔を見分けにくくなるということです。

ここで、最初に挙げた事例を見てみると面白いことが分かります。

双子が認証を突破した事例では、海外では1000人中32人しか解除できなかった認証を日本人の双子が8人中7人突破しており、性別の違う子供が突破してしまった事例では、中東系の親子でした。

これだけでは断定的なことは言えませんが、学習に使ったデータに偏りが合った可能性は十分にあるでしょう。iPhoneのユーザーにアジア系はかなりいるはずですが、Appleはユーザーデータを機械学習に利用しない方針だったので、アジア系の顔の学習データが不十分だったのかもしれません。

認証システムは過信しないこと

認証技術そのものは確立されており、多数の特徴点を認証に活用することで、精度を高めようと思えばまだまだ高められます。しかし、スマホやPCに導入されるレベルのものでは今のところ限界があるのは仕方ありません。

認証に使っている特徴点が少ない場合、以下の動画のように雑なマスクを使って認証を突破することが可能です。

目・鼻・口だけを特徴点として使い、輪郭などは見ていないことがわかります。

スマホの認証にはスピードが大切なので、あまり細かく特徴点を見ることができません。重要な部分だけをチェックすれば十分だと判断したのでしょう。実用レベルには達していますが、過信するのは禁物です。

重要な情報が含まれるアプリには別のロックをかけるなど、二重・三重の対策は必要不可欠でしょう。