Token导航 LogoToken导航

AI 资讯 · 科技行者

AI照片重建3D房间实测最高仅53.4分

更新 2026-10-23科技行者正文 7832字阅读约 25分钟

2026年秋天,有一组数字让做3D视觉的人有点意外:给一个通用编程助手一张房间照片,让它自己写代码在Blender里重建这个场景,最强的那个模型最后只拿到了53.4分(满分100)。

不是因为它交不出作品。事实上它交作业的成功率几乎是满分,100%的情况下都能生成一个能打开、能渲染的3D文件。真正拉胯的是这个文件里的东西对不对,房间里的沙发是不是在该在的位置,窗户的光线是不是照着该照的方向。

这篇来自马里兰大学和亚马逊AWS团队的论文,讲的就是这样一件事:能不能让AI编程助手,像人类建筑师一样,看一张照片就把整个场景用代码复刻出来。而复刻出来的东西,还得是能打开、能编辑、能拿去做其他任务的"活"场景,而不是一张画。

这事儿难在哪

先说清楚一个概念。

**场景程序**:不是一张渲染图,也不是一个写死的三维模型文件,而是一段可以执行的代码,运行之后能生成一个三维场景,而且这个场景里的每个物体、每束光、每个摄像机角度都是可以单独拿出来改的。

想象你收到两份"客厅设计图"。一份是打印出来的效果图,好看,但你没法把沙发挪个位置,也没法把它拆开看沙发底下藏了什么。另一份是一份乐高积木的搭建说明书,每一步怎么拼、用了哪几块积木、朝哪个方向拼都写得清清楚楚,你随时能把某一块换掉,重新拼一遍还能拼出同样的效果。论文标题里的"LEGO"用得挺贴切,研究者想要的就是后一种东西。

过去做三维重建的路子大致分两种。一种是搭积木式的传统流水线,先用专门的模型识别照片里有什么物体,再用专门的模型估算深度和布局,最后手动或半自动地把资产拼起来,每个环节都得单独调。另一种是端到端的深度学习模型,直接把一张图丢进去,吐出一个固定的三维输出,比如一堆点云或者一个网格。

这两种方式有个共同的短板:都没法回头检查自己做得对不对,也没法根据检查结果去改。

这就是研究者盯上编程智能体(coding agent)的原因。

**编程智能体**:指像Claude Code、OpenAI Codex这类能自主写代码、跑代码、看运行结果再决定下一步怎么改的AI系统,不是一次性生成答案,而是循环迭代。

这类工具在写普通软件的时候已经证明了自己:写一段代码,跑一下,报错了就根据报错信息改。研究者的想法是,能不能把这套"写-跑-看-改"的循环搬到三维重建上来?给它一张照片当参照,让它在Blender(一款开源三维建模软件)里不断地写代码、渲染、拿渲染结果和照片对比、再改代码,直到搭出一个足够像的场景。

这个思路本身不新鲜,此前已经有VIGA、SEIG这类工作在做类似的事情。这篇论文的重点不是提出这个思路,而是拿六个不同的主流编程智能体,在一个新造的、有真实三维数据打底的考场里,仔细考一考它们到底能做到什么程度,做不到的地方卡在哪儿。

一个绕不开的问题是:怎么给一张照片评分

如果你想知道一个学生数学考得好不好,你得有标准答案。三维重建这件事的麻烦在于,标准答案不好找。

真实拍的照片没有精确的三维真值,你没法知道镜头后面那面墙到底离摄像机多少米。而完全人工搭建的简单场景又太假,跟真实照片的分布相去甚远,考出来的成绩没有参考价值。

研究团队想出的办法,是反过来做。他们先在一个叫LychSim的模拟器里,用市场上买来的正版三维资产(家具、建筑、街景模型)精心搭好104个完整场景,室内室外都有,从医院、房子、办公室到哈瓦那街景、纽约街道,一共8个环境、17个主题。搭好之后,从这些已知的三维场景里"拍"出照片,当作题目发给AI去重建。

**LEGO-Bench**:论文提出的评测基准,包含208张从104个模拟器场景渲染出来的图片,覆盖室内外多种环境,专门用来考察AI能不能从单张照片重建出完整可执行的三维场景。

