Ref-Adv-s#
Overview#
Ref-Adv-s is the public 1,142-case subset of Ref-Adv, a referring expression comprehension benchmark designed to test whether multimodal large language models can distinguish a target from hard same-category visual distractors instead of relying on grounding shortcuts.
Task Description#
Task Type: Referring expression comprehension / visual grounding
Input: One image and an English referring expression
Output: One or more bounding boxes in JSON, with the first box used for scoring
Domain: COCO and OpenImages scenes containing hard same-category distractors
Key Features#
Contains 1,142 public cases sampled from the 5,000-case Ref-Adv benchmark
Includes human-authored and model-assisted expressions, explicit negation, and at least two distractors per case
Preserves the official
directand chain-of-thought (cot) prompt modesUses the dataset’s single
trainsplit as the evaluation split
Evaluation Notes#
Reports official
Acc@0.5,Acc@0.75, andAcc@0.9metrics from the IoU of the first parsed boxAlso reports
Acc@0.5for the official distractor-count bins2-3,4-6, and>=7Parses the last valid fenced JSON object, or an unfenced JSON value that ends the response, using the official key search order
A failed first parse triggers the official one-turn format-repair prompt; a second failure receives zero accuracy
Set
pred_box_formattoabs_xyxyfor Qwen2.5-VL and tonorm_1000_xyxyfor Qwen3-VL/Qwen3.5;norm_1_xyxyis also supported by the official evaluator
Properties#
Property |
Value |
|---|---|
Benchmark Name |
|
Dataset ID |
|
Paper |
|
Tags |
|
Metrics |
|
Default Shots |
0-shot |
Evaluation Split |
|
Data Statistics#
Metric |
Value |
|---|---|
Total Samples |
1,142 |
Prompt Length (Mean) |
177.67 chars |
Prompt Length (Min/Max) |
136 / 282 chars |
Image Statistics:
Metric |
Value |
|---|---|
Total Images |
1,142 |
Images per Sample |
min: 1, max: 1, mean: 1 |
Resolution Range |
240x320 - 1024x1024 |
Formats |
jpeg |
Sample Example#
Subset: default
{
"input": [
{
"id": "d3a7e578",
"content": [
{
"text": "<image>\nLocate every object that matches the description \"the computer screen that is in the middle vertically of the three stacks\" in the image. Report bbox coordinates in JSON format."
},
{
"image": "[BASE64_IMAGE: jpeg, ~118.1KB]"
}
]
}
],
"target": "[297.0, 345.0, 427.0, 440.0]",
"id": 0,
"group_id": 0,
"metadata": {
"row_idx": 0,
"file_name": "000000547144.jpg",
"image_source": "coco_val2017",
"human_authored": true,
"use_negation": false,
"distractor_count": 5,
"target_box_normalized": [
0.4640625,
0.71875,
0.6671875,
0.9166666666666666
],
"sent_size": [
640,
480
],
"retry_followup_used": false
}
}
Prompt Template#
Prompt Template:
<image>
Locate every object that matches the description "{ref_sentence}" in the image. Report bbox coordinates in JSON format.
Extra Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
|
|
Official prompt mode. Choices: [‘direct’, ‘cot’] |
|
|
|
Coordinate format emitted by the evaluated model. Choices: [‘abs_xyxy’, ‘norm_1000_xyxy’, ‘norm_1_xyxy’] |
Usage#
Using CLI#
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets ref_adv_s \
--limit 10 # Remove this line for formal evaluation
Using Python#
from evalscope import run_task
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='YOUR_MODEL',
api_url='OPENAI_API_COMPAT_URL',
api_key='EMPTY_TOKEN',
datasets=['ref_adv_s'],
dataset_args={
'ref_adv_s': {
# extra_params: {} # uses default extra parameters
}
},
limit=10, # Remove this line for formal evaluation
)
run_task(task_cfg=task_cfg)