各判定の読み方
ブレ判定 Imagick
グレー化して edgeImage をかけた画像の標準偏差を見る。値が閾値未満だとブレと判定する。
「ブレのタイルヒートマップ」を ON にすると、5×5 タイルのどこが原因かを画像上で確認できる。
タイルの色は閾値を境に赤(ブレ)→緑(鮮明)。
救済(rescue)は、背景がボケていても被写体がシャープなら鮮明とみなす仕組み。
peak はスコアをタイル最大値に置き換え、peak_override は
スコアが閾値未満でもブレ扱いにしない。
この指標は実データではブレを分離できていない(ブレ群の中央値 18,917 / ブレ以外群 20,298、
検出 1/30)。ピークが金網などの背景テクスチャに反応する例も確認済み。詳細は README を参照。
SafeSearch Cloud Vision
SafeSearch は学習済みの分類器で、プロンプトを受け付けない。
返るのは画像全体に対する adult / racy / violence / medical / spoof の
likelihood(1〜5)のみで、部位(座標)は取得できない。
調整できるのは下の「判定ルール」=どの項目を合計していくつ以上を NG とするか、だけ。
本番は racy + adult >= 5 のみで、violence / medical / spoof は取得しているのに使っていない
(カード内では破線の下に薄く表示している)。
本番実績で racy 判定 786 件のうち人も NG としたのは 35 件(適合率 4.5%)。
閾値を上げても正検知が同じ勢いで消えるため、式の調整では解決しない。
Gemini
SafeSearch と違い指示文(プロンプト)で挙動が変わり、box_2d で部位も返せる。
NG 理由の分類は目視判定の備考(「パンツ」「後ろがトイレ」「子どもが写っていない」等)から起こしている。
検出枠は主モデルが赤、比較モデルが青。
temperature 0 でも結果は完全に再現しない。同じ写真・同じモデルで判定が変わる例がある。
精度は 1 枚で判断せず、混同行列で母数を確保して比較すること。
判定の順序
本番はブレ判定が先で、ブレ確定なら SafeSearch を呼ばない。
つまり auto_ng_status=4 は「racy でない」ではなく「racy 未評価」。
精度分析で 4 を racy の分母に入れてはいけない。