这个做法妙就妙在,因为照片是从一个完全已知的三维世界里渲染出来的,深度信息、每个物体的精确轮廓、摄像机参数全都是现成的,可以拿来做自动化打分,而且照片本身看起来跟真实世界没什么两样,比纯人工画的合成场景真实得多。

这就好比一场驾照考试,考官不能凭感觉打分,得有明确的评分标准:压线扣多少分,闯红灯扣多少分。LychSim扮演的就是这个考官的角色,它知道考场里每一寸地面在哪里,所以能精确地告诉你AI画的沙发差了多远、光线暗了多少。如果没有这套模拟器打底,光靠人眼去比对AI生成的场景和真实照片像不像,评分就会变得主观、粗糙,没法支撑大规模、可复现的研究。

评分标准拆成了三块,这个拆分很关键

论文里最值得说道的一个设计,是把最终得分拆成三个独立的指标,而不是笼统地打一个总分。

**有效性(Validity)**:检查AI交上来的文件本身能不能用,场景文件能不能正常打开、有没有可渲染的几何体、有没有设置好的摄像机,导出的模型文件是不是完整的,最终渲染图是不是一张正常的图片。

**重建度(Reconstruction)**:衡量AI搭出来的场景里,那些在照片里能看到的物体表面,形状、位置、尺寸对不对。

**外观度(Appearance)**:用同一套渲染引擎重新渲染AI搭出的场景,然后逐个像素跟原始照片比对颜色,看材质、灯光、摄像机配置综合起来的视觉效果像不像。

为什么要拆开评?因为这三件事失败的原因完全不一样,混在一起看会掩盖真正的问题。

设想一个厨师参加烹饪比赛,评委只给一个总分"好吃程度78分",你根本不知道这道菜是食材没炒熟,还是调味太咸,还是摆盘难看。把这三样拆开打分之后,才知道该往哪儿改进。论文里这三项指标的拆分,起的就是这个作用,它让研究者能一眼看出:AI是没交上作业,还是交上了但东西摆错了地方,还是位置摆对了但看起来颜色不对。

结果显示,几乎所有测试的编程智能体交作业的成功率都逼近100%,这说明"写出一份能跑的场景代码"这件事,对当前的AI来说已经不算难事。真正拉开差距的是后面两项。

在具体的重建度和外观度打分上,研究团队还设计了一个挺讲究的细节:不做任何对齐校正。

也就是说,AI生成的场景如果整体偏移了、缩放错了、朝向反了,评分系统不会替它"找平"再打分,而是直接在原始坐标系下比对。这意味着一个摄像机角度算错的场景,会被直接扣掉大量分数,不给"其实思路是对的"这种宽容分。这个设定听起来有点严苛,但道理很简单:如果一个场景连基本的空间关系都摆不对,那所谓"内容识别对了"其实没多大意义。

谁考得最好,差距有多大

六个GPT系列模型在Codex(一款代码执行框架)这套运行环境下接受了测试,此外还有专门为视觉三维任务设计的系统(比如VIGA、SceneConductor)以及几个单图三维重建的基线方法作为对照。

结果排出来,GPT-6-astra这个配置拿了第一,室内场景53.4分,室外39.6分。排在后面的GPT-6-sol是32.3和24.2分,差距已经不小。到了参数更弱一些的GPT-5.6系列,几个配置的得分都掉到了15分上下,跟第一名差了将近40分。

有意思的是,有效性这个维度上,六个模型几乎全部逼近满分,都在97%到100%之间。这说明"能不能交作业"和"作业写得好不好"是两件完全不同的事,前者几乎已经被解决了,后者的差距才是真正体现模型能力高低的地方。

再看单图三维重建的专门方法,比如Gen3DSR,在重建度这一项上甚至比GPT-6-astra还高(65.4%对52.4%),但它完全没法生成合理的外观效果,外观分是0。这类专门方法擅长把几何形状搞对,却完全不管场景看起来像不像,这也印证了论文一开始的判断:单纯做几何重建和真正意义上"复刻一张照片",中间还差着一大截。

场景越复杂,摔得越狠

