当前位置: 首页 » 资讯 » 科技头条 » 正文

独立研究者设计"形状代码测试台":让AI看图写程序,结果差强人意

IP属地 中国·北京 科技行者 时间:2026-05-20 18:29:20


这项由独立研究者发布的研究成果以预印本形式发布于2026年5月,论文编号为arXiv:2605.11680,有兴趣深入了解的读者可通过该编号查阅完整论文,数据集和代码的存档DOI为10.5281/zenodo.20132286。

**一幅图,一段程序,一场考试**

假设你面前有一张白纸,上面画着两个黑色圆形和一个黑色正方形轮廓。现在有人要求你不用描述这幅图,而是写出一段计算机指令,让电脑重新把这幅图"画"出来。你需要告诉电脑每个形状的位置、大小、是实心还是空心,精确到像素点。这件事对人来说并不容易,对AI来说也一样困难。

这就是ShapeCodeBench这项研究想探索的问题核心——给AI模型看一张图,要求它输出一段能还原这张图的绘图程序。研究者把这个任务称为"感知到程序的重建",简单说就是"看图写代码"。研究者设计了一套完整的测试体系,用来衡量当前最顶尖的AI在这项任务上究竟表现如何。答案揭晓:远没有饱和,还差得很远。

**一、为什么这件事值得专门建一个测试台**

在AI领域,评估一个模型的能力需要专门设计的"考题集",业内称之为"基准测试"(Benchmark)。好的考题集需要满足几个条件:评分标准要客观、公正,不能因为答案表达方式不同就扣分;考题要能反映真实的难度差异;还要能持续更新,防止AI模型通过"背题"来刷高分。

现有的同类测试大多只满足其中一两个条件。比如一些测试的评分依赖人工判断,费时费力;另一些测试的题目一旦公开就可能被AI"记住",导致成绩虚高。这就好比一套考试卷子流传出去后,学生背了答案再去考,成绩自然漂亮,但实际能力并没有提高。

ShapeCodeBench的设计者想到了一个解法:用随机数种子生成题目。每一道题都来自一个数字"种子",只要给定不同的种子,就能源源不断地生成全新的、从未出现过的题目,而且生成过程完全自动、评分也完全自动,不需要任何人工参与。这就像一台会自动出题、自动批卷的考试机器,想换一套新题只需要换一个数字,整个过程不到一秒钟就能完成150道题。

**二、这套考试的题目长什么样**

整套测试建立在一个非常简洁的"绘图语言"(DSL,即领域专用语言)上。这个语言只有四条指令,分别是实心圆、空心圆、实心正方形、空心正方形,每条指令需要指定圆心或中心坐标、大小,空心图形还需要指定线条粗细。画布固定为512×512像素的白底黑图,坐标和尺寸都是整数。

一道题目的样子大概是这样的:给AI看一张图,图上有一个实心圆和一个空心正方形;AI需要输出两行代码,分别告诉电脑圆在哪里、半径是多少,以及正方形在哪里、边长是多少、线条有多粗。系统把AI写出的代码真正运行一遍,重新画出一张图,然后把这张图和原图逐像素对比,算出差距。

评分体系包含五个维度。最严格的是"完全匹配",要求两张图逐像素完全一致,差一个像素点也不行。宽松一些的是"像素准确率",统计有多少比例的像素点是一致的。另一个叫"前景IoU",专门比较黑色区域(也就是图形本身)的重叠程度,不受背景白色区域的干扰,更能反映形状位置和大小的还原质量。此外还记录AI的代码能否被成功解析、能否被成功执行,这两个指标用来判断AI有没有犯格式错误。

题目按难度分为三级。简单级别包含一到三个形状,形状较大(半径或边长在64到160像素之间),线条较粗,形状之间不重叠,也基本不会超出画布边界。中等级别包含三到六个形状,尺寸缩小,允许少量超出边界,形状之间可以靠近但边界框重叠不超过35%。困难级别包含六到十个形状,尺寸进一步缩小,全部超出边界,形状之间强制存在重叠,没有重叠上限的约束。

