微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 上海人工智能实验室等机构联手:用AI"看图建房",一张俯视图秒变可编辑3D室内场景

上海人工智能实验室等机构联手:用AI"看图建房",一张俯视图秒变可编辑3D室内场景

2026-05-26 09:05
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-05-26 09:05 科技行者

这项由上海人工智能实验室、上海创新研究院、南方科技大学和英国华威大学联合完成的研究,以预印本形式发布于2026年5月,论文编号为arXiv:2605.18451,感兴趣的读者可通过该编号检索原文。

**一切从一张"上帝视角"的房间图片开始**

假设你是一位室内设计师,客户递给你一张鸟瞰图——从正上方俯拍的房间平面效果图,里面有沙发、餐桌、书架、台灯,摆放位置清晰可见。你的任务是,根据这张图,搭建出一个完整的、可以在电脑里自由旋转观察、还能随时修改的三维立体房间。

这件事对人类设计师来说已经相当费力,需要专业的3D建模软件技能、材质设计能力、灯光调节经验。而这项研究想让AI来做同样的事——而且不只是生成一张"看起来像3D"的图片,而是生成真正的、可执行的三维场景代码,放进专业3D软件Blender里就能直接运行、渲染、编辑。

这个系统被称为**Code-as-Room**(简称CaR,可以理解为"代码即房间")。它的核心思路就像是给AI配了一套完整的"建筑施工图纸",让AI不仅能"看懂"一张俯视图,还能一步步把里面的家具、墙壁、灯光全都用程序代码重新建造出来。

**一、现有方法为什么"不够用"——从文字描述到图片引导的进化**

在介绍这个新方法之前,有必要先聊聊前人是怎么做的,这样才能体会到这项研究解决了什么真实的痛点。

早期的计算机辅助室内场景生成,主要靠规则和约束来驱动。工程师手动编写一大堆规则,比如"沙发要面对电视"、"床头柜要紧贴床边",然后让程序按照这些规则自动摆放家具。这种方法就像是给搬家工人发了一份写满条条框框的操作手册——规则写得越细,结果越死板,一旦遇到手册里没有的情况就束手无策。

后来,大型语言模型(也就是那种能聊天的AI)开始被引入到场景生成中。研究者们让AI根据用户的文字描述来生成房间布局,比如用户说"我想要一个有双人床、衣柜和梳妆台的卧室",AI就去预测家具的位置和尺寸。但文字描述本身就有天然的局限性——文字说不清楚"床头柜到底离床多远",也说不清楚"书架是靠着北墙还是东墙",结果生成的房间往往不符合用户的真实期待。

更近一步的尝试是用"图片"来代替"文字"作为输入条件。毕竟,一张房间的俯视图里包含了非常丰富的空间信息——哪里有什么家具、大概的尺寸比例、相互之间的位置关系,一眼就能看清楚。这种思路更接近真实的设计工作流。

然而,现有的图片引导方法存在一个致命问题:不稳定。其中最典型的参照系统是VIGA,它让AI不断地"生成代码→渲染图片→对比原图→发现问题→重新生成代码",循环往复,直到结果满意为止。听起来很合理,但在实际操作中,当面对整个房间这种复杂的场景时,这个循环往往会陷入无休止的死循环——AI一直在改,一直改不满意,永远停不下来。就像一个不知道何时该说"够了"的厨师,把菜翻来覆去地加调料,最后把菜炒糊了。

Code-as-Room就是为了解决这些问题而生的。

**二、核心创意——把"建房间"变成一道有顺序的"多道菜套餐"**

这项研究最关键的洞察是:直接从一张图生成整个房间的代码,这个任务太复杂了,不能一口气完成,必须拆开来分步做。

整个流程被设计成了十个精心编排的阶段,每个阶段只负责一件特定的事情,就像一顿精心准备的多道菜套餐,冷盘、汤、主菜、甜点各有其时,彼此衔接。研究团队把这十个阶段归入五个大的环节,依次是:读懂图片、生成布局代码、给每个物体做详细描述、生成物体几何代码、最后做材质和灯光的装饰。

在整条流水线中,有一个贯穿始终的机制叫做"跨阶段记忆模块"。这个机制的作用就像是施工现场的工程日志——每一步做了什么、做出了什么结论,都被记录下来,供后续的每一步参考。没有这个日志,后期的工人就不知道前期的决策是什么,容易做出矛盾的选择。而以往的AI系统正是缺少这种"记忆",导致各阶段之间互相"失忆",最终造成混乱。

