7つの入力指標、必須条件、一致数による採点、候補がない場合の再比較、同点時のランダム選択を説明します。
顔の検出と動物分類は別の段階です
WhatZooはブラウザ内でMediaPipe Face Landmarkerを使い、顔の478点のランドマークを取得します。このモデルが動物名や性格を予測するわけではありません。その後、アプリに記述された条件を比較して動物を選びます。モデルの読み込みや処理時間は機器と通信環境に依存します。
コードが使う7つの指標
現在のcalculateMetricsはx、y座標を使います。距離はこの2軸のユークリッド距離で、z座標による奥行き分析は行いません。
- 目の傾き:(33番のy − 133番のy + 362番のy − 263番のy)× 100。度数法の角度ではありません。
- 目の間隔比: 33番と362番の距離 ÷ 顔幅。
- 顔の縦横比: 顔の高さ ÷ 顔幅。
- 鼻幅比: 102番と331番の距離 ÷ 顔幅。
- 口幅比: 61番と291番の距離 ÷ 顔幅。
- 顎比: 17番と152番の距離 ÷ 顔の高さ。
- 笑顔フラグ: 0番・17番の平均yから61番・291番の平均yを引いた値が0.01を超えるかを判定します。
顔幅は234番と454番、高さは10番と152番の距離です。比率にしても角度、表情、遮蔽物の影響は消えません。医療用の寸法や検証済みの精度を示すものではありません。
候補を比較する順序
- 各プロファイルの必須条件を確認します。一つの条件に複数の比較が含まれる場合もあります。
- 通過した候補に1点、一致する詳細条件ごとに1点を加えます。詳細条件は現在最大3個です。重み付きや距離に基づく類似度ではありません。
- 必須条件を通過した候補が一つもない場合だけ、全プロファイルを詳細条件の一致数で比較します。低得点だけではこの再比較は実行しません。
- 最高点が同じ候補からMath.randomで一つを選びます。候補がなければ既定のプロファイルを使います。
AとBがそれぞれ必須条件と詳細条件二つを満たすと、両方3点です。それが最高点ならどちらも選ばれ得ます。3点は75%の類似度や性格判定の精度ではありません。
同じ写真でも変わる場合があります
写真が変われば座標や条件の判定が変わります。測定値が同じでも最高点の同点候補があれば動物名が変わることがあります。同じ人に同じ結果を保証しません。ティアはコンテンツの分類で、能力や性格、人の優劣を測りません。
分類のために分析写真や顔座標をサーバーへ送信しません。単独分析では結果の動物IDを統計APIに送る場合があり、通常のウェブ解析は別に動作します。方法論と図鑑で指標や動物ごとの条件を確認できます。