这种分级设计的意图很清晰:简单级别测试的是"AI能不能正确识别和定位少数几个清晰的独立形状",困难级别测试的是"AI能不能在形状互相叠压、部分超出画面的复杂场景下还原完整的程序"。

**三、来参加考试的选手都有谁**

研究者共测试了六套方案,其中两套是没有AI推理能力的基础对照组,另外四套是真正的前沿多模态AI配置。

第一套基础对照组叫"空程序",它的策略是无论看到什么图,都输出一个空字符串什么都不写。这是一个纯粹的"底线",用来确认任何有实质内容的系统都应该比它强。

第二套基础对照组叫"传统计算机视觉启发式方法",它不使用任何AI,而是用经典图像处理技术来分析图片。具体流程是:先把图片二值化(黑白分明),然后找出所有连通的黑色区域,对每个区域计算边界框的填充比例——如果黑色区域几乎填满了边界框,它可能是实心的;如果只有边缘有黑色而中间是白色,它可能是空心的。通过腐蚀操作进一步判断空心还是实心,再用区域面积与周长之比估算线条粗细。最后把这些估算结果转换成对应的绘图指令输出。这套方法完全依赖几何计算,不需要任何机器学习。

真正的AI选手共四个配置,来自两家公司的两款顶尖模型。一款是Anthropic的Claude Opus 4.7(100万上下文版本),分别以"高推理强度"和"最高推理强度"两种模式参与测试。另一款是OpenAI的GPT-5.5,分别以"中等推理强度"和"超高推理强度"两种模式参与。

所有AI配置都使用完全相同的零样本提示,也就是不给任何示例,只提供一句系统指令("只返回合法的绘图代码,不要加代码块标记、注释或说明文字")加上四个函数的签名和格式说明。AI看到的就是图片加上这段说明,然后直接输出代码,没有任何"热身"或"参考答案"。

**四、考试结果:各有各的弱点**

测试结果呈现出一幅非常清晰的"剖面图",每套系统的强项和短板都暴露得相当明显。

先说完全匹配率这个最严格的指标。在整个150道题上,传统计算机视觉方法以8.7%的完全匹配率排名第一,GPT-5.5中等推理强度以2.7%排第二,GPT-5.5超高推理强度以2.0%排第三,Claude Opus 4.7两种配置的完全匹配率均为0%。空程序当然是0%。

这个数字看起来都很低,但不同难度级别下的对比才是真正有意思的地方。在简单级别,传统方法以26%的完全匹配率遥遥领先,而所有AI配置的完全匹配率最高只有8%左右。到了中等和困难级别,传统方法的完全匹配率迅速跌落到接近零,而AI配置虽然也不高,但相对来说维持得更稳定。

这个"交叉"现象背后的逻辑很清楚。传统方法依赖"找到独立的连通区域"这个操作,当图上的形状彼此分离时,这个操作非常准确,每个形状自然对应一个独立的黑色区域,面积和位置都容易计算。但一旦形状开始重叠,两个或多个形状的黑色区域就会粘连成一片,传统方法就无法再分辨"这一团黑色其实是两个形状叠在一起",估算出来的结果就会出错。AI模型则不依赖这种底层连通性,它能从视觉整体理解"这里有两个圆,只是部分重叠",所以在复杂场景下维持住了一定的结构感知能力。

再看前景IoU这个更宽松的指标。GPT-5.5超高推理强度以0.865的均值排名第一,GPT-5.5中等推理强度以0.850紧随其后,两个Claude配置约在0.44到0.46之间,传统方法则是0.583。在简单级别,GPT-5.5两种配置的前景IoU接近0.87,传统方法约为0.74,Claude两种配置约在0.41到0.44之间。