下面逐一走进这五个大环节,看看它们各自在做什么。

**三、第一环节:像侦探一样"读懂"这张俯视图**

给AI一张房间俯视图,它首先要做的不是马上开始写代码,而是先系统地"看懂"这张图。

第一阶段负责空间语义分析。AI被要求扫描整张图,识别出每一件家具和建筑元素,给每个物体分配一个编号和类别,判断它是地板上的独立家具、墙边的固定装置,还是桌面上的小摆件。墙、门、窗、开口等建筑结构被单独标记出来,作为整个房间的"骨架"固定下来,不参与后续的移动调整。研究团队特别设计了一个"周边感知"机制,专门用来发现容易被遗漏的角落物体和墙挂物品,确保图中每一个角落的东西都被记录到。

第二阶段负责构建"物体关系网络",学术上叫做场景图。这个阶段基于第一阶段的识别结果,进一步理清物体之间的关系——哪些物体是从属关系(比如台灯从属于书桌),哪些是邻近关系(比如床头柜紧靠着床),哪些是依附关系(比如画框挂在北墙)。另外,所有小摆件(书、杯子、装饰品等)被单独存放在一个"小物件清单"里,留到后面的阶段再处理,不在这里影响整体布局的判断。

完成这两个阶段,AI就有了一份完整的"房间地图",知道里面有什么、各自在哪里、彼此之间什么关系。

**四、第二环节:用"占位符"先把家具的位置锁定下来**

有了房间地图,接下来就进入布局代码的生成阶段。这个环节的策略非常聪明:先不管家具长什么样,只管把它放在哪里。

每一件家具先被表示为一个简单的方盒子(学术上叫做"边界框代理"),这个方盒子记录了家具的大致位置、大小和朝向。就像装修时先用纸板箱模拟家具位置,确认摆法合适后再搬真家具一样。

第三阶段专注于主要家具(沙发、床、餐桌等大件)的布局。这个阶段引入了一个"渲染-评价-修改"的反馈循环:AI写完一版布局代码,系统自动渲染成俯视图,然后AI再把这张渲染图和原始输入图对比,找出差异——哪里少了东西、哪里家具重叠了、哪里超出了房间边界、哪里方向不对。发现问题后,AI提出修改意见,再把修改意见和原始的"房间地图"核对,过滤掉那些不合理的改动(比如AI可能建议改变墙的位置,但墙是不能动的固定结构),最后根据核对后的意见修改代码。这个循环最多进行五次,研究者发现五次是效果与效率之间的最佳平衡点——少于五次改不够好,超过五次反而容易改过头,产生"过度修正"导致布局变乱。

第四阶段则在锁定好的主要家具布局基础上,补充墙挂物品(如装饰画、镜子)和那些地面上较显眼的中等大小物件(如地毯、落地灯)。特别小的桌面摆件则依然留在后面处理。

**五、第三环节:给每件家具做一份"详细档案"**

布局确定之后,每件家具只知道"在哪里"和"多大",还不知道"长什么样"——颜色是什么、材质是木头还是金属、风格是现代简约还是古典欧式。

第五阶段就是专门来填写这些"详细档案"的。AI重新看一遍输入图,对着每一件已经定位好的家具,结合之前积累的所有记忆,仔细推断它的颜色、材质、功能特点、结构特征和设计风格。所有这些描述都被整理成一个结构化的档案文件,同时还会生成一份描述整个房间总体风格的"全局风格说明",用于后续材质和纹理的统一设计,确保房间里各件家具的风格协调,而不是东一件中式、西一件北欧、完全不搭调。

**六、第四环节:用几何积木拼出每件家具的形状**

有了位置信息和详细档案,接下来就要给每件家具"画出形状"了。这是最考验AI能力的环节之一。

第六阶段的核心思路是把每件家具拆解成若干个基础几何形体的组合。以一把椅子为例,座面是一个扁平的立方体,椅背是一个竖直的薄板,四条腿各是一个细长的圆柱或方柱。AI根据家具档案,预测出这种几何拆解方案,然后把这些基础形体的代码写进Blender脚本,替换掉原来的"占位方盒子"。由于所有形体都定义在原来方盒子的本地坐标系内,家具最终会自动出现在布局阶段确定的正确位置,不需要重新对齐。

