顔認証入門 #4 FAR・FRR・EER

f:id:takahashi51:20190323211007p:plain:w280

 『この顔認証システムの顔認証の精度は○○%』なんていう宣伝を顔認証ベンダーはよくするようになりました。とくに、ニュース記事やブログで顔認証が取り上げられたとき、詳細な説明をすっ飛ばして『精度は○○%』と掲載する傾向があります。それもそのはずで、懇切丁寧に書いていたら紙面が足りませんから…。

 さて、前回に引き続き、顔認証の用語について解説していきます。今回は、顔認証の性能を見る指標である『FAR』『FRR』『EER』について説明します。本シリーズで解説する中でも最重要の概念ですので、例を挙げながら丁寧に進めます。

認証失敗の要因

f:id:takahashi51:20190329005025p:plain:w280
顔認証での認証失敗はゼロにはなりません

 他の個人認証(物理認証・知識認証)と異なり、生体認証は認証失敗する場合もあるのが特徴です。認証失敗のパターンは大きく3種類に分けられます。一つ目は、登録失敗です。これは、顔認証システムに顔を登録しようとしたけどできなかった、という失敗です。システムが顔を検出できなかったり、プログラムがエラーを吐いてしまったりすることが原因となります。二つ目は、別人同士を本人だと間違えてしまう失敗です*1。三つめは、本人同士を別人だと間違えてしまう失敗です*2

 さて、ここで問題です。『別人同士を本人だと間違えてしまう失敗』と『本人同士を別人だと間違えてしまう失敗』はどちらのほうがリスクが高いでしょうか?正解は、『別人同士を本人だと間違えてしまう失敗』です。犯罪捜査では誤認逮捕、入国審査では密入国となってしまう…と考えれば、お分かりいただけるのではないでしょうか。

FARとFRRとEER

f:id:takahashi51:20190329011946p:plain:w280
FARとFRRを理解することは、顔認証の正しい評価には必須です

 今回は、生体認証の性能評価指標の中でも1:1認証の性能を測る指標にフォーカスします。1:N認証の性能評価指標については次回解説します。

 まず、登録失敗に関する評価指標はFTE(Fairue-to-enroll rate: 登録失敗率)です。これはそのままの意味で、内部エラー等が原因で登録失敗した数を登録試行回数で割った割合です。FTEは顔認証エンジンの良し悪しというより、エンジンの仕様に依るところが大きいです。

 次に、『別人同士を本人だと間違えてしまう失敗』に関する評価指標はFAR(False accept rate: 他人受入率*3)です。1:1認証において、登録された人物でない他人を、誤って本人と判定した割合を意味します。

 最後に、『本人同士を他人だと間違えてしまう失敗』に関する評価指標はFRR(False reject rate: 本人棄却率*4)です。1:1認証において、登録された人物である本人を、誤って他人と判定した割合を意味します。

 なお、照合スコアの閾値を高くすると、認証の条件を厳しくしたことになります。したがって、FARが減少しますがFRRは増加します。逆に、照合スコアの閾値を低くすると、認証の条件を緩くしたことになります。したがって、FARが増加しますがFRRは減少します。このように、FARとFRRは閾値を変化させることでトレードオフが発生します。ちょうどFARとFRRが同じになるように閾値を決定したとき、それをEER(Equal error rate: 等価エラー率)と呼びます。

性能評価の例

 言葉だけ聞いても、あまりイメージが沸かないのではないでしょうか。そこで、簡単な例で説明します。

 ある顔認証エンジンを性能評価テストすることを考えます。様々な人物の顔画像から『本人同士の顔画像のペア』と『他人同士の顔画像のペア』を各10,000ずつ作成して、それぞれ照合スコアを計算しました。照合スコアは0~1の数値で、登録失敗はありませんでした。このときの照合スコアの分布は、次の表のようになりました。

表1 顔認証の結果の例

照合スコアの範囲 本人ペアの頻度 他人ペアの頻度
0.0 \leq x < 0.1 0 7000
0.1 \leq x < 0.2 1 2000
0.2 \leq x < 0.3 2 700
0.3 \leq x < 0.4 7 200
0.4 \leq x < 0.5 20 70
0.5 \leq x < 0.6 70 20
0.6 \leq x < 0.7 200 7
0.7 \leq x < 0.8 700 2
0.8 \leq x < 0.9 2000 1
0.9 \leq x \leq 1.0 7000 0

 本人ペアの照合スコアは高い値に集中していて、逆に、他人ペアの照合スコアは低い値に集中していることが分かります。閾値を0.5とすると、他人ペアの正解は9,970回、不正解は30回となります。また、本人ペアも同様に、正解は9,970回、不正解は30回となっていますね。したがって、FARもFRRも0.3%(=30/10,000)となり、EERが0.3%の顔認証エンジンであることが分かりました。

 閾値を0から1まで変化させて、FARとFRRがどう変化するかを調べると、次の図のようになります。

f:id:takahashi51:20190327022545p:plain
図1 FARとFRRのトレードオフ

 閾値が0.5のとき、FARとFRRが交差していますね。そしてそのとき、20,000回の認証テストで他人受入と本人棄却の合計が60回で最小となっています。

 しかし、前にも述べた通り、顔認証システムを安心して運用するためには、できる限りFARが低くなるように閾値を決定すべきです。この例では、閾値を0.6にすればFARを0.1%、閾値を0.8にすればFARを0.01%にまで下げることができそうです(その代わり、FRRはどんどん上昇します)。この閾値をどう決めるかは、ケースバイケースになります。

 ちなみに、顔認証システムはそれぞれ照合スコアの出方が異なります。複数の顔認証エンジンで1:1認証の性能比較を行う場合には、横軸をFAR、縦軸をFRRとするDET曲線(Detection Error Tradeoff)を描きます。参考までに、上記の例のDET曲線は、下の図のようになります(横軸が対数軸になっていることに気を付けてください)。

f:id:takahashi51:20190329024459p:plain
図2 1:1認証のDET曲線の例

まとめ

 本記事のまとめは以下の通りです。今回もおつかれさまでした。

・生体認証の認証失敗には、登録失敗・他人受入・本人棄却の3種類がある
・1:1認証の性能評価指標として、FAR・FRR・EERがある
・FARとFRRはトレードオフ関係があり、FARが低くなるように閾値を決めるべし

*1:機械学習では、Fasle Positive(FP)と呼ばれます

*2:機械学習では、Fasle Negative(FN)と呼ばれます

*3:JISでは、誤受入率と定められています

*4:JISでは、誤拒否率と定められています