VLM 定位、指點與區域描述
把指代表達式繫結到區域;指點任務以點落入區域的命中率評分,而非 IoU;無可指物件的情況單獨計數,而不計作漏檢。
把每一個指代表達式繫結到能回答它的那個區域,並把"無可指物件"當作一個明確的答案,而不是缺失的答案。 定位任務按四個閾值下的 IoU 評分;指點任務則按點落入區域的命中率評分,因為點沒有面積,任何針對它計算的 IoU 都是零。
annotation_schemes:
# grounding_eval 負責短語與區域的繫結,但它自己不繪圖,
# 因此需要一個影像模式並列在旁,負責畫布。
- 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 # box | polygon | mask | point
expressions_field: expressions條目自身攜帶其短語:
{"id": "img1", "image": "/media/img1.jpg",
"expressions": [{"id": "e1", "text": "the man in the red shirt"}]}也可以直接給一個字串列表,此時 id 回退為位置序號——這一點很關鍵,因為之後重排該列表會讓已有標註指向別處。如果資料來源本身有穩定的 id,就應當使用它們。
可執行示例:examples/ai-assisted/grounding-eval/。
指點不是"畫個小框的定位"
Molmo 系列的模型輸出的是點而非框。設定 region_type: point,標註者便可放置一個標記點。
點必須換一種方式評分:點沒有面積,因此任何針對它的 IoU 都是 0。用給框評分的方式給點評分,會把一個指點完全正確的模型報成徹底失敗。點所回答的問題是"它是否在那個東西里面",這是一個命中率。
mean_miss_distance 只在未命中的樣本上計算。若把命中樣本也一併平均,它主要衡量的將是物體有多大,而不是模型偏得有多離譜。
在指點任務上,標註者之間的一致性同樣是一個距離,以歸一化影像單位表示,而不是一個係數。把重疊度量套用到點上會飽和:兩位標註者分別指向同一張圖的對角,得分仍約為 0.86,而任何係數量表都會把它歸入"高度一致"。距離沒有可飽和的上限,並且它被命名為距離,因此不會有人把它當作係數來歸檔。
無可指物件是單獨計數的
以下三種結果彼此分開統計:
- 正確拒答。 該表示式並未指向畫面中存在的任何東西,而標註者也如實指出了。
- 臆造了位置。 為一個並不存在的東西給出了區域。
- 漏掉了確實存在的指稱物件。 東西在那裡,卻沒被找到。
標註者從未作答的表示式會被排除,而不是計作漏檢。若把它計入,被跳過的短語越多、模型看起來就越差,而那說的其實是標註者,不是模型。
區域描述
region_caption 為每個區域增加一段自由文本描述,其一致性通過語義距離計算,而非字串重疊,因為描述同一個物體的兩位標註者,很少會用到相同的實詞。
- annotation_type: region_caption
name: captions
description: "Describe each region you drew."
placeholder: "e.g. a red mug with a chipped handle"
min_length: 10
max_length: 300
agreement_distance: token可執行示例:examples/image/region-captioning/,該示例配置了兩位標註者並啟用了一致性統計。
複核模型的預測
設定 predictions_field 後,條目的預測結果會傳到客戶端,並增加一個裁定控制元件。預測在整條鏈路上都被標記為預測,並且絕不會被併入標註者自己的區域。一條標註者尚未接受的預測,是關於模型的證據;把它摺疊進基準答案,就毀掉了它唯一的用途。