对于那些小摆件——书、茶杯、键盘、花盆这类细节物体,几何代码生成的难度更高,因为形状往往更复杂、更不规则。这个阶段采用了一种聪明的混合策略:先用简单的占位形体标出它们的位置和大小,然后从一个预先准备好的"3D资产库"里检索最匹配的现成3D模型,把它缩放到合适大小后放置进去。匹配时同时考虑语义相似性(这个东西叫什么、是什么类型)和尺寸兼容性(大小合不合适),确保取来的模型既贴切又不会显得尺寸失调。

**七、第五环节:涂色、贴图、打灯——让房间"活"起来**

这是整个流程的最后三个阶段,负责让房间从"几何骨架"变成"有质感的真实空间"。

第八阶段负责材质赋予。AI根据之前生成的家具详细档案和全局风格说明,为每件家具的每个部件分配具体的材质参数:基础颜色(精确到线性RGB值)、粗糙度(表面是哑光还是光滑)、金属感、高光强度。玻璃和镜面材质会触发特殊的着色器设置,地板和墙壁则使用程序化的节点系统生成自然的材质效果。

第九阶段负责纹理和装饰面。对于地板花纹、墙纸图案、地毯纹理、挂画内容等需要特定图案的表面,系统会调用一个图像生成模型,根据描述自动生成对应的纹理贴图,然后把它贴到对应的表面上。如果图像生成失败,系统会自动用更简单的描述重试,保证流程的健壮性而不中断。

第十阶段负责灯光设置、最终渲染参数调整,以及一次统一的后处理检查。灯光设置时,AI会推断原始输入图的整体光照风格——主光源来自哪个方向、窗户带来的自然光是什么感觉、有没有人工光源——然后在Blender场景中创建对应的光源对象。后处理检查会扫描整个场景代码,修正常见问题:缺失材质赋值的物体、路径错误的纹理贴图、光照强度不合理的光源。对于发生碰撞或越出房间边界的可移动家具,系统会在其周围的小范围内搜索一个合法位置,用数学优化的方式自动调整,确保最终代码可以顺利执行而不报错。

**八、我们到底做得多好——用数字来说话**

为了验证这套方法的效果,研究团队构建了一个专门的评测基准,包含41个涵盖不同房间类型(卧室、厨房、客厅、实验室、咖啡馆、理发店等)和不同难度(简单、中等、困难)的测试场景,输入图像的风格也各不相同,有照片级真实感渲染图、合成渲染图,也有抽象线条图。

由于这些输入图各有各的样子,没有标准答案可以直接对比,研究团队设计了一套人机协作的标注流程:先让AI生成初步标注,再由人工标注员通过一个专门开发的"可视化代码同步编辑工具"进行校正,确保标注质量。

评估维度覆盖了四个层面。视觉理解层面看两个指标:物体覆盖率(生成代码里有没有把图里所有家具都包含进来)和功能区域还原精度(有没有正确还原出厨房区、睡眠区等功能分区)。空间推理层面看五个指标:家具之间有没有碰撞、布局与原图的重叠程度、空间关系是否正确、朝向是否正确、上下支撑关系是否正确。代码生成层面看两个指标:整条十阶段流程能不能成功跑完、最终代码在Blender里能不能成功执行。整体场景质量层面则由AI打分评估图像相似度、场景可用性和美学品质。

结果非常清晰地说明了这套系统的价值。Gemini 3.1 Pro直接生成(不用这套流程)的物体覆盖率只有17.8%,布局重叠度只有16.8%,而配备Code-as-Room流程后,这两个数字分别跳升到55.5%和73.2%。GPT-5.5直接生成时物体覆盖率42.2%,布局重叠度46.2%,Blender执行成功率只有42.2%;配备流程后执行率提升到73.3%,空间关系准确率从50.8%提升到71.4%。Gemini 3 Flash配备流程后自主完成率和执行成功率双双达到100%,表现最为稳定可靠。

人工专家评分同样指向同一个结论。20位专家对每个场景从图像相似度、可用性、灯光匹配度、可接受度四个维度打分(满分10分)。Gemini 3.1 Pro配备Code-as-Room流程后,相似度得9分、可用性得8分、可接受度得7.5分,远超直接生成(分别只有2、0、1分)。对比方法VIGA虽然在灯光方面得分接近,但相似度只有5.5、可用性只有4.5,说明它生成的场景在布局保真度和实际使用价值上都有明显差距。

**九、拆开来看:记忆模块和反馈循环究竟贡献了多少**

研究团队还做了一系列消融实验,专门来验证各个关键设计的单独价值。

