Skip to content

VLM のグラウンディングとポインティングを評価する方法

グラウンディングは複数閾値の IoU で、ポインティングは領域内ヒット率で採点し、グラウンド不能はそれ自体を一つの答えとして数える。点をボックスのように採点すると必ず失敗する理由。

グラウンディングの評価は、モデルが正しい場所に領域を置いたかを問います。ポインティングの評価は、正しい対象の上に点を置いたかを問います。 両者は別の測度を必要とし、ポインティングにグラウンディングの測度を使うと、完璧に指し示しているモデルが全面的な失敗として報告されます。

グラウンディング:複数の閾値を報告する

グラウンディングは人間の領域に対する IoU で、0.25、0.5、0.75、0.9 の各閾値で採点してください。

単一の閾値では「ほぼ正しい」と「まるで違う」を区別できず、ちょうど 0.5 を超えるよう調整されたモデルは、本当に精密なモデルと見分けがつきません。閾値をまたいだ曲線の形こそが所見です。

ポインティングは小さなボックスのグラウンディングではない

Molmo 系のモデルは点を出力します。点には面積がないので、点に対する IoU はすべて 0 になります。 ポインティングのモデルをグラウンディングのモデルと同じように採点すれば、どれだけうまく指し示していようと完全な失敗と報告されます。

点が答えているのは「それは対象の中にあるか」なので、測度はヒット率、すなわち point_in_region です。

mean_miss_distance外れたものだけを対象に報告してください。当たりも含めて平均すると、モデルがどれだけ外したかではなく、対象がどれだけ大きいかを測ることになります。

点に対するアノテーター間一致度は距離である

同じ構造上の問題がアノテーター間にも現れます。重なりに基づく測度を点に適用すると飽和します。同じ画像の反対の隅を指している二人のアノテーターでもおよそ 0.86 になり、どの係数の尺度でも強い一致に区分されてしまいます。

そこで、正規化した画像座標でのアノテーターの点同士の平均距離と中央値距離を報告してください。0 が完全一致です。距離には飽和する天井がなく、距離と呼ぶことで誰もそれを係数として区分しなくなります。

グラウンド不能は三つの異なる誤り

これらは分けて追跡してください。

結果意味
正しく辞退したその表現は存在しないものを指しており、モデルもそう述べた
位置を幻覚したそこにないものに対して領域を与えた
存在する指示対象を見落としたそこにあったのに見つけられなかった

これらを一つの「誤り」にまとめると、過剰に主張するモデルと過少に主張するモデルの違いが隠れます。両者は修正の方向が正反対です。

アノテーターが一度も答えなかった表現は、失敗として数えるのではなく除外します。 数えてしまうと、飛ばされた語句が多いほどモデルが悪く見えることになり、それはモデルではなくアノテーターについての言明です。

領域キャプションには意味的な距離が要る

同じ対象を記述する二人のアノテーターが内容語を共有することはめったにありません。「取っ手の欠けた赤いマグカップ」と「左にある傷んだカップ」は同じ領域を記述していますが、重なる内容語はありません。

キャプションの一致度は文字列の重なりではなく意味的な距離を通して計算してください。Krippendorff's α は任意の距離関数を受け付けるので、距離さえ正しければ同じ係数の仕組みがそのまま使えます。

設定

yaml
annotation_schemes:
  # grounding_eval owns the binding but does not draw, so an image schema
  # supplies the canvas.
  - annotation_type: image_annotation
    name: region
    description: "Draw the region for the selected phrase."
    source_field: image
    tools: [bbox, polygon, landmark]
    labels: [{name: referent, color: "#6e56cf"}]
 
  - annotation_type: grounding_eval
    name: grounding
    description: "What does each phrase refer to?"
    region_type: box          # use `point` for pointing evaluation
    expressions_field: expressions

項目は安定した ID とともに語句を持ちます。

json
{"id": "img1", "image": "/media/img1.jpg",
 "expressions": [{"id": "e1", "text": "the man in the red shirt"}]}

素の文字列リストでも動きますが、その場合 ID は位置にフォールバックするため、リストを並べ替えると既存のアノテーションが別の対象を指すようになります。

動作する例:RefCOCOPixMo-Points のショーケース設計。

モデルの予測をレビューする

正解データを集めるのではなくモデルを監査しているなら、予測は最後まで予測としてラベル付けしたままにしてください。アノテーターが受け入れていない予測はモデルに関する証拠であり、人間の領域に混ぜ込むと、それが存在する唯一の意味が失われます。

参考文献