本文来源公众号“Coggle数据科学”,仅用于学术分享,侵权删,干货满满。
原文链接:科大讯飞AI大赛:画面指令策略游戏挑战赛 Baseline
-
赛题名称:画面指令策略游戏挑战赛
-
赛题类型:多模态、大模型
-
赛题任务:赛题需要结合游戏画面,推测未来1秒内角色运动的轨迹,以此来模拟玩家的行为。
https://challenge.xfyun.cn/topic/info?type=VisualCommand-GameStrategy&option=ssgy
赛题背景
传统的策略游戏(RTS、模拟经营等)依赖键盘、鼠标或触屏进行复杂的操作,如单位选择、路径规划、技能释放等。这种交互方式虽然成熟,但在特定场景下(如智能家居控制、教育娱乐、创新人机交互界面)可能存在局限。

随着计算机视觉 (CV) 和大型多模态模型 (LMM) 的飞速发展,AI不仅能“看懂”图像,还能“理解”复杂的视觉语义和用户意图。这使得一种全新的游戏交互模式成为可能:玩家不再依赖传统的输入设备,而是通过展示特定的“画面指令”(如手绘草图、特定手势、或摆放实物)来直接控制游戏。这不仅仅是简单的图像识别,而是要求模型能够深度理解这些画面背后蕴含的玩家策略意图,并将其转化为游戏内的复杂操作。
赛题任务
赛题需要结合游戏画面,推测未来1秒内角色运动的轨迹,以此来模拟玩家的行为。
评审规则
赛题提供了游戏画面数据集,分为训练集和测试集。选手可以使用训练集来调整模型效果,并在测试集上进行推理。其中"image", "action"分别为游戏画面和对应的行为。
评审规则
字符级雅卡尔相似度(Character Jaccard Similarity)是一种基于集合相似度的评估指标,用于衡量模型生成的答案与标准答案之间的字符级别匹配程度。相似度越高,排名更加靠前。
赛题Baseline
加载VL模型
https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct
from transformers import Qwen2_5_VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
"Qwen/Qwen2.5-VL-7B-Instruct", torch_dtype="auto", device_map="auto"
)
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct")
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
},
{"type": "text", "text": "Describe this image."},
],
}
]
# Preparation for inference
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors="pt",
)
inputs = inputs.to("cuda")
# Inference: Generation of the output
generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)
基础提示词
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "test.jpg",
},
{"type": "text", "text": """你是一位顶级的游戏AI策略分析师,你的任务是分析并预测玩家在即时战略游戏中的下一步行动。
现在,你将看到一张游戏画面。请根据这张画面中的所有信息,包括但不限于角色位置、敌人分布、地图障碍物、以及游戏UI,预测角色在未来1秒内的运动轨迹。你的输出必须是精确描述轨迹的文本。
预测未来的运动轨迹:"""},
],
}
]
进阶提示词
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "test.jpg",
},
{"type": "text", "text": """请执行以下任务:
1. **分析输入图片**:这是一张即时战略游戏画面。识别并理解画面中的所有动态元素,尤其是玩家控制的角色和其周围环境。
2. **预测轨迹**:根据你对游戏画面的理解,预测玩家控制的角色在接下来1秒内可能执行的移动路径。
3. **生成输出**:你的输出必须是清晰、简洁的文本,准确描述预测的运动轨迹。避免任何多余的解释或对话。
4. **输出格式**:输出应直接为预测的轨迹描述文本。
请直接输出最终的预测结果:"""},
],
}
]
THE END !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

被折叠的 条评论
为什么被折叠?