这里出现了第二个值得注意的对比:GPT-5.5在前景IoU上全面领先,但在完全匹配上却不及传统方法(在简单级别)。这说明GPT-5.5能够大致画对形状的位置和大小,但参数估算存在几个像素的误差,导致逐像素对比时无法完全吻合。换句话说,GPT-5.5的程序"差不多对了",但没做到"完全精确"。

Claude的情况则不同。它的前景IoU在各个难度级别上都低于传统方法,说明它在还原形状的整体空间结构上也不如传统的几何计算方法。这是一个更根本性的差距,不只是参数精度的问题。

关于代码格式的合法性,所有AI配置的解析成功率都相当高,Claude两种配置分别为98%和100%,GPT-5.5两种配置分别为97.3%和99.3%。出现的少量解析错误主要集中在两类问题上:坐标或尺寸超出合法范围(比如把圆心坐标写成了负数或超过511),以及线条粗细超过了对应形状允许的最大值。这说明AI模型大多数时候能写出格式正确的代码,只是偶尔对参数范围的限制理解不够准确。

**五、失败的形式各有不同**

研究者对错误案例做了系统分类,形成了一份"失败画像"。

对AI模型来说,失败主要分三类。第一类是"形状清单对了,参数差几个像素",这在简单级别最常见,AI能识别出图里有一个实心圆和一个空心正方形,也大致知道它们在哪里,但圆心坐标写成了(245, 187)而实际是(248, 190),或者半径写成了78而实际是81。这种误差不影响视觉感知,却会让完全匹配失败。第二类是"遮挡场景下漏掉形状",在困难级别,多个形状堆叠在一起,AI可能只识别出了外层可见的形状,而忽略了被遮挡的那些。第三类是"空心和实心搞混",当线条特别细的时候,AI可能会把一个空心圆误判为实心圆。

对传统方法来说,失败的根本原因前面已经提到:形状连通成一片就没法拆分了。此外它的线条粗细估算是用面积除以周长来近似的,这个公式在形状规整时还算准确,但遇到边缘不平整或者形状很小时估算误差会变大。

从这些失败模式可以看出,简单级别其实隐藏着一个有趣的挑战:对AI来说,"看出形状在哪里"并不难,难的是"精确到像素级别地写出位置数字"。传统方法反而因为直接测量像素坐标而在简单场景下占优。但这种优势在形状开始重叠时就荡然无存了。

**六、这套测试台的设计细节和可靠性保障**

值得关注的是研究者在可复现性方面的设计用心。评测集eval_v1包含150道题,按难度各50道,使用从0到49的连续整数作为种子生成。每张图片的SHA-256哈希值都被公开发布,任何人只要运行同样的生成代码就能得到完全相同的图片,可以验证自己得到的数据集是否正确。

代码解析器的安全性也经过专门设计。它基于Python的抽象语法树(ast)模块,但严格限制了允许的语法:只允许四种函数调用、只允许关键字参数、只允许整数字面量,不允许变量、循环、导入、属性访问等任何其他Python语法。这意味着AI无论怎么折腾,都没办法通过代码注入或者执行恶意操作,评测系统的安全性有保障。

渲染器使用的是Python图像处理库Pillow,完全确定性——同样的代码每次都会生成完全相同的图片。评测流程是:解析代码、渲染图片、与原图对比,三个步骤全部自动完成,无需人工介入。

在测试不同AI配置时,研究者给Claude使用了Claude Code命令行工具,给GPT-5.5使用了OpenAI Codex命令行工具,两者都通过作者自己的订阅账户调用。每道题设置了超时时间(高推理强度1800秒,最高推理强度2400秒),失败时最多重试两次。每次运行都会把完整的请求内容、原始输出、归一化后的预测、延迟时间和详细评分结果保存到文件中,方便后续核查和复现。

**七、这项研究的边界和尚未触及的地方**

研究者在论文中明确列出了当前版本的几个局限,这种诚实的态度相当值得肯定。

