AIの仕組み(顔照合の技術紹介)

当サイトは、顔写真を1枚渡すと、顔立ちの近い女優を約16,422人の中から探します。 その仕組みと、実測で分かった限界を書きます。作った側の視点なので、少し技術寄りです。

全体の流れ

  1. 写真から顔を見つける(顔検出)
  2. 顔を128個の数字に変える(特徴量)
  3. 約1.6万人ぶんの数字と比べる(照合)
  4. 近い順に並べて表示する

この4つはすべて、お使いのブラウザの中で動きます。 モデルはWebAssemblyで動く推論エンジン(ONNX Runtime Web)でブラウザにダウンロードして実行するため、 アップロードした写真がサーバーへ送られることも、保存されることもありません。

1. 顔検出と特徴量

顔検出には、OpenCV Zooで公開されている軽量なモデル「YuNet」を、 顔を数字に変える部分には同じく「SFace」を使っています。 検出した顔は目の位置などをもとに向きと大きさを揃え、112×112ピクセルに切り出して、 SFaceに渡します。出てくるのが、128個の数字の並び(特徴量)です。

同じ人の顔は、近い数字の並びになるように学習されたモデルです。 そのため、2人の顔が似ているかどうかは、2つの数字の並びがどれだけ同じ向きを向いているか (コサイン類似度)で測れます。

2. 約1.6万人との照合

女優側の特徴量は、あらかじめプロフィール画像から計算してあります。 ブラウザはそれをダウンロードし、手元の写真の特徴量と総当たりで比べて、類似度の高い順に並べます。 サーバーに問い合わせる処理はありません。

目・鼻・口・輪郭ごとの「寄り」も出していますが、これは128個の数字を区間に分けて比べる簡易的な方法です。 顔の部位を厳密に切り出して測っているわけではないので、目安として見てください。

類似度の基準値

類似度の数字は、基準を知らないと読めません。そこでプロフィール画像から無作為に選んだ別人4,000組の類似度を測りました。 平均は0.105、標準偏差は0.117、95%の組が0.308以下、最大は0.503でした。 SFaceで同一人物とみなす一般的な目安は0.36前後です。

つまり0.3前後は、別人でもよく出る値です。ここを根拠に「似ている」と並べると、意味のないリストになります。 画面のパーセントはこの分布を踏まえた表示用の換算で、確率ではありません。 診断結果の読み方はAV女優診断のやり方にまとめています。

顔の特徴ランキングの測り方

目の大きさや輪郭といった特徴は、顔のランドマーク(478点)を検出して、顔の幅で割った比率として求めています。 絶対的な長さにすると画像のサイズに左右されるため、すべて顔幅で正規化します。 そのうえで、結果の信頼性のために二つの処理を入れました。

  • 横向き・うつむき・目を閉じた写真を除く。比率が正しく測れない写真は、エラーにならずに間違った値を返します。この条件を通ったのは全体の約半数でした
  • 笑顔の影響を取り除く。笑うと目が細く、唇が薄く見えます。笑顔の強さを説明変数にした回帰の残差を使っています

結果は顔の特徴別ランキングと顔の特徴で探すで見られます。

プロフィール写真と、作品の中の顔

プロフィール写真は、加工や撮影時の条件で、作品の中の印象と違うことがあります。 そこで出演作品のサンプル画像からも顔を抜き出して比べました。

ここに落とし穴がありました。サンプル画像に顔が1つだけ写っていても、 実測ではその62.7%が本人ではなかったのです。共演者が写っているためです。 そのため、抽出した顔をそのまま本人とは扱わず、プロフィール画像との照合で本人と確認できたものだけを使っています。

作中の顔を15枚以上確認できた1,124人を、プロフィール画像の印象との揃い方で並べています。 揃っている上位の例です。

代表画像と作中の顔の印象が揃っているランキング/印象差が大きいランキング

限界

  • 測っているのは写真です。加工、化粧の流行、撮影された時代の影響を受けます。デビュー年代によって、同じ特徴の平均値が20ポイント以上動く例もありました
  • 顔が似ていることと、雰囲気や体つきが似ていることは別です
  • 類似度が高くても、同じ人だという保証にはなりません。娯楽として使うものです

当サイトは個人が運営する非公式のサイトで、FANZA/DMM.comとは関係がありません。 データの出典や運営の考え方は当サイトについてとよくある質問に書いています。

あわせて読みたい

WEB SERVICE BY FANZA