NG写真 判定ビューア

Vision SafeSearch / ブレ判定 / Gemini の判定根拠を可視化する

写真一覧

左の一覧から写真を選択してください。

設定

判定パラメータの既定値は本番環境と同じです。変更すると A/B 比較ができます。

各判定の読み方

ブレ判定 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 の分母に入れてはいけない。

環境

ImageMagick のバージョンが本番サーバーと違うと edgeImage の出力が変わり、 ブレのスコアがずれる可能性がある。

SafeSearch の判定ルール

Cloud Vision SafeSearch は学習済みの分類器で、プロンプトを受け付けません。 画像を渡すと 5 項目の likelihood(1〜5)が返るだけなので、調整できるのは どの項目を合計して、いくつ以上を NG とするかだけです。

判定式:

本番は racy + adult >= 5 のみで、violence / medical / spoof は取得しているのに使っていません。

※ Gemini モデルは画面上部のツールバーから切り替えます(切り替えは即時反映)。

Gemini プロンプト SafeSearch と違い Gemini は指示文で挙動が変わります。NG 理由の分類は 目視判定の備考(「パンツ」「後ろがトイレ」「子どもが写っていない」等)から起こしています。

混同行列(目視判定 × 判定結果)

ログイン情報

パスワードの変更

ユーザー管理

招待した利用者は「一般」として追加され、写真・判定ジョブの全機能を使えます。ユーザー管理だけが管理者専用です。 権限は一覧の選択欄からいつでも変更できます。オーナーは変更・無効化・削除できません。

判定ジョブ

ツールバーの「表示中を一括判定」は絞り込んだ写真をこの画面で順番に判定します(数十〜数百枚向け)。 数千枚を回す場合は、ここから非同期ジョブとして投入するとブラウザを閉じても継続します。