关于跨阶段记忆模块的作用,对比结果相当直观:去掉记忆模块后,物体覆盖率从55.5%降到48.2%,布局重叠度从73.2%降到58.0%,朝向准确率从93.6%降到88.4%。布局重叠度的降幅最大,说明记忆模块对于保持整体空间一致性特别关键——没有它,后面的阶段就会忘记前面阶段做的决定,不断做出互相矛盾的选择,导致家具摆放混乱。

关于视觉反馈循环的轮数,研究结果揭示了一条有趣的规律:从0次到5次,效果随轮数增加而持续改善;但超过5次之后,布局重叠度和朝向准确率反而开始下滑。这说明AI的视觉反馈能力存在一个"有效窗口"——适量的迭代能发现并改正真实错误,但过度迭代会让AI开始"自我怀疑",把原本正确的地方也改掉。5次迭代是甜蜜点,是质量和稳定性的最佳平衡。

**十、用图像增强技术让结果"更真实"**

研究团队还做了一个额外的实验,展示了这套系统未来的潜力方向。

Code-as-Room生成的3D场景,家具形状是由基础几何形体拼合而成的,视觉上类似低精度的卡通风格模型,而非照片级真实感。但这些场景提供了非常准确的3D空间信息:房间的大小比例、各件家具的位置关系、相机视角的几何一致性。

研究者把Blender渲染出的图像输入到GPT-5.5的图像处理能力中,让它在保持空间结构不变的前提下,把材质、光照、细节都改得更加真实。结果相当令人惊叹:在几何结构的严格约束下,AI生成的材质和光照效果自然了很多,而且从不同视角看,房间的整体布局和语义都保持一致。这说明Code-as-Room生成的3D场景,未来完全可以和更强的视觉生成模型配合,作为"骨架"输出高质量的室内效果图,而不只是工程师眼中的代码框架。

**说到底,这套系统解决的是一个关于"如何让AI稳定地处理复杂任务"的普遍问题**

归根结底,Code-as-Room的价值不只是"能从一张图生成一个3D房间"这么具体的功能,更深层的贡献是它证明了:对于这类需要同时理解视觉、推理空间、生成代码的复杂多步骤任务,一套设计合理的"执行框架"(分阶段、有记忆、有反馈、有约束)比单纯堆叠更强的AI模型更加关键。即便是同一个AI模型,套上这个框架和不套这个框架,结果差异可以是质的区别。

对于室内设计师而言,这意味着未来的设计工具可以直接从手绘俯视草图或渲染布局图出发,自动生成可编辑的3D场景原型,大幅压缩从概念设计到3D原型的时间。对于游戏开发者和虚拟现实内容制作者,快速从参考图生成可交互的室内场景,本身就有巨大的实用价值。对于研究具身智能(让机器人在虚拟室内环境中学习行动)的团队,批量生成多样化的室内训练场景也变得更加可行。

当然,这项研究目前还有局限:它只支持正上方的俯视图作为输入,不支持任意角度的照片;复杂形状的真实家具用基础几何形体拼合还是有差距;视频级别的多帧一致性重建也还需要进一步探索。这些方向,都是研究团队明确列出的下一步工作。

完整原论文可通过编号arXiv:2605.18451在学术预印本平台检索,所有实验细节和技术规格均有详细记录,有技术背景的读者可以深入参考。

---

Q&A

Q1:Code-as-Room系统需要什么样的输入图片才能正常工作?

A:Code-as-Room目前主要接受从正上方拍摄的房间俯视图作为输入,支持照片级渲染图、合成渲染图和抽象线条图等不同风格的图片。它不支持从普通视角(比如站在房间里往前看)拍摄的照片,这是该系统当前的主要限制之一。

Q2:Code-as-Room生成的3D场景能直接用于商业室内设计吗?

A:生成的场景可以直接在Blender软件中打开和编辑,具备可用性。但由于家具形状是由基础几何体拼合而成,视觉精度还无法达到商业效果图的标准。研究团队提出可以结合图像增强模型对渲染结果进行二次处理,提升视觉真实感。

Q3:Code-as-Room里的"跨阶段记忆模块"是什么意思?

A:跨阶段记忆模块就是整个流程中的一份"共享工程日志",每一个处理阶段完成后,会把自己的输出结果写入这份日志,后续阶段在工作时可以随时查阅之前所有阶段的结论。去掉这个模块后,各阶段会互相"失忆",导致后期步骤无法利用前期发现的信息,生成质量明显下降,尤其是整体布局的空间一致性会大幅受损。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-