当前版本只有黑白两色,这带来一个隐藏效果:后画的形状无法覆盖或擦除先画的形状,只能叠加。这意味着绘图顺序在当前版本中实际上不影响最终结果,评测无法考查"先画什么后画什么"这类顺序推理能力。如果未来引入多种颜色或者"清除"指令,绘图顺序就会变得重要,测试难度也会大幅上升。

当前DSL只有四种图形,没有矩形(非正方形)、直线、多边形、曲线等。这是一个刻意的简化,目的是让失败原因更容易定位,但也意味着测试不能反映更复杂图形的理解能力。

所有测试都是零样本的,没有给AI任何示例。给几个例子(少样本)或者让AI先思考再回答(思维链提示)可能会显著改变结果,但这些实验没有包含在当前版本中。

此外,研究中没有测试人类在这项任务上的表现水平。没有人类基准就很难直观判断"这个任务到底有多难"——是普通人看一眼就能写出来的水平,还是需要专业知识和大量时间的水平?研究者计划在后续版本中补充这一对比。

模型推理本身存在随机性,所以即使用完全相同的图片和提示,两次运行可能得到不同的代码。研究者公开了每次运行的配置参数和全部原始输出,使其他人可以尝试复现,但不能保证数字精确一致。

说到底,ShapeCodeBench最有意思的地方不是某个具体的数字,而是它揭示了一个很反直觉的现象:在最简单的场景下,一套完全不用AI的传统计算机视觉方法,比当今最顶尖的多模态大模型还要准确;而在复杂场景下,情况又反了过来。这说明"看图写代码"这件事,目前的AI既不是彻底不行,也没有做到真正好用——它处于一种介于两者之间的奇妙状态。

传统方法好比一个只会用直尺量形状的工人,在没有遮挡时量得很准,但一旦形状叠在一起就束手无策。AI模型更像是一个有整体理解能力的人,能大致看出图里有什么,但在精确报出每个像素坐标这件事上还不够稳定。如果能把两者的优点结合起来——用AI理解整体结构,再用精确计算细化参数——或许能在两个维度上同时取得更好的结果。这也是研究者隐含在设计中的一个研究方向暗示。

这套测试台的最终价值,在于它提供了一个可以持续使用的"考场"。只要换一组种子,就能出一套新题,不用担心AI通过"背题"作弊,也不需要请人来标注或评判。对于想追踪多模态AI在结构化视觉理解上进展的研究者来说,这是一个随时可以抽查的工具。目前最好的完全匹配率只有8.7%,最好的AI前景IoU是0.865,距离"基本解决这个问题"还有相当大的距离,测试台远未饱和。有兴趣进一步了解研究细节或复现实验的读者,可以通过arXiv编号2605.11680找到完整论文。

**Q&A**

Q1:ShapeCodeBench测试的是什么能力?

A:ShapeCodeBench测试的是多模态AI模型"看图写绘图代码"的能力,具体来说是给模型看一张包含圆形和正方形的黑白图片,要求模型输出一段能完整还原这张图的绘图程序,然后把程序运行出来的图片与原图逐像素对比打分。

Q2:传统计算机视觉方法为什么在简单场景下比AI更准确?

A:传统方法通过直接测量图像中各个独立黑色区域的像素坐标和面积来估算形状参数,在形状互相分离时测量结果非常精准。AI模型虽然能大致识别形状的位置,但在精确到像素级别写出坐标数字时存在几个像素的误差,导致完全匹配失败。简单场景下形状不重叠,传统方法的直接测量优势得以充分发挥。

Q3:ShapeCodeBench如何防止AI通过背题刷高分?

A:ShapeCodeBench的每道题目都由一个数字种子生成,只需更换种子就能生成全新的题目集合,整个过程完全自动,不需要人工标注或评判。研究者将这种能力称为"可再生性",任何人随时可以用新种子生成全新的测试题,让AI无法通过记忆已有题目来获得虚高分数。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。