3大クラウドが提供する学習済みAIの代表格「顔認識AI」の実力検証として、今回は別人2人の画像を入力し、別人だと正しく識別できるかどうかを試す。似ているが人が見れば明らかに別人だと分かる女性2人の識別に加え、一卵性双生児の姉妹という、人間でも見分けが難しい識別を行う。
利用したサービスは前回と同様に、AWSが「Amazon Rekognition」、Microsoft Azureは「Face API」。GCPの「Google Cloud Vision」は顔を検出するものの個人を特定する機能はないので、本検証の対象から外している。
検証では、正面を向いた基本画像と、比較対象の別人の画像をAWSとAzureの顔認識AIサイトにそれぞれアップロードし判定結果を得た。AWS、Azureともに同一人物である確からしさをパーセンテージ(百分率)で表示する。この確からしさを、AWSは「類似度(Similarity)」、Azureでは「信頼度(Confidence)」と呼ぶ。
AWS、Azureとも、同一人物か別人かという判定もする。
AWSは類似度を基に判定していると推察されるが、判定基準を公開していない。別人と判定した場合のみ、AWSの顔認識AIのサイト上では類似度の数値を表示しない。
Azureでは、信頼度50%以上であれば同一人物という判定を提示する。同一人物という判定か別人という判定かにかかわらず、信頼度を表示する。なお信頼度50%以上という判定基準はVerifyモードのデフォルトであり、モードによって基準値が異なり、ユーザーが指定することも可能だ。
似ているが他人の2人は、AWS、Azureとも正しく別人と判定
まず、基本画像(左)と、人が見れば別人だと明らかに分かる写真(右)の比較を行った。AWS、Azureとも、二つの画像に写った人物を別人と正しく判定した。Azureの信頼度は34%だった。
AWS、Azureとも双子姉妹を同一人物と誤って判定
次に一卵性双生児の姉妹をモデルにして、基本画像(姉の春花さん)と、(妹の春菜さん)の正面写真を比較した。
AWSは、類似度99%で同一人物という誤った判定。Azureも、信頼度82%で同一人物という誤った判定だった。Azureのほうが確からしさの数値(信頼度)が低い分まだましであるかのように思うかもしれないが、そうではない。AzureのAIサービスを使ったシステム開発に携わる、FIXER 研究開発部 データサイエンティストの山本和貴氏によると「Face APIで同一人物である確実性が高いとみなせる信頼度の目安は70%」であり、82%は「確実に同一人物」という判定だと解釈するのが一般的だ。
同一人物か否かは、目や口、鼻の位置などを基にしているとみられるが、一卵性双生児ぐらい似ていると現状のAWS、Azureの顔認識AIでは別人であると正しく判定できない。
一卵性双生児の姉妹の写真を使い、条件を変えた検証も行った。姉の春花さんが正面を向いた基本画像と、姉妹2人が並んで正面を向いた比較対象画像を入力したら、同一人物である確からしさに差が生じるかどうかを確かめる。
AWSで試したところ、姉妹2人が並んだ画像に写った姉の春花さんは、基本画像の春花さんと類似度100%で正しく同一人物と正しく判定した。姉妹2人が並んだ画像に写った妹の春菜さんも、基本画像の春花さんと同一人物と判定したが、類似度は97%だった。差は3ポイントだが、2人の違いを認識しているといえる。
Azureはどうか。結果は、姉の春花さんの基本画像に対して、比較対象の画像は2人が写っているにもかかわらず、信頼度94%で同一人物という判定1つのみが表示された。 FIXERの山本氏によれば、Face APIのサイトを使ったので簡易に結果が表示されたのであり、APIを直接利用すれば詳細な判定結果を得られる。
山本氏の協力を得てログを確認したところ、Face APIの内部では2人を分けてそれぞれ判定していた。類似度は姉の春花さんが94%、妹の春菜さんは81%であり、13ポイントの差が付いていた。AWSでは3ポイントの差だったので、Azureの顔認証AIが別人を判定する精度はAWSより高いといえる。