研究团队还测试了场景复杂度对表现的影响,做法是在同一个场景家族里,保持建筑结构、灯光、材质、摄像机都不变,只是逐步往里面加更多的物体,形成简单、中等、困难三个难度层级。

结果很直接:有效性几乎不受影响,始终保持在99.5%左右,说明不管场景多复杂,AI依然能交出一份看起来完整的文件。但重建度和外观度都随着复杂度上升明显下滑,室外场景在困难难度下的重建分数从18.4%掉到了12.7%,跌幅超过三成。

这个现象其实很好理解。一个房间里放三件家具,AI大概率能把每件都摆对位置;但放进三十件家具之后,物体之间互相遮挡、堆叠、透视关系变得复杂,AI很容易在某个环节判断错误,一步错步步错。这就跟让一个人临摹画作一样,画一个苹果和画一整桌水果拼盘,难度完全不是线性增加的,是指数级的。

多想一会儿,答案真的会更好

论文里还做了一个挺有价值的实验,专门测试"推理力度"对结果的影响。

具体做法是固定住输入的照片、提示词、执行预算这些变量不变,只调整模型自带的推理强度设置,从低到中到高再到极高,看得分怎么变化。

结果在GPT-6家族的三个模型上都很清楚:推理力度越高,最终得分越高。表现最强的astra从32.3%一路涨到61.8%,几乎翻了一倍;中等水平的sol从21.3%涨到39.7%;较弱的luna从14.4%涨到21.2%。而且能看出,模型本身越强,从加大推理投入中获得的收益也越大。

但GPT-5.6系列的几个模型在同样的实验设置下,得分几乎没有明显规律,有的甚至出现了推理力度加大反而得分下降的情况。

这个对比挺发人深省的。让一个人多想一会儿,前提是这个人本身脑子里有足够的知识储备可以调用,多想才有意义。如果一个人本身对这件事一无所知,给他再多时间冥思苦想也想不出正确答案。GPT-6家族能从"多想"中获益,说明它们本身的三维空间理解和代码生成能力已经打好了底子,推理力度只是把这份能力更充分地释放出来;而GPT-5.6系列在这方面的欠缺,靠单纯延长思考时间是补不回来的。

三个卡壳的地方,研究团队把它们挖出来了

光知道分数不够,论文接下来做的事情更有价值:把AI构建场景的整个过程录下来,一步步回放,找出到底是哪个环节出了问题。

第一个问题是起步慢

研究者比较了表现最好的GPT-6-astra和表现中等的GPT-5.6-sol的构建轨迹,发现astra大概在整个任务预算的十分之一时间内,就能搭出第一个"看得过去"的初始场景,剩下九成时间都用来精细打磨;而sol要花掉五分之一的预算才能搭出第一个可用场景,留给后续打磨的时间被大大压缩。

这就好比两个人去宜家买家具回家组装,一个人先花十分钟把说明书通读一遍,理清楚每一步该怎么拼,剩下的时间就是稳步推进;另一个人一上来就急着动手,拼到一半发现方向不对,只能推倒重来,白白浪费了大半时间。起步阶段是不是走对了方向,直接决定了后面有多少时间可以用来精雕细琢。

第二个问题更让人意外:改着改着,反而改坏了

论文追踪了每一次代码修改前后的场景质量变化,发现GPT-5.6-sol有29.6%的编辑操作,是让场景质量变差的,也就是说接近三成的"改进"其实是在帮倒忙。而且它最终交上去的成品,比它自己在过程中曾经达到过的最好状态,还要低3.2分。

这说明什么?说明AI在迭代过程中,并不总是知道自己是在变好还是在变差,有时候一次看似合理的修改,实际上破坏了之前搭好的几何结构或者摄像机设置,但它没有察觉,就这么把倒退的版本当成最终答案交了上去。

这个现象让我想起写论文或者写代码时的一种常见困境:改到后来自己已经分不清哪个版本是更好的了,越改越乱,最后交上去的反而不如中间某个版本。区别在于,人类好歹还能凭直觉或者版本回退功能挽救一下,而这些AI在没有额外机制干预的情况下,并没有这种"止损"的本能。

