Spaces:
Paused
Paused
Delete eval
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- eval/__init__.py +0 -2
- eval/gen/gen_images_mp.py +0 -238
- eval/gen/gen_images_mp_wise.py +0 -365
- eval/gen/geneval/evaluation/download_models.sh +0 -20
- eval/gen/geneval/evaluation/evaluate_images.py +0 -304
- eval/gen/geneval/evaluation/evaluate_images_mp.py +0 -332
- eval/gen/geneval/evaluation/object_names.txt +0 -80
- eval/gen/geneval/evaluation/summary_scores.py +0 -64
- eval/gen/geneval/prompts/create_prompts.py +0 -194
- eval/gen/geneval/prompts/evaluation_metadata.jsonl +0 -553
- eval/gen/geneval/prompts/evaluation_metadata_long.jsonl +0 -0
- eval/gen/geneval/prompts/generation_prompts.txt +0 -553
- eval/gen/geneval/prompts/object_names.txt +0 -80
- eval/gen/wise/cal_score.py +0 -162
- eval/gen/wise/final_data.json +0 -0
- eval/gen/wise/gpt_eval_mp.py +0 -268
- eval/vlm/__init__.py +0 -2
- eval/vlm/eval/mathvista/calculate_score.py +0 -271
- eval/vlm/eval/mathvista/evaluate_mathvista.py +0 -210
- eval/vlm/eval/mathvista/extract_answer.py +0 -160
- eval/vlm/eval/mathvista/extract_answer_mp.py +0 -161
- eval/vlm/eval/mathvista/prompts/ext_ans.py +0 -51
- eval/vlm/eval/mathvista/utilities.py +0 -229
- eval/vlm/eval/mmbench/evaluate_mmbench.py +0 -283
- eval/vlm/eval/mme/Your_Results/OCR.txt +0 -40
- eval/vlm/eval/mme/Your_Results/artwork.txt +0 -400
- eval/vlm/eval/mme/Your_Results/celebrity.txt +0 -340
- eval/vlm/eval/mme/Your_Results/code_reasoning.txt +0 -40
- eval/vlm/eval/mme/Your_Results/color.txt +0 -60
- eval/vlm/eval/mme/Your_Results/commonsense_reasoning.txt +0 -140
- eval/vlm/eval/mme/Your_Results/count.txt +0 -60
- eval/vlm/eval/mme/Your_Results/existence.txt +0 -60
- eval/vlm/eval/mme/Your_Results/landmark.txt +0 -400
- eval/vlm/eval/mme/Your_Results/numerical_calculation.txt +0 -40
- eval/vlm/eval/mme/Your_Results/position.txt +0 -60
- eval/vlm/eval/mme/Your_Results/posters.txt +0 -294
- eval/vlm/eval/mme/Your_Results/scene.txt +0 -400
- eval/vlm/eval/mme/Your_Results/text_translation.txt +0 -40
- eval/vlm/eval/mme/calculation.py +0 -184
- eval/vlm/eval/mme/eval.py +0 -74
- eval/vlm/eval/mmmu/answer_dict_val.json +0 -0
- eval/vlm/eval/mmmu/data_utils.py +0 -187
- eval/vlm/eval/mmmu/eval_utils.py +0 -275
- eval/vlm/eval/mmmu/evaluate_mmmu.py +0 -272
- eval/vlm/eval/mmmu/evaluate_mmmu_cot.py +0 -252
- eval/vlm/eval/mmmu/main_eval_only.py +0 -113
- eval/vlm/eval/mmvet/evaluate_mmvet.py +0 -112
- eval/vlm/eval/mmvp/evaluate_mmvp.py +0 -258
- eval/vlm/eval/pope/eval_pope.py +0 -120
- eval/vlm/eval/pope/evaluate_pope.py +0 -231
eval/__init__.py
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
# Copyright 2025 Bytedance Ltd. and/or its affiliates.
|
2 |
-
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
eval/gen/gen_images_mp.py
DELETED
@@ -1,238 +0,0 @@
|
|
1 |
-
# Copyright 2025 Bytedance Ltd. and/or its affiliates.
|
2 |
-
# SPDX-License-Identifier: Apache-2.0
|
3 |
-
|
4 |
-
import os
|
5 |
-
import json
|
6 |
-
import argparse
|
7 |
-
from safetensors.torch import load_file
|
8 |
-
|
9 |
-
import torch
|
10 |
-
import torch.distributed as dist
|
11 |
-
from data.data_utils import add_special_tokens
|
12 |
-
from modeling.bagel import (
|
13 |
-
BagelConfig, Bagel, Qwen2Config, Qwen2ForCausalLM, SiglipVisionConfig, SiglipVisionModel
|
14 |
-
)
|
15 |
-
from modeling.qwen2 import Qwen2Tokenizer
|
16 |
-
from modeling.autoencoder import load_ae
|
17 |
-
|
18 |
-
from PIL import Image
|
19 |
-
from modeling.bagel.qwen2_navit import NaiveCache
|
20 |
-
|
21 |
-
|
22 |
-
def move_generation_input_to_device(generation_input, device):
|
23 |
-
# Utility to move all tensors in generation_input to device
|
24 |
-
for k, v in generation_input.items():
|
25 |
-
if isinstance(v, torch.Tensor):
|
26 |
-
generation_input[k] = v.to(device)
|
27 |
-
return generation_input
|
28 |
-
|
29 |
-
|
30 |
-
def setup_distributed():
|
31 |
-
dist.init_process_group(backend="nccl")
|
32 |
-
torch.cuda.set_device(int(os.environ["LOCAL_RANK"]))
|
33 |
-
|
34 |
-
|
35 |
-
def generate_image(prompt, num_timesteps=50, cfg_scale=10.0, cfg_interval=[0, 1.0], cfg_renorm_min=0., timestep_shift=1.0, num_images=4, resolution=512, device=None): # 添加device参数
|
36 |
-
past_key_values = NaiveCache(gen_model.config.llm_config.num_hidden_layers)
|
37 |
-
newlens = [0] * num_images
|
38 |
-
new_rope = [0] * num_images
|
39 |
-
|
40 |
-
generation_input, newlens, new_rope = gen_model.prepare_prompts(
|
41 |
-
curr_kvlens=newlens,
|
42 |
-
curr_rope=new_rope,
|
43 |
-
prompts=[prompt] * num_images,
|
44 |
-
tokenizer=tokenizer,
|
45 |
-
new_token_ids=new_token_ids,
|
46 |
-
)
|
47 |
-
generation_input = move_generation_input_to_device(generation_input, device)
|
48 |
-
|
49 |
-
with torch.no_grad():
|
50 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.float16):
|
51 |
-
past_key_values = gen_model.forward_cache_update_text(past_key_values, **generation_input)
|
52 |
-
|
53 |
-
generation_input = gen_model.prepare_vae_latent(
|
54 |
-
curr_kvlens=newlens,
|
55 |
-
curr_rope=new_rope,
|
56 |
-
image_sizes=[(resolution, resolution)] * num_images,
|
57 |
-
new_token_ids=new_token_ids,
|
58 |
-
)
|
59 |
-
generation_input = move_generation_input_to_device(generation_input, device)
|
60 |
-
|
61 |
-
cfg_past_key_values = NaiveCache(gen_model.config.llm_config.num_hidden_layers)
|
62 |
-
cfg_newlens = [0] * num_images
|
63 |
-
cfg_new_rope = [0] * num_images
|
64 |
-
|
65 |
-
generation_input_cfg = model.prepare_vae_latent_cfg(
|
66 |
-
curr_kvlens=cfg_newlens,
|
67 |
-
curr_rope=cfg_new_rope,
|
68 |
-
image_sizes=[(resolution, resolution)] * num_images,
|
69 |
-
)
|
70 |
-
generation_input_cfg = move_generation_input_to_device(generation_input_cfg, device)
|
71 |
-
|
72 |
-
with torch.no_grad():
|
73 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.bfloat16):
|
74 |
-
unpacked_latent = gen_model.generate_image(
|
75 |
-
past_key_values=past_key_values,
|
76 |
-
num_timesteps=num_timesteps,
|
77 |
-
cfg_text_scale=cfg_scale,
|
78 |
-
cfg_interval=cfg_interval,
|
79 |
-
cfg_renorm_min=cfg_renorm_min,
|
80 |
-
timestep_shift=timestep_shift,
|
81 |
-
cfg_text_past_key_values=cfg_past_key_values,
|
82 |
-
cfg_text_packed_position_ids=generation_input_cfg["cfg_packed_position_ids"],
|
83 |
-
cfg_text_key_values_lens=generation_input_cfg["cfg_key_values_lens"],
|
84 |
-
cfg_text_packed_query_indexes=generation_input_cfg["cfg_packed_query_indexes"],
|
85 |
-
cfg_text_packed_key_value_indexes=generation_input_cfg["cfg_packed_key_value_indexes"],
|
86 |
-
**generation_input,
|
87 |
-
)
|
88 |
-
|
89 |
-
image_list = []
|
90 |
-
for latent in unpacked_latent:
|
91 |
-
latent = latent.reshape(1, resolution//16, resolution//16, 2, 2, 16)
|
92 |
-
latent = torch.einsum("nhwpqc->nchpwq", latent)
|
93 |
-
latent = latent.reshape(1, 16, resolution//8, resolution//8)
|
94 |
-
image = vae_model.decode(latent.to(device))
|
95 |
-
tmpimage = ((image * 0.5 + 0.5).clamp(0, 1)[0].permute(1, 2, 0) * 255).to(torch.uint8).cpu().numpy()
|
96 |
-
tmpimage = Image.fromarray(tmpimage)
|
97 |
-
image_list.append(tmpimage)
|
98 |
-
|
99 |
-
return image_list
|
100 |
-
|
101 |
-
|
102 |
-
if __name__ == "__main__":
|
103 |
-
parser = argparse.ArgumentParser(description="Generate images using Bagel model.")
|
104 |
-
parser.add_argument("--output_dir", type=str, required=True, help="Directory to save the generated images.")
|
105 |
-
parser.add_argument("--metadata_file", type=str, required=True, help="JSONL file containing lines of metadata for each prompt.")
|
106 |
-
parser.add_argument("--num_images", type=int, default=4)
|
107 |
-
parser.add_argument("--batch_size", type=int, default=4)
|
108 |
-
parser.add_argument("--cfg_scale", type=float, default=4)
|
109 |
-
parser.add_argument("--resolution", type=int, default=1024)
|
110 |
-
parser.add_argument("--max_latent_size", type=int, default=64)
|
111 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
112 |
-
args = parser.parse_args()
|
113 |
-
|
114 |
-
seed = 42
|
115 |
-
if seed is not None:
|
116 |
-
import random
|
117 |
-
import numpy as np
|
118 |
-
random.seed(seed)
|
119 |
-
np.random.seed(seed)
|
120 |
-
torch.manual_seed(seed)
|
121 |
-
if torch.cuda.is_available():
|
122 |
-
torch.cuda.manual_seed(seed)
|
123 |
-
torch.cuda.manual_seed_all(seed)
|
124 |
-
torch.backends.cudnn.deterministic = True
|
125 |
-
torch.backends.cudnn.benchmark = False
|
126 |
-
|
127 |
-
setup_distributed()
|
128 |
-
rank = dist.get_rank()
|
129 |
-
world_size = dist.get_world_size()
|
130 |
-
device = f"cuda:{rank}"
|
131 |
-
|
132 |
-
output_dir = args.output_dir
|
133 |
-
os.makedirs(output_dir, exist_ok=True)
|
134 |
-
if rank == 0:
|
135 |
-
print(f"Output images are saved in {output_dir}")
|
136 |
-
|
137 |
-
llm_config = Qwen2Config.from_json_file(os.path.join(args.model_path, "llm_config.json"))
|
138 |
-
llm_config.qk_norm = True
|
139 |
-
llm_config.tie_word_embeddings = False
|
140 |
-
llm_config.layer_module = "Qwen2MoTDecoderLayer"
|
141 |
-
|
142 |
-
vit_config = SiglipVisionConfig.from_json_file(os.path.join(args.model_path, "vit_config.json"))
|
143 |
-
vit_config.rope = False
|
144 |
-
vit_config.num_hidden_layers = vit_config.num_hidden_layers - 1
|
145 |
-
|
146 |
-
vae_model, vae_config = load_ae(local_path=os.path.join(args.model_path, "ae.safetensors"))
|
147 |
-
|
148 |
-
config = BagelConfig(
|
149 |
-
visual_gen=True,
|
150 |
-
visual_und=True,
|
151 |
-
llm_config=llm_config,
|
152 |
-
vit_config=vit_config,
|
153 |
-
vae_config=vae_config,
|
154 |
-
vit_max_num_patch_per_side=70,
|
155 |
-
connector_act='gelu_pytorch_tanh',
|
156 |
-
latent_patch_size=2,
|
157 |
-
max_latent_size=args.max_latent_size,
|
158 |
-
)
|
159 |
-
language_model = Qwen2ForCausalLM(llm_config)
|
160 |
-
vit_model = SiglipVisionModel(vit_config)
|
161 |
-
model = Bagel(language_model, vit_model, config)
|
162 |
-
model.vit_model.vision_model.embeddings.convert_conv2d_to_linear(vit_config)
|
163 |
-
|
164 |
-
tokenizer = Qwen2Tokenizer.from_pretrained(args.model_path)
|
165 |
-
tokenizer, new_token_ids, _ = add_special_tokens(tokenizer)
|
166 |
-
|
167 |
-
model_state_dict_path = os.path.join(args.model_path, "ema.safetensors")
|
168 |
-
model_state_dict = load_file(model_state_dict_path, device="cpu")
|
169 |
-
msg = model.load_state_dict(model_state_dict, strict=False)
|
170 |
-
if rank == 0:
|
171 |
-
print(msg)
|
172 |
-
del model_state_dict
|
173 |
-
|
174 |
-
model = model.to(device).eval()
|
175 |
-
vae_model = vae_model.to(device).eval()
|
176 |
-
gen_model = model
|
177 |
-
|
178 |
-
cfg_scale = args.cfg_scale
|
179 |
-
cfg_interval = [0, 1.0]
|
180 |
-
timestep_shift = 3.0
|
181 |
-
num_timesteps = 50
|
182 |
-
cfg_renorm_min = 0.0
|
183 |
-
|
184 |
-
with open(args.metadata_file, "r", encoding="utf-8") as fp:
|
185 |
-
metadatas = [json.loads(line) for line in fp]
|
186 |
-
total_metadatas = len(metadatas)
|
187 |
-
|
188 |
-
prompts_per_gpu = (total_metadatas + world_size - 1) // world_size
|
189 |
-
start = rank * prompts_per_gpu
|
190 |
-
end = min(start + prompts_per_gpu, total_metadatas)
|
191 |
-
print(f"GPU {rank}: Processing {end - start} prompts (indices {start} to {end - 1})")
|
192 |
-
|
193 |
-
for idx in range(start, end):
|
194 |
-
metadata = metadatas[idx]
|
195 |
-
outpath = os.path.join(output_dir, f"{idx:0>5}")
|
196 |
-
os.makedirs(outpath, exist_ok=True)
|
197 |
-
prompt = metadata['prompt']
|
198 |
-
print(f"GPU {rank} processing prompt {idx - start + 1}/{end - start}: '{prompt}'")
|
199 |
-
|
200 |
-
sample_path = os.path.join(outpath, "samples")
|
201 |
-
os.makedirs(sample_path, exist_ok=True)
|
202 |
-
|
203 |
-
flag = True
|
204 |
-
for idx in range(args.num_images):
|
205 |
-
if not os.path.exists(os.path.join(sample_path, f"{idx:05}.png")):
|
206 |
-
flag = False
|
207 |
-
break
|
208 |
-
if flag:
|
209 |
-
print(f"GPU {rank} skipping generation for prompt: {prompt}")
|
210 |
-
continue
|
211 |
-
|
212 |
-
with open(os.path.join(outpath, "metadata.jsonl"), "w", encoding="utf-8") as fp:
|
213 |
-
json.dump(metadata, fp)
|
214 |
-
|
215 |
-
image_list = []
|
216 |
-
|
217 |
-
for i in range(args.num_images // args.batch_size):
|
218 |
-
tmp_image_list = generate_image(
|
219 |
-
prompt=prompt,
|
220 |
-
cfg_scale=cfg_scale,
|
221 |
-
cfg_interval=cfg_interval,
|
222 |
-
cfg_renorm_min=cfg_renorm_min,
|
223 |
-
timestep_shift=timestep_shift,
|
224 |
-
num_timesteps=num_timesteps,
|
225 |
-
num_images=args.batch_size,
|
226 |
-
resolution=args.resolution,
|
227 |
-
device=device,
|
228 |
-
)
|
229 |
-
image_list.extend(tmp_image_list)
|
230 |
-
|
231 |
-
sample_count = 0
|
232 |
-
for sample in image_list:
|
233 |
-
sample = sample.crop(sample.getbbox())
|
234 |
-
sample.save(os.path.join(sample_path, f"{sample_count:05}.png"))
|
235 |
-
sample_count += 1
|
236 |
-
|
237 |
-
print(f"GPU {rank} has completed all tasks")
|
238 |
-
dist.barrier()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/gen_images_mp_wise.py
DELETED
@@ -1,365 +0,0 @@
|
|
1 |
-
# Copyright 2025 Bytedance Ltd. and/or its affiliates.
|
2 |
-
# SPDX-License-Identifier: Apache-2.0
|
3 |
-
|
4 |
-
import os
|
5 |
-
import json
|
6 |
-
import argparse
|
7 |
-
from safetensors.torch import load_file
|
8 |
-
|
9 |
-
import torch
|
10 |
-
import torch.distributed as dist
|
11 |
-
from data.data_utils import add_special_tokens
|
12 |
-
from modeling.bagel import (
|
13 |
-
BagelConfig, Bagel, Qwen2Config, Qwen2ForCausalLM, SiglipVisionConfig, SiglipVisionModel
|
14 |
-
)
|
15 |
-
from modeling.qwen2 import Qwen2Tokenizer
|
16 |
-
from modeling.autoencoder import load_ae
|
17 |
-
|
18 |
-
import copy
|
19 |
-
from PIL import Image
|
20 |
-
from modeling.bagel.qwen2_navit import NaiveCache
|
21 |
-
|
22 |
-
|
23 |
-
def setup_distributed():
|
24 |
-
dist.init_process_group(backend="nccl")
|
25 |
-
torch.cuda.set_device(int(os.environ["LOCAL_RANK"]))
|
26 |
-
|
27 |
-
|
28 |
-
SYSTEM_PROMPT = '''You should first think about the planning process in the mind and then generate the image.
|
29 |
-
The planning process is enclosed within <think> </think> tags, i.e. <think> planning process here </think> image here'''
|
30 |
-
|
31 |
-
|
32 |
-
def move_generation_input_to_device(generation_input, device):
|
33 |
-
# Utility to move all tensors in generation_input to device
|
34 |
-
for k, v in generation_input.items():
|
35 |
-
if isinstance(v, torch.Tensor):
|
36 |
-
generation_input[k] = v.to(device)
|
37 |
-
return generation_input
|
38 |
-
|
39 |
-
|
40 |
-
def generate_image_with_think(
|
41 |
-
prompt, num_timesteps=50, cfg_scale=4.0, cfg_interval=[0, 1.0], cfg_renorm_min=0., timestep_shift=4.0, resolution=1024,
|
42 |
-
max_length=2048, simple_think=False, device=None
|
43 |
-
):
|
44 |
-
h, w = resolution, resolution
|
45 |
-
|
46 |
-
past_key_values = NaiveCache(model.config.llm_config.num_hidden_layers)
|
47 |
-
newlens = [0]
|
48 |
-
new_rope = [0]
|
49 |
-
|
50 |
-
# system prompt
|
51 |
-
generation_input, newlens, new_rope = model.prepare_prompts(
|
52 |
-
curr_kvlens=newlens,
|
53 |
-
curr_rope=new_rope,
|
54 |
-
prompts=[SYSTEM_PROMPT],
|
55 |
-
tokenizer=tokenizer,
|
56 |
-
new_token_ids=new_token_ids,
|
57 |
-
)
|
58 |
-
generation_input = move_generation_input_to_device(generation_input, device)
|
59 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.bfloat16):
|
60 |
-
past_key_values = model.forward_cache_update_text(past_key_values, **generation_input)
|
61 |
-
|
62 |
-
########## cfg
|
63 |
-
generation_input_cfg = model.prepare_vae_latent_cfg(
|
64 |
-
curr_kvlens=newlens,
|
65 |
-
curr_rope=new_rope,
|
66 |
-
image_sizes=[(h, w)],
|
67 |
-
)
|
68 |
-
generation_input_cfg = move_generation_input_to_device(generation_input_cfg, device)
|
69 |
-
########## cfg
|
70 |
-
|
71 |
-
generation_input, newlens, new_rope = model.prepare_prompts(
|
72 |
-
curr_kvlens=newlens,
|
73 |
-
curr_rope=new_rope,
|
74 |
-
prompts=[prompt],
|
75 |
-
tokenizer=tokenizer,
|
76 |
-
new_token_ids=new_token_ids,
|
77 |
-
)
|
78 |
-
generation_input = move_generation_input_to_device(generation_input, device)
|
79 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.bfloat16):
|
80 |
-
past_key_values = model.forward_cache_update_text(past_key_values, **generation_input)
|
81 |
-
|
82 |
-
########## think
|
83 |
-
tmp_past_key_values = copy.deepcopy(past_key_values)
|
84 |
-
tmp_newlens = copy.deepcopy(newlens)
|
85 |
-
tmp_new_rope = copy.deepcopy(new_rope)
|
86 |
-
tmp_generation_input, tmp_newlens, tmp_new_rope = model.prepare_prompts(
|
87 |
-
curr_kvlens=tmp_newlens,
|
88 |
-
curr_rope=tmp_new_rope,
|
89 |
-
prompts=[prompt],
|
90 |
-
tokenizer=tokenizer,
|
91 |
-
new_token_ids=new_token_ids,
|
92 |
-
)
|
93 |
-
tmp_generation_input = move_generation_input_to_device(tmp_generation_input, device)
|
94 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.bfloat16):
|
95 |
-
tmp_past_key_values = model.forward_cache_update_text(tmp_past_key_values, **tmp_generation_input)
|
96 |
-
|
97 |
-
tmp_generation_input = model.prepare_start_tokens(tmp_newlens, tmp_new_rope, new_token_ids)
|
98 |
-
tmp_generation_input = move_generation_input_to_device(tmp_generation_input, device)
|
99 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.bfloat16):
|
100 |
-
unpacked_latent = model.generate_text(
|
101 |
-
past_key_values=tmp_past_key_values,
|
102 |
-
max_length=max_length,
|
103 |
-
do_sample=True,
|
104 |
-
temperature=0.3,
|
105 |
-
end_token_id=new_token_ids['eos_token_id'],
|
106 |
-
**tmp_generation_input,
|
107 |
-
)
|
108 |
-
output = tokenizer.decode(unpacked_latent[:,0])
|
109 |
-
think_output = output.split('<|im_end|>')[0].split('<|im_start|>')[1]
|
110 |
-
|
111 |
-
print("="*30, "original think", "="*30)
|
112 |
-
print(think_output)
|
113 |
-
if simple_think:
|
114 |
-
think_output_list = think_output.split("</think>")
|
115 |
-
if think_output_list[1] != "":
|
116 |
-
think_output = think_output_list[1].strip()
|
117 |
-
print("="*30, "processed think", "="*30)
|
118 |
-
print(think_output)
|
119 |
-
########## think
|
120 |
-
|
121 |
-
generation_input, newlens, new_rope = model.prepare_prompts(
|
122 |
-
curr_kvlens=newlens,
|
123 |
-
curr_rope=new_rope,
|
124 |
-
prompts=[think_output],
|
125 |
-
tokenizer=tokenizer,
|
126 |
-
new_token_ids=new_token_ids,
|
127 |
-
)
|
128 |
-
generation_input = move_generation_input_to_device(generation_input, device)
|
129 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.bfloat16):
|
130 |
-
past_key_values = model.forward_cache_update_text(past_key_values, **generation_input)
|
131 |
-
|
132 |
-
generation_input = model.prepare_vae_latent(
|
133 |
-
curr_kvlens=newlens,
|
134 |
-
curr_rope=new_rope,
|
135 |
-
image_sizes=[(h, w)],
|
136 |
-
new_token_ids=new_token_ids,
|
137 |
-
)
|
138 |
-
generation_input = move_generation_input_to_device(generation_input, device)
|
139 |
-
|
140 |
-
########## generate image
|
141 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.bfloat16):
|
142 |
-
unpacked_latent = model.generate_image(
|
143 |
-
past_key_values=past_key_values,
|
144 |
-
num_timesteps=num_timesteps,
|
145 |
-
cfg_text_scale=cfg_scale,
|
146 |
-
cfg_interval=cfg_interval,
|
147 |
-
timestep_shift=timestep_shift,
|
148 |
-
cfg_renorm_min=cfg_renorm_min,
|
149 |
-
cfg_renorm_type="global",
|
150 |
-
cfg_text_past_key_values=None,
|
151 |
-
cfg_text_packed_position_ids=generation_input_cfg["cfg_packed_position_ids"],
|
152 |
-
cfg_text_key_values_lens=generation_input_cfg["cfg_key_values_lens"],
|
153 |
-
cfg_text_packed_query_indexes=generation_input_cfg["cfg_packed_query_indexes"],
|
154 |
-
cfg_text_packed_key_value_indexes=generation_input_cfg["cfg_packed_key_value_indexes"],
|
155 |
-
**generation_input,
|
156 |
-
)
|
157 |
-
|
158 |
-
latent0 = unpacked_latent[0]
|
159 |
-
latent0 = latent0.reshape(1, h//16, w//16, 2, 2, 16)
|
160 |
-
latent0 = torch.einsum("nhwpqc->nchpwq", latent0)
|
161 |
-
latent0 = latent0.reshape(1, 16, h//8, w//8)
|
162 |
-
image = vae_model.decode(latent0.to(device))
|
163 |
-
tmpimage = ((image * 0.5 + 0.5).clamp(0, 1)[0].permute(1, 2, 0) * 255).to(torch.uint8).cpu().numpy()
|
164 |
-
tmpimage = Image.fromarray(tmpimage)
|
165 |
-
|
166 |
-
return tmpimage, think_output
|
167 |
-
|
168 |
-
|
169 |
-
def generate_image(prompt, num_timesteps=50, cfg_scale=4.0, cfg_interval=[0, 1.0], cfg_renorm_min=0., timestep_shift=1.0, resolution=1024, device=None):
|
170 |
-
past_key_values = NaiveCache(gen_model.config.llm_config.num_hidden_layers)
|
171 |
-
newlens = [0]
|
172 |
-
new_rope = [0]
|
173 |
-
|
174 |
-
generation_input, newlens, new_rope = gen_model.prepare_prompts(
|
175 |
-
curr_kvlens=newlens,
|
176 |
-
curr_rope=new_rope,
|
177 |
-
prompts=[prompt],
|
178 |
-
tokenizer=tokenizer,
|
179 |
-
new_token_ids=new_token_ids,
|
180 |
-
)
|
181 |
-
generation_input = move_generation_input_to_device(generation_input, device)
|
182 |
-
|
183 |
-
with torch.no_grad():
|
184 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.float16):
|
185 |
-
past_key_values = gen_model.forward_cache_update_text(past_key_values, **generation_input)
|
186 |
-
|
187 |
-
generation_input = gen_model.prepare_vae_latent(
|
188 |
-
curr_kvlens=newlens,
|
189 |
-
curr_rope=new_rope,
|
190 |
-
image_sizes=[(resolution, resolution)],
|
191 |
-
new_token_ids=new_token_ids,
|
192 |
-
)
|
193 |
-
generation_input = move_generation_input_to_device(generation_input, device)
|
194 |
-
|
195 |
-
cfg_past_key_values = NaiveCache(gen_model.config.llm_config.num_hidden_layers)
|
196 |
-
cfg_newlens = [0]
|
197 |
-
cfg_new_rope = [0]
|
198 |
-
|
199 |
-
generation_input_cfg = model.prepare_vae_latent_cfg(
|
200 |
-
curr_kvlens=cfg_newlens,
|
201 |
-
curr_rope=cfg_new_rope,
|
202 |
-
image_sizes=[(resolution, resolution)],
|
203 |
-
)
|
204 |
-
generation_input_cfg = move_generation_input_to_device(generation_input_cfg, device)
|
205 |
-
with torch.no_grad():
|
206 |
-
with torch.amp.autocast("cuda", enabled=True, dtype=torch.bfloat16):
|
207 |
-
unpacked_latent = gen_model.generate_image(
|
208 |
-
past_key_values=past_key_values,
|
209 |
-
num_timesteps=num_timesteps,
|
210 |
-
cfg_text_scale=cfg_scale,
|
211 |
-
cfg_interval=cfg_interval,
|
212 |
-
cfg_renorm_min=cfg_renorm_min,
|
213 |
-
timestep_shift=timestep_shift,
|
214 |
-
cfg_text_past_key_values=cfg_past_key_values,
|
215 |
-
cfg_text_packed_position_ids=generation_input_cfg["cfg_packed_position_ids"],
|
216 |
-
cfg_text_key_values_lens=generation_input_cfg["cfg_key_values_lens"],
|
217 |
-
cfg_text_packed_query_indexes=generation_input_cfg["cfg_packed_query_indexes"],
|
218 |
-
cfg_text_packed_key_value_indexes=generation_input_cfg["cfg_packed_key_value_indexes"],
|
219 |
-
**generation_input,
|
220 |
-
)
|
221 |
-
|
222 |
-
latent = unpacked_latent[0]
|
223 |
-
latent = latent.reshape(1, resolution//16, resolution//16, 2, 2, 16)
|
224 |
-
latent = torch.einsum("nhwpqc->nchpwq", latent)
|
225 |
-
latent = latent.reshape(1, 16, resolution//8, resolution//8)
|
226 |
-
image = vae_model.decode(latent.to(device))
|
227 |
-
tmpimage = ((image * 0.5 + 0.5).clamp(0, 1)[0].permute(1, 2, 0) * 255).to(torch.uint8).cpu().numpy()
|
228 |
-
tmpimage = Image.fromarray(tmpimage)
|
229 |
-
|
230 |
-
return tmpimage
|
231 |
-
|
232 |
-
|
233 |
-
if __name__ == "__main__":
|
234 |
-
parser = argparse.ArgumentParser(description="Generate images using Bagel model.")
|
235 |
-
parser.add_argument("--output_dir", type=str, required=True, help="Directory to save the generated images.")
|
236 |
-
parser.add_argument("--metadata_file", type=str, required=True, help="JSON file containing lines of metadata for each prompt.")
|
237 |
-
parser.add_argument("--cfg_scale", type=float, default=4)
|
238 |
-
parser.add_argument("--resolution", type=int, default=1024)
|
239 |
-
parser.add_argument("--max_latent_size", type=int, default=64)
|
240 |
-
parser.add_argument("--think", action="store_true")
|
241 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
242 |
-
args = parser.parse_args()
|
243 |
-
|
244 |
-
seed = 42
|
245 |
-
if seed is not None:
|
246 |
-
import random
|
247 |
-
import numpy as np
|
248 |
-
random.seed(seed)
|
249 |
-
np.random.seed(seed)
|
250 |
-
torch.manual_seed(seed)
|
251 |
-
if torch.cuda.is_available():
|
252 |
-
torch.cuda.manual_seed(seed)
|
253 |
-
torch.cuda.manual_seed_all(seed)
|
254 |
-
torch.backends.cudnn.deterministic = True
|
255 |
-
torch.backends.cudnn.benchmark = False
|
256 |
-
|
257 |
-
setup_distributed()
|
258 |
-
rank = dist.get_rank()
|
259 |
-
world_size = dist.get_world_size()
|
260 |
-
device = f"cuda:{rank}"
|
261 |
-
|
262 |
-
output_dir = args.output_dir
|
263 |
-
os.makedirs(output_dir, exist_ok=True)
|
264 |
-
if rank == 0:
|
265 |
-
print(f"Output images are saved in {output_dir}")
|
266 |
-
|
267 |
-
llm_config = Qwen2Config.from_json_file(os.path.join(args.model_path, "llm_config.json"))
|
268 |
-
llm_config.qk_norm = True
|
269 |
-
llm_config.tie_word_embeddings = False
|
270 |
-
llm_config.layer_module = "Qwen2MoTDecoderLayer"
|
271 |
-
|
272 |
-
vit_config = SiglipVisionConfig.from_json_file(os.path.join(args.model_path, "vit_config.json"))
|
273 |
-
vit_config.rope = False
|
274 |
-
vit_config.num_hidden_layers = vit_config.num_hidden_layers - 1
|
275 |
-
|
276 |
-
vae_model, vae_config = load_ae(local_path=os.path.join(args.model_path, "ae.safetensors"))
|
277 |
-
|
278 |
-
config = BagelConfig(
|
279 |
-
visual_gen=True,
|
280 |
-
visual_und=True,
|
281 |
-
llm_config=llm_config,
|
282 |
-
vit_config=vit_config,
|
283 |
-
vae_config=vae_config,
|
284 |
-
vit_max_num_patch_per_side=70,
|
285 |
-
connector_act='gelu_pytorch_tanh',
|
286 |
-
latent_patch_size=2,
|
287 |
-
max_latent_size=args.max_latent_size,
|
288 |
-
)
|
289 |
-
language_model = Qwen2ForCausalLM(llm_config)
|
290 |
-
vit_model = SiglipVisionModel(vit_config)
|
291 |
-
model = Bagel(language_model, vit_model, config)
|
292 |
-
model.vit_model.vision_model.embeddings.convert_conv2d_to_linear(vit_config)
|
293 |
-
|
294 |
-
tokenizer = Qwen2Tokenizer.from_pretrained(args.model_path)
|
295 |
-
tokenizer, new_token_ids, _ = add_special_tokens(tokenizer)
|
296 |
-
|
297 |
-
model_state_dict_path = os.path.join(args.model_path, "ema.safetensors")
|
298 |
-
model_state_dict = load_file(model_state_dict_path, device="cpu")
|
299 |
-
msg = model.load_state_dict(model_state_dict, strict=False)
|
300 |
-
if rank == 0:
|
301 |
-
print(msg)
|
302 |
-
|
303 |
-
del model_state_dict
|
304 |
-
model = model.to(device).eval()
|
305 |
-
vae_model = vae_model.to(device).eval()
|
306 |
-
gen_model = model
|
307 |
-
|
308 |
-
cfg_scale = args.cfg_scale
|
309 |
-
cfg_interval = [0.4, 1.0]
|
310 |
-
timestep_shift = 3.0
|
311 |
-
num_timesteps = 50
|
312 |
-
cfg_renorm_min = 0.0
|
313 |
-
|
314 |
-
with open(args.metadata_file, "r") as f:
|
315 |
-
metadatas = json.load(f)
|
316 |
-
total_metadatas = len(metadatas)
|
317 |
-
|
318 |
-
prompts_per_gpu = (total_metadatas + world_size - 1) // world_size
|
319 |
-
start = rank * prompts_per_gpu
|
320 |
-
end = min(start + prompts_per_gpu, total_metadatas)
|
321 |
-
print(f"GPU {rank}: Processing {end - start} prompts (indices {start} to {end - 1})")
|
322 |
-
|
323 |
-
for idx in range(start, end):
|
324 |
-
metadata = metadatas[idx]
|
325 |
-
prompt = metadata['Prompt']
|
326 |
-
prompt_id = metadata['prompt_id']
|
327 |
-
outpath = os.path.join(output_dir, f"{prompt_id}.png")
|
328 |
-
print(f"GPU {rank} processing prompt {idx - start + 1}/{end - start}: '{prompt}'")
|
329 |
-
|
330 |
-
if os.path.exists(outpath):
|
331 |
-
print(f"GPU {rank} skipping generation for prompt: {prompt}")
|
332 |
-
continue
|
333 |
-
|
334 |
-
if args.think:
|
335 |
-
tmpimage, think_output = generate_image_with_think(
|
336 |
-
prompt=prompt,
|
337 |
-
cfg_scale=cfg_scale,
|
338 |
-
cfg_interval=cfg_interval,
|
339 |
-
cfg_renorm_min=cfg_renorm_min,
|
340 |
-
timestep_shift=timestep_shift,
|
341 |
-
num_timesteps=num_timesteps,
|
342 |
-
resolution=args.resolution,
|
343 |
-
max_length=2048,
|
344 |
-
simple_think=False,
|
345 |
-
device=device,
|
346 |
-
)
|
347 |
-
with open(outpath.replace(".png", ".txt"), "w") as f:
|
348 |
-
f.write(think_output)
|
349 |
-
else:
|
350 |
-
tmpimage = generate_image(
|
351 |
-
prompt=prompt,
|
352 |
-
cfg_scale=cfg_scale,
|
353 |
-
cfg_interval=cfg_interval,
|
354 |
-
cfg_renorm_min=cfg_renorm_min,
|
355 |
-
timestep_shift=timestep_shift,
|
356 |
-
num_timesteps=num_timesteps,
|
357 |
-
resolution=args.resolution,
|
358 |
-
device=device,
|
359 |
-
)
|
360 |
-
|
361 |
-
tmpimage = tmpimage.crop(tmpimage.getbbox())
|
362 |
-
tmpimage.save(outpath)
|
363 |
-
|
364 |
-
print(f"GPU {rank} has completed all tasks")
|
365 |
-
dist.barrier()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/geneval/evaluation/download_models.sh
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 Dhruba Ghosh
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/djghosh13/geneval/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
#!/bin/bash
|
13 |
-
|
14 |
-
# Download Mask2Former object detection config and weights
|
15 |
-
|
16 |
-
if [ ! -z "$1" ]
|
17 |
-
then
|
18 |
-
mkdir -p "$1"
|
19 |
-
wget https://download.openmmlab.com/mmdetection/v2.0/mask2former/mask2former_swin-s-p4-w7-224_lsj_8x2_50e_coco/mask2former_swin-s-p4-w7-224_lsj_8x2_50e_coco_20220504_001756-743b7d99.pth -O "$1/mask2former_swin-s-p4-w7-224_lsj_8x2_50e_coco.pth"
|
20 |
-
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/geneval/evaluation/evaluate_images.py
DELETED
@@ -1,304 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 Dhruba Ghosh
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/djghosh13/geneval/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
"""
|
13 |
-
Evaluate generated images using Mask2Former (or other object detector model)
|
14 |
-
"""
|
15 |
-
|
16 |
-
import argparse
|
17 |
-
import json
|
18 |
-
import os
|
19 |
-
import re
|
20 |
-
import sys
|
21 |
-
import time
|
22 |
-
from tqdm import tqdm
|
23 |
-
|
24 |
-
import warnings
|
25 |
-
warnings.filterwarnings("ignore")
|
26 |
-
|
27 |
-
import numpy as np
|
28 |
-
import pandas as pd
|
29 |
-
from PIL import Image, ImageOps
|
30 |
-
import torch
|
31 |
-
import mmdet
|
32 |
-
from mmdet.apis import inference_detector, init_detector
|
33 |
-
|
34 |
-
import open_clip
|
35 |
-
from clip_benchmark.metrics import zeroshot_classification as zsc
|
36 |
-
zsc.tqdm = lambda it, *args, **kwargs: it
|
37 |
-
|
38 |
-
# Get directory path
|
39 |
-
|
40 |
-
def parse_args():
|
41 |
-
parser = argparse.ArgumentParser()
|
42 |
-
parser.add_argument("imagedir", type=str)
|
43 |
-
parser.add_argument("--outfile", type=str, default="results.jsonl")
|
44 |
-
parser.add_argument("--model-config", type=str, default=None)
|
45 |
-
parser.add_argument("--model-path", type=str, default="./")
|
46 |
-
# Other arguments
|
47 |
-
parser.add_argument("--options", nargs="*", type=str, default=[])
|
48 |
-
args = parser.parse_args()
|
49 |
-
args.options = dict(opt.split("=", 1) for opt in args.options)
|
50 |
-
if args.model_config is None:
|
51 |
-
args.model_config = os.path.join(
|
52 |
-
os.path.dirname(mmdet.__file__),
|
53 |
-
"../configs/mask2former/mask2former_swin-s-p4-w7-224_lsj_8x2_50e_coco.py"
|
54 |
-
)
|
55 |
-
return args
|
56 |
-
|
57 |
-
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
|
58 |
-
assert DEVICE == "cuda"
|
59 |
-
|
60 |
-
def timed(fn):
|
61 |
-
def wrapper(*args, **kwargs):
|
62 |
-
startt = time.time()
|
63 |
-
result = fn(*args, **kwargs)
|
64 |
-
endt = time.time()
|
65 |
-
print(f'Function {fn.__name__!r} executed in {endt - startt:.3f}s', file=sys.stderr)
|
66 |
-
return result
|
67 |
-
return wrapper
|
68 |
-
|
69 |
-
# Load models
|
70 |
-
|
71 |
-
@timed
|
72 |
-
def load_models(args):
|
73 |
-
CONFIG_PATH = args.model_config
|
74 |
-
OBJECT_DETECTOR = args.options.get('model', "mask2former_swin-s-p4-w7-224_lsj_8x2_50e_coco")
|
75 |
-
CKPT_PATH = os.path.join(args.model_path, f"{OBJECT_DETECTOR}.pth")
|
76 |
-
object_detector = init_detector(CONFIG_PATH, CKPT_PATH, device=DEVICE)
|
77 |
-
|
78 |
-
clip_arch = args.options.get('clip_model', "ViT-L-14")
|
79 |
-
clip_model, _, transform = open_clip.create_model_and_transforms(clip_arch, pretrained="openai", device=DEVICE)
|
80 |
-
tokenizer = open_clip.get_tokenizer(clip_arch)
|
81 |
-
|
82 |
-
with open(os.path.join(os.path.dirname(__file__), "object_names.txt")) as cls_file:
|
83 |
-
classnames = [line.strip() for line in cls_file]
|
84 |
-
|
85 |
-
return object_detector, (clip_model, transform, tokenizer), classnames
|
86 |
-
|
87 |
-
|
88 |
-
COLORS = ["red", "orange", "yellow", "green", "blue", "purple", "pink", "brown", "black", "white"]
|
89 |
-
COLOR_CLASSIFIERS = {}
|
90 |
-
|
91 |
-
# Evaluation parts
|
92 |
-
|
93 |
-
class ImageCrops(torch.utils.data.Dataset):
|
94 |
-
def __init__(self, image: Image.Image, objects):
|
95 |
-
self._image = image.convert("RGB")
|
96 |
-
bgcolor = args.options.get('bgcolor', "#999")
|
97 |
-
if bgcolor == "original":
|
98 |
-
self._blank = self._image.copy()
|
99 |
-
else:
|
100 |
-
self._blank = Image.new("RGB", image.size, color=bgcolor)
|
101 |
-
self._objects = objects
|
102 |
-
|
103 |
-
def __len__(self):
|
104 |
-
return len(self._objects)
|
105 |
-
|
106 |
-
def __getitem__(self, index):
|
107 |
-
box, mask = self._objects[index]
|
108 |
-
if mask is not None:
|
109 |
-
assert tuple(self._image.size[::-1]) == tuple(mask.shape), (index, self._image.size[::-1], mask.shape)
|
110 |
-
image = Image.composite(self._image, self._blank, Image.fromarray(mask))
|
111 |
-
else:
|
112 |
-
image = self._image
|
113 |
-
if args.options.get('crop', '1') == '1':
|
114 |
-
image = image.crop(box[:4])
|
115 |
-
# if args.save:
|
116 |
-
# base_count = len(os.listdir(args.save))
|
117 |
-
# image.save(os.path.join(args.save, f"cropped_{base_count:05}.png"))
|
118 |
-
return (transform(image), 0)
|
119 |
-
|
120 |
-
|
121 |
-
def color_classification(image, bboxes, classname):
|
122 |
-
if classname not in COLOR_CLASSIFIERS:
|
123 |
-
COLOR_CLASSIFIERS[classname] = zsc.zero_shot_classifier(
|
124 |
-
clip_model, tokenizer, COLORS,
|
125 |
-
[
|
126 |
-
f"a photo of a {{c}} {classname}",
|
127 |
-
f"a photo of a {{c}}-colored {classname}",
|
128 |
-
f"a photo of a {{c}} object"
|
129 |
-
],
|
130 |
-
DEVICE
|
131 |
-
)
|
132 |
-
clf = COLOR_CLASSIFIERS[classname]
|
133 |
-
dataloader = torch.utils.data.DataLoader(
|
134 |
-
ImageCrops(image, bboxes),
|
135 |
-
batch_size=16, num_workers=4
|
136 |
-
)
|
137 |
-
with torch.no_grad():
|
138 |
-
pred, _ = zsc.run_classification(clip_model, clf, dataloader, DEVICE)
|
139 |
-
return [COLORS[index.item()] for index in pred.argmax(1)]
|
140 |
-
|
141 |
-
|
142 |
-
def compute_iou(box_a, box_b):
|
143 |
-
area_fn = lambda box: max(box[2] - box[0] + 1, 0) * max(box[3] - box[1] + 1, 0)
|
144 |
-
i_area = area_fn([
|
145 |
-
max(box_a[0], box_b[0]), max(box_a[1], box_b[1]),
|
146 |
-
min(box_a[2], box_b[2]), min(box_a[3], box_b[3])
|
147 |
-
])
|
148 |
-
u_area = area_fn(box_a) + area_fn(box_b) - i_area
|
149 |
-
return i_area / u_area if u_area else 0
|
150 |
-
|
151 |
-
|
152 |
-
def relative_position(obj_a, obj_b):
|
153 |
-
"""Give position of A relative to B, factoring in object dimensions"""
|
154 |
-
boxes = np.array([obj_a[0], obj_b[0]])[:, :4].reshape(2, 2, 2)
|
155 |
-
center_a, center_b = boxes.mean(axis=-2)
|
156 |
-
dim_a, dim_b = np.abs(np.diff(boxes, axis=-2))[..., 0, :]
|
157 |
-
offset = center_a - center_b
|
158 |
-
#
|
159 |
-
revised_offset = np.maximum(np.abs(offset) - POSITION_THRESHOLD * (dim_a + dim_b), 0) * np.sign(offset)
|
160 |
-
if np.all(np.abs(revised_offset) < 1e-3):
|
161 |
-
return set()
|
162 |
-
#
|
163 |
-
dx, dy = revised_offset / np.linalg.norm(offset)
|
164 |
-
relations = set()
|
165 |
-
if dx < -0.5: relations.add("left of")
|
166 |
-
if dx > 0.5: relations.add("right of")
|
167 |
-
if dy < -0.5: relations.add("above")
|
168 |
-
if dy > 0.5: relations.add("below")
|
169 |
-
return relations
|
170 |
-
|
171 |
-
|
172 |
-
def evaluate(image, objects, metadata):
|
173 |
-
"""
|
174 |
-
Evaluate given image using detected objects on the global metadata specifications.
|
175 |
-
Assumptions:
|
176 |
-
* Metadata combines 'include' clauses with AND, and 'exclude' clauses with OR
|
177 |
-
* All clauses are independent, i.e., duplicating a clause has no effect on the correctness
|
178 |
-
* CHANGED: Color and position will only be evaluated on the most confidently predicted objects;
|
179 |
-
therefore, objects are expected to appear in sorted order
|
180 |
-
"""
|
181 |
-
correct = True
|
182 |
-
reason = []
|
183 |
-
matched_groups = []
|
184 |
-
# Check for expected objects
|
185 |
-
for req in metadata.get('include', []):
|
186 |
-
classname = req['class']
|
187 |
-
matched = True
|
188 |
-
found_objects = objects.get(classname, [])[:req['count']]
|
189 |
-
if len(found_objects) < req['count']:
|
190 |
-
correct = matched = False
|
191 |
-
reason.append(f"expected {classname}>={req['count']}, found {len(found_objects)}")
|
192 |
-
else:
|
193 |
-
if 'color' in req:
|
194 |
-
# Color check
|
195 |
-
colors = color_classification(image, found_objects, classname)
|
196 |
-
if colors.count(req['color']) < req['count']:
|
197 |
-
correct = matched = False
|
198 |
-
reason.append(
|
199 |
-
f"expected {req['color']} {classname}>={req['count']}, found " +
|
200 |
-
f"{colors.count(req['color'])} {req['color']}; and " +
|
201 |
-
", ".join(f"{colors.count(c)} {c}" for c in COLORS if c in colors)
|
202 |
-
)
|
203 |
-
if 'position' in req and matched:
|
204 |
-
# Relative position check
|
205 |
-
expected_rel, target_group = req['position']
|
206 |
-
if matched_groups[target_group] is None:
|
207 |
-
correct = matched = False
|
208 |
-
reason.append(f"no target for {classname} to be {expected_rel}")
|
209 |
-
else:
|
210 |
-
for obj in found_objects:
|
211 |
-
for target_obj in matched_groups[target_group]:
|
212 |
-
true_rels = relative_position(obj, target_obj)
|
213 |
-
if expected_rel not in true_rels:
|
214 |
-
correct = matched = False
|
215 |
-
reason.append(
|
216 |
-
f"expected {classname} {expected_rel} target, found " +
|
217 |
-
f"{' and '.join(true_rels)} target"
|
218 |
-
)
|
219 |
-
break
|
220 |
-
if not matched:
|
221 |
-
break
|
222 |
-
if matched:
|
223 |
-
matched_groups.append(found_objects)
|
224 |
-
else:
|
225 |
-
matched_groups.append(None)
|
226 |
-
# Check for non-expected objects
|
227 |
-
for req in metadata.get('exclude', []):
|
228 |
-
classname = req['class']
|
229 |
-
if len(objects.get(classname, [])) >= req['count']:
|
230 |
-
correct = False
|
231 |
-
reason.append(f"expected {classname}<{req['count']}, found {len(objects[classname])}")
|
232 |
-
return correct, "\n".join(reason)
|
233 |
-
|
234 |
-
|
235 |
-
def evaluate_image(filepath, metadata):
|
236 |
-
result = inference_detector(object_detector, filepath)
|
237 |
-
bbox = result[0] if isinstance(result, tuple) else result
|
238 |
-
segm = result[1] if isinstance(result, tuple) and len(result) > 1 else None
|
239 |
-
image = ImageOps.exif_transpose(Image.open(filepath))
|
240 |
-
detected = {}
|
241 |
-
# Determine bounding boxes to keep
|
242 |
-
confidence_threshold = THRESHOLD if metadata['tag'] != "counting" else COUNTING_THRESHOLD
|
243 |
-
for index, classname in enumerate(classnames):
|
244 |
-
ordering = np.argsort(bbox[index][:, 4])[::-1]
|
245 |
-
ordering = ordering[bbox[index][ordering, 4] > confidence_threshold] # Threshold
|
246 |
-
ordering = ordering[:MAX_OBJECTS].tolist() # Limit number of detected objects per class
|
247 |
-
detected[classname] = []
|
248 |
-
while ordering:
|
249 |
-
max_obj = ordering.pop(0)
|
250 |
-
detected[classname].append((bbox[index][max_obj], None if segm is None else segm[index][max_obj]))
|
251 |
-
ordering = [
|
252 |
-
obj for obj in ordering
|
253 |
-
if NMS_THRESHOLD == 1 or compute_iou(bbox[index][max_obj], bbox[index][obj]) < NMS_THRESHOLD
|
254 |
-
]
|
255 |
-
if not detected[classname]:
|
256 |
-
del detected[classname]
|
257 |
-
# Evaluate
|
258 |
-
is_correct, reason = evaluate(image, detected, metadata)
|
259 |
-
return {
|
260 |
-
'filename': filepath,
|
261 |
-
'tag': metadata['tag'],
|
262 |
-
'prompt': metadata['prompt'],
|
263 |
-
'correct': is_correct,
|
264 |
-
'reason': reason,
|
265 |
-
'metadata': json.dumps(metadata),
|
266 |
-
'details': json.dumps({
|
267 |
-
key: [box.tolist() for box, _ in value]
|
268 |
-
for key, value in detected.items()
|
269 |
-
})
|
270 |
-
}
|
271 |
-
|
272 |
-
|
273 |
-
def main(args):
|
274 |
-
full_results = []
|
275 |
-
for subfolder in tqdm(os.listdir(args.imagedir)):
|
276 |
-
folderpath = os.path.join(args.imagedir, subfolder)
|
277 |
-
if not os.path.isdir(folderpath) or not subfolder.isdigit():
|
278 |
-
continue
|
279 |
-
with open(os.path.join(folderpath, "metadata.jsonl")) as fp:
|
280 |
-
metadata = json.load(fp)
|
281 |
-
# Evaluate each image
|
282 |
-
for imagename in os.listdir(os.path.join(folderpath, "samples")):
|
283 |
-
imagepath = os.path.join(folderpath, "samples", imagename)
|
284 |
-
if not os.path.isfile(imagepath) or not re.match(r"\d+\.png", imagename):
|
285 |
-
continue
|
286 |
-
result = evaluate_image(imagepath, metadata)
|
287 |
-
full_results.append(result)
|
288 |
-
# Save results
|
289 |
-
if os.path.dirname(args.outfile):
|
290 |
-
os.makedirs(os.path.dirname(args.outfile), exist_ok=True)
|
291 |
-
with open(args.outfile, "w") as fp:
|
292 |
-
pd.DataFrame(full_results).to_json(fp, orient="records", lines=True)
|
293 |
-
|
294 |
-
|
295 |
-
if __name__ == "__main__":
|
296 |
-
args = parse_args()
|
297 |
-
object_detector, (clip_model, transform, tokenizer), classnames = load_models(args)
|
298 |
-
THRESHOLD = float(args.options.get('threshold', 0.3))
|
299 |
-
COUNTING_THRESHOLD = float(args.options.get('counting_threshold', 0.9))
|
300 |
-
MAX_OBJECTS = int(args.options.get('max_objects', 16))
|
301 |
-
NMS_THRESHOLD = float(args.options.get('max_overlap', 1.0))
|
302 |
-
POSITION_THRESHOLD = float(args.options.get('position_threshold', 0.1))
|
303 |
-
|
304 |
-
main(args)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/geneval/evaluation/evaluate_images_mp.py
DELETED
@@ -1,332 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 Dhruba Ghosh
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/djghosh13/geneval/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import json
|
14 |
-
import os
|
15 |
-
import re
|
16 |
-
import sys
|
17 |
-
import time
|
18 |
-
from tqdm import tqdm
|
19 |
-
|
20 |
-
import warnings
|
21 |
-
warnings.filterwarnings("ignore")
|
22 |
-
|
23 |
-
import numpy as np
|
24 |
-
import pandas as pd
|
25 |
-
from PIL import Image, ImageOps
|
26 |
-
import torch
|
27 |
-
import torch.distributed as dist
|
28 |
-
import mmdet
|
29 |
-
from mmdet.apis import inference_detector, init_detector
|
30 |
-
|
31 |
-
import open_clip
|
32 |
-
from clip_benchmark.metrics import zeroshot_classification as zsc
|
33 |
-
zsc.tqdm = lambda it, *args, **kwargs: it
|
34 |
-
|
35 |
-
|
36 |
-
def setup_distributed():
|
37 |
-
"""初始化分布式环境"""
|
38 |
-
dist.init_process_group(backend="nccl")
|
39 |
-
torch.cuda.set_device(int(os.environ["LOCAL_RANK"]))
|
40 |
-
|
41 |
-
|
42 |
-
# Get directory path
|
43 |
-
|
44 |
-
def parse_args():
|
45 |
-
parser = argparse.ArgumentParser()
|
46 |
-
parser.add_argument("imagedir", type=str)
|
47 |
-
parser.add_argument("--outfile", type=str, default="results.jsonl")
|
48 |
-
parser.add_argument("--model-config", type=str, default=None)
|
49 |
-
parser.add_argument("--model-path", type=str, default="./")
|
50 |
-
# Other arguments
|
51 |
-
parser.add_argument("--options", nargs="*", type=str, default=[])
|
52 |
-
args = parser.parse_args()
|
53 |
-
args.options = dict(opt.split("=", 1) for opt in args.options)
|
54 |
-
if args.model_config is None:
|
55 |
-
args.model_config = os.path.join(
|
56 |
-
os.path.dirname(mmdet.__file__),
|
57 |
-
"../configs/mask2former/mask2former_swin-s-p4-w7-224_lsj_8x2_50e_coco.py"
|
58 |
-
)
|
59 |
-
return args
|
60 |
-
|
61 |
-
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
|
62 |
-
assert DEVICE == "cuda"
|
63 |
-
|
64 |
-
def timed(fn):
|
65 |
-
def wrapper(*args, **kwargs):
|
66 |
-
startt = time.time()
|
67 |
-
result = fn(*args, **kwargs)
|
68 |
-
endt = time.time()
|
69 |
-
print(f'Function {fn.__name__!r} executed in {endt - startt:.3f}s', file=sys.stderr)
|
70 |
-
return result
|
71 |
-
return wrapper
|
72 |
-
|
73 |
-
# Load models
|
74 |
-
|
75 |
-
@timed
|
76 |
-
def load_models(args):
|
77 |
-
CONFIG_PATH = args.model_config
|
78 |
-
OBJECT_DETECTOR = args.options.get('model', "mask2former_swin-s-p4-w7-224_lsj_8x2_50e_coco")
|
79 |
-
CKPT_PATH = os.path.join(args.model_path, f"{OBJECT_DETECTOR}.pth")
|
80 |
-
object_detector = init_detector(CONFIG_PATH, CKPT_PATH, device=DEVICE)
|
81 |
-
|
82 |
-
clip_arch = args.options.get('clip_model', "ViT-L-14")
|
83 |
-
clip_model, _, transform = open_clip.create_model_and_transforms(clip_arch, pretrained="openai", device=DEVICE)
|
84 |
-
tokenizer = open_clip.get_tokenizer(clip_arch)
|
85 |
-
|
86 |
-
with open(os.path.join(os.path.dirname(__file__), "object_names.txt")) as cls_file:
|
87 |
-
classnames = [line.strip() for line in cls_file]
|
88 |
-
|
89 |
-
return object_detector, (clip_model, transform, tokenizer), classnames
|
90 |
-
|
91 |
-
|
92 |
-
COLORS = ["red", "orange", "yellow", "green", "blue", "purple", "pink", "brown", "black", "white"]
|
93 |
-
COLOR_CLASSIFIERS = {}
|
94 |
-
|
95 |
-
# Evaluation parts
|
96 |
-
|
97 |
-
class ImageCrops(torch.utils.data.Dataset):
|
98 |
-
def __init__(self, image: Image.Image, objects):
|
99 |
-
self._image = image.convert("RGB")
|
100 |
-
bgcolor = args.options.get('bgcolor', "#999")
|
101 |
-
if bgcolor == "original":
|
102 |
-
self._blank = self._image.copy()
|
103 |
-
else:
|
104 |
-
self._blank = Image.new("RGB", image.size, color=bgcolor)
|
105 |
-
self._objects = objects
|
106 |
-
|
107 |
-
def __len__(self):
|
108 |
-
return len(self._objects)
|
109 |
-
|
110 |
-
def __getitem__(self, index):
|
111 |
-
box, mask = self._objects[index]
|
112 |
-
if mask is not None:
|
113 |
-
assert tuple(self._image.size[::-1]) == tuple(mask.shape), (index, self._image.size[::-1], mask.shape)
|
114 |
-
image = Image.composite(self._image, self._blank, Image.fromarray(mask))
|
115 |
-
else:
|
116 |
-
image = self._image
|
117 |
-
if args.options.get('crop', '1') == '1':
|
118 |
-
image = image.crop(box[:4])
|
119 |
-
# if args.save:
|
120 |
-
# base_count = len(os.listdir(args.save))
|
121 |
-
# image.save(os.path.join(args.save, f"cropped_{base_count:05}.png"))
|
122 |
-
return (transform(image), 0)
|
123 |
-
|
124 |
-
|
125 |
-
def color_classification(image, bboxes, classname):
|
126 |
-
if classname not in COLOR_CLASSIFIERS:
|
127 |
-
COLOR_CLASSIFIERS[classname] = zsc.zero_shot_classifier(
|
128 |
-
clip_model, tokenizer, COLORS,
|
129 |
-
[
|
130 |
-
f"a photo of a {{c}} {classname}",
|
131 |
-
f"a photo of a {{c}}-colored {classname}",
|
132 |
-
f"a photo of a {{c}} object"
|
133 |
-
],
|
134 |
-
DEVICE
|
135 |
-
)
|
136 |
-
clf = COLOR_CLASSIFIERS[classname]
|
137 |
-
dataloader = torch.utils.data.DataLoader(
|
138 |
-
ImageCrops(image, bboxes),
|
139 |
-
batch_size=16, num_workers=4
|
140 |
-
)
|
141 |
-
with torch.no_grad():
|
142 |
-
pred, _ = zsc.run_classification(clip_model, clf, dataloader, DEVICE)
|
143 |
-
return [COLORS[index.item()] for index in pred.argmax(1)]
|
144 |
-
|
145 |
-
|
146 |
-
def compute_iou(box_a, box_b):
|
147 |
-
area_fn = lambda box: max(box[2] - box[0] + 1, 0) * max(box[3] - box[1] + 1, 0)
|
148 |
-
i_area = area_fn([
|
149 |
-
max(box_a[0], box_b[0]), max(box_a[1], box_b[1]),
|
150 |
-
min(box_a[2], box_b[2]), min(box_a[3], box_b[3])
|
151 |
-
])
|
152 |
-
u_area = area_fn(box_a) + area_fn(box_b) - i_area
|
153 |
-
return i_area / u_area if u_area else 0
|
154 |
-
|
155 |
-
|
156 |
-
def relative_position(obj_a, obj_b):
|
157 |
-
"""Give position of A relative to B, factoring in object dimensions"""
|
158 |
-
boxes = np.array([obj_a[0], obj_b[0]])[:, :4].reshape(2, 2, 2)
|
159 |
-
center_a, center_b = boxes.mean(axis=-2)
|
160 |
-
dim_a, dim_b = np.abs(np.diff(boxes, axis=-2))[..., 0, :]
|
161 |
-
offset = center_a - center_b
|
162 |
-
#
|
163 |
-
revised_offset = np.maximum(np.abs(offset) - POSITION_THRESHOLD * (dim_a + dim_b), 0) * np.sign(offset)
|
164 |
-
if np.all(np.abs(revised_offset) < 1e-3):
|
165 |
-
return set()
|
166 |
-
#
|
167 |
-
dx, dy = revised_offset / np.linalg.norm(offset)
|
168 |
-
relations = set()
|
169 |
-
if dx < -0.5: relations.add("left of")
|
170 |
-
if dx > 0.5: relations.add("right of")
|
171 |
-
if dy < -0.5: relations.add("above")
|
172 |
-
if dy > 0.5: relations.add("below")
|
173 |
-
return relations
|
174 |
-
|
175 |
-
|
176 |
-
def evaluate(image, objects, metadata):
|
177 |
-
"""
|
178 |
-
Evaluate given image using detected objects on the global metadata specifications.
|
179 |
-
Assumptions:
|
180 |
-
* Metadata combines 'include' clauses with AND, and 'exclude' clauses with OR
|
181 |
-
* All clauses are independent, i.e., duplicating a clause has no effect on the correctness
|
182 |
-
* CHANGED: Color and position will only be evaluated on the most confidently predicted objects;
|
183 |
-
therefore, objects are expected to appear in sorted order
|
184 |
-
"""
|
185 |
-
correct = True
|
186 |
-
reason = []
|
187 |
-
matched_groups = []
|
188 |
-
# Check for expected objects
|
189 |
-
for req in metadata.get('include', []):
|
190 |
-
classname = req['class']
|
191 |
-
matched = True
|
192 |
-
found_objects = objects.get(classname, [])[:req['count']]
|
193 |
-
if len(found_objects) < req['count']:
|
194 |
-
correct = matched = False
|
195 |
-
reason.append(f"expected {classname}>={req['count']}, found {len(found_objects)}")
|
196 |
-
else:
|
197 |
-
if 'color' in req:
|
198 |
-
# Color check
|
199 |
-
colors = color_classification(image, found_objects, classname)
|
200 |
-
if colors.count(req['color']) < req['count']:
|
201 |
-
correct = matched = False
|
202 |
-
reason.append(
|
203 |
-
f"expected {req['color']} {classname}>={req['count']}, found " +
|
204 |
-
f"{colors.count(req['color'])} {req['color']}; and " +
|
205 |
-
", ".join(f"{colors.count(c)} {c}" for c in COLORS if c in colors)
|
206 |
-
)
|
207 |
-
if 'position' in req and matched:
|
208 |
-
# Relative position check
|
209 |
-
expected_rel, target_group = req['position']
|
210 |
-
if matched_groups[target_group] is None:
|
211 |
-
correct = matched = False
|
212 |
-
reason.append(f"no target for {classname} to be {expected_rel}")
|
213 |
-
else:
|
214 |
-
for obj in found_objects:
|
215 |
-
for target_obj in matched_groups[target_group]:
|
216 |
-
true_rels = relative_position(obj, target_obj)
|
217 |
-
if expected_rel not in true_rels:
|
218 |
-
correct = matched = False
|
219 |
-
reason.append(
|
220 |
-
f"expected {classname} {expected_rel} target, found " +
|
221 |
-
f"{' and '.join(true_rels)} target"
|
222 |
-
)
|
223 |
-
break
|
224 |
-
if not matched:
|
225 |
-
break
|
226 |
-
if matched:
|
227 |
-
matched_groups.append(found_objects)
|
228 |
-
else:
|
229 |
-
matched_groups.append(None)
|
230 |
-
# Check for non-expected objects
|
231 |
-
for req in metadata.get('exclude', []):
|
232 |
-
classname = req['class']
|
233 |
-
if len(objects.get(classname, [])) >= req['count']:
|
234 |
-
correct = False
|
235 |
-
reason.append(f"expected {classname}<{req['count']}, found {len(objects[classname])}")
|
236 |
-
return correct, "\n".join(reason)
|
237 |
-
|
238 |
-
|
239 |
-
def evaluate_image(filepath, metadata):
|
240 |
-
result = inference_detector(object_detector, filepath)
|
241 |
-
bbox = result[0] if isinstance(result, tuple) else result
|
242 |
-
segm = result[1] if isinstance(result, tuple) and len(result) > 1 else None
|
243 |
-
image = ImageOps.exif_transpose(Image.open(filepath))
|
244 |
-
detected = {}
|
245 |
-
# Determine bounding boxes to keep
|
246 |
-
confidence_threshold = THRESHOLD if metadata['tag'] != "counting" else COUNTING_THRESHOLD
|
247 |
-
for index, classname in enumerate(classnames):
|
248 |
-
ordering = np.argsort(bbox[index][:, 4])[::-1]
|
249 |
-
ordering = ordering[bbox[index][ordering, 4] > confidence_threshold] # Threshold
|
250 |
-
ordering = ordering[:MAX_OBJECTS].tolist() # Limit number of detected objects per class
|
251 |
-
detected[classname] = []
|
252 |
-
while ordering:
|
253 |
-
max_obj = ordering.pop(0)
|
254 |
-
detected[classname].append((bbox[index][max_obj], None if segm is None else segm[index][max_obj]))
|
255 |
-
ordering = [
|
256 |
-
obj for obj in ordering
|
257 |
-
if NMS_THRESHOLD == 1 or compute_iou(bbox[index][max_obj], bbox[index][obj]) < NMS_THRESHOLD
|
258 |
-
]
|
259 |
-
if not detected[classname]:
|
260 |
-
del detected[classname]
|
261 |
-
# Evaluate
|
262 |
-
is_correct, reason = evaluate(image, detected, metadata)
|
263 |
-
return {
|
264 |
-
'filename': filepath,
|
265 |
-
'tag': metadata['tag'],
|
266 |
-
'prompt': metadata['prompt'],
|
267 |
-
'correct': is_correct,
|
268 |
-
'reason': reason,
|
269 |
-
'metadata': json.dumps(metadata),
|
270 |
-
'details': json.dumps({
|
271 |
-
key: [box.tolist() for box, _ in value]
|
272 |
-
for key, value in detected.items()
|
273 |
-
})
|
274 |
-
}
|
275 |
-
|
276 |
-
|
277 |
-
if __name__ == "__main__":
|
278 |
-
args = parse_args()
|
279 |
-
THRESHOLD = float(args.options.get('threshold', 0.3))
|
280 |
-
COUNTING_THRESHOLD = float(args.options.get('counting_threshold', 0.9))
|
281 |
-
MAX_OBJECTS = int(args.options.get('max_objects', 16))
|
282 |
-
NMS_THRESHOLD = float(args.options.get('max_overlap', 1.0))
|
283 |
-
POSITION_THRESHOLD = float(args.options.get('position_threshold', 0.1))
|
284 |
-
|
285 |
-
# Initialize distributed environment
|
286 |
-
setup_distributed()
|
287 |
-
rank = dist.get_rank()
|
288 |
-
world_size = dist.get_world_size()
|
289 |
-
device = f"cuda:{rank}"
|
290 |
-
|
291 |
-
# Load models
|
292 |
-
if rank == 0:
|
293 |
-
print(f"[Rank 0] Loading model...")
|
294 |
-
object_detector, (clip_model, transform, tokenizer), classnames = load_models(args)
|
295 |
-
|
296 |
-
full_results = []
|
297 |
-
subfolders = [f for f in os.listdir(args.imagedir) if os.path.isdir(os.path.join(args.imagedir, f)) and f.isdigit()]
|
298 |
-
total_subfolders = len(subfolders)
|
299 |
-
# Divide subfolders to process by GPU
|
300 |
-
subfolders_per_gpu = (total_subfolders + world_size - 1) // world_size
|
301 |
-
start = rank * subfolders_per_gpu
|
302 |
-
end = min(start + subfolders_per_gpu, total_subfolders)
|
303 |
-
print(f"GPU {rank}: Processing {end - start} subfolders (index {start} to {end - 1})")
|
304 |
-
|
305 |
-
for subfolder in tqdm(subfolders[start:end]):
|
306 |
-
folderpath = os.path.join(args.imagedir, subfolder)
|
307 |
-
with open(os.path.join(folderpath, "metadata.jsonl")) as fp:
|
308 |
-
metadata = json.load(fp)
|
309 |
-
# Evaluate each image
|
310 |
-
for imagename in os.listdir(os.path.join(folderpath, "samples")):
|
311 |
-
imagepath = os.path.join(folderpath, "samples", imagename)
|
312 |
-
if not os.path.isfile(imagepath) or not re.match(r"\d+\.png", imagename):
|
313 |
-
continue
|
314 |
-
result = evaluate_image(imagepath, metadata)
|
315 |
-
full_results.append(result)
|
316 |
-
|
317 |
-
# Synchronize results from all GPUs
|
318 |
-
all_results = [None] * world_size
|
319 |
-
dist.all_gather_object(all_results, full_results)
|
320 |
-
if rank == 0:
|
321 |
-
# Merge results from all GPUs
|
322 |
-
final_results = []
|
323 |
-
for results in all_results:
|
324 |
-
final_results.extend(results)
|
325 |
-
# Save results
|
326 |
-
if os.path.dirname(args.outfile):
|
327 |
-
os.makedirs(os.path.dirname(args.outfile), exist_ok=True)
|
328 |
-
with open(args.outfile, "w") as fp:
|
329 |
-
pd.DataFrame(final_results).to_json(fp, orient="records", lines=True)
|
330 |
-
print("All GPUs have completed their tasks and the final results have been saved.")
|
331 |
-
else:
|
332 |
-
print(f"GPU {rank} has completed all tasks")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/geneval/evaluation/object_names.txt
DELETED
@@ -1,80 +0,0 @@
|
|
1 |
-
person
|
2 |
-
bicycle
|
3 |
-
car
|
4 |
-
motorcycle
|
5 |
-
airplane
|
6 |
-
bus
|
7 |
-
train
|
8 |
-
truck
|
9 |
-
boat
|
10 |
-
traffic light
|
11 |
-
fire hydrant
|
12 |
-
stop sign
|
13 |
-
parking meter
|
14 |
-
bench
|
15 |
-
bird
|
16 |
-
cat
|
17 |
-
dog
|
18 |
-
horse
|
19 |
-
sheep
|
20 |
-
cow
|
21 |
-
elephant
|
22 |
-
bear
|
23 |
-
zebra
|
24 |
-
giraffe
|
25 |
-
backpack
|
26 |
-
umbrella
|
27 |
-
handbag
|
28 |
-
tie
|
29 |
-
suitcase
|
30 |
-
frisbee
|
31 |
-
skis
|
32 |
-
snowboard
|
33 |
-
sports ball
|
34 |
-
kite
|
35 |
-
baseball bat
|
36 |
-
baseball glove
|
37 |
-
skateboard
|
38 |
-
surfboard
|
39 |
-
tennis racket
|
40 |
-
bottle
|
41 |
-
wine glass
|
42 |
-
cup
|
43 |
-
fork
|
44 |
-
knife
|
45 |
-
spoon
|
46 |
-
bowl
|
47 |
-
banana
|
48 |
-
apple
|
49 |
-
sandwich
|
50 |
-
orange
|
51 |
-
broccoli
|
52 |
-
carrot
|
53 |
-
hot dog
|
54 |
-
pizza
|
55 |
-
donut
|
56 |
-
cake
|
57 |
-
chair
|
58 |
-
couch
|
59 |
-
potted plant
|
60 |
-
bed
|
61 |
-
dining table
|
62 |
-
toilet
|
63 |
-
tv
|
64 |
-
laptop
|
65 |
-
computer mouse
|
66 |
-
tv remote
|
67 |
-
computer keyboard
|
68 |
-
cell phone
|
69 |
-
microwave
|
70 |
-
oven
|
71 |
-
toaster
|
72 |
-
sink
|
73 |
-
refrigerator
|
74 |
-
book
|
75 |
-
clock
|
76 |
-
vase
|
77 |
-
scissors
|
78 |
-
teddy bear
|
79 |
-
hair drier
|
80 |
-
toothbrush
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/geneval/evaluation/summary_scores.py
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 Dhruba Ghosh
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/djghosh13/geneval/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import os
|
14 |
-
|
15 |
-
import numpy as np
|
16 |
-
import pandas as pd
|
17 |
-
|
18 |
-
|
19 |
-
parser = argparse.ArgumentParser()
|
20 |
-
parser.add_argument("filename", type=str)
|
21 |
-
args = parser.parse_args()
|
22 |
-
|
23 |
-
# Load classnames
|
24 |
-
|
25 |
-
with open(os.path.join(os.path.dirname(__file__), "object_names.txt")) as cls_file:
|
26 |
-
classnames = [line.strip() for line in cls_file]
|
27 |
-
cls_to_idx = {"_".join(cls.split()):idx for idx, cls in enumerate(classnames)}
|
28 |
-
|
29 |
-
# Load results
|
30 |
-
|
31 |
-
df = pd.read_json(args.filename, orient="records", lines=True)
|
32 |
-
|
33 |
-
# Measure overall success
|
34 |
-
|
35 |
-
print("Summary")
|
36 |
-
print("=======")
|
37 |
-
print(f"Total images: {len(df)}")
|
38 |
-
print(f"Total prompts: {len(df.groupby('metadata'))}")
|
39 |
-
print(f"% correct images: {df['correct'].mean():.2%}")
|
40 |
-
print(f"% correct prompts: {df.groupby('metadata')['correct'].any().mean():.2%}")
|
41 |
-
print()
|
42 |
-
|
43 |
-
# By group
|
44 |
-
|
45 |
-
task_scores = []
|
46 |
-
|
47 |
-
print("Task breakdown")
|
48 |
-
print("==============")
|
49 |
-
for tag, task_df in df.groupby('tag', sort=False):
|
50 |
-
task_scores.append(task_df['correct'].mean())
|
51 |
-
print(f"{tag:<16} = {task_df['correct'].mean():.2%} ({task_df['correct'].sum()} / {len(task_df)})")
|
52 |
-
print()
|
53 |
-
|
54 |
-
print(f"Overall score (avg. over tasks): {np.mean(task_scores):.5f}")
|
55 |
-
|
56 |
-
|
57 |
-
print("\n\n==============")
|
58 |
-
output_info = "SO TO CT CL POS ATTR ALL\n"
|
59 |
-
for score in task_scores:
|
60 |
-
output_info += f"{score:.2f} "
|
61 |
-
output_info += f"{np.mean(task_scores):.2f}" + "\n"
|
62 |
-
print(output_info)
|
63 |
-
with open(os.path.join(os.path.dirname(args.filename), "geneval_results.txt"), "w") as f:
|
64 |
-
f.write(output_info)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/geneval/prompts/create_prompts.py
DELETED
@@ -1,194 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 Dhruba Ghosh
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/djghosh13/geneval/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
"""
|
13 |
-
Generate prompts for evaluation
|
14 |
-
"""
|
15 |
-
|
16 |
-
import argparse
|
17 |
-
import json
|
18 |
-
import os
|
19 |
-
import yaml
|
20 |
-
|
21 |
-
import numpy as np
|
22 |
-
|
23 |
-
# Load classnames
|
24 |
-
|
25 |
-
with open("object_names.txt") as cls_file:
|
26 |
-
classnames = [line.strip() for line in cls_file]
|
27 |
-
|
28 |
-
# Proper a vs an
|
29 |
-
|
30 |
-
def with_article(name: str):
|
31 |
-
if name[0] in "aeiou":
|
32 |
-
return f"an {name}"
|
33 |
-
return f"a {name}"
|
34 |
-
|
35 |
-
# Proper plural
|
36 |
-
|
37 |
-
def make_plural(name: str):
|
38 |
-
if name[-1] in "s":
|
39 |
-
return f"{name}es"
|
40 |
-
return f"{name}s"
|
41 |
-
|
42 |
-
# Generates single object samples
|
43 |
-
|
44 |
-
def generate_single_object_sample(rng: np.random.Generator, size: int = None):
|
45 |
-
TAG = "single_object"
|
46 |
-
if size > len(classnames):
|
47 |
-
size = len(classnames)
|
48 |
-
print(f"Not enough distinct classes, generating only {size} samples")
|
49 |
-
return_scalar = size is None
|
50 |
-
size = size or 1
|
51 |
-
idxs = rng.choice(len(classnames), size=size, replace=False)
|
52 |
-
samples = [dict(
|
53 |
-
tag=TAG,
|
54 |
-
include=[
|
55 |
-
{"class": classnames[idx], "count": 1}
|
56 |
-
],
|
57 |
-
prompt=f"a photo of {with_article(classnames[idx])}"
|
58 |
-
) for idx in idxs]
|
59 |
-
if return_scalar:
|
60 |
-
return samples[0]
|
61 |
-
return samples
|
62 |
-
|
63 |
-
# Generate two object samples
|
64 |
-
|
65 |
-
def generate_two_object_sample(rng: np.random.Generator):
|
66 |
-
TAG = "two_object"
|
67 |
-
idx_a, idx_b = rng.choice(len(classnames), size=2, replace=False)
|
68 |
-
return dict(
|
69 |
-
tag=TAG,
|
70 |
-
include=[
|
71 |
-
{"class": classnames[idx_a], "count": 1},
|
72 |
-
{"class": classnames[idx_b], "count": 1}
|
73 |
-
],
|
74 |
-
prompt=f"a photo of {with_article(classnames[idx_a])} and {with_article(classnames[idx_b])}"
|
75 |
-
)
|
76 |
-
|
77 |
-
# Generate counting samples
|
78 |
-
|
79 |
-
numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"]
|
80 |
-
|
81 |
-
def generate_counting_sample(rng: np.random.Generator, max_count=4):
|
82 |
-
TAG = "counting"
|
83 |
-
idx = rng.choice(len(classnames))
|
84 |
-
num = int(rng.integers(2, max_count, endpoint=True))
|
85 |
-
return dict(
|
86 |
-
tag=TAG,
|
87 |
-
include=[
|
88 |
-
{"class": classnames[idx], "count": num}
|
89 |
-
],
|
90 |
-
exclude=[
|
91 |
-
{"class": classnames[idx], "count": num + 1}
|
92 |
-
],
|
93 |
-
prompt=f"a photo of {numbers[num]} {make_plural(classnames[idx])}"
|
94 |
-
)
|
95 |
-
|
96 |
-
# Generate color samples
|
97 |
-
|
98 |
-
colors = ["red", "orange", "yellow", "green", "blue", "purple", "pink", "brown", "black", "white"]
|
99 |
-
|
100 |
-
def generate_color_sample(rng: np.random.Generator):
|
101 |
-
TAG = "colors"
|
102 |
-
idx = rng.choice(len(classnames) - 1) + 1
|
103 |
-
idx = (idx + classnames.index("person")) % len(classnames) # No "[COLOR] person" prompts
|
104 |
-
color = colors[rng.choice(len(colors))]
|
105 |
-
return dict(
|
106 |
-
tag=TAG,
|
107 |
-
include=[
|
108 |
-
{"class": classnames[idx], "count": 1, "color": color}
|
109 |
-
],
|
110 |
-
prompt=f"a photo of {with_article(color)} {classnames[idx]}"
|
111 |
-
)
|
112 |
-
|
113 |
-
# Generate position samples
|
114 |
-
|
115 |
-
positions = ["left of", "right of", "above", "below"]
|
116 |
-
|
117 |
-
def generate_position_sample(rng: np.random.Generator):
|
118 |
-
TAG = "position"
|
119 |
-
idx_a, idx_b = rng.choice(len(classnames), size=2, replace=False)
|
120 |
-
position = positions[rng.choice(len(positions))]
|
121 |
-
return dict(
|
122 |
-
tag=TAG,
|
123 |
-
include=[
|
124 |
-
{"class": classnames[idx_b], "count": 1},
|
125 |
-
{"class": classnames[idx_a], "count": 1, "position": (position, 0)}
|
126 |
-
],
|
127 |
-
prompt=f"a photo of {with_article(classnames[idx_a])} {position} {with_article(classnames[idx_b])}"
|
128 |
-
)
|
129 |
-
|
130 |
-
# Generate color attribution samples
|
131 |
-
|
132 |
-
def generate_color_attribution_sample(rng: np.random.Generator):
|
133 |
-
TAG = "color_attr"
|
134 |
-
idxs = rng.choice(len(classnames) - 1, size=2, replace=False) + 1
|
135 |
-
idx_a, idx_b = (idxs + classnames.index("person")) % len(classnames) # No "[COLOR] person" prompts
|
136 |
-
cidx_a, cidx_b = rng.choice(len(colors), size=2, replace=False)
|
137 |
-
return dict(
|
138 |
-
tag=TAG,
|
139 |
-
include=[
|
140 |
-
{"class": classnames[idx_a], "count": 1, "color": colors[cidx_a]},
|
141 |
-
{"class": classnames[idx_b], "count": 1, "color": colors[cidx_b]}
|
142 |
-
],
|
143 |
-
prompt=f"a photo of {with_article(colors[cidx_a])} {classnames[idx_a]} and {with_article(colors[cidx_b])} {classnames[idx_b]}"
|
144 |
-
)
|
145 |
-
|
146 |
-
|
147 |
-
# Generate evaluation suite
|
148 |
-
|
149 |
-
def generate_suite(rng: np.random.Generator, n: int = 100, output_path: str = ""):
|
150 |
-
samples = []
|
151 |
-
# Generate single object samples for all COCO classnames
|
152 |
-
samples.extend(generate_single_object_sample(rng, size=len(classnames)))
|
153 |
-
# Generate two object samples (~100)
|
154 |
-
for _ in range(n):
|
155 |
-
samples.append(generate_two_object_sample(rng))
|
156 |
-
# Generate counting samples
|
157 |
-
for _ in range(n):
|
158 |
-
samples.append(generate_counting_sample(rng, max_count=4))
|
159 |
-
# Generate color samples
|
160 |
-
for _ in range(n):
|
161 |
-
samples.append(generate_color_sample(rng))
|
162 |
-
# Generate position samples
|
163 |
-
for _ in range(n):
|
164 |
-
samples.append(generate_position_sample(rng))
|
165 |
-
# Generate color attribution samples
|
166 |
-
for _ in range(n):
|
167 |
-
samples.append(generate_color_attribution_sample(rng))
|
168 |
-
# De-duplicate
|
169 |
-
unique_samples, used_samples = [], set()
|
170 |
-
for sample in samples:
|
171 |
-
sample_text = yaml.safe_dump(sample)
|
172 |
-
if sample_text not in used_samples:
|
173 |
-
unique_samples.append(sample)
|
174 |
-
used_samples.add(sample_text)
|
175 |
-
|
176 |
-
# Write to files
|
177 |
-
os.makedirs(output_path, exist_ok=True)
|
178 |
-
with open(os.path.join(output_path, "generation_prompts.txt"), "w") as fp:
|
179 |
-
for sample in unique_samples:
|
180 |
-
print(sample['prompt'], file=fp)
|
181 |
-
with open(os.path.join(output_path, "evaluation_metadata.jsonl"), "w") as fp:
|
182 |
-
for sample in unique_samples:
|
183 |
-
print(json.dumps(sample), file=fp)
|
184 |
-
|
185 |
-
|
186 |
-
if __name__ == "__main__":
|
187 |
-
parser = argparse.ArgumentParser()
|
188 |
-
parser.add_argument("--seed", type=int, default=43, help="generation seed (default: 43)")
|
189 |
-
parser.add_argument("--num-prompts", "-n", type=int, default=100, help="number of prompts per task (default: 100)")
|
190 |
-
parser.add_argument("--output-path", "-o", type=str, default="prompts", help="output folder for prompts and metadata (default: 'prompts/')")
|
191 |
-
args = parser.parse_args()
|
192 |
-
rng = np.random.default_rng(args.seed)
|
193 |
-
generate_suite(rng, args.num_prompts, args.output_path)
|
194 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/geneval/prompts/evaluation_metadata.jsonl
DELETED
@@ -1,553 +0,0 @@
|
|
1 |
-
{"tag": "single_object", "include": [{"class": "bench", "count": 1}], "prompt": "a photo of a bench"}
|
2 |
-
{"tag": "single_object", "include": [{"class": "cow", "count": 1}], "prompt": "a photo of a cow"}
|
3 |
-
{"tag": "single_object", "include": [{"class": "bicycle", "count": 1}], "prompt": "a photo of a bicycle"}
|
4 |
-
{"tag": "single_object", "include": [{"class": "clock", "count": 1}], "prompt": "a photo of a clock"}
|
5 |
-
{"tag": "single_object", "include": [{"class": "carrot", "count": 1}], "prompt": "a photo of a carrot"}
|
6 |
-
{"tag": "single_object", "include": [{"class": "suitcase", "count": 1}], "prompt": "a photo of a suitcase"}
|
7 |
-
{"tag": "single_object", "include": [{"class": "fork", "count": 1}], "prompt": "a photo of a fork"}
|
8 |
-
{"tag": "single_object", "include": [{"class": "surfboard", "count": 1}], "prompt": "a photo of a surfboard"}
|
9 |
-
{"tag": "single_object", "include": [{"class": "refrigerator", "count": 1}], "prompt": "a photo of a refrigerator"}
|
10 |
-
{"tag": "single_object", "include": [{"class": "cup", "count": 1}], "prompt": "a photo of a cup"}
|
11 |
-
{"tag": "single_object", "include": [{"class": "microwave", "count": 1}], "prompt": "a photo of a microwave"}
|
12 |
-
{"tag": "single_object", "include": [{"class": "potted plant", "count": 1}], "prompt": "a photo of a potted plant"}
|
13 |
-
{"tag": "single_object", "include": [{"class": "snowboard", "count": 1}], "prompt": "a photo of a snowboard"}
|
14 |
-
{"tag": "single_object", "include": [{"class": "zebra", "count": 1}], "prompt": "a photo of a zebra"}
|
15 |
-
{"tag": "single_object", "include": [{"class": "parking meter", "count": 1}], "prompt": "a photo of a parking meter"}
|
16 |
-
{"tag": "single_object", "include": [{"class": "spoon", "count": 1}], "prompt": "a photo of a spoon"}
|
17 |
-
{"tag": "single_object", "include": [{"class": "skateboard", "count": 1}], "prompt": "a photo of a skateboard"}
|
18 |
-
{"tag": "single_object", "include": [{"class": "car", "count": 1}], "prompt": "a photo of a car"}
|
19 |
-
{"tag": "single_object", "include": [{"class": "motorcycle", "count": 1}], "prompt": "a photo of a motorcycle"}
|
20 |
-
{"tag": "single_object", "include": [{"class": "traffic light", "count": 1}], "prompt": "a photo of a traffic light"}
|
21 |
-
{"tag": "single_object", "include": [{"class": "book", "count": 1}], "prompt": "a photo of a book"}
|
22 |
-
{"tag": "single_object", "include": [{"class": "couch", "count": 1}], "prompt": "a photo of a couch"}
|
23 |
-
{"tag": "single_object", "include": [{"class": "backpack", "count": 1}], "prompt": "a photo of a backpack"}
|
24 |
-
{"tag": "single_object", "include": [{"class": "computer keyboard", "count": 1}], "prompt": "a photo of a computer keyboard"}
|
25 |
-
{"tag": "single_object", "include": [{"class": "toaster", "count": 1}], "prompt": "a photo of a toaster"}
|
26 |
-
{"tag": "single_object", "include": [{"class": "bird", "count": 1}], "prompt": "a photo of a bird"}
|
27 |
-
{"tag": "single_object", "include": [{"class": "bowl", "count": 1}], "prompt": "a photo of a bowl"}
|
28 |
-
{"tag": "single_object", "include": [{"class": "dog", "count": 1}], "prompt": "a photo of a dog"}
|
29 |
-
{"tag": "single_object", "include": [{"class": "tie", "count": 1}], "prompt": "a photo of a tie"}
|
30 |
-
{"tag": "single_object", "include": [{"class": "laptop", "count": 1}], "prompt": "a photo of a laptop"}
|
31 |
-
{"tag": "single_object", "include": [{"class": "computer mouse", "count": 1}], "prompt": "a photo of a computer mouse"}
|
32 |
-
{"tag": "single_object", "include": [{"class": "sandwich", "count": 1}], "prompt": "a photo of a sandwich"}
|
33 |
-
{"tag": "single_object", "include": [{"class": "baseball bat", "count": 1}], "prompt": "a photo of a baseball bat"}
|
34 |
-
{"tag": "single_object", "include": [{"class": "train", "count": 1}], "prompt": "a photo of a train"}
|
35 |
-
{"tag": "single_object", "include": [{"class": "cell phone", "count": 1}], "prompt": "a photo of a cell phone"}
|
36 |
-
{"tag": "single_object", "include": [{"class": "chair", "count": 1}], "prompt": "a photo of a chair"}
|
37 |
-
{"tag": "single_object", "include": [{"class": "tv", "count": 1}], "prompt": "a photo of a tv"}
|
38 |
-
{"tag": "single_object", "include": [{"class": "broccoli", "count": 1}], "prompt": "a photo of a broccoli"}
|
39 |
-
{"tag": "single_object", "include": [{"class": "bed", "count": 1}], "prompt": "a photo of a bed"}
|
40 |
-
{"tag": "single_object", "include": [{"class": "skis", "count": 1}], "prompt": "a photo of a skis"}
|
41 |
-
{"tag": "single_object", "include": [{"class": "handbag", "count": 1}], "prompt": "a photo of a handbag"}
|
42 |
-
{"tag": "single_object", "include": [{"class": "pizza", "count": 1}], "prompt": "a photo of a pizza"}
|
43 |
-
{"tag": "single_object", "include": [{"class": "frisbee", "count": 1}], "prompt": "a photo of a frisbee"}
|
44 |
-
{"tag": "single_object", "include": [{"class": "scissors", "count": 1}], "prompt": "a photo of a scissors"}
|
45 |
-
{"tag": "single_object", "include": [{"class": "bottle", "count": 1}], "prompt": "a photo of a bottle"}
|
46 |
-
{"tag": "single_object", "include": [{"class": "elephant", "count": 1}], "prompt": "a photo of an elephant"}
|
47 |
-
{"tag": "single_object", "include": [{"class": "toilet", "count": 1}], "prompt": "a photo of a toilet"}
|
48 |
-
{"tag": "single_object", "include": [{"class": "oven", "count": 1}], "prompt": "a photo of an oven"}
|
49 |
-
{"tag": "single_object", "include": [{"class": "orange", "count": 1}], "prompt": "a photo of an orange"}
|
50 |
-
{"tag": "single_object", "include": [{"class": "person", "count": 1}], "prompt": "a photo of a person"}
|
51 |
-
{"tag": "single_object", "include": [{"class": "teddy bear", "count": 1}], "prompt": "a photo of a teddy bear"}
|
52 |
-
{"tag": "single_object", "include": [{"class": "vase", "count": 1}], "prompt": "a photo of a vase"}
|
53 |
-
{"tag": "single_object", "include": [{"class": "banana", "count": 1}], "prompt": "a photo of a banana"}
|
54 |
-
{"tag": "single_object", "include": [{"class": "toothbrush", "count": 1}], "prompt": "a photo of a toothbrush"}
|
55 |
-
{"tag": "single_object", "include": [{"class": "tv remote", "count": 1}], "prompt": "a photo of a tv remote"}
|
56 |
-
{"tag": "single_object", "include": [{"class": "dining table", "count": 1}], "prompt": "a photo of a dining table"}
|
57 |
-
{"tag": "single_object", "include": [{"class": "stop sign", "count": 1}], "prompt": "a photo of a stop sign"}
|
58 |
-
{"tag": "single_object", "include": [{"class": "sheep", "count": 1}], "prompt": "a photo of a sheep"}
|
59 |
-
{"tag": "single_object", "include": [{"class": "fire hydrant", "count": 1}], "prompt": "a photo of a fire hydrant"}
|
60 |
-
{"tag": "single_object", "include": [{"class": "airplane", "count": 1}], "prompt": "a photo of an airplane"}
|
61 |
-
{"tag": "single_object", "include": [{"class": "giraffe", "count": 1}], "prompt": "a photo of a giraffe"}
|
62 |
-
{"tag": "single_object", "include": [{"class": "horse", "count": 1}], "prompt": "a photo of a horse"}
|
63 |
-
{"tag": "single_object", "include": [{"class": "cat", "count": 1}], "prompt": "a photo of a cat"}
|
64 |
-
{"tag": "single_object", "include": [{"class": "donut", "count": 1}], "prompt": "a photo of a donut"}
|
65 |
-
{"tag": "single_object", "include": [{"class": "boat", "count": 1}], "prompt": "a photo of a boat"}
|
66 |
-
{"tag": "single_object", "include": [{"class": "baseball glove", "count": 1}], "prompt": "a photo of a baseball glove"}
|
67 |
-
{"tag": "single_object", "include": [{"class": "hair drier", "count": 1}], "prompt": "a photo of a hair drier"}
|
68 |
-
{"tag": "single_object", "include": [{"class": "sink", "count": 1}], "prompt": "a photo of a sink"}
|
69 |
-
{"tag": "single_object", "include": [{"class": "cake", "count": 1}], "prompt": "a photo of a cake"}
|
70 |
-
{"tag": "single_object", "include": [{"class": "wine glass", "count": 1}], "prompt": "a photo of a wine glass"}
|
71 |
-
{"tag": "single_object", "include": [{"class": "apple", "count": 1}], "prompt": "a photo of an apple"}
|
72 |
-
{"tag": "single_object", "include": [{"class": "bus", "count": 1}], "prompt": "a photo of a bus"}
|
73 |
-
{"tag": "single_object", "include": [{"class": "tennis racket", "count": 1}], "prompt": "a photo of a tennis racket"}
|
74 |
-
{"tag": "single_object", "include": [{"class": "knife", "count": 1}], "prompt": "a photo of a knife"}
|
75 |
-
{"tag": "single_object", "include": [{"class": "hot dog", "count": 1}], "prompt": "a photo of a hot dog"}
|
76 |
-
{"tag": "single_object", "include": [{"class": "truck", "count": 1}], "prompt": "a photo of a truck"}
|
77 |
-
{"tag": "single_object", "include": [{"class": "umbrella", "count": 1}], "prompt": "a photo of an umbrella"}
|
78 |
-
{"tag": "single_object", "include": [{"class": "sports ball", "count": 1}], "prompt": "a photo of a sports ball"}
|
79 |
-
{"tag": "single_object", "include": [{"class": "bear", "count": 1}], "prompt": "a photo of a bear"}
|
80 |
-
{"tag": "single_object", "include": [{"class": "kite", "count": 1}], "prompt": "a photo of a kite"}
|
81 |
-
{"tag": "two_object", "include": [{"class": "bench", "count": 1}, {"class": "sports ball", "count": 1}], "prompt": "a photo of a bench and a sports ball"}
|
82 |
-
{"tag": "two_object", "include": [{"class": "toothbrush", "count": 1}, {"class": "snowboard", "count": 1}], "prompt": "a photo of a toothbrush and a snowboard"}
|
83 |
-
{"tag": "two_object", "include": [{"class": "toaster", "count": 1}, {"class": "oven", "count": 1}], "prompt": "a photo of a toaster and an oven"}
|
84 |
-
{"tag": "two_object", "include": [{"class": "broccoli", "count": 1}, {"class": "vase", "count": 1}], "prompt": "a photo of a broccoli and a vase"}
|
85 |
-
{"tag": "two_object", "include": [{"class": "tennis racket", "count": 1}, {"class": "wine glass", "count": 1}], "prompt": "a photo of a tennis racket and a wine glass"}
|
86 |
-
{"tag": "two_object", "include": [{"class": "fork", "count": 1}, {"class": "knife", "count": 1}], "prompt": "a photo of a fork and a knife"}
|
87 |
-
{"tag": "two_object", "include": [{"class": "hair drier", "count": 1}, {"class": "cake", "count": 1}], "prompt": "a photo of a hair drier and a cake"}
|
88 |
-
{"tag": "two_object", "include": [{"class": "horse", "count": 1}, {"class": "giraffe", "count": 1}], "prompt": "a photo of a horse and a giraffe"}
|
89 |
-
{"tag": "two_object", "include": [{"class": "horse", "count": 1}, {"class": "computer keyboard", "count": 1}], "prompt": "a photo of a horse and a computer keyboard"}
|
90 |
-
{"tag": "two_object", "include": [{"class": "toothbrush", "count": 1}, {"class": "carrot", "count": 1}], "prompt": "a photo of a toothbrush and a carrot"}
|
91 |
-
{"tag": "two_object", "include": [{"class": "cake", "count": 1}, {"class": "zebra", "count": 1}], "prompt": "a photo of a cake and a zebra"}
|
92 |
-
{"tag": "two_object", "include": [{"class": "hair drier", "count": 1}, {"class": "bear", "count": 1}], "prompt": "a photo of a hair drier and a bear"}
|
93 |
-
{"tag": "two_object", "include": [{"class": "knife", "count": 1}, {"class": "zebra", "count": 1}], "prompt": "a photo of a knife and a zebra"}
|
94 |
-
{"tag": "two_object", "include": [{"class": "couch", "count": 1}, {"class": "wine glass", "count": 1}], "prompt": "a photo of a couch and a wine glass"}
|
95 |
-
{"tag": "two_object", "include": [{"class": "frisbee", "count": 1}, {"class": "vase", "count": 1}], "prompt": "a photo of a frisbee and a vase"}
|
96 |
-
{"tag": "two_object", "include": [{"class": "book", "count": 1}, {"class": "laptop", "count": 1}], "prompt": "a photo of a book and a laptop"}
|
97 |
-
{"tag": "two_object", "include": [{"class": "dining table", "count": 1}, {"class": "bear", "count": 1}], "prompt": "a photo of a dining table and a bear"}
|
98 |
-
{"tag": "two_object", "include": [{"class": "frisbee", "count": 1}, {"class": "couch", "count": 1}], "prompt": "a photo of a frisbee and a couch"}
|
99 |
-
{"tag": "two_object", "include": [{"class": "couch", "count": 1}, {"class": "horse", "count": 1}], "prompt": "a photo of a couch and a horse"}
|
100 |
-
{"tag": "two_object", "include": [{"class": "toilet", "count": 1}, {"class": "computer mouse", "count": 1}], "prompt": "a photo of a toilet and a computer mouse"}
|
101 |
-
{"tag": "two_object", "include": [{"class": "bottle", "count": 1}, {"class": "refrigerator", "count": 1}], "prompt": "a photo of a bottle and a refrigerator"}
|
102 |
-
{"tag": "two_object", "include": [{"class": "potted plant", "count": 1}, {"class": "backpack", "count": 1}], "prompt": "a photo of a potted plant and a backpack"}
|
103 |
-
{"tag": "two_object", "include": [{"class": "skateboard", "count": 1}, {"class": "cake", "count": 1}], "prompt": "a photo of a skateboard and a cake"}
|
104 |
-
{"tag": "two_object", "include": [{"class": "broccoli", "count": 1}, {"class": "parking meter", "count": 1}], "prompt": "a photo of a broccoli and a parking meter"}
|
105 |
-
{"tag": "two_object", "include": [{"class": "zebra", "count": 1}, {"class": "bed", "count": 1}], "prompt": "a photo of a zebra and a bed"}
|
106 |
-
{"tag": "two_object", "include": [{"class": "oven", "count": 1}, {"class": "bed", "count": 1}], "prompt": "a photo of an oven and a bed"}
|
107 |
-
{"tag": "two_object", "include": [{"class": "baseball bat", "count": 1}, {"class": "fork", "count": 1}], "prompt": "a photo of a baseball bat and a fork"}
|
108 |
-
{"tag": "two_object", "include": [{"class": "vase", "count": 1}, {"class": "spoon", "count": 1}], "prompt": "a photo of a vase and a spoon"}
|
109 |
-
{"tag": "two_object", "include": [{"class": "skateboard", "count": 1}, {"class": "sink", "count": 1}], "prompt": "a photo of a skateboard and a sink"}
|
110 |
-
{"tag": "two_object", "include": [{"class": "pizza", "count": 1}, {"class": "bench", "count": 1}], "prompt": "a photo of a pizza and a bench"}
|
111 |
-
{"tag": "two_object", "include": [{"class": "bowl", "count": 1}, {"class": "pizza", "count": 1}], "prompt": "a photo of a bowl and a pizza"}
|
112 |
-
{"tag": "two_object", "include": [{"class": "tennis racket", "count": 1}, {"class": "bird", "count": 1}], "prompt": "a photo of a tennis racket and a bird"}
|
113 |
-
{"tag": "two_object", "include": [{"class": "wine glass", "count": 1}, {"class": "bear", "count": 1}], "prompt": "a photo of a wine glass and a bear"}
|
114 |
-
{"tag": "two_object", "include": [{"class": "fork", "count": 1}, {"class": "book", "count": 1}], "prompt": "a photo of a fork and a book"}
|
115 |
-
{"tag": "two_object", "include": [{"class": "scissors", "count": 1}, {"class": "bowl", "count": 1}], "prompt": "a photo of a scissors and a bowl"}
|
116 |
-
{"tag": "two_object", "include": [{"class": "laptop", "count": 1}, {"class": "carrot", "count": 1}], "prompt": "a photo of a laptop and a carrot"}
|
117 |
-
{"tag": "two_object", "include": [{"class": "stop sign", "count": 1}, {"class": "bottle", "count": 1}], "prompt": "a photo of a stop sign and a bottle"}
|
118 |
-
{"tag": "two_object", "include": [{"class": "microwave", "count": 1}, {"class": "truck", "count": 1}], "prompt": "a photo of a microwave and a truck"}
|
119 |
-
{"tag": "two_object", "include": [{"class": "person", "count": 1}, {"class": "bear", "count": 1}], "prompt": "a photo of a person and a bear"}
|
120 |
-
{"tag": "two_object", "include": [{"class": "frisbee", "count": 1}, {"class": "cell phone", "count": 1}], "prompt": "a photo of a frisbee and a cell phone"}
|
121 |
-
{"tag": "two_object", "include": [{"class": "parking meter", "count": 1}, {"class": "teddy bear", "count": 1}], "prompt": "a photo of a parking meter and a teddy bear"}
|
122 |
-
{"tag": "two_object", "include": [{"class": "tennis racket", "count": 1}, {"class": "bicycle", "count": 1}], "prompt": "a photo of a tennis racket and a bicycle"}
|
123 |
-
{"tag": "two_object", "include": [{"class": "stop sign", "count": 1}, {"class": "motorcycle", "count": 1}], "prompt": "a photo of a stop sign and a motorcycle"}
|
124 |
-
{"tag": "two_object", "include": [{"class": "fire hydrant", "count": 1}, {"class": "tennis racket", "count": 1}], "prompt": "a photo of a fire hydrant and a tennis racket"}
|
125 |
-
{"tag": "two_object", "include": [{"class": "scissors", "count": 1}, {"class": "sandwich", "count": 1}], "prompt": "a photo of a scissors and a sandwich"}
|
126 |
-
{"tag": "two_object", "include": [{"class": "pizza", "count": 1}, {"class": "book", "count": 1}], "prompt": "a photo of a pizza and a book"}
|
127 |
-
{"tag": "two_object", "include": [{"class": "giraffe", "count": 1}, {"class": "computer mouse", "count": 1}], "prompt": "a photo of a giraffe and a computer mouse"}
|
128 |
-
{"tag": "two_object", "include": [{"class": "stop sign", "count": 1}, {"class": "toaster", "count": 1}], "prompt": "a photo of a stop sign and a toaster"}
|
129 |
-
{"tag": "two_object", "include": [{"class": "computer mouse", "count": 1}, {"class": "zebra", "count": 1}], "prompt": "a photo of a computer mouse and a zebra"}
|
130 |
-
{"tag": "two_object", "include": [{"class": "chair", "count": 1}, {"class": "bench", "count": 1}], "prompt": "a photo of a chair and a bench"}
|
131 |
-
{"tag": "two_object", "include": [{"class": "tv", "count": 1}, {"class": "carrot", "count": 1}], "prompt": "a photo of a tv and a carrot"}
|
132 |
-
{"tag": "two_object", "include": [{"class": "surfboard", "count": 1}, {"class": "suitcase", "count": 1}], "prompt": "a photo of a surfboard and a suitcase"}
|
133 |
-
{"tag": "two_object", "include": [{"class": "computer keyboard", "count": 1}, {"class": "laptop", "count": 1}], "prompt": "a photo of a computer keyboard and a laptop"}
|
134 |
-
{"tag": "two_object", "include": [{"class": "computer keyboard", "count": 1}, {"class": "microwave", "count": 1}], "prompt": "a photo of a computer keyboard and a microwave"}
|
135 |
-
{"tag": "two_object", "include": [{"class": "scissors", "count": 1}, {"class": "bird", "count": 1}], "prompt": "a photo of a scissors and a bird"}
|
136 |
-
{"tag": "two_object", "include": [{"class": "person", "count": 1}, {"class": "snowboard", "count": 1}], "prompt": "a photo of a person and a snowboard"}
|
137 |
-
{"tag": "two_object", "include": [{"class": "cow", "count": 1}, {"class": "horse", "count": 1}], "prompt": "a photo of a cow and a horse"}
|
138 |
-
{"tag": "two_object", "include": [{"class": "handbag", "count": 1}, {"class": "refrigerator", "count": 1}], "prompt": "a photo of a handbag and a refrigerator"}
|
139 |
-
{"tag": "two_object", "include": [{"class": "chair", "count": 1}, {"class": "laptop", "count": 1}], "prompt": "a photo of a chair and a laptop"}
|
140 |
-
{"tag": "two_object", "include": [{"class": "toothbrush", "count": 1}, {"class": "bench", "count": 1}], "prompt": "a photo of a toothbrush and a bench"}
|
141 |
-
{"tag": "two_object", "include": [{"class": "book", "count": 1}, {"class": "baseball bat", "count": 1}], "prompt": "a photo of a book and a baseball bat"}
|
142 |
-
{"tag": "two_object", "include": [{"class": "horse", "count": 1}, {"class": "train", "count": 1}], "prompt": "a photo of a horse and a train"}
|
143 |
-
{"tag": "two_object", "include": [{"class": "bench", "count": 1}, {"class": "vase", "count": 1}], "prompt": "a photo of a bench and a vase"}
|
144 |
-
{"tag": "two_object", "include": [{"class": "traffic light", "count": 1}, {"class": "backpack", "count": 1}], "prompt": "a photo of a traffic light and a backpack"}
|
145 |
-
{"tag": "two_object", "include": [{"class": "sports ball", "count": 1}, {"class": "cow", "count": 1}], "prompt": "a photo of a sports ball and a cow"}
|
146 |
-
{"tag": "two_object", "include": [{"class": "computer mouse", "count": 1}, {"class": "spoon", "count": 1}], "prompt": "a photo of a computer mouse and a spoon"}
|
147 |
-
{"tag": "two_object", "include": [{"class": "tv", "count": 1}, {"class": "bicycle", "count": 1}], "prompt": "a photo of a tv and a bicycle"}
|
148 |
-
{"tag": "two_object", "include": [{"class": "bench", "count": 1}, {"class": "snowboard", "count": 1}], "prompt": "a photo of a bench and a snowboard"}
|
149 |
-
{"tag": "two_object", "include": [{"class": "toothbrush", "count": 1}, {"class": "toilet", "count": 1}], "prompt": "a photo of a toothbrush and a toilet"}
|
150 |
-
{"tag": "two_object", "include": [{"class": "person", "count": 1}, {"class": "apple", "count": 1}], "prompt": "a photo of a person and an apple"}
|
151 |
-
{"tag": "two_object", "include": [{"class": "sink", "count": 1}, {"class": "sports ball", "count": 1}], "prompt": "a photo of a sink and a sports ball"}
|
152 |
-
{"tag": "two_object", "include": [{"class": "stop sign", "count": 1}, {"class": "dog", "count": 1}], "prompt": "a photo of a stop sign and a dog"}
|
153 |
-
{"tag": "two_object", "include": [{"class": "knife", "count": 1}, {"class": "stop sign", "count": 1}], "prompt": "a photo of a knife and a stop sign"}
|
154 |
-
{"tag": "two_object", "include": [{"class": "wine glass", "count": 1}, {"class": "handbag", "count": 1}], "prompt": "a photo of a wine glass and a handbag"}
|
155 |
-
{"tag": "two_object", "include": [{"class": "bowl", "count": 1}, {"class": "skis", "count": 1}], "prompt": "a photo of a bowl and a skis"}
|
156 |
-
{"tag": "two_object", "include": [{"class": "frisbee", "count": 1}, {"class": "apple", "count": 1}], "prompt": "a photo of a frisbee and an apple"}
|
157 |
-
{"tag": "two_object", "include": [{"class": "computer keyboard", "count": 1}, {"class": "cell phone", "count": 1}], "prompt": "a photo of a computer keyboard and a cell phone"}
|
158 |
-
{"tag": "two_object", "include": [{"class": "stop sign", "count": 1}, {"class": "fork", "count": 1}], "prompt": "a photo of a stop sign and a fork"}
|
159 |
-
{"tag": "two_object", "include": [{"class": "potted plant", "count": 1}, {"class": "boat", "count": 1}], "prompt": "a photo of a potted plant and a boat"}
|
160 |
-
{"tag": "two_object", "include": [{"class": "tv", "count": 1}, {"class": "cell phone", "count": 1}], "prompt": "a photo of a tv and a cell phone"}
|
161 |
-
{"tag": "two_object", "include": [{"class": "tie", "count": 1}, {"class": "broccoli", "count": 1}], "prompt": "a photo of a tie and a broccoli"}
|
162 |
-
{"tag": "two_object", "include": [{"class": "potted plant", "count": 1}, {"class": "donut", "count": 1}], "prompt": "a photo of a potted plant and a donut"}
|
163 |
-
{"tag": "two_object", "include": [{"class": "person", "count": 1}, {"class": "sink", "count": 1}], "prompt": "a photo of a person and a sink"}
|
164 |
-
{"tag": "two_object", "include": [{"class": "couch", "count": 1}, {"class": "snowboard", "count": 1}], "prompt": "a photo of a couch and a snowboard"}
|
165 |
-
{"tag": "two_object", "include": [{"class": "fork", "count": 1}, {"class": "baseball glove", "count": 1}], "prompt": "a photo of a fork and a baseball glove"}
|
166 |
-
{"tag": "two_object", "include": [{"class": "apple", "count": 1}, {"class": "toothbrush", "count": 1}], "prompt": "a photo of an apple and a toothbrush"}
|
167 |
-
{"tag": "two_object", "include": [{"class": "bus", "count": 1}, {"class": "baseball glove", "count": 1}], "prompt": "a photo of a bus and a baseball glove"}
|
168 |
-
{"tag": "two_object", "include": [{"class": "person", "count": 1}, {"class": "stop sign", "count": 1}], "prompt": "a photo of a person and a stop sign"}
|
169 |
-
{"tag": "two_object", "include": [{"class": "carrot", "count": 1}, {"class": "couch", "count": 1}], "prompt": "a photo of a carrot and a couch"}
|
170 |
-
{"tag": "two_object", "include": [{"class": "baseball bat", "count": 1}, {"class": "bear", "count": 1}], "prompt": "a photo of a baseball bat and a bear"}
|
171 |
-
{"tag": "two_object", "include": [{"class": "fire hydrant", "count": 1}, {"class": "train", "count": 1}], "prompt": "a photo of a fire hydrant and a train"}
|
172 |
-
{"tag": "two_object", "include": [{"class": "baseball glove", "count": 1}, {"class": "carrot", "count": 1}], "prompt": "a photo of a baseball glove and a carrot"}
|
173 |
-
{"tag": "two_object", "include": [{"class": "microwave", "count": 1}, {"class": "bench", "count": 1}], "prompt": "a photo of a microwave and a bench"}
|
174 |
-
{"tag": "two_object", "include": [{"class": "cake", "count": 1}, {"class": "stop sign", "count": 1}], "prompt": "a photo of a cake and a stop sign"}
|
175 |
-
{"tag": "two_object", "include": [{"class": "car", "count": 1}, {"class": "computer mouse", "count": 1}], "prompt": "a photo of a car and a computer mouse"}
|
176 |
-
{"tag": "two_object", "include": [{"class": "suitcase", "count": 1}, {"class": "dining table", "count": 1}], "prompt": "a photo of a suitcase and a dining table"}
|
177 |
-
{"tag": "two_object", "include": [{"class": "person", "count": 1}, {"class": "traffic light", "count": 1}], "prompt": "a photo of a person and a traffic light"}
|
178 |
-
{"tag": "two_object", "include": [{"class": "cell phone", "count": 1}, {"class": "horse", "count": 1}], "prompt": "a photo of a cell phone and a horse"}
|
179 |
-
{"tag": "two_object", "include": [{"class": "baseball bat", "count": 1}, {"class": "giraffe", "count": 1}], "prompt": "a photo of a baseball bat and a giraffe"}
|
180 |
-
{"tag": "counting", "include": [{"class": "clock", "count": 2}], "exclude": [{"class": "clock", "count": 3}], "prompt": "a photo of two clocks"}
|
181 |
-
{"tag": "counting", "include": [{"class": "backpack", "count": 2}], "exclude": [{"class": "backpack", "count": 3}], "prompt": "a photo of two backpacks"}
|
182 |
-
{"tag": "counting", "include": [{"class": "handbag", "count": 4}], "exclude": [{"class": "handbag", "count": 5}], "prompt": "a photo of four handbags"}
|
183 |
-
{"tag": "counting", "include": [{"class": "frisbee", "count": 2}], "exclude": [{"class": "frisbee", "count": 3}], "prompt": "a photo of two frisbees"}
|
184 |
-
{"tag": "counting", "include": [{"class": "sports ball", "count": 3}], "exclude": [{"class": "sports ball", "count": 4}], "prompt": "a photo of three sports balls"}
|
185 |
-
{"tag": "counting", "include": [{"class": "bear", "count": 2}], "exclude": [{"class": "bear", "count": 3}], "prompt": "a photo of two bears"}
|
186 |
-
{"tag": "counting", "include": [{"class": "tie", "count": 2}], "exclude": [{"class": "tie", "count": 3}], "prompt": "a photo of two ties"}
|
187 |
-
{"tag": "counting", "include": [{"class": "sink", "count": 4}], "exclude": [{"class": "sink", "count": 5}], "prompt": "a photo of four sinks"}
|
188 |
-
{"tag": "counting", "include": [{"class": "toothbrush", "count": 2}], "exclude": [{"class": "toothbrush", "count": 3}], "prompt": "a photo of two toothbrushs"}
|
189 |
-
{"tag": "counting", "include": [{"class": "person", "count": 3}], "exclude": [{"class": "person", "count": 4}], "prompt": "a photo of three persons"}
|
190 |
-
{"tag": "counting", "include": [{"class": "tennis racket", "count": 3}], "exclude": [{"class": "tennis racket", "count": 4}], "prompt": "a photo of three tennis rackets"}
|
191 |
-
{"tag": "counting", "include": [{"class": "bowl", "count": 4}], "exclude": [{"class": "bowl", "count": 5}], "prompt": "a photo of four bowls"}
|
192 |
-
{"tag": "counting", "include": [{"class": "vase", "count": 4}], "exclude": [{"class": "vase", "count": 5}], "prompt": "a photo of four vases"}
|
193 |
-
{"tag": "counting", "include": [{"class": "cup", "count": 3}], "exclude": [{"class": "cup", "count": 4}], "prompt": "a photo of three cups"}
|
194 |
-
{"tag": "counting", "include": [{"class": "computer keyboard", "count": 4}], "exclude": [{"class": "computer keyboard", "count": 5}], "prompt": "a photo of four computer keyboards"}
|
195 |
-
{"tag": "counting", "include": [{"class": "sink", "count": 3}], "exclude": [{"class": "sink", "count": 4}], "prompt": "a photo of three sinks"}
|
196 |
-
{"tag": "counting", "include": [{"class": "oven", "count": 2}], "exclude": [{"class": "oven", "count": 3}], "prompt": "a photo of two ovens"}
|
197 |
-
{"tag": "counting", "include": [{"class": "toilet", "count": 2}], "exclude": [{"class": "toilet", "count": 3}], "prompt": "a photo of two toilets"}
|
198 |
-
{"tag": "counting", "include": [{"class": "bicycle", "count": 2}], "exclude": [{"class": "bicycle", "count": 3}], "prompt": "a photo of two bicycles"}
|
199 |
-
{"tag": "counting", "include": [{"class": "train", "count": 2}], "exclude": [{"class": "train", "count": 3}], "prompt": "a photo of two trains"}
|
200 |
-
{"tag": "counting", "include": [{"class": "orange", "count": 3}], "exclude": [{"class": "orange", "count": 4}], "prompt": "a photo of three oranges"}
|
201 |
-
{"tag": "counting", "include": [{"class": "bus", "count": 3}], "exclude": [{"class": "bus", "count": 4}], "prompt": "a photo of three buses"}
|
202 |
-
{"tag": "counting", "include": [{"class": "handbag", "count": 3}], "exclude": [{"class": "handbag", "count": 4}], "prompt": "a photo of three handbags"}
|
203 |
-
{"tag": "counting", "include": [{"class": "snowboard", "count": 3}], "exclude": [{"class": "snowboard", "count": 4}], "prompt": "a photo of three snowboards"}
|
204 |
-
{"tag": "counting", "include": [{"class": "snowboard", "count": 2}], "exclude": [{"class": "snowboard", "count": 3}], "prompt": "a photo of two snowboards"}
|
205 |
-
{"tag": "counting", "include": [{"class": "dog", "count": 4}], "exclude": [{"class": "dog", "count": 5}], "prompt": "a photo of four dogs"}
|
206 |
-
{"tag": "counting", "include": [{"class": "apple", "count": 3}], "exclude": [{"class": "apple", "count": 4}], "prompt": "a photo of three apples"}
|
207 |
-
{"tag": "counting", "include": [{"class": "sheep", "count": 2}], "exclude": [{"class": "sheep", "count": 3}], "prompt": "a photo of two sheeps"}
|
208 |
-
{"tag": "counting", "include": [{"class": "hot dog", "count": 3}], "exclude": [{"class": "hot dog", "count": 4}], "prompt": "a photo of three hot dogs"}
|
209 |
-
{"tag": "counting", "include": [{"class": "zebra", "count": 3}], "exclude": [{"class": "zebra", "count": 4}], "prompt": "a photo of three zebras"}
|
210 |
-
{"tag": "counting", "include": [{"class": "kite", "count": 3}], "exclude": [{"class": "kite", "count": 4}], "prompt": "a photo of three kites"}
|
211 |
-
{"tag": "counting", "include": [{"class": "apple", "count": 4}], "exclude": [{"class": "apple", "count": 5}], "prompt": "a photo of four apples"}
|
212 |
-
{"tag": "counting", "include": [{"class": "cell phone", "count": 3}], "exclude": [{"class": "cell phone", "count": 4}], "prompt": "a photo of three cell phones"}
|
213 |
-
{"tag": "counting", "include": [{"class": "baseball glove", "count": 4}], "exclude": [{"class": "baseball glove", "count": 5}], "prompt": "a photo of four baseball gloves"}
|
214 |
-
{"tag": "counting", "include": [{"class": "computer keyboard", "count": 3}], "exclude": [{"class": "computer keyboard", "count": 4}], "prompt": "a photo of three computer keyboards"}
|
215 |
-
{"tag": "counting", "include": [{"class": "bed", "count": 2}], "exclude": [{"class": "bed", "count": 3}], "prompt": "a photo of two beds"}
|
216 |
-
{"tag": "counting", "include": [{"class": "tv remote", "count": 2}], "exclude": [{"class": "tv remote", "count": 3}], "prompt": "a photo of two tv remotes"}
|
217 |
-
{"tag": "counting", "include": [{"class": "fire hydrant", "count": 3}], "exclude": [{"class": "fire hydrant", "count": 4}], "prompt": "a photo of three fire hydrants"}
|
218 |
-
{"tag": "counting", "include": [{"class": "book", "count": 3}], "exclude": [{"class": "book", "count": 4}], "prompt": "a photo of three books"}
|
219 |
-
{"tag": "counting", "include": [{"class": "giraffe", "count": 4}], "exclude": [{"class": "giraffe", "count": 5}], "prompt": "a photo of four giraffes"}
|
220 |
-
{"tag": "counting", "include": [{"class": "vase", "count": 2}], "exclude": [{"class": "vase", "count": 3}], "prompt": "a photo of two vases"}
|
221 |
-
{"tag": "counting", "include": [{"class": "donut", "count": 4}], "exclude": [{"class": "donut", "count": 5}], "prompt": "a photo of four donuts"}
|
222 |
-
{"tag": "counting", "include": [{"class": "chair", "count": 4}], "exclude": [{"class": "chair", "count": 5}], "prompt": "a photo of four chairs"}
|
223 |
-
{"tag": "counting", "include": [{"class": "baseball bat", "count": 3}], "exclude": [{"class": "baseball bat", "count": 4}], "prompt": "a photo of three baseball bats"}
|
224 |
-
{"tag": "counting", "include": [{"class": "stop sign", "count": 4}], "exclude": [{"class": "stop sign", "count": 5}], "prompt": "a photo of four stop signs"}
|
225 |
-
{"tag": "counting", "include": [{"class": "pizza", "count": 2}], "exclude": [{"class": "pizza", "count": 3}], "prompt": "a photo of two pizzas"}
|
226 |
-
{"tag": "counting", "include": [{"class": "refrigerator", "count": 3}], "exclude": [{"class": "refrigerator", "count": 4}], "prompt": "a photo of three refrigerators"}
|
227 |
-
{"tag": "counting", "include": [{"class": "fire hydrant", "count": 2}], "exclude": [{"class": "fire hydrant", "count": 3}], "prompt": "a photo of two fire hydrants"}
|
228 |
-
{"tag": "counting", "include": [{"class": "giraffe", "count": 3}], "exclude": [{"class": "giraffe", "count": 4}], "prompt": "a photo of three giraffes"}
|
229 |
-
{"tag": "counting", "include": [{"class": "tv", "count": 4}], "exclude": [{"class": "tv", "count": 5}], "prompt": "a photo of four tvs"}
|
230 |
-
{"tag": "counting", "include": [{"class": "wine glass", "count": 3}], "exclude": [{"class": "wine glass", "count": 4}], "prompt": "a photo of three wine glasses"}
|
231 |
-
{"tag": "counting", "include": [{"class": "broccoli", "count": 4}], "exclude": [{"class": "broccoli", "count": 5}], "prompt": "a photo of four broccolis"}
|
232 |
-
{"tag": "counting", "include": [{"class": "truck", "count": 3}], "exclude": [{"class": "truck", "count": 4}], "prompt": "a photo of three trucks"}
|
233 |
-
{"tag": "counting", "include": [{"class": "truck", "count": 2}], "exclude": [{"class": "truck", "count": 3}], "prompt": "a photo of two trucks"}
|
234 |
-
{"tag": "counting", "include": [{"class": "carrot", "count": 2}], "exclude": [{"class": "carrot", "count": 3}], "prompt": "a photo of two carrots"}
|
235 |
-
{"tag": "counting", "include": [{"class": "sandwich", "count": 2}], "exclude": [{"class": "sandwich", "count": 3}], "prompt": "a photo of two sandwichs"}
|
236 |
-
{"tag": "counting", "include": [{"class": "traffic light", "count": 4}], "exclude": [{"class": "traffic light", "count": 5}], "prompt": "a photo of four traffic lights"}
|
237 |
-
{"tag": "counting", "include": [{"class": "clock", "count": 4}], "exclude": [{"class": "clock", "count": 5}], "prompt": "a photo of four clocks"}
|
238 |
-
{"tag": "counting", "include": [{"class": "car", "count": 2}], "exclude": [{"class": "car", "count": 3}], "prompt": "a photo of two cars"}
|
239 |
-
{"tag": "counting", "include": [{"class": "banana", "count": 2}], "exclude": [{"class": "banana", "count": 3}], "prompt": "a photo of two bananas"}
|
240 |
-
{"tag": "counting", "include": [{"class": "wine glass", "count": 2}], "exclude": [{"class": "wine glass", "count": 3}], "prompt": "a photo of two wine glasses"}
|
241 |
-
{"tag": "counting", "include": [{"class": "pizza", "count": 3}], "exclude": [{"class": "pizza", "count": 4}], "prompt": "a photo of three pizzas"}
|
242 |
-
{"tag": "counting", "include": [{"class": "knife", "count": 4}], "exclude": [{"class": "knife", "count": 5}], "prompt": "a photo of four knifes"}
|
243 |
-
{"tag": "counting", "include": [{"class": "suitcase", "count": 3}], "exclude": [{"class": "suitcase", "count": 4}], "prompt": "a photo of three suitcases"}
|
244 |
-
{"tag": "counting", "include": [{"class": "zebra", "count": 4}], "exclude": [{"class": "zebra", "count": 5}], "prompt": "a photo of four zebras"}
|
245 |
-
{"tag": "counting", "include": [{"class": "teddy bear", "count": 2}], "exclude": [{"class": "teddy bear", "count": 3}], "prompt": "a photo of two teddy bears"}
|
246 |
-
{"tag": "counting", "include": [{"class": "skateboard", "count": 4}], "exclude": [{"class": "skateboard", "count": 5}], "prompt": "a photo of four skateboards"}
|
247 |
-
{"tag": "counting", "include": [{"class": "hot dog", "count": 4}], "exclude": [{"class": "hot dog", "count": 5}], "prompt": "a photo of four hot dogs"}
|
248 |
-
{"tag": "counting", "include": [{"class": "bird", "count": 3}], "exclude": [{"class": "bird", "count": 4}], "prompt": "a photo of three birds"}
|
249 |
-
{"tag": "counting", "include": [{"class": "boat", "count": 4}], "exclude": [{"class": "boat", "count": 5}], "prompt": "a photo of four boats"}
|
250 |
-
{"tag": "counting", "include": [{"class": "microwave", "count": 4}], "exclude": [{"class": "microwave", "count": 5}], "prompt": "a photo of four microwaves"}
|
251 |
-
{"tag": "counting", "include": [{"class": "hair drier", "count": 2}], "exclude": [{"class": "hair drier", "count": 3}], "prompt": "a photo of two hair driers"}
|
252 |
-
{"tag": "counting", "include": [{"class": "laptop", "count": 3}], "exclude": [{"class": "laptop", "count": 4}], "prompt": "a photo of three laptops"}
|
253 |
-
{"tag": "counting", "include": [{"class": "cow", "count": 3}], "exclude": [{"class": "cow", "count": 4}], "prompt": "a photo of three cows"}
|
254 |
-
{"tag": "counting", "include": [{"class": "parking meter", "count": 2}], "exclude": [{"class": "parking meter", "count": 3}], "prompt": "a photo of two parking meters"}
|
255 |
-
{"tag": "counting", "include": [{"class": "bench", "count": 4}], "exclude": [{"class": "bench", "count": 5}], "prompt": "a photo of four benchs"}
|
256 |
-
{"tag": "counting", "include": [{"class": "bench", "count": 3}], "exclude": [{"class": "bench", "count": 4}], "prompt": "a photo of three benchs"}
|
257 |
-
{"tag": "counting", "include": [{"class": "frisbee", "count": 4}], "exclude": [{"class": "frisbee", "count": 5}], "prompt": "a photo of four frisbees"}
|
258 |
-
{"tag": "counting", "include": [{"class": "book", "count": 4}], "exclude": [{"class": "book", "count": 5}], "prompt": "a photo of four books"}
|
259 |
-
{"tag": "counting", "include": [{"class": "bus", "count": 4}], "exclude": [{"class": "bus", "count": 5}], "prompt": "a photo of four buses"}
|
260 |
-
{"tag": "colors", "include": [{"class": "fire hydrant", "count": 1, "color": "blue"}], "prompt": "a photo of a blue fire hydrant"}
|
261 |
-
{"tag": "colors", "include": [{"class": "car", "count": 1, "color": "pink"}], "prompt": "a photo of a pink car"}
|
262 |
-
{"tag": "colors", "include": [{"class": "cup", "count": 1, "color": "purple"}], "prompt": "a photo of a purple cup"}
|
263 |
-
{"tag": "colors", "include": [{"class": "cow", "count": 1, "color": "blue"}], "prompt": "a photo of a blue cow"}
|
264 |
-
{"tag": "colors", "include": [{"class": "boat", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow boat"}
|
265 |
-
{"tag": "colors", "include": [{"class": "umbrella", "count": 1, "color": "blue"}], "prompt": "a photo of a blue umbrella"}
|
266 |
-
{"tag": "colors", "include": [{"class": "elephant", "count": 1, "color": "blue"}], "prompt": "a photo of a blue elephant"}
|
267 |
-
{"tag": "colors", "include": [{"class": "elephant", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow elephant"}
|
268 |
-
{"tag": "colors", "include": [{"class": "bicycle", "count": 1, "color": "red"}], "prompt": "a photo of a red bicycle"}
|
269 |
-
{"tag": "colors", "include": [{"class": "suitcase", "count": 1, "color": "purple"}], "prompt": "a photo of a purple suitcase"}
|
270 |
-
{"tag": "colors", "include": [{"class": "hair drier", "count": 1, "color": "purple"}], "prompt": "a photo of a purple hair drier"}
|
271 |
-
{"tag": "colors", "include": [{"class": "sandwich", "count": 1, "color": "white"}], "prompt": "a photo of a white sandwich"}
|
272 |
-
{"tag": "colors", "include": [{"class": "elephant", "count": 1, "color": "purple"}], "prompt": "a photo of a purple elephant"}
|
273 |
-
{"tag": "colors", "include": [{"class": "microwave", "count": 1, "color": "green"}], "prompt": "a photo of a green microwave"}
|
274 |
-
{"tag": "colors", "include": [{"class": "zebra", "count": 1, "color": "red"}], "prompt": "a photo of a red zebra"}
|
275 |
-
{"tag": "colors", "include": [{"class": "apple", "count": 1, "color": "red"}], "prompt": "a photo of a red apple"}
|
276 |
-
{"tag": "colors", "include": [{"class": "tv remote", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow tv remote"}
|
277 |
-
{"tag": "colors", "include": [{"class": "toilet", "count": 1, "color": "blue"}], "prompt": "a photo of a blue toilet"}
|
278 |
-
{"tag": "colors", "include": [{"class": "orange", "count": 1, "color": "orange"}], "prompt": "a photo of an orange orange"}
|
279 |
-
{"tag": "colors", "include": [{"class": "donut", "count": 1, "color": "black"}], "prompt": "a photo of a black donut"}
|
280 |
-
{"tag": "colors", "include": [{"class": "vase", "count": 1, "color": "red"}], "prompt": "a photo of a red vase"}
|
281 |
-
{"tag": "colors", "include": [{"class": "pizza", "count": 1, "color": "purple"}], "prompt": "a photo of a purple pizza"}
|
282 |
-
{"tag": "colors", "include": [{"class": "skateboard", "count": 1, "color": "pink"}], "prompt": "a photo of a pink skateboard"}
|
283 |
-
{"tag": "colors", "include": [{"class": "skateboard", "count": 1, "color": "green"}], "prompt": "a photo of a green skateboard"}
|
284 |
-
{"tag": "colors", "include": [{"class": "bear", "count": 1, "color": "purple"}], "prompt": "a photo of a purple bear"}
|
285 |
-
{"tag": "colors", "include": [{"class": "chair", "count": 1, "color": "brown"}], "prompt": "a photo of a brown chair"}
|
286 |
-
{"tag": "colors", "include": [{"class": "computer keyboard", "count": 1, "color": "brown"}], "prompt": "a photo of a brown computer keyboard"}
|
287 |
-
{"tag": "colors", "include": [{"class": "cow", "count": 1, "color": "orange"}], "prompt": "a photo of an orange cow"}
|
288 |
-
{"tag": "colors", "include": [{"class": "skis", "count": 1, "color": "brown"}], "prompt": "a photo of a brown skis"}
|
289 |
-
{"tag": "colors", "include": [{"class": "kite", "count": 1, "color": "white"}], "prompt": "a photo of a white kite"}
|
290 |
-
{"tag": "colors", "include": [{"class": "dog", "count": 1, "color": "red"}], "prompt": "a photo of a red dog"}
|
291 |
-
{"tag": "colors", "include": [{"class": "couch", "count": 1, "color": "green"}], "prompt": "a photo of a green couch"}
|
292 |
-
{"tag": "colors", "include": [{"class": "airplane", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow airplane"}
|
293 |
-
{"tag": "colors", "include": [{"class": "tv", "count": 1, "color": "orange"}], "prompt": "a photo of an orange tv"}
|
294 |
-
{"tag": "colors", "include": [{"class": "scissors", "count": 1, "color": "white"}], "prompt": "a photo of a white scissors"}
|
295 |
-
{"tag": "colors", "include": [{"class": "cell phone", "count": 1, "color": "pink"}], "prompt": "a photo of a pink cell phone"}
|
296 |
-
{"tag": "colors", "include": [{"class": "surfboard", "count": 1, "color": "green"}], "prompt": "a photo of a green surfboard"}
|
297 |
-
{"tag": "colors", "include": [{"class": "fire hydrant", "count": 1, "color": "white"}], "prompt": "a photo of a white fire hydrant"}
|
298 |
-
{"tag": "colors", "include": [{"class": "bicycle", "count": 1, "color": "black"}], "prompt": "a photo of a black bicycle"}
|
299 |
-
{"tag": "colors", "include": [{"class": "carrot", "count": 1, "color": "purple"}], "prompt": "a photo of a purple carrot"}
|
300 |
-
{"tag": "colors", "include": [{"class": "dining table", "count": 1, "color": "black"}], "prompt": "a photo of a black dining table"}
|
301 |
-
{"tag": "colors", "include": [{"class": "potted plant", "count": 1, "color": "purple"}], "prompt": "a photo of a purple potted plant"}
|
302 |
-
{"tag": "colors", "include": [{"class": "backpack", "count": 1, "color": "purple"}], "prompt": "a photo of a purple backpack"}
|
303 |
-
{"tag": "colors", "include": [{"class": "train", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow train"}
|
304 |
-
{"tag": "colors", "include": [{"class": "potted plant", "count": 1, "color": "pink"}], "prompt": "a photo of a pink potted plant"}
|
305 |
-
{"tag": "colors", "include": [{"class": "giraffe", "count": 1, "color": "red"}], "prompt": "a photo of a red giraffe"}
|
306 |
-
{"tag": "colors", "include": [{"class": "bear", "count": 1, "color": "brown"}], "prompt": "a photo of a brown bear"}
|
307 |
-
{"tag": "colors", "include": [{"class": "train", "count": 1, "color": "black"}], "prompt": "a photo of a black train"}
|
308 |
-
{"tag": "colors", "include": [{"class": "laptop", "count": 1, "color": "orange"}], "prompt": "a photo of an orange laptop"}
|
309 |
-
{"tag": "colors", "include": [{"class": "hot dog", "count": 1, "color": "green"}], "prompt": "a photo of a green hot dog"}
|
310 |
-
{"tag": "colors", "include": [{"class": "parking meter", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow parking meter"}
|
311 |
-
{"tag": "colors", "include": [{"class": "potted plant", "count": 1, "color": "red"}], "prompt": "a photo of a red potted plant"}
|
312 |
-
{"tag": "colors", "include": [{"class": "traffic light", "count": 1, "color": "green"}], "prompt": "a photo of a green traffic light"}
|
313 |
-
{"tag": "colors", "include": [{"class": "tv", "count": 1, "color": "blue"}], "prompt": "a photo of a blue tv"}
|
314 |
-
{"tag": "colors", "include": [{"class": "refrigerator", "count": 1, "color": "brown"}], "prompt": "a photo of a brown refrigerator"}
|
315 |
-
{"tag": "colors", "include": [{"class": "tv remote", "count": 1, "color": "black"}], "prompt": "a photo of a black tv remote"}
|
316 |
-
{"tag": "colors", "include": [{"class": "scissors", "count": 1, "color": "purple"}], "prompt": "a photo of a purple scissors"}
|
317 |
-
{"tag": "colors", "include": [{"class": "orange", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow orange"}
|
318 |
-
{"tag": "colors", "include": [{"class": "toaster", "count": 1, "color": "brown"}], "prompt": "a photo of a brown toaster"}
|
319 |
-
{"tag": "colors", "include": [{"class": "parking meter", "count": 1, "color": "red"}], "prompt": "a photo of a red parking meter"}
|
320 |
-
{"tag": "colors", "include": [{"class": "orange", "count": 1, "color": "brown"}], "prompt": "a photo of a brown orange"}
|
321 |
-
{"tag": "colors", "include": [{"class": "clock", "count": 1, "color": "green"}], "prompt": "a photo of a green clock"}
|
322 |
-
{"tag": "colors", "include": [{"class": "sheep", "count": 1, "color": "white"}], "prompt": "a photo of a white sheep"}
|
323 |
-
{"tag": "colors", "include": [{"class": "oven", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow oven"}
|
324 |
-
{"tag": "colors", "include": [{"class": "vase", "count": 1, "color": "green"}], "prompt": "a photo of a green vase"}
|
325 |
-
{"tag": "colors", "include": [{"class": "teddy bear", "count": 1, "color": "black"}], "prompt": "a photo of a black teddy bear"}
|
326 |
-
{"tag": "colors", "include": [{"class": "carrot", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow carrot"}
|
327 |
-
{"tag": "colors", "include": [{"class": "hot dog", "count": 1, "color": "black"}], "prompt": "a photo of a black hot dog"}
|
328 |
-
{"tag": "colors", "include": [{"class": "scissors", "count": 1, "color": "red"}], "prompt": "a photo of a red scissors"}
|
329 |
-
{"tag": "colors", "include": [{"class": "teddy bear", "count": 1, "color": "white"}], "prompt": "a photo of a white teddy bear"}
|
330 |
-
{"tag": "colors", "include": [{"class": "skis", "count": 1, "color": "black"}], "prompt": "a photo of a black skis"}
|
331 |
-
{"tag": "colors", "include": [{"class": "dining table", "count": 1, "color": "blue"}], "prompt": "a photo of a blue dining table"}
|
332 |
-
{"tag": "colors", "include": [{"class": "refrigerator", "count": 1, "color": "black"}], "prompt": "a photo of a black refrigerator"}
|
333 |
-
{"tag": "colors", "include": [{"class": "dog", "count": 1, "color": "white"}], "prompt": "a photo of a white dog"}
|
334 |
-
{"tag": "colors", "include": [{"class": "scissors", "count": 1, "color": "orange"}], "prompt": "a photo of an orange scissors"}
|
335 |
-
{"tag": "colors", "include": [{"class": "cell phone", "count": 1, "color": "red"}], "prompt": "a photo of a red cell phone"}
|
336 |
-
{"tag": "colors", "include": [{"class": "orange", "count": 1, "color": "white"}], "prompt": "a photo of a white orange"}
|
337 |
-
{"tag": "colors", "include": [{"class": "clock", "count": 1, "color": "blue"}], "prompt": "a photo of a blue clock"}
|
338 |
-
{"tag": "colors", "include": [{"class": "carrot", "count": 1, "color": "blue"}], "prompt": "a photo of a blue carrot"}
|
339 |
-
{"tag": "colors", "include": [{"class": "motorcycle", "count": 1, "color": "green"}], "prompt": "a photo of a green motorcycle"}
|
340 |
-
{"tag": "colors", "include": [{"class": "stop sign", "count": 1, "color": "pink"}], "prompt": "a photo of a pink stop sign"}
|
341 |
-
{"tag": "colors", "include": [{"class": "vase", "count": 1, "color": "black"}], "prompt": "a photo of a black vase"}
|
342 |
-
{"tag": "colors", "include": [{"class": "backpack", "count": 1, "color": "black"}], "prompt": "a photo of a black backpack"}
|
343 |
-
{"tag": "colors", "include": [{"class": "car", "count": 1, "color": "red"}], "prompt": "a photo of a red car"}
|
344 |
-
{"tag": "colors", "include": [{"class": "computer mouse", "count": 1, "color": "green"}], "prompt": "a photo of a green computer mouse"}
|
345 |
-
{"tag": "colors", "include": [{"class": "backpack", "count": 1, "color": "red"}], "prompt": "a photo of a red backpack"}
|
346 |
-
{"tag": "colors", "include": [{"class": "bus", "count": 1, "color": "green"}], "prompt": "a photo of a green bus"}
|
347 |
-
{"tag": "colors", "include": [{"class": "toaster", "count": 1, "color": "orange"}], "prompt": "a photo of an orange toaster"}
|
348 |
-
{"tag": "colors", "include": [{"class": "fork", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow fork"}
|
349 |
-
{"tag": "colors", "include": [{"class": "parking meter", "count": 1, "color": "pink"}], "prompt": "a photo of a pink parking meter"}
|
350 |
-
{"tag": "colors", "include": [{"class": "book", "count": 1, "color": "blue"}], "prompt": "a photo of a blue book"}
|
351 |
-
{"tag": "colors", "include": [{"class": "broccoli", "count": 1, "color": "yellow"}], "prompt": "a photo of a yellow broccoli"}
|
352 |
-
{"tag": "colors", "include": [{"class": "computer mouse", "count": 1, "color": "orange"}], "prompt": "a photo of an orange computer mouse"}
|
353 |
-
{"tag": "colors", "include": [{"class": "cake", "count": 1, "color": "red"}], "prompt": "a photo of a red cake"}
|
354 |
-
{"tag": "position", "include": [{"class": "teddy bear", "count": 1}, {"class": "dog", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a dog right of a teddy bear"}
|
355 |
-
{"tag": "position", "include": [{"class": "kite", "count": 1}, {"class": "wine glass", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a wine glass above a kite"}
|
356 |
-
{"tag": "position", "include": [{"class": "cup", "count": 1}, {"class": "couch", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a couch below a cup"}
|
357 |
-
{"tag": "position", "include": [{"class": "cow", "count": 1}, {"class": "laptop", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a laptop left of a cow"}
|
358 |
-
{"tag": "position", "include": [{"class": "hair drier", "count": 1}, {"class": "fork", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a fork above a hair drier"}
|
359 |
-
{"tag": "position", "include": [{"class": "baseball bat", "count": 1}, {"class": "tie", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a tie right of a baseball bat"}
|
360 |
-
{"tag": "position", "include": [{"class": "fork", "count": 1}, {"class": "stop sign", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a stop sign above a fork"}
|
361 |
-
{"tag": "position", "include": [{"class": "skateboard", "count": 1}, {"class": "bird", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a bird below a skateboard"}
|
362 |
-
{"tag": "position", "include": [{"class": "tv", "count": 1}, {"class": "apple", "count": 1, "position": ["above", 0]}], "prompt": "a photo of an apple above a tv"}
|
363 |
-
{"tag": "position", "include": [{"class": "potted plant", "count": 1}, {"class": "train", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a train above a potted plant"}
|
364 |
-
{"tag": "position", "include": [{"class": "refrigerator", "count": 1}, {"class": "truck", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a truck left of a refrigerator"}
|
365 |
-
{"tag": "position", "include": [{"class": "cow", "count": 1}, {"class": "tv remote", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a tv remote below a cow"}
|
366 |
-
{"tag": "position", "include": [{"class": "train", "count": 1}, {"class": "bottle", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a bottle right of a train"}
|
367 |
-
{"tag": "position", "include": [{"class": "cow", "count": 1}, {"class": "dog", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a dog above a cow"}
|
368 |
-
{"tag": "position", "include": [{"class": "person", "count": 1}, {"class": "skateboard", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a skateboard above a person"}
|
369 |
-
{"tag": "position", "include": [{"class": "umbrella", "count": 1}, {"class": "baseball glove", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a baseball glove below an umbrella"}
|
370 |
-
{"tag": "position", "include": [{"class": "oven", "count": 1}, {"class": "dining table", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a dining table right of an oven"}
|
371 |
-
{"tag": "position", "include": [{"class": "suitcase", "count": 1}, {"class": "hot dog", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a hot dog left of a suitcase"}
|
372 |
-
{"tag": "position", "include": [{"class": "toothbrush", "count": 1}, {"class": "bus", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a bus below a toothbrush"}
|
373 |
-
{"tag": "position", "include": [{"class": "sandwich", "count": 1}, {"class": "backpack", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a backpack right of a sandwich"}
|
374 |
-
{"tag": "position", "include": [{"class": "baseball bat", "count": 1}, {"class": "cake", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a cake below a baseball bat"}
|
375 |
-
{"tag": "position", "include": [{"class": "tie", "count": 1}, {"class": "dog", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a dog right of a tie"}
|
376 |
-
{"tag": "position", "include": [{"class": "boat", "count": 1}, {"class": "suitcase", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a suitcase right of a boat"}
|
377 |
-
{"tag": "position", "include": [{"class": "clock", "count": 1}, {"class": "bear", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a bear above a clock"}
|
378 |
-
{"tag": "position", "include": [{"class": "umbrella", "count": 1}, {"class": "tv remote", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a tv remote left of an umbrella"}
|
379 |
-
{"tag": "position", "include": [{"class": "umbrella", "count": 1}, {"class": "sports ball", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a sports ball left of an umbrella"}
|
380 |
-
{"tag": "position", "include": [{"class": "dining table", "count": 1}, {"class": "train", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a train right of a dining table"}
|
381 |
-
{"tag": "position", "include": [{"class": "elephant", "count": 1}, {"class": "hair drier", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a hair drier below an elephant"}
|
382 |
-
{"tag": "position", "include": [{"class": "spoon", "count": 1}, {"class": "tennis racket", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a tennis racket right of a spoon"}
|
383 |
-
{"tag": "position", "include": [{"class": "hot dog", "count": 1}, {"class": "wine glass", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a wine glass right of a hot dog"}
|
384 |
-
{"tag": "position", "include": [{"class": "bench", "count": 1}, {"class": "computer mouse", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a computer mouse left of a bench"}
|
385 |
-
{"tag": "position", "include": [{"class": "orange", "count": 1}, {"class": "carrot", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a carrot left of an orange"}
|
386 |
-
{"tag": "position", "include": [{"class": "toothbrush", "count": 1}, {"class": "kite", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a kite above a toothbrush"}
|
387 |
-
{"tag": "position", "include": [{"class": "traffic light", "count": 1}, {"class": "toaster", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a toaster below a traffic light"}
|
388 |
-
{"tag": "position", "include": [{"class": "baseball glove", "count": 1}, {"class": "cat", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a cat below a baseball glove"}
|
389 |
-
{"tag": "position", "include": [{"class": "zebra", "count": 1}, {"class": "skis", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a skis right of a zebra"}
|
390 |
-
{"tag": "position", "include": [{"class": "chair", "count": 1}, {"class": "stop sign", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a stop sign above a chair"}
|
391 |
-
{"tag": "position", "include": [{"class": "parking meter", "count": 1}, {"class": "stop sign", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a stop sign above a parking meter"}
|
392 |
-
{"tag": "position", "include": [{"class": "skateboard", "count": 1}, {"class": "hot dog", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a hot dog right of a skateboard"}
|
393 |
-
{"tag": "position", "include": [{"class": "computer keyboard", "count": 1}, {"class": "pizza", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a pizza below a computer keyboard"}
|
394 |
-
{"tag": "position", "include": [{"class": "toilet", "count": 1}, {"class": "hair drier", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a hair drier left of a toilet"}
|
395 |
-
{"tag": "position", "include": [{"class": "stop sign", "count": 1}, {"class": "cow", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a cow left of a stop sign"}
|
396 |
-
{"tag": "position", "include": [{"class": "skis", "count": 1}, {"class": "suitcase", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a suitcase above a skis"}
|
397 |
-
{"tag": "position", "include": [{"class": "laptop", "count": 1}, {"class": "book", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a book above a laptop"}
|
398 |
-
{"tag": "position", "include": [{"class": "pizza", "count": 1}, {"class": "toothbrush", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a toothbrush below a pizza"}
|
399 |
-
{"tag": "position", "include": [{"class": "kite", "count": 1}, {"class": "toilet", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a toilet left of a kite"}
|
400 |
-
{"tag": "position", "include": [{"class": "sink", "count": 1}, {"class": "tie", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a tie above a sink"}
|
401 |
-
{"tag": "position", "include": [{"class": "couch", "count": 1}, {"class": "bird", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a bird left of a couch"}
|
402 |
-
{"tag": "position", "include": [{"class": "sports ball", "count": 1}, {"class": "bed", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a bed right of a sports ball"}
|
403 |
-
{"tag": "position", "include": [{"class": "surfboard", "count": 1}, {"class": "elephant", "count": 1, "position": ["below", 0]}], "prompt": "a photo of an elephant below a surfboard"}
|
404 |
-
{"tag": "position", "include": [{"class": "motorcycle", "count": 1}, {"class": "frisbee", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a frisbee right of a motorcycle"}
|
405 |
-
{"tag": "position", "include": [{"class": "fire hydrant", "count": 1}, {"class": "vase", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a vase above a fire hydrant"}
|
406 |
-
{"tag": "position", "include": [{"class": "elephant", "count": 1}, {"class": "zebra", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a zebra left of an elephant"}
|
407 |
-
{"tag": "position", "include": [{"class": "bear", "count": 1}, {"class": "bench", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a bench left of a bear"}
|
408 |
-
{"tag": "position", "include": [{"class": "bench", "count": 1}, {"class": "donut", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a donut right of a bench"}
|
409 |
-
{"tag": "position", "include": [{"class": "horse", "count": 1}, {"class": "frisbee", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a frisbee below a horse"}
|
410 |
-
{"tag": "position", "include": [{"class": "snowboard", "count": 1}, {"class": "computer keyboard", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a computer keyboard above a snowboard"}
|
411 |
-
{"tag": "position", "include": [{"class": "cow", "count": 1}, {"class": "tv", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a tv below a cow"}
|
412 |
-
{"tag": "position", "include": [{"class": "horse", "count": 1}, {"class": "elephant", "count": 1, "position": ["below", 0]}], "prompt": "a photo of an elephant below a horse"}
|
413 |
-
{"tag": "position", "include": [{"class": "banana", "count": 1}, {"class": "suitcase", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a suitcase left of a banana"}
|
414 |
-
{"tag": "position", "include": [{"class": "airplane", "count": 1}, {"class": "train", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a train below an airplane"}
|
415 |
-
{"tag": "position", "include": [{"class": "backpack", "count": 1}, {"class": "cat", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a cat below a backpack"}
|
416 |
-
{"tag": "position", "include": [{"class": "cake", "count": 1}, {"class": "backpack", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a backpack below a cake"}
|
417 |
-
{"tag": "position", "include": [{"class": "knife", "count": 1}, {"class": "sandwich", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a sandwich below a knife"}
|
418 |
-
{"tag": "position", "include": [{"class": "parking meter", "count": 1}, {"class": "bicycle", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a bicycle above a parking meter"}
|
419 |
-
{"tag": "position", "include": [{"class": "suitcase", "count": 1}, {"class": "knife", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a knife right of a suitcase"}
|
420 |
-
{"tag": "position", "include": [{"class": "knife", "count": 1}, {"class": "hot dog", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a hot dog above a knife"}
|
421 |
-
{"tag": "position", "include": [{"class": "parking meter", "count": 1}, {"class": "zebra", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a zebra right of a parking meter"}
|
422 |
-
{"tag": "position", "include": [{"class": "zebra", "count": 1}, {"class": "chair", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a chair left of a zebra"}
|
423 |
-
{"tag": "position", "include": [{"class": "airplane", "count": 1}, {"class": "cow", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a cow below an airplane"}
|
424 |
-
{"tag": "position", "include": [{"class": "umbrella", "count": 1}, {"class": "cup", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a cup left of an umbrella"}
|
425 |
-
{"tag": "position", "include": [{"class": "computer keyboard", "count": 1}, {"class": "zebra", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a zebra below a computer keyboard"}
|
426 |
-
{"tag": "position", "include": [{"class": "broccoli", "count": 1}, {"class": "zebra", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a zebra below a broccoli"}
|
427 |
-
{"tag": "position", "include": [{"class": "sports ball", "count": 1}, {"class": "laptop", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a laptop below a sports ball"}
|
428 |
-
{"tag": "position", "include": [{"class": "baseball bat", "count": 1}, {"class": "truck", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a truck left of a baseball bat"}
|
429 |
-
{"tag": "position", "include": [{"class": "baseball bat", "count": 1}, {"class": "refrigerator", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a refrigerator above a baseball bat"}
|
430 |
-
{"tag": "position", "include": [{"class": "baseball bat", "count": 1}, {"class": "tv", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a tv above a baseball bat"}
|
431 |
-
{"tag": "position", "include": [{"class": "bear", "count": 1}, {"class": "baseball glove", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a baseball glove right of a bear"}
|
432 |
-
{"tag": "position", "include": [{"class": "scissors", "count": 1}, {"class": "refrigerator", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a refrigerator below a scissors"}
|
433 |
-
{"tag": "position", "include": [{"class": "suitcase", "count": 1}, {"class": "dining table", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a dining table above a suitcase"}
|
434 |
-
{"tag": "position", "include": [{"class": "broccoli", "count": 1}, {"class": "parking meter", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a parking meter above a broccoli"}
|
435 |
-
{"tag": "position", "include": [{"class": "truck", "count": 1}, {"class": "frisbee", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a frisbee above a truck"}
|
436 |
-
{"tag": "position", "include": [{"class": "banana", "count": 1}, {"class": "pizza", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a pizza right of a banana"}
|
437 |
-
{"tag": "position", "include": [{"class": "boat", "count": 1}, {"class": "bus", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a bus above a boat"}
|
438 |
-
{"tag": "position", "include": [{"class": "tennis racket", "count": 1}, {"class": "cell phone", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a cell phone left of a tennis racket"}
|
439 |
-
{"tag": "position", "include": [{"class": "broccoli", "count": 1}, {"class": "horse", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a horse right of a broccoli"}
|
440 |
-
{"tag": "position", "include": [{"class": "bottle", "count": 1}, {"class": "broccoli", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a broccoli above a bottle"}
|
441 |
-
{"tag": "position", "include": [{"class": "horse", "count": 1}, {"class": "vase", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a vase right of a horse"}
|
442 |
-
{"tag": "position", "include": [{"class": "spoon", "count": 1}, {"class": "bear", "count": 1, "position": ["above", 0]}], "prompt": "a photo of a bear above a spoon"}
|
443 |
-
{"tag": "position", "include": [{"class": "bed", "count": 1}, {"class": "zebra", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a zebra right of a bed"}
|
444 |
-
{"tag": "position", "include": [{"class": "laptop", "count": 1}, {"class": "cow", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a cow right of a laptop"}
|
445 |
-
{"tag": "position", "include": [{"class": "frisbee", "count": 1}, {"class": "bed", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a bed right of a frisbee"}
|
446 |
-
{"tag": "position", "include": [{"class": "motorcycle", "count": 1}, {"class": "tie", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a tie right of a motorcycle"}
|
447 |
-
{"tag": "position", "include": [{"class": "tv", "count": 1}, {"class": "laptop", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a laptop right of a tv"}
|
448 |
-
{"tag": "position", "include": [{"class": "chair", "count": 1}, {"class": "cell phone", "count": 1, "position": ["right of", 0]}], "prompt": "a photo of a cell phone right of a chair"}
|
449 |
-
{"tag": "position", "include": [{"class": "potted plant", "count": 1}, {"class": "couch", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a couch below a potted plant"}
|
450 |
-
{"tag": "position", "include": [{"class": "tv", "count": 1}, {"class": "clock", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a clock below a tv"}
|
451 |
-
{"tag": "position", "include": [{"class": "vase", "count": 1}, {"class": "couch", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a couch below a vase"}
|
452 |
-
{"tag": "position", "include": [{"class": "cat", "count": 1}, {"class": "donut", "count": 1, "position": ["below", 0]}], "prompt": "a photo of a donut below a cat"}
|
453 |
-
{"tag": "position", "include": [{"class": "toaster", "count": 1}, {"class": "couch", "count": 1, "position": ["left of", 0]}], "prompt": "a photo of a couch left of a toaster"}
|
454 |
-
{"tag": "color_attr", "include": [{"class": "wine glass", "count": 1, "color": "purple"}, {"class": "apple", "count": 1, "color": "black"}], "prompt": "a photo of a purple wine glass and a black apple"}
|
455 |
-
{"tag": "color_attr", "include": [{"class": "bus", "count": 1, "color": "green"}, {"class": "microwave", "count": 1, "color": "purple"}], "prompt": "a photo of a green bus and a purple microwave"}
|
456 |
-
{"tag": "color_attr", "include": [{"class": "skis", "count": 1, "color": "green"}, {"class": "airplane", "count": 1, "color": "brown"}], "prompt": "a photo of a green skis and a brown airplane"}
|
457 |
-
{"tag": "color_attr", "include": [{"class": "computer keyboard", "count": 1, "color": "yellow"}, {"class": "sink", "count": 1, "color": "black"}], "prompt": "a photo of a yellow computer keyboard and a black sink"}
|
458 |
-
{"tag": "color_attr", "include": [{"class": "oven", "count": 1, "color": "pink"}, {"class": "motorcycle", "count": 1, "color": "green"}], "prompt": "a photo of a pink oven and a green motorcycle"}
|
459 |
-
{"tag": "color_attr", "include": [{"class": "parking meter", "count": 1, "color": "purple"}, {"class": "laptop", "count": 1, "color": "red"}], "prompt": "a photo of a purple parking meter and a red laptop"}
|
460 |
-
{"tag": "color_attr", "include": [{"class": "skateboard", "count": 1, "color": "yellow"}, {"class": "computer mouse", "count": 1, "color": "orange"}], "prompt": "a photo of a yellow skateboard and an orange computer mouse"}
|
461 |
-
{"tag": "color_attr", "include": [{"class": "skis", "count": 1, "color": "red"}, {"class": "tie", "count": 1, "color": "brown"}], "prompt": "a photo of a red skis and a brown tie"}
|
462 |
-
{"tag": "color_attr", "include": [{"class": "skateboard", "count": 1, "color": "pink"}, {"class": "train", "count": 1, "color": "black"}], "prompt": "a photo of a pink skateboard and a black train"}
|
463 |
-
{"tag": "color_attr", "include": [{"class": "handbag", "count": 1, "color": "white"}, {"class": "bed", "count": 1, "color": "purple"}], "prompt": "a photo of a white handbag and a purple bed"}
|
464 |
-
{"tag": "color_attr", "include": [{"class": "elephant", "count": 1, "color": "purple"}, {"class": "sports ball", "count": 1, "color": "brown"}], "prompt": "a photo of a purple elephant and a brown sports ball"}
|
465 |
-
{"tag": "color_attr", "include": [{"class": "dog", "count": 1, "color": "purple"}, {"class": "dining table", "count": 1, "color": "black"}], "prompt": "a photo of a purple dog and a black dining table"}
|
466 |
-
{"tag": "color_attr", "include": [{"class": "dining table", "count": 1, "color": "white"}, {"class": "car", "count": 1, "color": "red"}], "prompt": "a photo of a white dining table and a red car"}
|
467 |
-
{"tag": "color_attr", "include": [{"class": "cell phone", "count": 1, "color": "blue"}, {"class": "apple", "count": 1, "color": "green"}], "prompt": "a photo of a blue cell phone and a green apple"}
|
468 |
-
{"tag": "color_attr", "include": [{"class": "car", "count": 1, "color": "red"}, {"class": "potted plant", "count": 1, "color": "orange"}], "prompt": "a photo of a red car and an orange potted plant"}
|
469 |
-
{"tag": "color_attr", "include": [{"class": "carrot", "count": 1, "color": "brown"}, {"class": "potted plant", "count": 1, "color": "white"}], "prompt": "a photo of a brown carrot and a white potted plant"}
|
470 |
-
{"tag": "color_attr", "include": [{"class": "kite", "count": 1, "color": "black"}, {"class": "bear", "count": 1, "color": "green"}], "prompt": "a photo of a black kite and a green bear"}
|
471 |
-
{"tag": "color_attr", "include": [{"class": "laptop", "count": 1, "color": "blue"}, {"class": "bear", "count": 1, "color": "brown"}], "prompt": "a photo of a blue laptop and a brown bear"}
|
472 |
-
{"tag": "color_attr", "include": [{"class": "teddy bear", "count": 1, "color": "green"}, {"class": "kite", "count": 1, "color": "brown"}], "prompt": "a photo of a green teddy bear and a brown kite"}
|
473 |
-
{"tag": "color_attr", "include": [{"class": "stop sign", "count": 1, "color": "yellow"}, {"class": "potted plant", "count": 1, "color": "blue"}], "prompt": "a photo of a yellow stop sign and a blue potted plant"}
|
474 |
-
{"tag": "color_attr", "include": [{"class": "snowboard", "count": 1, "color": "orange"}, {"class": "cat", "count": 1, "color": "green"}], "prompt": "a photo of an orange snowboard and a green cat"}
|
475 |
-
{"tag": "color_attr", "include": [{"class": "truck", "count": 1, "color": "orange"}, {"class": "sink", "count": 1, "color": "pink"}], "prompt": "a photo of an orange truck and a pink sink"}
|
476 |
-
{"tag": "color_attr", "include": [{"class": "hot dog", "count": 1, "color": "brown"}, {"class": "pizza", "count": 1, "color": "purple"}], "prompt": "a photo of a brown hot dog and a purple pizza"}
|
477 |
-
{"tag": "color_attr", "include": [{"class": "couch", "count": 1, "color": "green"}, {"class": "umbrella", "count": 1, "color": "orange"}], "prompt": "a photo of a green couch and an orange umbrella"}
|
478 |
-
{"tag": "color_attr", "include": [{"class": "bed", "count": 1, "color": "brown"}, {"class": "cell phone", "count": 1, "color": "pink"}], "prompt": "a photo of a brown bed and a pink cell phone"}
|
479 |
-
{"tag": "color_attr", "include": [{"class": "broccoli", "count": 1, "color": "black"}, {"class": "cake", "count": 1, "color": "yellow"}], "prompt": "a photo of a black broccoli and a yellow cake"}
|
480 |
-
{"tag": "color_attr", "include": [{"class": "train", "count": 1, "color": "red"}, {"class": "bear", "count": 1, "color": "purple"}], "prompt": "a photo of a red train and a purple bear"}
|
481 |
-
{"tag": "color_attr", "include": [{"class": "tennis racket", "count": 1, "color": "purple"}, {"class": "sink", "count": 1, "color": "black"}], "prompt": "a photo of a purple tennis racket and a black sink"}
|
482 |
-
{"tag": "color_attr", "include": [{"class": "vase", "count": 1, "color": "blue"}, {"class": "banana", "count": 1, "color": "black"}], "prompt": "a photo of a blue vase and a black banana"}
|
483 |
-
{"tag": "color_attr", "include": [{"class": "clock", "count": 1, "color": "blue"}, {"class": "cup", "count": 1, "color": "white"}], "prompt": "a photo of a blue clock and a white cup"}
|
484 |
-
{"tag": "color_attr", "include": [{"class": "umbrella", "count": 1, "color": "red"}, {"class": "couch", "count": 1, "color": "blue"}], "prompt": "a photo of a red umbrella and a blue couch"}
|
485 |
-
{"tag": "color_attr", "include": [{"class": "handbag", "count": 1, "color": "white"}, {"class": "giraffe", "count": 1, "color": "red"}], "prompt": "a photo of a white handbag and a red giraffe"}
|
486 |
-
{"tag": "color_attr", "include": [{"class": "tv remote", "count": 1, "color": "pink"}, {"class": "airplane", "count": 1, "color": "blue"}], "prompt": "a photo of a pink tv remote and a blue airplane"}
|
487 |
-
{"tag": "color_attr", "include": [{"class": "handbag", "count": 1, "color": "pink"}, {"class": "scissors", "count": 1, "color": "black"}], "prompt": "a photo of a pink handbag and a black scissors"}
|
488 |
-
{"tag": "color_attr", "include": [{"class": "car", "count": 1, "color": "brown"}, {"class": "hair drier", "count": 1, "color": "pink"}], "prompt": "a photo of a brown car and a pink hair drier"}
|
489 |
-
{"tag": "color_attr", "include": [{"class": "bus", "count": 1, "color": "black"}, {"class": "cell phone", "count": 1, "color": "brown"}], "prompt": "a photo of a black bus and a brown cell phone"}
|
490 |
-
{"tag": "color_attr", "include": [{"class": "sheep", "count": 1, "color": "purple"}, {"class": "banana", "count": 1, "color": "pink"}], "prompt": "a photo of a purple sheep and a pink banana"}
|
491 |
-
{"tag": "color_attr", "include": [{"class": "handbag", "count": 1, "color": "blue"}, {"class": "cell phone", "count": 1, "color": "white"}], "prompt": "a photo of a blue handbag and a white cell phone"}
|
492 |
-
{"tag": "color_attr", "include": [{"class": "pizza", "count": 1, "color": "white"}, {"class": "umbrella", "count": 1, "color": "green"}], "prompt": "a photo of a white pizza and a green umbrella"}
|
493 |
-
{"tag": "color_attr", "include": [{"class": "tie", "count": 1, "color": "white"}, {"class": "skateboard", "count": 1, "color": "purple"}], "prompt": "a photo of a white tie and a purple skateboard"}
|
494 |
-
{"tag": "color_attr", "include": [{"class": "sports ball", "count": 1, "color": "yellow"}, {"class": "boat", "count": 1, "color": "green"}], "prompt": "a photo of a yellow sports ball and a green boat"}
|
495 |
-
{"tag": "color_attr", "include": [{"class": "wine glass", "count": 1, "color": "white"}, {"class": "giraffe", "count": 1, "color": "brown"}], "prompt": "a photo of a white wine glass and a brown giraffe"}
|
496 |
-
{"tag": "color_attr", "include": [{"class": "bowl", "count": 1, "color": "yellow"}, {"class": "baseball glove", "count": 1, "color": "white"}], "prompt": "a photo of a yellow bowl and a white baseball glove"}
|
497 |
-
{"tag": "color_attr", "include": [{"class": "microwave", "count": 1, "color": "orange"}, {"class": "spoon", "count": 1, "color": "black"}], "prompt": "a photo of an orange microwave and a black spoon"}
|
498 |
-
{"tag": "color_attr", "include": [{"class": "skateboard", "count": 1, "color": "orange"}, {"class": "bowl", "count": 1, "color": "pink"}], "prompt": "a photo of an orange skateboard and a pink bowl"}
|
499 |
-
{"tag": "color_attr", "include": [{"class": "toilet", "count": 1, "color": "blue"}, {"class": "suitcase", "count": 1, "color": "white"}], "prompt": "a photo of a blue toilet and a white suitcase"}
|
500 |
-
{"tag": "color_attr", "include": [{"class": "boat", "count": 1, "color": "white"}, {"class": "hot dog", "count": 1, "color": "orange"}], "prompt": "a photo of a white boat and an orange hot dog"}
|
501 |
-
{"tag": "color_attr", "include": [{"class": "dining table", "count": 1, "color": "yellow"}, {"class": "dog", "count": 1, "color": "pink"}], "prompt": "a photo of a yellow dining table and a pink dog"}
|
502 |
-
{"tag": "color_attr", "include": [{"class": "cake", "count": 1, "color": "red"}, {"class": "chair", "count": 1, "color": "purple"}], "prompt": "a photo of a red cake and a purple chair"}
|
503 |
-
{"tag": "color_attr", "include": [{"class": "tie", "count": 1, "color": "blue"}, {"class": "dining table", "count": 1, "color": "pink"}], "prompt": "a photo of a blue tie and a pink dining table"}
|
504 |
-
{"tag": "color_attr", "include": [{"class": "cow", "count": 1, "color": "blue"}, {"class": "computer keyboard", "count": 1, "color": "black"}], "prompt": "a photo of a blue cow and a black computer keyboard"}
|
505 |
-
{"tag": "color_attr", "include": [{"class": "pizza", "count": 1, "color": "yellow"}, {"class": "oven", "count": 1, "color": "green"}], "prompt": "a photo of a yellow pizza and a green oven"}
|
506 |
-
{"tag": "color_attr", "include": [{"class": "laptop", "count": 1, "color": "red"}, {"class": "car", "count": 1, "color": "brown"}], "prompt": "a photo of a red laptop and a brown car"}
|
507 |
-
{"tag": "color_attr", "include": [{"class": "computer keyboard", "count": 1, "color": "purple"}, {"class": "scissors", "count": 1, "color": "blue"}], "prompt": "a photo of a purple computer keyboard and a blue scissors"}
|
508 |
-
{"tag": "color_attr", "include": [{"class": "surfboard", "count": 1, "color": "green"}, {"class": "oven", "count": 1, "color": "orange"}], "prompt": "a photo of a green surfboard and an orange oven"}
|
509 |
-
{"tag": "color_attr", "include": [{"class": "parking meter", "count": 1, "color": "yellow"}, {"class": "refrigerator", "count": 1, "color": "pink"}], "prompt": "a photo of a yellow parking meter and a pink refrigerator"}
|
510 |
-
{"tag": "color_attr", "include": [{"class": "computer mouse", "count": 1, "color": "brown"}, {"class": "bottle", "count": 1, "color": "purple"}], "prompt": "a photo of a brown computer mouse and a purple bottle"}
|
511 |
-
{"tag": "color_attr", "include": [{"class": "umbrella", "count": 1, "color": "red"}, {"class": "cow", "count": 1, "color": "green"}], "prompt": "a photo of a red umbrella and a green cow"}
|
512 |
-
{"tag": "color_attr", "include": [{"class": "giraffe", "count": 1, "color": "red"}, {"class": "cell phone", "count": 1, "color": "black"}], "prompt": "a photo of a red giraffe and a black cell phone"}
|
513 |
-
{"tag": "color_attr", "include": [{"class": "oven", "count": 1, "color": "brown"}, {"class": "train", "count": 1, "color": "purple"}], "prompt": "a photo of a brown oven and a purple train"}
|
514 |
-
{"tag": "color_attr", "include": [{"class": "baseball bat", "count": 1, "color": "blue"}, {"class": "book", "count": 1, "color": "pink"}], "prompt": "a photo of a blue baseball bat and a pink book"}
|
515 |
-
{"tag": "color_attr", "include": [{"class": "cup", "count": 1, "color": "green"}, {"class": "bowl", "count": 1, "color": "yellow"}], "prompt": "a photo of a green cup and a yellow bowl"}
|
516 |
-
{"tag": "color_attr", "include": [{"class": "suitcase", "count": 1, "color": "yellow"}, {"class": "bus", "count": 1, "color": "brown"}], "prompt": "a photo of a yellow suitcase and a brown bus"}
|
517 |
-
{"tag": "color_attr", "include": [{"class": "motorcycle", "count": 1, "color": "orange"}, {"class": "donut", "count": 1, "color": "pink"}], "prompt": "a photo of an orange motorcycle and a pink donut"}
|
518 |
-
{"tag": "color_attr", "include": [{"class": "giraffe", "count": 1, "color": "orange"}, {"class": "baseball glove", "count": 1, "color": "white"}], "prompt": "a photo of an orange giraffe and a white baseball glove"}
|
519 |
-
{"tag": "color_attr", "include": [{"class": "handbag", "count": 1, "color": "orange"}, {"class": "carrot", "count": 1, "color": "green"}], "prompt": "a photo of an orange handbag and a green carrot"}
|
520 |
-
{"tag": "color_attr", "include": [{"class": "bottle", "count": 1, "color": "black"}, {"class": "refrigerator", "count": 1, "color": "white"}], "prompt": "a photo of a black bottle and a white refrigerator"}
|
521 |
-
{"tag": "color_attr", "include": [{"class": "dog", "count": 1, "color": "white"}, {"class": "potted plant", "count": 1, "color": "blue"}], "prompt": "a photo of a white dog and a blue potted plant"}
|
522 |
-
{"tag": "color_attr", "include": [{"class": "handbag", "count": 1, "color": "orange"}, {"class": "car", "count": 1, "color": "red"}], "prompt": "a photo of an orange handbag and a red car"}
|
523 |
-
{"tag": "color_attr", "include": [{"class": "stop sign", "count": 1, "color": "red"}, {"class": "book", "count": 1, "color": "blue"}], "prompt": "a photo of a red stop sign and a blue book"}
|
524 |
-
{"tag": "color_attr", "include": [{"class": "car", "count": 1, "color": "yellow"}, {"class": "toothbrush", "count": 1, "color": "orange"}], "prompt": "a photo of a yellow car and an orange toothbrush"}
|
525 |
-
{"tag": "color_attr", "include": [{"class": "potted plant", "count": 1, "color": "black"}, {"class": "toilet", "count": 1, "color": "yellow"}], "prompt": "a photo of a black potted plant and a yellow toilet"}
|
526 |
-
{"tag": "color_attr", "include": [{"class": "dining table", "count": 1, "color": "brown"}, {"class": "suitcase", "count": 1, "color": "white"}], "prompt": "a photo of a brown dining table and a white suitcase"}
|
527 |
-
{"tag": "color_attr", "include": [{"class": "donut", "count": 1, "color": "orange"}, {"class": "stop sign", "count": 1, "color": "yellow"}], "prompt": "a photo of an orange donut and a yellow stop sign"}
|
528 |
-
{"tag": "color_attr", "include": [{"class": "suitcase", "count": 1, "color": "green"}, {"class": "boat", "count": 1, "color": "blue"}], "prompt": "a photo of a green suitcase and a blue boat"}
|
529 |
-
{"tag": "color_attr", "include": [{"class": "tennis racket", "count": 1, "color": "orange"}, {"class": "sports ball", "count": 1, "color": "yellow"}], "prompt": "a photo of an orange tennis racket and a yellow sports ball"}
|
530 |
-
{"tag": "color_attr", "include": [{"class": "computer keyboard", "count": 1, "color": "purple"}, {"class": "chair", "count": 1, "color": "red"}], "prompt": "a photo of a purple computer keyboard and a red chair"}
|
531 |
-
{"tag": "color_attr", "include": [{"class": "suitcase", "count": 1, "color": "purple"}, {"class": "pizza", "count": 1, "color": "orange"}], "prompt": "a photo of a purple suitcase and an orange pizza"}
|
532 |
-
{"tag": "color_attr", "include": [{"class": "bottle", "count": 1, "color": "white"}, {"class": "sheep", "count": 1, "color": "blue"}], "prompt": "a photo of a white bottle and a blue sheep"}
|
533 |
-
{"tag": "color_attr", "include": [{"class": "backpack", "count": 1, "color": "purple"}, {"class": "umbrella", "count": 1, "color": "white"}], "prompt": "a photo of a purple backpack and a white umbrella"}
|
534 |
-
{"tag": "color_attr", "include": [{"class": "potted plant", "count": 1, "color": "orange"}, {"class": "spoon", "count": 1, "color": "black"}], "prompt": "a photo of an orange potted plant and a black spoon"}
|
535 |
-
{"tag": "color_attr", "include": [{"class": "tennis racket", "count": 1, "color": "green"}, {"class": "dog", "count": 1, "color": "black"}], "prompt": "a photo of a green tennis racket and a black dog"}
|
536 |
-
{"tag": "color_attr", "include": [{"class": "handbag", "count": 1, "color": "yellow"}, {"class": "refrigerator", "count": 1, "color": "blue"}], "prompt": "a photo of a yellow handbag and a blue refrigerator"}
|
537 |
-
{"tag": "color_attr", "include": [{"class": "broccoli", "count": 1, "color": "pink"}, {"class": "sink", "count": 1, "color": "red"}], "prompt": "a photo of a pink broccoli and a red sink"}
|
538 |
-
{"tag": "color_attr", "include": [{"class": "bowl", "count": 1, "color": "red"}, {"class": "sink", "count": 1, "color": "pink"}], "prompt": "a photo of a red bowl and a pink sink"}
|
539 |
-
{"tag": "color_attr", "include": [{"class": "toilet", "count": 1, "color": "white"}, {"class": "apple", "count": 1, "color": "red"}], "prompt": "a photo of a white toilet and a red apple"}
|
540 |
-
{"tag": "color_attr", "include": [{"class": "dining table", "count": 1, "color": "pink"}, {"class": "sandwich", "count": 1, "color": "black"}], "prompt": "a photo of a pink dining table and a black sandwich"}
|
541 |
-
{"tag": "color_attr", "include": [{"class": "car", "count": 1, "color": "black"}, {"class": "parking meter", "count": 1, "color": "green"}], "prompt": "a photo of a black car and a green parking meter"}
|
542 |
-
{"tag": "color_attr", "include": [{"class": "bird", "count": 1, "color": "yellow"}, {"class": "motorcycle", "count": 1, "color": "black"}], "prompt": "a photo of a yellow bird and a black motorcycle"}
|
543 |
-
{"tag": "color_attr", "include": [{"class": "giraffe", "count": 1, "color": "brown"}, {"class": "stop sign", "count": 1, "color": "white"}], "prompt": "a photo of a brown giraffe and a white stop sign"}
|
544 |
-
{"tag": "color_attr", "include": [{"class": "banana", "count": 1, "color": "white"}, {"class": "elephant", "count": 1, "color": "black"}], "prompt": "a photo of a white banana and a black elephant"}
|
545 |
-
{"tag": "color_attr", "include": [{"class": "cow", "count": 1, "color": "orange"}, {"class": "sandwich", "count": 1, "color": "purple"}], "prompt": "a photo of an orange cow and a purple sandwich"}
|
546 |
-
{"tag": "color_attr", "include": [{"class": "clock", "count": 1, "color": "red"}, {"class": "cell phone", "count": 1, "color": "black"}], "prompt": "a photo of a red clock and a black cell phone"}
|
547 |
-
{"tag": "color_attr", "include": [{"class": "knife", "count": 1, "color": "brown"}, {"class": "donut", "count": 1, "color": "blue"}], "prompt": "a photo of a brown knife and a blue donut"}
|
548 |
-
{"tag": "color_attr", "include": [{"class": "cup", "count": 1, "color": "red"}, {"class": "handbag", "count": 1, "color": "pink"}], "prompt": "a photo of a red cup and a pink handbag"}
|
549 |
-
{"tag": "color_attr", "include": [{"class": "bicycle", "count": 1, "color": "yellow"}, {"class": "motorcycle", "count": 1, "color": "red"}], "prompt": "a photo of a yellow bicycle and a red motorcycle"}
|
550 |
-
{"tag": "color_attr", "include": [{"class": "orange", "count": 1, "color": "red"}, {"class": "broccoli", "count": 1, "color": "purple"}], "prompt": "a photo of a red orange and a purple broccoli"}
|
551 |
-
{"tag": "color_attr", "include": [{"class": "traffic light", "count": 1, "color": "orange"}, {"class": "toilet", "count": 1, "color": "white"}], "prompt": "a photo of an orange traffic light and a white toilet"}
|
552 |
-
{"tag": "color_attr", "include": [{"class": "cup", "count": 1, "color": "green"}, {"class": "pizza", "count": 1, "color": "red"}], "prompt": "a photo of a green cup and a red pizza"}
|
553 |
-
{"tag": "color_attr", "include": [{"class": "pizza", "count": 1, "color": "blue"}, {"class": "baseball glove", "count": 1, "color": "yellow"}], "prompt": "a photo of a blue pizza and a yellow baseball glove"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/geneval/prompts/evaluation_metadata_long.jsonl
DELETED
The diff for this file is too large to render.
See raw diff
|
|
eval/gen/geneval/prompts/generation_prompts.txt
DELETED
@@ -1,553 +0,0 @@
|
|
1 |
-
a photo of a bench
|
2 |
-
a photo of a cow
|
3 |
-
a photo of a bicycle
|
4 |
-
a photo of a clock
|
5 |
-
a photo of a carrot
|
6 |
-
a photo of a suitcase
|
7 |
-
a photo of a fork
|
8 |
-
a photo of a surfboard
|
9 |
-
a photo of a refrigerator
|
10 |
-
a photo of a cup
|
11 |
-
a photo of a microwave
|
12 |
-
a photo of a potted plant
|
13 |
-
a photo of a snowboard
|
14 |
-
a photo of a zebra
|
15 |
-
a photo of a parking meter
|
16 |
-
a photo of a spoon
|
17 |
-
a photo of a skateboard
|
18 |
-
a photo of a car
|
19 |
-
a photo of a motorcycle
|
20 |
-
a photo of a traffic light
|
21 |
-
a photo of a book
|
22 |
-
a photo of a couch
|
23 |
-
a photo of a backpack
|
24 |
-
a photo of a computer keyboard
|
25 |
-
a photo of a toaster
|
26 |
-
a photo of a bird
|
27 |
-
a photo of a bowl
|
28 |
-
a photo of a dog
|
29 |
-
a photo of a tie
|
30 |
-
a photo of a laptop
|
31 |
-
a photo of a computer mouse
|
32 |
-
a photo of a sandwich
|
33 |
-
a photo of a baseball bat
|
34 |
-
a photo of a train
|
35 |
-
a photo of a cell phone
|
36 |
-
a photo of a chair
|
37 |
-
a photo of a tv
|
38 |
-
a photo of a broccoli
|
39 |
-
a photo of a bed
|
40 |
-
a photo of a skis
|
41 |
-
a photo of a handbag
|
42 |
-
a photo of a pizza
|
43 |
-
a photo of a frisbee
|
44 |
-
a photo of a scissors
|
45 |
-
a photo of a bottle
|
46 |
-
a photo of an elephant
|
47 |
-
a photo of a toilet
|
48 |
-
a photo of an oven
|
49 |
-
a photo of an orange
|
50 |
-
a photo of a person
|
51 |
-
a photo of a teddy bear
|
52 |
-
a photo of a vase
|
53 |
-
a photo of a banana
|
54 |
-
a photo of a toothbrush
|
55 |
-
a photo of a tv remote
|
56 |
-
a photo of a dining table
|
57 |
-
a photo of a stop sign
|
58 |
-
a photo of a sheep
|
59 |
-
a photo of a fire hydrant
|
60 |
-
a photo of an airplane
|
61 |
-
a photo of a giraffe
|
62 |
-
a photo of a horse
|
63 |
-
a photo of a cat
|
64 |
-
a photo of a donut
|
65 |
-
a photo of a boat
|
66 |
-
a photo of a baseball glove
|
67 |
-
a photo of a hair drier
|
68 |
-
a photo of a sink
|
69 |
-
a photo of a cake
|
70 |
-
a photo of a wine glass
|
71 |
-
a photo of an apple
|
72 |
-
a photo of a bus
|
73 |
-
a photo of a tennis racket
|
74 |
-
a photo of a knife
|
75 |
-
a photo of a hot dog
|
76 |
-
a photo of a truck
|
77 |
-
a photo of an umbrella
|
78 |
-
a photo of a sports ball
|
79 |
-
a photo of a bear
|
80 |
-
a photo of a kite
|
81 |
-
a photo of a bench and a sports ball
|
82 |
-
a photo of a toothbrush and a snowboard
|
83 |
-
a photo of a toaster and an oven
|
84 |
-
a photo of a broccoli and a vase
|
85 |
-
a photo of a tennis racket and a wine glass
|
86 |
-
a photo of a fork and a knife
|
87 |
-
a photo of a hair drier and a cake
|
88 |
-
a photo of a horse and a giraffe
|
89 |
-
a photo of a horse and a computer keyboard
|
90 |
-
a photo of a toothbrush and a carrot
|
91 |
-
a photo of a cake and a zebra
|
92 |
-
a photo of a hair drier and a bear
|
93 |
-
a photo of a knife and a zebra
|
94 |
-
a photo of a couch and a wine glass
|
95 |
-
a photo of a frisbee and a vase
|
96 |
-
a photo of a book and a laptop
|
97 |
-
a photo of a dining table and a bear
|
98 |
-
a photo of a frisbee and a couch
|
99 |
-
a photo of a couch and a horse
|
100 |
-
a photo of a toilet and a computer mouse
|
101 |
-
a photo of a bottle and a refrigerator
|
102 |
-
a photo of a potted plant and a backpack
|
103 |
-
a photo of a skateboard and a cake
|
104 |
-
a photo of a broccoli and a parking meter
|
105 |
-
a photo of a zebra and a bed
|
106 |
-
a photo of an oven and a bed
|
107 |
-
a photo of a baseball bat and a fork
|
108 |
-
a photo of a vase and a spoon
|
109 |
-
a photo of a skateboard and a sink
|
110 |
-
a photo of a pizza and a bench
|
111 |
-
a photo of a bowl and a pizza
|
112 |
-
a photo of a tennis racket and a bird
|
113 |
-
a photo of a wine glass and a bear
|
114 |
-
a photo of a fork and a book
|
115 |
-
a photo of a scissors and a bowl
|
116 |
-
a photo of a laptop and a carrot
|
117 |
-
a photo of a stop sign and a bottle
|
118 |
-
a photo of a microwave and a truck
|
119 |
-
a photo of a person and a bear
|
120 |
-
a photo of a frisbee and a cell phone
|
121 |
-
a photo of a parking meter and a teddy bear
|
122 |
-
a photo of a tennis racket and a bicycle
|
123 |
-
a photo of a stop sign and a motorcycle
|
124 |
-
a photo of a fire hydrant and a tennis racket
|
125 |
-
a photo of a scissors and a sandwich
|
126 |
-
a photo of a pizza and a book
|
127 |
-
a photo of a giraffe and a computer mouse
|
128 |
-
a photo of a stop sign and a toaster
|
129 |
-
a photo of a computer mouse and a zebra
|
130 |
-
a photo of a chair and a bench
|
131 |
-
a photo of a tv and a carrot
|
132 |
-
a photo of a surfboard and a suitcase
|
133 |
-
a photo of a computer keyboard and a laptop
|
134 |
-
a photo of a computer keyboard and a microwave
|
135 |
-
a photo of a scissors and a bird
|
136 |
-
a photo of a person and a snowboard
|
137 |
-
a photo of a cow and a horse
|
138 |
-
a photo of a handbag and a refrigerator
|
139 |
-
a photo of a chair and a laptop
|
140 |
-
a photo of a toothbrush and a bench
|
141 |
-
a photo of a book and a baseball bat
|
142 |
-
a photo of a horse and a train
|
143 |
-
a photo of a bench and a vase
|
144 |
-
a photo of a traffic light and a backpack
|
145 |
-
a photo of a sports ball and a cow
|
146 |
-
a photo of a computer mouse and a spoon
|
147 |
-
a photo of a tv and a bicycle
|
148 |
-
a photo of a bench and a snowboard
|
149 |
-
a photo of a toothbrush and a toilet
|
150 |
-
a photo of a person and an apple
|
151 |
-
a photo of a sink and a sports ball
|
152 |
-
a photo of a stop sign and a dog
|
153 |
-
a photo of a knife and a stop sign
|
154 |
-
a photo of a wine glass and a handbag
|
155 |
-
a photo of a bowl and a skis
|
156 |
-
a photo of a frisbee and an apple
|
157 |
-
a photo of a computer keyboard and a cell phone
|
158 |
-
a photo of a stop sign and a fork
|
159 |
-
a photo of a potted plant and a boat
|
160 |
-
a photo of a tv and a cell phone
|
161 |
-
a photo of a tie and a broccoli
|
162 |
-
a photo of a potted plant and a donut
|
163 |
-
a photo of a person and a sink
|
164 |
-
a photo of a couch and a snowboard
|
165 |
-
a photo of a fork and a baseball glove
|
166 |
-
a photo of an apple and a toothbrush
|
167 |
-
a photo of a bus and a baseball glove
|
168 |
-
a photo of a person and a stop sign
|
169 |
-
a photo of a carrot and a couch
|
170 |
-
a photo of a baseball bat and a bear
|
171 |
-
a photo of a fire hydrant and a train
|
172 |
-
a photo of a baseball glove and a carrot
|
173 |
-
a photo of a microwave and a bench
|
174 |
-
a photo of a cake and a stop sign
|
175 |
-
a photo of a car and a computer mouse
|
176 |
-
a photo of a suitcase and a dining table
|
177 |
-
a photo of a person and a traffic light
|
178 |
-
a photo of a cell phone and a horse
|
179 |
-
a photo of a baseball bat and a giraffe
|
180 |
-
a photo of two clocks
|
181 |
-
a photo of two backpacks
|
182 |
-
a photo of four handbags
|
183 |
-
a photo of two frisbees
|
184 |
-
a photo of three sports balls
|
185 |
-
a photo of two bears
|
186 |
-
a photo of two ties
|
187 |
-
a photo of four sinks
|
188 |
-
a photo of two toothbrushs
|
189 |
-
a photo of three persons
|
190 |
-
a photo of three tennis rackets
|
191 |
-
a photo of four bowls
|
192 |
-
a photo of four vases
|
193 |
-
a photo of three cups
|
194 |
-
a photo of four computer keyboards
|
195 |
-
a photo of three sinks
|
196 |
-
a photo of two ovens
|
197 |
-
a photo of two toilets
|
198 |
-
a photo of two bicycles
|
199 |
-
a photo of two trains
|
200 |
-
a photo of three oranges
|
201 |
-
a photo of three buses
|
202 |
-
a photo of three handbags
|
203 |
-
a photo of three snowboards
|
204 |
-
a photo of two snowboards
|
205 |
-
a photo of four dogs
|
206 |
-
a photo of three apples
|
207 |
-
a photo of two sheeps
|
208 |
-
a photo of three hot dogs
|
209 |
-
a photo of three zebras
|
210 |
-
a photo of three kites
|
211 |
-
a photo of four apples
|
212 |
-
a photo of three cell phones
|
213 |
-
a photo of four baseball gloves
|
214 |
-
a photo of three computer keyboards
|
215 |
-
a photo of two beds
|
216 |
-
a photo of two tv remotes
|
217 |
-
a photo of three fire hydrants
|
218 |
-
a photo of three books
|
219 |
-
a photo of four giraffes
|
220 |
-
a photo of two vases
|
221 |
-
a photo of four donuts
|
222 |
-
a photo of four chairs
|
223 |
-
a photo of three baseball bats
|
224 |
-
a photo of four stop signs
|
225 |
-
a photo of two pizzas
|
226 |
-
a photo of three refrigerators
|
227 |
-
a photo of two fire hydrants
|
228 |
-
a photo of three giraffes
|
229 |
-
a photo of four tvs
|
230 |
-
a photo of three wine glasses
|
231 |
-
a photo of four broccolis
|
232 |
-
a photo of three trucks
|
233 |
-
a photo of two trucks
|
234 |
-
a photo of two carrots
|
235 |
-
a photo of two sandwichs
|
236 |
-
a photo of four traffic lights
|
237 |
-
a photo of four clocks
|
238 |
-
a photo of two cars
|
239 |
-
a photo of two bananas
|
240 |
-
a photo of two wine glasses
|
241 |
-
a photo of three pizzas
|
242 |
-
a photo of four knifes
|
243 |
-
a photo of three suitcases
|
244 |
-
a photo of four zebras
|
245 |
-
a photo of two teddy bears
|
246 |
-
a photo of four skateboards
|
247 |
-
a photo of four hot dogs
|
248 |
-
a photo of three birds
|
249 |
-
a photo of four boats
|
250 |
-
a photo of four microwaves
|
251 |
-
a photo of two hair driers
|
252 |
-
a photo of three laptops
|
253 |
-
a photo of three cows
|
254 |
-
a photo of two parking meters
|
255 |
-
a photo of four benchs
|
256 |
-
a photo of three benchs
|
257 |
-
a photo of four frisbees
|
258 |
-
a photo of four books
|
259 |
-
a photo of four buses
|
260 |
-
a photo of a blue fire hydrant
|
261 |
-
a photo of a pink car
|
262 |
-
a photo of a purple cup
|
263 |
-
a photo of a blue cow
|
264 |
-
a photo of a yellow boat
|
265 |
-
a photo of a blue umbrella
|
266 |
-
a photo of a blue elephant
|
267 |
-
a photo of a yellow elephant
|
268 |
-
a photo of a red bicycle
|
269 |
-
a photo of a purple suitcase
|
270 |
-
a photo of a purple hair drier
|
271 |
-
a photo of a white sandwich
|
272 |
-
a photo of a purple elephant
|
273 |
-
a photo of a green microwave
|
274 |
-
a photo of a red zebra
|
275 |
-
a photo of a red apple
|
276 |
-
a photo of a yellow tv remote
|
277 |
-
a photo of a blue toilet
|
278 |
-
a photo of an orange orange
|
279 |
-
a photo of a black donut
|
280 |
-
a photo of a red vase
|
281 |
-
a photo of a purple pizza
|
282 |
-
a photo of a pink skateboard
|
283 |
-
a photo of a green skateboard
|
284 |
-
a photo of a purple bear
|
285 |
-
a photo of a brown chair
|
286 |
-
a photo of a brown computer keyboard
|
287 |
-
a photo of an orange cow
|
288 |
-
a photo of a brown skis
|
289 |
-
a photo of a white kite
|
290 |
-
a photo of a red dog
|
291 |
-
a photo of a green couch
|
292 |
-
a photo of a yellow airplane
|
293 |
-
a photo of an orange tv
|
294 |
-
a photo of a white scissors
|
295 |
-
a photo of a pink cell phone
|
296 |
-
a photo of a green surfboard
|
297 |
-
a photo of a white fire hydrant
|
298 |
-
a photo of a black bicycle
|
299 |
-
a photo of a purple carrot
|
300 |
-
a photo of a black dining table
|
301 |
-
a photo of a purple potted plant
|
302 |
-
a photo of a purple backpack
|
303 |
-
a photo of a yellow train
|
304 |
-
a photo of a pink potted plant
|
305 |
-
a photo of a red giraffe
|
306 |
-
a photo of a brown bear
|
307 |
-
a photo of a black train
|
308 |
-
a photo of an orange laptop
|
309 |
-
a photo of a green hot dog
|
310 |
-
a photo of a yellow parking meter
|
311 |
-
a photo of a red potted plant
|
312 |
-
a photo of a green traffic light
|
313 |
-
a photo of a blue tv
|
314 |
-
a photo of a brown refrigerator
|
315 |
-
a photo of a black tv remote
|
316 |
-
a photo of a purple scissors
|
317 |
-
a photo of a yellow orange
|
318 |
-
a photo of a brown toaster
|
319 |
-
a photo of a red parking meter
|
320 |
-
a photo of a brown orange
|
321 |
-
a photo of a green clock
|
322 |
-
a photo of a white sheep
|
323 |
-
a photo of a yellow oven
|
324 |
-
a photo of a green vase
|
325 |
-
a photo of a black teddy bear
|
326 |
-
a photo of a yellow carrot
|
327 |
-
a photo of a black hot dog
|
328 |
-
a photo of a red scissors
|
329 |
-
a photo of a white teddy bear
|
330 |
-
a photo of a black skis
|
331 |
-
a photo of a blue dining table
|
332 |
-
a photo of a black refrigerator
|
333 |
-
a photo of a white dog
|
334 |
-
a photo of an orange scissors
|
335 |
-
a photo of a red cell phone
|
336 |
-
a photo of a white orange
|
337 |
-
a photo of a blue clock
|
338 |
-
a photo of a blue carrot
|
339 |
-
a photo of a green motorcycle
|
340 |
-
a photo of a pink stop sign
|
341 |
-
a photo of a black vase
|
342 |
-
a photo of a black backpack
|
343 |
-
a photo of a red car
|
344 |
-
a photo of a green computer mouse
|
345 |
-
a photo of a red backpack
|
346 |
-
a photo of a green bus
|
347 |
-
a photo of an orange toaster
|
348 |
-
a photo of a yellow fork
|
349 |
-
a photo of a pink parking meter
|
350 |
-
a photo of a blue book
|
351 |
-
a photo of a yellow broccoli
|
352 |
-
a photo of an orange computer mouse
|
353 |
-
a photo of a red cake
|
354 |
-
a photo of a dog right of a teddy bear
|
355 |
-
a photo of a wine glass above a kite
|
356 |
-
a photo of a couch below a cup
|
357 |
-
a photo of a laptop left of a cow
|
358 |
-
a photo of a fork above a hair drier
|
359 |
-
a photo of a tie right of a baseball bat
|
360 |
-
a photo of a stop sign above a fork
|
361 |
-
a photo of a bird below a skateboard
|
362 |
-
a photo of an apple above a tv
|
363 |
-
a photo of a train above a potted plant
|
364 |
-
a photo of a truck left of a refrigerator
|
365 |
-
a photo of a tv remote below a cow
|
366 |
-
a photo of a bottle right of a train
|
367 |
-
a photo of a dog above a cow
|
368 |
-
a photo of a skateboard above a person
|
369 |
-
a photo of a baseball glove below an umbrella
|
370 |
-
a photo of a dining table right of an oven
|
371 |
-
a photo of a hot dog left of a suitcase
|
372 |
-
a photo of a bus below a toothbrush
|
373 |
-
a photo of a backpack right of a sandwich
|
374 |
-
a photo of a cake below a baseball bat
|
375 |
-
a photo of a dog right of a tie
|
376 |
-
a photo of a suitcase right of a boat
|
377 |
-
a photo of a bear above a clock
|
378 |
-
a photo of a tv remote left of an umbrella
|
379 |
-
a photo of a sports ball left of an umbrella
|
380 |
-
a photo of a train right of a dining table
|
381 |
-
a photo of a hair drier below an elephant
|
382 |
-
a photo of a tennis racket right of a spoon
|
383 |
-
a photo of a wine glass right of a hot dog
|
384 |
-
a photo of a computer mouse left of a bench
|
385 |
-
a photo of a carrot left of an orange
|
386 |
-
a photo of a kite above a toothbrush
|
387 |
-
a photo of a toaster below a traffic light
|
388 |
-
a photo of a cat below a baseball glove
|
389 |
-
a photo of a skis right of a zebra
|
390 |
-
a photo of a stop sign above a chair
|
391 |
-
a photo of a stop sign above a parking meter
|
392 |
-
a photo of a hot dog right of a skateboard
|
393 |
-
a photo of a pizza below a computer keyboard
|
394 |
-
a photo of a hair drier left of a toilet
|
395 |
-
a photo of a cow left of a stop sign
|
396 |
-
a photo of a suitcase above a skis
|
397 |
-
a photo of a book above a laptop
|
398 |
-
a photo of a toothbrush below a pizza
|
399 |
-
a photo of a toilet left of a kite
|
400 |
-
a photo of a tie above a sink
|
401 |
-
a photo of a bird left of a couch
|
402 |
-
a photo of a bed right of a sports ball
|
403 |
-
a photo of an elephant below a surfboard
|
404 |
-
a photo of a frisbee right of a motorcycle
|
405 |
-
a photo of a vase above a fire hydrant
|
406 |
-
a photo of a zebra left of an elephant
|
407 |
-
a photo of a bench left of a bear
|
408 |
-
a photo of a donut right of a bench
|
409 |
-
a photo of a frisbee below a horse
|
410 |
-
a photo of a computer keyboard above a snowboard
|
411 |
-
a photo of a tv below a cow
|
412 |
-
a photo of an elephant below a horse
|
413 |
-
a photo of a suitcase left of a banana
|
414 |
-
a photo of a train below an airplane
|
415 |
-
a photo of a cat below a backpack
|
416 |
-
a photo of a backpack below a cake
|
417 |
-
a photo of a sandwich below a knife
|
418 |
-
a photo of a bicycle above a parking meter
|
419 |
-
a photo of a knife right of a suitcase
|
420 |
-
a photo of a hot dog above a knife
|
421 |
-
a photo of a zebra right of a parking meter
|
422 |
-
a photo of a chair left of a zebra
|
423 |
-
a photo of a cow below an airplane
|
424 |
-
a photo of a cup left of an umbrella
|
425 |
-
a photo of a zebra below a computer keyboard
|
426 |
-
a photo of a zebra below a broccoli
|
427 |
-
a photo of a laptop below a sports ball
|
428 |
-
a photo of a truck left of a baseball bat
|
429 |
-
a photo of a refrigerator above a baseball bat
|
430 |
-
a photo of a tv above a baseball bat
|
431 |
-
a photo of a baseball glove right of a bear
|
432 |
-
a photo of a refrigerator below a scissors
|
433 |
-
a photo of a dining table above a suitcase
|
434 |
-
a photo of a parking meter above a broccoli
|
435 |
-
a photo of a frisbee above a truck
|
436 |
-
a photo of a pizza right of a banana
|
437 |
-
a photo of a bus above a boat
|
438 |
-
a photo of a cell phone left of a tennis racket
|
439 |
-
a photo of a horse right of a broccoli
|
440 |
-
a photo of a broccoli above a bottle
|
441 |
-
a photo of a vase right of a horse
|
442 |
-
a photo of a bear above a spoon
|
443 |
-
a photo of a zebra right of a bed
|
444 |
-
a photo of a cow right of a laptop
|
445 |
-
a photo of a bed right of a frisbee
|
446 |
-
a photo of a tie right of a motorcycle
|
447 |
-
a photo of a laptop right of a tv
|
448 |
-
a photo of a cell phone right of a chair
|
449 |
-
a photo of a couch below a potted plant
|
450 |
-
a photo of a clock below a tv
|
451 |
-
a photo of a couch below a vase
|
452 |
-
a photo of a donut below a cat
|
453 |
-
a photo of a couch left of a toaster
|
454 |
-
a photo of a purple wine glass and a black apple
|
455 |
-
a photo of a green bus and a purple microwave
|
456 |
-
a photo of a green skis and a brown airplane
|
457 |
-
a photo of a yellow computer keyboard and a black sink
|
458 |
-
a photo of a pink oven and a green motorcycle
|
459 |
-
a photo of a purple parking meter and a red laptop
|
460 |
-
a photo of a yellow skateboard and an orange computer mouse
|
461 |
-
a photo of a red skis and a brown tie
|
462 |
-
a photo of a pink skateboard and a black train
|
463 |
-
a photo of a white handbag and a purple bed
|
464 |
-
a photo of a purple elephant and a brown sports ball
|
465 |
-
a photo of a purple dog and a black dining table
|
466 |
-
a photo of a white dining table and a red car
|
467 |
-
a photo of a blue cell phone and a green apple
|
468 |
-
a photo of a red car and an orange potted plant
|
469 |
-
a photo of a brown carrot and a white potted plant
|
470 |
-
a photo of a black kite and a green bear
|
471 |
-
a photo of a blue laptop and a brown bear
|
472 |
-
a photo of a green teddy bear and a brown kite
|
473 |
-
a photo of a yellow stop sign and a blue potted plant
|
474 |
-
a photo of an orange snowboard and a green cat
|
475 |
-
a photo of an orange truck and a pink sink
|
476 |
-
a photo of a brown hot dog and a purple pizza
|
477 |
-
a photo of a green couch and an orange umbrella
|
478 |
-
a photo of a brown bed and a pink cell phone
|
479 |
-
a photo of a black broccoli and a yellow cake
|
480 |
-
a photo of a red train and a purple bear
|
481 |
-
a photo of a purple tennis racket and a black sink
|
482 |
-
a photo of a blue vase and a black banana
|
483 |
-
a photo of a blue clock and a white cup
|
484 |
-
a photo of a red umbrella and a blue couch
|
485 |
-
a photo of a white handbag and a red giraffe
|
486 |
-
a photo of a pink tv remote and a blue airplane
|
487 |
-
a photo of a pink handbag and a black scissors
|
488 |
-
a photo of a brown car and a pink hair drier
|
489 |
-
a photo of a black bus and a brown cell phone
|
490 |
-
a photo of a purple sheep and a pink banana
|
491 |
-
a photo of a blue handbag and a white cell phone
|
492 |
-
a photo of a white pizza and a green umbrella
|
493 |
-
a photo of a white tie and a purple skateboard
|
494 |
-
a photo of a yellow sports ball and a green boat
|
495 |
-
a photo of a white wine glass and a brown giraffe
|
496 |
-
a photo of a yellow bowl and a white baseball glove
|
497 |
-
a photo of an orange microwave and a black spoon
|
498 |
-
a photo of an orange skateboard and a pink bowl
|
499 |
-
a photo of a blue toilet and a white suitcase
|
500 |
-
a photo of a white boat and an orange hot dog
|
501 |
-
a photo of a yellow dining table and a pink dog
|
502 |
-
a photo of a red cake and a purple chair
|
503 |
-
a photo of a blue tie and a pink dining table
|
504 |
-
a photo of a blue cow and a black computer keyboard
|
505 |
-
a photo of a yellow pizza and a green oven
|
506 |
-
a photo of a red laptop and a brown car
|
507 |
-
a photo of a purple computer keyboard and a blue scissors
|
508 |
-
a photo of a green surfboard and an orange oven
|
509 |
-
a photo of a yellow parking meter and a pink refrigerator
|
510 |
-
a photo of a brown computer mouse and a purple bottle
|
511 |
-
a photo of a red umbrella and a green cow
|
512 |
-
a photo of a red giraffe and a black cell phone
|
513 |
-
a photo of a brown oven and a purple train
|
514 |
-
a photo of a blue baseball bat and a pink book
|
515 |
-
a photo of a green cup and a yellow bowl
|
516 |
-
a photo of a yellow suitcase and a brown bus
|
517 |
-
a photo of an orange motorcycle and a pink donut
|
518 |
-
a photo of an orange giraffe and a white baseball glove
|
519 |
-
a photo of an orange handbag and a green carrot
|
520 |
-
a photo of a black bottle and a white refrigerator
|
521 |
-
a photo of a white dog and a blue potted plant
|
522 |
-
a photo of an orange handbag and a red car
|
523 |
-
a photo of a red stop sign and a blue book
|
524 |
-
a photo of a yellow car and an orange toothbrush
|
525 |
-
a photo of a black potted plant and a yellow toilet
|
526 |
-
a photo of a brown dining table and a white suitcase
|
527 |
-
a photo of an orange donut and a yellow stop sign
|
528 |
-
a photo of a green suitcase and a blue boat
|
529 |
-
a photo of an orange tennis racket and a yellow sports ball
|
530 |
-
a photo of a purple computer keyboard and a red chair
|
531 |
-
a photo of a purple suitcase and an orange pizza
|
532 |
-
a photo of a white bottle and a blue sheep
|
533 |
-
a photo of a purple backpack and a white umbrella
|
534 |
-
a photo of an orange potted plant and a black spoon
|
535 |
-
a photo of a green tennis racket and a black dog
|
536 |
-
a photo of a yellow handbag and a blue refrigerator
|
537 |
-
a photo of a pink broccoli and a red sink
|
538 |
-
a photo of a red bowl and a pink sink
|
539 |
-
a photo of a white toilet and a red apple
|
540 |
-
a photo of a pink dining table and a black sandwich
|
541 |
-
a photo of a black car and a green parking meter
|
542 |
-
a photo of a yellow bird and a black motorcycle
|
543 |
-
a photo of a brown giraffe and a white stop sign
|
544 |
-
a photo of a white banana and a black elephant
|
545 |
-
a photo of an orange cow and a purple sandwich
|
546 |
-
a photo of a red clock and a black cell phone
|
547 |
-
a photo of a brown knife and a blue donut
|
548 |
-
a photo of a red cup and a pink handbag
|
549 |
-
a photo of a yellow bicycle and a red motorcycle
|
550 |
-
a photo of a red orange and a purple broccoli
|
551 |
-
a photo of an orange traffic light and a white toilet
|
552 |
-
a photo of a green cup and a red pizza
|
553 |
-
a photo of a blue pizza and a yellow baseball glove
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/geneval/prompts/object_names.txt
DELETED
@@ -1,80 +0,0 @@
|
|
1 |
-
person
|
2 |
-
bicycle
|
3 |
-
car
|
4 |
-
motorcycle
|
5 |
-
airplane
|
6 |
-
bus
|
7 |
-
train
|
8 |
-
truck
|
9 |
-
boat
|
10 |
-
traffic light
|
11 |
-
fire hydrant
|
12 |
-
stop sign
|
13 |
-
parking meter
|
14 |
-
bench
|
15 |
-
bird
|
16 |
-
cat
|
17 |
-
dog
|
18 |
-
horse
|
19 |
-
sheep
|
20 |
-
cow
|
21 |
-
elephant
|
22 |
-
bear
|
23 |
-
zebra
|
24 |
-
giraffe
|
25 |
-
backpack
|
26 |
-
umbrella
|
27 |
-
handbag
|
28 |
-
tie
|
29 |
-
suitcase
|
30 |
-
frisbee
|
31 |
-
skis
|
32 |
-
snowboard
|
33 |
-
sports ball
|
34 |
-
kite
|
35 |
-
baseball bat
|
36 |
-
baseball glove
|
37 |
-
skateboard
|
38 |
-
surfboard
|
39 |
-
tennis racket
|
40 |
-
bottle
|
41 |
-
wine glass
|
42 |
-
cup
|
43 |
-
fork
|
44 |
-
knife
|
45 |
-
spoon
|
46 |
-
bowl
|
47 |
-
banana
|
48 |
-
apple
|
49 |
-
sandwich
|
50 |
-
orange
|
51 |
-
broccoli
|
52 |
-
carrot
|
53 |
-
hot dog
|
54 |
-
pizza
|
55 |
-
donut
|
56 |
-
cake
|
57 |
-
chair
|
58 |
-
couch
|
59 |
-
potted plant
|
60 |
-
bed
|
61 |
-
dining table
|
62 |
-
toilet
|
63 |
-
tv
|
64 |
-
laptop
|
65 |
-
computer mouse
|
66 |
-
tv remote
|
67 |
-
computer keyboard
|
68 |
-
cell phone
|
69 |
-
microwave
|
70 |
-
oven
|
71 |
-
toaster
|
72 |
-
sink
|
73 |
-
refrigerator
|
74 |
-
book
|
75 |
-
clock
|
76 |
-
vase
|
77 |
-
scissors
|
78 |
-
teddy bear
|
79 |
-
hair drier
|
80 |
-
toothbrush
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/wise/cal_score.py
DELETED
@@ -1,162 +0,0 @@
|
|
1 |
-
# Copyright 2025 Bytedance Ltd. and/or its affiliates.
|
2 |
-
# SPDX-License-Identifier: Apache-2.0
|
3 |
-
|
4 |
-
import json
|
5 |
-
import os
|
6 |
-
import argparse
|
7 |
-
from collections import defaultdict
|
8 |
-
|
9 |
-
|
10 |
-
def calculate_wiscore(consistency, realism, aesthetic_quality):
|
11 |
-
return 0.7 * consistency + 0.2 * realism + 0.1 * aesthetic_quality
|
12 |
-
|
13 |
-
|
14 |
-
def cal_culture(file_path):
|
15 |
-
all_scores = []
|
16 |
-
total_objects = 0
|
17 |
-
has_9_9 = False
|
18 |
-
|
19 |
-
with open(file_path, 'r') as file:
|
20 |
-
for line in file:
|
21 |
-
total_objects += 1
|
22 |
-
data = json.loads(line)
|
23 |
-
if 9.9 in [data['consistency'], data['realism'], data['aesthetic_quality']]:
|
24 |
-
has_9_9 = True
|
25 |
-
wiscore = calculate_wiscore(data['consistency'], data['realism'], data['aesthetic_quality'])
|
26 |
-
all_scores.append(wiscore)
|
27 |
-
|
28 |
-
if has_9_9 or total_objects < 400:
|
29 |
-
print(f"Skipping file {file_path}: Contains 9.9 or has less than 400 objects.")
|
30 |
-
return None
|
31 |
-
|
32 |
-
total_score = sum(all_scores)
|
33 |
-
avg_score = total_score / (len(all_scores)*2) if len(all_scores) > 0 else 0
|
34 |
-
|
35 |
-
score = {
|
36 |
-
'total': total_score,
|
37 |
-
'average': avg_score
|
38 |
-
}
|
39 |
-
|
40 |
-
print(f" Cultural - Total: {score['total']:.2f}, Average: {score['average']:.2f}")
|
41 |
-
|
42 |
-
return avg_score
|
43 |
-
|
44 |
-
|
45 |
-
def cal_space_time(file_path):
|
46 |
-
categories = defaultdict(list)
|
47 |
-
total_objects = 0
|
48 |
-
has_9_9 = False
|
49 |
-
|
50 |
-
with open(file_path, 'r') as file:
|
51 |
-
for line in file:
|
52 |
-
total_objects += 1
|
53 |
-
data = json.loads(line)
|
54 |
-
if 9.9 in [data['consistency'], data['realism'], data['aesthetic_quality']]:
|
55 |
-
has_9_9 = True
|
56 |
-
subcategory = data['Subcategory']
|
57 |
-
wiscore = calculate_wiscore(data['consistency'], data['realism'], data['aesthetic_quality'])
|
58 |
-
if subcategory in ['Longitudinal time', 'Horizontal time']:
|
59 |
-
categories['Time'].append(wiscore)
|
60 |
-
else:
|
61 |
-
categories['Space'].append(wiscore)
|
62 |
-
|
63 |
-
if has_9_9 or total_objects < 300:
|
64 |
-
print(f"Skipping file {file_path}: Contains 9.9 or has less than 400 objects.")
|
65 |
-
return None
|
66 |
-
|
67 |
-
total_scores = {category: sum(scores) for category, scores in categories.items()}
|
68 |
-
avg_scores = {category: sum(scores) / (len(scores) * 2 )if len(scores) > 0 else 0 for category, scores in categories.items()}
|
69 |
-
|
70 |
-
scores = {
|
71 |
-
'total': total_scores,
|
72 |
-
'average': avg_scores
|
73 |
-
}
|
74 |
-
|
75 |
-
print(f" Time - Total: {scores['total'].get('Time', 0):.2f}, Average: {scores['average'].get('Time', 0):.2f}")
|
76 |
-
print(f" Space - Total: {scores['total'].get('Space', 0):.2f}, Average: {scores['average'].get('Space', 0):.2f}")
|
77 |
-
|
78 |
-
return avg_scores
|
79 |
-
|
80 |
-
|
81 |
-
def cal_science(file_path):
|
82 |
-
categories = defaultdict(list)
|
83 |
-
total_objects = 0
|
84 |
-
has_9_9 = False
|
85 |
-
|
86 |
-
with open(file_path, 'r') as file:
|
87 |
-
for line in file:
|
88 |
-
total_objects += 1
|
89 |
-
data = json.loads(line)
|
90 |
-
if 9.9 in [data['consistency'], data['realism'], data['aesthetic_quality']]:
|
91 |
-
has_9_9 = True
|
92 |
-
|
93 |
-
prompt_id = data.get('prompt_id', 0)
|
94 |
-
if 701 <= prompt_id <= 800:
|
95 |
-
category = 'Biology'
|
96 |
-
elif 801 <= prompt_id <= 900:
|
97 |
-
category = 'Physics'
|
98 |
-
elif 901 <= prompt_id <= 1000:
|
99 |
-
category = 'Chemistry'
|
100 |
-
else:
|
101 |
-
category = "?"
|
102 |
-
|
103 |
-
wiscore = calculate_wiscore(data['consistency'], data['realism'], data['aesthetic_quality'])
|
104 |
-
categories[category].append(wiscore)
|
105 |
-
|
106 |
-
if has_9_9 or total_objects < 300:
|
107 |
-
print(f"Skipping file {file_path}: Contains 9.9 or has less than 300 objects.")
|
108 |
-
return None
|
109 |
-
|
110 |
-
total_scores = {category: sum(scores) for category, scores in categories.items()}
|
111 |
-
avg_scores = {category: sum(scores) / (len(scores)*2) if len(scores) > 0 else 0 for category, scores in categories.items()}
|
112 |
-
|
113 |
-
scores = {
|
114 |
-
'total': total_scores,
|
115 |
-
'average': avg_scores
|
116 |
-
}
|
117 |
-
|
118 |
-
for category in ['Biology', 'Physics', 'Chemistry']:
|
119 |
-
print(f" {category} - Total: {scores['total'].get(category, 0):.2f}, Average: {scores['average'].get(category, 0):.2f}")
|
120 |
-
|
121 |
-
return avg_scores
|
122 |
-
|
123 |
-
|
124 |
-
if __name__ == "__main__":
|
125 |
-
parser = argparse.ArgumentParser(description='Image Quality Assessment Tool')
|
126 |
-
parser.add_argument('--output_dir', required=True,
|
127 |
-
help='Path to the output directory')
|
128 |
-
args = parser.parse_args()
|
129 |
-
|
130 |
-
avg_score = dict()
|
131 |
-
|
132 |
-
score = cal_culture(
|
133 |
-
os.path.join(args.output_dir, "cultural_common_sense_scores.jsonl")
|
134 |
-
)
|
135 |
-
avg_score['Cultural'] = score
|
136 |
-
|
137 |
-
scores = cal_space_time(
|
138 |
-
os.path.join(args.output_dir, "spatio-temporal_reasoning_scores.jsonl")
|
139 |
-
)
|
140 |
-
avg_score.update(scores)
|
141 |
-
|
142 |
-
scores = cal_science(
|
143 |
-
os.path.join(args.output_dir, "natural_science_scores.jsonl")
|
144 |
-
)
|
145 |
-
avg_score.update(scores)
|
146 |
-
|
147 |
-
avg_all = sum(avg_score.values()) / len(avg_score)
|
148 |
-
|
149 |
-
avg_score['Overall'] = avg_all
|
150 |
-
keys = ""
|
151 |
-
values = ""
|
152 |
-
for k, v in avg_score.items():
|
153 |
-
keys += f"{k} "
|
154 |
-
values += f"{v:.2f} "
|
155 |
-
print(keys)
|
156 |
-
print(values)
|
157 |
-
|
158 |
-
writer = open(os.path.join(args.output_dir, "results.txt"), 'w')
|
159 |
-
print(f"write results to file {os.path.join(args.output_dir, 'results.txt')}")
|
160 |
-
writer.write(keys + "\n")
|
161 |
-
writer.write(values + "\n")
|
162 |
-
writer.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/gen/wise/final_data.json
DELETED
The diff for this file is too large to render.
See raw diff
|
|
eval/gen/wise/gpt_eval_mp.py
DELETED
@@ -1,268 +0,0 @@
|
|
1 |
-
# Copyright 2025 Bytedance Ltd. and/or its affiliates.
|
2 |
-
# SPDX-License-Identifier: Apache-2.0
|
3 |
-
|
4 |
-
import json
|
5 |
-
import os
|
6 |
-
import base64
|
7 |
-
import re
|
8 |
-
import argparse
|
9 |
-
import openai
|
10 |
-
from pathlib import Path
|
11 |
-
from typing import Dict, Any, List
|
12 |
-
import concurrent.futures
|
13 |
-
|
14 |
-
openai.api_key = os.getenv('OPENAI_API_KEY')
|
15 |
-
print(openai.api_key)
|
16 |
-
|
17 |
-
|
18 |
-
def parse_arguments():
|
19 |
-
parser = argparse.ArgumentParser(description='Image Quality Assessment Tool')
|
20 |
-
|
21 |
-
parser.add_argument('--json_path', required=True,
|
22 |
-
help='Path to the prompts JSON file')
|
23 |
-
parser.add_argument('--image_dir', required=True,
|
24 |
-
help='Path to the image directory')
|
25 |
-
parser.add_argument('--output_dir', required=True,
|
26 |
-
help='Path to the output directory')
|
27 |
-
|
28 |
-
return parser.parse_args()
|
29 |
-
|
30 |
-
|
31 |
-
def get_config(args):
|
32 |
-
filename = args.json_path.split("/")[-1].split(".")[0]
|
33 |
-
return {
|
34 |
-
"json_path": args.json_path,
|
35 |
-
"image_dir": args.image_dir,
|
36 |
-
"output_dir": args.output_dir,
|
37 |
-
"result_files": {
|
38 |
-
"full": f"{filename}_full.jsonl",
|
39 |
-
"scores": f"{filename}_scores.jsonl",
|
40 |
-
}
|
41 |
-
}
|
42 |
-
|
43 |
-
|
44 |
-
def extract_scores(evaluation_text: str) -> Dict[str, float]:
|
45 |
-
score_pattern = r"\*{0,2}(Consistency|Realism|Aesthetic Quality)\*{0,2}\s*[::]?\s*(\d)"
|
46 |
-
matches = re.findall(score_pattern, evaluation_text, re.IGNORECASE)
|
47 |
-
|
48 |
-
scores = {
|
49 |
-
"consistency": 9.9,
|
50 |
-
"realism": 9.9,
|
51 |
-
"aesthetic_quality": 9.9
|
52 |
-
}
|
53 |
-
|
54 |
-
for key, value in matches:
|
55 |
-
key = key.lower().replace(" ", "_")
|
56 |
-
if key in scores:
|
57 |
-
scores[key] = float(value)
|
58 |
-
|
59 |
-
return scores
|
60 |
-
|
61 |
-
|
62 |
-
def encode_image(image_path: str) -> str:
|
63 |
-
with open(image_path, "rb") as image_file:
|
64 |
-
return base64.b64encode(image_file.read()).decode('utf-8')
|
65 |
-
|
66 |
-
|
67 |
-
def load_prompts(json_path: str) -> Dict[int, Dict[str, Any]]:
|
68 |
-
with open(json_path, 'r') as f:
|
69 |
-
data = json.load(f)
|
70 |
-
return {item["prompt_id"]: item for item in data}
|
71 |
-
|
72 |
-
|
73 |
-
def build_evaluation_messages(prompt_data: Dict, image_base64: str) -> list:
|
74 |
-
return [
|
75 |
-
{
|
76 |
-
"role": "system",
|
77 |
-
"content": [
|
78 |
-
{
|
79 |
-
"type": "text",
|
80 |
-
"text": "You are a professional Vincennes image quality audit expert, please evaluate the image quality strictly according to the protocol."
|
81 |
-
}
|
82 |
-
]
|
83 |
-
},
|
84 |
-
{
|
85 |
-
"role": "user",
|
86 |
-
"content": [
|
87 |
-
{
|
88 |
-
"type": "text",
|
89 |
-
"text": f"""Please evaluate strictly and return ONLY the three scores as requested.
|
90 |
-
|
91 |
-
# Text-to-Image Quality Evaluation Protocol
|
92 |
-
|
93 |
-
## System Instruction
|
94 |
-
You are an AI quality auditor for text-to-image generation. Apply these rules with ABSOLUTE RUTHLESSNESS. Only images meeting the HIGHEST standards should receive top scores.
|
95 |
-
|
96 |
-
**Input Parameters**
|
97 |
-
- PROMPT: [User's original prompt to]
|
98 |
-
- EXPLANATION: [Further explanation of the original prompt]
|
99 |
-
---
|
100 |
-
|
101 |
-
## Scoring Criteria
|
102 |
-
|
103 |
-
**Consistency (0-2):** How accurately and completely the image reflects the PROMPT.
|
104 |
-
* **0 (Rejected):** Fails to capture key elements of the prompt, or contradicts the prompt.
|
105 |
-
* **1 (Conditional):** Partially captures the prompt. Some elements are present, but not all, or not accurately. Noticeable deviations from the prompt's intent.
|
106 |
-
* **2 (Exemplary):** Perfectly and completely aligns with the PROMPT. Every single element and nuance of the prompt is flawlessly represented in the image. The image is an ideal, unambiguous visual realization of the given prompt.
|
107 |
-
|
108 |
-
**Realism (0-2):** How realistically the image is rendered.
|
109 |
-
* **0 (Rejected):** Physically implausible and clearly artificial. Breaks fundamental laws of physics or visual realism.
|
110 |
-
* **1 (Conditional):** Contains minor inconsistencies or unrealistic elements. While somewhat believable, noticeable flaws detract from realism.
|
111 |
-
* **2 (Exemplary):** Achieves photorealistic quality, indistinguishable from a real photograph. Flawless adherence to physical laws, accurate material representation, and coherent spatial relationships. No visual cues betraying AI generation.
|
112 |
-
|
113 |
-
**Aesthetic Quality (0-2):** The overall artistic appeal and visual quality of the image.
|
114 |
-
* **0 (Rejected):** Poor aesthetic composition, visually unappealing, and lacks artistic merit.
|
115 |
-
* **1 (Conditional):** Demonstrates basic visual appeal, acceptable composition, and color harmony, but lacks distinction or artistic flair.
|
116 |
-
* **2 (Exemplary):** Possesses exceptional aesthetic quality, comparable to a masterpiece. Strikingly beautiful, with perfect composition, a harmonious color palette, and a captivating artistic style. Demonstrates a high degree of artistic vision and execution.
|
117 |
-
|
118 |
-
---
|
119 |
-
|
120 |
-
## Output Format
|
121 |
-
|
122 |
-
**Do not include any other text, explanations, or labels.** You must return only three lines of text, each containing a metric and the corresponding score, for example:
|
123 |
-
|
124 |
-
**Example Output:**
|
125 |
-
Consistency: 2
|
126 |
-
Realism: 1
|
127 |
-
Aesthetic Quality: 0
|
128 |
-
|
129 |
-
---
|
130 |
-
|
131 |
-
**IMPORTANT Enforcement:**
|
132 |
-
|
133 |
-
Be EXTREMELY strict in your evaluation. A score of '2' should be exceedingly rare and reserved only for images that truly excel and meet the highest possible standards in each metric. If there is any doubt, downgrade the score.
|
134 |
-
|
135 |
-
For **Consistency**, a score of '2' requires complete and flawless adherence to every aspect of the prompt, leaving no room for misinterpretation or omission.
|
136 |
-
|
137 |
-
For **Realism**, a score of '2' means the image is virtually indistinguishable from a real photograph in terms of detail, lighting, physics, and material properties.
|
138 |
-
|
139 |
-
For **Aesthetic Quality**, a score of '2' demands exceptional artistic merit, not just pleasant visuals.
|
140 |
-
|
141 |
-
---
|
142 |
-
Here are the Prompt and EXPLANATION for this evaluation:
|
143 |
-
PROMPT: "{prompt_data['Prompt']}"
|
144 |
-
EXPLANATION: "{prompt_data['Explanation']}"
|
145 |
-
Please strictly adhere to the scoring criteria and follow the template format when providing your results."""
|
146 |
-
},
|
147 |
-
{
|
148 |
-
"type": "image_url",
|
149 |
-
"image_url": {
|
150 |
-
"url": f"data:image/png;base64,{image_base64}"
|
151 |
-
}
|
152 |
-
}
|
153 |
-
]
|
154 |
-
}
|
155 |
-
]
|
156 |
-
|
157 |
-
|
158 |
-
def evaluate_image(prompt_data: Dict, image_path: str, config: Dict) -> Dict[str, Any]:
|
159 |
-
try:
|
160 |
-
base64_image = encode_image(image_path)
|
161 |
-
messages = build_evaluation_messages(prompt_data, base64_image)
|
162 |
-
|
163 |
-
response = openai_client.chat.completions.create(
|
164 |
-
model=model,
|
165 |
-
messages=messages,
|
166 |
-
temperature=0.0,
|
167 |
-
max_tokens=2000,
|
168 |
-
n=1,
|
169 |
-
)
|
170 |
-
response = response.to_dict()
|
171 |
-
|
172 |
-
evaluation_text = response['choices'][0]['message']['content'].strip()
|
173 |
-
scores = extract_scores(evaluation_text)
|
174 |
-
|
175 |
-
return {
|
176 |
-
"evaluation": evaluation_text,
|
177 |
-
**scores
|
178 |
-
}
|
179 |
-
except Exception as e:
|
180 |
-
return {
|
181 |
-
"evaluation": f"Evaluation failed: {str(e)}",
|
182 |
-
"consistency": 9.9,
|
183 |
-
"realism": 9.9,
|
184 |
-
"aesthetic_quality": 9.9
|
185 |
-
}
|
186 |
-
|
187 |
-
|
188 |
-
def save_results(data, filename, config):
|
189 |
-
path = os.path.join(config["output_dir"], filename)
|
190 |
-
|
191 |
-
assert filename.endswith('.jsonl')
|
192 |
-
with open(path, 'a', encoding='utf-8') as f:
|
193 |
-
json_line = json.dumps(data, ensure_ascii=False)
|
194 |
-
f.write(json_line + '\n')
|
195 |
-
|
196 |
-
|
197 |
-
def process_prompt(prompt_id, prompt_data, config):
|
198 |
-
image_path = os.path.join(config["image_dir"], f"{prompt_id}.png")
|
199 |
-
|
200 |
-
if not os.path.exists(image_path):
|
201 |
-
print(f"Warning: Image not found {image_path}")
|
202 |
-
return None
|
203 |
-
|
204 |
-
print(f"Evaluating prompt_id: {prompt_id}...")
|
205 |
-
evaluation_result = evaluate_image(prompt_data, image_path, config)
|
206 |
-
|
207 |
-
full_record = {
|
208 |
-
"prompt_id": prompt_id,
|
209 |
-
"prompt": prompt_data["Prompt"],
|
210 |
-
"key": prompt_data["Explanation"],
|
211 |
-
"image_path": image_path,
|
212 |
-
"evaluation": evaluation_result["evaluation"]
|
213 |
-
}
|
214 |
-
|
215 |
-
score_record = {
|
216 |
-
"prompt_id": prompt_id,
|
217 |
-
"Subcategory": prompt_data["Subcategory"],
|
218 |
-
"consistency": evaluation_result["consistency"],
|
219 |
-
"realism": evaluation_result["realism"],
|
220 |
-
"aesthetic_quality": evaluation_result["aesthetic_quality"]
|
221 |
-
}
|
222 |
-
|
223 |
-
return full_record, score_record
|
224 |
-
|
225 |
-
|
226 |
-
if __name__ == "__main__":
|
227 |
-
api_key = openai.api_key
|
228 |
-
base_url = "your_api_url",
|
229 |
-
api_version = "2024-03-01-preview"
|
230 |
-
model = "gpt-4o-2024-11-20"
|
231 |
-
|
232 |
-
openai_client = openai.AzureOpenAI(
|
233 |
-
azure_endpoint=base_url,
|
234 |
-
api_version=api_version,
|
235 |
-
api_key=api_key,
|
236 |
-
)
|
237 |
-
|
238 |
-
args = parse_arguments()
|
239 |
-
config = get_config(args)
|
240 |
-
Path(config["output_dir"]).mkdir(parents=True, exist_ok=True)
|
241 |
-
|
242 |
-
prompts = load_prompts(config["json_path"])
|
243 |
-
|
244 |
-
processed_ids = set()
|
245 |
-
if os.path.exists(os.path.join(config["output_dir"], config["result_files"]["full"])):
|
246 |
-
with open(os.path.join(config["output_dir"], config["result_files"]["full"]), 'r', encoding='utf-8') as f:
|
247 |
-
for line in f:
|
248 |
-
data = json.loads(line)
|
249 |
-
processed_ids.add(data["prompt_id"])
|
250 |
-
left_prompts = {k: v for k, v in prompts.items() if k not in processed_ids}
|
251 |
-
print(f"Process {len(left_prompts)} prompts...")
|
252 |
-
|
253 |
-
MAX_THREADS = 30
|
254 |
-
|
255 |
-
with concurrent.futures.ThreadPoolExecutor(max_workers=MAX_THREADS) as executor:
|
256 |
-
futures = [executor.submit(process_prompt, prompt_id, prompt_data, config)
|
257 |
-
for prompt_id, prompt_data in left_prompts.items()]
|
258 |
-
for future in concurrent.futures.as_completed(futures):
|
259 |
-
try:
|
260 |
-
result = future.result()
|
261 |
-
if result:
|
262 |
-
full_record, score_record = result
|
263 |
-
print(full_record)
|
264 |
-
save_results(full_record, config["result_files"]["full"], config)
|
265 |
-
save_results(score_record, config["result_files"]["scores"], config)
|
266 |
-
|
267 |
-
except Exception as e:
|
268 |
-
print(f"An error occurred: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/__init__.py
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
# Copyright 2025 Bytedance Ltd. and/or its affiliates.
|
2 |
-
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
eval/vlm/eval/mathvista/calculate_score.py
DELETED
@@ -1,271 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
|
14 |
-
import pandas as pd
|
15 |
-
# !pip install python-Levenshtein
|
16 |
-
from Levenshtein import distance
|
17 |
-
from utilities import *
|
18 |
-
|
19 |
-
|
20 |
-
def get_most_similar(prediction, choices):
|
21 |
-
"""
|
22 |
-
Use the Levenshtein distance (or edit distance) to determine which of the choices is most similar to the given prediction
|
23 |
-
"""
|
24 |
-
distances = [distance(prediction, choice) for choice in choices]
|
25 |
-
ind = distances.index(min(distances))
|
26 |
-
return choices[ind]
|
27 |
-
# return min(choices, key=lambda choice: distance(prediction, choice))
|
28 |
-
|
29 |
-
|
30 |
-
def normalize_extracted_answer(extraction, choices, question_type, answer_type, precision):
|
31 |
-
"""
|
32 |
-
Normalize the extracted answer to match the answer type
|
33 |
-
"""
|
34 |
-
if question_type == 'multi_choice':
|
35 |
-
# make sure the extraction is a string
|
36 |
-
if isinstance(extraction, str):
|
37 |
-
extraction = extraction.strip()
|
38 |
-
else:
|
39 |
-
try:
|
40 |
-
extraction = str(extraction)
|
41 |
-
except:
|
42 |
-
extraction = ''
|
43 |
-
|
44 |
-
# extract "A" from "(A) text"
|
45 |
-
letter = re.findall(r'\(([a-zA-Z])\)', extraction)
|
46 |
-
if len(letter) > 0:
|
47 |
-
extraction = letter[0].upper()
|
48 |
-
|
49 |
-
options = [chr(ord('A') + i) for i in range(len(choices))]
|
50 |
-
|
51 |
-
if extraction in options:
|
52 |
-
# convert option letter to text, e.g. "A" -> "text"
|
53 |
-
ind = options.index(extraction)
|
54 |
-
extraction = choices[ind]
|
55 |
-
else:
|
56 |
-
# select the most similar option
|
57 |
-
extraction = get_most_similar(extraction, choices)
|
58 |
-
assert extraction in choices
|
59 |
-
|
60 |
-
elif answer_type == 'integer':
|
61 |
-
try:
|
62 |
-
extraction = str(int(float(extraction)))
|
63 |
-
except:
|
64 |
-
extraction = None
|
65 |
-
|
66 |
-
elif answer_type == 'float':
|
67 |
-
try:
|
68 |
-
extraction = str(round(float(extraction), int(precision)))
|
69 |
-
except:
|
70 |
-
extraction = None
|
71 |
-
|
72 |
-
elif answer_type == 'list':
|
73 |
-
try:
|
74 |
-
extraction = str(extraction)
|
75 |
-
except:
|
76 |
-
extraction = None
|
77 |
-
|
78 |
-
return extraction
|
79 |
-
|
80 |
-
|
81 |
-
def safe_equal(prediction, answer):
|
82 |
-
"""
|
83 |
-
Check if the prediction is equal to the answer, even if they are of different types
|
84 |
-
"""
|
85 |
-
try:
|
86 |
-
if prediction == answer:
|
87 |
-
return True
|
88 |
-
return False
|
89 |
-
except Exception as e:
|
90 |
-
print(e)
|
91 |
-
return False
|
92 |
-
|
93 |
-
|
94 |
-
def get_acc_with_contion(res_pd, key, value):
|
95 |
-
if key == 'skills':
|
96 |
-
# if value in res_pd[key]:
|
97 |
-
total_pd = res_pd[res_pd[key].apply(lambda x: value in x)]
|
98 |
-
else:
|
99 |
-
total_pd = res_pd[res_pd[key] == value]
|
100 |
-
|
101 |
-
correct_pd = total_pd[total_pd['true_false'] == True] # noqa: E712
|
102 |
-
acc = '{:.2f}'.format(len(correct_pd) / len(total_pd) * 100)
|
103 |
-
return len(correct_pd), len(total_pd), acc
|
104 |
-
|
105 |
-
|
106 |
-
if __name__ == '__main__':
|
107 |
-
parser = argparse.ArgumentParser()
|
108 |
-
parser.add_argument('--output_dir', type=str, default='./results')
|
109 |
-
parser.add_argument('--output_file', type=str, default='output.json')
|
110 |
-
parser.add_argument('--score_file', type=str, default='scores.json')
|
111 |
-
parser.add_argument('--gt_file', type=str, default='./eval/vlm/data/MathVista/annot_testmini.json', help='ground truth file')
|
112 |
-
parser.add_argument('--number', type=int, default=-1, help='number of problems to run')
|
113 |
-
parser.add_argument('--rerun', action='store_true', help='rerun the evaluation')
|
114 |
-
parser.add_argument('--caculate_gain', action='store_true', help='caculate the score gains over random guess')
|
115 |
-
parser.add_argument('--random_file', type=str, default='score_random_guess.json')
|
116 |
-
args = parser.parse_args()
|
117 |
-
|
118 |
-
# args
|
119 |
-
output_file = os.path.join(args.output_dir, args.output_file)
|
120 |
-
|
121 |
-
# # quick test
|
122 |
-
# output_file = '../results/llava-llama-2-13b/output_llava_llama_2_13b.json'
|
123 |
-
|
124 |
-
# read json
|
125 |
-
print(f'Reading {output_file}...')
|
126 |
-
results = read_json(output_file)
|
127 |
-
|
128 |
-
# read ground truth
|
129 |
-
print(f'Reading {args.gt_file}...')
|
130 |
-
gts = read_json(args.gt_file)
|
131 |
-
|
132 |
-
# full pids
|
133 |
-
full_pids = list(results.keys())
|
134 |
-
if args.number > 0:
|
135 |
-
full_pids = full_pids[:min(args.number, len(full_pids))]
|
136 |
-
print('Number of testing problems:', len(full_pids))
|
137 |
-
|
138 |
-
## [1] Evaluate if the prediction is true or false
|
139 |
-
print('\nEvaluating the predictions...')
|
140 |
-
update_json_flag = False
|
141 |
-
for pid in full_pids:
|
142 |
-
problem = results[pid]
|
143 |
-
# print(problem)
|
144 |
-
|
145 |
-
if args.rerun:
|
146 |
-
if 'prediction' in problem:
|
147 |
-
del problem['prediction']
|
148 |
-
if 'true_false' in problem:
|
149 |
-
del problem['true_false']
|
150 |
-
|
151 |
-
choices = problem['choices']
|
152 |
-
question_type = problem['question_type']
|
153 |
-
answer_type = problem['answer_type']
|
154 |
-
precision = problem['precision']
|
155 |
-
extraction = problem['extraction']
|
156 |
-
|
157 |
-
if 'answer' in problem:
|
158 |
-
answer = problem['answer']
|
159 |
-
else:
|
160 |
-
if pid in gts:
|
161 |
-
answer = gts[pid]['answer']
|
162 |
-
else:
|
163 |
-
answer = ''
|
164 |
-
problem['answer'] = answer
|
165 |
-
|
166 |
-
# normalize the extracted answer to match the answer type
|
167 |
-
prediction = normalize_extracted_answer(extraction, choices, question_type, answer_type, precision)
|
168 |
-
|
169 |
-
# verify the prediction is true or false
|
170 |
-
true_false = safe_equal(prediction, answer)
|
171 |
-
|
172 |
-
# update the problem
|
173 |
-
if 'true_false' not in problem:
|
174 |
-
update_json_flag = True
|
175 |
-
|
176 |
-
elif true_false != problem['true_false']:
|
177 |
-
update_json_flag = True
|
178 |
-
|
179 |
-
if 'prediction' not in problem:
|
180 |
-
update_json_flag = True
|
181 |
-
|
182 |
-
elif prediction != problem['prediction']:
|
183 |
-
update_json_flag = True
|
184 |
-
|
185 |
-
problem['prediction'] = prediction
|
186 |
-
problem['true_false'] = true_false
|
187 |
-
|
188 |
-
# save the updated json
|
189 |
-
if update_json_flag:
|
190 |
-
print('\n!!!Some problems are updated.!!!')
|
191 |
-
print(f'\nSaving {output_file}...')
|
192 |
-
save_json(results, output_file)
|
193 |
-
|
194 |
-
## [2] Calculate the average accuracy
|
195 |
-
total = len(full_pids)
|
196 |
-
correct = 0
|
197 |
-
for pid in full_pids:
|
198 |
-
if results[pid]['true_false']:
|
199 |
-
correct += 1
|
200 |
-
accuracy = str(round(correct / total * 100, 2))
|
201 |
-
print(f'\nCorrect: {correct}, Total: {total}, Accuracy: {accuracy}%')
|
202 |
-
|
203 |
-
scores = {'average': {'accuracy': accuracy, 'correct': correct, 'total': total}}
|
204 |
-
|
205 |
-
## [3] Calculate the fine-grained accuracy scores
|
206 |
-
|
207 |
-
# merge the 'metadata' attribute into the data
|
208 |
-
for pid in results:
|
209 |
-
results[pid].update(results[pid].pop('metadata'))
|
210 |
-
|
211 |
-
# convert the data to a pandas DataFrame
|
212 |
-
df = pd.DataFrame(results).T
|
213 |
-
|
214 |
-
print(len(df))
|
215 |
-
print('Number of test problems:', len(df))
|
216 |
-
# assert len(df) == 1000 # Important!!!
|
217 |
-
|
218 |
-
# asign the target keys for evaluation
|
219 |
-
target_keys = ['question_type', 'answer_type', 'language', 'source', 'category', 'task', 'context', 'grade',
|
220 |
-
'skills']
|
221 |
-
|
222 |
-
for key in target_keys:
|
223 |
-
print(f'\nType: [{key}]')
|
224 |
-
# get the unique values of the key
|
225 |
-
if key == 'skills':
|
226 |
-
# the value is a list
|
227 |
-
values = []
|
228 |
-
for i in range(len(df)):
|
229 |
-
values += df[key][i]
|
230 |
-
values = list(set(values))
|
231 |
-
else:
|
232 |
-
values = df[key].unique()
|
233 |
-
# print(values)
|
234 |
-
|
235 |
-
# calculate the accuracy for each value
|
236 |
-
scores[key] = {}
|
237 |
-
for value in values:
|
238 |
-
correct, total, acc = get_acc_with_contion(df, key, value)
|
239 |
-
if total > 0:
|
240 |
-
print(f'[{value}]: {acc}% ({correct}/{total})')
|
241 |
-
scores[key][value] = {'accuracy': acc, 'correct': correct, 'total': total}
|
242 |
-
|
243 |
-
# sort the scores by accuracy
|
244 |
-
scores[key] = dict(sorted(scores[key].items(), key=lambda item: float(item[1]['accuracy']), reverse=True))
|
245 |
-
|
246 |
-
# save the scores
|
247 |
-
scores_file = os.path.join(args.output_dir, args.score_file)
|
248 |
-
print(f'\nSaving {scores_file}...')
|
249 |
-
save_json(scores, scores_file)
|
250 |
-
print('\nDone!')
|
251 |
-
|
252 |
-
# [4] Calculate the score gains over random guess
|
253 |
-
if args.caculate_gain:
|
254 |
-
random_file = os.path.join(args.output_dir, args.random_file)
|
255 |
-
random_scores = json.load(open(random_file))
|
256 |
-
|
257 |
-
print('\nCalculating the score gains...')
|
258 |
-
for key in scores:
|
259 |
-
if key == 'average':
|
260 |
-
gain = round(float(scores[key]['accuracy']) - float(random_scores[key]['accuracy']), 2)
|
261 |
-
scores[key]['acc_gain'] = gain
|
262 |
-
else:
|
263 |
-
for sub_key in scores[key]:
|
264 |
-
gain = round(
|
265 |
-
float(scores[key][sub_key]['accuracy']) - float(random_scores[key][sub_key]['accuracy']), 2)
|
266 |
-
scores[key][sub_key]['acc_gain'] = str(gain)
|
267 |
-
|
268 |
-
# save the score gains
|
269 |
-
print(f'\nSaving {scores_file}...')
|
270 |
-
save_json(scores, scores_file)
|
271 |
-
print('\nDone!')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mathvista/evaluate_mathvista.py
DELETED
@@ -1,210 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import itertools
|
14 |
-
import json
|
15 |
-
import os
|
16 |
-
import random
|
17 |
-
|
18 |
-
import torch
|
19 |
-
from datasets import concatenate_datasets, load_dataset
|
20 |
-
from eval.vlm.utils import load_model_and_tokenizer, build_transform, process_conversation
|
21 |
-
from tqdm import tqdm
|
22 |
-
|
23 |
-
ds_collections = {
|
24 |
-
'MathVista_testmini': {
|
25 |
-
'root': 'AI4Math/MathVista',
|
26 |
-
'max_new_tokens': 4096,
|
27 |
-
'min_new_tokens': 1,
|
28 |
-
'split': 'testmini'
|
29 |
-
},
|
30 |
-
'MathVista_test': {
|
31 |
-
'root': 'AI4Math/MathVista',
|
32 |
-
'max_new_tokens': 4096,
|
33 |
-
'min_new_tokens': 1,
|
34 |
-
'split': 'test'
|
35 |
-
},
|
36 |
-
}
|
37 |
-
|
38 |
-
|
39 |
-
COT_INSTRUCTION = (
|
40 |
-
'Your task is to answer the question below. '
|
41 |
-
"Give step by step reasoning before you answer, and when you're ready to answer, "
|
42 |
-
"please use the format \"Final answer: ..\""
|
43 |
-
'\n\n'
|
44 |
-
'Question:'
|
45 |
-
'\n\n'
|
46 |
-
'{question}'
|
47 |
-
)
|
48 |
-
|
49 |
-
|
50 |
-
def collate_fn(batches):
|
51 |
-
images = [_['images'] for _ in batches]
|
52 |
-
data_items = [_['data_item'] for _ in batches]
|
53 |
-
return images, data_items
|
54 |
-
|
55 |
-
|
56 |
-
class MathVistaDataset(torch.utils.data.Dataset):
|
57 |
-
|
58 |
-
def __init__(self, root, split):
|
59 |
-
dataset = load_dataset(root, cache_dir=os.path.join(os.getcwd(), 'eval/vlm/data/MathVista/'))
|
60 |
-
self.data = dataset[split]
|
61 |
-
|
62 |
-
def __len__(self):
|
63 |
-
return len(self.data)
|
64 |
-
|
65 |
-
def __getitem__(self, idx):
|
66 |
-
data_item = self.data[idx]
|
67 |
-
image = data_item['decoded_image']
|
68 |
-
del data_item['decoded_image']
|
69 |
-
|
70 |
-
images = [image.convert('RGB') if image.mode != 'RGB' else image]
|
71 |
-
|
72 |
-
return {
|
73 |
-
'images': images,
|
74 |
-
'data_item': data_item,
|
75 |
-
}
|
76 |
-
|
77 |
-
|
78 |
-
class InferenceSampler(torch.utils.data.sampler.Sampler):
|
79 |
-
|
80 |
-
def __init__(self, size):
|
81 |
-
self._size = int(size)
|
82 |
-
assert size > 0
|
83 |
-
self._rank = torch.distributed.get_rank()
|
84 |
-
self._world_size = torch.distributed.get_world_size()
|
85 |
-
self._local_indices = self._get_local_indices(size, self._world_size, self._rank)
|
86 |
-
|
87 |
-
@staticmethod
|
88 |
-
def _get_local_indices(total_size, world_size, rank):
|
89 |
-
shard_size = total_size // world_size
|
90 |
-
left = total_size % world_size
|
91 |
-
shard_sizes = [shard_size + int(r < left) for r in range(world_size)]
|
92 |
-
|
93 |
-
begin = sum(shard_sizes[:rank])
|
94 |
-
end = min(sum(shard_sizes[:rank + 1]), total_size)
|
95 |
-
return range(begin, end)
|
96 |
-
|
97 |
-
def __iter__(self):
|
98 |
-
yield from self._local_indices
|
99 |
-
|
100 |
-
def __len__(self):
|
101 |
-
return len(self._local_indices)
|
102 |
-
|
103 |
-
|
104 |
-
def evaluate_chat_model():
|
105 |
-
random.seed(args.seed)
|
106 |
-
|
107 |
-
for ds_name in args.datasets:
|
108 |
-
dataset = MathVistaDataset(
|
109 |
-
root=ds_collections[ds_name]['root'],
|
110 |
-
split=ds_collections[ds_name]['split'],
|
111 |
-
)
|
112 |
-
dataloader = torch.utils.data.DataLoader(
|
113 |
-
dataset=dataset,
|
114 |
-
sampler=InferenceSampler(len(dataset)),
|
115 |
-
batch_size=args.batch_size,
|
116 |
-
num_workers=args.num_workers,
|
117 |
-
pin_memory=True,
|
118 |
-
drop_last=False,
|
119 |
-
collate_fn=collate_fn,
|
120 |
-
)
|
121 |
-
|
122 |
-
outputs = []
|
123 |
-
for _, (images, data_items) in tqdm(enumerate(dataloader)):
|
124 |
-
if args.cot:
|
125 |
-
question = COT_INSTRUCTION.format(question=data_items[0]['query'])
|
126 |
-
else:
|
127 |
-
question = data_items[0]['query']
|
128 |
-
|
129 |
-
images = images[0]
|
130 |
-
images, conversation = process_conversation(images, question)
|
131 |
-
|
132 |
-
pred = model.chat(
|
133 |
-
tokenizer,
|
134 |
-
new_token_ids,
|
135 |
-
image_transform,
|
136 |
-
images=images,
|
137 |
-
prompt=conversation,
|
138 |
-
max_length=ds_collections[ds_name]['max_new_tokens'] if not args.cot else 4096, # TODO: how to use ds_collections[ds_name]['min_new_tokens']
|
139 |
-
)
|
140 |
-
|
141 |
-
data_item = data_items[0]
|
142 |
-
data_item['response'] = pred
|
143 |
-
outputs.append(data_item)
|
144 |
-
|
145 |
-
torch.distributed.barrier()
|
146 |
-
|
147 |
-
world_size = torch.distributed.get_world_size()
|
148 |
-
merged_outputs = [None for _ in range(world_size)]
|
149 |
-
torch.distributed.all_gather_object(merged_outputs, json.dumps(outputs))
|
150 |
-
|
151 |
-
merged_outputs = [json.loads(_) for _ in merged_outputs]
|
152 |
-
merged_outputs = [_ for _ in itertools.chain.from_iterable(merged_outputs)]
|
153 |
-
|
154 |
-
if torch.distributed.get_rank() == 0:
|
155 |
-
temp = {}
|
156 |
-
for data_item in merged_outputs:
|
157 |
-
pid = data_item['pid']
|
158 |
-
temp[pid] = data_item
|
159 |
-
|
160 |
-
print(f'Evaluating {ds_name} ...')
|
161 |
-
results_file = 'results.json'
|
162 |
-
output_path = os.path.join(args.out_dir, 'results.json')
|
163 |
-
json.dump(temp, open(output_path, 'w'), indent=4)
|
164 |
-
print('Results saved to {}'.format(output_path))
|
165 |
-
|
166 |
-
if args.cot:
|
167 |
-
cmd = f'python eval/vlm/eval/mathvista/extract_answer_mp.py --output_file {results_file} --output_dir {args.out_dir}'
|
168 |
-
else:
|
169 |
-
cmd = f'python eval/vlm/eval/mathvista/extract_answer_mp.py --output_file {results_file} --output_dir {args.out_dir}'
|
170 |
-
print(cmd)
|
171 |
-
os.system(cmd)
|
172 |
-
|
173 |
-
cmd = f'python eval/vlm/eval/mathvista/calculate_score.py --output_file {results_file} --output_dir {args.out_dir} --score_file score.json'
|
174 |
-
print(cmd)
|
175 |
-
os.system(cmd)
|
176 |
-
|
177 |
-
|
178 |
-
if __name__ == '__main__':
|
179 |
-
parser = argparse.ArgumentParser()
|
180 |
-
parser.add_argument('--datasets', type=str, default='MathVista_testmini')
|
181 |
-
parser.add_argument('--batch-size', type=int, default=1)
|
182 |
-
parser.add_argument('--num-workers', type=int, default=1)
|
183 |
-
parser.add_argument('--out-dir', type=str, default='results')
|
184 |
-
parser.add_argument('--seed', type=int, default=0)
|
185 |
-
parser.add_argument('--cot', action='store_true')
|
186 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
187 |
-
args = parser.parse_args()
|
188 |
-
|
189 |
-
if not os.path.exists(args.out_dir):
|
190 |
-
os.makedirs(args.out_dir, exist_ok=True)
|
191 |
-
|
192 |
-
args.datasets = args.datasets.split(',')
|
193 |
-
print('datasets:', args.datasets)
|
194 |
-
assert args.batch_size == 1, 'Only batch size 1 is supported'
|
195 |
-
|
196 |
-
torch.distributed.init_process_group(
|
197 |
-
backend='nccl',
|
198 |
-
world_size=int(os.getenv('WORLD_SIZE', '1')),
|
199 |
-
rank=int(os.getenv('RANK', '0')),
|
200 |
-
)
|
201 |
-
|
202 |
-
torch.cuda.set_device(int(os.getenv('LOCAL_RANK', 0)))
|
203 |
-
|
204 |
-
model, tokenizer, new_token_ids = load_model_and_tokenizer(args)
|
205 |
-
image_transform = build_transform()
|
206 |
-
|
207 |
-
total_params = sum(p.numel() for p in model.parameters()) / 1e9
|
208 |
-
print(f'[test] total_params: {total_params}B')
|
209 |
-
|
210 |
-
evaluate_chat_model()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mathvista/extract_answer.py
DELETED
@@ -1,160 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
|
14 |
-
from tqdm import tqdm
|
15 |
-
from utilities import *
|
16 |
-
|
17 |
-
openai.api_key = os.getenv('OPENAI_API_KEY')
|
18 |
-
print(openai.api_key)
|
19 |
-
|
20 |
-
# load demo prompt
|
21 |
-
from prompts.ext_ans import demo_prompt
|
22 |
-
|
23 |
-
|
24 |
-
def verify_extraction(extraction):
|
25 |
-
extraction = extraction.strip()
|
26 |
-
if extraction == '' or extraction is None:
|
27 |
-
return False
|
28 |
-
return True
|
29 |
-
|
30 |
-
|
31 |
-
def create_test_prompt(demo_prompt, query, response):
|
32 |
-
demo_prompt = demo_prompt.strip()
|
33 |
-
test_prompt = f'{query}\n\n{response}'
|
34 |
-
full_prompt = f'{demo_prompt}\n\n{test_prompt}\n\nExtracted answer: '
|
35 |
-
return full_prompt
|
36 |
-
|
37 |
-
|
38 |
-
def _extract_answer(text):
|
39 |
-
match = re.search(r'(Final answer:|Answer:)\s*(.*)', text, re.IGNORECASE)
|
40 |
-
if match:
|
41 |
-
return match.group(2).strip()
|
42 |
-
return text
|
43 |
-
|
44 |
-
|
45 |
-
def extract_answer(response, problem, quick_extract=False):
|
46 |
-
question_type = problem['question_type']
|
47 |
-
answer_type = problem['answer_type']
|
48 |
-
choices = problem['choices']
|
49 |
-
query = problem['query']
|
50 |
-
|
51 |
-
if response == '':
|
52 |
-
return ''
|
53 |
-
|
54 |
-
if question_type == 'multi_choice' and response in choices:
|
55 |
-
return response
|
56 |
-
|
57 |
-
if answer_type == 'integer':
|
58 |
-
try:
|
59 |
-
extraction = int(response)
|
60 |
-
return str(extraction)
|
61 |
-
except:
|
62 |
-
pass
|
63 |
-
|
64 |
-
if answer_type == 'float':
|
65 |
-
try:
|
66 |
-
extraction = str(float(response))
|
67 |
-
return extraction
|
68 |
-
except:
|
69 |
-
pass
|
70 |
-
|
71 |
-
# quick extraction
|
72 |
-
if quick_extract:
|
73 |
-
print('Quickly extracting answer...')
|
74 |
-
# The answer is "text". -> "text"
|
75 |
-
try:
|
76 |
-
result = _extract_answer(response)
|
77 |
-
return result
|
78 |
-
# result = re.search(r'The answer is "(.*)"\.', response)
|
79 |
-
# if result:
|
80 |
-
# extraction = result.group(1)
|
81 |
-
# return extraction
|
82 |
-
except:
|
83 |
-
pass
|
84 |
-
|
85 |
-
# general extraction
|
86 |
-
try:
|
87 |
-
full_prompt = create_test_prompt(demo_prompt, query, response)
|
88 |
-
extraction = get_chat_response(full_prompt, openai.api_key, patience=5)
|
89 |
-
return extraction
|
90 |
-
except Exception as e:
|
91 |
-
print(e)
|
92 |
-
print(f'Error in extracting answer for {pid}')
|
93 |
-
|
94 |
-
return ''
|
95 |
-
|
96 |
-
|
97 |
-
if __name__ == '__main__':
|
98 |
-
parser = argparse.ArgumentParser()
|
99 |
-
# input
|
100 |
-
parser.add_argument('--output_dir', type=str, default='./results')
|
101 |
-
parser.add_argument('--output_file', type=str, default='mathvista_answer.json')
|
102 |
-
parser.add_argument('--response_label', type=str, default='response', help='response label for the input file')
|
103 |
-
# model
|
104 |
-
parser.add_argument('--llm_engine', type=str, default='gpt-4-0613', help='llm engine',
|
105 |
-
choices=['gpt-3.5-turbo', 'gpt-3.5', 'gpt-4', 'gpt-4-0314', 'gpt-4-0613'])
|
106 |
-
parser.add_argument('--number', type=int, default=-1, help='number of problems to run')
|
107 |
-
parser.add_argument('--quick_extract', action='store_true', help='use rules to extract answer for some problems')
|
108 |
-
parser.add_argument('--rerun', action='store_true', help='rerun the answer extraction')
|
109 |
-
# output
|
110 |
-
parser.add_argument('--save_every', type=int, default=10, help='save every n problems')
|
111 |
-
parser.add_argument('--output_label', type=str, default='', help='label for the output file')
|
112 |
-
args = parser.parse_args()
|
113 |
-
|
114 |
-
# args
|
115 |
-
label = args.response_label
|
116 |
-
result_file = os.path.join(args.output_dir, args.output_file)
|
117 |
-
|
118 |
-
if args.output_label != '':
|
119 |
-
output_file = result_file.replace('.json', f'_{args.output_label}.json')
|
120 |
-
else:
|
121 |
-
output_file = result_file
|
122 |
-
|
123 |
-
# read results
|
124 |
-
print(f'Reading {result_file}...')
|
125 |
-
results = read_json(result_file)
|
126 |
-
|
127 |
-
# full pids
|
128 |
-
full_pids = list(results.keys())
|
129 |
-
if args.number > 0:
|
130 |
-
full_pids = full_pids[:min(args.number, len(full_pids))]
|
131 |
-
print('Number of testing problems:', len(full_pids))
|
132 |
-
|
133 |
-
# test pids
|
134 |
-
if args.rerun:
|
135 |
-
test_pids = full_pids
|
136 |
-
else:
|
137 |
-
test_pids = []
|
138 |
-
for pid in full_pids:
|
139 |
-
# print(pid)
|
140 |
-
if 'extraction' not in results[pid] or not verify_extraction(results[pid]['extraction']):
|
141 |
-
test_pids.append(pid)
|
142 |
-
|
143 |
-
test_num = len(test_pids)
|
144 |
-
print('Number of problems to run:', test_num)
|
145 |
-
# print(test_pids)
|
146 |
-
|
147 |
-
# tqdm, enumerate results
|
148 |
-
for i, pid in enumerate(tqdm(test_pids)):
|
149 |
-
problem = results[pid]
|
150 |
-
|
151 |
-
assert label in problem
|
152 |
-
response = problem[label]
|
153 |
-
|
154 |
-
extraction = extract_answer(response, problem, args.quick_extract)
|
155 |
-
results[pid]['extraction'] = extraction
|
156 |
-
|
157 |
-
if i % args.save_every == 0 or i == test_num - 1:
|
158 |
-
print(f'Saving results to {output_file}...')
|
159 |
-
save_json(results, output_file)
|
160 |
-
print(f'Results saved.')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mathvista/extract_answer_mp.py
DELETED
@@ -1,161 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
|
13 |
-
import argparse
|
14 |
-
import os
|
15 |
-
import re
|
16 |
-
import json
|
17 |
-
import openai
|
18 |
-
from concurrent.futures import ThreadPoolExecutor, as_completed
|
19 |
-
from tqdm import tqdm
|
20 |
-
from utilities import *
|
21 |
-
from prompts.ext_ans import demo_prompt
|
22 |
-
|
23 |
-
openai.api_key = os.getenv('OPENAI_API_KEY')
|
24 |
-
print(openai.api_key)
|
25 |
-
|
26 |
-
def verify_extraction(extraction):
|
27 |
-
extraction = extraction.strip()
|
28 |
-
if extraction == '' or extraction is None:
|
29 |
-
return False
|
30 |
-
return True
|
31 |
-
|
32 |
-
def create_test_prompt(demo_prompt, query, response):
|
33 |
-
demo_prompt = demo_prompt.strip()
|
34 |
-
test_prompt = f'{query}\n\n{response}'
|
35 |
-
full_prompt = f'{demo_prompt}\n\n{test_prompt}\n\nExtracted answer: '
|
36 |
-
return full_prompt
|
37 |
-
|
38 |
-
def _extract_answer(text):
|
39 |
-
match = re.search(r'(Final answer:|Answer:)\s*(.*)', text, re.IGNORECASE)
|
40 |
-
if match:
|
41 |
-
return match.group(2).strip()
|
42 |
-
return text
|
43 |
-
|
44 |
-
def extract_answer(response, problem, quick_extract=False):
|
45 |
-
question_type = problem['question_type']
|
46 |
-
answer_type = problem['answer_type']
|
47 |
-
choices = problem['choices']
|
48 |
-
query = problem['query']
|
49 |
-
|
50 |
-
if response == '':
|
51 |
-
return ''
|
52 |
-
|
53 |
-
if question_type == 'multi_choice' and response in choices:
|
54 |
-
return response
|
55 |
-
|
56 |
-
if answer_type == 'integer':
|
57 |
-
try:
|
58 |
-
extraction = int(response)
|
59 |
-
return str(extraction)
|
60 |
-
except:
|
61 |
-
pass
|
62 |
-
|
63 |
-
if answer_type == 'float':
|
64 |
-
try:
|
65 |
-
extraction = str(float(response))
|
66 |
-
return extraction
|
67 |
-
except:
|
68 |
-
pass
|
69 |
-
|
70 |
-
# quick extraction
|
71 |
-
if quick_extract:
|
72 |
-
print('Quickly extracting answer...')
|
73 |
-
try:
|
74 |
-
result = _extract_answer(response)
|
75 |
-
return result
|
76 |
-
except:
|
77 |
-
pass
|
78 |
-
|
79 |
-
try:
|
80 |
-
full_prompt = create_test_prompt(demo_prompt, query, response)
|
81 |
-
extraction = get_chat_response(full_prompt, openai.api_key, patience=5, model=args.llm_engine)
|
82 |
-
return extraction
|
83 |
-
except Exception as e:
|
84 |
-
print(e)
|
85 |
-
|
86 |
-
return ''
|
87 |
-
|
88 |
-
def process_problem(pid, results, label, args):
|
89 |
-
problem = results[pid]
|
90 |
-
response = problem[label]
|
91 |
-
extraction = extract_answer(response, problem, args.quick_extract)
|
92 |
-
return pid, extraction
|
93 |
-
|
94 |
-
if __name__ == '__main__':
|
95 |
-
parser = argparse.ArgumentParser()
|
96 |
-
# input
|
97 |
-
parser.add_argument('--output_dir', type=str, default='./results')
|
98 |
-
parser.add_argument('--output_file', type=str, default='mathvista_answer.json')
|
99 |
-
parser.add_argument('--response_label', type=str, default='response', help='response label for the input file')
|
100 |
-
# model
|
101 |
-
parser.add_argument('--llm_engine', type=str, default='gpt-4o-2024-11-20', help='llm engine',
|
102 |
-
choices=['gpt-3.5-turbo', 'gpt-3.5', 'gpt-4', 'gpt-4-0314', 'gpt-4-0613',
|
103 |
-
'gpt-4o-2024-08-06', 'gpt-4o-2024-11-20'])
|
104 |
-
parser.add_argument('--number', type=int, default=-1, help='number of problems to run')
|
105 |
-
parser.add_argument('--quick_extract', action='store_true', help='use rules to extract answer for some problems')
|
106 |
-
parser.add_argument('--rerun', action='store_true', help='rerun the answer extraction')
|
107 |
-
# output
|
108 |
-
parser.add_argument('--save_every', type=int, default=100, help='save every n problems')
|
109 |
-
parser.add_argument('--output_label', type=str, default='', help='label for the output file')
|
110 |
-
parser.add_argument('--max_workers', type=int, default=40, help='max workers for ThreadPoolExecutor')
|
111 |
-
args = parser.parse_args()
|
112 |
-
|
113 |
-
label = args.response_label
|
114 |
-
result_file = os.path.join(args.output_dir, args.output_file)
|
115 |
-
|
116 |
-
if args.output_label != '':
|
117 |
-
output_file = result_file.replace('.json', f'_{args.output_label}.json')
|
118 |
-
else:
|
119 |
-
output_file = result_file
|
120 |
-
|
121 |
-
print(f'Reading {result_file}...')
|
122 |
-
results = read_json(result_file)
|
123 |
-
|
124 |
-
full_pids = list(results.keys())
|
125 |
-
if args.number > 0:
|
126 |
-
full_pids = full_pids[:min(args.number, len(full_pids))]
|
127 |
-
print('Number of total problems:', len(full_pids))
|
128 |
-
|
129 |
-
if args.rerun:
|
130 |
-
test_pids = full_pids
|
131 |
-
else:
|
132 |
-
test_pids = []
|
133 |
-
for pid in full_pids:
|
134 |
-
if 'extraction' not in results[pid] or not verify_extraction(results[pid]['extraction']):
|
135 |
-
test_pids.append(pid)
|
136 |
-
|
137 |
-
test_num = len(test_pids)
|
138 |
-
print('Number of problems to run:', test_num)
|
139 |
-
|
140 |
-
with ThreadPoolExecutor(max_workers=args.max_workers) as executor:
|
141 |
-
future_to_pid = {}
|
142 |
-
for pid in test_pids:
|
143 |
-
future = executor.submit(process_problem, pid, results, label, args)
|
144 |
-
future_to_pid[future] = pid
|
145 |
-
|
146 |
-
completed_count = 0
|
147 |
-
for future in tqdm(as_completed(future_to_pid), total=test_num):
|
148 |
-
pid = future_to_pid[future]
|
149 |
-
try:
|
150 |
-
pid_result, extraction = future.result()
|
151 |
-
results[pid_result]['extraction'] = extraction
|
152 |
-
except Exception as e:
|
153 |
-
print(f'Error processing pid={pid}: {e}')
|
154 |
-
|
155 |
-
completed_count += 1
|
156 |
-
if (completed_count % args.save_every == 0) or (completed_count == test_num):
|
157 |
-
print(f'Saving results to {output_file}... [{completed_count}/{test_num}]')
|
158 |
-
save_json(results, output_file)
|
159 |
-
print('Results saved.')
|
160 |
-
|
161 |
-
print('All done!')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mathvista/prompts/ext_ans.py
DELETED
@@ -1,51 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
# pids = 852, 104, 824, 506, 540
|
13 |
-
|
14 |
-
demo_prompt = """
|
15 |
-
Please read the following example. Then extract the answer from the model response and type it at the end of the prompt.
|
16 |
-
|
17 |
-
Hint: Please answer the question requiring an integer answer and provide the final value, e.g., 1, 2, 3, at the end.
|
18 |
-
Question: Which number is missing?
|
19 |
-
|
20 |
-
Model response: The number missing in the sequence is 14.
|
21 |
-
|
22 |
-
Extracted answer: 14
|
23 |
-
|
24 |
-
Hint: Please answer the question requiring a floating-point number with one decimal place and provide the final value, e.g., 1.2, 1.3, 1.4, at the end.
|
25 |
-
Question: What is the fraction of females facing the camera?
|
26 |
-
|
27 |
-
Model response: The fraction of females facing the camera is 0.6, which means that six out of ten females in the group are facing the camera.
|
28 |
-
|
29 |
-
Extracted answer: 0.6
|
30 |
-
|
31 |
-
Hint: Please answer the question requiring a floating-point number with two decimal places and provide the final value, e.g., 1.23, 1.34, 1.45, at the end.
|
32 |
-
Question: How much money does Luca need to buy a sour apple candy and a butterscotch candy? (Unit: $)
|
33 |
-
|
34 |
-
Model response: Luca needs $1.45 to buy a sour apple candy and a butterscotch candy.
|
35 |
-
|
36 |
-
Extracted answer: 1.45
|
37 |
-
|
38 |
-
Hint: Please answer the question requiring a Python list as an answer and provide the final list, e.g., [1, 2, 3], [1.2, 1.3, 1.4], at the end.
|
39 |
-
Question: Between which two years does the line graph saw its maximum peak?
|
40 |
-
|
41 |
-
Model response: The line graph saw its maximum peak between 2007 and 2008.
|
42 |
-
|
43 |
-
Extracted answer: [2007, 2008]
|
44 |
-
|
45 |
-
Hint: Please answer the question and provide the correct option letter, e.g., A, B, C, D, at the end.
|
46 |
-
Question: What fraction of the shape is blue?\nChoices:\n(A) 3/11\n(B) 8/11\n(C) 6/11\n(D) 3/5
|
47 |
-
|
48 |
-
Model response: The correct answer is (B) 8/11.
|
49 |
-
|
50 |
-
Extracted answer: B
|
51 |
-
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mathvista/utilities.py
DELETED
@@ -1,229 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import json
|
13 |
-
import os
|
14 |
-
import pickle
|
15 |
-
import re
|
16 |
-
import time
|
17 |
-
|
18 |
-
import cv2
|
19 |
-
import openai
|
20 |
-
from word2number import w2n
|
21 |
-
|
22 |
-
openai_client = None
|
23 |
-
|
24 |
-
|
25 |
-
def create_dir(output_dir):
|
26 |
-
if not os.path.exists(output_dir):
|
27 |
-
os.makedirs(output_dir)
|
28 |
-
|
29 |
-
|
30 |
-
def read_csv(file):
|
31 |
-
data = []
|
32 |
-
with open(file, 'r') as f:
|
33 |
-
for line in f:
|
34 |
-
data.append(line.strip())
|
35 |
-
return data
|
36 |
-
|
37 |
-
|
38 |
-
def read_pandas_csv(csv_path):
|
39 |
-
# read a pandas csv sheet
|
40 |
-
import pandas as pd
|
41 |
-
df = pd.read_csv(csv_path)
|
42 |
-
return df
|
43 |
-
|
44 |
-
|
45 |
-
def read_json(path):
|
46 |
-
with open(path, 'r', encoding='utf-8') as f:
|
47 |
-
return json.load(f)
|
48 |
-
|
49 |
-
|
50 |
-
def read_jsonl(file):
|
51 |
-
with open(file, 'r') as f:
|
52 |
-
data = [json.loads(line) for line in f]
|
53 |
-
return data
|
54 |
-
|
55 |
-
|
56 |
-
def read_pickle(path):
|
57 |
-
with open(path, 'rb') as f:
|
58 |
-
return pickle.load(f)
|
59 |
-
|
60 |
-
|
61 |
-
def save_json(data, path):
|
62 |
-
with open(path, 'w') as f:
|
63 |
-
json.dump(data, f, indent=4)
|
64 |
-
|
65 |
-
|
66 |
-
def save_array_img(path, image):
|
67 |
-
cv2.imwrite(path, image)
|
68 |
-
|
69 |
-
|
70 |
-
def contains_digit(text):
|
71 |
-
# check if text contains a digit
|
72 |
-
if any(char.isdigit() for char in text):
|
73 |
-
return True
|
74 |
-
return False
|
75 |
-
|
76 |
-
|
77 |
-
def contains_number_word(text):
|
78 |
-
# check if text contains a number word
|
79 |
-
ignore_words = ['a', 'an', 'point']
|
80 |
-
words = re.findall(r'\b\w+\b', text) # This regex pattern matches any word in the text
|
81 |
-
for word in words:
|
82 |
-
if word in ignore_words:
|
83 |
-
continue
|
84 |
-
try:
|
85 |
-
w2n.word_to_num(word)
|
86 |
-
return True # If the word can be converted to a number, return True
|
87 |
-
except ValueError:
|
88 |
-
continue # If the word can't be converted to a number, continue with the next word
|
89 |
-
|
90 |
-
# check if text contains a digit
|
91 |
-
if any(char.isdigit() for char in text):
|
92 |
-
return True
|
93 |
-
|
94 |
-
return False # If none of the words could be converted to a number, return False
|
95 |
-
|
96 |
-
|
97 |
-
def contains_quantity_word(text, special_keep_words=[]):
|
98 |
-
# check if text contains a quantity word
|
99 |
-
quantity_words = ['most', 'least', 'fewest'
|
100 |
-
'more', 'less', 'fewer',
|
101 |
-
'largest', 'smallest', 'greatest',
|
102 |
-
'larger', 'smaller', 'greater',
|
103 |
-
'highest', 'lowest', 'higher', 'lower',
|
104 |
-
'increase', 'decrease',
|
105 |
-
'minimum', 'maximum', 'max', 'min',
|
106 |
-
'mean', 'average', 'median',
|
107 |
-
'total', 'sum', 'add', 'subtract',
|
108 |
-
'difference', 'quotient', 'gap',
|
109 |
-
'half', 'double', 'twice', 'triple',
|
110 |
-
'square', 'cube', 'root',
|
111 |
-
'approximate', 'approximation',
|
112 |
-
'triangle', 'rectangle', 'circle', 'square', 'cube', 'sphere', 'cylinder', 'cone', 'pyramid',
|
113 |
-
'multiply', 'divide',
|
114 |
-
'percentage', 'percent', 'ratio', 'proportion', 'fraction', 'rate',
|
115 |
-
]
|
116 |
-
|
117 |
-
quantity_words += special_keep_words # dataset specific words
|
118 |
-
|
119 |
-
words = re.findall(r'\b\w+\b', text) # This regex pattern matches any word in the text
|
120 |
-
if any(word in quantity_words for word in words):
|
121 |
-
return True
|
122 |
-
|
123 |
-
return False # If none of the words could be converted to a number, return False
|
124 |
-
|
125 |
-
|
126 |
-
def is_bool_word(text):
|
127 |
-
if text in ['Yes', 'No', 'True', 'False',
|
128 |
-
'yes', 'no', 'true', 'false',
|
129 |
-
'YES', 'NO', 'TRUE', 'FALSE']:
|
130 |
-
return True
|
131 |
-
return False
|
132 |
-
|
133 |
-
|
134 |
-
def is_digit_string(text):
|
135 |
-
# remove ".0000"
|
136 |
-
text = text.strip()
|
137 |
-
text = re.sub(r'\.0+$', '', text)
|
138 |
-
try:
|
139 |
-
int(text)
|
140 |
-
return True
|
141 |
-
except ValueError:
|
142 |
-
return False
|
143 |
-
|
144 |
-
|
145 |
-
def is_float_string(text):
|
146 |
-
# text is a float string if it contains a "." and can be converted to a float
|
147 |
-
if '.' in text:
|
148 |
-
try:
|
149 |
-
float(text)
|
150 |
-
return True
|
151 |
-
except ValueError:
|
152 |
-
return False
|
153 |
-
return False
|
154 |
-
|
155 |
-
|
156 |
-
def copy_image(image_path, output_image_path):
|
157 |
-
from shutil import copyfile
|
158 |
-
copyfile(image_path, output_image_path)
|
159 |
-
|
160 |
-
|
161 |
-
def copy_dir(src_dir, dst_dir):
|
162 |
-
from shutil import copytree
|
163 |
-
|
164 |
-
# copy the source directory to the target directory
|
165 |
-
copytree(src_dir, dst_dir)
|
166 |
-
|
167 |
-
|
168 |
-
import PIL.Image as Image
|
169 |
-
|
170 |
-
|
171 |
-
def get_image_size(img_path):
|
172 |
-
img = Image.open(img_path)
|
173 |
-
width, height = img.size
|
174 |
-
return width, height
|
175 |
-
|
176 |
-
|
177 |
-
def get_chat_response(
|
178 |
-
promot="", api_key="",
|
179 |
-
base_url="your_api_url",
|
180 |
-
api_version="2024-03-01-preview", model="gpt-4-0613",
|
181 |
-
temperature=0, max_tokens=256, n=1, patience=10000000, sleep_time=0
|
182 |
-
):
|
183 |
-
openai_client = openai.AzureOpenAI(
|
184 |
-
azure_endpoint=base_url,
|
185 |
-
api_version=api_version,
|
186 |
-
api_key=api_key,
|
187 |
-
)
|
188 |
-
|
189 |
-
messages = [
|
190 |
-
{'role': 'user', 'content': promot},
|
191 |
-
]
|
192 |
-
while patience > 0:
|
193 |
-
patience -= 1
|
194 |
-
try:
|
195 |
-
response = openai_client.chat.completions.create(
|
196 |
-
model=model,
|
197 |
-
messages=messages,
|
198 |
-
# api_key=api_key,
|
199 |
-
temperature=temperature,
|
200 |
-
max_tokens=max_tokens,
|
201 |
-
n=n,
|
202 |
-
)
|
203 |
-
response = response.to_dict()
|
204 |
-
if n == 1:
|
205 |
-
prediction = response['choices'][0]['message']['content'].strip()
|
206 |
-
if prediction != '' and prediction is not None:
|
207 |
-
return prediction
|
208 |
-
else:
|
209 |
-
prediction = [choice['message']['content'].strip() for choice in response['choices']]
|
210 |
-
if prediction[0] != '' and prediction[0] is not None:
|
211 |
-
return prediction
|
212 |
-
|
213 |
-
except Exception as e:
|
214 |
-
if 'Rate limit' not in str(e):
|
215 |
-
print(e)
|
216 |
-
|
217 |
-
if 'Please reduce the length of the messages' in str(e):
|
218 |
-
print('!!Reduce promot size')
|
219 |
-
# reduce input prompt and keep the tail
|
220 |
-
new_size = int(len(promot) * 0.9)
|
221 |
-
new_start = len(promot) - new_size
|
222 |
-
promot = promot[new_start:]
|
223 |
-
messages = [
|
224 |
-
{'role': 'user', 'content': promot},
|
225 |
-
]
|
226 |
-
|
227 |
-
if sleep_time > 0:
|
228 |
-
time.sleep(sleep_time)
|
229 |
-
return ''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mmbench/evaluate_mmbench.py
DELETED
@@ -1,283 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import base64
|
14 |
-
import itertools
|
15 |
-
import json
|
16 |
-
import os
|
17 |
-
import random
|
18 |
-
from io import BytesIO
|
19 |
-
|
20 |
-
import pandas as pd
|
21 |
-
import torch
|
22 |
-
from eval.vlm.utils import load_model_and_tokenizer, build_transform, process_conversation
|
23 |
-
from PIL import Image
|
24 |
-
from tqdm import tqdm
|
25 |
-
|
26 |
-
ds_collections = {
|
27 |
-
'mmbench_dev_20230712': {
|
28 |
-
'root': 'eval/vlm/data/mmbench/mmbench_dev_20230712.tsv',
|
29 |
-
'max_new_tokens': 100,
|
30 |
-
'min_new_tokens': 1,
|
31 |
-
'type': 'dev',
|
32 |
-
'language': 'en'
|
33 |
-
},
|
34 |
-
'mmbench_dev_cn_20231003': {
|
35 |
-
'root': 'eval/vlm/data/mmbench/mmbench_dev_cn_20231003.tsv',
|
36 |
-
'max_new_tokens': 100,
|
37 |
-
'min_new_tokens': 1,
|
38 |
-
'type': 'dev',
|
39 |
-
'language': 'cn'
|
40 |
-
},
|
41 |
-
'mmbench_dev_en_20231003': {
|
42 |
-
'root': 'eval/vlm/data/mmbench/mmbench_dev_en_20231003.tsv',
|
43 |
-
'max_new_tokens': 100,
|
44 |
-
'min_new_tokens': 1,
|
45 |
-
'type': 'dev',
|
46 |
-
'language': 'en'
|
47 |
-
},
|
48 |
-
'mmbench_test_cn_20231003': {
|
49 |
-
'root': 'eval/vlm/data/mmbench/mmbench_test_cn_20231003.tsv',
|
50 |
-
'max_new_tokens': 100,
|
51 |
-
'min_new_tokens': 1,
|
52 |
-
'type': 'test',
|
53 |
-
'language': 'cn'
|
54 |
-
},
|
55 |
-
'mmbench_test_en_20231003': {
|
56 |
-
'root': 'eval/vlm/data/mmbench/mmbench_test_en_20231003.tsv',
|
57 |
-
'max_new_tokens': 100,
|
58 |
-
'min_new_tokens': 1,
|
59 |
-
'type': 'test',
|
60 |
-
'language': 'en'
|
61 |
-
},
|
62 |
-
'ccbench_dev_cn': {
|
63 |
-
'root': 'eval/vlm/data/mmbench/CCBench_legacy.tsv',
|
64 |
-
'max_new_tokens': 100,
|
65 |
-
'min_new_tokens': 1,
|
66 |
-
'type': 'dev',
|
67 |
-
'language': 'cn'
|
68 |
-
}
|
69 |
-
}
|
70 |
-
|
71 |
-
|
72 |
-
def collate_fn(batches):
|
73 |
-
questions = [_['question'] for _ in batches]
|
74 |
-
images = [_['images'] for _ in batches]
|
75 |
-
conversation = [_['conversation'] for _ in batches]
|
76 |
-
answers = [_['answer'] for _ in batches]
|
77 |
-
indexes = [_['index'] for _ in batches]
|
78 |
-
options = [_['option'] for _ in batches]
|
79 |
-
return questions, images, conversation, answers, indexes, options
|
80 |
-
|
81 |
-
|
82 |
-
class MMBenchDataset(torch.utils.data.Dataset):
|
83 |
-
|
84 |
-
def __init__(self, root, prompt, language):
|
85 |
-
self.df = pd.read_csv(root, sep='\t')
|
86 |
-
self.prompt = prompt
|
87 |
-
self.language = language
|
88 |
-
|
89 |
-
def __len__(self):
|
90 |
-
return len(self.df)
|
91 |
-
|
92 |
-
def __getitem__(self, idx):
|
93 |
-
index = self.df.iloc[idx]['index']
|
94 |
-
image = self.df.iloc[idx]['image']
|
95 |
-
question = self.df.iloc[idx]['question']
|
96 |
-
answer = self.df.iloc[idx]['answer'] if 'answer' in self.df.iloc[0].keys() else None
|
97 |
-
# catetory = self.df.iloc[idx]['category']
|
98 |
-
# l2_catetory = self.df.iloc[idx]['l2-category']
|
99 |
-
|
100 |
-
image = Image.open(BytesIO(base64.b64decode(image))).convert('RGB')
|
101 |
-
images = [image]
|
102 |
-
|
103 |
-
option_candidate = ['A', 'B', 'C', 'D', 'E']
|
104 |
-
options = {
|
105 |
-
cand: self.load_from_df(idx, cand)
|
106 |
-
for cand in option_candidate
|
107 |
-
if self.load_from_df(idx, cand) is not None
|
108 |
-
}
|
109 |
-
|
110 |
-
hint = self.load_from_df(idx, 'hint')
|
111 |
-
if hint is not None:
|
112 |
-
question = hint + '\n' + question
|
113 |
-
for key, item in options.items():
|
114 |
-
question += f'\n{key}. {item}'
|
115 |
-
if self.language == 'cn':
|
116 |
-
question = question + '\n' + self.prompt['cn']
|
117 |
-
else:
|
118 |
-
question = question + '\n' + self.prompt['en']
|
119 |
-
|
120 |
-
images, conversation = process_conversation(images, question)
|
121 |
-
|
122 |
-
return {
|
123 |
-
'question': question,
|
124 |
-
'images': images,
|
125 |
-
'conversation': conversation,
|
126 |
-
'answer': answer,
|
127 |
-
'index': index,
|
128 |
-
'option': options
|
129 |
-
}
|
130 |
-
|
131 |
-
def load_from_df(self, idx, key):
|
132 |
-
if key in self.df.iloc[idx] and not pd.isna(self.df.iloc[idx][key]):
|
133 |
-
return self.df.iloc[idx][key]
|
134 |
-
else:
|
135 |
-
return None
|
136 |
-
|
137 |
-
|
138 |
-
class InferenceSampler(torch.utils.data.sampler.Sampler):
|
139 |
-
|
140 |
-
def __init__(self, size):
|
141 |
-
self._size = int(size)
|
142 |
-
assert size > 0
|
143 |
-
self._rank = torch.distributed.get_rank()
|
144 |
-
self._world_size = torch.distributed.get_world_size()
|
145 |
-
self._local_indices = self._get_local_indices(size, self._world_size, self._rank)
|
146 |
-
|
147 |
-
@staticmethod
|
148 |
-
def _get_local_indices(total_size, world_size, rank):
|
149 |
-
shard_size = total_size // world_size
|
150 |
-
left = total_size % world_size
|
151 |
-
shard_sizes = [shard_size + int(r < left) for r in range(world_size)]
|
152 |
-
|
153 |
-
begin = sum(shard_sizes[:rank])
|
154 |
-
end = min(sum(shard_sizes[:rank + 1]), total_size)
|
155 |
-
return range(begin, end)
|
156 |
-
|
157 |
-
def __iter__(self):
|
158 |
-
yield from self._local_indices
|
159 |
-
|
160 |
-
def __len__(self):
|
161 |
-
return len(self._local_indices)
|
162 |
-
|
163 |
-
|
164 |
-
def post_process(pred, option):
|
165 |
-
pred = pred.strip()
|
166 |
-
option_candidate = list(option.keys())
|
167 |
-
if len(pred) == 1:
|
168 |
-
return pred
|
169 |
-
if len(pred) == 0:
|
170 |
-
pred = "C"
|
171 |
-
elif len(pred) != 1 and pred[0] in option_candidate:
|
172 |
-
return pred[0]
|
173 |
-
elif len(pred) != 1 and pred[0] not in option_candidate:
|
174 |
-
for k, v in option.items():
|
175 |
-
if v in pred:
|
176 |
-
return k
|
177 |
-
|
178 |
-
return pred
|
179 |
-
|
180 |
-
|
181 |
-
def evaluate_chat_model():
|
182 |
-
random.seed(args.seed)
|
183 |
-
|
184 |
-
for ds_name in args.datasets:
|
185 |
-
dataset = MMBenchDataset(
|
186 |
-
root=ds_collections[ds_name]['root'],
|
187 |
-
prompt=prompt,
|
188 |
-
language=ds_collections[ds_name]['language'],
|
189 |
-
)
|
190 |
-
dataloader = torch.utils.data.DataLoader(
|
191 |
-
dataset=dataset,
|
192 |
-
sampler=InferenceSampler(len(dataset)),
|
193 |
-
batch_size=args.batch_size,
|
194 |
-
num_workers=args.num_workers,
|
195 |
-
pin_memory=True,
|
196 |
-
drop_last=False,
|
197 |
-
collate_fn=collate_fn,
|
198 |
-
)
|
199 |
-
|
200 |
-
outputs = []
|
201 |
-
for _, (questions, images, conversation, answers, indexes, options) in tqdm(enumerate(dataloader)):
|
202 |
-
pred = model.chat(
|
203 |
-
tokenizer,
|
204 |
-
new_token_ids,
|
205 |
-
image_transform,
|
206 |
-
images=images[0], # batch=1
|
207 |
-
prompt=conversation[0], # batch=1
|
208 |
-
max_length=ds_collections[ds_name]['max_new_tokens'], # TODO: how to use ds_collections[ds_name]['min_new_tokens']
|
209 |
-
)
|
210 |
-
preds = [post_process(pred, options[0])]
|
211 |
-
|
212 |
-
for question, pred, answer, index in zip(questions, preds, answers, indexes):
|
213 |
-
outputs.append({
|
214 |
-
'question': question,
|
215 |
-
'answer': pred,
|
216 |
-
'gt_answers': answer,
|
217 |
-
'index': int(index)
|
218 |
-
})
|
219 |
-
|
220 |
-
torch.distributed.barrier()
|
221 |
-
|
222 |
-
world_size = torch.distributed.get_world_size()
|
223 |
-
merged_outputs = [None for _ in range(world_size)]
|
224 |
-
torch.distributed.all_gather_object(merged_outputs, json.dumps(outputs))
|
225 |
-
|
226 |
-
merged_outputs = [json.loads(_) for _ in merged_outputs]
|
227 |
-
merged_outputs = [_ for _ in itertools.chain.from_iterable(merged_outputs)]
|
228 |
-
|
229 |
-
if torch.distributed.get_rank() == 0:
|
230 |
-
print(f'Evaluating {ds_name} ...')
|
231 |
-
results_file = 'results.xlsx'
|
232 |
-
output_path = os.path.join(args.out_dir, results_file)
|
233 |
-
df = pd.read_table(ds_collections[ds_name]['root'])
|
234 |
-
cur_df = df.copy()
|
235 |
-
if 'mmbench' in ds_name:
|
236 |
-
cur_df = cur_df.drop(columns=['hint', 'category', 'source', 'image', 'comment', 'l2-category'])
|
237 |
-
cur_df.insert(6, 'prediction', None)
|
238 |
-
else:
|
239 |
-
cur_df = cur_df.drop(columns=['category', 'image'])
|
240 |
-
cur_df.insert(8, 'prediction', None)
|
241 |
-
for item in merged_outputs:
|
242 |
-
cur_df.loc[df['index'] == item['index'], 'prediction'] = item['answer']
|
243 |
-
|
244 |
-
cur_df.to_excel(output_path, index=False, engine='openpyxl')
|
245 |
-
print('Results saved to {}'.format(output_path))
|
246 |
-
|
247 |
-
|
248 |
-
if __name__ == '__main__':
|
249 |
-
parser = argparse.ArgumentParser()
|
250 |
-
parser.add_argument('--datasets', type=str, default='mmbench_dev_20230712')
|
251 |
-
parser.add_argument('--batch-size', type=int, default=1)
|
252 |
-
parser.add_argument('--num-workers', type=int, default=1)
|
253 |
-
parser.add_argument('--out-dir', type=str, default='results')
|
254 |
-
parser.add_argument('--seed', type=int, default=0)
|
255 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
256 |
-
args = parser.parse_args()
|
257 |
-
|
258 |
-
if not os.path.exists(args.out_dir):
|
259 |
-
os.makedirs(args.out_dir, exist_ok=True)
|
260 |
-
|
261 |
-
args.datasets = args.datasets.split(',')
|
262 |
-
print('datasets:', args.datasets)
|
263 |
-
assert args.batch_size == 1, 'Only batch size 1 is supported'
|
264 |
-
|
265 |
-
torch.distributed.init_process_group(
|
266 |
-
backend='nccl',
|
267 |
-
world_size=int(os.getenv('WORLD_SIZE', '1')),
|
268 |
-
rank=int(os.getenv('RANK', '0')),
|
269 |
-
)
|
270 |
-
|
271 |
-
torch.cuda.set_device(int(os.getenv('LOCAL_RANK', 0)))
|
272 |
-
|
273 |
-
model, tokenizer, new_token_ids = load_model_and_tokenizer(args)
|
274 |
-
image_transform = build_transform()
|
275 |
-
|
276 |
-
total_params = sum(p.numel() for p in model.parameters()) / 1e9
|
277 |
-
print(f'[test] total_params: {total_params}B')
|
278 |
-
|
279 |
-
prompt = {
|
280 |
-
'en': "Answer with the option's letter from the given choices directly.",
|
281 |
-
'cn': '请直接回答选项字母。'
|
282 |
-
}
|
283 |
-
evaluate_chat_model()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/OCR.txt
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
0001.jpg Is the word in the logo "angie's"? Please answer yes or no. Yes
|
2 |
-
0001.jpg Is the word in the logo "angle's"? Please answer yes or no. No
|
3 |
-
0002.jpg Is the word in the logo "c'est cheese"? Please answer yes or no. Yes
|
4 |
-
0002.jpg Is the word in the logo "crest cheese"? Please answer yes or no. No
|
5 |
-
0003.jpg Is the word in the logo "beavertails pastry"? Please answer yes or no. Yes
|
6 |
-
0003.jpg Is the word in the logo "beavertalls pastry"? Please answer yes or no. No
|
7 |
-
0004.jpg Is the word in the logo "old market sundries"? Please answer yes or no. Yes
|
8 |
-
0004.jpg Is the word in the logo "old market hundreds"? Please answer yes or no. No
|
9 |
-
0005.jpg Is the word in the logo "kress"? Please answer yes or no. Yes
|
10 |
-
0005.jpg Is the word in the logo "dress"? Please answer yes or no. No
|
11 |
-
0006.jpg Is the word in the logo "the beatles story liver pool"? Please answer yes or no. Yes
|
12 |
-
0006.jpg Is the word in the logo "the beats story liver pool"? Please answer yes or no. No
|
13 |
-
0007.jpg Is the phone number in the picture "0131 555 6363"? Please answer yes or no. Yes
|
14 |
-
0007.jpg Is the phone number in the picture "0137 556 6363"? Please answer yes or no. No
|
15 |
-
0008.jpg Is the word in the logo "phil's market"? Please answer yes or no. Yes
|
16 |
-
0008.jpg Is the word in the logo "phll's market"? Please answer yes or no. No
|
17 |
-
0009.jpg Is the word in the logo "fenders diner"? Please answer yes or no. Yes
|
18 |
-
0009.jpg Is the word in the logo "finders diner"? Please answer yes or no. No
|
19 |
-
0010.jpg Is the word in the logo "high time coffee shop"? Please answer yes or no. Yes
|
20 |
-
0010.jpg Is the word in the logo "high tite cofeee shop"? Please answer yes or no. No
|
21 |
-
0011.jpg Is the word in the logo "ihop restaurant"? Please answer yes or no. Yes
|
22 |
-
0011.jpg Is the word in the logo "lhop restaurant"? Please answer yes or no. No
|
23 |
-
0012.jpg Is the word in the logo "casa grecque restaurants"? Please answer yes or no. Yes
|
24 |
-
0012.jpg Is the word in the logo "case grecque restaurants"? Please answer yes or no. No
|
25 |
-
0013.jpg Is the word in the picture "seabreeze motel"? Please answer yes or no. Yes
|
26 |
-
0013.jpg Is the word in the picture "seebreeze model"? Please answer yes or no. No
|
27 |
-
0014.jpg Is the word in the logo "penarth pier built 1894"? Please answer yes or no. Yes
|
28 |
-
0014.jpg Is the word in the logo "penarth pies buid 1894"? Please answer yes or no. No
|
29 |
-
0015.jpg Is the text in the picture "hollywood"? Please answer yes or no. Yes
|
30 |
-
0015.jpg Is the text in the picture "holly word"? Please answer yes or no. No
|
31 |
-
0016.jpg Is the word in the logo "shop rite"? Please answer yes or no. Yes
|
32 |
-
0016.jpg Is the word in the logo "stop rite"? Please answer yes or no. No
|
33 |
-
0017.jpg Is the word in the logo "hardco industrial construction"? Please answer yes or no. Yes
|
34 |
-
0017.jpg Is the word in the logo "hardto industal construction"? Please answer yes or no. No
|
35 |
-
0018.jpg Is the word in the logo "oldsmobile service"? Please answer yes or no. Yes
|
36 |
-
0018.jpg Is the word in the logo "old mobile service"? Please answer yes or no. No
|
37 |
-
0019.jpg Is the word in the logo "exchange hotel"? Please answer yes or no. Yes
|
38 |
-
0019.jpg Is the word in the logo "excharge hotel"? Please answer yes or no. No
|
39 |
-
0020.jpg Is the word in the logo "cold drinks"? Please answer yes or no. Yes
|
40 |
-
0020.jpg Is the word in the logo "cold rinks"? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/artwork.txt
DELETED
@@ -1,400 +0,0 @@
|
|
1 |
-
10002.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
2 |
-
10002.jpg Does this artwork exist in the form of glassware? Please answer yes or no. No
|
3 |
-
10049.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
4 |
-
10049.jpg Does this artwork exist in the form of sculpture? Please answer yes or no. No
|
5 |
-
10256.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
6 |
-
10256.jpg Does this artwork exist in the form of sculpture? Please answer yes or no. No
|
7 |
-
10358.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
8 |
-
10358.jpg Does this artwork exist in the form of glassware? Please answer yes or no. No
|
9 |
-
10543.jpg Is this artwork displayed in fogg art museum, harvard university, cambridge? Please answer yes or no. Yes
|
10 |
-
10543.jpg Is this artwork displayed in museo civico, pistoia? Please answer yes or no. No
|
11 |
-
10581.jpg Does this artwork belong to the type of portrait? Please answer yes or no. Yes
|
12 |
-
10581.jpg Does this artwork belong to the type of genre? Please answer yes or no. No
|
13 |
-
1060.jpg Is this artwork created by antoniazzo romano? Please answer yes or no. Yes
|
14 |
-
1060.jpg Is this artwork created by gentile da fabriano? Please answer yes or no. No
|
15 |
-
10881.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
16 |
-
10881.jpg Does this artwork exist in the form of tapestry? Please answer yes or no. No
|
17 |
-
10970.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
18 |
-
10970.jpg Does this artwork belong to the type of study? Please answer yes or no. No
|
19 |
-
11276.jpg Does this artwork exist in the form of sculpture? Please answer yes or no. Yes
|
20 |
-
11276.jpg Does this artwork exist in the form of graphics? Please answer yes or no. No
|
21 |
-
11331.jpg Is this artwork created by donatello? Please answer yes or no. Yes
|
22 |
-
11331.jpg Is this artwork created by zichy, mihály? Please answer yes or no. No
|
23 |
-
11488.jpg Does this artwork belong to the type of mythological? Please answer yes or no. Yes
|
24 |
-
11488.jpg Does this artwork belong to the type of historical? Please answer yes or no. No
|
25 |
-
11724.jpg Is this artwork created by duccio di buoninsegna? Please answer yes or no. Yes
|
26 |
-
11724.jpg Is this artwork created by giani, felice? Please answer yes or no. No
|
27 |
-
11726.jpg Is this artwork titled temptation on the mountain (detail)? Please answer yes or no. Yes
|
28 |
-
11726.jpg Is this artwork titled in the forest of fontainebleau? Please answer yes or no. No
|
29 |
-
12133.jpg Is this artwork titled hand study with bible? Please answer yes or no. Yes
|
30 |
-
12133.jpg Is this artwork titled self-portrait aged 78? Please answer yes or no. No
|
31 |
-
12439.jpg Is this artwork created by dürer, albrecht? Please answer yes or no. Yes
|
32 |
-
12439.jpg Is this artwork created by koekkoek, barend cornelis? Please answer yes or no. No
|
33 |
-
12561.jpg Is this artwork created by eberlein, gustav heinrich? Please answer yes or no. Yes
|
34 |
-
12561.jpg Is this artwork created by gillemans, jan pauwel the younger? Please answer yes or no. No
|
35 |
-
12652.jpg Is this artwork displayed in stedelijk museum de lakenhal, leiden? Please answer yes or no. Yes
|
36 |
-
12652.jpg Is this artwork displayed in palazzo ducale, mantua? Please answer yes or no. No
|
37 |
-
12736.jpg Is this artwork displayed in cannon hall museum, barnsley? Please answer yes or no. Yes
|
38 |
-
12736.jpg Is this artwork displayed in protestant parish church, gelnhausen? Please answer yes or no. No
|
39 |
-
12902.jpg Is this artwork displayed in private collection? Please answer yes or no. Yes
|
40 |
-
12902.jpg Is this artwork displayed in musée national gustave-moreau, paris? Please answer yes or no. No
|
41 |
-
12908.jpg Is this artwork titled ruth and boaz? Please answer yes or no. Yes
|
42 |
-
12908.jpg Is this artwork titled view of dresden from the right bank of the elbe with the augustus bridge? Please answer yes or no. No
|
43 |
-
13091.jpg Is this artwork titled italianate landscape with figures by classical ruins? Please answer yes or no. Yes
|
44 |
-
13091.jpg Is this artwork titled two boys singing? Please answer yes or no. No
|
45 |
-
13174.jpg Is this artwork titled nobility? Please answer yes or no. Yes
|
46 |
-
13174.jpg Is this artwork titled aretino in the studio of tintoretto? Please answer yes or no. No
|
47 |
-
13239.jpg Is this artwork titled doge ziani receiving the benediction of pope alexander iii? Please answer yes or no. Yes
|
48 |
-
13239.jpg Is this artwork titled the adoration of the shepherds? Please answer yes or no. No
|
49 |
-
13288.jpg Does this artwork exist in the form of architecture? Please answer yes or no. Yes
|
50 |
-
13288.jpg Does this artwork exist in the form of metalwork? Please answer yes or no. No
|
51 |
-
13696.jpg Is this artwork displayed in pinacoteca nazionale, siena? Please answer yes or no. Yes
|
52 |
-
13696.jpg Is this artwork displayed in british embassy, paris? Please answer yes or no. No
|
53 |
-
13760.jpg Is this artwork titled noli me tangere? Please answer yes or no. Yes
|
54 |
-
13760.jpg Is this artwork titled profile study of a bearded man? Please answer yes or no. No
|
55 |
-
13821.jpg Is this artwork created by frangipane, niccolò? Please answer yes or no. Yes
|
56 |
-
13821.jpg Is this artwork created by drevet, pierre? Please answer yes or no. No
|
57 |
-
13901.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
58 |
-
13901.jpg Does this artwork exist in the form of metalwork? Please answer yes or no. No
|
59 |
-
14283.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
60 |
-
14283.jpg Does this artwork exist in the form of mosaic? Please answer yes or no. No
|
61 |
-
14499.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
62 |
-
14499.jpg Does this artwork belong to the type of mythological? Please answer yes or no. No
|
63 |
-
14777.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
64 |
-
14777.jpg Does this artwork belong to the type of historical? Please answer yes or no. No
|
65 |
-
15028.jpg Does this artwork belong to the type of portrait? Please answer yes or no. Yes
|
66 |
-
15028.jpg Does this artwork belong to the type of study? Please answer yes or no. No
|
67 |
-
15232.jpg Is this artwork created by giordano, luca? Please answer yes or no. Yes
|
68 |
-
15232.jpg Is this artwork created by heyerdahl, hans olaf? Please answer yes or no. No
|
69 |
-
15246.jpg Is this artwork displayed in palazzo medici riccardi, florence? Please answer yes or no. Yes
|
70 |
-
15246.jpg Is this artwork displayed in abbey church of sainte-foy, conques (aveyron)? Please answer yes or no. No
|
71 |
-
15311.jpg Is this artwork created by giorgione? Please answer yes or no. Yes
|
72 |
-
15311.jpg Is this artwork created by marilhat, prosper? Please answer yes or no. No
|
73 |
-
15989.jpg Is this artwork displayed in pinacoteca, vatican? Please answer yes or no. Yes
|
74 |
-
15989.jpg Is this artwork displayed in cathedral museum, zamora? Please answer yes or no. No
|
75 |
-
16006.jpg Is this artwork displayed in private collection? Please answer yes or no. Yes
|
76 |
-
16006.jpg Is this artwork displayed in cathedral of san geminiano, modena? Please answer yes or no. No
|
77 |
-
16249.jpg Does this artwork belong to the type of landscape? Please answer yes or no. Yes
|
78 |
-
16249.jpg Does this artwork belong to the type of religious? Please answer yes or no. No
|
79 |
-
16538.jpg Is this artwork created by gogh, vincent van? Please answer yes or no. Yes
|
80 |
-
16538.jpg Is this artwork created by altdorfer, albrecht? Please answer yes or no. No
|
81 |
-
16835.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
82 |
-
16835.jpg Does this artwork exist in the form of illumination? Please answer yes or no. No
|
83 |
-
16911.jpg Is this artwork created by gossart, jan? Please answer yes or no. Yes
|
84 |
-
16911.jpg Is this artwork created by stanzione, massimo? Please answer yes or no. No
|
85 |
-
17311.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
86 |
-
17311.jpg Does this artwork belong to the type of interior? Please answer yes or no. No
|
87 |
-
17317.jpg Is this artwork created by gozzoli, benozzo? Please answer yes or no. Yes
|
88 |
-
17317.jpg Is this artwork created by coriolano, cristoforo? Please answer yes or no. No
|
89 |
-
17535.jpg Is this artwork created by grebber, pieter de? Please answer yes or no. Yes
|
90 |
-
17535.jpg Is this artwork created by massys, quentin? Please answer yes or no. No
|
91 |
-
17823.jpg Is this artwork created by greuze, jean-baptiste? Please answer yes or no. Yes
|
92 |
-
17823.jpg Is this artwork created by landseer, sir edwin henry? Please answer yes or no. No
|
93 |
-
17838.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
94 |
-
17838.jpg Does this artwork exist in the form of furniture? Please answer yes or no. No
|
95 |
-
17998.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
96 |
-
17998.jpg Does this artwork belong to the type of genre? Please answer yes or no. No
|
97 |
-
18566.jpg Is this artwork created by hamen, juan van der? Please answer yes or no. Yes
|
98 |
-
18566.jpg Is this artwork created by starnina, gherardo di jacopo? Please answer yes or no. No
|
99 |
-
18604.jpg Is this artwork created by hardouin-mansart, jules? Please answer yes or no. Yes
|
100 |
-
18604.jpg Is this artwork created by kerseboom, friedrich? Please answer yes or no. No
|
101 |
-
18722.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
102 |
-
18722.jpg Does this artwork exist in the form of sculpture? Please answer yes or no. No
|
103 |
-
1873.jpg Does this artwork exist in the form of architecture? Please answer yes or no. Yes
|
104 |
-
1873.jpg Does this artwork exist in the form of painting? Please answer yes or no. No
|
105 |
-
18902.jpg Is this artwork created by herrera, francisco de, the elder? Please answer yes or no. Yes
|
106 |
-
18902.jpg Is this artwork created by ingres, jean-auguste-dominique? Please answer yes or no. No
|
107 |
-
18926.jpg Is this artwork created by herring, john frederick the younger? Please answer yes or no. Yes
|
108 |
-
18926.jpg Is this artwork created by cozens, john robert? Please answer yes or no. No
|
109 |
-
19087.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
110 |
-
19087.jpg Does this artwork exist in the form of metalwork? Please answer yes or no. No
|
111 |
-
19154.jpg Is this artwork titled portrait of the merchant georg gisze (detail)? Please answer yes or no. Yes
|
112 |
-
19154.jpg Is this artwork titled pair of table candlesticks? Please answer yes or no. No
|
113 |
-
19417.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
114 |
-
19417.jpg Does this artwork exist in the form of mosaic? Please answer yes or no. No
|
115 |
-
19452.jpg Is this artwork titled the artist and his model? Please answer yes or no. Yes
|
116 |
-
19452.jpg Is this artwork titled the lovesick maiden (detail)? Please answer yes or no. No
|
117 |
-
19839.jpg Is this artwork created by janneck, franz christoph? Please answer yes or no. Yes
|
118 |
-
19839.jpg Is this artwork created by goupil, jules-adolphe? Please answer yes or no. No
|
119 |
-
19863.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
120 |
-
19863.jpg Does this artwork belong to the type of mythological? Please answer yes or no. No
|
121 |
-
19993.jpg Is this artwork displayed in private collection? Please answer yes or no. Yes
|
122 |
-
19993.jpg Is this artwork displayed in cathedral of st paul, liège? Please answer yes or no. No
|
123 |
-
20176.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
124 |
-
20176.jpg Does this artwork exist in the form of furniture? Please answer yes or no. No
|
125 |
-
20437.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
126 |
-
20437.jpg Does this artwork exist in the form of tapestry? Please answer yes or no. No
|
127 |
-
20442.jpg Is this artwork created by kucharski, aleksander? Please answer yes or no. Yes
|
128 |
-
20442.jpg Is this artwork created by pourbus, frans the elder? Please answer yes or no. No
|
129 |
-
20455.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
130 |
-
20455.jpg Does this artwork exist in the form of metalwork? Please answer yes or no. No
|
131 |
-
20483.jpg Is this artwork titled allegory of the regency? Please answer yes or no. Yes
|
132 |
-
20483.jpg Is this artwork titled breton woman bathing? Please answer yes or no. No
|
133 |
-
20490.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
134 |
-
20490.jpg Does this artwork exist in the form of illumination? Please answer yes or no. No
|
135 |
-
20551.jpg Is this artwork created by lagrenée, jean-jacques? Please answer yes or no. Yes
|
136 |
-
20551.jpg Is this artwork created by scultori, diana? Please answer yes or no. No
|
137 |
-
20651.jpg Is this artwork titled a highland landscape? Please answer yes or no. Yes
|
138 |
-
20651.jpg Is this artwork titled a dog and a cat fighting in a kitchen interior? Please answer yes or no. No
|
139 |
-
20724.jpg Does this artwork belong to the type of portrait? Please answer yes or no. Yes
|
140 |
-
20724.jpg Does this artwork belong to the type of landscape? Please answer yes or no. No
|
141 |
-
21048.jpg Is this artwork created by lemoyne, jean-baptiste ii? Please answer yes or no. Yes
|
142 |
-
21048.jpg Is this artwork created by kneller, sir godfrey? Please answer yes or no. No
|
143 |
-
21097.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
144 |
-
21097.jpg Does this artwork belong to the type of genre? Please answer yes or no. No
|
145 |
-
21244.jpg Does this artwork belong to the type of study? Please answer yes or no. Yes
|
146 |
-
21244.jpg Does this artwork belong to the type of portrait? Please answer yes or no. No
|
147 |
-
21469.jpg Does this artwork belong to the type of genre? Please answer yes or no. Yes
|
148 |
-
21469.jpg Does this artwork belong to the type of still-life? Please answer yes or no. No
|
149 |
-
21580.jpg Is this artwork created by linard, jacques? Please answer yes or no. Yes
|
150 |
-
21580.jpg Is this artwork created by bonino da campione? Please answer yes or no. No
|
151 |
-
21712.jpg Is this artwork titled st john the evangelist resuscitating drusiana? Please answer yes or no. Yes
|
152 |
-
21712.jpg Is this artwork titled la finette? Please answer yes or no. No
|
153 |
-
22329.jpg Is this artwork titled marriage of the virgin? Please answer yes or no. Yes
|
154 |
-
22329.jpg Is this artwork titled landscape with river and figures (detail)? Please answer yes or no. No
|
155 |
-
22366.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
156 |
-
22366.jpg Does this artwork exist in the form of glassware? Please answer yes or no. No
|
157 |
-
22667.jpg Is this artwork displayed in private collection? Please answer yes or no. Yes
|
158 |
-
22667.jpg Is this artwork displayed in san francesco d'assisi, pavia? Please answer yes or no. No
|
159 |
-
22760.jpg Is this artwork titled madonna and child (detail)? Please answer yes or no. Yes
|
160 |
-
22760.jpg Is this artwork titled view of the south and east walls? Please answer yes or no. No
|
161 |
-
22842.jpg Is this artwork titled ukrainian peasant girl? Please answer yes or no. Yes
|
162 |
-
22842.jpg Is this artwork titled virtue crowning merit? Please answer yes or no. No
|
163 |
-
23229.jpg Is this artwork displayed in national gallery, london? Please answer yes or no. Yes
|
164 |
-
23229.jpg Is this artwork displayed in notre-dame-la-riche, tours? Please answer yes or no. No
|
165 |
-
23427.jpg Is this artwork displayed in the hermitage, st. petersburg? Please answer yes or no. Yes
|
166 |
-
23427.jpg Is this artwork displayed in national gallery of victoria, melbourne? Please answer yes or no. No
|
167 |
-
23465.jpg Is this artwork displayed in private collection? Please answer yes or no. Yes
|
168 |
-
23465.jpg Is this artwork displayed in cistertian church, zirc? Please answer yes or no. No
|
169 |
-
23824.jpg Is this artwork titled christ walking on the water? Please answer yes or no. Yes
|
170 |
-
23824.jpg Is this artwork titled mademoiselle romaine lacaux? Please answer yes or no. No
|
171 |
-
24122.jpg Is this artwork displayed in museo correr, venice? Please answer yes or no. Yes
|
172 |
-
24122.jpg Is this artwork displayed in church of brou, bourg-en-bresse? Please answer yes or no. No
|
173 |
-
24260.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
174 |
-
24260.jpg Does this artwork exist in the form of illumination? Please answer yes or no. No
|
175 |
-
24291.jpg Is this artwork titled virgin and child with sts catherine, cecilia, barbara, and ursula? Please answer yes or no. Yes
|
176 |
-
24291.jpg Is this artwork titled sorrow? Please answer yes or no. No
|
177 |
-
24723.jpg Is this artwork titled tomb of henry the lion and his wife matilda? Please answer yes or no. Yes
|
178 |
-
24723.jpg Is this artwork titled god the father? Please answer yes or no. No
|
179 |
-
2490.jpg Does this artwork belong to the type of landscape? Please answer yes or no. Yes
|
180 |
-
2490.jpg Does this artwork belong to the type of mythological? Please answer yes or no. No
|
181 |
-
2507.jpg Is this artwork displayed in private collection? Please answer yes or no. Yes
|
182 |
-
2507.jpg Is this artwork displayed in st. vitus's cathedral, prague? Please answer yes or no. No
|
183 |
-
25312.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
184 |
-
25312.jpg Does this artwork exist in the form of metalwork? Please answer yes or no. No
|
185 |
-
25476.jpg Is this artwork created by michelangelo buonarroti? Please answer yes or no. Yes
|
186 |
-
25476.jpg Is this artwork created by beuckelaer, joachim? Please answer yes or no. No
|
187 |
-
25492.jpg Does this artwork exist in the form of sculpture? Please answer yes or no. Yes
|
188 |
-
25492.jpg Does this artwork exist in the form of illumination? Please answer yes or no. No
|
189 |
-
25513.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
190 |
-
25513.jpg Does this artwork belong to the type of landscape? Please answer yes or no. No
|
191 |
-
26521.jpg Does this artwork exist in the form of illumination? Please answer yes or no. Yes
|
192 |
-
26521.jpg Does this artwork exist in the form of furniture? Please answer yes or no. No
|
193 |
-
26973.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
194 |
-
26973.jpg Does this artwork belong to the type of mythological? Please answer yes or no. No
|
195 |
-
27021.jpg Is this artwork created by miniaturist, german? Please answer yes or no. Yes
|
196 |
-
27021.jpg Is this artwork created by trinquesse, louis-rolland? Please answer yes or no. No
|
197 |
-
27662.jpg Does this artwork belong to the type of still-life? Please answer yes or no. Yes
|
198 |
-
27662.jpg Does this artwork belong to the type of mythological? Please answer yes or no. No
|
199 |
-
27936.jpg Does this artwork belong to the type of portrait? Please answer yes or no. Yes
|
200 |
-
27936.jpg Does this artwork belong to the type of interior? Please answer yes or no. No
|
201 |
-
28039.jpg Is this artwork displayed in cappella palatina, palermo? Please answer yes or no. Yes
|
202 |
-
28039.jpg Is this artwork displayed in musée des beaux-arts, chambéry? Please answer yes or no. No
|
203 |
-
28345.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
204 |
-
28345.jpg Does this artwork exist in the form of tapestry? Please answer yes or no. No
|
205 |
-
28400.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
206 |
-
28400.jpg Does this artwork belong to the type of portrait? Please answer yes or no. No
|
207 |
-
28698.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
208 |
-
28698.jpg Does this artwork belong to the type of still-life? Please answer yes or no. No
|
209 |
-
28758.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
210 |
-
28758.jpg Does this artwork exist in the form of graphics? Please answer yes or no. No
|
211 |
-
28974.jpg Is this artwork titled prayer before the meal? Please answer yes or no. Yes
|
212 |
-
28974.jpg Is this artwork titled rest in the mountains? Please answer yes or no. No
|
213 |
-
29266.jpg Is this artwork created by palma vecchio? Please answer yes or no. Yes
|
214 |
-
29266.jpg Is this artwork created by maris, jacobus hendricus? Please answer yes or no. No
|
215 |
-
30443.jpg Is this artwork titled the crucifixion with sts jerome and christopher? Please answer yes or no. Yes
|
216 |
-
30443.jpg Is this artwork titled tomb of michelangelo (detail)? Please answer yes or no. No
|
217 |
-
3085.jpg Is this artwork created by bartsius, willem? Please answer yes or no. Yes
|
218 |
-
3085.jpg Is this artwork created by oehme, ernst ferdinand? Please answer yes or no. No
|
219 |
-
30875.jpg Is this artwork created by pomarancio? Please answer yes or no. Yes
|
220 |
-
30875.jpg Is this artwork created by steen, jan? Please answer yes or no. No
|
221 |
-
3114.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
222 |
-
3114.jpg Does this artwork belong to the type of study? Please answer yes or no. No
|
223 |
-
31808.jpg Is this artwork created by raffaello sanzio? Please answer yes or no. Yes
|
224 |
-
31808.jpg Is this artwork created by simon von taisten? Please answer yes or no. No
|
225 |
-
32147.jpg Is this artwork titled lucretia? Please answer yes or no. Yes
|
226 |
-
32147.jpg Is this artwork titled rinaldo abandoning armida (detail)? Please answer yes or no. No
|
227 |
-
3241.jpg Is this artwork titled holy family? Please answer yes or no. Yes
|
228 |
-
3241.jpg Is this artwork titled friedrich iii, the wise, and johann i, the constant, electors of saxony? Please answer yes or no. No
|
229 |
-
33017.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
230 |
-
33017.jpg Does this artwork exist in the form of glassware? Please answer yes or no. No
|
231 |
-
33069.jpg Does this artwork belong to the type of historical? Please answer yes or no. Yes
|
232 |
-
33069.jpg Does this artwork belong to the type of interior? Please answer yes or no. No
|
233 |
-
33173.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
234 |
-
33173.jpg Does this artwork exist in the form of graphics? Please answer yes or no. No
|
235 |
-
33753.jpg Is this artwork titled vanitas? Please answer yes or no. Yes
|
236 |
-
33753.jpg Is this artwork titled legend of st francis: 18. apparition at arles (detail)? Please answer yes or no. No
|
237 |
-
33854.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
238 |
-
33854.jpg Does this artwork belong to the type of study? Please answer yes or no. No
|
239 |
-
339.jpg Is this artwork displayed in staatliche museen, berlin? Please answer yes or no. Yes
|
240 |
-
339.jpg Is this artwork displayed in national museum of religious carvings, valladolid? Please answer yes or no. No
|
241 |
-
33933.jpg Is this artwork titled madonna and child? Please answer yes or no. Yes
|
242 |
-
33933.jpg Is this artwork titled the bacino di san marco? Please answer yes or no. No
|
243 |
-
3404.jpg Is this artwork displayed in szépmûvészeti múzeum, budapest? Please answer yes or no. Yes
|
244 |
-
3404.jpg Is this artwork displayed in s. eustorgio, milan? Please answer yes or no. No
|
245 |
-
34109.jpg Is this artwork displayed in national gallery of art, washington? Please answer yes or no. Yes
|
246 |
-
34109.jpg Is this artwork displayed in abbey church of sainte-foy, conques? Please answer yes or no. No
|
247 |
-
34363.jpg Is this artwork displayed in museo del prado, madrid? Please answer yes or no. Yes
|
248 |
-
34363.jpg Is this artwork displayed in state tretyakov gallery, moscow? Please answer yes or no. No
|
249 |
-
34539.jpg Is this artwork titled the victory of eucharistic truth over heresy? Please answer yes or no. Yes
|
250 |
-
34539.jpg Is this artwork titled a sunday afternoon on the ile de la grande jatte? Please answer yes or no. No
|
251 |
-
34627.jpg Does this artwork belong to the type of landscape? Please answer yes or no. Yes
|
252 |
-
34627.jpg Does this artwork belong to the type of genre? Please answer yes or no. No
|
253 |
-
34638.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
254 |
-
34638.jpg Does this artwork exist in the form of tapestry? Please answer yes or no. No
|
255 |
-
34669.jpg Does this artwork belong to the type of mythological? Please answer yes or no. Yes
|
256 |
-
34669.jpg Does this artwork belong to the type of historical? Please answer yes or no. No
|
257 |
-
35345.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
258 |
-
35345.jpg Does this artwork belong to the type of landscape? Please answer yes or no. No
|
259 |
-
35439.jpg Is this artwork titled madonna and child with a host of musical angels? Please answer yes or no. Yes
|
260 |
-
35439.jpg Is this artwork titled garden in fontenay? Please answer yes or no. No
|
261 |
-
35460.jpg Is this artwork created by schinkel, karl friedrich? Please answer yes or no. Yes
|
262 |
-
35460.jpg Is this artwork created by giolfino, bartolomeo? Please answer yes or no. No
|
263 |
-
35486.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
264 |
-
35486.jpg Does this artwork exist in the form of furniture? Please answer yes or no. No
|
265 |
-
35513.jpg Is this artwork created by schongauer, martin? Please answer yes or no. Yes
|
266 |
-
35513.jpg Is this artwork created by cassioli, amos? Please answer yes or no. No
|
267 |
-
3552.jpg Is this artwork titled madonna degli alberetti? Please answer yes or no. Yes
|
268 |
-
3552.jpg Is this artwork titled peter gillis? Please answer yes or no. No
|
269 |
-
35658.jpg Is this artwork created by sebastiano del piombo? Please answer yes or no. Yes
|
270 |
-
35658.jpg Is this artwork created by jacobsz., dirck? Please answer yes or no. No
|
271 |
-
35736.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
272 |
-
35736.jpg Does this artwork belong to the type of still-life? Please answer yes or no. No
|
273 |
-
35861.jpg Does this artwork belong to the type of interior? Please answer yes or no. Yes
|
274 |
-
35861.jpg Does this artwork belong to the type of still-life? Please answer yes or no. No
|
275 |
-
36805.jpg Is this artwork titled weir? Please answer yes or no. Yes
|
276 |
-
36805.jpg Is this artwork titled view of the window wall? Please answer yes or no. No
|
277 |
-
36966.jpg Does this artwork belong to the type of portrait? Please answer yes or no. Yes
|
278 |
-
36966.jpg Does this artwork belong to the type of religious? Please answer yes or no. No
|
279 |
-
37010.jpg Is this artwork titled madonna and child with the young st john? Please answer yes or no. Yes
|
280 |
-
37010.jpg Is this artwork titled sketch for attila? Please answer yes or no. No
|
281 |
-
37077.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
282 |
-
37077.jpg Does this artwork belong to the type of still-life? Please answer yes or no. No
|
283 |
-
37439.jpg Is this artwork titled the message? Please answer yes or no. Yes
|
284 |
-
37439.jpg Is this artwork titled the descent from the cross? Please answer yes or no. No
|
285 |
-
37819.jpg Is this artwork created by tiepolo, giovanni battista? Please answer yes or no. Yes
|
286 |
-
37819.jpg Is this artwork created by kerricx, willem ignatius? Please answer yes or no. No
|
287 |
-
37866.jpg Does this artwork belong to the type of mythological? Please answer yes or no. Yes
|
288 |
-
37866.jpg Does this artwork belong to the type of still-life? Please answer yes or no. No
|
289 |
-
381.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
290 |
-
381.jpg Does this artwork exist in the form of architecture? Please answer yes or no. No
|
291 |
-
38178.jpg Is this artwork created by tintoretto? Please answer yes or no. Yes
|
292 |
-
38178.jpg Is this artwork created by morel, jean-baptiste? Please answer yes or no. No
|
293 |
-
38536.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
294 |
-
38536.jpg Does this artwork exist in the form of furniture? Please answer yes or no. No
|
295 |
-
38546.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
296 |
-
38546.jpg Does this artwork exist in the form of metalwork? Please answer yes or no. No
|
297 |
-
38694.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
298 |
-
38694.jpg Does this artwork exist in the form of metalwork? Please answer yes or no. No
|
299 |
-
38740.jpg Is this artwork displayed in musée toulouse-lautrec, albi? Please answer yes or no. Yes
|
300 |
-
38740.jpg Is this artwork displayed in kupferstichkabinett, gotha? Please answer yes or no. No
|
301 |
-
38881.jpg Does this artwork belong to the type of genre? Please answer yes or no. Yes
|
302 |
-
38881.jpg Does this artwork belong to the type of religious? Please answer yes or no. No
|
303 |
-
38993.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
304 |
-
38993.jpg Does this artwork exist in the form of illumination? Please answer yes or no. No
|
305 |
-
39026.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
306 |
-
39026.jpg Does this artwork belong to the type of historical? Please answer yes or no. No
|
307 |
-
39124.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
308 |
-
39124.jpg Does this artwork exist in the form of graphics? Please answer yes or no. No
|
309 |
-
39188.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
310 |
-
39188.jpg Does this artwork exist in the form of architecture? Please answer yes or no. No
|
311 |
-
39482.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
312 |
-
39482.jpg Does this artwork exist in the form of metalwork? Please answer yes or no. No
|
313 |
-
39556.jpg Is this artwork created by unknown master, dutch? Please answer yes or no. Yes
|
314 |
-
39556.jpg Is this artwork created by cuyp, benjamin gerritsz.? Please answer yes or no. No
|
315 |
-
41036.jpg Is this artwork displayed in kunsthistorisches museum, vienna? Please answer yes or no. Yes
|
316 |
-
41036.jpg Is this artwork displayed in national museum of art, minsk? Please answer yes or no. No
|
317 |
-
41371.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
318 |
-
41371.jpg Does this artwork exist in the form of architecture? Please answer yes or no. No
|
319 |
-
41484.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
320 |
-
41484.jpg Does this artwork belong to the type of historical? Please answer yes or no. No
|
321 |
-
41594.jpg Is this artwork created by veronese, paolo? Please answer yes or no. Yes
|
322 |
-
41594.jpg Is this artwork created by jeaurat, etienne? Please answer yes or no. No
|
323 |
-
416.jpg Does this artwork exist in the form of sculpture? Please answer yes or no. Yes
|
324 |
-
416.jpg Does this artwork exist in the form of others? Please answer yes or no. No
|
325 |
-
41653.jpg Is this artwork titled view of the sala del collegio? Please answer yes or no. Yes
|
326 |
-
41653.jpg Is this artwork titled reine lefebvre and margot? Please answer yes or no. No
|
327 |
-
41944.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
328 |
-
41944.jpg Does this artwork exist in the form of mosaic? Please answer yes or no. No
|
329 |
-
42152.jpg Is this artwork titled the pieterskerk in leiden? Please answer yes or no. Yes
|
330 |
-
42152.jpg Is this artwork titled portrait of cardinal reginald pole? Please answer yes or no. No
|
331 |
-
42288.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
332 |
-
42288.jpg Does this artwork exist in the form of stained-glass? Please answer yes or no. No
|
333 |
-
42303.jpg Is this artwork displayed in art museum, cincinnati? Please answer yes or no. Yes
|
334 |
-
42303.jpg Is this artwork displayed in banca del monte di bologna e ravenna, bologna? Please answer yes or no. No
|
335 |
-
42401.jpg Is this artwork created by waldmüller, fedinand georg? Please answer yes or no. Yes
|
336 |
-
42401.jpg Is this artwork created by seeman, enoch? Please answer yes or no. No
|
337 |
-
42447.jpg Is this artwork displayed in musée du louvre, paris? Please answer yes or no. Yes
|
338 |
-
42447.jpg Is this artwork displayed in santa catarina, pisa? Please answer yes or no. No
|
339 |
-
42585.jpg Is this artwork created by werff, pieter van der? Please answer yes or no. Yes
|
340 |
-
42585.jpg Is this artwork created by domenichini, apollonio? Please answer yes or no. No
|
341 |
-
42706.jpg Is this artwork displayed in musée du louvre, paris? Please answer yes or no. Yes
|
342 |
-
42706.jpg Is this artwork displayed in galleria nazionale d'arte moderna e contemporanea, rome? Please answer yes or no. No
|
343 |
-
42796.jpg Is this artwork displayed in private collection? Please answer yes or no. Yes
|
344 |
-
42796.jpg Is this artwork displayed in museo di san salvi, florence? Please answer yes or no. No
|
345 |
-
42857.jpg Does this artwork belong to the type of landscape? Please answer yes or no. Yes
|
346 |
-
42857.jpg Does this artwork belong to the type of study? Please answer yes or no. No
|
347 |
-
42905.jpg Is this artwork created by wit, jacob de? Please answer yes or no. Yes
|
348 |
-
42905.jpg Is this artwork created by vittone, bernardo antonio? Please answer yes or no. No
|
349 |
-
42941.jpg Is this artwork created by witte, emanuel de? Please answer yes or no. Yes
|
350 |
-
42941.jpg Is this artwork created by bicci di neri? Please answer yes or no. No
|
351 |
-
42956.jpg Is this artwork titled view of rome with the tiberand castel sant'angelo? Please answer yes or no. Yes
|
352 |
-
42956.jpg Is this artwork titled st bonaventure enters the franciscan order? Please answer yes or no. No
|
353 |
-
42987.jpg Is this artwork created by witz, konrad? Please answer yes or no. Yes
|
354 |
-
42987.jpg Is this artwork created by christus, petrus? Please answer yes or no. No
|
355 |
-
43142.jpg Does this artwork belong to the type of mythological? Please answer yes or no. Yes
|
356 |
-
43142.jpg Does this artwork belong to the type of interior? Please answer yes or no. No
|
357 |
-
43175.jpg Is this artwork displayed in private collection? Please answer yes or no. Yes
|
358 |
-
43175.jpg Is this artwork displayed in smith college museum of art, northampton? Please answer yes or no. No
|
359 |
-
43349.jpg Is this artwork created by zuccarelli, francesco? Please answer yes or no. Yes
|
360 |
-
43349.jpg Is this artwork created by baccanelli, giovanni antonio di giulio? Please answer yes or no. No
|
361 |
-
43445.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
362 |
-
43445.jpg Does this artwork belong to the type of interior? Please answer yes or no. No
|
363 |
-
4836.jpg Is this artwork displayed in villa cornaro, piombino dese? Please answer yes or no. Yes
|
364 |
-
4836.jpg Is this artwork displayed in palais saint-vaast, arras? Please answer yes or no. No
|
365 |
-
5227.jpg Is this artwork created by botticelli, sandro? Please answer yes or no. Yes
|
366 |
-
5227.jpg Is this artwork created by vigri, caterina? Please answer yes or no. No
|
367 |
-
526.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
368 |
-
526.jpg Does this artwork exist in the form of tapestry? Please answer yes or no. No
|
369 |
-
5906.jpg Is this artwork created by bronzino, agnolo? Please answer yes or no. Yes
|
370 |
-
5906.jpg Is this artwork created by pellegrino da san daniele? Please answer yes or no. No
|
371 |
-
6168.jpg Does this artwork exist in the form of graphics? Please answer yes or no. Yes
|
372 |
-
6168.jpg Does this artwork exist in the form of tapestry? Please answer yes or no. No
|
373 |
-
6297.jpg Is this artwork titled peasants making merry outside a tavern 'the swan'? Please answer yes or no. Yes
|
374 |
-
6297.jpg Is this artwork titled allegory of quietude? Please answer yes or no. No
|
375 |
-
6478.jpg Does this artwork belong to the type of religious? Please answer yes or no. Yes
|
376 |
-
6478.jpg Does this artwork belong to the type of genre? Please answer yes or no. No
|
377 |
-
6969.jpg Is this artwork titled letizia ramolino bonaparte? Please answer yes or no. Yes
|
378 |
-
6969.jpg Is this artwork titled job and his daughters? Please answer yes or no. No
|
379 |
-
701.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
380 |
-
701.jpg Does this artwork exist in the form of others? Please answer yes or no. No
|
381 |
-
7702.jpg Is this artwork titled reine lefebvre and margot? Please answer yes or no. Yes
|
382 |
-
7702.jpg Is this artwork titled fire in the oil depot at san marcuola? Please answer yes or no. No
|
383 |
-
8101.jpg Is this artwork displayed in museu de arte, são paulo? Please answer yes or no. Yes
|
384 |
-
8101.jpg Is this artwork displayed in national széchényi library, budapest? Please answer yes or no. No
|
385 |
-
815.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
386 |
-
815.jpg Does this artwork exist in the form of furniture? Please answer yes or no. No
|
387 |
-
8797.jpg Is this artwork created by coecke van aelst, pieter? Please answer yes or no. Yes
|
388 |
-
8797.jpg Is this artwork created by abaquesne, masséot? Please answer yes or no. No
|
389 |
-
8885.jpg Is this artwork displayed in art museum, saint louis? Please answer yes or no. Yes
|
390 |
-
8885.jpg Is this artwork displayed in museo civico d'arte antica, turin? Please answer yes or no. No
|
391 |
-
9153.jpg Is this artwork displayed in galleria nazionale, parma? Please answer yes or no. Yes
|
392 |
-
9153.jpg Is this artwork displayed in hospital de san bernardo, seville? Please answer yes or no. No
|
393 |
-
9395.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
394 |
-
9395.jpg Does this artwork exist in the form of stained-glass? Please answer yes or no. No
|
395 |
-
9405.jpg Is this artwork created by courbet, gustave? Please answer yes or no. Yes
|
396 |
-
9405.jpg Is this artwork created by milani, aureliano? Please answer yes or no. No
|
397 |
-
9599.jpg Does this artwork exist in the form of painting? Please answer yes or no. Yes
|
398 |
-
9599.jpg Does this artwork exist in the form of ceramics? Please answer yes or no. No
|
399 |
-
995.jpg Does this artwork exist in the form of sculpture? Please answer yes or no. Yes
|
400 |
-
995.jpg Does this artwork exist in the form of painting? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/celebrity.txt
DELETED
@@ -1,340 +0,0 @@
|
|
1 |
-
tt0032138_shot_0395_img_0.jpg Is the actor inside the red bounding box named Frank Morgan? Please answer yes or no. Yes
|
2 |
-
tt0032138_shot_0395_img_0.jpg Is the actor inside the red bounding box named Eric Schniewind? Please answer yes or no. No
|
3 |
-
tt0035423_shot_0464_img_0.jpg Is the actor inside the red bounding box called Hugh Jackman? Please answer yes or no. Yes
|
4 |
-
tt0035423_shot_0464_img_0.jpg Is the actor inside the red bounding box called Lizzie Hopley? Please answer yes or no. No
|
5 |
-
tt0038650_shot_0737_img_1.jpg Is the person inside the red bounding box called James Stewart? Please answer yes or no. Yes
|
6 |
-
tt0038650_shot_0737_img_1.jpg Is the person inside the red bounding box called Phil Selway? Please answer yes or no. No
|
7 |
-
tt0047396_shot_0333_img_0.jpg Is the actor inside the red bounding box named James Stewart? Please answer yes or no. Yes
|
8 |
-
tt0047396_shot_0333_img_0.jpg Is the actor inside the red bounding box named Ron Blair? Please answer yes or no. No
|
9 |
-
tt0048545_shot_0124_img_0.jpg Is the actor inside the red bounding box called Natalie Wood? Please answer yes or no. Yes
|
10 |
-
tt0048545_shot_0124_img_0.jpg Is the actor inside the red bounding box called Rebecca Jackson Mendoza? Please answer yes or no. No
|
11 |
-
tt0049470_shot_0279_img_0.jpg Is the person inside the red bounding box called James Stewart? Please answer yes or no. Yes
|
12 |
-
tt0049470_shot_0279_img_0.jpg Is the person inside the red bounding box called Matt Pashkow? Please answer yes or no. No
|
13 |
-
tt0049730_shot_0273_img_0.jpg Is the person inside the red bounding box called Vera Miles? Please answer yes or no. Yes
|
14 |
-
tt0049730_shot_0273_img_0.jpg Is the person inside the red bounding box called Addie Yungmee? Please answer yes or no. No
|
15 |
-
tt0052357_shot_0511_img_0.jpg Is the actor inside the red bounding box called Kim Novak? Please answer yes or no. Yes
|
16 |
-
tt0052357_shot_0511_img_0.jpg Is the actor inside the red bounding box called Abigail Van Alyn? Please answer yes or no. No
|
17 |
-
tt0053221_shot_0197_img_0.jpg Is the actor inside the red bounding box named John Wayne? Please answer yes or no. Yes
|
18 |
-
tt0053221_shot_0197_img_0.jpg Is the actor inside the red bounding box named Claude-Oliver Rudolph? Please answer yes or no. No
|
19 |
-
tt0054167_shot_0122_img_0.jpg Is the person inside the red bounding box called Anna Massey? Please answer yes or no. Yes
|
20 |
-
tt0054167_shot_0122_img_0.jpg Is the person inside the red bounding box called Eddie Tagoe? Please answer yes or no. No
|
21 |
-
tt0056869_shot_0320_img_0.jpg Is the person inside the red bounding box called Tippi Hedren? Please answer yes or no. Yes
|
22 |
-
tt0056869_shot_0320_img_0.jpg Is the person inside the red bounding box called Denise Mack? Please answer yes or no. No
|
23 |
-
tt0056923_shot_0835_img_0.jpg Is the actor inside the red bounding box called Audrey Hepburn? Please answer yes or no. Yes
|
24 |
-
tt0056923_shot_0835_img_0.jpg Is the actor inside the red bounding box called Chris April? Please answer yes or no. No
|
25 |
-
tt0057115_shot_0686_img_0.jpg Is the person inside the red bounding box named James Garner? Please answer yes or no. Yes
|
26 |
-
tt0057115_shot_0686_img_0.jpg Is the person inside the red bounding box named Chutimon Chuengcharoensukying? Please answer yes or no. No
|
27 |
-
tt0058331_shot_0353_img_0.jpg Is the actor inside the red bounding box named Julie Andrews? Please answer yes or no. Yes
|
28 |
-
tt0058331_shot_0353_img_0.jpg Is the actor inside the red bounding box named Ed Geldart? Please answer yes or no. No
|
29 |
-
tt0058461_shot_0901_img_0.jpg Is the actor inside the red bounding box called Gian Maria Volontè? Please answer yes or no. Yes
|
30 |
-
tt0058461_shot_0901_img_0.jpg Is the actor inside the red bounding box called Jennifer Connelly? Please answer yes or no. No
|
31 |
-
tt0061418_shot_0148_img_0.jpg Is the actor inside the red bounding box named Faye Dunaway? Please answer yes or no. Yes
|
32 |
-
tt0061418_shot_0148_img_0.jpg Is the actor inside the red bounding box named Warona Seane? Please answer yes or no. No
|
33 |
-
tt0061722_shot_0259_img_0.jpg Is the actor inside the red bounding box called Dustin Hoffman? Please answer yes or no. Yes
|
34 |
-
tt0061722_shot_0259_img_0.jpg Is the actor inside the red bounding box called Christopher Olsen? Please answer yes or no. No
|
35 |
-
tt0062622_shot_0291_img_0.jpg Is the actor inside the red bounding box named Keir Dullea? Please answer yes or no. Yes
|
36 |
-
tt0062622_shot_0291_img_0.jpg Is the actor inside the red bounding box named Frank Albanese? Please answer yes or no. No
|
37 |
-
tt0063442_shot_0702_img_0.jpg Is the actor inside the red bounding box called Linda Harrison? Please answer yes or no. Yes
|
38 |
-
tt0063442_shot_0702_img_0.jpg Is the actor inside the red bounding box called Michael McKean? Please answer yes or no. No
|
39 |
-
tt0064115_shot_0367_img_0.jpg Is the actor inside the red bounding box named Robert Redford? Please answer yes or no. Yes
|
40 |
-
tt0064115_shot_0367_img_0.jpg Is the actor inside the red bounding box named Cooper Murray? Please answer yes or no. No
|
41 |
-
tt0064665_shot_0300_img_0.jpg Is the actor inside the red bounding box called Jon Voight? Please answer yes or no. Yes
|
42 |
-
tt0064665_shot_0300_img_0.jpg Is the actor inside the red bounding box called Harvey Meyer? Please answer yes or no. No
|
43 |
-
tt0065214_shot_0366_img_0.jpg Is the person inside the red bounding box called Robert Ryan? Please answer yes or no. Yes
|
44 |
-
tt0065214_shot_0366_img_0.jpg Is the person inside the red bounding box called Victor Verhaeghe? Please answer yes or no. No
|
45 |
-
tt0065724_shot_0320_img_1.jpg Is the person inside the red bounding box named Karen Black? Please answer yes or no. Yes
|
46 |
-
tt0065724_shot_0320_img_1.jpg Is the person inside the red bounding box named Nick Discenza? Please answer yes or no. No
|
47 |
-
tt0066026_shot_0085_img_0.jpg Is the person inside the red bounding box called Donald Sutherland? Please answer yes or no. Yes
|
48 |
-
tt0066026_shot_0085_img_0.jpg Is the person inside the red bounding box called Michael Wollet? Please answer yes or no. No
|
49 |
-
tt0066921_shot_0631_img_0.jpg Is the actor inside the red bounding box called Malcolm McDowell? Please answer yes or no. Yes
|
50 |
-
tt0066921_shot_0631_img_0.jpg Is the actor inside the red bounding box called Darling Légitimus? Please answer yes or no. No
|
51 |
-
tt0067116_shot_0122_img_0.jpg Is the actor inside the red bounding box called Gene Hackman? Please answer yes or no. Yes
|
52 |
-
tt0067116_shot_0122_img_0.jpg Is the actor inside the red bounding box called Russell G. Jones? Please answer yes or no. No
|
53 |
-
tt0068646_shot_0166_img_0.jpg Is the actor inside the red bounding box called Marlon Brando? Please answer yes or no. Yes
|
54 |
-
tt0068646_shot_0166_img_0.jpg Is the actor inside the red bounding box called Voltaire Sterling? Please answer yes or no. No
|
55 |
-
tt0069762_shot_0723_img_0.jpg Is the person inside the red bounding box named Sissy Spacek? Please answer yes or no. Yes
|
56 |
-
tt0069762_shot_0723_img_0.jpg Is the person inside the red bounding box named Monica Giordano? Please answer yes or no. No
|
57 |
-
tt0070047_shot_0255_img_0.jpg Is the actor inside the red bounding box called Ellen Burstyn? Please answer yes or no. Yes
|
58 |
-
tt0070047_shot_0255_img_0.jpg Is the actor inside the red bounding box called Shawnee Smith? Please answer yes or no. No
|
59 |
-
tt0070379_shot_0569_img_0.jpg Is the actor inside the red bounding box named Richard Romanus? Please answer yes or no. Yes
|
60 |
-
tt0070379_shot_0569_img_0.jpg Is the actor inside the red bounding box named Valerie Colgan? Please answer yes or no. No
|
61 |
-
tt0070511_shot_0639_img_0.jpg Is the person inside the red bounding box called Dustin Hoffman? Please answer yes or no. Yes
|
62 |
-
tt0070511_shot_0639_img_0.jpg Is the person inside the red bounding box called Fernando Lueches? Please answer yes or no. No
|
63 |
-
tt0070735_shot_0818_img_0.jpg Is the person inside the red bounding box named Robert Redford? Please answer yes or no. Yes
|
64 |
-
tt0070735_shot_0818_img_0.jpg Is the person inside the red bounding box named Ellin Dennis? Please answer yes or no. No
|
65 |
-
tt0070849_shot_0021_img_1.jpg Is the person inside the red bounding box named Maria Schneider? Please answer yes or no. Yes
|
66 |
-
tt0070849_shot_0021_img_1.jpg Is the person inside the red bounding box named Mary Kellogg? Please answer yes or no. No
|
67 |
-
tt0071315_shot_0153_img_0.jpg Is the actor inside the red bounding box named Faye Dunaway? Please answer yes or no. Yes
|
68 |
-
tt0071315_shot_0153_img_0.jpg Is the actor inside the red bounding box named Kelly Hitman? Please answer yes or no. No
|
69 |
-
tt0071562_shot_0684_img_0.jpg Is the actor inside the red bounding box named Al Pacino? Please answer yes or no. Yes
|
70 |
-
tt0071562_shot_0684_img_0.jpg Is the actor inside the red bounding box named Debie Jarczewski? Please answer yes or no. No
|
71 |
-
tt0072684_shot_0512_img_1.jpg Is the person inside the red bounding box named Marisa Berenson? Please answer yes or no. Yes
|
72 |
-
tt0072684_shot_0512_img_1.jpg Is the person inside the red bounding box named Graham Bohea? Please answer yes or no. No
|
73 |
-
tt0073195_shot_0280_img_0.jpg Is the actor inside the red bounding box named Roy Scheider? Please answer yes or no. Yes
|
74 |
-
tt0073195_shot_0280_img_0.jpg Is the actor inside the red bounding box named Abdul Qadir Farookh? Please answer yes or no. No
|
75 |
-
tt0073629_shot_0700_img_0.jpg Is the person inside the red bounding box named Barry Bostwick? Please answer yes or no. Yes
|
76 |
-
tt0073629_shot_0700_img_0.jpg Is the person inside the red bounding box named Johnny Galecki? Please answer yes or no. No
|
77 |
-
tt0074119_shot_0814_img_0.jpg Is the actor inside the red bounding box called Robert Redford? Please answer yes or no. Yes
|
78 |
-
tt0074119_shot_0814_img_0.jpg Is the actor inside the red bounding box called Delroy Lindo? Please answer yes or no. No
|
79 |
-
tt0074285_shot_0535_img_1.jpg Is the person inside the red bounding box named William Katt? Please answer yes or no. Yes
|
80 |
-
tt0074285_shot_0535_img_1.jpg Is the person inside the red bounding box named Stephen Rider? Please answer yes or no. No
|
81 |
-
tt0075148_shot_0618_img_0.jpg Is the actor inside the red bounding box called Sylvester Stallone? Please answer yes or no. Yes
|
82 |
-
tt0075148_shot_0618_img_0.jpg Is the actor inside the red bounding box called Eric Hatch? Please answer yes or no. No
|
83 |
-
tt0075686_shot_0373_img_0.jpg Is the actor inside the red bounding box called Woody Allen? Please answer yes or no. Yes
|
84 |
-
tt0075686_shot_0373_img_0.jpg Is the actor inside the red bounding box called Penny Wallace? Please answer yes or no. No
|
85 |
-
tt0076729_shot_0451_img_0.jpg Is the actor inside the red bounding box called Sally Field? Please answer yes or no. Yes
|
86 |
-
tt0076729_shot_0451_img_0.jpg Is the actor inside the red bounding box called Giorgio Libassi? Please answer yes or no. No
|
87 |
-
tt0076759_shot_0930_img_0.jpg Is the actor inside the red bounding box called Harrison Ford? Please answer yes or no. Yes
|
88 |
-
tt0076759_shot_0930_img_0.jpg Is the actor inside the red bounding box called Ryoko Sadoshima? Please answer yes or no. No
|
89 |
-
tt0077402_shot_1220_img_0.jpg Is the person inside the red bounding box named Scott H. Reiniger? Please answer yes or no. Yes
|
90 |
-
tt0077402_shot_1220_img_0.jpg Is the person inside the red bounding box named Chris Delaney? Please answer yes or no. No
|
91 |
-
tt0077405_shot_0150_img_0.jpg Is the actor inside the red bounding box named Sam Shepard? Please answer yes or no. Yes
|
92 |
-
tt0077405_shot_0150_img_0.jpg Is the actor inside the red bounding box named Bijou Phillips? Please answer yes or no. No
|
93 |
-
tt0077416_shot_1442_img_0.jpg Is the person inside the red bounding box named Robert De Niro? Please answer yes or no. Yes
|
94 |
-
tt0077416_shot_1442_img_0.jpg Is the person inside the red bounding box named Stu Smith? Please answer yes or no. No
|
95 |
-
tt0077651_shot_0133_img_0.jpg Is the person inside the red bounding box called Jamie Lee Curtis? Please answer yes or no. Yes
|
96 |
-
tt0077651_shot_0133_img_0.jpg Is the person inside the red bounding box called Paris Arrowsmith? Please answer yes or no. No
|
97 |
-
tt0078788_shot_1434_img_0.jpg Is the person inside the red bounding box called Martin Sheen? Please answer yes or no. Yes
|
98 |
-
tt0078788_shot_1434_img_0.jpg Is the person inside the red bounding box called Le Capriccio Français? Please answer yes or no. No
|
99 |
-
tt0078841_shot_0692_img_0.jpg Is the actor inside the red bounding box named Shirley MacLaine? Please answer yes or no. Yes
|
100 |
-
tt0078841_shot_0692_img_0.jpg Is the actor inside the red bounding box named Tomas Choy? Please answer yes or no. No
|
101 |
-
tt0079417_shot_0735_img_0.jpg Is the actor inside the red bounding box called Meryl Streep? Please answer yes or no. Yes
|
102 |
-
tt0079417_shot_0735_img_0.jpg Is the actor inside the red bounding box called Ross Lacy? Please answer yes or no. No
|
103 |
-
tt0079470_shot_0798_img_0.jpg Is the person inside the red bounding box named Eric Idle? Please answer yes or no. Yes
|
104 |
-
tt0079470_shot_0798_img_0.jpg Is the person inside the red bounding box named Quincy Taylor? Please answer yes or no. No
|
105 |
-
tt0079945_shot_1411_img_0.jpg Is the person inside the red bounding box named Persis Khambatta? Please answer yes or no. Yes
|
106 |
-
tt0079945_shot_1411_img_0.jpg Is the person inside the red bounding box named Alison Waddell? Please answer yes or no. No
|
107 |
-
tt0080339_shot_0711_img_0.jpg Is the actor inside the red bounding box named Robert Hays? Please answer yes or no. Yes
|
108 |
-
tt0080339_shot_0711_img_0.jpg Is the actor inside the red bounding box named Grace Sullivan? Please answer yes or no. No
|
109 |
-
tt0080684_shot_1574_img_2.jpg Is the actor inside the red bounding box called Mark Hamill? Please answer yes or no. Yes
|
110 |
-
tt0080684_shot_1574_img_2.jpg Is the actor inside the red bounding box called Rodion Salnikov? Please answer yes or no. No
|
111 |
-
tt0081505_shot_0449_img_0.jpg Is the actor inside the red bounding box called Shelley Duvall? Please answer yes or no. Yes
|
112 |
-
tt0081505_shot_0449_img_0.jpg Is the actor inside the red bounding box called Antony Carrick? Please answer yes or no. No
|
113 |
-
tt0082089_shot_0046_img_0.jpg Is the actor inside the red bounding box named Kathleen Turner? Please answer yes or no. Yes
|
114 |
-
tt0082089_shot_0046_img_0.jpg Is the actor inside the red bounding box named Aaron Henderson? Please answer yes or no. No
|
115 |
-
tt0082198_shot_1353_img_0.jpg Is the person inside the red bounding box named Arnold Schwarzenegger? Please answer yes or no. Yes
|
116 |
-
tt0082198_shot_1353_img_0.jpg Is the person inside the red bounding box named Tim Herlihy? Please answer yes or no. No
|
117 |
-
tt0082971_shot_0831_img_0.jpg Is the actor inside the red bounding box called Harrison Ford? Please answer yes or no. Yes
|
118 |
-
tt0082971_shot_0831_img_0.jpg Is the actor inside the red bounding box called Richard Angarola? Please answer yes or no. No
|
119 |
-
tt0083658_shot_0963_img_0.jpg Is the person inside the red bounding box called Rutger Hauer? Please answer yes or no. Yes
|
120 |
-
tt0083658_shot_0963_img_0.jpg Is the person inside the red bounding box called Stéphane Julien? Please answer yes or no. No
|
121 |
-
tt0083866_shot_0364_img_0.jpg Is the actor inside the red bounding box called Robert MacNaughton? Please answer yes or no. Yes
|
122 |
-
tt0083866_shot_0364_img_0.jpg Is the actor inside the red bounding box called Seam Turay? Please answer yes or no. No
|
123 |
-
tt0083907_shot_0633_img_0.jpg Is the actor inside the red bounding box named Bruce Campbell? Please answer yes or no. Yes
|
124 |
-
tt0083907_shot_0633_img_0.jpg Is the actor inside the red bounding box named Kaden Leos? Please answer yes or no. No
|
125 |
-
tt0083929_shot_0405_img_0.jpg Is the actor inside the red bounding box named Jennifer Jason Leigh? Please answer yes or no. Yes
|
126 |
-
tt0083929_shot_0405_img_0.jpg Is the actor inside the red bounding box named Eric D. Sandgren? Please answer yes or no. No
|
127 |
-
tt0084726_shot_0283_img_0.jpg Is the actor inside the red bounding box named Leonard Nimoy? Please answer yes or no. Yes
|
128 |
-
tt0084726_shot_0283_img_0.jpg Is the actor inside the red bounding box named John Cusack? Please answer yes or no. No
|
129 |
-
tt0086190_shot_0815_img_0.jpg Is the actor inside the red bounding box named Carrie Fisher? Please answer yes or no. Yes
|
130 |
-
tt0086190_shot_0815_img_0.jpg Is the actor inside the red bounding box named Ernie Adams? Please answer yes or no. No
|
131 |
-
tt0086250_shot_1079_img_0.jpg Is the actor inside the red bounding box called Steven Bauer? Please answer yes or no. Yes
|
132 |
-
tt0086250_shot_1079_img_0.jpg Is the actor inside the red bounding box called Bill Nunn? Please answer yes or no. No
|
133 |
-
tt0086856_shot_0929_img_0.jpg Is the actor inside the red bounding box called Peter Weller? Please answer yes or no. Yes
|
134 |
-
tt0086856_shot_0929_img_0.jpg Is the actor inside the red bounding box called Tracee Cocco? Please answer yes or no. No
|
135 |
-
tt0086879_shot_0158_img_0.jpg Is the person inside the red bounding box called Elizabeth Berridge? Please answer yes or no. Yes
|
136 |
-
tt0086879_shot_0158_img_0.jpg Is the person inside the red bounding box called Ralph Ineson? Please answer yes or no. No
|
137 |
-
tt0087332_shot_0798_img_0.jpg Is the person inside the red bounding box called Bill Murray? Please answer yes or no. Yes
|
138 |
-
tt0087332_shot_0798_img_0.jpg Is the person inside the red bounding box called Jiao Xu? Please answer yes or no. No
|
139 |
-
tt0087469_shot_0049_img_2.jpg Is the person inside the red bounding box named Harrison Ford? Please answer yes or no. Yes
|
140 |
-
tt0087469_shot_0049_img_2.jpg Is the person inside the red bounding box named Paulo Benedeti? Please answer yes or no. No
|
141 |
-
tt0088847_shot_0109_img_0.jpg Is the actor inside the red bounding box named Anthony Michael Hall? Please answer yes or no. Yes
|
142 |
-
tt0088847_shot_0109_img_0.jpg Is the actor inside the red bounding box named Luis Javier? Please answer yes or no. No
|
143 |
-
tt0088944_shot_0634_img_0.jpg Is the actor inside the red bounding box named Arnold Schwarzenegger? Please answer yes or no. Yes
|
144 |
-
tt0088944_shot_0634_img_0.jpg Is the actor inside the red bounding box named Shaine Jones? Please answer yes or no. No
|
145 |
-
tt0088993_shot_0569_img_0.jpg Is the actor inside the red bounding box called George A. Romero? Please answer yes or no. Yes
|
146 |
-
tt0088993_shot_0569_img_0.jpg Is the actor inside the red bounding box called James Eckhouse? Please answer yes or no. No
|
147 |
-
tt0089218_shot_0327_img_0.jpg Is the person inside the red bounding box named Sean Astin? Please answer yes or no. Yes
|
148 |
-
tt0089218_shot_0327_img_0.jpg Is the person inside the red bounding box named Dan Hunter? Please answer yes or no. No
|
149 |
-
tt0089881_shot_0034_img_0.jpg Is the actor inside the red bounding box called Tatsuya Nakadai? Please answer yes or no. Yes
|
150 |
-
tt0089881_shot_0034_img_0.jpg Is the actor inside the red bounding box called Nancy Vee? Please answer yes or no. No
|
151 |
-
tt0090022_shot_0464_img_0.jpg Is the actor inside the red bounding box called Scott Glenn? Please answer yes or no. Yes
|
152 |
-
tt0090022_shot_0464_img_0.jpg Is the actor inside the red bounding box called Robert Ryan? Please answer yes or no. No
|
153 |
-
tt0090605_shot_0344_img_0.jpg Is the person inside the red bounding box called Sigourney Weaver? Please answer yes or no. Yes
|
154 |
-
tt0090605_shot_0344_img_0.jpg Is the person inside the red bounding box called Lia Beldam? Please answer yes or no. No
|
155 |
-
tt0090756_shot_0135_img_0.jpg Is the person inside the red bounding box named Laura Dern? Please answer yes or no. Yes
|
156 |
-
tt0090756_shot_0135_img_0.jpg Is the person inside the red bounding box named Keith Frost? Please answer yes or no. No
|
157 |
-
tt0091042_shot_0098_img_0.jpg Is the person inside the red bounding box called Matthew Broderick? Please answer yes or no. Yes
|
158 |
-
tt0091042_shot_0098_img_0.jpg Is the person inside the red bounding box called Mina E. Mina? Please answer yes or no. No
|
159 |
-
tt0091738_shot_0073_img_1.jpg Is the actor inside the red bounding box called Kathleen Turner? Please answer yes or no. Yes
|
160 |
-
tt0091738_shot_0073_img_1.jpg Is the actor inside the red bounding box called Pat Kiernan? Please answer yes or no. No
|
161 |
-
tt0091867_shot_0422_img_2.jpg Is the person inside the red bounding box named Simon Callow? Please answer yes or no. Yes
|
162 |
-
tt0091867_shot_0422_img_2.jpg Is the person inside the red bounding box named Rusty Goffe? Please answer yes or no. No
|
163 |
-
tt0092099_shot_0455_img_1.jpg Is the person inside the red bounding box called Tom Cruise? Please answer yes or no. Yes
|
164 |
-
tt0092099_shot_0455_img_1.jpg Is the person inside the red bounding box called Carol Krolick? Please answer yes or no. No
|
165 |
-
tt0092699_shot_0208_img_0.jpg Is the actor inside the red bounding box called William Hurt? Please answer yes or no. Yes
|
166 |
-
tt0092699_shot_0208_img_0.jpg Is the actor inside the red bounding box called Hildur Ruriks? Please answer yes or no. No
|
167 |
-
tt0093565_shot_0409_img_0.jpg Is the actor inside the red bounding box named Cher? Please answer yes or no. Yes
|
168 |
-
tt0093565_shot_0409_img_0.jpg Is the actor inside the red bounding box named Mark Brady? Please answer yes or no. No
|
169 |
-
tt0093748_shot_0346_img_0.jpg Is the actor inside the red bounding box called John Candy? Please answer yes or no. Yes
|
170 |
-
tt0093748_shot_0346_img_0.jpg Is the actor inside the red bounding box called Sarah Heller? Please answer yes or no. No
|
171 |
-
tt0093773_shot_0212_img_0.jpg Is the person inside the red bounding box named Jesse Ventura? Please answer yes or no. Yes
|
172 |
-
tt0093773_shot_0212_img_0.jpg Is the person inside the red bounding box named Akio Mitamura? Please answer yes or no. No
|
173 |
-
tt0093779_shot_1047_img_0.jpg Is the person inside the red bounding box named Peter Falk? Please answer yes or no. Yes
|
174 |
-
tt0093779_shot_1047_img_0.jpg Is the person inside the red bounding box named Lisa Ann Walter? Please answer yes or no. No
|
175 |
-
tt0094226_shot_0237_img_2.jpg Is the actor inside the red bounding box called Kevin Costner? Please answer yes or no. Yes
|
176 |
-
tt0094226_shot_0237_img_2.jpg Is the actor inside the red bounding box called Colin Hill? Please answer yes or no. No
|
177 |
-
tt0094737_shot_0567_img_0.jpg Is the person inside the red bounding box called Tom Hanks? Please answer yes or no. Yes
|
178 |
-
tt0094737_shot_0567_img_0.jpg Is the person inside the red bounding box called Chris McHallem? Please answer yes or no. No
|
179 |
-
tt0095016_shot_1170_img_0.jpg Is the actor inside the red bounding box called Paul Gleason? Please answer yes or no. Yes
|
180 |
-
tt0095016_shot_1170_img_0.jpg Is the actor inside the red bounding box called Carl Palmer? Please answer yes or no. No
|
181 |
-
tt0095250_shot_0509_img_0.jpg Is the actor inside the red bounding box named Jean Reno? Please answer yes or no. Yes
|
182 |
-
tt0095250_shot_0509_img_0.jpg Is the actor inside the red bounding box named Ralph Meyering Jr.? Please answer yes or no. No
|
183 |
-
tt0095765_shot_0008_img_0.jpg Is the actor inside the red bounding box called Antonella Attili? Please answer yes or no. Yes
|
184 |
-
tt0095765_shot_0008_img_0.jpg Is the actor inside the red bounding box called Amber Estrada? Please answer yes or no. No
|
185 |
-
tt0095953_shot_0412_img_0.jpg Is the person inside the red bounding box named Tom Cruise? Please answer yes or no. Yes
|
186 |
-
tt0095953_shot_0412_img_0.jpg Is the person inside the red bounding box named Lara Mulcahy? Please answer yes or no. No
|
187 |
-
tt0096320_shot_0085_img_0.jpg Is the actor inside the red bounding box called Arnold Schwarzenegger? Please answer yes or no. Yes
|
188 |
-
tt0096320_shot_0085_img_0.jpg Is the actor inside the red bounding box called Dan Duran? Please answer yes or no. No
|
189 |
-
tt0096754_shot_0570_img_1.jpg Is the person inside the red bounding box named Todd Graff? Please answer yes or no. Yes
|
190 |
-
tt0096754_shot_0570_img_1.jpg Is the person inside the red bounding box named Guy Carleton? Please answer yes or no. No
|
191 |
-
tt0096874_shot_0647_img_0.jpg Is the actor inside the red bounding box named Michael J. Fox? Please answer yes or no. Yes
|
192 |
-
tt0096874_shot_0647_img_0.jpg Is the actor inside the red bounding box named Momoko Komatsu? Please answer yes or no. No
|
193 |
-
tt0096895_shot_0819_img_1.jpg Is the person inside the red bounding box called Michael Keaton? Please answer yes or no. Yes
|
194 |
-
tt0096895_shot_0819_img_1.jpg Is the person inside the red bounding box called Ben Foster? Please answer yes or no. No
|
195 |
-
tt0097216_shot_0381_img_0.jpg Is the actor inside the red bounding box named Danny Aiello? Please answer yes or no. Yes
|
196 |
-
tt0097216_shot_0381_img_0.jpg Is the actor inside the red bounding box named Taissa Farmiga? Please answer yes or no. No
|
197 |
-
tt0097428_shot_0106_img_0.jpg Is the actor inside the red bounding box named Bill Murray? Please answer yes or no. Yes
|
198 |
-
tt0097428_shot_0106_img_0.jpg Is the actor inside the red bounding box named Michael Fawcett? Please answer yes or no. No
|
199 |
-
tt0097576_shot_1010_img_2.jpg Is the actor inside the red bounding box named Harrison Ford? Please answer yes or no. Yes
|
200 |
-
tt0097576_shot_1010_img_2.jpg Is the actor inside the red bounding box named M. Emmet Walsh? Please answer yes or no. No
|
201 |
-
tt0098635_shot_0556_img_0.jpg Is the actor inside the red bounding box named Meg Ryan? Please answer yes or no. Yes
|
202 |
-
tt0098635_shot_0556_img_0.jpg Is the actor inside the red bounding box named Tom Branch? Please answer yes or no. No
|
203 |
-
tt0098724_shot_0474_img_0.jpg Is the person inside the red bounding box named Andie MacDowell? Please answer yes or no. Yes
|
204 |
-
tt0098724_shot_0474_img_0.jpg Is the person inside the red bounding box named Linda Taylor? Please answer yes or no. No
|
205 |
-
tt0099423_shot_1010_img_0.jpg Is the person inside the red bounding box called Bruce Willis? Please answer yes or no. Yes
|
206 |
-
tt0099423_shot_1010_img_0.jpg Is the person inside the red bounding box called Trevor Eve? Please answer yes or no. No
|
207 |
-
tt0099487_shot_0123_img_0.jpg Is the actor inside the red bounding box named Johnny Depp? Please answer yes or no. Yes
|
208 |
-
tt0099487_shot_0123_img_0.jpg Is the actor inside the red bounding box named Farrah Forke? Please answer yes or no. No
|
209 |
-
tt0099674_shot_1356_img_0.jpg Is the person inside the red bounding box named Al Pacino? Please answer yes or no. Yes
|
210 |
-
tt0099674_shot_1356_img_0.jpg Is the person inside the red bounding box named Nick Porrazzo? Please answer yes or no. No
|
211 |
-
tt0099685_shot_1132_img_0.jpg Is the actor inside the red bounding box called Ray Liotta? Please answer yes or no. Yes
|
212 |
-
tt0099685_shot_1132_img_0.jpg Is the actor inside the red bounding box called Chick Allan? Please answer yes or no. No
|
213 |
-
tt0099810_shot_0285_img_0.jpg Is the person inside the red bounding box called Alec Baldwin? Please answer yes or no. Yes
|
214 |
-
tt0099810_shot_0285_img_0.jpg Is the person inside the red bounding box called Jennifer Anglin? Please answer yes or no. No
|
215 |
-
tt0100157_shot_0365_img_0.jpg Is the actor inside the red bounding box named James Caan? Please answer yes or no. Yes
|
216 |
-
tt0100157_shot_0365_img_0.jpg Is the actor inside the red bounding box named Bryan Johnson? Please answer yes or no. No
|
217 |
-
tt0100403_shot_0517_img_0.jpg Is the person inside the red bounding box called Gary Busey? Please answer yes or no. Yes
|
218 |
-
tt0100403_shot_0517_img_0.jpg Is the person inside the red bounding box called Alfred Tiaki Hotu? Please answer yes or no. No
|
219 |
-
tt0100405_shot_0786_img_0.jpg Is the actor inside the red bounding box named Jason Alexander? Please answer yes or no. Yes
|
220 |
-
tt0100405_shot_0786_img_0.jpg Is the actor inside the red bounding box named Alexandra Bastedo? Please answer yes or no. No
|
221 |
-
tt0101410_shot_0105_img_0.jpg Is the person inside the red bounding box named John Turturro? Please answer yes or no. Yes
|
222 |
-
tt0101410_shot_0105_img_0.jpg Is the person inside the red bounding box named David Gore? Please answer yes or no. No
|
223 |
-
tt0102492_shot_0086_img_0.jpg Is the actor inside the red bounding box called Jamie Lee Curtis? Please answer yes or no. Yes
|
224 |
-
tt0102492_shot_0086_img_0.jpg Is the actor inside the red bounding box called Heidi Fischer? Please answer yes or no. No
|
225 |
-
tt0103064_shot_1206_img_0.jpg Is the actor inside the red bounding box named Arnold Schwarzenegger? Please answer yes or no. Yes
|
226 |
-
tt0103064_shot_1206_img_0.jpg Is the actor inside the red bounding box named Gigi Lee? Please answer yes or no. No
|
227 |
-
tt0103064_shot_2602_img_1.jpg Is the person inside the red bounding box named Arnold Schwarzenegger? Please answer yes or no. Yes
|
228 |
-
tt0103064_shot_2602_img_1.jpg Is the person inside the red bounding box named Candice Azzara? Please answer yes or no. No
|
229 |
-
tt0103776_shot_0719_img_0.jpg Is the person inside the red bounding box called Michael Keaton? Please answer yes or no. Yes
|
230 |
-
tt0103776_shot_0719_img_0.jpg Is the person inside the red bounding box called Nicholas Rice? Please answer yes or no. No
|
231 |
-
tt0104036_shot_0336_img_1.jpg Is the person inside the red bounding box named Stephen Rea? Please answer yes or no. Yes
|
232 |
-
tt0104036_shot_0336_img_1.jpg Is the person inside the red bounding box named Mimi Lizio? Please answer yes or no. No
|
233 |
-
tt0104257_shot_0477_img_0.jpg Is the person inside the red bounding box named Jack Nicholson? Please answer yes or no. Yes
|
234 |
-
tt0104257_shot_0477_img_0.jpg Is the person inside the red bounding box named Emma Julia Jacobs? Please answer yes or no. No
|
235 |
-
tt0104348_shot_0340_img_0.jpg Is the person inside the red bounding box called Ed Harris? Please answer yes or no. Yes
|
236 |
-
tt0104348_shot_0340_img_0.jpg Is the person inside the red bounding box called Carla Lizzette Mejia? Please answer yes or no. No
|
237 |
-
tt0105236_shot_0193_img_0.jpg Is the actor inside the red bounding box named Harvey Keitel? Please answer yes or no. Yes
|
238 |
-
tt0105236_shot_0193_img_0.jpg Is the actor inside the red bounding box named Terence Yin? Please answer yes or no. No
|
239 |
-
tt0105665_shot_0351_img_0.jpg Is the actor inside the red bounding box named Kyle MacLachlan? Please answer yes or no. Yes
|
240 |
-
tt0105665_shot_0351_img_0.jpg Is the actor inside the red bounding box named Julia Hsu? Please answer yes or no. No
|
241 |
-
tt0105695_shot_1436_img_1.jpg Is the person inside the red bounding box called Jaimz Woolvett? Please answer yes or no. Yes
|
242 |
-
tt0105695_shot_1436_img_1.jpg Is the person inside the red bounding box called Hermione Baddeley? Please answer yes or no. No
|
243 |
-
tt0106977_shot_1604_img_0.jpg Is the person inside the red bounding box named Tommy Lee Jones? Please answer yes or no. Yes
|
244 |
-
tt0106977_shot_1604_img_0.jpg Is the person inside the red bounding box named Honey Chhaya? Please answer yes or no. No
|
245 |
-
tt0107614_shot_0116_img_0.jpg Is the person inside the red bounding box called Sally Field? Please answer yes or no. Yes
|
246 |
-
tt0107614_shot_0116_img_0.jpg Is the person inside the red bounding box called Arthur Senzy? Please answer yes or no. No
|
247 |
-
tt0108399_shot_0778_img_0.jpg Is the actor inside the red bounding box called Christopher Walken? Please answer yes or no. Yes
|
248 |
-
tt0108399_shot_0778_img_0.jpg Is the actor inside the red bounding box called Fiona Sit? Please answer yes or no. No
|
249 |
-
tt0109831_shot_0298_img_0.jpg Is the person inside the red bounding box called Hugh Grant? Please answer yes or no. Yes
|
250 |
-
tt0109831_shot_0298_img_0.jpg Is the person inside the red bounding box called Renée Zellweger? Please answer yes or no. No
|
251 |
-
tt0111280_shot_0258_img_0.jpg Is the actor inside the red bounding box named Gates McFadden? Please answer yes or no. Yes
|
252 |
-
tt0111280_shot_0258_img_0.jpg Is the actor inside the red bounding box named Michael Angarano? Please answer yes or no. No
|
253 |
-
tt0111280_shot_1479_img_2.jpg Is the actor inside the red bounding box called William Shatner? Please answer yes or no. Yes
|
254 |
-
tt0111280_shot_1479_img_2.jpg Is the actor inside the red bounding box called Richard Rohrbough? Please answer yes or no. No
|
255 |
-
tt0112384_shot_0878_img_0.jpg Is the person inside the red bounding box called Kathleen Quinlan? Please answer yes or no. Yes
|
256 |
-
tt0112384_shot_0878_img_0.jpg Is the person inside the red bounding box called Veronica Diaz Carranza? Please answer yes or no. No
|
257 |
-
tt0112641_shot_0412_img_1.jpg Is the actor inside the red bounding box called Robert De Niro? Please answer yes or no. Yes
|
258 |
-
tt0112641_shot_0412_img_1.jpg Is the actor inside the red bounding box called Pierre Malherbe? Please answer yes or no. No
|
259 |
-
tt0112740_shot_1056_img_0.jpg Is the person inside the red bounding box named Denzel Washington? Please answer yes or no. Yes
|
260 |
-
tt0112740_shot_1056_img_0.jpg Is the person inside the red bounding box named Bill Pullman? Please answer yes or no. No
|
261 |
-
tt0113101_shot_0547_img_0.jpg Is the person inside the red bounding box named Tim Roth? Please answer yes or no. Yes
|
262 |
-
tt0113101_shot_0547_img_0.jpg Is the person inside the red bounding box named Honey Chhaya? Please answer yes or no. No
|
263 |
-
tt0114369_shot_1138_img_0.jpg Is the person inside the red bounding box named Brad Pitt? Please answer yes or no. Yes
|
264 |
-
tt0114369_shot_1138_img_0.jpg Is the person inside the red bounding box named Benjamin Nitze? Please answer yes or no. No
|
265 |
-
tt0114388_shot_0162_img_0.jpg Is the actor inside the red bounding box called Emma Thompson? Please answer yes or no. Yes
|
266 |
-
tt0114388_shot_0162_img_0.jpg Is the actor inside the red bounding box called Francis P. Hughes? Please answer yes or no. No
|
267 |
-
tt0114388_shot_1207_img_1.jpg Is the person inside the red bounding box called Hugh Grant? Please answer yes or no. Yes
|
268 |
-
tt0114388_shot_1207_img_1.jpg Is the person inside the red bounding box called Zach Hopkins? Please answer yes or no. No
|
269 |
-
tt0115798_shot_0844_img_1.jpg Is the person inside the red bounding box named Jim Carrey? Please answer yes or no. Yes
|
270 |
-
tt0115798_shot_0844_img_1.jpg Is the person inside the red bounding box named Renee Herlocker? Please answer yes or no. No
|
271 |
-
tt0116367_shot_0755_img_0.jpg Is the actor inside the red bounding box named George Clooney? Please answer yes or no. Yes
|
272 |
-
tt0116367_shot_0755_img_0.jpg Is the actor inside the red bounding box named Ben Crowley? Please answer yes or no. No
|
273 |
-
tt0116629_shot_1570_img_2.jpg Is the person inside the red bounding box called Will Smith? Please answer yes or no. Yes
|
274 |
-
tt0116629_shot_1570_img_2.jpg Is the person inside the red bounding box called E. Katherine Kerr? Please answer yes or no. No
|
275 |
-
tt0116695_shot_0343_img_0.jpg Is the person inside the red bounding box named Tom Cruise? Please answer yes or no. Yes
|
276 |
-
tt0116695_shot_0343_img_0.jpg Is the person inside the red bounding box named Billy Dee? Please answer yes or no. No
|
277 |
-
tt0117060_shot_0412_img_0.jpg Is the actor inside the red bounding box called Tom Cruise? Please answer yes or no. Yes
|
278 |
-
tt0117060_shot_0412_img_0.jpg Is the actor inside the red bounding box called Carrie Lazar? Please answer yes or no. No
|
279 |
-
tt0117060_shot_1401_img_0.jpg Is the actor inside the red bounding box called Jean Reno? Please answer yes or no. Yes
|
280 |
-
tt0117060_shot_1401_img_0.jpg Is the actor inside the red bounding box called Jill Teed? Please answer yes or no. No
|
281 |
-
tt0117381_shot_0798_img_1.jpg Is the person inside the red bounding box called Edward Norton? Please answer yes or no. Yes
|
282 |
-
tt0117381_shot_0798_img_1.jpg Is the person inside the red bounding box called Michael Tezla? Please answer yes or no. No
|
283 |
-
tt0117500_shot_2467_img_0.jpg Is the actor inside the red bounding box called Ed Harris? Please answer yes or no. Yes
|
284 |
-
tt0117500_shot_2467_img_0.jpg Is the actor inside the red bounding box called Paul J.Q. Lee? Please answer yes or no. No
|
285 |
-
tt0117509_shot_0041_img_0.jpg Is the actor inside the red bounding box named Paul Rudd? Please answer yes or no. Yes
|
286 |
-
tt0117509_shot_0041_img_0.jpg Is the actor inside the red bounding box named Max Martini? Please answer yes or no. No
|
287 |
-
tt0117571_shot_0475_img_0.jpg Is the person inside the red bounding box named Neve Campbell? Please answer yes or no. Yes
|
288 |
-
tt0117571_shot_0475_img_0.jpg Is the person inside the red bounding box named Frank Hoyt Taylor? Please answer yes or no. No
|
289 |
-
tt0117731_shot_0300_img_0.jpg Is the actor inside the red bounding box called Patrick Stewart? Please answer yes or no. Yes
|
290 |
-
tt0117731_shot_0300_img_0.jpg Is the actor inside the red bounding box called Debra Montague? Please answer yes or no. No
|
291 |
-
tt0117731_shot_1067_img_0.jpg Is the actor inside the red bounding box called Patrick Stewart? Please answer yes or no. Yes
|
292 |
-
tt0117731_shot_1067_img_0.jpg Is the actor inside the red bounding box called Jenny Wilson? Please answer yes or no. No
|
293 |
-
tt0118548_shot_1296_img_0.jpg Is the actor inside the red bounding box called Clint Eastwood? Please answer yes or no. Yes
|
294 |
-
tt0118548_shot_1296_img_0.jpg Is the actor inside the red bounding box called Kate Winslet? Please answer yes or no. No
|
295 |
-
tt0118571_shot_0627_img_0.jpg Is the actor inside the red bounding box called Glenn Close? Please answer yes or no. Yes
|
296 |
-
tt0118571_shot_0627_img_0.jpg Is the actor inside the red bounding box called Arlene Farber? Please answer yes or no. No
|
297 |
-
tt0118636_shot_0007_img_1.jpg Is the person inside the red bounding box called Brad Renfro? Please answer yes or no. Yes
|
298 |
-
tt0118636_shot_0007_img_1.jpg Is the person inside the red bounding box called Sandra Park? Please answer yes or no. No
|
299 |
-
tt0118636_shot_0344_img_0.jpg Is the actor inside the red bounding box called Brad Renfro? Please answer yes or no. Yes
|
300 |
-
tt0118636_shot_0344_img_0.jpg Is the actor inside the red bounding box called Karen Strassman? Please answer yes or no. No
|
301 |
-
tt0118655_shot_0279_img_0.jpg Is the person inside the red bounding box called Robert Wagner? Please answer yes or no. Yes
|
302 |
-
tt0118655_shot_0279_img_0.jpg Is the person inside the red bounding box called Arthur Birnbaum? Please answer yes or no. No
|
303 |
-
tt0118655_shot_1152_img_2.jpg Is the actor inside the red bounding box called Seth Green? Please answer yes or no. Yes
|
304 |
-
tt0118655_shot_1152_img_2.jpg Is the actor inside the red bounding box called Sue Doucette? Please answer yes or no. No
|
305 |
-
tt0118689_shot_0706_img_0.jpg Is the actor inside the red bounding box called Rowan Atkinson? Please answer yes or no. Yes
|
306 |
-
tt0118689_shot_0706_img_0.jpg Is the actor inside the red bounding box called Hugo Perez? Please answer yes or no. No
|
307 |
-
tt0118689_shot_0969_img_2.jpg Is the actor inside the red bounding box called Rowan Atkinson? Please answer yes or no. Yes
|
308 |
-
tt0118689_shot_0969_img_2.jpg Is the actor inside the red bounding box called Jack Shields? Please answer yes or no. No
|
309 |
-
tt0118715_shot_0079_img_0.jpg Is the actor inside the red bounding box called Jeff Bridges? Please answer yes or no. Yes
|
310 |
-
tt0118715_shot_0079_img_0.jpg Is the actor inside the red bounding box called Scott Adkins? Please answer yes or no. No
|
311 |
-
tt0118749_shot_0795_img_0.jpg Is the person inside the red bounding box called John C. Reilly? Please answer yes or no. Yes
|
312 |
-
tt0118749_shot_0795_img_0.jpg Is the person inside the red bounding box called Chris Lowell? Please answer yes or no. No
|
313 |
-
tt0118883_shot_0691_img_1.jpg Is the actor inside the red bounding box called Julia Roberts? Please answer yes or no. Yes
|
314 |
-
tt0118883_shot_0691_img_1.jpg Is the actor inside the red bounding box called Roger Bart? Please answer yes or no. No
|
315 |
-
tt0118971_shot_0679_img_0.jpg Is the actor inside the red bounding box called Charlize Theron? Please answer yes or no. Yes
|
316 |
-
tt0118971_shot_0679_img_0.jpg Is the actor inside the red bounding box called Young-min Kim? Please answer yes or no. No
|
317 |
-
tt0119008_shot_0979_img_0.jpg Is the actor inside the red bounding box named Al Pacino? Please answer yes or no. Yes
|
318 |
-
tt0119008_shot_0979_img_0.jpg Is the actor inside the red bounding box named Neil Tweddle? Please answer yes or no. No
|
319 |
-
tt0119094_shot_0446_img_2.jpg Is the actor inside the red bounding box called Nicolas Cage? Please answer yes or no. Yes
|
320 |
-
tt0119094_shot_0446_img_2.jpg Is the actor inside the red bounding box called Juan Gabriel Pareja? Please answer yes or no. No
|
321 |
-
tt0119116_shot_0721_img_0.jpg Is the actor inside the red bounding box called Bruce Willis? Please answer yes or no. Yes
|
322 |
-
tt0119116_shot_0721_img_0.jpg Is the actor inside the red bounding box called Troye Sivan? Please answer yes or no. No
|
323 |
-
tt0119174_shot_0439_img_0.jpg Is the actor inside the red bounding box named Michael Douglas? Please answer yes or no. Yes
|
324 |
-
tt0119174_shot_0439_img_0.jpg Is the actor inside the red bounding box named Carola McGuinness? Please answer yes or no. No
|
325 |
-
tt0119314_shot_0572_img_0.jpg Is the actor inside the red bounding box called Scarlett Johansson? Please answer yes or no. Yes
|
326 |
-
tt0119314_shot_0572_img_0.jpg Is the actor inside the red bounding box called Daisy Beaumont? Please answer yes or no. No
|
327 |
-
tt0119528_shot_0171_img_0.jpg Is the person inside the red bounding box called Jim Carrey? Please answer yes or no. Yes
|
328 |
-
tt0119528_shot_0171_img_0.jpg Is the person inside the red bounding box called Eliot Paton? Please answer yes or no. No
|
329 |
-
tt0119528_shot_0761_img_1.jpg Is the actor inside the red bounding box named Jim Carrey? Please answer yes or no. Yes
|
330 |
-
tt0119528_shot_0761_img_1.jpg Is the actor inside the red bounding box named Jari Kinnunen? Please answer yes or no. No
|
331 |
-
tt0119643_shot_0330_img_0.jpg Is the actor inside the red bounding box named Brad Pitt? Please answer yes or no. Yes
|
332 |
-
tt0119643_shot_0330_img_0.jpg Is the actor inside the red bounding box named Anthony Hopkins? Please answer yes or no. No
|
333 |
-
tt0119738_shot_0201_img_0.jpg Is the person inside the red bounding box named Christopher Masterson? Please answer yes or no. Yes
|
334 |
-
tt0119738_shot_0201_img_0.jpg Is the person inside the red bounding box named Edwin Craig? Please answer yes or no. No
|
335 |
-
tt0119822_shot_0878_img_0.jpg Is the person inside the red bounding box named Greg Kinnear? Please answer yes or no. Yes
|
336 |
-
tt0119822_shot_0878_img_0.jpg Is the person inside the red bounding box named Aleksandr Dubina? Please answer yes or no. No
|
337 |
-
tt0120338_shot_0444_img_2.jpg Is the actor inside the red bounding box named Kate Winslet? Please answer yes or no. Yes
|
338 |
-
tt0120338_shot_0444_img_2.jpg Is the actor inside the red bounding box named Donald Gibb? Please answer yes or no. No
|
339 |
-
tt0120338_shot_1130_img_2.jpg Is the person inside the red bounding box called Leonardo DiCaprio? Please answer yes or no. Yes
|
340 |
-
tt0120338_shot_1130_img_2.jpg Is the person inside the red bounding box called Anne Betancourt? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/code_reasoning.txt
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
0001.png The image shows a python code. Is the output of the code 'Hello'? Please answer yes or no. Yes
|
2 |
-
0001.png The image shows a python code. Is the output of the code 'World'? Please answer yes or no. No
|
3 |
-
0002.png The image shows a python code. Is the output of the code 'a cat'? Please answer yes or no. Yes
|
4 |
-
0002.png The image shows a python code. Is the output of the code 'a dog'? Please answer yes or no. No
|
5 |
-
0003.png The image shows a python code. Is the output of the code '12'? Please answer yes or no. Yes
|
6 |
-
0003.png The image shows a python code. Is the output of the code '5'? Please answer yes or no. No
|
7 |
-
0004.png The image shows a python code. Is the output of the code '3'? Please answer yes or no. Yes
|
8 |
-
0004.png The image shows a python code. Is the output of the code '2'? Please answer yes or no. No
|
9 |
-
0005.png The image shows a python code. Is the output of the code '12'? Please answer yes or no. Yes
|
10 |
-
0005.png The image shows a python code. Is the output of the code '5'? Please answer yes or no. No
|
11 |
-
0006.png The image shows a python code. Is the output of the code '0'? Please answer yes or no. Yes
|
12 |
-
0006.png The image shows a python code. Is the output of the code '1'? Please answer yes or no. No
|
13 |
-
0007.png Is a c++ code shown in the picture? Please answer yes or no. Yes
|
14 |
-
0007.png Is a python code shown in the picture? Please answer yes or no. No
|
15 |
-
0008.png The image shows a python code. Is the output of the code '1234'? Please answer yes or no. Yes
|
16 |
-
0008.png The image shows a python code. Is the output of the code '12345'? Please answer yes or no. No
|
17 |
-
0009.png The image shows a python code. Is the output of the code '36'? Please answer yes or no. Yes
|
18 |
-
0009.png The image shows a python code. Is the output of the code '6'? Please answer yes or no. No
|
19 |
-
0010.png The image shows a python code. Is the output of the code '1'? Please answer yes or no. Yes
|
20 |
-
0010.png The image shows a python code. Is the output of the code '5'? Please answer yes or no. No
|
21 |
-
0011.png The image shows a python code. Is the output of the code '0'? Please answer yes or no. Yes
|
22 |
-
0011.png The image shows a python code. Is the output of the code '1'? Please answer yes or no. No
|
23 |
-
0012.png The image shows a python code. Is the output of the code 'working hard'? Please answer yes or no. Yes
|
24 |
-
0012.png The image shows a python code. Is the output of the code 'playing hard'? Please answer yes or no. No
|
25 |
-
0013.png The image shows a python code. Is the output of the code 'a cat'? Please answer yes or no. Yes
|
26 |
-
0013.png The image shows a python code. Is the output of the code 'a dog'? Please answer yes or no. No
|
27 |
-
0014.png The image shows a python code. Is the output of the code '7'? Please answer yes or no. Yes
|
28 |
-
0014.png The image shows a python code. Is the output of the code '1'? Please answer yes or no. No
|
29 |
-
0015.png The image shows a python code. Is the output of the code '11'? Please answer yes or no. Yes
|
30 |
-
0015.png The image shows a python code. Is the output of the code '9'? Please answer yes or no. No
|
31 |
-
0016.png The image shows a python code. Is the output of the code 'x is smaller than 10'? Please answer yes or no. Yes
|
32 |
-
0016.png The image shows a python code. Is the output of the code 'x is larger than 10'? Please answer yes or no. No
|
33 |
-
0017.png The image shows a python code. Will the number 3 appear in the output of the code? Please answer yes or no. Yes
|
34 |
-
0017.png The image shows a python code. Will the number 6 appear in the output of the code? Please answer yes or no. No
|
35 |
-
0018.png The image shows a python code. Is the output of the code '11'? Please answer yes or no. Yes
|
36 |
-
0018.png The image shows a python code. Is the output of the code '12'? Please answer yes or no. No
|
37 |
-
0019.png The image shows a python code. Is the output of the code 'the list has more than 2 numbers'? Please answer yes or no. Yes
|
38 |
-
0019.png The image shows a python code. Is the output of the code 'the list has less than 2 numbers'? Please answer yes or no. No
|
39 |
-
0020.png Is a python code shown in the picture? Please answer yes or no. Yes
|
40 |
-
0020.png Is a c++ code shown in the picture? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/color.txt
DELETED
@@ -1,60 +0,0 @@
|
|
1 |
-
000000006723.jpg Is there a red brick building in the image? Please answer yes or no. Yes
|
2 |
-
000000006723.jpg Is there a yellow brick building in the image? Please answer yes or no. No
|
3 |
-
000000008277.jpg Is there a white plate in the image? Please answer yes or no. Yes
|
4 |
-
000000008277.jpg Is there a yellow plate in the image? Please answer yes or no. No
|
5 |
-
000000012120.jpg Is there a blue court in the image? Please answer yes or no. Yes
|
6 |
-
000000012120.jpg Is there a purple court in the image? Please answer yes or no. No
|
7 |
-
000000014831.jpg Is there a brown and white animal in the image? Please answer yes or no. Yes
|
8 |
-
000000014831.jpg Is there a green and red animal in the image? Please answer yes or no. No
|
9 |
-
000000028993.jpg Are there yellow poles in the image? Please answer yes or no. Yes
|
10 |
-
000000028993.jpg Are there blue poles in the image? Please answer yes or no. No
|
11 |
-
000000029393.jpg Is there a brown dog in the image? Please answer yes or no. Yes
|
12 |
-
000000029393.jpg Is there a black dog in the image? Please answer yes or no. No
|
13 |
-
000000035770.jpg Is there a black and white toilet in the image? Please answer yes or no. Yes
|
14 |
-
000000035770.jpg Is there a red and white toilet in the image? Please answer yes or no. No
|
15 |
-
000000038118.jpg Is there a red coat in the image? Please answer yes or no. Yes
|
16 |
-
000000038118.jpg Is there a yellow coat in the image? Please answer yes or no. No
|
17 |
-
000000047112.jpg Is there a white plate in the image? Please answer yes or no. Yes
|
18 |
-
000000047112.jpg Is there a yellow plate in the image? Please answer yes or no. No
|
19 |
-
000000047121.jpg Is there a black cat in the image? Please answer yes or no. Yes
|
20 |
-
000000047121.jpg Is there a brown cat in the image? Please answer yes or no. No
|
21 |
-
000000053529.jpg Is there a green hat in the image? Please answer yes or no. Yes
|
22 |
-
000000053529.jpg Is there a red hat in the image? Please answer yes or no. No
|
23 |
-
000000053994.jpg Is there a gray wall in the image? Please answer yes or no. Yes
|
24 |
-
000000053994.jpg Is there a red wall in the image? Please answer yes or no. No
|
25 |
-
000000055072.jpg Is there a brown giraffe in the image? Please answer yes or no. Yes
|
26 |
-
000000055072.jpg Is there a black giraffe in the image? Please answer yes or no. No
|
27 |
-
000000057597.jpg Are there any red shoes in the image? Please answer yes or no. Yes
|
28 |
-
000000057597.jpg Are there any yellow shoes in the image? Please answer yes or no. No
|
29 |
-
000000061658.jpg Are there a white dish in the image? Please answer yes or no. Yes
|
30 |
-
000000061658.jpg Are there a green dish in the image? Please answer yes or no. No
|
31 |
-
000000338560.jpg Is there a blue and yellow fire hydrant in the image? Please answer yes or no. Yes
|
32 |
-
000000338560.jpg Is there a blue and orange fire hydrant in the image? Please answer yes or no. No
|
33 |
-
000000370208.jpg Is there a red bicycle with white handlebars in the image? Please answer yes or no. Yes
|
34 |
-
000000370208.jpg Is there a red bicycle with black handlebars in the image? Please answer yes or no. No
|
35 |
-
000000377723.jpg Is there a blue bus in the image? Please answer yes or no. Yes
|
36 |
-
000000377723.jpg Is there a orange bus in the image? Please answer yes or no. No
|
37 |
-
000000405205.jpg Is there a white bus in the image? Please answer yes or no. Yes
|
38 |
-
000000405205.jpg Is there a red bus in the image? Please answer yes or no. No
|
39 |
-
000000410612.jpg Is there a red boat in the image? Please answer yes or no. Yes
|
40 |
-
000000410612.jpg Is there a gray boat in the image? Please answer yes or no. No
|
41 |
-
000000427034.jpg Is there a brown and black dog in the image? Please answer yes or no. Yes
|
42 |
-
000000427034.jpg Is there a brown and white dog in the image? Please answer yes or no. No
|
43 |
-
000000442456.jpg Is there a man wearing a red shirt in the image? Please answer yes or no. Yes
|
44 |
-
000000442456.jpg Is there a man wearing a white shirt in the image? Please answer yes or no. No
|
45 |
-
000000492362.jpg Is there a skateboard with red wheels in the image? Please answer yes or no. Yes
|
46 |
-
000000492362.jpg Is there a skateboard with black wheels in the image? Please answer yes or no. No
|
47 |
-
000000492992.jpg Is there a white bird in the image? Please answer yes or no. Yes
|
48 |
-
000000492992.jpg Is there a yellow bird in the image? Please answer yes or no. No
|
49 |
-
000000512929.jpg Are there any green beans in the image? Please answer yes or no. Yes
|
50 |
-
000000512929.jpg Are there any orange beans in the image? Please answer yes or no. No
|
51 |
-
000000530457.jpg Are there any red flowers in the image? Please answer yes or no. Yes
|
52 |
-
000000530457.jpg Are there any green flowers in the image? Please answer yes or no. No
|
53 |
-
000000532761.jpg Is there a living room painted yellow in the image? Please answer yes or no. Yes
|
54 |
-
000000532761.jpg Is there a living room painted black in the image? Please answer yes or no. No
|
55 |
-
000000534041.jpg Is there a purple bottle in the image? Please answer yes or no. Yes
|
56 |
-
000000534041.jpg Is there a white bottle in the image? Please answer yes or no. No
|
57 |
-
000000563758.jpg Is there a red scarf in the image? Please answer yes or no. Yes
|
58 |
-
000000563758.jpg Is there a brown scarf in the image? Please answer yes or no. No
|
59 |
-
000000564280.jpg Is there a red couch in the image? Please answer yes or no. Yes
|
60 |
-
000000564280.jpg Is there a black couch in the image? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/commonsense_reasoning.txt
DELETED
@@ -1,140 +0,0 @@
|
|
1 |
-
0001.png Here are the order details for my taxi ride. Should I actually pay $29.42? Please answer yes or no. Yes
|
2 |
-
0001.png Here are the order details for my taxi ride. Should I actually pay $32.42? Please answer yes or no. No
|
3 |
-
0002.png Should I stop when I'm about to cross the street and see the sign in the picture? Please answer yes or no. Yes
|
4 |
-
0002.png When I see the sign in the picture, can I cross the street? Please answer yes or no. No
|
5 |
-
0003.png May I ask if in the game of finger-guessing game, did the right side of the picture win? Please answer yes or no. Yes
|
6 |
-
0003.png May I ask if in the game of finger-guessing game, did the left side of the picture win? Please answer yes or no. No
|
7 |
-
0004.png Does the fruit in the picture look stale? Please answer yes or no. Yes
|
8 |
-
0004.png Does the fruit in the picture look very fresh? Please answer yes or no. No
|
9 |
-
0005.png The office's normal closing time is 5 p.m. Now is afternoon. Should I continue to work at the time shown in the picture? Please answer yes or no. Yes
|
10 |
-
0005.png The office's normal closing time is 5 p.m. Now is afternoon. Could I leave work at the time shown in the picture? Please answer yes or no. No
|
11 |
-
0006.png I recently want to go on vacation to relax and go to a place full of fresh air. Is the venue in the picture appropriate? Please answer yes or no. Yes
|
12 |
-
0006.png I want to go where there are a lot of people. Is the venue in the picture appropriate? Please answer yes or no. No
|
13 |
-
0007.png I want to clean the house and I want to choose a tool. Is the tool in the picture an appropriate choice? Please answer yes or no. Yes
|
14 |
-
0007.png I want to transport something and I want to choose a tool to help me. Is the tool in the picture an appropriate choice? Please answer yes or no. No
|
15 |
-
0008.png Can I smoke where the picture is? Please answer yes or no. Yes
|
16 |
-
0008.png Is smoking prohibited in the location of the picture? Please answer yes or no. No
|
17 |
-
0009.png Will green be obtained by mixing the above two colors? Please answer yes or no. Yes
|
18 |
-
0009.png Will red be obtained by mixing the above two colors? Please answer yes or no. No
|
19 |
-
0010.png I am going to exercise and I want to choose a venue. Is the venue in the picture a good choice? Please answer yes or no. Yes
|
20 |
-
0010.png I am going to study and I want to choose a venue. Is the venue in the picture a good choice? Please answer yes or no. No
|
21 |
-
0011.png If I am allergic to durian, can I finish the fruit in the picture? Please answer yes or no. Yes
|
22 |
-
0011.png If I am allergic to banana, can I finish the fruit in the picture? Please answer yes or no. No
|
23 |
-
0012.png I am going to study and I want to choose a venue. Is the venue in the picture a good choice? Please answer yes or no. Yes
|
24 |
-
0012.png I am going to exercise and I want to choose a venue. Is the venue in the picture a good choice? Please answer yes or no. No
|
25 |
-
0013.png I am going to a formal dinner party. Is the shoe in the picture an appropriate choice? Please answer yes or no. Yes
|
26 |
-
0013.png I am going to play basketball. Is the shoe in the picture an appropriate choice? Please answer yes or no. No
|
27 |
-
0014.png In this line chart, the vertical axis is height and the horizontal axis is age. Does Maria's height exceed Jane's height in the end? Please answer yes or no. Yes
|
28 |
-
0014.png In this line chart, the vertical axis is height and the horizontal axis is age. Does Jane's height exceed Kangkang's height in the end? Please answer yes or no. No
|
29 |
-
0015.png Is the ball usually played with hands? Please answer yes or no. Yes
|
30 |
-
0015.png Is the ball usually played with feet? Please answer yes or no. No
|
31 |
-
0016.png Is the place in the picture a good place to enjoy the cool in a sunny day? Please answer yes or no. Yes
|
32 |
-
0016.png Is the place in the picture a good shelter from the rain when it thunders outside? Please answer yes or no. No
|
33 |
-
0017.png Are the vehicles in the pictures usually environmentally friendly? Please answer yes or no. Yes
|
34 |
-
0017.png Does the vehicle in the picture usually run faster than the car? Please answer yes or no. No
|
35 |
-
0018.png This is a picture of some kind of animal. Does it eat leaves? Please answer yes or no. Yes
|
36 |
-
0018.png This is a picture of some kind of animal. Does it eat meat? Please answer yes or no. No
|
37 |
-
0019.png Is the water flow in the picture from the top to the bottom? Please answer yes or no. Yes
|
38 |
-
0019.png Is the water flow in the picture from the bottom to the top? Please answer yes or no. No
|
39 |
-
0020.png Can the item in the picture be used to measure length? Please answer yes or no. Yes
|
40 |
-
0020.png Can the item in the picture be used to measure angles? Please answer yes or no. No
|
41 |
-
0021.png This is a toilet guide sign. I am a man. Should I go to the toilet on the left? Please answer yes or no. Yes
|
42 |
-
0021.png This is a toilet guide sign. I am a man. Should I go to the toilet on the right? Please answer yes or no. No
|
43 |
-
0022.png Does the animal in the picture usually catch mice? Please answer yes or no. Yes
|
44 |
-
0022.png Is the animal in the picture usually used in search and rescue? Please answer yes or no. No
|
45 |
-
0023.png If you want to keep your fruit fresh in summer, should you put it in the appliance in the picture? Please answer yes or no. Yes
|
46 |
-
0023.png Is the appliance in the picture more suitable for winter than summer? Please answer yes or no. No
|
47 |
-
0024.png I want to go skating. Is the shoe in the picture usually appropriate? Please answer yes or no. Yes
|
48 |
-
0024.png I want to go roller skating. Is the shoe in the picture usually appropriate? Please answer yes or no. No
|
49 |
-
0025.png I feel very thirsty in the desert now. Can the thing in the picture help me? Please answer yes or no. Yes
|
50 |
-
0025.png I don't like clear cups. Is the cup in the picture my type? Please answer yes or no. No
|
51 |
-
0026.png I want to go for a run and I want to choose a pair of shoes. Is the shoe in the picture an appropriate choice? Please answer yes or no. Yes
|
52 |
-
0026.png I want to practice ballet and I want to choose a pair of shoes. Is the shoe in the picture an appropriate choice? Please answer yes or no. No
|
53 |
-
0027.png Are the pants in the picture usually suitable for casual wear? Please answer yes or no. Yes
|
54 |
-
0027.png Are the pants in the picture usually suitable for playing basketball? Please answer yes or no. No
|
55 |
-
0028.png This is a picture from a real scene. Is there only one real cat in this picture? Please answer yes or no. Yes
|
56 |
-
0028.png This is a picture from a real scene. Is there only two real cats in this picture? Please answer yes or no. No
|
57 |
-
0029.png The three cats in the picture, the one without a beard, is the middle one? Please answer yes or no. Yes
|
58 |
-
0029.png The three cats in the picture, the one without a beard, is the right one? Please answer yes or no. No
|
59 |
-
0030.png I'm going to 501. Do I need to turn left at the intersection? Please answer yes or no. Yes
|
60 |
-
0030.png I'm going to 502. Do I need to turn left at the intersection? Please answer yes or no. No
|
61 |
-
0031.png Is the drink in the picture usually suitable for a party? Please answer yes or no. Yes
|
62 |
-
0031.png Is the drink in the picture usually suitable for drinking together with cephalosporin? Please answer yes or no. No
|
63 |
-
0032.png Here is a picture of the cake I cut. Did I cut it at least twice? Please answer yes or no. Yes
|
64 |
-
0032.png Here is a picture of the cake I cut. Did I cut it at least once? Please answer yes or no. No
|
65 |
-
0033.png This is a picture from a real scene. Is there only one real apple in this picture? Please answer yes or no. Yes
|
66 |
-
0033.png This is a picture from a real scene. Is there only two real apples in this picture? Please answer yes or no. No
|
67 |
-
0034.png Here is a pie chart counting the favorite fruits of all employees in our company. Is the durian the most popular fruit? Please answer yes or no. Yes
|
68 |
-
0034.png Here is a pie chart counting the favorite fruits of all employees in our company. Is the mango the most popular fruit? Please answer yes or no. No
|
69 |
-
0035.png This is the sales chart of this month. Is Tina the runner-up in sales this month? Please answer yes or no. Yes
|
70 |
-
0035.png This is the sales chart of this month. Is John the runner-up in sales this month? Please answer yes or no. No
|
71 |
-
0036.png Is it a good time to walk through the road in the picture? Please answer yes or no. Yes
|
72 |
-
0036.png Is it a good time to drive a car through the road in the picture? Please answer yes or no. No
|
73 |
-
0037.png Here is a photo of the sun's position at a certain time. Could it be dusk now? Please answer yes or no. Yes
|
74 |
-
0037.png Here is a photo of the sun's position at a certain time. Could it be noon now? Please answer yes or no. No
|
75 |
-
0038.png All apples are shown in the picture. If I eat an apple every day, can I eat it for four days? Please answer yes or no. Yes
|
76 |
-
0038.png All apples are shown in the picture. If I eat an apple every day, can I eat it for three days? Please answer yes or no. No
|
77 |
-
0039.png This line chart is used to count the sales of two types of burgers. Are chicken burgers more popular? Please answer yes or no. Yes
|
78 |
-
0039.png This line chart is used to count the sales of two types of burgers. Are beef burgers more popular? Please answer yes or no. No
|
79 |
-
0040.png I want to supplement protein. Is it appropriate to eat the food in the picture? Please answer yes or no. Yes
|
80 |
-
0040.png I don't like to eat any food related to chicken. Is the food in the picture my type? Please answer yes or no. No
|
81 |
-
0041.png Is the fruit in the picture usually sweet? Please answer yes or no. Yes
|
82 |
-
0041.png Is the fruit in the picture usually spicy? Please answer yes or no. No
|
83 |
-
0042.png Are there usually cars in the area shown in the picture? Please answer yes or no. Yes
|
84 |
-
0042.png Is it appropriate to cross the road directly from the place shown in the picture? Please answer yes or no. No
|
85 |
-
0043.png Is the animal in the picture usually not seen in winter? Please answer yes or no. Yes
|
86 |
-
0043.png Is the animal in the picture usually seen in winter? Please answer yes or no. No
|
87 |
-
0044.png This is a flowchart of a program. I enter 3 and 6. Is the output 'No'? Please answer yes or no. Yes
|
88 |
-
0044.png This is a flowchart of a program. I enter 3 and 6. Is the output 'Yes'? Please answer yes or no. No
|
89 |
-
0045.png There is a sign at the intersection, can I turn left? Please answer yes or no. Yes
|
90 |
-
0045.png There is a sign at the intersection, can I turn right? Please answer yes or no. No
|
91 |
-
0046.png Vitamin C is very helpful for human health. Does the food on in the picture usually contain Vitamin C? Please answer yes or no. Yes
|
92 |
-
0046.png Is the food in the picture commonly used to build muscle? Please answer yes or no. No
|
93 |
-
0047.png All apples are shown in the picture. My brother and I divide the apples equally. May I have one apple? Please answer yes or no. Yes
|
94 |
-
0047.png All apples are shown in the picture. My brother and I divide the apples equally. May I have two apples? Please answer yes or no. No
|
95 |
-
0048.png Here is a picture of eating fruit. Am I eating a strawberry? Please answer yes or no. Yes
|
96 |
-
0048.png Here is a picture of eating fruit. Am I eating a cherry tomato? Please answer yes or no. No
|
97 |
-
0049.png Does the vehicle in the picture usually have its Windows closed during fast driving? Please answer yes or no. Yes
|
98 |
-
0049.png Does the vehicle in the picture usually have its Windows opened during fast driving? Please answer yes or no. No
|
99 |
-
0050.png Do people commonly use the item in the picture for makeup in their daily lives? Please answer yes or no. Yes
|
100 |
-
0050.png Do people commonly use the item in the picture to write in their daily lives? Please answer yes or no. No
|
101 |
-
0051.png This is a flowchart of a program. When the input is 5, is the output 6? Please answer yes or no. Yes
|
102 |
-
0051.png This is a flowchart of a program. When the input is 6, is the output 5? Please answer yes or no. No
|
103 |
-
0052.png I want to lose weight. Is the food in the picture an appropriate choice? Please answer yes or no. Yes
|
104 |
-
0052.png I want to gain weight. Is the food in the picture an appropriate choice? Please answer yes or no. No
|
105 |
-
0053.png Is the car in the picture going to make a right turn after going through a straight road section? Please answer yes or no. Yes
|
106 |
-
0053.png Is the car in the picture going to make a left turn after going through a straight road section? Please answer yes or no. No
|
107 |
-
0054.png May I ask if the plants in the picture can survive in the water? Please answer yes or no. Yes
|
108 |
-
0054.png May I ask if the plants in the picture can survive in the soil? Please answer yes or no. No
|
109 |
-
0055.png The man in the picture is eating. Does he eat noodles? Please answer yes or no. Yes
|
110 |
-
0055.png The man in the picture is eating. Does he eat rice? Please answer yes or no. No
|
111 |
-
0056.png Can the item in the picture output water? Please answer yes or no. Yes
|
112 |
-
0056.png Can the item in picture be used for blowing air? Please answer yes or no. No
|
113 |
-
0057.png Does the vehicle in the picture usually run faster than a horse? Please answer yes or no. Yes
|
114 |
-
0057.png Does the vehicle in the picture usually fly? Please answer yes or no. No
|
115 |
-
0058.png Can't I smoke here? Please answer yes or no. Yes
|
116 |
-
0058.png May I smoke here? Please answer yes or no. No
|
117 |
-
0059.png This pie chart is the age distribution of our company. Is the proportion of people aged 30-50 more than 40%? Please answer yes or no. Yes
|
118 |
-
0059.png This pie chart is the age distribution of our company. Is the proportion of people aged 40-50 more than 30%? Please answer yes or no. No
|
119 |
-
0060.png This is the histogram of fruit sales today. Do more men buy watermelons than women buy bananas? Please answer yes or no. Yes
|
120 |
-
0060.png This is the histogram of fruit sales today. Do more men buy peach than women buy apple? Please answer yes or no. No
|
121 |
-
0061.png Is the tool in the picture common in tall buildings? Please answer yes or no. Yes
|
122 |
-
0061.png In case of fire, is it appropriate to choose the tool in the picture to go downstairs? Please answer yes or no. No
|
123 |
-
0062.png It's snowing outside the window now. I want to go out. Is it appropriate to wear the cloth in the picture? Please answer yes or no. Yes
|
124 |
-
0062.png It's very hot outside. I want to go out. Is it appropriate to wear the cloth in the picture? Please answer yes or no. No
|
125 |
-
0063.png Is the animal in the picture suitable as a pet? Please answer yes or no. Yes
|
126 |
-
0063.png Is the animal in the pictures usually stronger than adult tigers? Please answer yes or no. No
|
127 |
-
0064.png I want to play basketball. Is the venue in the picture a good choice? Please answer yes or no. Yes
|
128 |
-
0064.png I want to play football. Is the venue in the picture a good choice? Please answer yes or no. No
|
129 |
-
0065.png Is it appropriate to wear a down jacket during the season in the picture? Please answer yes or no. Yes
|
130 |
-
0065.png Is it appropriate to only wear short sleeves during the season in the picture? Please answer yes or no. No
|
131 |
-
0066.png I want to carry one thing with me on a rainy day. Is the thing in the image an appropriate choice? Please answer yes or no. Yes
|
132 |
-
0066.png It is raining outside. I am in a house and I don't need to go out. Is this thing in the picture necessary for me to use? Please answer yes or no. No
|
133 |
-
0067.png I feel very hot. Is the tool in the picture suitable for use? Please answer yes or no. Yes
|
134 |
-
0067.png I feel very cold. Is the tool in the picture suitable for use? Please answer yes or no. No
|
135 |
-
0068.png Is it unhealthy to eat the food in the picture too often? Please answer yes or no. Yes
|
136 |
-
0068.png Is the food in the picture usually low in calories? Please answer yes or no. No
|
137 |
-
0069.png Is the phone in the photo connected to a charger? Please answer yes or no. Yes
|
138 |
-
0069.png Is the phone in the photo charging? Please answer yes or no. No
|
139 |
-
0070.png I want to turn the screw. Is the tool in the picture usually appropriate? Please answer yes or no. Yes
|
140 |
-
0070.png Is the tool in the picture usually suitable for smashing walnuts? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/count.txt
DELETED
@@ -1,60 +0,0 @@
|
|
1 |
-
000000006040.jpg Is there a train in the picture? Please answer yes or no. Yes
|
2 |
-
000000006040.jpg Are there a total of two trains in the picture? Please answer yes or no. No
|
3 |
-
000000044279.jpg Is there a total of two people in the image? Please answer yes or no. Yes
|
4 |
-
000000044279.jpg Is there only one people in the image? Please answer yes or no. No
|
5 |
-
000000067213.jpg Is there only one dog in the image? Please answer yes or no. Yes
|
6 |
-
000000067213.jpg Is there two dogs in the image? Please answer yes or no. No
|
7 |
-
000000071226.jpg Is there a total of two dogs in the image? Please answer yes or no. Yes
|
8 |
-
000000071226.jpg Is there only one dogs in the image? Please answer yes or no. No
|
9 |
-
000000097994.jpg Are there three laptops in the picture? Please answer yes or no. Yes
|
10 |
-
000000097994.jpg Are there four laptops in the picture? Please answer yes or no. No
|
11 |
-
000000195918.jpg Is there a total of two display devices in the image? Please answer yes or no. Yes
|
12 |
-
000000195918.jpg Is there only one display device in the image? Please answer yes or no. No
|
13 |
-
000000236721.jpg Are there two bananas in the image? Please answer yes or no. Yes
|
14 |
-
000000236721.jpg Are there three bananas in the image? Please answer yes or no. No
|
15 |
-
000000261712.jpg Are there two giraffes in this image? Please answer yes or no. Yes
|
16 |
-
000000261712.jpg Are there three giraffes in this picture? Please answer yes or no. No
|
17 |
-
000000274066.jpg Are there four people appear in this image? Please answer yes or no. Yes
|
18 |
-
000000274066.jpg Are there only three people appear in this image? Please answer yes or no. No
|
19 |
-
000000276434.jpg Is there a total of three cakes in this image? Please answer yes or no. Yes
|
20 |
-
000000276434.jpg Are there only two cakes in this image? Please answer yes or no. No
|
21 |
-
000000289059.jpg Is there a total of two person appear in the image? Please answer yes or no. Yes
|
22 |
-
000000289059.jpg Is there only one person appear in the image? Please answer yes or no. No
|
23 |
-
000000290081.jpg Is there only one bowl in this image? Please answer yes or no. Yes
|
24 |
-
000000290081.jpg Are there two bowls in this image? Please answer yes or no. No
|
25 |
-
000000301867.jpg Are there three people appear in this image? Please answer yes or no. Yes
|
26 |
-
000000301867.jpg Are there only two people appear in this image? Please answer yes or no. No
|
27 |
-
000000335954.jpg Are there two bowls in this image? Please answer yes or no. Yes
|
28 |
-
000000335954.jpg Are there three bowls in this image? Please answer yes or no. No
|
29 |
-
000000357816.jpg Are there four people in this image? Please answer yes or no. Yes
|
30 |
-
000000357816.jpg Are there five people in this image? Please answer yes or no. No
|
31 |
-
000000372819.jpg Are there four dogs appear in this image? Please answer yes or no. Yes
|
32 |
-
000000372819.jpg Are there only three dogs appear in this image? Please answer yes or no. No
|
33 |
-
000000410612.jpg Is there only one ship in the picture? Please answer yes or no. Yes
|
34 |
-
000000410612.jpg Is there a total of two ships in the picture? Please answer yes or no. No
|
35 |
-
000000423944.jpg Is there no person in this picture? Please answer yes or no. Yes
|
36 |
-
000000423944.jpg Are there two people appear in this image? Please answer yes or no. No
|
37 |
-
000000427034.jpg Is there a dog in the picture? Please answer yes or no. Yes
|
38 |
-
000000427034.jpg Are there a total of two dogs in the picture? Please answer yes or no. No
|
39 |
-
000000430286.jpg Are there three remotes in this image? Please answer yes or no. Yes
|
40 |
-
000000430286.jpg Are there only two remotes in this image? Please answer yes or no. No
|
41 |
-
000000432468.jpg Are there three zippers in the picture? Please answer yes or no. Yes
|
42 |
-
000000432468.jpg Is there a zipper in the picture? Please answer yes or no. No
|
43 |
-
000000434479.jpg Are there two pieces of pizza in this image? Please answer yes or no. Yes
|
44 |
-
000000434479.jpg Is there only one piece of pizza in this image? Please answer yes or no. No
|
45 |
-
000000438304.jpg Are there two tennis rackets in the picture? Please answer yes or no. Yes
|
46 |
-
000000438304.jpg Are there only one tennis racket in the picture? Please answer yes or no. No
|
47 |
-
000000450303.jpg Are there six people appear in this image? Please answer yes or no. Yes
|
48 |
-
000000450303.jpg Are there seven people appear in this image? Please answer yes or no. No
|
49 |
-
000000470121.jpg Is there only one bottle in the image? Please answer yes or no. Yes
|
50 |
-
000000470121.jpg Is there two bottles in the image? Please answer yes or no. No
|
51 |
-
000000476215.jpg Are there two horses in this image? Please answer yes or no. Yes
|
52 |
-
000000476215.jpg Is there only one horse in this image? Please answer yes or no. No
|
53 |
-
000000482100.jpg Are there two toilets in the picture? Please answer yes or no. Yes
|
54 |
-
000000482100.jpg Is there only one toilet in the picture? Please answer yes or no. No
|
55 |
-
000000491867.jpg Is there only one necktie in the image? Please answer yes or no. Yes
|
56 |
-
000000491867.jpg Is there three neckties in the image? Please answer yes or no. No
|
57 |
-
000000556000.jpg Are there four people in the image? Please answer yes or no. Yes
|
58 |
-
000000556000.jpg Are there only three people in the image? Please answer yes or no. No
|
59 |
-
000000565045.jpg Are there two bath towels in the picture? Please answer yes or no. Yes
|
60 |
-
000000565045.jpg Is there only one bath towel in the picture? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/existence.txt
DELETED
@@ -1,60 +0,0 @@
|
|
1 |
-
000000006040.jpg Is there a train in this image? Please answer yes or no. Yes
|
2 |
-
000000006040.jpg Is there a bed in this image? Please answer yes or no. No
|
3 |
-
000000006471.jpg Is there a baseball bat in this image? Please answer yes or no. Yes
|
4 |
-
000000006471.jpg Is there a giraffe in this image? Please answer yes or no. No
|
5 |
-
000000007108.jpg Is there a elephant in this image? Please answer yes or no. Yes
|
6 |
-
000000007108.jpg Is there a hair drier in this image? Please answer yes or no. No
|
7 |
-
000000007816.jpg Is there a motorcycle in this image? Please answer yes or no. Yes
|
8 |
-
000000007816.jpg Is there a airplane in this image? Please answer yes or no. No
|
9 |
-
000000007977.jpg Is there a skateboard in this image? Please answer yes or no. Yes
|
10 |
-
000000007977.jpg Is there a spoon in this image? Please answer yes or no. No
|
11 |
-
000000008844.jpg Is there a person in this image? Please answer yes or no. Yes
|
12 |
-
000000008844.jpg Is there a sink in this image? Please answer yes or no. No
|
13 |
-
000000009590.jpg Is there a bottle in this image? Please answer yes or no. Yes
|
14 |
-
000000009590.jpg Is there a scissors in this image? Please answer yes or no. No
|
15 |
-
000000010363.jpg Is there a bottle in this image? Please answer yes or no. Yes
|
16 |
-
000000010363.jpg Is there a apple in this image? Please answer yes or no. No
|
17 |
-
000000011197.jpg Is there a car in this image? Please answer yes or no. Yes
|
18 |
-
000000011197.jpg Is there a fork in this image? Please answer yes or no. No
|
19 |
-
000000015254.jpg Is there a spoon in this image? Please answer yes or no. Yes
|
20 |
-
000000015254.jpg Is there a donut in this image? Please answer yes or no. No
|
21 |
-
000000015517.jpg Is there a bus in this image? Please answer yes or no. Yes
|
22 |
-
000000015517.jpg Is there a cow in this image? Please answer yes or no. No
|
23 |
-
000000015746.jpg Is there a fire hydrant in this image? Please answer yes or no. Yes
|
24 |
-
000000015746.jpg Is there a person in this image? Please answer yes or no. No
|
25 |
-
000000037751.jpg Is there a backpack in this image? Please answer yes or no. Yes
|
26 |
-
000000037751.jpg Is there a microwave in this image? Please answer yes or no. No
|
27 |
-
000000050145.jpg Is there a bicycle in this image? Please answer yes or no. Yes
|
28 |
-
000000050145.jpg Is there a apple in this image? Please answer yes or no. No
|
29 |
-
000000061418.jpg Is there a chair in this image? Please answer yes or no. Yes
|
30 |
-
000000061418.jpg Is there a airplane in this image? Please answer yes or no. No
|
31 |
-
000000417779.jpg Is there a car in this image? Please answer yes or no. Yes
|
32 |
-
000000417779.jpg Is there a kite in this image? Please answer yes or no. No
|
33 |
-
000000424521.jpg Is there a skateboard in this image? Please answer yes or no. Yes
|
34 |
-
000000424521.jpg Is there a banana in this image? Please answer yes or no. No
|
35 |
-
000000438304.jpg Is there a sports ball in this image? Please answer yes or no. Yes
|
36 |
-
000000438304.jpg Is there a horse in this image? Please answer yes or no. No
|
37 |
-
000000494427.jpg Is there a laptop in this image? Please answer yes or no. Yes
|
38 |
-
000000494427.jpg Is there a potted plant in this image? Please answer yes or no. No
|
39 |
-
000000495448.jpg Is there a cake in this image? Please answer yes or no. Yes
|
40 |
-
000000495448.jpg Is there a tie in this image? Please answer yes or no. No
|
41 |
-
000000498463.jpg Is there a refrigerator in this image? Please answer yes or no. Yes
|
42 |
-
000000498463.jpg Is there a donut in this image? Please answer yes or no. No
|
43 |
-
000000519039.jpg Is there a truck in this image? Please answer yes or no. Yes
|
44 |
-
000000519039.jpg Is there a book in this image? Please answer yes or no. No
|
45 |
-
000000523241.jpg Is there a car in this image? Please answer yes or no. Yes
|
46 |
-
000000523241.jpg Is there a cell phone in this image? Please answer yes or no. No
|
47 |
-
000000530162.jpg Is there a umbrella in this image? Please answer yes or no. Yes
|
48 |
-
000000530162.jpg Is there a horse in this image? Please answer yes or no. No
|
49 |
-
000000537812.jpg Is there a chair in this image? Please answer yes or no. Yes
|
50 |
-
000000537812.jpg Is there a baseball bat in this image? Please answer yes or no. No
|
51 |
-
000000541952.jpg Is there a clock in this image? Please answer yes or no. Yes
|
52 |
-
000000541952.jpg Is there a bottle in this image? Please answer yes or no. No
|
53 |
-
000000546626.jpg Is there a bottle in this image? Please answer yes or no. Yes
|
54 |
-
000000546626.jpg Is there a mouse in this image? Please answer yes or no. No
|
55 |
-
000000556000.jpg Is there a chair in this image? Please answer yes or no. Yes
|
56 |
-
000000556000.jpg Is there a dog in this image? Please answer yes or no. No
|
57 |
-
000000557258.jpg Is there a toilet in this image? Please answer yes or no. Yes
|
58 |
-
000000557258.jpg Is there a pizza in this image? Please answer yes or no. No
|
59 |
-
000000572956.jpg Is there a motorcycle in this image? Please answer yes or no. Yes
|
60 |
-
000000572956.jpg Is there a bus in this image? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/landmark.txt
DELETED
@@ -1,400 +0,0 @@
|
|
1 |
-
0006adf999ccc899.jpg Is this a photo of Muktinath? Please answer yes or no. Yes
|
2 |
-
0006adf999ccc899.jpg Is this a photo of Lohikoski Church? Please answer yes or no. No
|
3 |
-
0015309638e5a9b1.jpg Is this a picture of Teufelsmauer (Harz)? Please answer yes or no. Yes
|
4 |
-
0015309638e5a9b1.jpg Is this a picture of Romfo kirke? Please answer yes or no. No
|
5 |
-
001f0bfe8464254a.jpg Is this a picture of Saint Catherine of Alexandria church in Warsaw? Please answer yes or no. Yes
|
6 |
-
001f0bfe8464254a.jpg Is this a picture of Kaap Skil? Please answer yes or no. No
|
7 |
-
0022666a36b80ea5.jpg Is this an image of Hall of Supreme Harmony (Forbidden City)? Please answer yes or no. Yes
|
8 |
-
0022666a36b80ea5.jpg Is this an image of Brickegickel? Please answer yes or no. No
|
9 |
-
0023bd687cbc0a44.jpg Is this a photo of Utrecht Dom Tower? Please answer yes or no. Yes
|
10 |
-
0023bd687cbc0a44.jpg Is this a photo of Great Palace Mosaic Museum? Please answer yes or no. No
|
11 |
-
00261324328490fc.jpg Is this an image of Loch Ossian? Please answer yes or no. Yes
|
12 |
-
00261324328490fc.jpg Is this an image of Tanemakidaishi? Please answer yes or no. No
|
13 |
-
002ae473a76362a6.jpg Is this an image of Gerlache Strait? Please answer yes or no. Yes
|
14 |
-
002ae473a76362a6.jpg Is this an image of Schmiedebruch (Naturschutzgebiet)? Please answer yes or no. No
|
15 |
-
003f8af9477a8eb8.jpg Is this a photo of Le Destroit? Please answer yes or no. Yes
|
16 |
-
003f8af9477a8eb8.jpg Is this a photo of Kharkov Mosque? Please answer yes or no. No
|
17 |
-
004543cec064cd0b.jpg Is this a picture of Wollaton Park? Please answer yes or no. Yes
|
18 |
-
004543cec064cd0b.jpg Is this a picture of St John's Church, Blackpool? Please answer yes or no. No
|
19 |
-
004beea6937b3a8c.jpg Is this a photo of Brussels Park? Please answer yes or no. Yes
|
20 |
-
004beea6937b3a8c.jpg Is this a photo of Forest Hills Cemetery (Boston, Massachusetts)? Please answer yes or no. No
|
21 |
-
005150f80de6f487.jpg Is this a photo of Schloss Burgpreppach? Please answer yes or no. Yes
|
22 |
-
005150f80de6f487.jpg Is this a photo of Pinkas Synagogue? Please answer yes or no. No
|
23 |
-
0053894534d1e259.jpg Is this a picture of Goethe- und Schiller-Denkmal (Weimar)? Please answer yes or no. Yes
|
24 |
-
0053894534d1e259.jpg Is this a picture of Grey River? Please answer yes or no. No
|
25 |
-
0059fc817c5fd5b7.jpg Is this a photo of KLCC Park? Please answer yes or no. Yes
|
26 |
-
0059fc817c5fd5b7.jpg Is this a photo of Neath Castle? Please answer yes or no. No
|
27 |
-
005c68530bb6ed7c.jpg Is this a photo of Balvenie Castle? Please answer yes or no. Yes
|
28 |
-
005c68530bb6ed7c.jpg Is this a photo of Draper Utah Temple? Please answer yes or no. No
|
29 |
-
006e3342b57aa3b4.jpg Is this a photo of Larvs kyrka? Please answer yes or no. Yes
|
30 |
-
006e3342b57aa3b4.jpg Is this a photo of Geitgallien? Please answer yes or no. No
|
31 |
-
0075a4d212539625.jpg Is this a photo of Cardiff Castle? Please answer yes or no. Yes
|
32 |
-
0075a4d212539625.jpg Is this a photo of Boudhanath? Please answer yes or no. No
|
33 |
-
008053e6bb5afa33.jpg Is this a photo of Rochers des Mourres? Please answer yes or no. Yes
|
34 |
-
008053e6bb5afa33.jpg Is this a photo of Schloss Weinfelden? Please answer yes or no. No
|
35 |
-
00c1349a9622390c.jpg Is this a photo of Amar Jawan Jyoti (Tomb of the Unknown Soldier)? Please answer yes or no. Yes
|
36 |
-
00c1349a9622390c.jpg Is this a photo of Porta Garibaldi (Marsala)? Please answer yes or no. No
|
37 |
-
00cae9f165d8d2cc.jpg Is this an image of Fisherman's Bastion? Please answer yes or no. Yes
|
38 |
-
00cae9f165d8d2cc.jpg Is this an image of Equestrian statue of George IV, Trafalgar Square, London? Please answer yes or no. No
|
39 |
-
00f4fb71575efb0b.jpg Is this a picture of 1965)? Please answer yes or no. Yes
|
40 |
-
00f4fb71575efb0b.jpg Is this a picture of Plaza Monumental de Toros de Pueblo Nuevo? Please answer yes or no. No
|
41 |
-
00fa476690a260a8.jpg Is this an image of Bathampton Toll Bridge? Please answer yes or no. Yes
|
42 |
-
00fa476690a260a8.jpg Is this an image of Moose River Plains Wild Forest? Please answer yes or no. No
|
43 |
-
010260e62e7d847d.jpg Is this a photo of Visingsborg? Please answer yes or no. Yes
|
44 |
-
010260e62e7d847d.jpg Is this a photo of Teutsche Schule (Schleusingen)? Please answer yes or no. No
|
45 |
-
010b5b5c9c461f65.jpg Is this an image of Het Steen? Please answer yes or no. Yes
|
46 |
-
010b5b5c9c461f65.jpg Is this an image of Castello di Montalto Dora? Please answer yes or no. No
|
47 |
-
01114538f95f1ce8.jpg Is this a picture of Svirzh Castle? Please answer yes or no. Yes
|
48 |
-
01114538f95f1ce8.jpg Is this a picture of Bistrica, Ionian Sea? Please answer yes or no. No
|
49 |
-
01121b9b3c79afc4.jpg Is this a photo of Alamannenmuseum Ellwangen? Please answer yes or no. Yes
|
50 |
-
01121b9b3c79afc4.jpg Is this a photo of Sint-Jozefkerk, Enschede? Please answer yes or no. No
|
51 |
-
011a19afda5df3c7.jpg Is this a picture of San Prospero (Reggio Emilia)? Please answer yes or no. Yes
|
52 |
-
011a19afda5df3c7.jpg Is this a picture of Lake DeFuniak? Please answer yes or no. No
|
53 |
-
012856462a95ada9.jpg Is this a picture of Chingshui Cliff? Please answer yes or no. Yes
|
54 |
-
012856462a95ada9.jpg Is this a picture of St. John's Church, Portland? Please answer yes or no. No
|
55 |
-
012ea376a16f17bf.jpg Is this a picture of Church of Saint Giles in Prague? Please answer yes or no. Yes
|
56 |
-
012ea376a16f17bf.jpg Is this a picture of Pfarrkirche St. Martin an der Raab? Please answer yes or no. No
|
57 |
-
013e1a1e887cb915.jpg Is this a picture of Real Casa de Correos, Madrid? Please answer yes or no. Yes
|
58 |
-
013e1a1e887cb915.jpg Is this a picture of Ayton Castle, Scottish Borders? Please answer yes or no. No
|
59 |
-
0140a7d5446719c3.jpg Is this a photo of Friday Mosque, Herat? Please answer yes or no. Yes
|
60 |
-
0140a7d5446719c3.jpg Is this a photo of Hexenturm (Burg (bei Magdeburg))? Please answer yes or no. No
|
61 |
-
01416124a7ab211a.jpg Is this a photo of Ajuntament de Mollerussa? Please answer yes or no. Yes
|
62 |
-
01416124a7ab211a.jpg Is this a photo of Episcopal Diocese of Northern Indiana? Please answer yes or no. No
|
63 |
-
01425c4d35880aad.jpg Is this an image of Museu de Sant Boi de Llobregat? Please answer yes or no. Yes
|
64 |
-
01425c4d35880aad.jpg Is this an image of Bezdonnoye Lake, Moscow Oblast? Please answer yes or no. No
|
65 |
-
014c50e91cf799c7.jpg Is this a photo of Clearwater Beach, Florida? Please answer yes or no. Yes
|
66 |
-
014c50e91cf799c7.jpg Is this a photo of Church of Holy Trinity in Vratislavice nad Nisou? Please answer yes or no. No
|
67 |
-
015543ddea466c54.jpg Is this a picture of Galician market square in Skansen, Sanok? Please answer yes or no. Yes
|
68 |
-
015543ddea466c54.jpg Is this a picture of Walworth Castle? Please answer yes or no. No
|
69 |
-
0169c4235270f65b.jpg Is this a photo of St. Ricarius Church, Aberford? Please answer yes or no. Yes
|
70 |
-
0169c4235270f65b.jpg Is this a photo of Schloss Prebberede? Please answer yes or no. No
|
71 |
-
016e68628ea6c7ee.jpg Is this an image of Jewish Ceremonial Hall, Prague-Josefov? Please answer yes or no. Yes
|
72 |
-
016e68628ea6c7ee.jpg Is this an image of Our Lady Church (Ettlingen)? Please answer yes or no. No
|
73 |
-
01862535ce8961ee.jpg Is this an image of Mont Tendre? Please answer yes or no. Yes
|
74 |
-
01862535ce8961ee.jpg Is this an image of Ogden Utah Temple? Please answer yes or no. No
|
75 |
-
0186742e7963fb3c.jpg Is this a photo of Ozegahara? Please answer yes or no. Yes
|
76 |
-
0186742e7963fb3c.jpg Is this a photo of San Giovenale (Orvieto)? Please answer yes or no. No
|
77 |
-
01928acd6dfe6cdd.jpg Is this a picture of Watergate Bay? Please answer yes or no. Yes
|
78 |
-
01928acd6dfe6cdd.jpg Is this a picture of Cairnpapple Hill? Please answer yes or no. No
|
79 |
-
01a6842099d62f22.jpg Is this an image of Clark Veterans Cemetery? Please answer yes or no. Yes
|
80 |
-
01a6842099d62f22.jpg Is this an image of Mirdif City Centre? Please answer yes or no. No
|
81 |
-
01aca2d30b43d05f.jpg Is this a picture of Monte Minerva (Villanova Monteleone)? Please answer yes or no. Yes
|
82 |
-
01aca2d30b43d05f.jpg Is this a picture of Dorfkirche Gnandstein? Please answer yes or no. No
|
83 |
-
01b12048bab7439f.jpg Is this a photo of Kaptai Lake? Please answer yes or no. Yes
|
84 |
-
01b12048bab7439f.jpg Is this a photo of Castle of the Conception? Please answer yes or no. No
|
85 |
-
01b715ceb7050bce.jpg Is this a picture of Kalamita fortress? Please answer yes or no. Yes
|
86 |
-
01b715ceb7050bce.jpg Is this a picture of Augsburger Hotelturm? Please answer yes or no. No
|
87 |
-
01b9b58a573c45f0.jpg Is this a picture of St Mary Redcliffe? Please answer yes or no. Yes
|
88 |
-
01b9b58a573c45f0.jpg Is this a picture of Kirche zur Heiligsten Dreifaltigkeit, Vienna? Please answer yes or no. No
|
89 |
-
01bc5557ed2616ad.jpg Is this a photo of Intercession of the Theotokos church in Lutsk? Please answer yes or no. Yes
|
90 |
-
01bc5557ed2616ad.jpg Is this a photo of Cap 110? Please answer yes or no. No
|
91 |
-
01c0e0ff84631905.jpg Is this a photo of Ribblehead Viaduct? Please answer yes or no. Yes
|
92 |
-
01c0e0ff84631905.jpg Is this a photo of Church of Saint George in Koptevo? Please answer yes or no. No
|
93 |
-
01d6e386c4a01ab3.jpg Is this a picture of Rotes Rathaus? Please answer yes or no. Yes
|
94 |
-
01d6e386c4a01ab3.jpg Is this a picture of Mahipatgad? Please answer yes or no. No
|
95 |
-
01d9bef0120557a5.jpg Is this a photo of Andronikov Monastery? Please answer yes or no. Yes
|
96 |
-
01d9bef0120557a5.jpg Is this a photo of Ghatkopar? Please answer yes or no. No
|
97 |
-
01e198bea8285816.jpg Is this an image of Saint Basil church, Volodymyr-Volynskyi? Please answer yes or no. Yes
|
98 |
-
01e198bea8285816.jpg Is this an image of Hoher Markt, Vienna? Please answer yes or no. No
|
99 |
-
01f23b4c5253e9c6.jpg Is this a picture of Goethes Gartenhaus? Please answer yes or no. Yes
|
100 |
-
01f23b4c5253e9c6.jpg Is this a picture of Lamba, Shetland Islands? Please answer yes or no. No
|
101 |
-
01ffc77bdf7fe084.jpg Is this a picture of Oldemorstoft? Please answer yes or no. Yes
|
102 |
-
01ffc77bdf7fe084.jpg Is this a picture of Roman Catholic Diocese of Antwerp? Please answer yes or no. No
|
103 |
-
0200cce957e9c4a6.jpg Is this a photo of Malmuerta Tower? Please answer yes or no. Yes
|
104 |
-
0200cce957e9c4a6.jpg Is this a photo of Monte Lema? Please answer yes or no. No
|
105 |
-
0202aac6b0bfbcd8.jpg Is this a picture of Gettysburg National Military Park? Please answer yes or no. Yes
|
106 |
-
0202aac6b0bfbcd8.jpg Is this a picture of Auron? Please answer yes or no. No
|
107 |
-
0205343362e60daf.jpg Is this a picture of Church of Our Lady of Sorrows in Riga? Please answer yes or no. Yes
|
108 |
-
0205343362e60daf.jpg Is this a picture of Simon en Judaskerk (Ootmarsum)? Please answer yes or no. No
|
109 |
-
020ae4dd487a8ab0.jpg Is this a photo of Kashueti Church? Please answer yes or no. Yes
|
110 |
-
020ae4dd487a8ab0.jpg Is this a photo of Colorado State Capitol? Please answer yes or no. No
|
111 |
-
02259144c3f094f0.jpg Is this a picture of The American Adventure? Please answer yes or no. Yes
|
112 |
-
02259144c3f094f0.jpg Is this a picture of Langenwaldschanze? Please answer yes or no. No
|
113 |
-
0237fc92f6b31aeb.jpg Is this a photo of Abbaye de Mortemer? Please answer yes or no. Yes
|
114 |
-
0237fc92f6b31aeb.jpg Is this a photo of St Thomas Rest Park? Please answer yes or no. No
|
115 |
-
0240727dbd2b8531.jpg Is this a photo of Nicolaikerk Appingedam? Please answer yes or no. Yes
|
116 |
-
0240727dbd2b8531.jpg Is this a photo of Cutimbo? Please answer yes or no. No
|
117 |
-
02545ca051c6c480.jpg Is this a photo of Podilski Tovtry National Nature Park? Please answer yes or no. Yes
|
118 |
-
02545ca051c6c480.jpg Is this a photo of Lyndonville, Vermont? Please answer yes or no. No
|
119 |
-
02598153523880aa.jpg Is this a photo of Marilao Church? Please answer yes or no. Yes
|
120 |
-
02598153523880aa.jpg Is this a photo of Madliena, Malta? Please answer yes or no. No
|
121 |
-
02737bb70957827d.jpg Is this an image of White Pagoda in Zhakou? Please answer yes or no. Yes
|
122 |
-
02737bb70957827d.jpg Is this an image of Norrstrandskyrkan? Please answer yes or no. No
|
123 |
-
0273f127895337be.jpg Is this a photo of Ringkirche? Please answer yes or no. Yes
|
124 |
-
0273f127895337be.jpg Is this a photo of Huxi Mosque? Please answer yes or no. No
|
125 |
-
02785530b6ac4f56.jpg Is this a picture of Church of Nicholas the Wet? Please answer yes or no. Yes
|
126 |
-
02785530b6ac4f56.jpg Is this a picture of Razula? Please answer yes or no. No
|
127 |
-
028348883685db69.jpg Is this an image of Saint Andrew the Apostle Church? Please answer yes or no. Yes
|
128 |
-
028348883685db69.jpg Is this an image of EYE Film Institute Netherlands? Please answer yes or no. No
|
129 |
-
029431b10472c228.jpg Is this a picture of Santa Caterina (Sassari)? Please answer yes or no. Yes
|
130 |
-
029431b10472c228.jpg Is this a picture of Former Tainan Assembly Hall? Please answer yes or no. No
|
131 |
-
0295877d5cd76190.jpg Is this a picture of Groothoofdspoort? Please answer yes or no. Yes
|
132 |
-
0295877d5cd76190.jpg Is this a picture of 707 17th Street? Please answer yes or no. No
|
133 |
-
02b16429304b00b7.jpg Is this a picture of De Haag? Please answer yes or no. Yes
|
134 |
-
02b16429304b00b7.jpg Is this a picture of Villa Melchett? Please answer yes or no. No
|
135 |
-
02b7f3ae549582f1.jpg Is this a photo of Pont-canal de Digoin? Please answer yes or no. Yes
|
136 |
-
02b7f3ae549582f1.jpg Is this a photo of Trenton Battle Monument? Please answer yes or no. No
|
137 |
-
02d11e392d3ab93f.jpg Is this an image of Santa Monica Parish Church in Angat, Bulacan? Please answer yes or no. Yes
|
138 |
-
02d11e392d3ab93f.jpg Is this an image of Bangkok City Pillar Shrine? Please answer yes or no. No
|
139 |
-
02e38cd5a3850f60.jpg Is this a photo of Palazzo Cavalli Franchetti (Venice)? Please answer yes or no. Yes
|
140 |
-
02e38cd5a3850f60.jpg Is this a photo of Isbister Chambered Cairn? Please answer yes or no. No
|
141 |
-
02e3e418198427e7.jpg Is this an image of Goldener Reiter? Please answer yes or no. Yes
|
142 |
-
02e3e418198427e7.jpg Is this an image of Palacio de la Mosquera? Please answer yes or no. No
|
143 |
-
030d9a26b7d5755e.jpg Is this a photo of Medvedgrad? Please answer yes or no. Yes
|
144 |
-
030d9a26b7d5755e.jpg Is this a photo of Tammisto? Please answer yes or no. No
|
145 |
-
0317376043fb00eb.jpg Is this a photo of Butler's Wharf? Please answer yes or no. Yes
|
146 |
-
0317376043fb00eb.jpg Is this a photo of Church of Saints Philip and James (Lelekovice)? Please answer yes or no. No
|
147 |
-
03280db41fd4e4f5.jpg Is this a picture of Oxford Street? Please answer yes or no. Yes
|
148 |
-
03280db41fd4e4f5.jpg Is this a picture of Blake Fell? Please answer yes or no. No
|
149 |
-
034733eb61d663cd.jpg Is this a picture of Colonna dell'Immacolata (Rome)? Please answer yes or no. Yes
|
150 |
-
034733eb61d663cd.jpg Is this a picture of Brookmill Park? Please answer yes or no. No
|
151 |
-
034d066523bb20d1.jpg Is this a photo of Ibrahim-al-Ibrahim Mosque? Please answer yes or no. Yes
|
152 |
-
034d066523bb20d1.jpg Is this a photo of Atami Castle? Please answer yes or no. No
|
153 |
-
036b60d84c6ebc63.jpg Is this a photo of Frederik V statue in Amalienborg Palace? Please answer yes or no. Yes
|
154 |
-
036b60d84c6ebc63.jpg Is this a photo of Karl-Bittel-Park? Please answer yes or no. No
|
155 |
-
03729394d18f7e9a.jpg Is this an image of Sapporo Clock Tower? Please answer yes or no. Yes
|
156 |
-
03729394d18f7e9a.jpg Is this an image of Saint Nikolaus Church (Beuster)? Please answer yes or no. No
|
157 |
-
0384fd0664c0ca62.jpg Is this an image of St. Martin (Sontheim)? Please answer yes or no. Yes
|
158 |
-
0384fd0664c0ca62.jpg Is this an image of Hot Creek (Mono County, California)? Please answer yes or no. No
|
159 |
-
038bdff81be029a6.jpg Is this an image of Fosso Reale (Livorno)? Please answer yes or no. Yes
|
160 |
-
038bdff81be029a6.jpg Is this an image of Farlington Marshes? Please answer yes or no. No
|
161 |
-
039bbdf71cd17b3f.jpg Is this a picture of Qiantang River Bridge? Please answer yes or no. Yes
|
162 |
-
039bbdf71cd17b3f.jpg Is this a picture of Casa Museo Boschi Di Stefano (Milan)? Please answer yes or no. No
|
163 |
-
03aa5dd2e3aab548.jpg Is this a photo of Central Police Station? Please answer yes or no. Yes
|
164 |
-
03aa5dd2e3aab548.jpg Is this a photo of Kontai-ji? Please answer yes or no. No
|
165 |
-
03c4b1901e4195f4.jpg Is this an image of St. Johanniskirche Eppendorf? Please answer yes or no. Yes
|
166 |
-
03c4b1901e4195f4.jpg Is this an image of Maidenhead Bridge? Please answer yes or no. No
|
167 |
-
03c8b2c1306c0038.jpg Is this an image of Ermita de Sant Joan (Montserrat)? Please answer yes or no. Yes
|
168 |
-
03c8b2c1306c0038.jpg Is this an image of Hamilton Grange National Memorial? Please answer yes or no. No
|
169 |
-
03d5e3bfc958be38.jpg Is this an image of Pietrarsa railway museum? Please answer yes or no. Yes
|
170 |
-
03d5e3bfc958be38.jpg Is this an image of Washita Battlefield National Historic Site? Please answer yes or no. No
|
171 |
-
03dc7df1f1df7b8f.jpg Is this a picture of Yevhen Paton Bridge? Please answer yes or no. Yes
|
172 |
-
03dc7df1f1df7b8f.jpg Is this a picture of Minoan Villa of Makrygialos? Please answer yes or no. No
|
173 |
-
03f65f52c0077b6c.jpg Is this a photo of Reading Lighthouse? Please answer yes or no. Yes
|
174 |
-
03f65f52c0077b6c.jpg Is this a photo of St Nicholas Kirk, Aberdeen? Please answer yes or no. No
|
175 |
-
03f873280d814ae7.jpg Is this a photo of Clarence Dock (Leeds)? Please answer yes or no. Yes
|
176 |
-
03f873280d814ae7.jpg Is this a photo of Madonna delle Grazie (Roccastrada)? Please answer yes or no. No
|
177 |
-
03f8abf9f8473a6f.jpg Is this a picture of Parque nacional del Teide? Please answer yes or no. Yes
|
178 |
-
03f8abf9f8473a6f.jpg Is this a picture of Church of Saint Mary the Virgin, Skiemonys? Please answer yes or no. No
|
179 |
-
03fb778d388ad9a0.jpg Is this an image of Mercado Central de Santiago? Please answer yes or no. Yes
|
180 |
-
03fb778d388ad9a0.jpg Is this an image of Castelo de Alegrete? Please answer yes or no. No
|
181 |
-
041da60e053c5906.jpg Is this a picture of Schloss Weesenstein? Please answer yes or no. Yes
|
182 |
-
041da60e053c5906.jpg Is this a picture of Mas Cabrafiga? Please answer yes or no. No
|
183 |
-
042ca5291cefe0b2.jpg Is this a picture of Pfarrkirche hl. Augustinus, Perchtoldsdorf? Please answer yes or no. Yes
|
184 |
-
042ca5291cefe0b2.jpg Is this a picture of Mark Twain Riverboat? Please answer yes or no. No
|
185 |
-
0443da4f4fcdea52.jpg Is this an image of Port of Funchal? Please answer yes or no. Yes
|
186 |
-
0443da4f4fcdea52.jpg Is this an image of Rauscherpark? Please answer yes or no. No
|
187 |
-
04531b37dfe5c991.jpg Is this a picture of Roebling Suspension Bridge? Please answer yes or no. Yes
|
188 |
-
04531b37dfe5c991.jpg Is this a picture of St. James Episcopal Church (Wilmington, North Carolina)? Please answer yes or no. No
|
189 |
-
04534ba775aa38ad.jpg Is this an image of Cork City Gaol? Please answer yes or no. Yes
|
190 |
-
04534ba775aa38ad.jpg Is this an image of Taramati Baradari? Please answer yes or no. No
|
191 |
-
04590c1648dd25a0.jpg Is this an image of Zhejiang Sci-Tech University? Please answer yes or no. Yes
|
192 |
-
04590c1648dd25a0.jpg Is this an image of Khalti Lake? Please answer yes or no. No
|
193 |
-
045b65ea196dac3f.jpg Is this a photo of Republican architecture in Manizales? Please answer yes or no. Yes
|
194 |
-
045b65ea196dac3f.jpg Is this a photo of Kayauchi-banta Cliff? Please answer yes or no. No
|
195 |
-
045ec5631638d290.jpg Is this a picture of Baldachin of Saint Peter's Basilica? Please answer yes or no. Yes
|
196 |
-
045ec5631638d290.jpg Is this a picture of Jean Baptiste Point Du Sable Homesite? Please answer yes or no. No
|
197 |
-
04a5226570dce6c3.jpg Is this a picture of Church of the Assumption of the Virgin Mary in Chrudim? Please answer yes or no. Yes
|
198 |
-
04a5226570dce6c3.jpg Is this a picture of Queen Elizabeth Country Park? Please answer yes or no. No
|
199 |
-
04b6c84ce89461ec.jpg Is this an image of Tomb of Xerxes I? Please answer yes or no. Yes
|
200 |
-
04b6c84ce89461ec.jpg Is this an image of Park HaMesila? Please answer yes or no. No
|
201 |
-
04d67117549e07a8.jpg Is this a photo of Laguna de Salinas? Please answer yes or no. Yes
|
202 |
-
04d67117549e07a8.jpg Is this a photo of Raspyatsky Monastery (Serpukhov)? Please answer yes or no. No
|
203 |
-
04ebe2885134597f.jpg Is this a picture of The South Africa (Delville Wood) National Memorial? Please answer yes or no. Yes
|
204 |
-
04ebe2885134597f.jpg Is this a picture of Imogiri? Please answer yes or no. No
|
205 |
-
050464e4ebc0b36d.jpg Is this an image of Tai Wong Ye Temple, Wong Chuk Hang? Please answer yes or no. Yes
|
206 |
-
050464e4ebc0b36d.jpg Is this an image of Hierve el Agua? Please answer yes or no. No
|
207 |
-
05095dd2b6715fc3.jpg Is this an image of Sampsonievsky Cathedral? Please answer yes or no. Yes
|
208 |
-
05095dd2b6715fc3.jpg Is this an image of I. and E. Greenwald Steam Engine No. 1058? Please answer yes or no. No
|
209 |
-
05685b1070b828f5.jpg Is this a photo of Wurstelprater? Please answer yes or no. Yes
|
210 |
-
05685b1070b828f5.jpg Is this a photo of Nanmyaebonthar Sannandawya Sandamuni Pagoda? Please answer yes or no. No
|
211 |
-
05b01b255cec2bfb.jpg Is this a photo of Puthoorppilly Sree Krishnaswamy Temple? Please answer yes or no. Yes
|
212 |
-
05b01b255cec2bfb.jpg Is this a photo of Villa Reale (Marlia)? Please answer yes or no. No
|
213 |
-
05bcf05b4460d2c3.jpg Is this an image of Museo archeologico nazionale dell'Umbria? Please answer yes or no. Yes
|
214 |
-
05bcf05b4460d2c3.jpg Is this an image of Mode Gakuen Cocoon Tower? Please answer yes or no. No
|
215 |
-
05c3aa404351f407.jpg Is this an image of Pasaje Gutierrez (Valladolid)? Please answer yes or no. Yes
|
216 |
-
05c3aa404351f407.jpg Is this an image of Pieve di Santa Maria a Carli? Please answer yes or no. No
|
217 |
-
05d56e249af839e7.jpg Is this a photo of Serbian Orthodox Cathedral in Sarajevo? Please answer yes or no. Yes
|
218 |
-
05d56e249af839e7.jpg Is this a photo of Seewaldsee (Sankt Koloman)? Please answer yes or no. No
|
219 |
-
06134984e2aa9bcc.jpg Is this a picture of Grote Kerk (Groede)? Please answer yes or no. Yes
|
220 |
-
06134984e2aa9bcc.jpg Is this a picture of Goldeck? Please answer yes or no. No
|
221 |
-
0613d7e8f292ee15.jpg Is this a photo of Museo Archeologico G. Rambotti? Please answer yes or no. Yes
|
222 |
-
0613d7e8f292ee15.jpg Is this a photo of Sanrei? Please answer yes or no. No
|
223 |
-
062298815e9197e7.jpg Is this a photo of Liuyang Confucius Temple? Please answer yes or no. Yes
|
224 |
-
062298815e9197e7.jpg Is this a photo of Astley Castle? Please answer yes or no. No
|
225 |
-
06483ba2bff074bc.jpg Is this an image of Museo Universitario del Chopo? Please answer yes or no. Yes
|
226 |
-
06483ba2bff074bc.jpg Is this an image of Cedar Park, Seattle, Washington? Please answer yes or no. No
|
227 |
-
06740b93ad1f6c02.jpg Is this a picture of Borisoglebsky Monastery (Borisoglebsky)? Please answer yes or no. Yes
|
228 |
-
06740b93ad1f6c02.jpg Is this a picture of Aletsch Arena? Please answer yes or no. No
|
229 |
-
067ea27ec08c9354.jpg Is this a picture of Schlosskirche St. Aegidien (Bernburg)? Please answer yes or no. Yes
|
230 |
-
067ea27ec08c9354.jpg Is this a picture of The Haining? Please answer yes or no. No
|
231 |
-
06a85d0b5d70881d.jpg Is this an image of Silwan? Please answer yes or no. Yes
|
232 |
-
06a85d0b5d70881d.jpg Is this an image of Jagdschloss Platte? Please answer yes or no. No
|
233 |
-
06ab45292ecd8bf7.jpg Is this a picture of Maribor Regional Museum? Please answer yes or no. Yes
|
234 |
-
06ab45292ecd8bf7.jpg Is this a picture of Myres Castle? Please answer yes or no. No
|
235 |
-
06b6531dab42ccab.jpg Is this a picture of Roland (Riga)? Please answer yes or no. Yes
|
236 |
-
06b6531dab42ccab.jpg Is this a picture of Wudangshan Shangdi Temple? Please answer yes or no. No
|
237 |
-
06d039ff97afef04.jpg Is this a picture of Arch of Galerius (Thessaloniki)? Please answer yes or no. Yes
|
238 |
-
06d039ff97afef04.jpg Is this a picture of Catholic Church of Wanchin? Please answer yes or no. No
|
239 |
-
06e453b06a3e4054.jpg Is this an image of Pendeen Lighthouse? Please answer yes or no. Yes
|
240 |
-
06e453b06a3e4054.jpg Is this an image of Silberbach (Heubach)? Please answer yes or no. No
|
241 |
-
06e927f784642ce4.jpg Is this a picture of Museo Delta Antico? Please answer yes or no. Yes
|
242 |
-
06e927f784642ce4.jpg Is this a picture of OSTEC Exhibition Hall? Please answer yes or no. No
|
243 |
-
070c8d6326a87397.jpg Is this an image of Lanxmeerpoort? Please answer yes or no. Yes
|
244 |
-
070c8d6326a87397.jpg Is this an image of Tramway du Cap-Ferret? Please answer yes or no. No
|
245 |
-
0713451824a443d4.jpg Is this a picture of Castillo de Sax? Please answer yes or no. Yes
|
246 |
-
0713451824a443d4.jpg Is this a picture of Roman Catholic Diocese of Orlando? Please answer yes or no. No
|
247 |
-
0743e58605497887.jpg Is this an image of Capitoline temple (Brescia)? Please answer yes or no. Yes
|
248 |
-
0743e58605497887.jpg Is this an image of Burg Horn? Please answer yes or no. No
|
249 |
-
075264ec41057049.jpg Is this a picture of Imatrankoski? Please answer yes or no. Yes
|
250 |
-
075264ec41057049.jpg Is this a picture of Jarlsberg travbane? Please answer yes or no. No
|
251 |
-
07551cf96af77299.jpg Is this a photo of Friedhof Wilmersdorf? Please answer yes or no. Yes
|
252 |
-
07551cf96af77299.jpg Is this a photo of Partisan cemetery in Mostar? Please answer yes or no. No
|
253 |
-
075f8d86303a020e.jpg Is this a photo of Church of the Nativity (Bethlehem)? Please answer yes or no. Yes
|
254 |
-
075f8d86303a020e.jpg Is this a photo of Pennsylvania Railroad Office Building? Please answer yes or no. No
|
255 |
-
07ac52cf4620519f.jpg Is this a photo of San Pietro (Reggio Emilia)? Please answer yes or no. Yes
|
256 |
-
07ac52cf4620519f.jpg Is this a photo of Plaza de toros de La Condomina? Please answer yes or no. No
|
257 |
-
07b04584e67cb39d.jpg Is this a picture of Smithfield, Dublin? Please answer yes or no. Yes
|
258 |
-
07b04584e67cb39d.jpg Is this a picture of Novyi Svit Sanctuary? Please answer yes or no. No
|
259 |
-
07ed43dd266b669b.jpg Is this a photo of Rocky Mountain National Park? Please answer yes or no. Yes
|
260 |
-
07ed43dd266b669b.jpg Is this a photo of Col-des-Roches? Please answer yes or no. No
|
261 |
-
083dd5a3ba3d96dc.jpg Is this a picture of Teddington Cemetery? Please answer yes or no. Yes
|
262 |
-
083dd5a3ba3d96dc.jpg Is this a picture of Khutir Nadia? Please answer yes or no. No
|
263 |
-
08442f24f3c25565.jpg Is this a photo of Abdijkerk Loosduinen? Please answer yes or no. Yes
|
264 |
-
08442f24f3c25565.jpg Is this a photo of Rinsey Head? Please answer yes or no. No
|
265 |
-
08a0d2fd3fe6dc95.jpg Is this a picture of Dreifaltigkeitskirche (Ulm)? Please answer yes or no. Yes
|
266 |
-
08a0d2fd3fe6dc95.jpg Is this a picture of Wat Pa Mamuang? Please answer yes or no. No
|
267 |
-
08c43cd8f2be6709.jpg Is this a picture of Parchi di Nervi? Please answer yes or no. Yes
|
268 |
-
08c43cd8f2be6709.jpg Is this a picture of Altlayer Schweiz? Please answer yes or no. No
|
269 |
-
09232aeaf46dec64.jpg Is this a picture of Canadian Museum of Nature? Please answer yes or no. Yes
|
270 |
-
09232aeaf46dec64.jpg Is this a picture of Gwangtonggwan? Please answer yes or no. No
|
271 |
-
092d0859ff6424de.jpg Is this a photo of Kasteel Lunenburg? Please answer yes or no. Yes
|
272 |
-
092d0859ff6424de.jpg Is this a photo of Thomas Paine Cottage? Please answer yes or no. No
|
273 |
-
092e075e8e44c228.jpg Is this a picture of ChaoTianGong? Please answer yes or no. Yes
|
274 |
-
092e075e8e44c228.jpg Is this a picture of Pygmalion Theater Wien? Please answer yes or no. No
|
275 |
-
093ad5564a004653.jpg Is this a picture of Crescent Lake (Dunhuang)? Please answer yes or no. Yes
|
276 |
-
093ad5564a004653.jpg Is this a picture of Kirjurinluoto Arena? Please answer yes or no. No
|
277 |
-
0962855b67159733.jpg Is this a photo of Monastery of Monsalud? Please answer yes or no. Yes
|
278 |
-
0962855b67159733.jpg Is this a photo of ToonSeum? Please answer yes or no. No
|
279 |
-
09a51d517f1a72d5.jpg Is this a picture of Ford's Theatre? Please answer yes or no. Yes
|
280 |
-
09a51d517f1a72d5.jpg Is this a picture of Burg Hachen? Please answer yes or no. No
|
281 |
-
09ae0628a75e4fcc.jpg Is this a picture of Onze-Lieve-Vrouw Hemelvaartkerk (Zottegem)? Please answer yes or no. Yes
|
282 |
-
09ae0628a75e4fcc.jpg Is this a picture of Salvation Army in Canada? Please answer yes or no. No
|
283 |
-
09b7acf87c8046ec.jpg Is this an image of Church of the Epiphany (Yaroslavl)? Please answer yes or no. Yes
|
284 |
-
09b7acf87c8046ec.jpg Is this an image of Szlenkier Palace? Please answer yes or no. No
|
285 |
-
09b94a2f304a540c.jpg Is this a photo of Abbaye Notre-Dame du Val? Please answer yes or no. Yes
|
286 |
-
09b94a2f304a540c.jpg Is this a photo of Hotarumachi, Osaka? Please answer yes or no. No
|
287 |
-
09ce89cbf237da03.jpg Is this a picture of Church of Saint Mary Magdalene (Brno)? Please answer yes or no. Yes
|
288 |
-
09ce89cbf237da03.jpg Is this a picture of Wain Wath Force? Please answer yes or no. No
|
289 |
-
0a3035bfca2ab920.jpg Is this an image of Ortigia? Please answer yes or no. Yes
|
290 |
-
0a3035bfca2ab920.jpg Is this an image of Montmayeur castle? Please answer yes or no. No
|
291 |
-
0ab2ed007db301d5.jpg Is this a picture of Highgate Cemetery? Please answer yes or no. Yes
|
292 |
-
0ab2ed007db301d5.jpg Is this a picture of Isola Maggiore? Please answer yes or no. No
|
293 |
-
0acc12d1261d99ca.jpg Is this an image of Wat Chedi Si Hong? Please answer yes or no. Yes
|
294 |
-
0acc12d1261d99ca.jpg Is this an image of Leschi Park? Please answer yes or no. No
|
295 |
-
0adb088e24d88123.jpg Is this a picture of Iglesia de Santo Domingo (La Serena)? Please answer yes or no. Yes
|
296 |
-
0adb088e24d88123.jpg Is this a picture of Canelles de Baix (la Vall de Bianya)? Please answer yes or no. No
|
297 |
-
0ae3355e0a54db21.jpg Is this a photo of Grimspound? Please answer yes or no. Yes
|
298 |
-
0ae3355e0a54db21.jpg Is this a photo of Lough Owel? Please answer yes or no. No
|
299 |
-
0b4240b5ef69362e.jpg Is this a photo of Saint Anne church in Nowa Ruda? Please answer yes or no. Yes
|
300 |
-
0b4240b5ef69362e.jpg Is this a photo of Bray Wick? Please answer yes or no. No
|
301 |
-
0b64944086932c90.jpg Is this a picture of Alte Pfarrkirche St. Martin (Moosach)? Please answer yes or no. Yes
|
302 |
-
0b64944086932c90.jpg Is this a picture of Maya Devi Temple, Lumbini? Please answer yes or no. No
|
303 |
-
0b8fa4152f1bc3ed.jpg Is this a picture of Lac du Salagou? Please answer yes or no. Yes
|
304 |
-
0b8fa4152f1bc3ed.jpg Is this a picture of Holsljunga kyrka? Please answer yes or no. No
|
305 |
-
0ba6fa7ade050d49.jpg Is this a photo of Churches in Zemaiciu Kalvarija? Please answer yes or no. Yes
|
306 |
-
0ba6fa7ade050d49.jpg Is this a photo of Waiola Church? Please answer yes or no. No
|
307 |
-
0bd72080836eac97.jpg Is this a picture of Castelo de Sesimbra? Please answer yes or no. Yes
|
308 |
-
0bd72080836eac97.jpg Is this a picture of Gouffre Berger? Please answer yes or no. No
|
309 |
-
0bdd954254310e73.jpg Is this a photo of Melrose House? Please answer yes or no. Yes
|
310 |
-
0bdd954254310e73.jpg Is this a photo of Former water tower (Tsubame, Niigata)? Please answer yes or no. No
|
311 |
-
0c06fe97f38f6f88.jpg Is this a photo of Belvoir Castle? Please answer yes or no. Yes
|
312 |
-
0c06fe97f38f6f88.jpg Is this a photo of Su'ao Cold Spring? Please answer yes or no. No
|
313 |
-
0c6b0c5d2a401285.jpg Is this a photo of Pelham Crescent? Please answer yes or no. Yes
|
314 |
-
0c6b0c5d2a401285.jpg Is this a photo of Manila Ocean Park? Please answer yes or no. No
|
315 |
-
0cc5201e37961a1d.jpg Is this a photo of Adare Manor? Please answer yes or no. Yes
|
316 |
-
0cc5201e37961a1d.jpg Is this a photo of Leopoldspark? Please answer yes or no. No
|
317 |
-
0cd8fda9668b3ed2.jpg Is this a picture of Church of the Holy Mandylion (Klyazma)? Please answer yes or no. Yes
|
318 |
-
0cd8fda9668b3ed2.jpg Is this a picture of Kalayar Kovil? Please answer yes or no. No
|
319 |
-
0cf2e28266a0f1a1.jpg Is this an image of Piazza Bra (Verona)? Please answer yes or no. Yes
|
320 |
-
0cf2e28266a0f1a1.jpg Is this an image of Keeneland? Please answer yes or no. No
|
321 |
-
0cf48b827c9c99de.jpg Is this a photo of Beatus Rhenanus Bridge? Please answer yes or no. Yes
|
322 |
-
0cf48b827c9c99de.jpg Is this a photo of Ossian Hall? Please answer yes or no. No
|
323 |
-
0d23f6c345b68c05.jpg Is this an image of Monte Olivia? Please answer yes or no. Yes
|
324 |
-
0d23f6c345b68c05.jpg Is this an image of Crackstate? Please answer yes or no. No
|
325 |
-
0d70bceb2557d1f4.jpg Is this an image of Spaso-Preobrazhensky Cathedral (Pereslavl-Zalessky)? Please answer yes or no. Yes
|
326 |
-
0d70bceb2557d1f4.jpg Is this an image of Manta Rota? Please answer yes or no. No
|
327 |
-
0d7716f4aed0c9fa.jpg Is this a photo of Willemsbrug in Rotterdam? Please answer yes or no. Yes
|
328 |
-
0d7716f4aed0c9fa.jpg Is this a photo of Grumentum, Parco archeologico? Please answer yes or no. No
|
329 |
-
0d89a8a5e8c269e4.jpg Is this an image of Burg Normannstein? Please answer yes or no. Yes
|
330 |
-
0d89a8a5e8c269e4.jpg Is this an image of Cape Borda Lighthouse? Please answer yes or no. No
|
331 |
-
0e04b4f7f9801ea9.jpg Is this a picture of Vase sculpture, Bremen? Please answer yes or no. Yes
|
332 |
-
0e04b4f7f9801ea9.jpg Is this a picture of Mount Wilhelm? Please answer yes or no. No
|
333 |
-
0e0511c6e33636ca.jpg Is this a picture of Victoria Stadium? Please answer yes or no. Yes
|
334 |
-
0e0511c6e33636ca.jpg Is this a picture of Villa Belvedere (San Giuliano Terme)? Please answer yes or no. No
|
335 |
-
0e553d5d99e21c32.jpg Is this a picture of Mustafa Pasha Bridge? Please answer yes or no. Yes
|
336 |
-
0e553d5d99e21c32.jpg Is this a picture of Scrattons Eco Park? Please answer yes or no. No
|
337 |
-
0eb857c972ddc4c8.jpg Is this an image of Nabq Protected Area? Please answer yes or no. Yes
|
338 |
-
0eb857c972ddc4c8.jpg Is this an image of Maletsunyane Falls? Please answer yes or no. No
|
339 |
-
0f92862c0366ab60.jpg Is this a photo of Cotehele? Please answer yes or no. Yes
|
340 |
-
0f92862c0366ab60.jpg Is this a photo of Mozirje Grove? Please answer yes or no. No
|
341 |
-
0fc48f210ea7d363.jpg Is this a photo of Schauenburg (Oberkirch)? Please answer yes or no. Yes
|
342 |
-
0fc48f210ea7d363.jpg Is this a photo of Dartford Library? Please answer yes or no. No
|
343 |
-
100e5402cfb2dfcf.jpg Is this a picture of Nanzenji? Please answer yes or no. Yes
|
344 |
-
100e5402cfb2dfcf.jpg Is this a picture of Bagakain Lake? Please answer yes or no. No
|
345 |
-
101786bd2ec5800e.jpg Is this a picture of Church of the Merciful Saviour in Kuskovo (Moscow)? Please answer yes or no. Yes
|
346 |
-
101786bd2ec5800e.jpg Is this a picture of Central Board of Secondary Education? Please answer yes or no. No
|
347 |
-
1023b7ec812bb4c6.jpg Is this a photo of St. Joseph's Cathedral, Dunedin? Please answer yes or no. Yes
|
348 |
-
1023b7ec812bb4c6.jpg Is this a photo of Fagervik Church? Please answer yes or no. No
|
349 |
-
1053f4cebfceabd8.jpg Is this an image of Woolwich foot tunnel? Please answer yes or no. Yes
|
350 |
-
1053f4cebfceabd8.jpg Is this an image of Kirchenbibliothek St. Marien Barth? Please answer yes or no. No
|
351 |
-
10a944858a4283e0.jpg Is this a picture of Harding Tomb? Please answer yes or no. Yes
|
352 |
-
10a944858a4283e0.jpg Is this a picture of Kartause Ittingen? Please answer yes or no. No
|
353 |
-
10b2b8741f283a3c.jpg Is this a photo of De Bataaf, Winterswijk? Please answer yes or no. Yes
|
354 |
-
10b2b8741f283a3c.jpg Is this a photo of Porte Guillaume-Lion? Please answer yes or no. No
|
355 |
-
11b6bb2c35f4ee22.jpg Is this an image of Ku-ring-gai Chase National Park? Please answer yes or no. Yes
|
356 |
-
11b6bb2c35f4ee22.jpg Is this an image of Saint Mark's Coptic Orthodox Cathedral, Cairo? Please answer yes or no. No
|
357 |
-
127be7d34a21e5ed.jpg Is this a picture of Beachy Head? Please answer yes or no. Yes
|
358 |
-
127be7d34a21e5ed.jpg Is this a picture of Jindo Bridge? Please answer yes or no. No
|
359 |
-
130846b4f29fe4ba.jpg Is this a photo of Duomo (Viterbo)? Please answer yes or no. Yes
|
360 |
-
130846b4f29fe4ba.jpg Is this a photo of Raffles Praslin? Please answer yes or no. No
|
361 |
-
13a563a1a8ef38ae.jpg Is this a photo of Torre del Rellotge d'Olesa de Montserrat? Please answer yes or no. Yes
|
362 |
-
13a563a1a8ef38ae.jpg Is this a photo of Salzburg Museum? Please answer yes or no. No
|
363 |
-
14d3aba340d2fba9.jpg Is this an image of Regard Saint-Martin? Please answer yes or no. Yes
|
364 |
-
14d3aba340d2fba9.jpg Is this an image of Mount Donna Buang? Please answer yes or no. No
|
365 |
-
15b75eb6fca4aeb6.jpg Is this a photo of City Duma building (Saint Petersburg)? Please answer yes or no. Yes
|
366 |
-
15b75eb6fca4aeb6.jpg Is this a photo of Komadome-Hachiman-jinja? Please answer yes or no. No
|
367 |
-
15ec5d2c0898a56e.jpg Is this a photo of Kids Marina Rotterdam? Please answer yes or no. Yes
|
368 |
-
15ec5d2c0898a56e.jpg Is this a photo of Kirkwood Observatory? Please answer yes or no. No
|
369 |
-
15f326a030396dba.jpg Is this a picture of Macquarie Centre? Please answer yes or no. Yes
|
370 |
-
15f326a030396dba.jpg Is this a picture of California Historical Landmarks in San Mateo County, California? Please answer yes or no. No
|
371 |
-
162a77504f4e686e.jpg Is this an image of Wieliczka Castle? Please answer yes or no. Yes
|
372 |
-
162a77504f4e686e.jpg Is this an image of Naval Station Guantanamo Bay? Please answer yes or no. No
|
373 |
-
16b76bdd7eaaef1b.jpg Is this a picture of Evangelische Kirche Weinfelden? Please answer yes or no. Yes
|
374 |
-
16b76bdd7eaaef1b.jpg Is this a picture of Gorg Blau? Please answer yes or no. No
|
375 |
-
16d55614b78b6b8b.jpg Is this an image of Church of the Assumption in Bishche? Please answer yes or no. Yes
|
376 |
-
16d55614b78b6b8b.jpg Is this an image of Water of Girvan? Please answer yes or no. No
|
377 |
-
17e0cd732e35d4aa.jpg Is this a photo of Millennium Tower (San Francisco, California)? Please answer yes or no. Yes
|
378 |
-
17e0cd732e35d4aa.jpg Is this a photo of New Orleans Botanical Garden? Please answer yes or no. No
|
379 |
-
18608ca3b785abf8.jpg Is this a picture of Solvognen? Please answer yes or no. Yes
|
380 |
-
18608ca3b785abf8.jpg Is this a picture of Schenley Farms National Historic District? Please answer yes or no. No
|
381 |
-
197e440391d309f8.jpg Is this a picture of Skansin? Please answer yes or no. Yes
|
382 |
-
197e440391d309f8.jpg Is this a picture of Bardstown Historic District? Please answer yes or no. No
|
383 |
-
19fe04377265454e.jpg Is this a picture of Alexander Nevsky Church, Belgrade? Please answer yes or no. Yes
|
384 |
-
19fe04377265454e.jpg Is this a picture of Seppiko-Mineyama Hyogo Prefectural Nature Park? Please answer yes or no. No
|
385 |
-
1a32959819038291.jpg Is this an image of Id Kah Mosque? Please answer yes or no. Yes
|
386 |
-
1a32959819038291.jpg Is this an image of Katharinenkirche (Zwickau)? Please answer yes or no. No
|
387 |
-
1ac0e3c493073995.jpg Is this an image of Church of Saint John the Baptist (Jihlava)? Please answer yes or no. Yes
|
388 |
-
1ac0e3c493073995.jpg Is this an image of Silte kyrka? Please answer yes or no. No
|
389 |
-
1d4be36153741972.jpg Is this a picture of Marie Guyart Building? Please answer yes or no. Yes
|
390 |
-
1d4be36153741972.jpg Is this a picture of Motol? Please answer yes or no. No
|
391 |
-
1f233b807b660d25.jpg Is this a photo of Aussichtsturm Pyramidenkogel? Please answer yes or no. Yes
|
392 |
-
1f233b807b660d25.jpg Is this a photo of Vvedenskoe cemetery? Please answer yes or no. No
|
393 |
-
27a4267b9ea26cd0.jpg Is this an image of Oude Salviuskerk (Limbricht)? Please answer yes or no. Yes
|
394 |
-
27a4267b9ea26cd0.jpg Is this an image of Festung Heldrungen? Please answer yes or no. No
|
395 |
-
2a895eb889d6fd99.jpg Is this an image of Beijing Guozijian? Please answer yes or no. Yes
|
396 |
-
2a895eb889d6fd99.jpg Is this an image of Klinikkirche (Pfafferode)? Please answer yes or no. No
|
397 |
-
2f25654bcb445452.jpg Is this a photo of Rinku Gate Tower Building? Please answer yes or no. Yes
|
398 |
-
2f25654bcb445452.jpg Is this a photo of Bigorski Monastery? Please answer yes or no. No
|
399 |
-
3c89eb4043bcefac.jpg Is this a picture of Begijnhofkerk (Mechelen)? Please answer yes or no. Yes
|
400 |
-
3c89eb4043bcefac.jpg Is this a picture of Panther Hollow Lake? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/numerical_calculation.txt
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
0001.png Is the answer to the arithmetic question in the image 225? Please answer yes or no. Yes
|
2 |
-
0001.png Is the answer to the arithmetic question in the image 1515? Please answer yes or no. No
|
3 |
-
0002.png Is the answer to the arithmetic question in the image 340? Please answer yes or no. Yes
|
4 |
-
0002.png Is the answer to the arithmetic question in the image 17? Please answer yes or no. No
|
5 |
-
0003.png Is the answer to the arithmetic question in the image 65? Please answer yes or no. Yes
|
6 |
-
0003.png Is the answer to the arithmetic question in the image 56? Please answer yes or no. No
|
7 |
-
0004.png Is the answer to the arithmetic question in the image 33? Please answer yes or no. Yes
|
8 |
-
0004.png Is the answer to the arithmetic question in the image 32? Please answer yes or no. No
|
9 |
-
0005.png Is the area of the square in the picture equal to 40? Please answer yes or no. Yes
|
10 |
-
0005.png Is the area of the square in the picture equal to 8? Please answer yes or no. No
|
11 |
-
0006.png Is the area of the square in the picture equal to 9? Please answer yes or no. Yes
|
12 |
-
0006.png Is the area of the square in the picture equal to 3? Please answer yes or no. No
|
13 |
-
0007.png Is the answer to the arithmetic question in the image 49? Please answer yes or no. Yes
|
14 |
-
0007.png Is the answer to the arithmetic question in the image 39? Please answer yes or no. No
|
15 |
-
0008.png Should the value of "a" in the picture equal 7? Please answer yes or no. Yes
|
16 |
-
0008.png Should the value of "a" in the picture equal 14? Please answer yes or no. No
|
17 |
-
0009.png Should the value of "a" in the picture equal 2? Please answer yes or no. Yes
|
18 |
-
0009.png Should the value of "a" in the picture equal 3? Please answer yes or no. No
|
19 |
-
0010.png Is the answer to the arithmetic question in the image 13? Please answer yes or no. Yes
|
20 |
-
0010.png Is the answer to the arithmetic question in the image 12? Please answer yes or no. No
|
21 |
-
0011.png Is the area of the parallelogram in the picture equal to 24? Please answer yes or no. Yes
|
22 |
-
0011.png Is the area of the parallelogram in the picture equal to 6? Please answer yes or no. No
|
23 |
-
0012.png Should the value of "a" in the picture equal 9? Please answer yes or no. Yes
|
24 |
-
0012.png Should the value of "a" in the picture equal 1? Please answer yes or no. No
|
25 |
-
0013.png Is the area of the right triangle in the picture equal to 24? Please answer yes or no. Yes
|
26 |
-
0013.png Is the area of the right triangle in the picture equal to 8? Please answer yes or no. No
|
27 |
-
0014.png Is the answer to the arithmetic question in the image 200? Please answer yes or no. Yes
|
28 |
-
0014.png Is the answer to the arithmetic question in the image 400? Please answer yes or no. No
|
29 |
-
0015.png Is the answer to the arithmetic question in the image 11? Please answer yes or no. Yes
|
30 |
-
0015.png Is the answer to the arithmetic question in the image 111? Please answer yes or no. No
|
31 |
-
0016.png Is the answer to the arithmetic question in the image 9? Please answer yes or no. Yes
|
32 |
-
0016.png Is the answer to the arithmetic question in the image 16? Please answer yes or no. No
|
33 |
-
0017.png Is the answer to the arithmetic question in the image 14? Please answer yes or no. Yes
|
34 |
-
0017.png Is the answer to the arithmetic question in the image 83? Please answer yes or no. No
|
35 |
-
0018.png Should the value of "a" in the picture equal 3? Please answer yes or no. Yes
|
36 |
-
0018.png Should the value of "a" in the picture equal 2? Please answer yes or no. No
|
37 |
-
0019.png Is the answer to the arithmetic question in the image 18? Please answer yes or no. Yes
|
38 |
-
0019.png Is the answer to the arithmetic question in the image 36? Please answer yes or no. No
|
39 |
-
0020.png Is the answer to the arithmetic question in the image 9? Please answer yes or no. Yes
|
40 |
-
0020.png Is the answer to the arithmetic question in the image 45? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/position.txt
DELETED
@@ -1,60 +0,0 @@
|
|
1 |
-
000000006471.jpg Is the cricket bat above the batter's body? Please answer yes or no. Yes
|
2 |
-
000000006471.jpg Is the cricket bat under the batter's body Please answer yes or no. No
|
3 |
-
000000007281.jpg Is the sea behind people in the image? Please answer yes or no. Yes
|
4 |
-
000000007281.jpg Is the sea in front of people in the image? Please answer yes or no. No
|
5 |
-
000000014038.jpg Is the refrigerator on the left side of the picture? Please answer yes or no. Yes
|
6 |
-
000000014038.jpg Is the refrigerator on the right side of the picture Please answer yes or no. No
|
7 |
-
000000031248.jpg Is there a sofa in the middle of potted plants in the image? Please answer yes or no. Yes
|
8 |
-
000000031248.jpg Is there a sofa in the right side of potted plants in the image? Please answer yes or no. No
|
9 |
-
000000048504.jpg Is the gray elephant in front of the brown elephant? Please answer yes or no. Yes
|
10 |
-
000000048504.jpg Is the brown elephant in front of the gray elephant? Please answer yes or no. No
|
11 |
-
000000052007.jpg Are the pedestrians on the right of the bus? Please answer yes or no. Yes
|
12 |
-
000000052007.jpg Are the pedestrians on the left of the bus? Please answer yes or no. No
|
13 |
-
000000056127.jpg Is the light above the fire hydrant in the image? Please answer yes or no. Yes
|
14 |
-
000000056127.jpg Is the light under the fire hydrant in the image? Please answer yes or no. No
|
15 |
-
000000062025.jpg Is the trash can under the cup in the image? Please answer yes or no. Yes
|
16 |
-
000000062025.jpg Is the trash can above the cup in the image? Please answer yes or no. No
|
17 |
-
000000062808.jpg Is the phone above the pizza in the image? Please answer yes or no. Yes
|
18 |
-
000000062808.jpg Is the phone under the pizza in the image? Please answer yes or no. No
|
19 |
-
000000067213.jpg Is the dog above the pool in the image? Please answer yes or no. Yes
|
20 |
-
000000067213.jpg Is the dog under the pool in the image? Please answer yes or no. No
|
21 |
-
000000097994.jpg Is the light above the computer in the image? Please answer yes or no. Yes
|
22 |
-
000000097994.jpg Is the light under the computer in the image? Please answer yes or no. No
|
23 |
-
000000204871.jpg Is the car on the right side of the fire hydrant in the picture? Please answer yes or no. Yes
|
24 |
-
000000204871.jpg Is the car on the left side of the fire hydrant in the picture? Please answer yes or no. No
|
25 |
-
000000206487.jpg Is the motorcycle on the right side of the bus? Please answer yes or no. Yes
|
26 |
-
000000206487.jpg Is the motorcycle on the left side of the bus Please answer yes or no. No
|
27 |
-
000000211825.jpg Is the cake on the left side of the camera? Please answer yes or no. Yes
|
28 |
-
000000211825.jpg Is the cake on the right side of the camera? Please answer yes or no. No
|
29 |
-
000000212800.jpg Is the blue umbrella under the black umbrella? Please answer yes or no. Yes
|
30 |
-
000000212800.jpg Is the blue umbrella above the black umbrella? Please answer yes or no. No
|
31 |
-
000000395701.jpg Is the TV on the left of the bookshelf? Please answer yes or no. Yes
|
32 |
-
000000395701.jpg Is the TV on the right of the bookshelf? Please answer yes or no. No
|
33 |
-
000000395801.jpg Is the clock above people? Please answer yes or no. Yes
|
34 |
-
000000395801.jpg Is the clock under people? Please answer yes or no. No
|
35 |
-
000000405970.jpg Is the grey sofa on the right of the TV? Please answer yes or no. Yes
|
36 |
-
000000405970.jpg Is the grey sofa on the left of the TV? Please answer yes or no. No
|
37 |
-
000000426241.jpg Is the white mouse on the right of the black keyboard? Please answer yes or no. Yes
|
38 |
-
000000426241.jpg Is the white mouse on the left of the black keyboard? Please answer yes or no. No
|
39 |
-
000000450303.jpg Is the monitor on top of a person? Please answer yes or no. Yes
|
40 |
-
000000450303.jpg Is the monitor under the person? Please answer yes or no. No
|
41 |
-
000000458410.jpg Is the TV on the left of the lamp? Please answer yes or no. Yes
|
42 |
-
000000458410.jpg Is the TV on the right of the lamp? Please answer yes or no. No
|
43 |
-
000000472046.jpg Is the pineapple on the left of the pot in the image? Please answer yes or no. Yes
|
44 |
-
000000472046.jpg Is the pineapple on the right of the pot in the image? Please answer yes or no. No
|
45 |
-
000000477955.jpg Is the person under the kite? Please answer yes or no. Yes
|
46 |
-
000000477955.jpg Is the person above the kite? Please answer yes or no. No
|
47 |
-
000000482585.jpg Is the person on the right of the train? Please answer yes or no. Yes
|
48 |
-
000000482585.jpg Is the person on the left of the train? Please answer yes or no. No
|
49 |
-
000000494869.jpg Is the baby on the right of the dog in the image? Please answer yes or no. Yes
|
50 |
-
000000494869.jpg Is the baby on the left of the dog in the image? Please answer yes or no. No
|
51 |
-
000000509699.jpg Is the mirror above the TV? Please answer yes or no. Yes
|
52 |
-
000000509699.jpg Is the mirror under the TV? Please answer yes or no. No
|
53 |
-
000000519569.jpg Is the vase on the left of the bottle? Please answer yes or no. Yes
|
54 |
-
000000519569.jpg Is the vase on the right of the bottle? Please answer yes or no. No
|
55 |
-
000000530162.jpg Is the big red and black umbrella on the top of people? Please answer yes or no. Yes
|
56 |
-
000000530162.jpg Is the big red and black umbrella under people? Please answer yes or no. No
|
57 |
-
000000551660.jpg Is the spoon in the bowl? Please answer yes or no. Yes
|
58 |
-
000000551660.jpg Is the spoon out of the bowl? Please answer yes or no. No
|
59 |
-
000000578922.jpg Is the vase on the left of the toothbrush? Please answer yes or no. Yes
|
60 |
-
000000578922.jpg Is the vase on the right of the toothbrush? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/posters.txt
DELETED
@@ -1,294 +0,0 @@
|
|
1 |
-
tt0048028.jpg Is this movie directed by elia kazan? Please answer yes or no. Yes
|
2 |
-
tt0048028.jpg Is this movie directed by maneesh sharma? Please answer yes or no. No
|
3 |
-
tt0053221.jpg Is this movie titled rio bravo (1959)? Please answer yes or no. Yes
|
4 |
-
tt0053221.jpg Is this movie titled the matrix (1999)? Please answer yes or no. No
|
5 |
-
tt0062622.jpg Is this movie originated from the country or region of uk? Please answer yes or no. Yes
|
6 |
-
tt0062622.jpg Is this movie originated from the country or region of china? Please answer yes or no. No
|
7 |
-
tt0063442.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
8 |
-
tt0063442.jpg Is this movie originated from the country or region of japan? Please answer yes or no. No
|
9 |
-
tt0065724.jpg Is this movie directed by bob rafelson? Please answer yes or no. Yes
|
10 |
-
tt0065724.jpg Is this movie directed by anthony minghella? Please answer yes or no. No
|
11 |
-
tt0067116.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
12 |
-
tt0067116.jpg Is this movie originated from the country or region of uk? Please answer yes or no. No
|
13 |
-
tt0067140.jpg Is this movie titled duck, you sucker (1971)? Please answer yes or no. Yes
|
14 |
-
tt0067140.jpg Is this movie titled crimson tide (1995)? Please answer yes or no. No
|
15 |
-
tt0067185.jpg Is this movie directed by hal ashby? Please answer yes or no. Yes
|
16 |
-
tt0067185.jpg Is this movie directed by john hillcoat? Please answer yes or no. No
|
17 |
-
tt0068646.jpg Is this movie titled the godfather (1972)? Please answer yes or no. Yes
|
18 |
-
tt0068646.jpg Is this movie titled bring on the melody (2017)? Please answer yes or no. No
|
19 |
-
tt0070291.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
20 |
-
tt0070291.jpg Is this movie originated from the country or region of spain? Please answer yes or no. No
|
21 |
-
tt0071315.jpg Is this movie titled chinatown (1974)? Please answer yes or no. Yes
|
22 |
-
tt0071315.jpg Is this movie titled planet of the apes (1968)? Please answer yes or no. No
|
23 |
-
tt0074119.jpg Is this movie directed by alan j. pakula? Please answer yes or no. Yes
|
24 |
-
tt0074119.jpg Is this movie directed by stanley kubrick? Please answer yes or no. No
|
25 |
-
tt0074749.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
26 |
-
tt0074749.jpg Is this movie originated from the country or region of venezuela? Please answer yes or no. No
|
27 |
-
tt0082186.jpg Is this movie directed by desmond davis? Please answer yes or no. Yes
|
28 |
-
tt0082186.jpg Is this movie directed by edward zwick? Please answer yes or no. No
|
29 |
-
tt0083907.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
30 |
-
tt0083907.jpg Is this movie originated from the country or region of bulgaria? Please answer yes or no. No
|
31 |
-
tt0083946.jpg Is this movie originated from the country or region of west germany? Please answer yes or no. Yes
|
32 |
-
tt0083946.jpg Is this movie originated from the country or region of denmark? Please answer yes or no. No
|
33 |
-
tt0084787.jpg Is this movie titled the thing (1982)? Please answer yes or no. Yes
|
34 |
-
tt0084787.jpg Is this movie titled jay and silent bob strike back (2001)? Please answer yes or no. No
|
35 |
-
tt0086250.jpg Is this movie directed by brian de palma? Please answer yes or no. Yes
|
36 |
-
tt0086250.jpg Is this movie directed by patrice leconte? Please answer yes or no. No
|
37 |
-
tt0093565.jpg Is this movie titled moonstruck (1987)? Please answer yes or no. Yes
|
38 |
-
tt0093565.jpg Is this movie titled now you see me (2013)? Please answer yes or no. No
|
39 |
-
tt0093773.jpg Is this movie titled predator (1987)? Please answer yes or no. Yes
|
40 |
-
tt0093773.jpg Is this movie titled the cell (2000)? Please answer yes or no. No
|
41 |
-
tt0094291.jpg Is this movie directed by oliver stone? Please answer yes or no. Yes
|
42 |
-
tt0094291.jpg Is this movie directed by raja gosnell? Please answer yes or no. No
|
43 |
-
tt0096446.jpg Is this movie directed by ron howard? Please answer yes or no. Yes
|
44 |
-
tt0096446.jpg Is this movie directed by peter jackson? Please answer yes or no. No
|
45 |
-
tt0096463.jpg Is this movie directed by mike nichols? Please answer yes or no. Yes
|
46 |
-
tt0096463.jpg Is this movie directed by cary joji fukunaga? Please answer yes or no. No
|
47 |
-
tt0096895.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
48 |
-
tt0096895.jpg Is this movie originated from the country or region of china? Please answer yes or no. No
|
49 |
-
tt0097576.jpg Is this movie directed by steven spielberg? Please answer yes or no. Yes
|
50 |
-
tt0097576.jpg Is this movie directed by francis ford coppola? Please answer yes or no. No
|
51 |
-
tt0098635.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
52 |
-
tt0098635.jpg Is this movie originated from the country or region of spain? Please answer yes or no. No
|
53 |
-
tt0098724.jpg Is this movie titled sex, lies, and videotape (1989)? Please answer yes or no. Yes
|
54 |
-
tt0098724.jpg Is this movie titled final destination (2000)? Please answer yes or no. No
|
55 |
-
tt0099653.jpg Is this movie directed by jerry zucker? Please answer yes or no. Yes
|
56 |
-
tt0099653.jpg Is this movie directed by felix chong,alan mak? Please answer yes or no. No
|
57 |
-
tt0100112.jpg Is this movie originated from the country or region of france? Please answer yes or no. Yes
|
58 |
-
tt0100112.jpg Is this movie originated from the country or region of new zealand? Please answer yes or no. No
|
59 |
-
tt0100150.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
60 |
-
tt0100150.jpg Is this movie originated from the country or region of hong kong? Please answer yes or no. No
|
61 |
-
tt0100935.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
62 |
-
tt0100935.jpg Is this movie originated from the country or region of canada? Please answer yes or no. No
|
63 |
-
tt0101889.jpg Is this movie titled the fisher king (1991)? Please answer yes or no. Yes
|
64 |
-
tt0101889.jpg Is this movie titled a good day to die hard (2013)? Please answer yes or no. No
|
65 |
-
tt0101921.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
66 |
-
tt0101921.jpg Is this movie originated from the country or region of australia? Please answer yes or no. No
|
67 |
-
tt0107653.jpg Is this movie titled naked (1993)? Please answer yes or no. Yes
|
68 |
-
tt0107653.jpg Is this movie titled captain america: civil war (2016)? Please answer yes or no. No
|
69 |
-
tt0107808.jpg Is this movie titled a perfect world (1993)? Please answer yes or no. Yes
|
70 |
-
tt0107808.jpg Is this movie titled harold and maude (1971)? Please answer yes or no. No
|
71 |
-
tt0110201.jpg Is this movie titled hail the judge (1994)? Please answer yes or no. Yes
|
72 |
-
tt0110201.jpg Is this movie titled batman (1989)? Please answer yes or no. No
|
73 |
-
tt0112740.jpg Is this movie titled crimson tide (1995)? Please answer yes or no. Yes
|
74 |
-
tt0112740.jpg Is this movie titled insidious: the last key (2018)? Please answer yes or no. No
|
75 |
-
tt0113497.jpg Is this movie titled jumanji (1995)? Please answer yes or no. Yes
|
76 |
-
tt0113497.jpg Is this movie titled morgan (2016)? Please answer yes or no. No
|
77 |
-
tt0114369.jpg Is this movie titled se7en (1995)? Please answer yes or no. Yes
|
78 |
-
tt0114369.jpg Is this movie titled a perfect world (1993)? Please answer yes or no. No
|
79 |
-
tt0114388.jpg Is this movie directed by ang lee? Please answer yes or no. Yes
|
80 |
-
tt0114388.jpg Is this movie directed by david lowery? Please answer yes or no. No
|
81 |
-
tt0116209.jpg Is this movie directed by anthony minghella? Please answer yes or no. Yes
|
82 |
-
tt0116209.jpg Is this movie directed by john cassavetes? Please answer yes or no. No
|
83 |
-
tt0116629.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
84 |
-
tt0116629.jpg Is this movie originated from the country or region of australia? Please answer yes or no. No
|
85 |
-
tt0118636.jpg Is this movie titled apt pupil (1998)? Please answer yes or no. Yes
|
86 |
-
tt0118636.jpg Is this movie titled a good day to die hard (2013)? Please answer yes or no. No
|
87 |
-
tt0118655.jpg Is this movie directed by jay roach? Please answer yes or no. Yes
|
88 |
-
tt0118655.jpg Is this movie directed by peter jackson? Please answer yes or no. No
|
89 |
-
tt0118715.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
90 |
-
tt0118715.jpg Is this movie originated from the country or region of venezuela? Please answer yes or no. No
|
91 |
-
tt0119303.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
92 |
-
tt0119303.jpg Is this movie originated from the country or region of spain? Please answer yes or no. No
|
93 |
-
tt0120738.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
94 |
-
tt0120738.jpg Is this movie originated from the country or region of germany? Please answer yes or no. No
|
95 |
-
tt0129387.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
96 |
-
tt0129387.jpg Is this movie originated from the country or region of germany? Please answer yes or no. No
|
97 |
-
tt0133093.jpg Is this movie directed by lana wachowski,lilly wachowski? Please answer yes or no. Yes
|
98 |
-
tt0133093.jpg Is this movie directed by siu-tung ching? Please answer yes or no. No
|
99 |
-
tt0163025.jpg Is this movie directed by joe johnston? Please answer yes or no. Yes
|
100 |
-
tt0163025.jpg Is this movie directed by adam robitel? Please answer yes or no. No
|
101 |
-
tt0166924.jpg Is this movie titled mulholland drive (2001)? Please answer yes or no. Yes
|
102 |
-
tt0166924.jpg Is this movie titled lucky number slevin (2006)? Please answer yes or no. No
|
103 |
-
tt0167261.jpg Is this movie directed by peter jackson? Please answer yes or no. Yes
|
104 |
-
tt0167261.jpg Is this movie directed by gabe ibáñez? Please answer yes or no. No
|
105 |
-
tt0182789.jpg Is this movie titled bicentennial man (1999)? Please answer yes or no. Yes
|
106 |
-
tt0182789.jpg Is this movie titled ocean's eleven (2001)? Please answer yes or no. No
|
107 |
-
tt0187078.jpg Is this movie titled gone in 60 seconds (2000)? Please answer yes or no. Yes
|
108 |
-
tt0187078.jpg Is this movie titled avatar (2009)? Please answer yes or no. No
|
109 |
-
tt0195714.jpg Is this movie directed by james wong? Please answer yes or no. Yes
|
110 |
-
tt0195714.jpg Is this movie directed by bob rafelson? Please answer yes or no. No
|
111 |
-
tt0209958.jpg Is this movie titled the cell (2000)? Please answer yes or no. Yes
|
112 |
-
tt0209958.jpg Is this movie titled the matrix revolutions (2003)? Please answer yes or no. No
|
113 |
-
tt0232500.jpg Is this movie titled the fast and the furious (2001)? Please answer yes or no. Yes
|
114 |
-
tt0232500.jpg Is this movie titled east of eden (1955)? Please answer yes or no. No
|
115 |
-
tt0240772.jpg Is this movie directed by steven soderbergh? Please answer yes or no. Yes
|
116 |
-
tt0240772.jpg Is this movie directed by paul mcguigan? Please answer yes or no. No
|
117 |
-
tt0242653.jpg Is this movie titled the matrix revolutions (2003)? Please answer yes or no. Yes
|
118 |
-
tt0242653.jpg Is this movie titled sense and sensibility (1995)? Please answer yes or no. No
|
119 |
-
tt0244244.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
120 |
-
tt0244244.jpg Is this movie originated from the country or region of argentina? Please answer yes or no. No
|
121 |
-
tt0258463.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
122 |
-
tt0258463.jpg Is this movie originated from the country or region of italy? Please answer yes or no. No
|
123 |
-
tt0261392.jpg Is this movie titled jay and silent bob strike back (2001)? Please answer yes or no. Yes
|
124 |
-
tt0261392.jpg Is this movie titled avatar (2009)? Please answer yes or no. No
|
125 |
-
tt0264395.jpg Is this movie originated from the country or region of germany? Please answer yes or no. Yes
|
126 |
-
tt0264395.jpg Is this movie originated from the country or region of australia? Please answer yes or no. No
|
127 |
-
tt0266697.jpg Is this movie directed by quentin tarantino? Please answer yes or no. Yes
|
128 |
-
tt0266697.jpg Is this movie directed by peyton reed? Please answer yes or no. No
|
129 |
-
tt0268978.jpg Is this movie titled a beautiful mind (2001)? Please answer yes or no. Yes
|
130 |
-
tt0268978.jpg Is this movie titled blue jasmine (2013)? Please answer yes or no. No
|
131 |
-
tt0318627.jpg Is this movie titled resident evil: apocalypse (2004)? Please answer yes or no. Yes
|
132 |
-
tt0318627.jpg Is this movie titled the meddler (2015)? Please answer yes or no. No
|
133 |
-
tt0328107.jpg Is this movie titled man on fire (2004)? Please answer yes or no. Yes
|
134 |
-
tt0328107.jpg Is this movie titled real steel (2011)? Please answer yes or no. No
|
135 |
-
tt0338751.jpg Is this movie directed by martin scorsese? Please answer yes or no. Yes
|
136 |
-
tt0338751.jpg Is this movie directed by chris columbus? Please answer yes or no. No
|
137 |
-
tt0341495.jpg Is this movie directed by siu-tung ching? Please answer yes or no. Yes
|
138 |
-
tt0341495.jpg Is this movie directed by lorenzo vigas? Please answer yes or no. No
|
139 |
-
tt0351977.jpg Is this movie directed by kevin bray? Please answer yes or no. Yes
|
140 |
-
tt0351977.jpg Is this movie directed by joe johnston? Please answer yes or no. No
|
141 |
-
tt0369702.jpg Is this movie originated from the country or region of spain? Please answer yes or no. Yes
|
142 |
-
tt0369702.jpg Is this movie originated from the country or region of france? Please answer yes or no. No
|
143 |
-
tt0373469.jpg Is this movie directed by shane black? Please answer yes or no. Yes
|
144 |
-
tt0373469.jpg Is this movie directed by dennis dugan? Please answer yes or no. No
|
145 |
-
tt0378194.jpg Is this movie directed by quentin tarantino? Please answer yes or no. Yes
|
146 |
-
tt0378194.jpg Is this movie directed by todd phillips? Please answer yes or no. No
|
147 |
-
tt0379786.jpg Is this movie titled serenity (2005)? Please answer yes or no. Yes
|
148 |
-
tt0379786.jpg Is this movie titled bad genius (2017)? Please answer yes or no. No
|
149 |
-
tt0393109.jpg Is this movie titled brick (2005)? Please answer yes or no. Yes
|
150 |
-
tt0393109.jpg Is this movie titled sense and sensibility (1995)? Please answer yes or no. No
|
151 |
-
tt0399201.jpg Is this movie directed by michael bay? Please answer yes or no. Yes
|
152 |
-
tt0399201.jpg Is this movie directed by angelina jolie? Please answer yes or no. No
|
153 |
-
tt0425210.jpg Is this movie titled lucky number slevin (2006)? Please answer yes or no. Yes
|
154 |
-
tt0425210.jpg Is this movie titled the godfather (1972)? Please answer yes or no. No
|
155 |
-
tt0433035.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
156 |
-
tt0433035.jpg Is this movie originated from the country or region of new zealand? Please answer yes or no. No
|
157 |
-
tt0443680.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
158 |
-
tt0443680.jpg Is this movie originated from the country or region of germany? Please answer yes or no. No
|
159 |
-
tt0449088.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
160 |
-
tt0449088.jpg Is this movie originated from the country or region of japan? Please answer yes or no. No
|
161 |
-
tt0450259.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
162 |
-
tt0450259.jpg Is this movie originated from the country or region of china? Please answer yes or no. No
|
163 |
-
tt0462499.jpg Is this movie titled rambo (2008)? Please answer yes or no. Yes
|
164 |
-
tt0462499.jpg Is this movie titled walking tall (2004)? Please answer yes or no. No
|
165 |
-
tt0499549.jpg Is this movie directed by james cameron? Please answer yes or no. Yes
|
166 |
-
tt0499549.jpg Is this movie directed by jerry zucker? Please answer yes or no. No
|
167 |
-
tt0780653.jpg Is this movie titled the wolfman (2010)? Please answer yes or no. Yes
|
168 |
-
tt0780653.jpg Is this movie titled wild at heart (1990)? Please answer yes or no. No
|
169 |
-
tt0829482.jpg Is this movie directed by greg mottola? Please answer yes or no. Yes
|
170 |
-
tt0829482.jpg Is this movie directed by jing wong? Please answer yes or no. No
|
171 |
-
tt0848228.jpg Is this movie titled the avengers (2012)? Please answer yes or no. Yes
|
172 |
-
tt0848228.jpg Is this movie titled wolf warrior 2 (2017)? Please answer yes or no. No
|
173 |
-
tt0898367.jpg Is this movie directed by john hillcoat? Please answer yes or no. Yes
|
174 |
-
tt0898367.jpg Is this movie directed by franklin j. schaffner? Please answer yes or no. No
|
175 |
-
tt0942385.jpg Is this movie titled tropic thunder (2008)? Please answer yes or no. Yes
|
176 |
-
tt0942385.jpg Is this movie titled bad teacher (2011)? Please answer yes or no. No
|
177 |
-
tt0993846.jpg Is this movie titled the wolf of wall street (2013)? Please answer yes or no. Yes
|
178 |
-
tt0993846.jpg Is this movie titled lucky number slevin (2006)? Please answer yes or no. No
|
179 |
-
tt1017460.jpg Is this movie directed by vincenzo natali? Please answer yes or no. Yes
|
180 |
-
tt1017460.jpg Is this movie directed by raja gosnell? Please answer yes or no. No
|
181 |
-
tt1057500.jpg Is this movie directed by clint eastwood? Please answer yes or no. Yes
|
182 |
-
tt1057500.jpg Is this movie directed by john cassavetes? Please answer yes or no. No
|
183 |
-
tt1068680.jpg Is this movie titled yes man (2008)? Please answer yes or no. Yes
|
184 |
-
tt1068680.jpg Is this movie titled rio bravo (1959)? Please answer yes or no. No
|
185 |
-
tt1099212.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
186 |
-
tt1099212.jpg Is this movie originated from the country or region of japan? Please answer yes or no. No
|
187 |
-
tt1119646.jpg Is this movie directed by todd phillips? Please answer yes or no. Yes
|
188 |
-
tt1119646.jpg Is this movie directed by franklin j. schaffner? Please answer yes or no. No
|
189 |
-
tt1124037.jpg Is this movie directed by gary ross? Please answer yes or no. Yes
|
190 |
-
tt1124037.jpg Is this movie directed by francis ford coppola? Please answer yes or no. No
|
191 |
-
tt1229822.jpg Is this movie titled jane eyre (2011)? Please answer yes or no. Yes
|
192 |
-
tt1229822.jpg Is this movie titled kiss kiss bang bang (2005)? Please answer yes or no. No
|
193 |
-
tt1284575.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
194 |
-
tt1284575.jpg Is this movie originated from the country or region of bulgaria? Please answer yes or no. No
|
195 |
-
tt1291150.jpg Is this movie directed by jonathan liebesman? Please answer yes or no. Yes
|
196 |
-
tt1291150.jpg Is this movie directed by masahide ichii? Please answer yes or no. No
|
197 |
-
tt1300851.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
198 |
-
tt1300851.jpg Is this movie originated from the country or region of germany? Please answer yes or no. No
|
199 |
-
tt1305806.jpg Is this movie titled the secret in their eyes (2009)? Please answer yes or no. Yes
|
200 |
-
tt1305806.jpg Is this movie titled ocean's eleven (2001)? Please answer yes or no. No
|
201 |
-
tt1343092.jpg Is this movie directed by baz luhrmann? Please answer yes or no. Yes
|
202 |
-
tt1343092.jpg Is this movie directed by lorenzo vigas? Please answer yes or no. No
|
203 |
-
tt1385826.jpg Is this movie titled the adjustment bureau (2011)? Please answer yes or no. Yes
|
204 |
-
tt1385826.jpg Is this movie titled the last of sheila (1973)? Please answer yes or no. No
|
205 |
-
tt1403865.jpg Is this movie directed by ethan coen,joel coen? Please answer yes or no. Yes
|
206 |
-
tt1403865.jpg Is this movie directed by john hillcoat? Please answer yes or no. No
|
207 |
-
tt1438176.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
208 |
-
tt1438176.jpg Is this movie originated from the country or region of west germany? Please answer yes or no. No
|
209 |
-
tt1454029.jpg Is this movie titled the help (2011)? Please answer yes or no. Yes
|
210 |
-
tt1454029.jpg Is this movie titled avatar (2009)? Please answer yes or no. No
|
211 |
-
tt1560747.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
212 |
-
tt1560747.jpg Is this movie originated from the country or region of canada? Please answer yes or no. No
|
213 |
-
tt1564367.jpg Is this movie titled just go with it (2011)? Please answer yes or no. Yes
|
214 |
-
tt1564367.jpg Is this movie titled journey to the west (2013)? Please answer yes or no. No
|
215 |
-
tt1606378.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
216 |
-
tt1606378.jpg Is this movie originated from the country or region of uk? Please answer yes or no. No
|
217 |
-
tt1637725.jpg Is this movie titled ted (2012)? Please answer yes or no. Yes
|
218 |
-
tt1637725.jpg Is this movie titled lost in space (1998)? Please answer yes or no. No
|
219 |
-
tt1670345.jpg Is this movie titled now you see me (2013)? Please answer yes or no. Yes
|
220 |
-
tt1670345.jpg Is this movie titled bicentennial man (1999)? Please answer yes or no. No
|
221 |
-
tt1703957.jpg Is this movie titled genius (2016)? Please answer yes or no. Yes
|
222 |
-
tt1703957.jpg Is this movie titled fan (2016)? Please answer yes or no. No
|
223 |
-
tt1722484.jpg Is this movie directed by hermine huntgeburth? Please answer yes or no. Yes
|
224 |
-
tt1722484.jpg Is this movie directed by todd phillips? Please answer yes or no. No
|
225 |
-
tt1800241.jpg Is this movie directed by david o. russell? Please answer yes or no. Yes
|
226 |
-
tt1800241.jpg Is this movie directed by raja gosnell? Please answer yes or no. No
|
227 |
-
tt1809398.jpg Is this movie titled unbroken (2014)? Please answer yes or no. Yes
|
228 |
-
tt1809398.jpg Is this movie titled home alone 3 (1997)? Please answer yes or no. No
|
229 |
-
tt1971325.jpg Is this movie originated from the country or region of bulgaria? Please answer yes or no. Yes
|
230 |
-
tt1971325.jpg Is this movie originated from the country or region of spain? Please answer yes or no. No
|
231 |
-
tt1974419.jpg Is this movie titled the neon demon (2016)? Please answer yes or no. Yes
|
232 |
-
tt1974419.jpg Is this movie titled man on fire (2004)? Please answer yes or no. No
|
233 |
-
tt2017561.jpg Is this movie directed by stephen chow,chi-kin kwok? Please answer yes or no. Yes
|
234 |
-
tt2017561.jpg Is this movie directed by craig gillespie? Please answer yes or no. No
|
235 |
-
tt2078768.jpg Is this movie originated from the country or region of hong kong? Please answer yes or no. Yes
|
236 |
-
tt2078768.jpg Is this movie originated from the country or region of venezuela? Please answer yes or no. No
|
237 |
-
tt2132285.jpg Is this movie titled the bling ring (2013)? Please answer yes or no. Yes
|
238 |
-
tt2132285.jpg Is this movie titled tropic thunder (2008)? Please answer yes or no. No
|
239 |
-
tt2238032.jpg Is this movie titled skiptrace (2016)? Please answer yes or no. Yes
|
240 |
-
tt2238032.jpg Is this movie titled the bourne identity (2002)? Please answer yes or no. No
|
241 |
-
tt2334873.jpg Is this movie titled blue jasmine (2013)? Please answer yes or no. Yes
|
242 |
-
tt2334873.jpg Is this movie titled a good day to die hard (2013)? Please answer yes or no. No
|
243 |
-
tt2788732.jpg Is this movie titled pete's dragon (2016)? Please answer yes or no. Yes
|
244 |
-
tt2788732.jpg Is this movie titled willow (1988)? Please answer yes or no. No
|
245 |
-
tt2802144.jpg Is this movie directed by matthew vaughn? Please answer yes or no. Yes
|
246 |
-
tt2802144.jpg Is this movie directed by dietrich brüggemann? Please answer yes or no. No
|
247 |
-
tt2908856.jpg Is this movie directed by israel horovitz? Please answer yes or no. Yes
|
248 |
-
tt2908856.jpg Is this movie directed by mike nichols? Please answer yes or no. No
|
249 |
-
tt2980516.jpg Is this movie titled the theory of everything (2014)? Please answer yes or no. Yes
|
250 |
-
tt2980516.jpg Is this movie titled stations of the cross (2014)? Please answer yes or no. No
|
251 |
-
tt3077214.jpg Is this movie titled suffragette (2015)? Please answer yes or no. Yes
|
252 |
-
tt3077214.jpg Is this movie titled east of eden (1955)? Please answer yes or no. No
|
253 |
-
tt3316960.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
254 |
-
tt3316960.jpg Is this movie originated from the country or region of west germany? Please answer yes or no. No
|
255 |
-
tt3465916.jpg Is this movie originated from the country or region of germany? Please answer yes or no. Yes
|
256 |
-
tt3465916.jpg Is this movie originated from the country or region of spain? Please answer yes or no. No
|
257 |
-
tt3495026.jpg Is this movie titled fan (2016)? Please answer yes or no. Yes
|
258 |
-
tt3495026.jpg Is this movie titled from afar (2015)? Please answer yes or no. No
|
259 |
-
tt3498820.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
260 |
-
tt3498820.jpg Is this movie originated from the country or region of germany? Please answer yes or no. No
|
261 |
-
tt3700804.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
262 |
-
tt3700804.jpg Is this movie originated from the country or region of uk? Please answer yes or no. No
|
263 |
-
tt3824458.jpg Is this movie titled tangerine (2015)? Please answer yes or no. Yes
|
264 |
-
tt3824458.jpg Is this movie titled miller's crossing (1990)? Please answer yes or no. No
|
265 |
-
tt3860916.jpg Is this movie directed by ben howling? Please answer yes or no. Yes
|
266 |
-
tt3860916.jpg Is this movie directed by quentin tarantino? Please answer yes or no. No
|
267 |
-
tt4046784.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
268 |
-
tt4046784.jpg Is this movie originated from the country or region of uk? Please answer yes or no. No
|
269 |
-
tt4242158.jpg Is this movie titled lost in hong kong (2015)? Please answer yes or no. Yes
|
270 |
-
tt4242158.jpg Is this movie titled harold and maude (1971)? Please answer yes or no. No
|
271 |
-
tt4273292.jpg Is this movie directed by babak anvari? Please answer yes or no. Yes
|
272 |
-
tt4273292.jpg Is this movie directed by ethan coen,joel coen? Please answer yes or no. No
|
273 |
-
tt4501454.jpg Is this movie directed by lorene scafaria? Please answer yes or no. Yes
|
274 |
-
tt4501454.jpg Is this movie directed by herbert ross? Please answer yes or no. No
|
275 |
-
tt4520364.jpg Is this movie directed by luke scott? Please answer yes or no. Yes
|
276 |
-
tt4520364.jpg Is this movie directed by dominic sena? Please answer yes or no. No
|
277 |
-
tt4651520.jpg Is this movie originated from the country or region of usa? Please answer yes or no. Yes
|
278 |
-
tt4651520.jpg Is this movie originated from the country or region of china? Please answer yes or no. No
|
279 |
-
tt4721400.jpg Is this movie directed by lorenzo vigas? Please answer yes or no. Yes
|
280 |
-
tt4721400.jpg Is this movie directed by jonathan liebesman? Please answer yes or no. No
|
281 |
-
tt4972062.jpg Is this movie directed by mike birbiglia? Please answer yes or no. Yes
|
282 |
-
tt4972062.jpg Is this movie directed by david fincher? Please answer yes or no. No
|
283 |
-
tt5564148.jpg Is this movie directed by masahide ichii? Please answer yes or no. Yes
|
284 |
-
tt5564148.jpg Is this movie directed by dietrich brüggemann? Please answer yes or no. No
|
285 |
-
tt5688868.jpg Is this movie titled primal rage: the legend of konga (2018)? Please answer yes or no. Yes
|
286 |
-
tt5688868.jpg Is this movie titled the neon demon (2016)? Please answer yes or no. No
|
287 |
-
tt5726086.jpg Is this movie directed by adam robitel? Please answer yes or no. Yes
|
288 |
-
tt5726086.jpg Is this movie directed by gore verbinski? Please answer yes or no. No
|
289 |
-
tt6788942.jpg Is this movie originated from the country or region of thailand? Please answer yes or no. Yes
|
290 |
-
tt6788942.jpg Is this movie originated from the country or region of argentina? Please answer yes or no. No
|
291 |
-
tt7055592.jpg Is this movie titled brotherhood of blades ii: the infernal battlefield (2017)? Please answer yes or no. Yes
|
292 |
-
tt7055592.jpg Is this movie titled stations of the cross (2014)? Please answer yes or no. No
|
293 |
-
tt7131870.jpg Is this movie directed by jing wu? Please answer yes or no. Yes
|
294 |
-
tt7131870.jpg Is this movie directed by david lynch? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/scene.txt
DELETED
@@ -1,400 +0,0 @@
|
|
1 |
-
Places365_val_00000001.jpg Is this picture captured in a place of greenhouse indoor? Please answer yes or no. Yes
|
2 |
-
Places365_val_00000001.jpg Is this picture captured in a place of waiting room? Please answer yes or no. No
|
3 |
-
Places365_val_00000002.jpg Is this photo taken in a place of wet bar? Please answer yes or no. Yes
|
4 |
-
Places365_val_00000002.jpg Is this photo taken in a place of stage indoor? Please answer yes or no. No
|
5 |
-
Places365_val_00000003.jpg Is this picture captured in a place of clean room? Please answer yes or no. Yes
|
6 |
-
Places365_val_00000003.jpg Is this picture captured in a place of bookstore? Please answer yes or no. No
|
7 |
-
Places365_val_00000004.jpg Is this picture captured in a place of golf course? Please answer yes or no. Yes
|
8 |
-
Places365_val_00000004.jpg Is this picture captured in a place of computer room? Please answer yes or no. No
|
9 |
-
Places365_val_00000005.jpg Is this picture captured in a place of rock arch? Please answer yes or no. Yes
|
10 |
-
Places365_val_00000005.jpg Is this picture captured in a place of desert sand? Please answer yes or no. No
|
11 |
-
Places365_val_00000006.jpg Is this photo taken in a place of corridor? Please answer yes or no. Yes
|
12 |
-
Places365_val_00000006.jpg Is this photo taken in a place of jail cell? Please answer yes or no. No
|
13 |
-
Places365_val_00000007.jpg Does this image describe a place of canyon? Please answer yes or no. Yes
|
14 |
-
Places365_val_00000007.jpg Does this image describe a place of basement? Please answer yes or no. No
|
15 |
-
Places365_val_00000008.jpg Is this picture captured in a place of dining room? Please answer yes or no. Yes
|
16 |
-
Places365_val_00000008.jpg Is this picture captured in a place of ball pit? Please answer yes or no. No
|
17 |
-
Places365_val_00000009.jpg Is this picture captured in a place of forest broadleaf? Please answer yes or no. Yes
|
18 |
-
Places365_val_00000009.jpg Is this picture captured in a place of swamp? Please answer yes or no. No
|
19 |
-
Places365_val_00000010.jpg Does this image describe a place of shopping mall indoor? Please answer yes or no. Yes
|
20 |
-
Places365_val_00000010.jpg Does this image describe a place of mosque outdoor? Please answer yes or no. No
|
21 |
-
Places365_val_00000011.jpg Is this photo taken in a place of baseball field? Please answer yes or no. Yes
|
22 |
-
Places365_val_00000011.jpg Is this photo taken in a place of bus station indoor? Please answer yes or no. No
|
23 |
-
Places365_val_00000012.jpg Does this image describe a place of campus? Please answer yes or no. Yes
|
24 |
-
Places365_val_00000012.jpg Does this image describe a place of sandbox? Please answer yes or no. No
|
25 |
-
Places365_val_00000013.jpg Is this picture captured in a place of beach house? Please answer yes or no. Yes
|
26 |
-
Places365_val_00000013.jpg Is this picture captured in a place of alcove? Please answer yes or no. No
|
27 |
-
Places365_val_00000014.jpg Does this image describe a place of art gallery? Please answer yes or no. Yes
|
28 |
-
Places365_val_00000014.jpg Does this image describe a place of volleyball court outdoor? Please answer yes or no. No
|
29 |
-
Places365_val_00000015.jpg Does this image describe a place of bus interior? Please answer yes or no. Yes
|
30 |
-
Places365_val_00000015.jpg Does this image describe a place of butchers shop? Please answer yes or no. No
|
31 |
-
Places365_val_00000016.jpg Does this image describe a place of gymnasium indoor? Please answer yes or no. Yes
|
32 |
-
Places365_val_00000016.jpg Does this image describe a place of crevasse? Please answer yes or no. No
|
33 |
-
Places365_val_00000017.jpg Is this picture captured in a place of glacier? Please answer yes or no. Yes
|
34 |
-
Places365_val_00000017.jpg Is this picture captured in a place of fishpond? Please answer yes or no. No
|
35 |
-
Places365_val_00000018.jpg Is this photo taken in a place of nursing home? Please answer yes or no. Yes
|
36 |
-
Places365_val_00000018.jpg Is this photo taken in a place of server room? Please answer yes or no. No
|
37 |
-
Places365_val_00000019.jpg Does this image describe a place of storage room? Please answer yes or no. Yes
|
38 |
-
Places365_val_00000019.jpg Does this image describe a place of aquarium? Please answer yes or no. No
|
39 |
-
Places365_val_00000020.jpg Is this picture captured in a place of florist shop indoor? Please answer yes or no. Yes
|
40 |
-
Places365_val_00000020.jpg Is this picture captured in a place of office? Please answer yes or no. No
|
41 |
-
Places365_val_00000021.jpg Is this picture captured in a place of restaurant kitchen? Please answer yes or no. Yes
|
42 |
-
Places365_val_00000021.jpg Is this picture captured in a place of garage outdoor? Please answer yes or no. No
|
43 |
-
Places365_val_00000022.jpg Is this photo taken in a place of recreation room? Please answer yes or no. Yes
|
44 |
-
Places365_val_00000022.jpg Is this photo taken in a place of runway? Please answer yes or no. No
|
45 |
-
Places365_val_00000023.jpg Does this image describe a place of schoolhouse? Please answer yes or no. Yes
|
46 |
-
Places365_val_00000023.jpg Does this image describe a place of raft? Please answer yes or no. No
|
47 |
-
Places365_val_00000024.jpg Does this image describe a place of amusement arcade? Please answer yes or no. Yes
|
48 |
-
Places365_val_00000024.jpg Does this image describe a place of medina? Please answer yes or no. No
|
49 |
-
Places365_val_00000025.jpg Is this photo taken in a place of ocean? Please answer yes or no. Yes
|
50 |
-
Places365_val_00000025.jpg Is this photo taken in a place of sauna? Please answer yes or no. No
|
51 |
-
Places365_val_00000026.jpg Does this image describe a place of river? Please answer yes or no. Yes
|
52 |
-
Places365_val_00000026.jpg Does this image describe a place of corral? Please answer yes or no. No
|
53 |
-
Places365_val_00000027.jpg Is this photo taken in a place of pub indoor? Please answer yes or no. Yes
|
54 |
-
Places365_val_00000027.jpg Is this photo taken in a place of basement? Please answer yes or no. No
|
55 |
-
Places365_val_00000028.jpg Is this picture captured in a place of lecture room? Please answer yes or no. Yes
|
56 |
-
Places365_val_00000028.jpg Is this picture captured in a place of aqueduct? Please answer yes or no. No
|
57 |
-
Places365_val_00000029.jpg Is this photo taken in a place of japanese garden? Please answer yes or no. Yes
|
58 |
-
Places365_val_00000029.jpg Is this photo taken in a place of pharmacy? Please answer yes or no. No
|
59 |
-
Places365_val_00000030.jpg Does this image describe a place of motel? Please answer yes or no. Yes
|
60 |
-
Places365_val_00000030.jpg Does this image describe a place of toyshop? Please answer yes or no. No
|
61 |
-
Places365_val_00000031.jpg Does this image describe a place of assembly line? Please answer yes or no. Yes
|
62 |
-
Places365_val_00000031.jpg Does this image describe a place of beer garden? Please answer yes or no. No
|
63 |
-
Places365_val_00000032.jpg Does this image describe a place of campsite? Please answer yes or no. Yes
|
64 |
-
Places365_val_00000032.jpg Does this image describe a place of elevator shaft? Please answer yes or no. No
|
65 |
-
Places365_val_00000033.jpg Is this photo taken in a place of florist shop indoor? Please answer yes or no. Yes
|
66 |
-
Places365_val_00000033.jpg Is this photo taken in a place of sushi bar? Please answer yes or no. No
|
67 |
-
Places365_val_00000034.jpg Does this image describe a place of racecourse? Please answer yes or no. Yes
|
68 |
-
Places365_val_00000034.jpg Does this image describe a place of galley? Please answer yes or no. No
|
69 |
-
Places365_val_00000035.jpg Is this photo taken in a place of kennel outdoor? Please answer yes or no. Yes
|
70 |
-
Places365_val_00000035.jpg Is this photo taken in a place of bathroom? Please answer yes or no. No
|
71 |
-
Places365_val_00000036.jpg Is this picture captured in a place of bus interior? Please answer yes or no. Yes
|
72 |
-
Places365_val_00000036.jpg Is this picture captured in a place of mansion? Please answer yes or no. No
|
73 |
-
Places365_val_00000037.jpg Does this image describe a place of dressing room? Please answer yes or no. Yes
|
74 |
-
Places365_val_00000037.jpg Does this image describe a place of chemistry lab? Please answer yes or no. No
|
75 |
-
Places365_val_00000038.jpg Does this image describe a place of wind farm? Please answer yes or no. Yes
|
76 |
-
Places365_val_00000038.jpg Does this image describe a place of volleyball court outdoor? Please answer yes or no. No
|
77 |
-
Places365_val_00000039.jpg Is this picture captured in a place of auto factory? Please answer yes or no. Yes
|
78 |
-
Places365_val_00000039.jpg Is this picture captured in a place of tree farm? Please answer yes or no. No
|
79 |
-
Places365_val_00000040.jpg Is this picture captured in a place of beach? Please answer yes or no. Yes
|
80 |
-
Places365_val_00000040.jpg Is this picture captured in a place of library outdoor? Please answer yes or no. No
|
81 |
-
Places365_val_00000041.jpg Is this photo taken in a place of mountain? Please answer yes or no. Yes
|
82 |
-
Places365_val_00000041.jpg Is this photo taken in a place of formal garden? Please answer yes or no. No
|
83 |
-
Places365_val_00000042.jpg Does this image describe a place of pavilion? Please answer yes or no. Yes
|
84 |
-
Places365_val_00000042.jpg Does this image describe a place of stable? Please answer yes or no. No
|
85 |
-
Places365_val_00000043.jpg Does this image describe a place of tree house? Please answer yes or no. Yes
|
86 |
-
Places365_val_00000043.jpg Does this image describe a place of patio? Please answer yes or no. No
|
87 |
-
Places365_val_00000044.jpg Is this photo taken in a place of coffee shop? Please answer yes or no. Yes
|
88 |
-
Places365_val_00000044.jpg Is this photo taken in a place of elevator lobby? Please answer yes or no. No
|
89 |
-
Places365_val_00000045.jpg Is this photo taken in a place of skyscraper? Please answer yes or no. Yes
|
90 |
-
Places365_val_00000045.jpg Is this photo taken in a place of forest broadleaf? Please answer yes or no. No
|
91 |
-
Places365_val_00000046.jpg Does this image describe a place of street? Please answer yes or no. Yes
|
92 |
-
Places365_val_00000046.jpg Does this image describe a place of golf course? Please answer yes or no. No
|
93 |
-
Places365_val_00000047.jpg Is this picture captured in a place of alley? Please answer yes or no. Yes
|
94 |
-
Places365_val_00000047.jpg Is this picture captured in a place of boardwalk? Please answer yes or no. No
|
95 |
-
Places365_val_00000048.jpg Is this photo taken in a place of supermarket? Please answer yes or no. Yes
|
96 |
-
Places365_val_00000048.jpg Is this photo taken in a place of creek? Please answer yes or no. No
|
97 |
-
Places365_val_00000049.jpg Is this picture captured in a place of arena hockey? Please answer yes or no. Yes
|
98 |
-
Places365_val_00000049.jpg Is this picture captured in a place of ski slope? Please answer yes or no. No
|
99 |
-
Places365_val_00000050.jpg Is this picture captured in a place of zen garden? Please answer yes or no. Yes
|
100 |
-
Places365_val_00000050.jpg Is this picture captured in a place of bazaar indoor? Please answer yes or no. No
|
101 |
-
Places365_val_00000051.jpg Is this picture captured in a place of library indoor? Please answer yes or no. Yes
|
102 |
-
Places365_val_00000051.jpg Is this picture captured in a place of orchard? Please answer yes or no. No
|
103 |
-
Places365_val_00000052.jpg Is this photo taken in a place of ice skating rink indoor? Please answer yes or no. Yes
|
104 |
-
Places365_val_00000052.jpg Is this photo taken in a place of wind farm? Please answer yes or no. No
|
105 |
-
Places365_val_00000053.jpg Is this picture captured in a place of arena hockey? Please answer yes or no. Yes
|
106 |
-
Places365_val_00000053.jpg Is this picture captured in a place of loading dock? Please answer yes or no. No
|
107 |
-
Places365_val_00000054.jpg Does this image describe a place of chalet? Please answer yes or no. Yes
|
108 |
-
Places365_val_00000054.jpg Does this image describe a place of tower? Please answer yes or no. No
|
109 |
-
Places365_val_00000055.jpg Does this image describe a place of bedchamber? Please answer yes or no. Yes
|
110 |
-
Places365_val_00000055.jpg Does this image describe a place of music studio? Please answer yes or no. No
|
111 |
-
Places365_val_00000056.jpg Is this photo taken in a place of botanical garden? Please answer yes or no. Yes
|
112 |
-
Places365_val_00000056.jpg Is this photo taken in a place of legislative chamber? Please answer yes or no. No
|
113 |
-
Places365_val_00000057.jpg Is this picture captured in a place of galley? Please answer yes or no. Yes
|
114 |
-
Places365_val_00000057.jpg Is this picture captured in a place of physics laboratory? Please answer yes or no. No
|
115 |
-
Places365_val_00000058.jpg Does this image describe a place of department store? Please answer yes or no. Yes
|
116 |
-
Places365_val_00000058.jpg Does this image describe a place of rope bridge? Please answer yes or no. No
|
117 |
-
Places365_val_00000059.jpg Is this photo taken in a place of schoolhouse? Please answer yes or no. Yes
|
118 |
-
Places365_val_00000059.jpg Is this photo taken in a place of hangar outdoor? Please answer yes or no. No
|
119 |
-
Places365_val_00000060.jpg Is this photo taken in a place of atrium public? Please answer yes or no. Yes
|
120 |
-
Places365_val_00000060.jpg Is this photo taken in a place of subway station platform? Please answer yes or no. No
|
121 |
-
Places365_val_00000061.jpg Is this photo taken in a place of dam? Please answer yes or no. Yes
|
122 |
-
Places365_val_00000061.jpg Is this photo taken in a place of ice skating rink indoor? Please answer yes or no. No
|
123 |
-
Places365_val_00000062.jpg Does this image describe a place of army base? Please answer yes or no. Yes
|
124 |
-
Places365_val_00000062.jpg Does this image describe a place of train station platform? Please answer yes or no. No
|
125 |
-
Places365_val_00000063.jpg Does this image describe a place of gas station? Please answer yes or no. Yes
|
126 |
-
Places365_val_00000063.jpg Does this image describe a place of doorway outdoor? Please answer yes or no. No
|
127 |
-
Places365_val_00000064.jpg Does this image describe a place of ballroom? Please answer yes or no. Yes
|
128 |
-
Places365_val_00000064.jpg Does this image describe a place of corn field? Please answer yes or no. No
|
129 |
-
Places365_val_00000065.jpg Does this image describe a place of biology laboratory? Please answer yes or no. Yes
|
130 |
-
Places365_val_00000065.jpg Does this image describe a place of candy store? Please answer yes or no. No
|
131 |
-
Places365_val_00000066.jpg Does this image describe a place of pantry? Please answer yes or no. Yes
|
132 |
-
Places365_val_00000066.jpg Does this image describe a place of lighthouse? Please answer yes or no. No
|
133 |
-
Places365_val_00000067.jpg Is this picture captured in a place of greenhouse indoor? Please answer yes or no. Yes
|
134 |
-
Places365_val_00000067.jpg Is this picture captured in a place of pasture? Please answer yes or no. No
|
135 |
-
Places365_val_00000068.jpg Is this photo taken in a place of kasbah? Please answer yes or no. Yes
|
136 |
-
Places365_val_00000068.jpg Is this photo taken in a place of swimming hole? Please answer yes or no. No
|
137 |
-
Places365_val_00000069.jpg Is this picture captured in a place of mausoleum? Please answer yes or no. Yes
|
138 |
-
Places365_val_00000069.jpg Is this picture captured in a place of alcove? Please answer yes or no. No
|
139 |
-
Places365_val_00000070.jpg Is this picture captured in a place of booth indoor? Please answer yes or no. Yes
|
140 |
-
Places365_val_00000070.jpg Is this picture captured in a place of bazaar indoor? Please answer yes or no. No
|
141 |
-
Places365_val_00000071.jpg Is this picture captured in a place of youth hostel? Please answer yes or no. Yes
|
142 |
-
Places365_val_00000071.jpg Is this picture captured in a place of landfill? Please answer yes or no. No
|
143 |
-
Places365_val_00000072.jpg Does this image describe a place of fire escape? Please answer yes or no. Yes
|
144 |
-
Places365_val_00000072.jpg Does this image describe a place of playroom? Please answer yes or no. No
|
145 |
-
Places365_val_00000073.jpg Is this photo taken in a place of rice paddy? Please answer yes or no. Yes
|
146 |
-
Places365_val_00000073.jpg Is this photo taken in a place of bus station indoor? Please answer yes or no. No
|
147 |
-
Places365_val_00000074.jpg Is this photo taken in a place of mausoleum? Please answer yes or no. Yes
|
148 |
-
Places365_val_00000074.jpg Is this photo taken in a place of train station platform? Please answer yes or no. No
|
149 |
-
Places365_val_00000075.jpg Is this photo taken in a place of entrance hall? Please answer yes or no. Yes
|
150 |
-
Places365_val_00000075.jpg Is this photo taken in a place of residential neighborhood? Please answer yes or no. No
|
151 |
-
Places365_val_00000076.jpg Is this photo taken in a place of bakery shop? Please answer yes or no. Yes
|
152 |
-
Places365_val_00000076.jpg Is this photo taken in a place of doorway outdoor? Please answer yes or no. No
|
153 |
-
Places365_val_00000077.jpg Does this image describe a place of escalator indoor? Please answer yes or no. Yes
|
154 |
-
Places365_val_00000077.jpg Does this image describe a place of ice shelf? Please answer yes or no. No
|
155 |
-
Places365_val_00000078.jpg Is this picture captured in a place of elevator shaft? Please answer yes or no. Yes
|
156 |
-
Places365_val_00000078.jpg Is this picture captured in a place of fire escape? Please answer yes or no. No
|
157 |
-
Places365_val_00000079.jpg Is this picture captured in a place of industrial area? Please answer yes or no. Yes
|
158 |
-
Places365_val_00000079.jpg Is this picture captured in a place of botanical garden? Please answer yes or no. No
|
159 |
-
Places365_val_00000080.jpg Is this photo taken in a place of escalator indoor? Please answer yes or no. Yes
|
160 |
-
Places365_val_00000080.jpg Is this photo taken in a place of coffee shop? Please answer yes or no. No
|
161 |
-
Places365_val_00000081.jpg Does this image describe a place of operating room? Please answer yes or no. Yes
|
162 |
-
Places365_val_00000081.jpg Does this image describe a place of house? Please answer yes or no. No
|
163 |
-
Places365_val_00000082.jpg Is this photo taken in a place of mosque outdoor? Please answer yes or no. Yes
|
164 |
-
Places365_val_00000082.jpg Is this photo taken in a place of recreation room? Please answer yes or no. No
|
165 |
-
Places365_val_00000083.jpg Is this photo taken in a place of cottage? Please answer yes or no. Yes
|
166 |
-
Places365_val_00000083.jpg Is this photo taken in a place of assembly line? Please answer yes or no. No
|
167 |
-
Places365_val_00000084.jpg Does this image describe a place of courtyard? Please answer yes or no. Yes
|
168 |
-
Places365_val_00000084.jpg Does this image describe a place of greenhouse outdoor? Please answer yes or no. No
|
169 |
-
Places365_val_00000085.jpg Is this photo taken in a place of flea market indoor? Please answer yes or no. Yes
|
170 |
-
Places365_val_00000085.jpg Is this photo taken in a place of pavilion? Please answer yes or no. No
|
171 |
-
Places365_val_00000086.jpg Does this image describe a place of banquet hall? Please answer yes or no. Yes
|
172 |
-
Places365_val_00000086.jpg Does this image describe a place of storage room? Please answer yes or no. No
|
173 |
-
Places365_val_00000087.jpg Is this photo taken in a place of auto factory? Please answer yes or no. Yes
|
174 |
-
Places365_val_00000087.jpg Is this photo taken in a place of motel? Please answer yes or no. No
|
175 |
-
Places365_val_00000088.jpg Is this photo taken in a place of cockpit? Please answer yes or no. Yes
|
176 |
-
Places365_val_00000088.jpg Is this photo taken in a place of gift shop? Please answer yes or no. No
|
177 |
-
Places365_val_00000089.jpg Is this photo taken in a place of martial arts gym? Please answer yes or no. Yes
|
178 |
-
Places365_val_00000089.jpg Is this photo taken in a place of atrium public? Please answer yes or no. No
|
179 |
-
Places365_val_00000090.jpg Is this picture captured in a place of general store outdoor? Please answer yes or no. Yes
|
180 |
-
Places365_val_00000090.jpg Is this picture captured in a place of bazaar outdoor? Please answer yes or no. No
|
181 |
-
Places365_val_00000091.jpg Is this photo taken in a place of motel? Please answer yes or no. Yes
|
182 |
-
Places365_val_00000091.jpg Is this photo taken in a place of chemistry lab? Please answer yes or no. No
|
183 |
-
Places365_val_00000092.jpg Is this photo taken in a place of playground? Please answer yes or no. Yes
|
184 |
-
Places365_val_00000092.jpg Is this photo taken in a place of snowfield? Please answer yes or no. No
|
185 |
-
Places365_val_00000093.jpg Is this picture captured in a place of basement? Please answer yes or no. Yes
|
186 |
-
Places365_val_00000093.jpg Is this picture captured in a place of jewelry shop? Please answer yes or no. No
|
187 |
-
Places365_val_00000094.jpg Is this picture captured in a place of playroom? Please answer yes or no. Yes
|
188 |
-
Places365_val_00000094.jpg Is this picture captured in a place of pier? Please answer yes or no. No
|
189 |
-
Places365_val_00000095.jpg Is this photo taken in a place of fabric store? Please answer yes or no. Yes
|
190 |
-
Places365_val_00000095.jpg Is this photo taken in a place of beauty salon? Please answer yes or no. No
|
191 |
-
Places365_val_00000096.jpg Is this picture captured in a place of forest path? Please answer yes or no. Yes
|
192 |
-
Places365_val_00000096.jpg Is this picture captured in a place of balcony interior? Please answer yes or no. No
|
193 |
-
Places365_val_00000097.jpg Does this image describe a place of hangar indoor? Please answer yes or no. Yes
|
194 |
-
Places365_val_00000097.jpg Does this image describe a place of vegetable garden? Please answer yes or no. No
|
195 |
-
Places365_val_00000098.jpg Does this image describe a place of crosswalk? Please answer yes or no. Yes
|
196 |
-
Places365_val_00000098.jpg Does this image describe a place of snowfield? Please answer yes or no. No
|
197 |
-
Places365_val_00000099.jpg Does this image describe a place of physics laboratory? Please answer yes or no. Yes
|
198 |
-
Places365_val_00000099.jpg Does this image describe a place of stage indoor? Please answer yes or no. No
|
199 |
-
Places365_val_00000100.jpg Is this picture captured in a place of pub indoor? Please answer yes or no. Yes
|
200 |
-
Places365_val_00000100.jpg Is this picture captured in a place of pier? Please answer yes or no. No
|
201 |
-
Places365_val_00000101.jpg Is this photo taken in a place of schoolhouse? Please answer yes or no. Yes
|
202 |
-
Places365_val_00000101.jpg Is this photo taken in a place of vineyard? Please answer yes or no. No
|
203 |
-
Places365_val_00000102.jpg Is this photo taken in a place of industrial area? Please answer yes or no. Yes
|
204 |
-
Places365_val_00000102.jpg Is this photo taken in a place of street? Please answer yes or no. No
|
205 |
-
Places365_val_00000103.jpg Is this picture captured in a place of baseball field? Please answer yes or no. Yes
|
206 |
-
Places365_val_00000103.jpg Is this picture captured in a place of airfield? Please answer yes or no. No
|
207 |
-
Places365_val_00000104.jpg Is this picture captured in a place of ice floe? Please answer yes or no. Yes
|
208 |
-
Places365_val_00000104.jpg Is this picture captured in a place of kindergarden classroom? Please answer yes or no. No
|
209 |
-
Places365_val_00000105.jpg Is this picture captured in a place of train interior? Please answer yes or no. Yes
|
210 |
-
Places365_val_00000105.jpg Is this picture captured in a place of movie theater indoor? Please answer yes or no. No
|
211 |
-
Places365_val_00000106.jpg Is this picture captured in a place of desert sand? Please answer yes or no. Yes
|
212 |
-
Places365_val_00000106.jpg Is this picture captured in a place of burial chamber? Please answer yes or no. No
|
213 |
-
Places365_val_00000107.jpg Is this photo taken in a place of castle? Please answer yes or no. Yes
|
214 |
-
Places365_val_00000107.jpg Is this photo taken in a place of computer room? Please answer yes or no. No
|
215 |
-
Places365_val_00000108.jpg Does this image describe a place of burial chamber? Please answer yes or no. Yes
|
216 |
-
Places365_val_00000108.jpg Does this image describe a place of oilrig? Please answer yes or no. No
|
217 |
-
Places365_val_00000109.jpg Is this photo taken in a place of nursing home? Please answer yes or no. Yes
|
218 |
-
Places365_val_00000109.jpg Is this photo taken in a place of amusement park? Please answer yes or no. No
|
219 |
-
Places365_val_00000110.jpg Does this image describe a place of church indoor? Please answer yes or no. Yes
|
220 |
-
Places365_val_00000110.jpg Does this image describe a place of general store outdoor? Please answer yes or no. No
|
221 |
-
Places365_val_00000111.jpg Is this picture captured in a place of palace? Please answer yes or no. Yes
|
222 |
-
Places365_val_00000111.jpg Is this picture captured in a place of tree house? Please answer yes or no. No
|
223 |
-
Places365_val_00000112.jpg Does this image describe a place of bus station indoor? Please answer yes or no. Yes
|
224 |
-
Places365_val_00000112.jpg Does this image describe a place of hardware store? Please answer yes or no. No
|
225 |
-
Places365_val_00000113.jpg Is this picture captured in a place of atrium public? Please answer yes or no. Yes
|
226 |
-
Places365_val_00000113.jpg Is this picture captured in a place of music studio? Please answer yes or no. No
|
227 |
-
Places365_val_00000114.jpg Is this photo taken in a place of butte? Please answer yes or no. Yes
|
228 |
-
Places365_val_00000114.jpg Is this photo taken in a place of valley? Please answer yes or no. No
|
229 |
-
Places365_val_00000115.jpg Is this picture captured in a place of zen garden? Please answer yes or no. Yes
|
230 |
-
Places365_val_00000115.jpg Is this picture captured in a place of banquet hall? Please answer yes or no. No
|
231 |
-
Places365_val_00000116.jpg Is this picture captured in a place of racecourse? Please answer yes or no. Yes
|
232 |
-
Places365_val_00000116.jpg Is this picture captured in a place of basketball court indoor? Please answer yes or no. No
|
233 |
-
Places365_val_00000117.jpg Is this picture captured in a place of cliff? Please answer yes or no. Yes
|
234 |
-
Places365_val_00000117.jpg Is this picture captured in a place of sauna? Please answer yes or no. No
|
235 |
-
Places365_val_00000118.jpg Is this photo taken in a place of laundromat? Please answer yes or no. Yes
|
236 |
-
Places365_val_00000118.jpg Is this photo taken in a place of archive? Please answer yes or no. No
|
237 |
-
Places365_val_00000119.jpg Does this image describe a place of wave? Please answer yes or no. Yes
|
238 |
-
Places365_val_00000119.jpg Does this image describe a place of shed? Please answer yes or no. No
|
239 |
-
Places365_val_00000120.jpg Is this photo taken in a place of legislative chamber? Please answer yes or no. Yes
|
240 |
-
Places365_val_00000120.jpg Is this photo taken in a place of nursery? Please answer yes or no. No
|
241 |
-
Places365_val_00000121.jpg Is this photo taken in a place of elevator shaft? Please answer yes or no. Yes
|
242 |
-
Places365_val_00000121.jpg Is this photo taken in a place of berth? Please answer yes or no. No
|
243 |
-
Places365_val_00000122.jpg Is this photo taken in a place of hayfield? Please answer yes or no. Yes
|
244 |
-
Places365_val_00000122.jpg Is this photo taken in a place of skyscraper? Please answer yes or no. No
|
245 |
-
Places365_val_00000123.jpg Is this photo taken in a place of hospital room? Please answer yes or no. Yes
|
246 |
-
Places365_val_00000123.jpg Is this photo taken in a place of mosque outdoor? Please answer yes or no. No
|
247 |
-
Places365_val_00000124.jpg Does this image describe a place of swimming hole? Please answer yes or no. Yes
|
248 |
-
Places365_val_00000124.jpg Does this image describe a place of television room? Please answer yes or no. No
|
249 |
-
Places365_val_00000125.jpg Is this picture captured in a place of biology laboratory? Please answer yes or no. Yes
|
250 |
-
Places365_val_00000125.jpg Is this picture captured in a place of lake natural? Please answer yes or no. No
|
251 |
-
Places365_val_00000126.jpg Is this picture captured in a place of church indoor? Please answer yes or no. Yes
|
252 |
-
Places365_val_00000126.jpg Is this picture captured in a place of server room? Please answer yes or no. No
|
253 |
-
Places365_val_00000127.jpg Is this picture captured in a place of temple asia? Please answer yes or no. Yes
|
254 |
-
Places365_val_00000127.jpg Is this picture captured in a place of ball pit? Please answer yes or no. No
|
255 |
-
Places365_val_00000128.jpg Is this photo taken in a place of landfill? Please answer yes or no. Yes
|
256 |
-
Places365_val_00000128.jpg Is this photo taken in a place of viaduct? Please answer yes or no. No
|
257 |
-
Places365_val_00000129.jpg Does this image describe a place of arena hockey? Please answer yes or no. Yes
|
258 |
-
Places365_val_00000129.jpg Does this image describe a place of clothing store? Please answer yes or no. No
|
259 |
-
Places365_val_00000130.jpg Is this photo taken in a place of baseball field? Please answer yes or no. Yes
|
260 |
-
Places365_val_00000130.jpg Is this photo taken in a place of art gallery? Please answer yes or no. No
|
261 |
-
Places365_val_00000131.jpg Is this picture captured in a place of gazebo exterior? Please answer yes or no. Yes
|
262 |
-
Places365_val_00000131.jpg Is this picture captured in a place of driveway? Please answer yes or no. No
|
263 |
-
Places365_val_00000132.jpg Does this image describe a place of greenhouse outdoor? Please answer yes or no. Yes
|
264 |
-
Places365_val_00000132.jpg Does this image describe a place of stage indoor? Please answer yes or no. No
|
265 |
-
Places365_val_00000133.jpg Is this picture captured in a place of beauty salon? Please answer yes or no. Yes
|
266 |
-
Places365_val_00000133.jpg Is this picture captured in a place of junkyard? Please answer yes or no. No
|
267 |
-
Places365_val_00000134.jpg Does this image describe a place of ice shelf? Please answer yes or no. Yes
|
268 |
-
Places365_val_00000134.jpg Does this image describe a place of vegetable garden? Please answer yes or no. No
|
269 |
-
Places365_val_00000135.jpg Is this picture captured in a place of islet? Please answer yes or no. Yes
|
270 |
-
Places365_val_00000135.jpg Is this picture captured in a place of recreation room? Please answer yes or no. No
|
271 |
-
Places365_val_00000136.jpg Is this picture captured in a place of railroad track? Please answer yes or no. Yes
|
272 |
-
Places365_val_00000136.jpg Is this picture captured in a place of department store? Please answer yes or no. No
|
273 |
-
Places365_val_00000137.jpg Is this photo taken in a place of bazaar outdoor? Please answer yes or no. Yes
|
274 |
-
Places365_val_00000137.jpg Is this photo taken in a place of office? Please answer yes or no. No
|
275 |
-
Places365_val_00000138.jpg Is this photo taken in a place of basement? Please answer yes or no. Yes
|
276 |
-
Places365_val_00000138.jpg Is this photo taken in a place of banquet hall? Please answer yes or no. No
|
277 |
-
Places365_val_00000139.jpg Is this picture captured in a place of television studio? Please answer yes or no. Yes
|
278 |
-
Places365_val_00000139.jpg Is this picture captured in a place of general store indoor? Please answer yes or no. No
|
279 |
-
Places365_val_00000140.jpg Is this picture captured in a place of mezzanine? Please answer yes or no. Yes
|
280 |
-
Places365_val_00000140.jpg Is this picture captured in a place of bedroom? Please answer yes or no. No
|
281 |
-
Places365_val_00000141.jpg Does this image describe a place of roof garden? Please answer yes or no. Yes
|
282 |
-
Places365_val_00000141.jpg Does this image describe a place of television room? Please answer yes or no. No
|
283 |
-
Places365_val_00000142.jpg Does this image describe a place of restaurant kitchen? Please answer yes or no. Yes
|
284 |
-
Places365_val_00000142.jpg Does this image describe a place of fabric store? Please answer yes or no. No
|
285 |
-
Places365_val_00000143.jpg Is this photo taken in a place of house? Please answer yes or no. Yes
|
286 |
-
Places365_val_00000143.jpg Is this photo taken in a place of swimming hole? Please answer yes or no. No
|
287 |
-
Places365_val_00000144.jpg Is this picture captured in a place of vineyard? Please answer yes or no. Yes
|
288 |
-
Places365_val_00000144.jpg Is this picture captured in a place of castle? Please answer yes or no. No
|
289 |
-
Places365_val_00000145.jpg Is this picture captured in a place of driveway? Please answer yes or no. Yes
|
290 |
-
Places365_val_00000145.jpg Is this picture captured in a place of badlands? Please answer yes or no. No
|
291 |
-
Places365_val_00000146.jpg Does this image describe a place of chemistry lab? Please answer yes or no. Yes
|
292 |
-
Places365_val_00000146.jpg Does this image describe a place of industrial area? Please answer yes or no. No
|
293 |
-
Places365_val_00000147.jpg Does this image describe a place of cabin outdoor? Please answer yes or no. Yes
|
294 |
-
Places365_val_00000147.jpg Does this image describe a place of creek? Please answer yes or no. No
|
295 |
-
Places365_val_00000148.jpg Is this photo taken in a place of restaurant? Please answer yes or no. Yes
|
296 |
-
Places365_val_00000148.jpg Is this photo taken in a place of apartment building outdoor? Please answer yes or no. No
|
297 |
-
Places365_val_00000149.jpg Is this picture captured in a place of auditorium? Please answer yes or no. Yes
|
298 |
-
Places365_val_00000149.jpg Is this picture captured in a place of rock arch? Please answer yes or no. No
|
299 |
-
Places365_val_00000150.jpg Is this photo taken in a place of street? Please answer yes or no. Yes
|
300 |
-
Places365_val_00000150.jpg Is this photo taken in a place of toyshop? Please answer yes or no. No
|
301 |
-
Places365_val_00000151.jpg Does this image describe a place of lagoon? Please answer yes or no. Yes
|
302 |
-
Places365_val_00000151.jpg Does this image describe a place of aquarium? Please answer yes or no. No
|
303 |
-
Places365_val_00000152.jpg Is this picture captured in a place of hangar indoor? Please answer yes or no. Yes
|
304 |
-
Places365_val_00000152.jpg Is this picture captured in a place of street? Please answer yes or no. No
|
305 |
-
Places365_val_00000153.jpg Does this image describe a place of bar? Please answer yes or no. Yes
|
306 |
-
Places365_val_00000153.jpg Does this image describe a place of tree house? Please answer yes or no. No
|
307 |
-
Places365_val_00000154.jpg Is this picture captured in a place of classroom? Please answer yes or no. Yes
|
308 |
-
Places365_val_00000154.jpg Is this picture captured in a place of wheat field? Please answer yes or no. No
|
309 |
-
Places365_val_00000155.jpg Does this image describe a place of creek? Please answer yes or no. Yes
|
310 |
-
Places365_val_00000155.jpg Does this image describe a place of youth hostel? Please answer yes or no. No
|
311 |
-
Places365_val_00000156.jpg Does this image describe a place of stable? Please answer yes or no. Yes
|
312 |
-
Places365_val_00000156.jpg Does this image describe a place of junkyard? Please answer yes or no. No
|
313 |
-
Places365_val_00000157.jpg Is this picture captured in a place of swamp? Please answer yes or no. Yes
|
314 |
-
Places365_val_00000157.jpg Is this picture captured in a place of village? Please answer yes or no. No
|
315 |
-
Places365_val_00000158.jpg Is this picture captured in a place of ice shelf? Please answer yes or no. Yes
|
316 |
-
Places365_val_00000158.jpg Is this picture captured in a place of motel? Please answer yes or no. No
|
317 |
-
Places365_val_00000159.jpg Is this picture captured in a place of train interior? Please answer yes or no. Yes
|
318 |
-
Places365_val_00000159.jpg Is this picture captured in a place of jewelry shop? Please answer yes or no. No
|
319 |
-
Places365_val_00000160.jpg Does this image describe a place of windmill? Please answer yes or no. Yes
|
320 |
-
Places365_val_00000160.jpg Does this image describe a place of lake natural? Please answer yes or no. No
|
321 |
-
Places365_val_00000161.jpg Is this photo taken in a place of archive? Please answer yes or no. Yes
|
322 |
-
Places365_val_00000161.jpg Is this photo taken in a place of village? Please answer yes or no. No
|
323 |
-
Places365_val_00000162.jpg Does this image describe a place of train station platform? Please answer yes or no. Yes
|
324 |
-
Places365_val_00000162.jpg Does this image describe a place of manufactured home? Please answer yes or no. No
|
325 |
-
Places365_val_00000163.jpg Is this photo taken in a place of chalet? Please answer yes or no. Yes
|
326 |
-
Places365_val_00000163.jpg Is this photo taken in a place of throne room? Please answer yes or no. No
|
327 |
-
Places365_val_00000164.jpg Does this image describe a place of lake natural? Please answer yes or no. Yes
|
328 |
-
Places365_val_00000164.jpg Does this image describe a place of athletic field outdoor? Please answer yes or no. No
|
329 |
-
Places365_val_00000165.jpg Is this picture captured in a place of playground? Please answer yes or no. Yes
|
330 |
-
Places365_val_00000165.jpg Is this picture captured in a place of viaduct? Please answer yes or no. No
|
331 |
-
Places365_val_00000166.jpg Is this photo taken in a place of dorm room? Please answer yes or no. Yes
|
332 |
-
Places365_val_00000166.jpg Is this photo taken in a place of ski resort? Please answer yes or no. No
|
333 |
-
Places365_val_00000167.jpg Is this picture captured in a place of flea market indoor? Please answer yes or no. Yes
|
334 |
-
Places365_val_00000167.jpg Is this picture captured in a place of cliff? Please answer yes or no. No
|
335 |
-
Places365_val_00000168.jpg Does this image describe a place of airplane cabin? Please answer yes or no. Yes
|
336 |
-
Places365_val_00000168.jpg Does this image describe a place of rock arch? Please answer yes or no. No
|
337 |
-
Places365_val_00000169.jpg Is this picture captured in a place of drugstore? Please answer yes or no. Yes
|
338 |
-
Places365_val_00000169.jpg Is this picture captured in a place of canyon? Please answer yes or no. No
|
339 |
-
Places365_val_00000170.jpg Is this picture captured in a place of pharmacy? Please answer yes or no. Yes
|
340 |
-
Places365_val_00000170.jpg Is this picture captured in a place of orchestra pit? Please answer yes or no. No
|
341 |
-
Places365_val_00000171.jpg Is this picture captured in a place of greenhouse outdoor? Please answer yes or no. Yes
|
342 |
-
Places365_val_00000171.jpg Is this picture captured in a place of archaelogical excavation? Please answer yes or no. No
|
343 |
-
Places365_val_00000172.jpg Is this photo taken in a place of bathroom? Please answer yes or no. Yes
|
344 |
-
Places365_val_00000172.jpg Is this photo taken in a place of auto factory? Please answer yes or no. No
|
345 |
-
Places365_val_00000173.jpg Is this photo taken in a place of shoe shop? Please answer yes or no. Yes
|
346 |
-
Places365_val_00000173.jpg Is this photo taken in a place of car interior? Please answer yes or no. No
|
347 |
-
Places365_val_00000174.jpg Does this image describe a place of moat water? Please answer yes or no. Yes
|
348 |
-
Places365_val_00000174.jpg Does this image describe a place of marsh? Please answer yes or no. No
|
349 |
-
Places365_val_00000175.jpg Does this image describe a place of vegetable garden? Please answer yes or no. Yes
|
350 |
-
Places365_val_00000175.jpg Does this image describe a place of parking garage indoor? Please answer yes or no. No
|
351 |
-
Places365_val_00000176.jpg Is this picture captured in a place of bowling alley? Please answer yes or no. Yes
|
352 |
-
Places365_val_00000176.jpg Is this picture captured in a place of hotel outdoor? Please answer yes or no. No
|
353 |
-
Places365_val_00000177.jpg Does this image describe a place of embassy? Please answer yes or no. Yes
|
354 |
-
Places365_val_00000177.jpg Does this image describe a place of chemistry lab? Please answer yes or no. No
|
355 |
-
Places365_val_00000178.jpg Is this photo taken in a place of youth hostel? Please answer yes or no. Yes
|
356 |
-
Places365_val_00000178.jpg Is this photo taken in a place of hangar indoor? Please answer yes or no. No
|
357 |
-
Places365_val_00000179.jpg Does this image describe a place of hot spring? Please answer yes or no. Yes
|
358 |
-
Places365_val_00000179.jpg Does this image describe a place of mausoleum? Please answer yes or no. No
|
359 |
-
Places365_val_00000180.jpg Does this image describe a place of cottage? Please answer yes or no. Yes
|
360 |
-
Places365_val_00000180.jpg Does this image describe a place of parking garage indoor? Please answer yes or no. No
|
361 |
-
Places365_val_00000181.jpg Does this image describe a place of general store outdoor? Please answer yes or no. Yes
|
362 |
-
Places365_val_00000181.jpg Does this image describe a place of hotel room? Please answer yes or no. No
|
363 |
-
Places365_val_00000182.jpg Is this photo taken in a place of chalet? Please answer yes or no. Yes
|
364 |
-
Places365_val_00000182.jpg Is this photo taken in a place of dorm room? Please answer yes or no. No
|
365 |
-
Places365_val_00000183.jpg Is this photo taken in a place of flea market indoor? Please answer yes or no. Yes
|
366 |
-
Places365_val_00000183.jpg Is this photo taken in a place of tree house? Please answer yes or no. No
|
367 |
-
Places365_val_00000184.jpg Is this photo taken in a place of shower? Please answer yes or no. Yes
|
368 |
-
Places365_val_00000184.jpg Is this photo taken in a place of living room? Please answer yes or no. No
|
369 |
-
Places365_val_00000185.jpg Is this picture captured in a place of supermarket? Please answer yes or no. Yes
|
370 |
-
Places365_val_00000185.jpg Is this picture captured in a place of orchard? Please answer yes or no. No
|
371 |
-
Places365_val_00000186.jpg Is this picture captured in a place of bowling alley? Please answer yes or no. Yes
|
372 |
-
Places365_val_00000186.jpg Is this picture captured in a place of ice skating rink outdoor? Please answer yes or no. No
|
373 |
-
Places365_val_00000187.jpg Is this picture captured in a place of barn? Please answer yes or no. Yes
|
374 |
-
Places365_val_00000187.jpg Is this picture captured in a place of lobby? Please answer yes or no. No
|
375 |
-
Places365_val_00000188.jpg Is this photo taken in a place of japanese garden? Please answer yes or no. Yes
|
376 |
-
Places365_val_00000188.jpg Is this photo taken in a place of hangar indoor? Please answer yes or no. No
|
377 |
-
Places365_val_00000189.jpg Is this picture captured in a place of swimming hole? Please answer yes or no. Yes
|
378 |
-
Places365_val_00000189.jpg Is this picture captured in a place of bedroom? Please answer yes or no. No
|
379 |
-
Places365_val_00000190.jpg Is this picture captured in a place of pizzeria? Please answer yes or no. Yes
|
380 |
-
Places365_val_00000190.jpg Is this picture captured in a place of computer room? Please answer yes or no. No
|
381 |
-
Places365_val_00000191.jpg Does this image describe a place of volleyball court outdoor? Please answer yes or no. Yes
|
382 |
-
Places365_val_00000191.jpg Does this image describe a place of church indoor? Please answer yes or no. No
|
383 |
-
Places365_val_00000192.jpg Is this photo taken in a place of market indoor? Please answer yes or no. Yes
|
384 |
-
Places365_val_00000192.jpg Is this photo taken in a place of home office? Please answer yes or no. No
|
385 |
-
Places365_val_00000193.jpg Is this picture captured in a place of ice floe? Please answer yes or no. Yes
|
386 |
-
Places365_val_00000193.jpg Is this picture captured in a place of closet? Please answer yes or no. No
|
387 |
-
Places365_val_00000194.jpg Does this image describe a place of lake natural? Please answer yes or no. Yes
|
388 |
-
Places365_val_00000194.jpg Does this image describe a place of beer hall? Please answer yes or no. No
|
389 |
-
Places365_val_00000195.jpg Does this image describe a place of mountain path? Please answer yes or no. Yes
|
390 |
-
Places365_val_00000195.jpg Does this image describe a place of construction site? Please answer yes or no. No
|
391 |
-
Places365_val_00000196.jpg Is this photo taken in a place of orchestra pit? Please answer yes or no. Yes
|
392 |
-
Places365_val_00000196.jpg Is this photo taken in a place of burial chamber? Please answer yes or no. No
|
393 |
-
Places365_val_00000197.jpg Does this image describe a place of village? Please answer yes or no. Yes
|
394 |
-
Places365_val_00000197.jpg Does this image describe a place of underwater ocean deep? Please answer yes or no. No
|
395 |
-
Places365_val_00000198.jpg Does this image describe a place of waterfall? Please answer yes or no. Yes
|
396 |
-
Places365_val_00000198.jpg Does this image describe a place of booth indoor? Please answer yes or no. No
|
397 |
-
Places365_val_00000199.jpg Is this photo taken in a place of greenhouse indoor? Please answer yes or no. Yes
|
398 |
-
Places365_val_00000199.jpg Is this photo taken in a place of aqueduct? Please answer yes or no. No
|
399 |
-
Places365_val_00000200.jpg Is this photo taken in a place of television studio? Please answer yes or no. Yes
|
400 |
-
Places365_val_00000200.jpg Is this photo taken in a place of hunting lodge outdoor? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/Your_Results/text_translation.txt
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
0001.png Is it appropriate to translate the Chinese in the image into English 'classic taste' in the picture? Please answer yes or no. Yes
|
2 |
-
0001.png Is it appropriate to translate the Chinese in the image into English 'classic strawberry flavor' in the picture? Please answer yes or no. No
|
3 |
-
0002.png Is it appropriate to translate the Chinese in the image into English 'a delicious dinner' in the picture? Please answer yes or no. Yes
|
4 |
-
0002.png Is it appropriate to translate the Chinese in the image into English 'hamburger and chips' in the picture? Please answer yes or no. No
|
5 |
-
0003.png Is it appropriate to translate the Chinese in the image into English 'sunny weather' in the picture? Please answer yes or no. Yes
|
6 |
-
0003.png Is it appropriate to translate the Chinese in the image into English 'cold weather' in the picture? Please answer yes or no. No
|
7 |
-
0004.png Is it appropriate to translate the Chinese in the image into English 'run very fast' in the picture? Please answer yes or no. Yes
|
8 |
-
0004.png Is it appropriate to translate the Chinese in the image into English 'run very slow' in the picture? Please answer yes or no. No
|
9 |
-
0005.png Is it appropriate to translate the Chinese in the image into English 'feeling happy' in the picture? Please answer yes or no. Yes
|
10 |
-
0005.png Is it appropriate to translate the Chinese in the image into English 'feeling bored' in the picture? Please answer yes or no. No
|
11 |
-
0006.png Is it appropriate to translate the Chinese in the image into English 'work hard together' in the picture? Please answer yes or no. Yes
|
12 |
-
0006.png Is it appropriate to translate the Chinese in the image into English 'be filled with intrigue' in the picture? Please answer yes or no. No
|
13 |
-
0007.png Is it appropriate to translate the Chinese in the image into English 'walking very slowly' in the picture? Please answer yes or no. Yes
|
14 |
-
0007.png Is it appropriate to translate the Chinese in the image into English 'runing very slowly' in the picture? Please answer yes or no. No
|
15 |
-
0008.png Is it appropriate to translate the Chinese in the image into English 'very proud' in the picture? Please answer yes or no. Yes
|
16 |
-
0008.png Is it appropriate to translate the Chinese in the image into English 'very thankful' in the picture? Please answer yes or no. No
|
17 |
-
0009.png Is it appropriate to translate the Chinese in the image into English 'creative people' in the picture? Please answer yes or no. Yes
|
18 |
-
0009.png Is it appropriate to translate the Chinese in the image into English 'leading people' in the picture? Please answer yes or no. No
|
19 |
-
0010.png Is it appropriate to translate the Chinese in the image into English 'a beautiful garden' in the picture? Please answer yes or no. Yes
|
20 |
-
0010.png Is it appropriate to translate the Chinese in the image into English 'a beautiful campus' in the picture? Please answer yes or no. No
|
21 |
-
0011.png Is it appropriate to translate the Chinese in the image into English 'a difficult work' in the picture? Please answer yes or no. Yes
|
22 |
-
0011.png Is it appropriate to translate the Chinese in the image into English 'a easy work' in the picture? Please answer yes or no. No
|
23 |
-
0012.png Is it appropriate to translate the Chinese in the image into English 'a small amount' in the picture? Please answer yes or no. Yes
|
24 |
-
0012.png Is it appropriate to translate the Chinese in the image into English 'difficult and dangerous' in the picture? Please answer yes or no. No
|
25 |
-
0013.png Is it appropriate to translate the Chinese in the image into English 'feeling frustrated' in the picture? Please answer yes or no. Yes
|
26 |
-
0013.png Is it appropriate to translate the Chinese in the image into English 'feeling relaxed' in the picture? Please answer yes or no. No
|
27 |
-
0014.png Is it appropriate to translate the Chinese in the image into English 'waiting for a long time' in the picture? Please answer yes or no. Yes
|
28 |
-
0014.png Is it appropriate to translate the Chinese in the image into English 'sleeping for a long time' in the picture? Please answer yes or no. No
|
29 |
-
0015.png Is it appropriate to translate the Chinese in the image into English 'very powerful' in the picture? Please answer yes or no. Yes
|
30 |
-
0015.png Is it appropriate to translate the Chinese in the image into English 'to be fragile throughout the world' in the picture? Please answer yes or no. No
|
31 |
-
0016.png Is it appropriate to translate the Chinese in the image into English 'all talk and no action' in the picture? Please answer yes or no. Yes
|
32 |
-
0016.png Is it appropriate to translate the Chinese in the image into English 'hands-on practice' in the picture? Please answer yes or no. No
|
33 |
-
0017.png Is it appropriate to translate the Chinese in the image into English 'delicious fruit' in the picture? Please answer yes or no. Yes
|
34 |
-
0017.png Is it appropriate to translate the Chinese in the image into English 'banana' in the picture? Please answer yes or no. No
|
35 |
-
0018.png Is it appropriate to translate the Chinese in the image into English 'very unforgettable' in the picture? Please answer yes or no. Yes
|
36 |
-
0018.png Is it appropriate to translate the Chinese in the image into English 'very happy' in the picture? Please answer yes or no. No
|
37 |
-
0019.png Is it appropriate to translate the Chinese in the image into English 'get along well' in the picture? Please answer yes or no. Yes
|
38 |
-
0019.png Is it appropriate to translate the Chinese in the image into English 'for own self-interest' in the picture? Please answer yes or no. No
|
39 |
-
0020.png Is it appropriate to translate the Chinese in the image into English 'rank first' in the picture? Please answer yes or no. Yes
|
40 |
-
0020.png Is it appropriate to translate the Chinese in the image into English 'to add the finishing touches' in the picture? Please answer yes or no. No
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/calculation.py
DELETED
@@ -1,184 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import os
|
14 |
-
|
15 |
-
from sklearn.metrics import (accuracy_score, confusion_matrix, precision_score,
|
16 |
-
recall_score)
|
17 |
-
|
18 |
-
parser = argparse.ArgumentParser()
|
19 |
-
# parser.add_argument('--results_dir', default='./LaVIN', type=str)
|
20 |
-
parser.add_argument('--out-dir', default='./', type=str)
|
21 |
-
|
22 |
-
eval_type_dict = {
|
23 |
-
'Perception': ['existence', 'count', 'position', 'color', 'posters', 'celebrity', 'scene', 'landmark', 'artwork', 'OCR'],
|
24 |
-
'Cognition': ['commonsense_reasoning', 'numerical_calculation', 'text_translation', 'code_reasoning']
|
25 |
-
}
|
26 |
-
|
27 |
-
|
28 |
-
class calculate_metrics:
|
29 |
-
def divide_chunks(self, l, n=2):
|
30 |
-
# looping till length l
|
31 |
-
for i in range(0, len(l), n):
|
32 |
-
yield l[i:i + n]
|
33 |
-
|
34 |
-
return
|
35 |
-
|
36 |
-
def parse_pred_ans(self, pred_ans):
|
37 |
-
pred_label = None
|
38 |
-
if pred_ans in ['yes', 'no']:
|
39 |
-
pred_label = pred_ans
|
40 |
-
else:
|
41 |
-
prefix_pred_ans = pred_ans[:4]
|
42 |
-
|
43 |
-
if 'yes' in prefix_pred_ans:
|
44 |
-
pred_label = 'yes'
|
45 |
-
elif 'no' in prefix_pred_ans:
|
46 |
-
pred_label = 'no'
|
47 |
-
else:
|
48 |
-
pred_label = 'other'
|
49 |
-
|
50 |
-
return pred_label
|
51 |
-
|
52 |
-
def compute_metric(self, gts, preds):
|
53 |
-
assert len(gts) == len(preds)
|
54 |
-
|
55 |
-
label_map = {
|
56 |
-
'yes': 1,
|
57 |
-
'no': 0,
|
58 |
-
'other': -1,
|
59 |
-
}
|
60 |
-
|
61 |
-
gts = [label_map[x] for x in gts]
|
62 |
-
preds = [label_map[x] for x in preds]
|
63 |
-
|
64 |
-
acc = accuracy_score(gts, preds)
|
65 |
-
|
66 |
-
clean_gts = []
|
67 |
-
clean_preds = []
|
68 |
-
other_num = 0
|
69 |
-
for gt, pred in zip(gts, preds):
|
70 |
-
if pred == -1:
|
71 |
-
other_num += 1
|
72 |
-
continue
|
73 |
-
clean_gts.append(gt)
|
74 |
-
clean_preds.append(pred)
|
75 |
-
|
76 |
-
conf_mat = confusion_matrix(clean_gts, clean_preds, labels=[1,0])
|
77 |
-
precision = precision_score(clean_gts, clean_preds, average='binary')
|
78 |
-
recall = recall_score(clean_gts, clean_preds, average='binary')
|
79 |
-
tp, fn = conf_mat[0]
|
80 |
-
fp, tn = conf_mat[1]
|
81 |
-
|
82 |
-
metric_dict = dict()
|
83 |
-
metric_dict = {
|
84 |
-
'TP': tp,
|
85 |
-
'FN': fn,
|
86 |
-
'TN': tn,
|
87 |
-
'FP': fp,
|
88 |
-
'precision': precision,
|
89 |
-
'recall': recall,
|
90 |
-
'other_num': other_num,
|
91 |
-
'acc': acc,
|
92 |
-
}
|
93 |
-
|
94 |
-
return metric_dict
|
95 |
-
|
96 |
-
def process_result(self, results_dir):
|
97 |
-
ret_message = ""
|
98 |
-
model_score_dict = dict()
|
99 |
-
for eval_type, task_name_list in eval_type_dict.items():
|
100 |
-
print('===========', eval_type, '===========')
|
101 |
-
ret_message += f"=========== {eval_type} ===========\n"
|
102 |
-
|
103 |
-
scores = 0
|
104 |
-
task_score_dict = dict()
|
105 |
-
|
106 |
-
for task_name in task_name_list:
|
107 |
-
|
108 |
-
task_txt = os.path.join(results_dir, task_name + '.txt')
|
109 |
-
lines = open(task_txt, 'r').readlines()
|
110 |
-
chunk_lines = list(self.divide_chunks(lines)) # one image corresponds to two questions
|
111 |
-
|
112 |
-
img_num = len(chunk_lines)
|
113 |
-
task_other_ans_num = 0
|
114 |
-
task_score = 0
|
115 |
-
acc_plus_correct_num = 0
|
116 |
-
gts = []
|
117 |
-
preds = []
|
118 |
-
|
119 |
-
for img_items in chunk_lines:
|
120 |
-
assert len(img_items) == 2
|
121 |
-
img_correct_num = 0
|
122 |
-
|
123 |
-
for img_item in img_items:
|
124 |
-
try:
|
125 |
-
img_name, question, gt_ans, pred_ans = img_item.split('\t')
|
126 |
-
except:
|
127 |
-
print(img_item)
|
128 |
-
continue
|
129 |
-
gt_ans = gt_ans.lower()
|
130 |
-
pred_ans = pred_ans.lower()
|
131 |
-
|
132 |
-
assert gt_ans in ['yes', 'no'] # gt can only be yes or no.
|
133 |
-
|
134 |
-
pred_ans = self.parse_pred_ans(pred_ans)
|
135 |
-
assert pred_ans in ['yes', 'no', 'other']
|
136 |
-
|
137 |
-
gts.append(gt_ans)
|
138 |
-
preds.append(pred_ans)
|
139 |
-
|
140 |
-
if gt_ans == pred_ans:
|
141 |
-
img_correct_num += 1
|
142 |
-
|
143 |
-
if pred_ans not in ['yes', 'no']:
|
144 |
-
task_other_ans_num += 1
|
145 |
-
|
146 |
-
if img_correct_num == 2:
|
147 |
-
acc_plus_correct_num += 1
|
148 |
-
|
149 |
-
# cal TP precision acc, etc.
|
150 |
-
metric_dict = self.compute_metric(gts, preds)
|
151 |
-
acc_plus = acc_plus_correct_num / img_num
|
152 |
-
metric_dict['acc_plus'] = acc_plus
|
153 |
-
|
154 |
-
for k, v in metric_dict.items():
|
155 |
-
if k in ['acc', 'acc_plus']:
|
156 |
-
task_score += v*100
|
157 |
-
|
158 |
-
task_score_dict[task_name] = task_score
|
159 |
-
|
160 |
-
scores += task_score
|
161 |
-
|
162 |
-
print('total score:', scores, '\n')
|
163 |
-
ret_message += f"total score: {scores} \n\n"
|
164 |
-
for task_name, score in task_score_dict.items():
|
165 |
-
print('\t', task_name, ' score:', score)
|
166 |
-
ret_message += f"\t {task_name} score: {score}\n"
|
167 |
-
print('\n')
|
168 |
-
ret_message += "\n\n"
|
169 |
-
|
170 |
-
return ret_message
|
171 |
-
|
172 |
-
|
173 |
-
if __name__ == '__main__':
|
174 |
-
cal = calculate_metrics()
|
175 |
-
|
176 |
-
args = parser.parse_args()
|
177 |
-
# results_dir = args.results_dir
|
178 |
-
results_dir = args.out_dir
|
179 |
-
ret_message = cal.process_result(results_dir)
|
180 |
-
|
181 |
-
writer = open(os.path.join(args.out_dir, "results.txt"), 'w')
|
182 |
-
print(f"write results to file {os.path.join(args.out_dir, 'results.txt')}")
|
183 |
-
writer.write(ret_message)
|
184 |
-
writer.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mme/eval.py
DELETED
@@ -1,74 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import os
|
14 |
-
import re
|
15 |
-
|
16 |
-
from eval.vlm.utils import load_model_and_tokenizer, build_transform, process_conversation
|
17 |
-
from PIL import Image
|
18 |
-
from tqdm import tqdm
|
19 |
-
|
20 |
-
|
21 |
-
def post_processing(response):
|
22 |
-
response = response.replace('\n', '').replace('不是', 'No').replace('是', 'Yes').replace('否', 'No')
|
23 |
-
response = response.lower().replace('true', 'yes').replace('false', 'no')
|
24 |
-
pattern = re.compile(r'[\u4e00-\u9fa5]')
|
25 |
-
response = re.sub(pattern, '', response)
|
26 |
-
return response
|
27 |
-
|
28 |
-
|
29 |
-
if __name__ == '__main__':
|
30 |
-
parser = argparse.ArgumentParser()
|
31 |
-
parser.add_argument('--root', type=str, default='eval/vlm/eval/mme/Your_Results')
|
32 |
-
parser.add_argument('--out-dir', type=str, default='results')
|
33 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
34 |
-
args = parser.parse_args()
|
35 |
-
|
36 |
-
model, tokenizer, new_token_ids = load_model_and_tokenizer(args)
|
37 |
-
image_transform = build_transform()
|
38 |
-
|
39 |
-
total_params = sum(p.numel() for p in model.parameters()) / 1e9
|
40 |
-
print(f'[test] total_params: {total_params}B')
|
41 |
-
|
42 |
-
os.makedirs(args.out_dir, exist_ok=True)
|
43 |
-
prompt = 'Answer the question using a single word or phrase.'
|
44 |
-
|
45 |
-
for filename in os.listdir(args.root):
|
46 |
-
fin = open(os.path.join(args.root, filename), 'r', encoding='utf-8')
|
47 |
-
fout = open(os.path.join(args.out_dir, filename), 'w', encoding='utf-8')
|
48 |
-
lines = fin.readlines()
|
49 |
-
filename = filename.replace('.txt', '')
|
50 |
-
for line in tqdm(lines):
|
51 |
-
img, question, gt = line.strip().split('\t')
|
52 |
-
question = question + ' ' + prompt
|
53 |
-
img_path = os.path.join('eval/vlm/data/mme/MME_Benchmark_release_version', filename, img)
|
54 |
-
if not os.path.exists(img_path):
|
55 |
-
img_path = os.path.join('eval/vlm/data/mme/MME_Benchmark_release_version', filename, "images", img)
|
56 |
-
if not os.path.exists(img_path):
|
57 |
-
continue
|
58 |
-
images = [Image.open(img_path).convert('RGB')]
|
59 |
-
images, conversation = process_conversation(images, question)
|
60 |
-
|
61 |
-
response = model.chat(
|
62 |
-
tokenizer,
|
63 |
-
new_token_ids,
|
64 |
-
image_transform,
|
65 |
-
images=images,
|
66 |
-
prompt=conversation,
|
67 |
-
max_length=20,
|
68 |
-
)
|
69 |
-
response = post_processing(response)
|
70 |
-
print(img, question, gt, response, sep='\t', file=fout)
|
71 |
-
fin.close()
|
72 |
-
fout.close()
|
73 |
-
|
74 |
-
os.system(f"python -m eval.vlm.eval.mme.calculation --out-dir {args.out_dir}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mmmu/answer_dict_val.json
DELETED
The diff for this file is too large to render.
See raw diff
|
|
eval/vlm/eval/mmmu/data_utils.py
DELETED
@@ -1,187 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
"""Utils for data load, save, and process (e.g., prompt construction)"""
|
13 |
-
|
14 |
-
import json
|
15 |
-
import os
|
16 |
-
import re
|
17 |
-
|
18 |
-
import yaml
|
19 |
-
|
20 |
-
DOMAIN_CAT2SUB_CAT = {
|
21 |
-
'Art and Design': ['Art', 'Art_Theory', 'Design', 'Music'],
|
22 |
-
'Business': ['Accounting', 'Economics', 'Finance', 'Manage', 'Marketing'],
|
23 |
-
'Science': ['Biology', 'Chemistry', 'Geography', 'Math', 'Physics', ],
|
24 |
-
'Health and Medicine': ['Basic_Medical_Science', 'Clinical_Medicine', 'Diagnostics_and_Laboratory_Medicine',
|
25 |
-
'Pharmacy', 'Public_Health'],
|
26 |
-
'Humanities and Social Science': ['History', 'Literature', 'Sociology', 'Psychology'],
|
27 |
-
'Tech and Engineering': ['Agriculture', 'Architecture_and_Engineering', 'Computer_Science', 'Electronics',
|
28 |
-
'Energy_and_Power', 'Materials', 'Mechanical_Engineering'],
|
29 |
-
}
|
30 |
-
|
31 |
-
CAT_SHORT2LONG = {
|
32 |
-
'acc': 'Accounting',
|
33 |
-
'agri': 'Agriculture',
|
34 |
-
'arch': 'Architecture_and_Engineering',
|
35 |
-
'art': 'Art',
|
36 |
-
'art_theory': 'Art_Theory',
|
37 |
-
'bas_med': 'Basic_Medical_Science',
|
38 |
-
'bio': 'Biology',
|
39 |
-
'chem': 'Chemistry',
|
40 |
-
'cli_med': 'Clinical_Medicine',
|
41 |
-
'cs': 'Computer_Science',
|
42 |
-
'design': 'Design',
|
43 |
-
'diag_med': 'Diagnostics_and_Laboratory_Medicine',
|
44 |
-
'econ': 'Economics',
|
45 |
-
'elec': 'Electronics',
|
46 |
-
'ep': 'Energy_and_Power',
|
47 |
-
'fin': 'Finance',
|
48 |
-
'geo': 'Geography',
|
49 |
-
'his': 'History',
|
50 |
-
'liter': 'Literature',
|
51 |
-
'manage': 'Manage',
|
52 |
-
'mark': 'Marketing',
|
53 |
-
'mate': 'Materials',
|
54 |
-
'math': 'Math',
|
55 |
-
'mech': 'Mechanical_Engineering',
|
56 |
-
'music': 'Music',
|
57 |
-
'phar': 'Pharmacy',
|
58 |
-
'phys': 'Physics',
|
59 |
-
'psy': 'Psychology',
|
60 |
-
'pub_health': 'Public_Health',
|
61 |
-
'socio': 'Sociology'
|
62 |
-
}
|
63 |
-
|
64 |
-
|
65 |
-
# DATA SAVING
|
66 |
-
def save_json(filename, ds):
|
67 |
-
with open(filename, 'w') as f:
|
68 |
-
json.dump(ds, f, indent=4)
|
69 |
-
|
70 |
-
|
71 |
-
def get_multi_choice_info(options):
|
72 |
-
"""
|
73 |
-
Given the list of options for multiple choice question
|
74 |
-
Return the index2ans and all_choices
|
75 |
-
"""
|
76 |
-
|
77 |
-
start_chr = 'A'
|
78 |
-
all_choices = []
|
79 |
-
index2ans = {}
|
80 |
-
for i, option in enumerate(options):
|
81 |
-
index2ans[chr(ord(start_chr) + i)] = option
|
82 |
-
all_choices.append(chr(ord(start_chr) + i))
|
83 |
-
|
84 |
-
return index2ans, all_choices
|
85 |
-
|
86 |
-
|
87 |
-
def load_yaml(file_path):
|
88 |
-
with open(file_path, 'r') as stream:
|
89 |
-
try:
|
90 |
-
yaml_dict = yaml.safe_load(stream)
|
91 |
-
except yaml.YAMLError as exc:
|
92 |
-
print(exc)
|
93 |
-
|
94 |
-
return yaml_dict
|
95 |
-
|
96 |
-
|
97 |
-
def parse_img_path(text):
|
98 |
-
matches = re.findall("<img='(.*?)'>", text)
|
99 |
-
return matches
|
100 |
-
|
101 |
-
|
102 |
-
def process_single_sample(data):
|
103 |
-
question = data['question']
|
104 |
-
o_imgs_paths = []
|
105 |
-
for option in data['options']:
|
106 |
-
current_o_imgs_paths = parse_img_path(option)
|
107 |
-
for img_path in current_o_imgs_paths:
|
108 |
-
o_imgs_paths.append(img_path)
|
109 |
-
images = [data['image_1'], data['image_2'], data['image_3'], data['image_4'],
|
110 |
-
data['image_5'], data['image_6'], data['image_7']]
|
111 |
-
return {'id': data['id'], 'question': question, 'options': data['options'], 'answer': data['answer'],
|
112 |
-
'image': images, 'question_type': data['question_type']}
|
113 |
-
|
114 |
-
|
115 |
-
# DATA SAVING
|
116 |
-
def save_json(filename, ds):
|
117 |
-
with open(filename, 'w') as f:
|
118 |
-
json.dump(ds, f, indent=4)
|
119 |
-
|
120 |
-
|
121 |
-
def save_jsonl(filename, data):
|
122 |
-
"""
|
123 |
-
Save a dictionary of data to a JSON Lines file with the filename as key and caption as value.
|
124 |
-
|
125 |
-
Args:
|
126 |
-
filename (str): The path to the file where the data should be saved.
|
127 |
-
data (dict): The dictionary containing the data to save where key is the image path and value is the caption.
|
128 |
-
"""
|
129 |
-
with open(filename, 'w', encoding='utf-8') as f:
|
130 |
-
for img_path, caption in data.items():
|
131 |
-
# Extract the base filename without the extension
|
132 |
-
base_filename = os.path.basename(img_path)
|
133 |
-
# Create a JSON object with the filename as the key and caption as the value
|
134 |
-
json_record = json.dumps({base_filename: caption}, ensure_ascii=False)
|
135 |
-
# Write the JSON object to the file, one per line
|
136 |
-
f.write(json_record + '\n')
|
137 |
-
|
138 |
-
|
139 |
-
def save_args(args, path_dir):
|
140 |
-
argsDict = args.__dict__
|
141 |
-
with open(path_dir + 'setting.txt', 'w') as f:
|
142 |
-
f.writelines('------------------ start ------------------' + '\n')
|
143 |
-
for eachArg, value in argsDict.items():
|
144 |
-
f.writelines(eachArg + ' : ' + str(value) + '\n')
|
145 |
-
f.writelines('------------------- end -------------------')
|
146 |
-
|
147 |
-
|
148 |
-
# DATA PROCESSING
|
149 |
-
def construct_prompt(sample, config):
|
150 |
-
question = sample['question']
|
151 |
-
options = eval(sample['options'])
|
152 |
-
example = ''
|
153 |
-
if sample['question_type'] == 'multiple-choice':
|
154 |
-
start_chr = 'A'
|
155 |
-
prediction_range = []
|
156 |
-
index2ans = {}
|
157 |
-
for option in options:
|
158 |
-
prediction_range.append(start_chr)
|
159 |
-
example += f'({start_chr}) {option}\n'
|
160 |
-
index2ans[start_chr] = option
|
161 |
-
start_chr = chr(ord(start_chr) + 1)
|
162 |
-
empty_prompt_sample_structure = config['multi_choice_example_format']
|
163 |
-
empty_prompt = empty_prompt_sample_structure.format(question, example)
|
164 |
-
res_dict = {}
|
165 |
-
res_dict['index2ans'] = index2ans
|
166 |
-
res_dict['correct_choice'] = sample['answer']
|
167 |
-
res_dict['all_choices'] = prediction_range
|
168 |
-
res_dict['empty_prompt'] = empty_prompt
|
169 |
-
if config['task_instructions']:
|
170 |
-
res_dict['final_input_prompt'] = config['task_instructions'].strip() + '\n\n' + empty_prompt
|
171 |
-
else:
|
172 |
-
res_dict['final_input_prompt'] = empty_prompt
|
173 |
-
|
174 |
-
res_dict['gt_content'] = options[ord(sample['answer'].upper()) - ord('A')]
|
175 |
-
else:
|
176 |
-
empty_prompt_sample_structure = config['short_ans_example_format']
|
177 |
-
empty_prompt = empty_prompt_sample_structure.format(question)
|
178 |
-
res_dict = {}
|
179 |
-
res_dict['empty_prompt'] = empty_prompt
|
180 |
-
if config['task_instructions']:
|
181 |
-
res_dict['final_input_prompt'] = config['task_instructions'].strip() + '\n\n' + empty_prompt
|
182 |
-
else:
|
183 |
-
res_dict['final_input_prompt'] = empty_prompt
|
184 |
-
res_dict['gt_content'] = sample['answer']
|
185 |
-
|
186 |
-
res_dict.update(sample)
|
187 |
-
return res_dict
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mmmu/eval_utils.py
DELETED
@@ -1,275 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
"""Response Parsing and Evaluation for various models"""
|
13 |
-
import random
|
14 |
-
import re
|
15 |
-
from typing import Dict
|
16 |
-
|
17 |
-
random.seed(42)
|
18 |
-
import numpy as np
|
19 |
-
|
20 |
-
|
21 |
-
# ----------- Process Multi-choice -------------
|
22 |
-
def parse_multi_choice_response(response, all_choices, index2ans):
|
23 |
-
"""
|
24 |
-
Parse the prediction from the generated response.
|
25 |
-
Return the predicted index e.g., A, B, C, D.
|
26 |
-
"""
|
27 |
-
for char in [',', '.', '!', '?', ';', ':', "'"]:
|
28 |
-
response = response.strip(char)
|
29 |
-
response = ' ' + response + ' ' # add space to avoid partial match
|
30 |
-
|
31 |
-
index_ans = True
|
32 |
-
ans_with_brack = False
|
33 |
-
candidates = []
|
34 |
-
for choice in all_choices: # e.g., (A) (B) (C) (D)
|
35 |
-
if f'({choice})' in response:
|
36 |
-
candidates.append(choice)
|
37 |
-
ans_with_brack = True
|
38 |
-
|
39 |
-
if len(candidates) == 0:
|
40 |
-
for choice in all_choices: # e.g., A B C D
|
41 |
-
if f' {choice} ' in response:
|
42 |
-
candidates.append(choice)
|
43 |
-
|
44 |
-
# if all above doesn't get candidates, check if the content is larger than 5 tokens and try to parse the example
|
45 |
-
if len(candidates) == 0 and len(response.split()) > 5:
|
46 |
-
for index, ans in index2ans.items():
|
47 |
-
if ans.lower() in response.lower():
|
48 |
-
candidates.append(index)
|
49 |
-
index_ans = False # it's content ans.
|
50 |
-
|
51 |
-
if len(candidates) == 0: # still not get answer, randomly choose one.
|
52 |
-
pred_index = random.choice(all_choices)
|
53 |
-
elif len(candidates) > 1:
|
54 |
-
start_indexes = []
|
55 |
-
if index_ans:
|
56 |
-
if ans_with_brack:
|
57 |
-
for can in candidates:
|
58 |
-
index = response.rfind(f'({can})')
|
59 |
-
start_indexes.append(index) # -1 will be ignored anyway
|
60 |
-
# start_indexes = [generated_response.index(f'({can})') for can in candidates]
|
61 |
-
else:
|
62 |
-
for can in candidates:
|
63 |
-
index = response.rfind(f' {can} ')
|
64 |
-
start_indexes.append(index)
|
65 |
-
else:
|
66 |
-
for can in candidates:
|
67 |
-
index = response.lower().rfind(index2ans[can].lower())
|
68 |
-
start_indexes.append(index)
|
69 |
-
# get the last one
|
70 |
-
pred_index = candidates[np.argmax(start_indexes)]
|
71 |
-
else: # if only one candidate, use it.
|
72 |
-
pred_index = candidates[0]
|
73 |
-
|
74 |
-
return pred_index
|
75 |
-
|
76 |
-
|
77 |
-
# ----------- Process Open -------------
|
78 |
-
def check_is_number(string):
|
79 |
-
"""
|
80 |
-
Check if the given string a number.
|
81 |
-
"""
|
82 |
-
try:
|
83 |
-
float(string.replace(',', ''))
|
84 |
-
return True
|
85 |
-
except ValueError:
|
86 |
-
# check if there's comma inside
|
87 |
-
return False
|
88 |
-
|
89 |
-
|
90 |
-
def normalize_str(string):
|
91 |
-
"""
|
92 |
-
Normalize the str to lower case and make them float numbers if possible.
|
93 |
-
"""
|
94 |
-
# check if characters in the string
|
95 |
-
|
96 |
-
# if number, numerize it.
|
97 |
-
string = string.strip()
|
98 |
-
|
99 |
-
is_number = check_is_number(string)
|
100 |
-
|
101 |
-
if is_number:
|
102 |
-
string = string.replace(',', '')
|
103 |
-
string = float(string)
|
104 |
-
# leave 2 decimal
|
105 |
-
string = round(string, 2)
|
106 |
-
return [string]
|
107 |
-
else: # it's likely to be a string
|
108 |
-
# lower it
|
109 |
-
string = string.lower()
|
110 |
-
if len(string) == 1:
|
111 |
-
return [' ' + string, string + ' '] # avoid trivial matches
|
112 |
-
return [string]
|
113 |
-
|
114 |
-
|
115 |
-
def extract_numbers(string):
|
116 |
-
"""
|
117 |
-
Exact all forms of numbers from a string with regex.
|
118 |
-
"""
|
119 |
-
# Pattern for numbers with commas
|
120 |
-
pattern_commas = r'-?\b\d{1,3}(?:,\d{3})+\b'
|
121 |
-
# Pattern for scientific notation
|
122 |
-
pattern_scientific = r'-?\d+(?:\.\d+)?[eE][+-]?\d+'
|
123 |
-
# Pattern for simple numbers without commas
|
124 |
-
pattern_simple = r'-?(?:\d+\.\d+|\.\d+|\d+\b)(?![eE][+-]?\d+)(?![,\d])'
|
125 |
-
|
126 |
-
# Extract numbers with commas
|
127 |
-
numbers_with_commas = re.findall(pattern_commas, string)
|
128 |
-
# Extract numbers in scientific notation
|
129 |
-
numbers_scientific = re.findall(pattern_scientific, string)
|
130 |
-
# Extract simple numbers without commas
|
131 |
-
numbers_simple = re.findall(pattern_simple, string)
|
132 |
-
|
133 |
-
# Combine all extracted numbers
|
134 |
-
all_numbers = numbers_with_commas + numbers_scientific + numbers_simple
|
135 |
-
return all_numbers
|
136 |
-
|
137 |
-
|
138 |
-
def parse_open_response(response):
|
139 |
-
"""
|
140 |
-
Parse the prediction from the generated response.
|
141 |
-
Return a list of predicted strings or numbers.
|
142 |
-
"""
|
143 |
-
|
144 |
-
# content = content.strip("\n").strip(".").strip(" ")
|
145 |
-
def get_key_subresponses(response):
|
146 |
-
key_responses = []
|
147 |
-
response = response.strip().strip('.').lower()
|
148 |
-
sub_responses = re.split(r'\.\s(?=[A-Z])|\n', response)
|
149 |
-
indicators_of_keys = ['could be ', 'so ', 'is ',
|
150 |
-
'thus ', 'therefore ', 'final ', 'answer ', 'result ']
|
151 |
-
key_responses = []
|
152 |
-
for index, resp in enumerate(sub_responses):
|
153 |
-
# if last one, accept it's an equation (the entire response can be just one sentence with equation)
|
154 |
-
if index == len(sub_responses) - 1:
|
155 |
-
indicators_of_keys.extend(['='])
|
156 |
-
shortest_key_response = None # the shortest response that may contain the answer (tail part of the response)
|
157 |
-
for indicator in indicators_of_keys:
|
158 |
-
if indicator in resp:
|
159 |
-
if not shortest_key_response:
|
160 |
-
shortest_key_response = resp.split(indicator)[-1].strip()
|
161 |
-
else:
|
162 |
-
if len(resp.split(indicator)[-1].strip()) < len(shortest_key_response):
|
163 |
-
shortest_key_response = resp.split(indicator)[-1].strip()
|
164 |
-
# key_responses.append(resp.split(indicator)[1].strip())
|
165 |
-
|
166 |
-
if shortest_key_response:
|
167 |
-
# and it's not trivial
|
168 |
-
if shortest_key_response.strip() not in [':', ',', '.', '!', '?', ';', ':', "'"]:
|
169 |
-
key_responses.append(shortest_key_response)
|
170 |
-
if len(key_responses) == 0: # did not found any
|
171 |
-
return [response]
|
172 |
-
return key_responses
|
173 |
-
|
174 |
-
# pdb.set_trace()
|
175 |
-
key_responses = get_key_subresponses(response)
|
176 |
-
|
177 |
-
pred_list = key_responses.copy() # keep the original string response
|
178 |
-
for resp in key_responses:
|
179 |
-
pred_list.extend(extract_numbers(resp))
|
180 |
-
|
181 |
-
tmp_pred_list = []
|
182 |
-
for i in range(len(pred_list)):
|
183 |
-
tmp_pred_list.extend(normalize_str(pred_list[i]))
|
184 |
-
pred_list = tmp_pred_list
|
185 |
-
|
186 |
-
# remove duplicates
|
187 |
-
pred_list = list(set(pred_list))
|
188 |
-
|
189 |
-
return pred_list
|
190 |
-
|
191 |
-
|
192 |
-
# ----------- Evaluation -------------
|
193 |
-
|
194 |
-
def eval_multi_choice(gold_i, pred_i):
|
195 |
-
"""
|
196 |
-
Evaluate a multiple choice instance.
|
197 |
-
"""
|
198 |
-
correct = False
|
199 |
-
# only they are exactly the same, we consider it as correct
|
200 |
-
if isinstance(gold_i, list):
|
201 |
-
for answer in gold_i:
|
202 |
-
if answer == pred_i:
|
203 |
-
correct = True
|
204 |
-
break
|
205 |
-
else: # gold_i is a string
|
206 |
-
if gold_i == pred_i:
|
207 |
-
correct = True
|
208 |
-
return correct
|
209 |
-
|
210 |
-
|
211 |
-
def eval_open(gold_i, pred_i):
|
212 |
-
"""
|
213 |
-
Evaluate an open question instance
|
214 |
-
"""
|
215 |
-
correct = False
|
216 |
-
if isinstance(gold_i, list):
|
217 |
-
# use float to avoid trivial matches
|
218 |
-
norm_answers = []
|
219 |
-
for answer in gold_i:
|
220 |
-
norm_answers.extend(normalize_str(answer))
|
221 |
-
else:
|
222 |
-
norm_answers = normalize_str(gold_i)
|
223 |
-
for pred in pred_i: # pred is already normalized in parse response phase
|
224 |
-
if isinstance(pred, str): # if it's a string, then find if ans in the pred_i
|
225 |
-
for norm_ans in norm_answers:
|
226 |
-
# only see if the string answer in the string pred
|
227 |
-
if isinstance(norm_ans, str) and norm_ans in pred:
|
228 |
-
if not correct:
|
229 |
-
correct = True
|
230 |
-
break
|
231 |
-
else: # it's a float number
|
232 |
-
if pred in norm_answers:
|
233 |
-
if not correct:
|
234 |
-
correct = True
|
235 |
-
break
|
236 |
-
return correct
|
237 |
-
|
238 |
-
|
239 |
-
# ----------- Batch Evaluation -------------
|
240 |
-
def evaluate(samples):
|
241 |
-
"""
|
242 |
-
Batch evaluation for multiple choice and open questions.
|
243 |
-
"""
|
244 |
-
pred_correct = 0
|
245 |
-
judge_dict = dict()
|
246 |
-
for sample in samples:
|
247 |
-
gold_i = sample['answer']
|
248 |
-
pred_i = sample['parsed_pred']
|
249 |
-
if sample['question_type'] == 'multiple-choice':
|
250 |
-
correct = eval_multi_choice(gold_i, pred_i)
|
251 |
-
else: # open question
|
252 |
-
correct = eval_open(gold_i, pred_i)
|
253 |
-
|
254 |
-
if correct:
|
255 |
-
judge_dict[sample['id']] = 'Correct'
|
256 |
-
pred_correct += 1
|
257 |
-
else:
|
258 |
-
judge_dict[sample['id']] = 'Wrong'
|
259 |
-
|
260 |
-
if len(samples) == 0:
|
261 |
-
return {'acc': 0}
|
262 |
-
return judge_dict, {'acc': pred_correct / len(samples)}
|
263 |
-
|
264 |
-
|
265 |
-
# ----------- Calculate Accuracy -------------
|
266 |
-
def calculate_ins_level_acc(results: Dict):
|
267 |
-
"""Calculate the instruction level accuracy for given Subject results"""
|
268 |
-
acc = 0
|
269 |
-
ins_num = 0
|
270 |
-
for cat_results in results.values():
|
271 |
-
acc += cat_results['acc'] * cat_results['num_example']
|
272 |
-
ins_num += cat_results['num_example']
|
273 |
-
if ins_num == 0:
|
274 |
-
return 0
|
275 |
-
return acc / ins_num
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mmmu/evaluate_mmmu.py
DELETED
@@ -1,272 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import itertools
|
14 |
-
import json
|
15 |
-
import os
|
16 |
-
import random
|
17 |
-
|
18 |
-
import torch
|
19 |
-
from .data_utils import CAT_SHORT2LONG, process_single_sample
|
20 |
-
from datasets import concatenate_datasets, load_dataset
|
21 |
-
from eval.vlm.utils import load_model_and_tokenizer, build_transform, process_conversation
|
22 |
-
from PIL import Image
|
23 |
-
from tqdm import tqdm
|
24 |
-
|
25 |
-
ds_collections = {
|
26 |
-
'MMMU_validation': {
|
27 |
-
'root': 'MMMU/MMMU',
|
28 |
-
'max_new_tokens': 10,
|
29 |
-
'min_new_tokens': 1,
|
30 |
-
'split': 'validation'
|
31 |
-
},
|
32 |
-
'MMMU_test': {
|
33 |
-
'root': 'MMMU/MMMU',
|
34 |
-
'max_new_tokens': 10,
|
35 |
-
'min_new_tokens': 1,
|
36 |
-
'split': 'test'
|
37 |
-
},
|
38 |
-
'MMMU_dev': {
|
39 |
-
'root': 'MMMU/MMMU',
|
40 |
-
'max_new_tokens': 10,
|
41 |
-
'min_new_tokens': 1,
|
42 |
-
'split': 'dev'
|
43 |
-
},
|
44 |
-
}
|
45 |
-
|
46 |
-
|
47 |
-
def collate_fn(batches):
|
48 |
-
questions = [_['question'] for _ in batches]
|
49 |
-
images = [_['images'] for _ in batches]
|
50 |
-
conversation = [_['conversation'] for _ in batches]
|
51 |
-
answers = [_['answer'] for _ in batches]
|
52 |
-
data_ids = [_['data_id'] for _ in batches]
|
53 |
-
options = [_['option'] for _ in batches]
|
54 |
-
return questions, images, conversation, answers, data_ids, options
|
55 |
-
|
56 |
-
|
57 |
-
class MMMUDataset(torch.utils.data.Dataset):
|
58 |
-
|
59 |
-
def __init__(self, root, split, prompt):
|
60 |
-
# run for each subject
|
61 |
-
sub_dataset_list = []
|
62 |
-
for subject in tqdm(CAT_SHORT2LONG.values()):
|
63 |
-
sub_dataset = load_dataset(root, subject, split=split, cache_dir=os.path.join(os.getcwd(), 'eval/vlm/data/MMMU/'))
|
64 |
-
sub_dataset_list.append(sub_dataset)
|
65 |
-
|
66 |
-
# merge all dataset
|
67 |
-
self.data = concatenate_datasets(sub_dataset_list)
|
68 |
-
self.prompt = prompt
|
69 |
-
|
70 |
-
def __len__(self):
|
71 |
-
return len(self.data)
|
72 |
-
|
73 |
-
def __getitem__(self, idx):
|
74 |
-
|
75 |
-
data = process_single_sample(self.data[idx])
|
76 |
-
data_id = data['id']
|
77 |
-
question = data['question'].strip()
|
78 |
-
pil_images = data['image']
|
79 |
-
question_type = data['question_type']
|
80 |
-
|
81 |
-
choices = eval(data['options'])
|
82 |
-
answer = data['answer'] if 'answer' in data else None
|
83 |
-
|
84 |
-
choice_list = []
|
85 |
-
options = {}
|
86 |
-
multiple_choices = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M']
|
87 |
-
for i, c in enumerate(choices):
|
88 |
-
choice_list.append('{}. {}'.format(multiple_choices[i], c.strip()))
|
89 |
-
options[multiple_choices[i]] = c.strip()
|
90 |
-
choice_txt = '\n'.join(choice_list)
|
91 |
-
images = []
|
92 |
-
for idx, pil_image in enumerate(pil_images):
|
93 |
-
if pil_image is not None:
|
94 |
-
if idx == 0:
|
95 |
-
pil_image = pil_image.resize((pil_image.width * 2, pil_image.height * 2), Image.BILINEAR)
|
96 |
-
images.append(pil_image)
|
97 |
-
|
98 |
-
if len(choice_txt) > 0:
|
99 |
-
question += '\n' + choice_txt
|
100 |
-
question += '\n' + self.prompt[question_type]
|
101 |
-
question = question.strip()
|
102 |
-
|
103 |
-
# NOTE: Do not add <image> since <image 1> has been added
|
104 |
-
# question = "<image>" * len(images) + "\n" + question
|
105 |
-
|
106 |
-
images, conversation = process_conversation(images, question)
|
107 |
-
|
108 |
-
return {
|
109 |
-
'question': question,
|
110 |
-
'images': images,
|
111 |
-
'conversation': conversation,
|
112 |
-
'answer': answer,
|
113 |
-
'option': options,
|
114 |
-
'data_id': data_id
|
115 |
-
}
|
116 |
-
|
117 |
-
|
118 |
-
class InferenceSampler(torch.utils.data.sampler.Sampler):
|
119 |
-
|
120 |
-
def __init__(self, size):
|
121 |
-
self._size = int(size)
|
122 |
-
assert size > 0
|
123 |
-
self._rank = torch.distributed.get_rank()
|
124 |
-
self._world_size = torch.distributed.get_world_size()
|
125 |
-
self._local_indices = self._get_local_indices(size, self._world_size, self._rank)
|
126 |
-
|
127 |
-
@staticmethod
|
128 |
-
def _get_local_indices(total_size, world_size, rank):
|
129 |
-
shard_size = total_size // world_size
|
130 |
-
left = total_size % world_size
|
131 |
-
shard_sizes = [shard_size + int(r < left) for r in range(world_size)]
|
132 |
-
|
133 |
-
begin = sum(shard_sizes[:rank])
|
134 |
-
end = min(sum(shard_sizes[:rank + 1]), total_size)
|
135 |
-
return range(begin, end)
|
136 |
-
|
137 |
-
def __iter__(self):
|
138 |
-
yield from self._local_indices
|
139 |
-
|
140 |
-
def __len__(self):
|
141 |
-
return len(self._local_indices)
|
142 |
-
|
143 |
-
|
144 |
-
def post_process(pred, option):
|
145 |
-
pred = pred.strip()
|
146 |
-
option_candidate = list(option.keys())
|
147 |
-
if len(pred) == 1:
|
148 |
-
return pred
|
149 |
-
elif len(pred) == 0:
|
150 |
-
pred = "C"
|
151 |
-
elif len(pred) != 1 and pred[0] in option_candidate:
|
152 |
-
return pred[0]
|
153 |
-
elif len(pred) != 1 and pred[0] not in option_candidate:
|
154 |
-
for k, v in option.items():
|
155 |
-
if v in pred:
|
156 |
-
return k
|
157 |
-
|
158 |
-
return pred
|
159 |
-
|
160 |
-
|
161 |
-
def evaluate_chat_model():
|
162 |
-
prompt = {
|
163 |
-
'multiple-choice': "Answer with the option's letter from the given choices directly.",
|
164 |
-
'open': 'Answer the question using a single word or phrase.'
|
165 |
-
}
|
166 |
-
random.seed(args.seed)
|
167 |
-
|
168 |
-
for ds_name in args.datasets:
|
169 |
-
dataset = MMMUDataset(
|
170 |
-
root=ds_collections[ds_name]['root'],
|
171 |
-
split=ds_collections[ds_name]['split'],
|
172 |
-
prompt=prompt,
|
173 |
-
)
|
174 |
-
dataloader = torch.utils.data.DataLoader(
|
175 |
-
dataset=dataset,
|
176 |
-
sampler=InferenceSampler(len(dataset)),
|
177 |
-
batch_size=args.batch_size,
|
178 |
-
num_workers=args.num_workers,
|
179 |
-
pin_memory=True,
|
180 |
-
drop_last=False,
|
181 |
-
collate_fn=collate_fn,
|
182 |
-
)
|
183 |
-
|
184 |
-
outputs = []
|
185 |
-
for _, (questions, images, conversation, answers, data_ids, options) in tqdm(enumerate(dataloader)):
|
186 |
-
pred = model.chat(
|
187 |
-
tokenizer,
|
188 |
-
new_token_ids,
|
189 |
-
image_transform,
|
190 |
-
images=images[0], # batch=1
|
191 |
-
prompt=conversation[0], # batch=1
|
192 |
-
max_length=ds_collections[ds_name]['max_new_tokens'], # TODO: how to use ds_collections[ds_name]['min_new_tokens']
|
193 |
-
)
|
194 |
-
if len(options[0]) == 0:
|
195 |
-
preds = [pred]
|
196 |
-
else:
|
197 |
-
preds = [post_process(pred, options[0])]
|
198 |
-
|
199 |
-
for question, pred, answer, data_id in zip(questions, preds, answers, data_ids):
|
200 |
-
outputs.append({
|
201 |
-
'question': question,
|
202 |
-
'answer': pred,
|
203 |
-
'gt_answers': answer,
|
204 |
-
'data_id': data_id
|
205 |
-
})
|
206 |
-
|
207 |
-
torch.distributed.barrier()
|
208 |
-
|
209 |
-
world_size = torch.distributed.get_world_size()
|
210 |
-
merged_outputs = [None for _ in range(world_size)]
|
211 |
-
torch.distributed.all_gather_object(merged_outputs, json.dumps(outputs))
|
212 |
-
|
213 |
-
merged_outputs = [json.loads(_) for _ in merged_outputs]
|
214 |
-
merged_outputs = [_ for _ in itertools.chain.from_iterable(merged_outputs)]
|
215 |
-
|
216 |
-
if torch.distributed.get_rank() == 0:
|
217 |
-
print(f'Evaluating {ds_name} ...')
|
218 |
-
output_path = os.path.join(args.out_dir, "prediction.json")
|
219 |
-
outputs = {}
|
220 |
-
for item in merged_outputs:
|
221 |
-
outputs[item['data_id']] = item['answer']
|
222 |
-
with open(output_path, 'w') as f:
|
223 |
-
json.dump(outputs, f, indent=4)
|
224 |
-
print('Results saved to {}'.format(output_path))
|
225 |
-
if ds_collections[ds_name]['split'] == 'validation':
|
226 |
-
print('Evaluating ...')
|
227 |
-
cmd = f'python -m eval.vlm.eval.mmmu.main_eval_only ' \
|
228 |
-
f'--output_path {output_path} ' \
|
229 |
-
f'--answer_path eval/vlm/eval/mmmu/answer_dict_val.json ' \
|
230 |
-
f'--out-dir {args.out_dir}'
|
231 |
-
print(cmd)
|
232 |
-
os.system(cmd)
|
233 |
-
output_path = os.path.join(args.out_dir, "results.jsonl")
|
234 |
-
writer = open(output_path, 'w')
|
235 |
-
for item in merged_outputs:
|
236 |
-
writer.write(json.dumps(item) + '\n')
|
237 |
-
writer.close()
|
238 |
-
print('Results saved to {}'.format(output_path))
|
239 |
-
|
240 |
-
|
241 |
-
if __name__ == '__main__':
|
242 |
-
parser = argparse.ArgumentParser()
|
243 |
-
parser.add_argument('--datasets', type=str, default='MMMU_validation')
|
244 |
-
parser.add_argument('--batch-size', type=int, default=1)
|
245 |
-
parser.add_argument('--num-workers', type=int, default=1)
|
246 |
-
parser.add_argument('--out-dir', type=str, default='results')
|
247 |
-
parser.add_argument('--seed', type=int, default=0)
|
248 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
249 |
-
args = parser.parse_args()
|
250 |
-
|
251 |
-
if not os.path.exists(args.out_dir):
|
252 |
-
os.makedirs(args.out_dir, exist_ok=True)
|
253 |
-
|
254 |
-
args.datasets = args.datasets.split(',')
|
255 |
-
print('datasets:', args.datasets)
|
256 |
-
assert args.batch_size == 1, 'Only batch size 1 is supported'
|
257 |
-
|
258 |
-
torch.distributed.init_process_group(
|
259 |
-
backend='nccl',
|
260 |
-
world_size=int(os.getenv('WORLD_SIZE', '1')),
|
261 |
-
rank=int(os.getenv('RANK', '0')),
|
262 |
-
)
|
263 |
-
|
264 |
-
torch.cuda.set_device(int(os.getenv('LOCAL_RANK', 0)))
|
265 |
-
|
266 |
-
model, tokenizer, new_token_ids = load_model_and_tokenizer(args)
|
267 |
-
image_transform = build_transform()
|
268 |
-
|
269 |
-
total_params = sum(p.numel() for p in model.parameters()) / 1e9
|
270 |
-
print(f'[test] total_params: {total_params}B')
|
271 |
-
|
272 |
-
evaluate_chat_model()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mmmu/evaluate_mmmu_cot.py
DELETED
@@ -1,252 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import json
|
14 |
-
import os
|
15 |
-
import random
|
16 |
-
|
17 |
-
import torch
|
18 |
-
from .data_utils import CAT_SHORT2LONG, process_single_sample
|
19 |
-
from datasets import concatenate_datasets, load_dataset
|
20 |
-
from eval.vlm.utils import load_model_and_tokenizer, build_transform, process_conversation
|
21 |
-
from PIL import Image
|
22 |
-
from tqdm import tqdm
|
23 |
-
|
24 |
-
ds_collections = {
|
25 |
-
'MMMU_validation_cot': {
|
26 |
-
'root': 'MMMU/MMMU',
|
27 |
-
'max_new_tokens': 16384,
|
28 |
-
'min_new_tokens': 1,
|
29 |
-
'split': 'validation'
|
30 |
-
},
|
31 |
-
}
|
32 |
-
|
33 |
-
COT_INSTRUCTION = (
|
34 |
-
'Your task is to answer the question below. '
|
35 |
-
"Give step by step reasoning before you answer, and when you're ready to answer, "
|
36 |
-
"please use the format \"Final answer: ..\""
|
37 |
-
'\n\n'
|
38 |
-
'Question:'
|
39 |
-
'\n\n'
|
40 |
-
'{question}'
|
41 |
-
)
|
42 |
-
|
43 |
-
COT_OPEN_INSTRUCTION = (
|
44 |
-
'Question: {question}'
|
45 |
-
)
|
46 |
-
|
47 |
-
COT_MC_INSTRUCTION = (
|
48 |
-
'Question: {question} Options: {options}\n'
|
49 |
-
'Try to reason about the question step by step to help you get the correct answer. '
|
50 |
-
'You might find that sometimes no reasoning is needed if the answer is straightforward. '
|
51 |
-
'Sometimes listing out a few reasoning steps will be helpful. '
|
52 |
-
'In any case, please keep the reasoning concise.\n\n'
|
53 |
-
|
54 |
-
'First, please describe what is included in the image. '
|
55 |
-
'Then, respond with your reason first and output the final answer in the format "Final Answer: <answer>" where <answer> is the single correct letter choice A, B, C, D, E, F, etc, when options are provided. '
|
56 |
-
'If you find that your reasoning lead to none of the choice, reject your reasoning and choose the most likely answer. '
|
57 |
-
'You have to answer with one of the choices. If no options are provided, <answer> is your answer. '
|
58 |
-
'If you would like to skip reasoning, just directly output the "Final Answer" part.'
|
59 |
-
)
|
60 |
-
|
61 |
-
COT_OPEN_INSTRUCTION_V2 = (
|
62 |
-
"You should first think about the reasoning process in the mind and then provide the user with the answer. The reasoning process is enclosed within <think> </think> tags, i.e. <think> reasoning process here </think> answer here." +\
|
63 |
-
"{question}" + "\nAnswer the question using a single word or phrase."
|
64 |
-
)
|
65 |
-
|
66 |
-
COT_MC_INSTRUCTION_V2 = (
|
67 |
-
"You should first think about the reasoning process in the mind and then provide the user with the answer. The reasoning process is enclosed within <think> </think> tags, i.e. <think> reasoning process here </think> answer here." +\
|
68 |
-
"Question: {question} Options: {options} " + "\nAnswer with the option's letter from the given choices directly."
|
69 |
-
)
|
70 |
-
|
71 |
-
|
72 |
-
def collate_fn(batches):
|
73 |
-
questions = [_['question'] for _ in batches]
|
74 |
-
images = [_['images'] for _ in batches]
|
75 |
-
conversation = [_['conversation'] for _ in batches]
|
76 |
-
answers = [_['answer'] for _ in batches]
|
77 |
-
data_ids = [_['data_id'] for _ in batches]
|
78 |
-
options = [_['option'] for _ in batches]
|
79 |
-
return questions, images, conversation, answers, data_ids, options
|
80 |
-
|
81 |
-
|
82 |
-
class MMMUDataset(torch.utils.data.Dataset):
|
83 |
-
|
84 |
-
def __init__(self, root, split):
|
85 |
-
# run for each subject
|
86 |
-
sub_dataset_list = []
|
87 |
-
for subject in tqdm(CAT_SHORT2LONG.values()):
|
88 |
-
sub_dataset = load_dataset(root, subject, split=split, cache_dir=os.path.join(os.getcwd(), 'eval/vlm/data/MMMU/'))
|
89 |
-
sub_dataset_list.append(sub_dataset)
|
90 |
-
|
91 |
-
# merge all dataset
|
92 |
-
self.data = concatenate_datasets(sub_dataset_list)
|
93 |
-
|
94 |
-
def __len__(self):
|
95 |
-
return len(self.data)
|
96 |
-
|
97 |
-
def __getitem__(self, idx):
|
98 |
-
|
99 |
-
data = process_single_sample(self.data[idx])
|
100 |
-
data_id = data['id']
|
101 |
-
question = data['question'].strip()
|
102 |
-
pil_images = data['image']
|
103 |
-
question_type = data['question_type'] # "open", "multiple-choice"
|
104 |
-
|
105 |
-
choices = eval(data['options'])
|
106 |
-
answer = data['answer'] if 'answer' in data else None
|
107 |
-
|
108 |
-
choice_list = []
|
109 |
-
options = {}
|
110 |
-
multiple_choices = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M']
|
111 |
-
for i, c in enumerate(choices):
|
112 |
-
choice_list.append('{}. {}'.format(multiple_choices[i], c.strip()))
|
113 |
-
options[multiple_choices[i]] = c.strip()
|
114 |
-
choice_txt = '\n'.join(choice_list)
|
115 |
-
images = []
|
116 |
-
for idx, pil_image in enumerate(pil_images):
|
117 |
-
if pil_image is not None:
|
118 |
-
if idx == 0:
|
119 |
-
pil_image = pil_image.resize((pil_image.width * 2, pil_image.height * 2), Image.BILINEAR)
|
120 |
-
images.append(pil_image)
|
121 |
-
|
122 |
-
if len(choice_txt) > 0:
|
123 |
-
question = COT_MC_INSTRUCTION_V2.format(question=question.strip(), options=choice_txt.strip())
|
124 |
-
else:
|
125 |
-
question = COT_OPEN_INSTRUCTION_V2.format(question=question.strip())
|
126 |
-
|
127 |
-
# NOTE: Do not add <image> since <image 1> has been added
|
128 |
-
# question = "<image>" * len(images) + "\n" + question
|
129 |
-
|
130 |
-
images, conversation = process_conversation(images, question)
|
131 |
-
|
132 |
-
return {
|
133 |
-
'question': question,
|
134 |
-
'images': images,
|
135 |
-
'conversation': conversation,
|
136 |
-
'answer': answer,
|
137 |
-
'option': options,
|
138 |
-
'data_id': data_id
|
139 |
-
}
|
140 |
-
|
141 |
-
|
142 |
-
class InferenceSampler(torch.utils.data.sampler.Sampler):
|
143 |
-
|
144 |
-
def __init__(self, size):
|
145 |
-
self._size = int(size)
|
146 |
-
assert size > 0
|
147 |
-
self._rank = torch.distributed.get_rank()
|
148 |
-
self._world_size = torch.distributed.get_world_size()
|
149 |
-
self._local_indices = self._get_local_indices(size, self._world_size, self._rank)
|
150 |
-
|
151 |
-
@staticmethod
|
152 |
-
def _get_local_indices(total_size, world_size, rank):
|
153 |
-
shard_size = total_size // world_size
|
154 |
-
left = total_size % world_size
|
155 |
-
shard_sizes = [shard_size + int(r < left) for r in range(world_size)]
|
156 |
-
|
157 |
-
begin = sum(shard_sizes[:rank])
|
158 |
-
end = min(sum(shard_sizes[:rank + 1]), total_size)
|
159 |
-
return range(begin, end)
|
160 |
-
|
161 |
-
def __iter__(self):
|
162 |
-
yield from self._local_indices
|
163 |
-
|
164 |
-
def __len__(self):
|
165 |
-
return len(self._local_indices)
|
166 |
-
|
167 |
-
|
168 |
-
def evaluate_chat_model():
|
169 |
-
random.seed(args.seed)
|
170 |
-
output_path = os.path.join(args.out_dir, "results.jsonl")
|
171 |
-
|
172 |
-
processed_ids = set()
|
173 |
-
if os.path.exists(output_path):
|
174 |
-
with open(output_path) as f:
|
175 |
-
lines = f.readlines()
|
176 |
-
for line in lines:
|
177 |
-
processed_ids.add(json.loads(line)["data_id"])
|
178 |
-
|
179 |
-
writer = open(output_path, 'a')
|
180 |
-
|
181 |
-
for ds_name in args.datasets:
|
182 |
-
dataset = MMMUDataset(
|
183 |
-
root=ds_collections[ds_name]['root'],
|
184 |
-
split=ds_collections[ds_name]['split'],
|
185 |
-
)
|
186 |
-
dataloader = torch.utils.data.DataLoader(
|
187 |
-
dataset=dataset,
|
188 |
-
sampler=InferenceSampler(len(dataset)),
|
189 |
-
batch_size=args.batch_size,
|
190 |
-
num_workers=args.num_workers,
|
191 |
-
pin_memory=True,
|
192 |
-
drop_last=False,
|
193 |
-
collate_fn=collate_fn,
|
194 |
-
)
|
195 |
-
|
196 |
-
for _, (questions, images, conversation, answers, data_ids, options) in tqdm(enumerate(dataloader)):
|
197 |
-
if data_ids[0] in processed_ids:
|
198 |
-
continue
|
199 |
-
|
200 |
-
pred = model.chat(
|
201 |
-
tokenizer,
|
202 |
-
new_token_ids,
|
203 |
-
image_transform,
|
204 |
-
images=images[0], # batch=1
|
205 |
-
prompt=conversation[0], # batch=1
|
206 |
-
max_length=ds_collections[ds_name]['max_new_tokens'], # TODO: how to use ds_collections[ds_name]['min_new_tokens']
|
207 |
-
)
|
208 |
-
preds = [pred.strip()]
|
209 |
-
|
210 |
-
for question, pred, answer, data_id in zip(questions, preds, answers, data_ids):
|
211 |
-
cur_output = {
|
212 |
-
'question': question,
|
213 |
-
'answer': pred,
|
214 |
-
'gt_answers': answer,
|
215 |
-
'data_id': data_id
|
216 |
-
}
|
217 |
-
writer.write(json.dumps(cur_output) + '\n')
|
218 |
-
|
219 |
-
writer.close()
|
220 |
-
|
221 |
-
if __name__ == '__main__':
|
222 |
-
parser = argparse.ArgumentParser()
|
223 |
-
parser.add_argument('--datasets', type=str, default='MMMU_validation')
|
224 |
-
parser.add_argument('--batch-size', type=int, default=1)
|
225 |
-
parser.add_argument('--num-workers', type=int, default=1)
|
226 |
-
parser.add_argument('--out-dir', type=str, default='results')
|
227 |
-
parser.add_argument('--seed', type=int, default=0)
|
228 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
229 |
-
args = parser.parse_args()
|
230 |
-
|
231 |
-
if not os.path.exists(args.out_dir):
|
232 |
-
os.makedirs(args.out_dir, exist_ok=True)
|
233 |
-
|
234 |
-
args.datasets = args.datasets.split(',')
|
235 |
-
print('datasets:', args.datasets)
|
236 |
-
assert args.batch_size == 1, 'Only batch size 1 is supported'
|
237 |
-
|
238 |
-
torch.distributed.init_process_group(
|
239 |
-
backend='nccl',
|
240 |
-
world_size=int(os.getenv('WORLD_SIZE', '1')),
|
241 |
-
rank=int(os.getenv('RANK', '0')),
|
242 |
-
)
|
243 |
-
|
244 |
-
torch.cuda.set_device(int(os.getenv('LOCAL_RANK', 0)))
|
245 |
-
|
246 |
-
model, tokenizer, new_token_ids = load_model_and_tokenizer(args)
|
247 |
-
image_transform = build_transform()
|
248 |
-
|
249 |
-
total_params = sum(p.numel() for p in model.parameters()) / 1e9
|
250 |
-
print(f'[test] total_params: {total_params}B')
|
251 |
-
|
252 |
-
evaluate_chat_model()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mmmu/main_eval_only.py
DELETED
@@ -1,113 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
"""Parse and Evalate"""
|
13 |
-
import os
|
14 |
-
import json
|
15 |
-
from argparse import ArgumentParser
|
16 |
-
|
17 |
-
from .data_utils import CAT_SHORT2LONG, DOMAIN_CAT2SUB_CAT, save_json
|
18 |
-
from .eval_utils import calculate_ins_level_acc, evaluate, parse_open_response
|
19 |
-
|
20 |
-
if __name__ == '__main__':
|
21 |
-
|
22 |
-
parser = ArgumentParser()
|
23 |
-
parser.add_argument('--output_path', type=str, default='./example_outputs/qwen_vl/total_val_output.json',
|
24 |
-
help='The path to model output file.')
|
25 |
-
parser.add_argument('--answer_path', type=str, default='./answer_dict_val.json', help='Answer file path.')
|
26 |
-
parser.add_argument('--out-dir', type=str, default='results')
|
27 |
-
args = parser.parse_args()
|
28 |
-
|
29 |
-
output_dict = json.load(open(args.output_path))
|
30 |
-
answer_dict = json.load(open(args.answer_path))
|
31 |
-
|
32 |
-
# group by category
|
33 |
-
output_dict_w_cat = {}
|
34 |
-
for data_id, parsed_pred in output_dict.items():
|
35 |
-
category = '_'.join(data_id.split('_')[1:-1])
|
36 |
-
if category not in output_dict_w_cat:
|
37 |
-
output_dict_w_cat.update({category: {}})
|
38 |
-
output_dict_w_cat[category].update({data_id: parsed_pred})
|
39 |
-
|
40 |
-
# group by category
|
41 |
-
answer_dict_w_cat = {}
|
42 |
-
for data_id, parsed_pred in answer_dict.items():
|
43 |
-
category = '_'.join(data_id.split('_')[1:-1])
|
44 |
-
if category not in answer_dict_w_cat:
|
45 |
-
answer_dict_w_cat.update({category: {}})
|
46 |
-
answer_dict_w_cat[category].update({data_id: parsed_pred})
|
47 |
-
|
48 |
-
evaluation_result = {}
|
49 |
-
|
50 |
-
for category in CAT_SHORT2LONG.values():
|
51 |
-
print('Evaluating: {}'.format(category))
|
52 |
-
# get cat_outputs and cat_answers
|
53 |
-
try:
|
54 |
-
cat_outputs = output_dict_w_cat[category]
|
55 |
-
cat_answers = answer_dict_w_cat[category]
|
56 |
-
except KeyError:
|
57 |
-
print('Skipping {} for not found'.format(category))
|
58 |
-
continue
|
59 |
-
|
60 |
-
exampels_to_eval = []
|
61 |
-
for data_id, parsed_pred in cat_outputs.items():
|
62 |
-
question_type = cat_answers[data_id]['question_type']
|
63 |
-
if question_type != 'multiple-choice':
|
64 |
-
parsed_pred = parse_open_response(parsed_pred) # mainly for type consistency (make it number, etc.)
|
65 |
-
else:
|
66 |
-
parsed_pred = parsed_pred
|
67 |
-
|
68 |
-
exampels_to_eval.append({
|
69 |
-
'id': data_id,
|
70 |
-
'question_type': question_type,
|
71 |
-
'answer': cat_answers[data_id]['ground_truth'],
|
72 |
-
'parsed_pred': parsed_pred
|
73 |
-
})
|
74 |
-
|
75 |
-
judge_dict, metric_dict = evaluate(exampels_to_eval)
|
76 |
-
metric_dict.update({'num_example': len(exampels_to_eval)})
|
77 |
-
|
78 |
-
evaluation_result[category] = metric_dict
|
79 |
-
|
80 |
-
printable_results = {}
|
81 |
-
# pdb.set_trace()
|
82 |
-
# add domain Subject
|
83 |
-
for domain, in_domain_cats in DOMAIN_CAT2SUB_CAT.items():
|
84 |
-
in_domain_cat_results = {}
|
85 |
-
for cat_name in in_domain_cats: # use the order in DOMAIN_CAT2SUB_CAT
|
86 |
-
if cat_name in evaluation_result.keys():
|
87 |
-
in_domain_cat_results[cat_name] = evaluation_result[cat_name]
|
88 |
-
else:
|
89 |
-
pass
|
90 |
-
in_domain_ins_acc = calculate_ins_level_acc(in_domain_cat_results)
|
91 |
-
in_domain_data_num = sum([cat_results['num_example'] for cat_results in in_domain_cat_results.values()])
|
92 |
-
printable_results['Overall-' + domain] = {'num': int(in_domain_data_num),
|
93 |
-
'acc': round(in_domain_ins_acc, 3)
|
94 |
-
}
|
95 |
-
# add sub category
|
96 |
-
for cat_name, cat_results in in_domain_cat_results.items():
|
97 |
-
printable_results[cat_name] = {'num': int(cat_results['num_example']),
|
98 |
-
'acc': round(cat_results['acc'], 3)
|
99 |
-
}
|
100 |
-
|
101 |
-
# table.append(["-----------------------------", "-----", "----"])
|
102 |
-
all_ins_acc = calculate_ins_level_acc(evaluation_result)
|
103 |
-
printable_results['Overall'] = {
|
104 |
-
'num': sum([cat_results['num_example'] for cat_results in evaluation_result.values()]),
|
105 |
-
'acc': round(all_ins_acc, 3)}
|
106 |
-
|
107 |
-
print(printable_results)
|
108 |
-
writer = open(os.path.join(args.out_dir, "results.txt"), 'w')
|
109 |
-
print(f"write results to file {os.path.join(args.out_dir, 'results.txt')}")
|
110 |
-
for key, value in printable_results.items():
|
111 |
-
line = f'{key}: num={value["num"]}, acc={value["acc"]}\n'
|
112 |
-
writer.write(line)
|
113 |
-
writer.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mmvet/evaluate_mmvet.py
DELETED
@@ -1,112 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import json
|
14 |
-
import os
|
15 |
-
import random
|
16 |
-
|
17 |
-
import torch
|
18 |
-
from eval.vlm.utils import load_model_and_tokenizer, build_transform, process_conversation
|
19 |
-
from PIL import Image
|
20 |
-
from tqdm import tqdm
|
21 |
-
|
22 |
-
ds_collections = {
|
23 |
-
'mmvet': {
|
24 |
-
'root': 'eval/vlm/data/mm-vet/images',
|
25 |
-
'question': 'eval/vlm/data/mm-vet/llava-mm-vet.jsonl',
|
26 |
-
'metric': None,
|
27 |
-
'max_new_tokens': 1000,
|
28 |
-
'min_new_tokens': 1,
|
29 |
-
}
|
30 |
-
}
|
31 |
-
|
32 |
-
|
33 |
-
class VQADataset(torch.utils.data.Dataset):
|
34 |
-
|
35 |
-
def __init__(self, root, data, prompt):
|
36 |
-
self.root = root
|
37 |
-
self.data = open(data).readlines()
|
38 |
-
self.prompt = prompt
|
39 |
-
|
40 |
-
def __len__(self):
|
41 |
-
return len(self.data)
|
42 |
-
|
43 |
-
def __getitem__(self, idx):
|
44 |
-
data = json.loads(self.data[idx].strip())
|
45 |
-
image, question, question_id, annotation = data['image'], data[
|
46 |
-
'text'], data['question_id'], data.get('answer', None)
|
47 |
-
|
48 |
-
image = os.path.join(self.root, image)
|
49 |
-
image = Image.open(image).convert('RGB')
|
50 |
-
images = [image]
|
51 |
-
|
52 |
-
question = question + ' ' + self.prompt
|
53 |
-
|
54 |
-
images, conversation = process_conversation(images, question)
|
55 |
-
|
56 |
-
return question_id, question, images, conversation, annotation
|
57 |
-
|
58 |
-
|
59 |
-
def evaluate_chat_model():
|
60 |
-
random.seed(args.seed)
|
61 |
-
prompt = ''
|
62 |
-
|
63 |
-
for ds_name in args.datasets:
|
64 |
-
dataset = VQADataset(
|
65 |
-
root=ds_collections[ds_name]['root'],
|
66 |
-
data=ds_collections[ds_name]['question'],
|
67 |
-
prompt=prompt,
|
68 |
-
)
|
69 |
-
|
70 |
-
outputs = {}
|
71 |
-
for _, (question_id, question, images, conversation, annotations) in tqdm(enumerate(dataset)):
|
72 |
-
pred = model.chat(
|
73 |
-
tokenizer,
|
74 |
-
new_token_ids,
|
75 |
-
image_transform,
|
76 |
-
images=images,
|
77 |
-
prompt=conversation,
|
78 |
-
max_length=ds_collections[ds_name]['max_new_tokens'], # TODO: how to use ds_collections[ds_name]['min_new_tokens']
|
79 |
-
)
|
80 |
-
|
81 |
-
outputs[f'v1_{question_id}'] = pred
|
82 |
-
|
83 |
-
print(f'Evaluating {ds_name} ...')
|
84 |
-
results_file = os.path.join(args.out_dir, 'results.json')
|
85 |
-
json.dump(outputs, open(results_file, 'w'))
|
86 |
-
print('Results saved to {}'.format(results_file))
|
87 |
-
|
88 |
-
|
89 |
-
if __name__ == '__main__':
|
90 |
-
parser = argparse.ArgumentParser()
|
91 |
-
parser.add_argument('--datasets', type=str, default='mmvet')
|
92 |
-
parser.add_argument('--batch-size', type=int, default=1)
|
93 |
-
parser.add_argument('--num-workers', type=int, default=1)
|
94 |
-
parser.add_argument('--out-dir', type=str, default='results')
|
95 |
-
parser.add_argument('--seed', type=int, default=0)
|
96 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
97 |
-
args = parser.parse_args()
|
98 |
-
|
99 |
-
if not os.path.exists(args.out_dir):
|
100 |
-
os.makedirs(args.out_dir, exist_ok=True)
|
101 |
-
|
102 |
-
args.datasets = args.datasets.split(',')
|
103 |
-
print('datasets:', args.datasets)
|
104 |
-
assert args.batch_size == 1, 'Only batch size 1 is supported'
|
105 |
-
|
106 |
-
model, tokenizer, new_token_ids = load_model_and_tokenizer(args)
|
107 |
-
image_transform = build_transform()
|
108 |
-
|
109 |
-
total_params = sum(p.numel() for p in model.parameters()) / 1e9
|
110 |
-
print(f'[test] total_params: {total_params}B')
|
111 |
-
|
112 |
-
evaluate_chat_model()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/mmvp/evaluate_mmvp.py
DELETED
@@ -1,258 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import csv
|
14 |
-
import itertools
|
15 |
-
import json
|
16 |
-
import os
|
17 |
-
import random
|
18 |
-
|
19 |
-
import torch
|
20 |
-
from eval.vlm.utils import load_model_and_tokenizer, build_transform, process_conversation
|
21 |
-
from PIL import Image
|
22 |
-
from tqdm import tqdm
|
23 |
-
|
24 |
-
ds_collections = {
|
25 |
-
'MMVP': {
|
26 |
-
'root': 'eval/vlm/data/MMVP',
|
27 |
-
'max_new_tokens': 100,
|
28 |
-
'min_new_tokens': 1,
|
29 |
-
},
|
30 |
-
}
|
31 |
-
|
32 |
-
|
33 |
-
def collate_fn(batches):
|
34 |
-
questions = [_['question'] for _ in batches]
|
35 |
-
images = [_['images'] for _ in batches]
|
36 |
-
conversations = [_['conversations'] for _ in batches]
|
37 |
-
answers = [_['answer'] for _ in batches]
|
38 |
-
data_ids = [_['data_id'] for _ in batches]
|
39 |
-
options = [_['option'] for _ in batches]
|
40 |
-
return questions, images, conversations, answers, data_ids, options
|
41 |
-
|
42 |
-
|
43 |
-
class MMVPDataset(torch.utils.data.Dataset):
|
44 |
-
|
45 |
-
def __init__(self, root, prompt):
|
46 |
-
# run for each subject
|
47 |
-
meta_path = os.path.join(root, 'Questions.csv')
|
48 |
-
with open(meta_path, 'r') as file:
|
49 |
-
csv_reader = csv.DictReader(file)
|
50 |
-
data = [row for row in csv_reader]
|
51 |
-
|
52 |
-
self.data = data
|
53 |
-
self.root = root
|
54 |
-
self.prompt = prompt
|
55 |
-
|
56 |
-
def __len__(self):
|
57 |
-
return len(self.data)
|
58 |
-
|
59 |
-
def __getitem__(self, idx):
|
60 |
-
data = self.data[idx]
|
61 |
-
data_id = data['lndex'] if 'lndex' in data else data['Index']
|
62 |
-
question = data['Question']
|
63 |
-
image = os.path.join(self.root + '/MMVP Images', data_id + '.jpg')
|
64 |
-
image = Image.open(image).convert('RGB')
|
65 |
-
|
66 |
-
options = data['Options'].split('(b)')
|
67 |
-
options[0] = options[0].replace('(a)', '').strip()
|
68 |
-
options[1] = options[1].replace('(b)', '').strip()
|
69 |
-
|
70 |
-
answer = data['Correct Answer'] if 'Correct Answer' in data else None
|
71 |
-
answer = answer.replace('(a)', 'A').replace('(b)', 'B').replace('(c)', 'C').replace('(d)', 'D')
|
72 |
-
choice_list = []
|
73 |
-
new_options = {}
|
74 |
-
multiple_choices = ['A', 'B', 'C', 'D']
|
75 |
-
for i, c in enumerate(options):
|
76 |
-
choice_list.append('{}. {}'.format(multiple_choices[i], c.strip()))
|
77 |
-
new_options[multiple_choices[i]] = c.strip()
|
78 |
-
choice_txt = '\n'.join(choice_list)
|
79 |
-
|
80 |
-
images = [image]
|
81 |
-
|
82 |
-
if len(choice_txt) > 0:
|
83 |
-
question += '\n' + choice_txt
|
84 |
-
question += '\n' + self.prompt
|
85 |
-
|
86 |
-
images, conversation = process_conversation(images, question)
|
87 |
-
|
88 |
-
return {
|
89 |
-
'question': question,
|
90 |
-
'images': images,
|
91 |
-
'conversations': conversation,
|
92 |
-
'answer': answer,
|
93 |
-
'option': new_options,
|
94 |
-
'data_id': data_id
|
95 |
-
}
|
96 |
-
|
97 |
-
|
98 |
-
class InferenceSampler(torch.utils.data.sampler.Sampler):
|
99 |
-
|
100 |
-
def __init__(self, size):
|
101 |
-
self._size = int(size)
|
102 |
-
assert size > 0
|
103 |
-
self._rank = torch.distributed.get_rank()
|
104 |
-
self._world_size = torch.distributed.get_world_size()
|
105 |
-
self._local_indices = self._get_local_indices(size, self._world_size, self._rank)
|
106 |
-
|
107 |
-
@staticmethod
|
108 |
-
def _get_local_indices(total_size, world_size, rank):
|
109 |
-
shard_size = total_size // world_size
|
110 |
-
left = total_size % world_size
|
111 |
-
shard_sizes = [shard_size + int(r < left) for r in range(world_size)]
|
112 |
-
|
113 |
-
begin = sum(shard_sizes[:rank])
|
114 |
-
end = min(sum(shard_sizes[:rank + 1]), total_size)
|
115 |
-
return range(begin, end)
|
116 |
-
|
117 |
-
def __iter__(self):
|
118 |
-
yield from self._local_indices
|
119 |
-
|
120 |
-
def __len__(self):
|
121 |
-
return len(self._local_indices)
|
122 |
-
|
123 |
-
|
124 |
-
def post_process(pred, option):
|
125 |
-
pred = pred.strip()
|
126 |
-
option_candidate = list(option.keys())
|
127 |
-
if len(pred) == 1:
|
128 |
-
return pred
|
129 |
-
elif len(pred) != 1 and pred[0] in option_candidate:
|
130 |
-
return pred[0]
|
131 |
-
elif len(pred) != 1 and pred[0] not in option_candidate:
|
132 |
-
for k, v in option.items():
|
133 |
-
if v in pred:
|
134 |
-
return k
|
135 |
-
|
136 |
-
return pred
|
137 |
-
|
138 |
-
|
139 |
-
def evaluate_chat_model():
|
140 |
-
prompt = "Answer with the option's letter from the given choices directly."
|
141 |
-
random.seed(args.seed)
|
142 |
-
|
143 |
-
for ds_name in args.datasets:
|
144 |
-
dataset = MMVPDataset(
|
145 |
-
root=ds_collections[ds_name]['root'], # hf dataset path.
|
146 |
-
prompt=prompt,
|
147 |
-
)
|
148 |
-
dataloader = torch.utils.data.DataLoader(
|
149 |
-
dataset=dataset,
|
150 |
-
sampler=InferenceSampler(len(dataset)),
|
151 |
-
batch_size=args.batch_size,
|
152 |
-
num_workers=args.num_workers,
|
153 |
-
pin_memory=True,
|
154 |
-
drop_last=False,
|
155 |
-
collate_fn=collate_fn,
|
156 |
-
)
|
157 |
-
|
158 |
-
outputs = []
|
159 |
-
for _, (questions, images, conversations, answers, data_ids, options) in tqdm(enumerate(dataloader)):
|
160 |
-
pred = model.chat(
|
161 |
-
tokenizer,
|
162 |
-
new_token_ids,
|
163 |
-
image_transform,
|
164 |
-
images=images[0], # batch=1
|
165 |
-
prompt=conversations[0], # batch=1
|
166 |
-
max_length=ds_collections[ds_name]['max_new_tokens'], # TODO: how to use ds_collections[ds_name]['min_new_tokens']
|
167 |
-
)
|
168 |
-
|
169 |
-
if len(options[0]) == 0:
|
170 |
-
preds = [pred]
|
171 |
-
else:
|
172 |
-
preds = [post_process(pred, options[0])]
|
173 |
-
|
174 |
-
for question, pred, answer, data_id in zip(questions, preds, answers, data_ids):
|
175 |
-
outputs.append({
|
176 |
-
'question': question,
|
177 |
-
'answer': pred,
|
178 |
-
'gt_answers': answer,
|
179 |
-
'data_id': data_id
|
180 |
-
})
|
181 |
-
|
182 |
-
torch.distributed.barrier()
|
183 |
-
|
184 |
-
world_size = torch.distributed.get_world_size()
|
185 |
-
merged_outputs = [None for _ in range(world_size)]
|
186 |
-
torch.distributed.all_gather_object(merged_outputs, json.dumps(outputs))
|
187 |
-
|
188 |
-
merged_outputs = [json.loads(_) for _ in merged_outputs]
|
189 |
-
merged_outputs = [_ for _ in itertools.chain.from_iterable(merged_outputs)]
|
190 |
-
|
191 |
-
if torch.distributed.get_rank() == 0:
|
192 |
-
print(f'Evaluating {ds_name} ...')
|
193 |
-
results_file = 'results.jsonl'
|
194 |
-
output_path = os.path.join(args.out_dir, results_file)
|
195 |
-
writer = open(output_path, 'w')
|
196 |
-
|
197 |
-
num_correct, num_total = 0, 0
|
198 |
-
index, round_correct = 0, 0
|
199 |
-
for item in merged_outputs:
|
200 |
-
writer.write(json.dumps(item) + '\n')
|
201 |
-
answer = item['answer']
|
202 |
-
gt_answer = item['gt_answers']
|
203 |
-
|
204 |
-
index += 1
|
205 |
-
|
206 |
-
if answer == gt_answer:
|
207 |
-
round_correct += 1
|
208 |
-
if index == 2:
|
209 |
-
index = 0
|
210 |
-
if round_correct == 2:
|
211 |
-
num_correct += 1
|
212 |
-
round_correct = 0
|
213 |
-
|
214 |
-
num_total += 1
|
215 |
-
|
216 |
-
writer.close()
|
217 |
-
print('Results saved to {}'.format(output_path))
|
218 |
-
print(f'The accuracy is {num_correct/num_total}')
|
219 |
-
|
220 |
-
results_file = 'results.txt'
|
221 |
-
output_path = os.path.join(args.out_dir, results_file)
|
222 |
-
writer = open(output_path, 'w')
|
223 |
-
writer.write(f'The accuracy is {num_correct/num_total}')
|
224 |
-
writer.close()
|
225 |
-
|
226 |
-
|
227 |
-
if __name__ == '__main__':
|
228 |
-
parser = argparse.ArgumentParser()
|
229 |
-
parser.add_argument('--datasets', type=str, default='MMVP')
|
230 |
-
parser.add_argument('--batch-size', type=int, default=1)
|
231 |
-
parser.add_argument('--num-workers', type=int, default=1)
|
232 |
-
parser.add_argument('--out-dir', type=str, default='results')
|
233 |
-
parser.add_argument('--seed', type=int, default=0)
|
234 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
235 |
-
args = parser.parse_args()
|
236 |
-
|
237 |
-
if not os.path.exists(args.out_dir):
|
238 |
-
os.makedirs(args.out_dir, exist_ok=True)
|
239 |
-
|
240 |
-
args.datasets = args.datasets.split(',')
|
241 |
-
print('datasets:', args.datasets)
|
242 |
-
assert args.batch_size == 1, 'Only batch size 1 is supported'
|
243 |
-
|
244 |
-
torch.distributed.init_process_group(
|
245 |
-
backend='nccl',
|
246 |
-
world_size=int(os.getenv('WORLD_SIZE', '1')),
|
247 |
-
rank=int(os.getenv('RANK', '0')),
|
248 |
-
)
|
249 |
-
|
250 |
-
torch.cuda.set_device(int(os.getenv('LOCAL_RANK', 0)))
|
251 |
-
|
252 |
-
model, tokenizer, new_token_ids = load_model_and_tokenizer(args)
|
253 |
-
image_transform = build_transform()
|
254 |
-
|
255 |
-
total_params = sum(p.numel() for p in model.parameters()) / 1e9
|
256 |
-
print(f'[test] total_params: {total_params}B')
|
257 |
-
|
258 |
-
evaluate_chat_model()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/pope/eval_pope.py
DELETED
@@ -1,120 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import json
|
14 |
-
import os
|
15 |
-
import numpy as np
|
16 |
-
|
17 |
-
|
18 |
-
def eval_pope(answers, label_file):
|
19 |
-
label_list = [json.loads(q)['label'] for q in open(label_file, 'r')]
|
20 |
-
|
21 |
-
for answer in answers:
|
22 |
-
text = answer['text']
|
23 |
-
|
24 |
-
# Only keep the first sentence
|
25 |
-
if text.find('.') != -1:
|
26 |
-
text = text.split('.')[0]
|
27 |
-
|
28 |
-
text = text.replace(',', '')
|
29 |
-
words = text.split(' ')
|
30 |
-
if 'No' in words or 'not' in words or 'no' in words:
|
31 |
-
answer['text'] = 'no'
|
32 |
-
else:
|
33 |
-
answer['text'] = 'yes'
|
34 |
-
|
35 |
-
for i in range(len(label_list)):
|
36 |
-
if label_list[i] == 'no':
|
37 |
-
label_list[i] = 0
|
38 |
-
else:
|
39 |
-
label_list[i] = 1
|
40 |
-
|
41 |
-
pred_list = []
|
42 |
-
for answer in answers:
|
43 |
-
if answer['text'] == 'no':
|
44 |
-
pred_list.append(0)
|
45 |
-
else:
|
46 |
-
pred_list.append(1)
|
47 |
-
|
48 |
-
pos = 1
|
49 |
-
neg = 0
|
50 |
-
yes_ratio = pred_list.count(1) / len(pred_list)
|
51 |
-
|
52 |
-
TP, TN, FP, FN = 0, 0, 0, 0
|
53 |
-
for pred, label in zip(pred_list, label_list):
|
54 |
-
if pred == pos and label == pos:
|
55 |
-
TP += 1
|
56 |
-
elif pred == pos and label == neg:
|
57 |
-
FP += 1
|
58 |
-
elif pred == neg and label == neg:
|
59 |
-
TN += 1
|
60 |
-
elif pred == neg and label == pos:
|
61 |
-
FN += 1
|
62 |
-
|
63 |
-
ret_message = ""
|
64 |
-
print('TP\tFP\tTN\tFN\t')
|
65 |
-
print('{}\t{}\t{}\t{}'.format(TP, FP, TN, FN))
|
66 |
-
ret_message += 'TP\tFP\tTN\tFN\t\n'
|
67 |
-
ret_message += '{}\t{}\t{}\t{}\n'.format(TP, FP, TN, FN)
|
68 |
-
|
69 |
-
precision = float(TP) / float(TP + FP)
|
70 |
-
recall = float(TP) / float(TP + FN)
|
71 |
-
f1 = 2 * precision * recall / (precision + recall)
|
72 |
-
acc = (TP + TN) / (TP + TN + FP + FN)
|
73 |
-
print('Accuracy: {}'.format(acc))
|
74 |
-
print('Precision: {}'.format(precision))
|
75 |
-
print('Recall: {}'.format(recall))
|
76 |
-
print('F1 score: {}'.format(f1))
|
77 |
-
print('Yes ratio: {}'.format(yes_ratio))
|
78 |
-
print('%.3f, %.3f, %.3f, %.3f, %.3f' % (f1, acc, precision, recall, yes_ratio))
|
79 |
-
|
80 |
-
ret_message += 'Accuracy: {}\n'.format(acc)
|
81 |
-
ret_message += 'Precision: {}\n'.format(precision)
|
82 |
-
ret_message += 'Recall: {}\n'.format(recall)
|
83 |
-
ret_message += 'F1 score: {}\n'.format(f1)
|
84 |
-
ret_message += 'Yes ratio: {}\n'.format(yes_ratio)
|
85 |
-
ret_message += '%.3f, %.3f, %.3f, %.3f, %.3f\n' % (f1, acc, precision, recall, yes_ratio)
|
86 |
-
return f1, ret_message
|
87 |
-
|
88 |
-
|
89 |
-
if __name__ == '__main__':
|
90 |
-
parser = argparse.ArgumentParser()
|
91 |
-
parser.add_argument('--annotation-dir', type=str)
|
92 |
-
parser.add_argument('--question-file', type=str)
|
93 |
-
parser.add_argument('--result-file', type=str)
|
94 |
-
parser.add_argument('--out-dir', type=str)
|
95 |
-
args = parser.parse_args()
|
96 |
-
|
97 |
-
questions = [json.loads(line) for line in open(args.question_file)]
|
98 |
-
questions = {question['question_id']: question for question in questions}
|
99 |
-
answers = json.loads(open(args.result_file).read())
|
100 |
-
avg_f1 = []
|
101 |
-
ret_message = ""
|
102 |
-
for file in os.listdir(args.annotation_dir):
|
103 |
-
assert file.startswith('coco_pope_')
|
104 |
-
assert file.endswith('.json')
|
105 |
-
category = file[10:-5]
|
106 |
-
cur_answers = [x for x in answers if questions[x['question_id']]['category'] == category]
|
107 |
-
print('Category: {}, # samples: {}'.format(category, len(cur_answers)))
|
108 |
-
ret_message += 'Category: {}, # samples: {}\n'.format(category, len(cur_answers))
|
109 |
-
f1, ret = eval_pope(cur_answers, os.path.join(args.annotation_dir, file))
|
110 |
-
ret_message += ret
|
111 |
-
print('====================================')
|
112 |
-
ret_message += '====================================\n'
|
113 |
-
avg_f1.append(f1)
|
114 |
-
print(f"Avg F1 score: {np.array(avg_f1).mean()}")
|
115 |
-
ret_message += f"Avg F1 score: {np.array(avg_f1).mean()}\n"
|
116 |
-
|
117 |
-
writer = open(os.path.join(args.out_dir, "results.txt"), 'w')
|
118 |
-
print(f"write results to file {os.path.join(args.out_dir, 'results.txt')}")
|
119 |
-
writer.write(ret_message)
|
120 |
-
writer.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval/vlm/eval/pope/evaluate_pope.py
DELETED
@@ -1,231 +0,0 @@
|
|
1 |
-
# Copyright (c) 2023 OpenGVLab
|
2 |
-
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates.
|
3 |
-
# SPDX-License-Identifier: MIT
|
4 |
-
#
|
5 |
-
# This file has been modified by ByteDance Ltd. and/or its affiliates. on 2025-05-20.
|
6 |
-
#
|
7 |
-
# Original file was released under MIT, with the full license text
|
8 |
-
# available at https://github.com/OpenGVLab/InternVL/blob/main/LICENSE.
|
9 |
-
#
|
10 |
-
# This modified file is released under the same license.
|
11 |
-
|
12 |
-
import argparse
|
13 |
-
import itertools
|
14 |
-
import json
|
15 |
-
import os
|
16 |
-
import random
|
17 |
-
import re
|
18 |
-
|
19 |
-
import torch
|
20 |
-
from eval.vlm.utils import load_model_and_tokenizer, build_transform, process_conversation
|
21 |
-
from PIL import Image
|
22 |
-
from tqdm import tqdm
|
23 |
-
|
24 |
-
ds_collections = {
|
25 |
-
'pope': {
|
26 |
-
'root': 'eval/vlm/data/pope/val2014',
|
27 |
-
'question': 'eval/vlm/data/pope/llava_pope_test.jsonl',
|
28 |
-
'metric': None,
|
29 |
-
'max_new_tokens': 100,
|
30 |
-
'min_new_tokens': 1,
|
31 |
-
},
|
32 |
-
'pope_cot': {
|
33 |
-
'root': 'eval/vlm/data/pope/val2014',
|
34 |
-
'question': 'eval/vlm/data/pope/llava_pope_test.jsonl',
|
35 |
-
'metric': None,
|
36 |
-
'max_new_tokens': 1000,
|
37 |
-
'min_new_tokens': 1,
|
38 |
-
}
|
39 |
-
}
|
40 |
-
|
41 |
-
|
42 |
-
COT_INSTRUCTION = (
|
43 |
-
'Your task is to answer the question below. '
|
44 |
-
"Give step by step reasoning before you answer, and when you're ready to answer, "
|
45 |
-
"please use the format \"Final answer: ..\""
|
46 |
-
'\n\n'
|
47 |
-
'Question:'
|
48 |
-
'\n\n'
|
49 |
-
'{question}'
|
50 |
-
)
|
51 |
-
|
52 |
-
|
53 |
-
def extract_answer(text):
|
54 |
-
match = re.search(r'(Final answer:|Answer:)\s*(.*)', text, re.IGNORECASE)
|
55 |
-
if match:
|
56 |
-
return match.group(2).strip()
|
57 |
-
return text
|
58 |
-
|
59 |
-
|
60 |
-
def collate_fn(batches):
|
61 |
-
questions = [_['question'] for _ in batches]
|
62 |
-
images = [_['images'] for _ in batches]
|
63 |
-
conversations = [_['conversations'] for _ in batches]
|
64 |
-
question_ids = [_['question_id'] for _ in batches]
|
65 |
-
annotations = [_['annotation'] for _ in batches]
|
66 |
-
|
67 |
-
return questions, images, conversations, question_ids, annotations
|
68 |
-
|
69 |
-
|
70 |
-
class VQADataset(torch.utils.data.Dataset):
|
71 |
-
|
72 |
-
def __init__(self, root, data, prompt):
|
73 |
-
self.root = root
|
74 |
-
self.data = open(data).readlines()
|
75 |
-
self.prompt = prompt
|
76 |
-
|
77 |
-
def __len__(self):
|
78 |
-
return len(self.data)
|
79 |
-
|
80 |
-
def __getitem__(self, idx):
|
81 |
-
data = json.loads(self.data[idx].strip())
|
82 |
-
image, question, question_id, annotation = data['image'], data[
|
83 |
-
'text'], data['question_id'], data.get('answer', None)
|
84 |
-
|
85 |
-
image = os.path.join(self.root, image)
|
86 |
-
image = Image.open(image).convert('RGB')
|
87 |
-
images = [image]
|
88 |
-
|
89 |
-
llava_prompt = 'Answer the question using a single word or phrase.'
|
90 |
-
assert llava_prompt in question
|
91 |
-
question = question.replace(llava_prompt, self.prompt).strip()
|
92 |
-
|
93 |
-
if args.cot:
|
94 |
-
question = COT_INSTRUCTION.format(question=question)
|
95 |
-
|
96 |
-
images, conversation = process_conversation(images, question)
|
97 |
-
|
98 |
-
return {
|
99 |
-
'question_id': question_id,
|
100 |
-
'question': question,
|
101 |
-
'images': images,
|
102 |
-
'conversations': conversation,
|
103 |
-
'annotation': annotation
|
104 |
-
}
|
105 |
-
|
106 |
-
|
107 |
-
class InferenceSampler(torch.utils.data.sampler.Sampler):
|
108 |
-
|
109 |
-
def __init__(self, size):
|
110 |
-
self._size = int(size)
|
111 |
-
assert size > 0
|
112 |
-
self._rank = torch.distributed.get_rank()
|
113 |
-
self._world_size = torch.distributed.get_world_size()
|
114 |
-
self._local_indices = self._get_local_indices(size, self._world_size, self._rank)
|
115 |
-
|
116 |
-
@staticmethod
|
117 |
-
def _get_local_indices(total_size, world_size, rank):
|
118 |
-
shard_size = total_size // world_size
|
119 |
-
left = total_size % world_size
|
120 |
-
shard_sizes = [shard_size + int(r < left) for r in range(world_size)]
|
121 |
-
|
122 |
-
begin = sum(shard_sizes[:rank])
|
123 |
-
end = min(sum(shard_sizes[:rank + 1]), total_size)
|
124 |
-
return range(begin, end)
|
125 |
-
|
126 |
-
def __iter__(self):
|
127 |
-
yield from self._local_indices
|
128 |
-
|
129 |
-
def __len__(self):
|
130 |
-
return len(self._local_indices)
|
131 |
-
|
132 |
-
|
133 |
-
def evaluate_chat_model():
|
134 |
-
prompt = '' if args.cot else 'Answer the question using a single word or phrase.'
|
135 |
-
random.seed(args.seed)
|
136 |
-
|
137 |
-
for ds_name in args.datasets:
|
138 |
-
dataset = VQADataset(
|
139 |
-
root=ds_collections[ds_name]['root'],
|
140 |
-
data=ds_collections[ds_name]['question'],
|
141 |
-
prompt=prompt,
|
142 |
-
)
|
143 |
-
dataloader = torch.utils.data.DataLoader(
|
144 |
-
dataset=dataset,
|
145 |
-
sampler=InferenceSampler(len(dataset)),
|
146 |
-
batch_size=args.batch_size,
|
147 |
-
num_workers=args.num_workers,
|
148 |
-
pin_memory=True,
|
149 |
-
drop_last=False,
|
150 |
-
collate_fn=collate_fn,
|
151 |
-
)
|
152 |
-
|
153 |
-
outputs = []
|
154 |
-
for _, (questions, images, conversations, question_ids, annotations) in tqdm(enumerate(dataloader)):
|
155 |
-
pred = model.chat(
|
156 |
-
tokenizer,
|
157 |
-
new_token_ids,
|
158 |
-
image_transform,
|
159 |
-
images=images[0], # batch=1
|
160 |
-
prompt=conversations[0], # batch=1
|
161 |
-
max_length=ds_collections[ds_name]['max_new_tokens'], # TODO: how to use ds_collections[ds_name]['min_new_tokens']
|
162 |
-
)
|
163 |
-
pred_orig = pred
|
164 |
-
if args.cot:
|
165 |
-
pred = extract_answer(pred).strip()
|
166 |
-
answers = [pred]
|
167 |
-
|
168 |
-
for question_id, answer, annotation in zip(question_ids, answers, annotations):
|
169 |
-
outputs.append({
|
170 |
-
'question_id': question_id,
|
171 |
-
'text': pred,
|
172 |
-
'text_orig': pred_orig,
|
173 |
-
'metadata': {},
|
174 |
-
})
|
175 |
-
|
176 |
-
torch.distributed.barrier()
|
177 |
-
|
178 |
-
world_size = torch.distributed.get_world_size()
|
179 |
-
merged_outputs = [None for _ in range(world_size)]
|
180 |
-
torch.distributed.all_gather_object(merged_outputs, json.dumps(outputs))
|
181 |
-
|
182 |
-
merged_outputs = [json.loads(_) for _ in merged_outputs]
|
183 |
-
merged_outputs = [_ for _ in itertools.chain.from_iterable(merged_outputs)]
|
184 |
-
|
185 |
-
if torch.distributed.get_rank() == 0:
|
186 |
-
print(f'Evaluating {ds_name} ...')
|
187 |
-
results_file = os.path.join(args.out_dir, 'results.json')
|
188 |
-
json.dump(merged_outputs, open(results_file, 'w'))
|
189 |
-
print('Results saved to {}'.format(results_file))
|
190 |
-
cmd = 'python eval/vlm/eval/pope/eval_pope.py ' \
|
191 |
-
'--annotation-dir eval/vlm/data/pope/coco ' \
|
192 |
-
'--question-file eval/vlm/data/pope/llava_pope_test.jsonl ' \
|
193 |
-
f'--result-file {results_file} ' \
|
194 |
-
f'--out-dir {args.out_dir}'
|
195 |
-
print(cmd)
|
196 |
-
os.system(cmd)
|
197 |
-
|
198 |
-
|
199 |
-
if __name__ == '__main__':
|
200 |
-
parser = argparse.ArgumentParser()
|
201 |
-
parser.add_argument('--datasets', type=str, default='pope')
|
202 |
-
parser.add_argument('--batch-size', type=int, default=1)
|
203 |
-
parser.add_argument('--num-workers', type=int, default=1)
|
204 |
-
parser.add_argument('--out-dir', type=str, default='results')
|
205 |
-
parser.add_argument('--seed', type=int, default=0)
|
206 |
-
parser.add_argument('--model-path', type=str, default='hf/BAGEL-7B-MoT/')
|
207 |
-
parser.add_argument('--cot', action='store_true')
|
208 |
-
args = parser.parse_args()
|
209 |
-
|
210 |
-
if not os.path.exists(args.out_dir):
|
211 |
-
os.makedirs(args.out_dir, exist_ok=True)
|
212 |
-
|
213 |
-
args.datasets = args.datasets.split(',')
|
214 |
-
print('datasets:', args.datasets)
|
215 |
-
assert args.batch_size == 1, 'Only batch size 1 is supported'
|
216 |
-
|
217 |
-
torch.distributed.init_process_group(
|
218 |
-
backend='nccl',
|
219 |
-
world_size=int(os.getenv('WORLD_SIZE', '1')),
|
220 |
-
rank=int(os.getenv('RANK', '0')),
|
221 |
-
)
|
222 |
-
|
223 |
-
torch.cuda.set_device(int(os.getenv('LOCAL_RANK', 0)))
|
224 |
-
|
225 |
-
model, tokenizer, new_token_ids = load_model_and_tokenizer(args)
|
226 |
-
image_transform = build_transform()
|
227 |
-
|
228 |
-
total_params = sum(p.numel() for p in model.parameters()) / 1e9
|
229 |
-
print(f'[test] total_params: {total_params}B')
|
230 |
-
|
231 |
-
evaluate_chat_model()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|