第三个问题最扎心:AI没法准确判断自己做得好不好

研究团队设计了一个巧妙的实验,让六个模型互相当裁判:给同一个场景的两张渲染图,让某个模型判断哪张更接近参考照片,然后拿这个判断跟客观的评分标准比对,看它猜对了几次。

按理说瞎猜的正确率应该是50%。结果在判断几何重建质量这件事上,所有36组"建造者-裁判"组合的平均正确率是45.8%,比瞎猜还低。而且自己给自己当裁判,并没有比让别的模型来当裁判更准,六个模型里只有三个在几何判断上自我评估强于被别人评估,在外观判断上更是只有两个。

这个结果乍一看有点反常识。我们通常会觉得,AI生成了一个东西,它至少应该知道自己生成得好不好吧?但这个实验说明,至少在判断三维几何结构是否准确这件事上,AI的自我认知能力甚至不如随便扔硬币。这就好比让一个从没学过建筑测绘的人去目测判断两栋楼哪栋的地基打得更结实,光靠"看起来顺眼"是判断不出来的,因为地基的问题恰恰是眼睛看不见的那部分。AI在判断视觉外观(颜色、材质、光影)上还凑合,一旦涉及到看不见的几何结构是否精确,就完全抓瞎了。

对症下药:LEGO-Plugin

找到了这三个病根之后,研究团队没有去重新训练一个更强的模型(这条路成本太高),而是设计了一个不需要额外训练、可以直接挂载在现有编程智能体外面的插件系统,叫LEGO-Plugin。

这个插件不替代AI做决策,AI依然是那个写代码、做规划的主角,插件扮演的角色更像是一套辅助工具和安全网,专门针对前面发现的三个问题各配了一味药。

**强化初始化(Enhanced Initialization)**:针对起步慢的问题。插件用VGGT(一个从图片恢复三维几何和摄像机参数的模型)先从参考照片里把场景的整体框架、摄像机朝向、物体的大致空间关系推算出来,给AI一个已经贴合参考图的起始方案,而不是让它从零开始瞎摸索。

**版本控制(Version Control)**:针对改着改着变差的问题。插件把每一次代码修改都当成一个候选版本,先拿客观证据检验这次修改到底是变好了还是变差了,如果变差就回滚到上一个更好的状态,而不是任由错误的修改一路累积下去。

**扎根式优化(Grounded Refinement)**:针对AI不会自我评估的问题。插件不再依赖AI自己"看一眼觉得像不像",而是用SAM 3(一个物体分割模型)和Depth Anything V2(一个深度估计模型)从参考照片里提取出物体的具体轮廓和相对深度,然后拿这些客观测量结果去核对AI搭建的场景,用数字说话而不是靠感觉。

这三个模块合起来看,其实解决的是一个共通的问题:给AI的自我修正过程装上一套外部的、客观的参照系,而不是让它完全依赖自己(不太靠谱)的内部判断。

这就像给一个刚学开车的新手配了一个带倒车影像和车道偏离预警的车,新手自己对空间距离的判断可能不准,但车上的传感器是客观的,它不会因为"感觉车没偏"就放任你真的偏出车道。传感器不会替你开车,但会在你即将犯错的时候拉你一把。

效果怎么样?论文在42个办公室场景的子集上做了对照实验,每个模型都测了带插件和不带插件两个版本。结果是六个模型全部有提升,而且提升幅度和模型本身的强弱成反比:最弱的三个GPT-5.6模型提升了55%到63%(相当于涨了7到8分),中等水平的GPT-6-luna和GPT-6-sol分别提升27.5%和12.1%,而本来就最强的GPT-6-astra只提升了2.1%。

这个规律很直观:插件本质上是在补齐能力短板,一个本身就很少犯这三类错误的模型,自然没有太多可补的空间;而一个经常在初始化、迭代、自我判断上栽跟头的模型,插件的价值就体现得特别明显。

场景搭好了,能拿来做点别的吗

论文的最后一部分探讨了一个更实际的问题:如果一张照片真的被AI用代码重建成了一个三维场景,这个场景除了看起来像之外,还能不能干点正经事?

具体来说,研究者从重建好的场景里,用确定性的方式(也就是不需要额外训练,直接从场景结构里读取)导出三样东西:物体检测框、实例分割掩码、相对深度图。然后拿这三样东西去跟专门做这些任务的顶尖模型(DINO做检测、SAM 3做分割、Depth Anything 3做深度估计)比较表现。

测试用了COCO、LVIS、ETH3D三个业内标准数据集各100张图片。结果显示,从重建场景里读出来的检测框,精度达到30.14(专业模型是59.88),分割掩码精度14.75(专业模型是53.96),深度估计误差0.1554(专业模型是0.0783,数值越小越好)。

大致可以理解为,重建场景能做到专业模型大约一半的水平。这个结果说明什么?说明用"先重建一个完整三维场景,再从这个场景里读取各种视觉信息"这条路,理论上是走得通的,一个场景搭好之后确实可以一鱼多吃,同时支持检测、分割、深度估计这几个原本各自需要单独模型的任务。但目前这条路走出来的精度,还远远够不上专门模型的水准。

这个发现挺耐人寻味的。它说明程序化的场景重建这件事,作为一种"通用视觉表示"的候选方案,思路是有价值的,但当前这代编程智能体搭出来的场景还不够精确,没法直接替代专门训练的视觉模型。这中间的差距,恰恰是留给后续研究去填的空间。

写在后面

读完这篇论文,最让我意外的其实不是那个53.4分,而是"有效性接近100%但重建度和外观度差一大截"这个反差本身。

这说明当前的编程智能体已经学会了如何生成一份"看起来正确"的代码交付物,一份能打开、能跑起来的三维文件,这件事本身已经不构成障碍了。真正的瓶颈藏在更深的地方:它到底有没有真的理解照片里那个空间的几何关系,有没有能力判断自己搭出来的东西跟照片对不对得上。这跟人类编程新手的困境其实有点像,写出能跑的代码不难,写出逻辑正确、边界情况都考虑到的代码才难。

另一个让我反复琢磨的细节,是那个"AI自我评估几何质量的正确率还不如瞎猜"的实验。这个结果如果放在人类身上会很奇怪,一个人做完一件事,至少应该对自己做得好不好有个大致感觉吧?但对当前这些AI系统来说,视觉上"看起来顺眼"和空间结构上"实际正确",可能是两套完全不同的判断机制,前者它们学得还不错,后者几乎是盲区。这提示了一个更普遍的问题:我们让AI自我反思、自我修正的时候,可能默认了它具备一种它其实并不具备的元认知能力。

这篇论文也留下了一个没有真正解决的问题,就是附录里那个关于"可活动物体"的试验性评测。研究者尝试评估AI搭建的场景里,哪些物体应该是可以打开的抽屉、可以转动的门,结果测试的场景在这项指标上直接拿了零分。这个方向被论文自己标注为"需要进一步探索",某种程度上说明,让AI理解一个场景不仅要长什么样,还要知道哪些部分能动、怎么动,这可能是比静态几何重建更难啃的骨头。

如果有一天,AI真的能看一眼照片就精确复刻出整个房间,包括抽屉能不能拉开、门朝哪边开,那时候的"照片"这个概念,会不会已经悄悄变成了"某个可以随时被重新执行、重新编辑的世界的一份快照"?

Q&A

Q1:LEGO-Anything是什么?

A:LEGO-Anything是一个让通用编程智能体(比如GPT系列模型)通过反复写Blender代码、渲染、对比参考图并修改的方式,从单张照片重建出可编辑三维场景程序的框架。

Q2:LEGO-Bench评测中表现最好的模型是哪个,分数如何?

A:GPT-6-astra表现最强,在室内场景拿到53.4分,室外场景拿到39.6分(满分100),交付有效场景文件的成功率接近100%,但几何重建和外观还原度仍有明显差距。

Q3:LEGO-Plugin能带来多大提升?

A:在办公室场景子集测试中,LEGO-Plugin让六个模型全部有提升,其中表现较弱的模型提升幅度最大,最高相对提升达62.7%,而本来就最强的模型提升幅度较小,约2.1%。

文章标签AI编程

资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。