微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

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

首页 AI能看懂视频里的物理世界吗:当机器人试图"写代码复原"一碗意大利面

AI能看懂视频里的物理世界吗:当机器人试图"写代码复原"一碗意大利面

2026-10-30 19:31
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-10-30 19:31 • 科技行者

你有没有想过一个问题:如果给AI看一段倒牛奶的视频,再让它凭空写代码重建出一个一模一样的虚拟场景,它能做到吗?

这听起来像是个无聊的技术测试,但往深里想一想,这其实是在问一个更根本的问题:机器到底懂不懂这个世界是怎么运转的。不是"识别出这是牛奶"那种表面的懂,而是真正理解液体会流动、会飞溅、会在重力作用下坠落这种底层物理规律的懂。

2026年,斯坦福、约翰霍普金斯和MIT的研究者们搞了一个叫4DCodeBench的测试,专门用来戳穿这个问题的真相。结果挺打脸的:那些写代码能力已经逼近人类顶尖程序员的AI模型,一旦被要求重建动态场景里物体怎么运动、怎么碰撞、怎么变形,成绩立刻跳水。

这事说起来有点反直觉。毕竟过去两年,AI写代码的进步速度让所有人目瞪口呆,GitHub Copilot之后冒出一堆号称能独立完成整个项目的编程智能体。按理说,"看视频写代码"这种任务,对它们应该不算太难。但4DCodeBench的测试结果告诉你:静态的几何形状和画面长什么样,AI学得不错;但东西怎么动、怎么碰、怎么碎,AI还差得远。表现最好的模型在静态指标上能拿0.91分(满分1分),但到了动态指标上直接掉到0.67分,这中间0.24分的落差,翻译成人话就是:知道这是什么东西,但不知道它接下来会发生什么。

这篇论文的价值,恰恰在于它第一次把这种"会看不会懂"的现象量化、系统化地测了出来。

### 什么叫"用代码重建一个会动的世界"

先说清楚这个任务到底是什么。

研究者给AI一段视频,比如一个人往桌子上铺餐布,或者一根绳子被拉伸甩动。AI的任务不是描述视频里发生了什么,也不是生成一段类似的新视频,而是写出一段可执行的程序代码,这段代码运行之后能在Blender(一款开源3D建模软件)里重新构建出整个场景的三维几何形状,并且让这个场景随时间演化,最终渲染出一段新视频,这段视频应该和原视频长得差不多像,连里面物体运动的轨迹都要对得上。

逆向图形学:指从观察到的图像或视频出发,反推出生成这些画面所需要的三维场景结构、材质、光照等底层参数,是计算机图形学"正向渲染"过程的反向问题。

这个任务的难点在于,AI必须自己决定用什么方法去描述"动"这件事。是写一个物理模拟器去算牛顿力学?还是手动给每一帧的物体位置打关键帧?还是用一套数学公式直接算出轨迹?论文作者完全不限制这一点,他们就是想看看,面对不同的物理现象,AI会选择什么样的建模策略,这些策略又分别有什么代价。

这就好比让一个建筑师不仅要画出房子的外观图,还要写出一份详细的施工说明书,告诉工人每一块砖该怎么砌、钢筋该怎么弯、水泥配比是多少。光看懂房子长什么样不算本事,得能把建造过程的每一步都讲清楚才算真懂。如果只是临摹外观,房子可能看着像,结构稳不稳、会不会塌,谁也不知道。AI重建视频也是这个道理,只是把画面拼凑得像,和真正理解物体为什么这样运动,是两码事。

### 200个场景,四种物理现象,专门挑硬骨头啃

研究团队没有随便拍几段视频就算完事,他们精心设计了一套涵盖多种物理现象的测试集,一共200个场景,分成两大类。

一类是100个真实世界的视频,从现有的机器人操作数据集、物理演示视频库以及网络素材里精挑细选而来。这些视频有一个共同特点:相机基本固定不动,场景里发生的事情足够复杂,比如滚珠撞倒多米诺骨牌、冰块在桌上融化、机器人手臂拧瓶盖。研究者特意排除了有人和动物出现的画面,因为人手的精细动作太难建模,会干扰对物理规律本身的测试。

另一类是100个合成场景,用专业的物理模拟器精心计算生成,好处是研究者知道每一帧里每一个点的真实三维坐标,这样就能直接拿模型重建出来的结果和标准答案逐帧比对,而不只是比较渲染出来的画面像不像。

这两类场景又被归到四个物理类别里:刚体和关节体(比如积木、机械臂)、可变形固体(比如橡皮泥、海绵)、共维结构(比如布料、绳索)、流动材料(比如液体、沙子)。

材料点法:一种计算机图形学里用来模拟弹性、塑性、流体等复杂材料变形的数值方法,把连续的材料看作离散的"质点",同时用背景网格辅助计算,能同时处理固体碎裂、液体流动这类拓扑结构会发生剧烈变化的现象。

这里要澄清一个误解,很多人以为AI做视频重建,难点在"看清楚"物体是什么。但这个研究恰恰证明,真正难的不是识别,而是推理接下来会发生什么。比如面条被拉伸时会怎么变细、布料被风吹起时褶皱怎么形成、液体撞上固体容器壁时怎么飞溅,这些现象背后都是连续的物理方程在起作用,而不是简单的像素模式匹配。

这83%的场景里都有不止一个运动物体在互相作用,66%涉及多种材料混合,比如固体撞进液体里,或者布料盖在木质桌子上滑落。这种复杂的材料间相互作用,恰恰是最考验AI物理推理能力的地方。

### 18个模型大乱斗,谁在裸泳一目了然

研究者找来了18个当前最前沿的多模态编程模型进行测试,既包括OpenAI、Anthropic、Google等公司的商业模型,也包括Qwen、DeepSeek、GLM等开源模型。每个模型都要在全部200个场景上各跑一遍,没有提示场景名字、没有物体清单,一切信息都得自己从视频里推理出来。

结果排名第一的是一个代号Astra的模型(以最大推理强度运行),综合得分0.79分。往后依次是Opus 5.5(0.78分)、Astra高强度版(0.77分)、Fable 5.1(0.74分)。开源模型整体表现明显落后商业模型,表现最差的Gemma-4只拿到0.19分,几乎可以说完全没理解任务。

这个综合分数由五个维度的子分数平均而成:视觉相似度(渲染画面和原视频长得像不像)、2D动态表现(画面里物体的运动覆盖情况)、2.5D几何精度(深度估计准不准)、3D几何精度(静态结构还原得准不准,只能在合成场景上测)、3D动态精度(物体真实运动轨迹对不对,同样只能在合成场景上测)。

把这五个数字拆开看,问题就暴露出来了。表现最好的Astra模型在静态指标(视觉和3D几何)上能拿0.91分,但在动态指标(2D和3D动态)上只有0.67分,中间差了24个百分点。而且这个规律在所有18个模型身上都成立,不是个别现象。

这就像是让一个学生考试,静态知识题(背公式、记概念)都能答对九成,但一到需要动态推理的应用题(算物体运动轨迹、判断碰撞结果),正确率立刻掉到六成七。如果只看静态题的分数,你会以为这学生物理学得很好,但一旦涉及真实世界的动态场景,马上露馅。这不是粗心,而是根本性的能力差距:理解"是什么"和理解"会怎样",是两种完全不同的认知能力,前者靠模式识别就能搞定,后者需要真正的因果推理。

为了验证这套自动打分系统靠不靠谱,研究者还专门找了76名真人,做了3587次两两对比打分,让人类看完视频后判断哪个AI重建的结果更接近原视频。结果人类评分和AI自动评分系统的相关性高达0.98,说明这套量化指标确实抓住了人类真正在意的东西,不是自说自话的数字游戏。

### AI怎么描述"运动"这件事,居然五花八门

这篇论文最让我觉得有意思的一点,是研究者去扒了AI到底用什么办法实现"让物体动起来"这件事。

结果发现,67%的解决方案用的是解析式运动,也就是直接写一个关于时间的数学公式去计算每一帧物体该在哪个位置,比如插值一条样条曲线穿过几个关键姿势点,或者用抛物线公式算物体受重力下落的轨迹。19%的方案自己手写了物理模拟器,用上了材料点法、位置约束动力学这类专业算法。10%直接调用Blender自带的物理引擎,剩下3%纯靠手动打关键帧。

更有意思的是,不同模型之间的策略选择差异极大。Opus 5.5用自定义模拟的比例高达61%,而推理强度最低的Astra版本和另一个叫Terra的模型,几乎全部(85%到100%)靠解析公式硬算。

拿论文里举的一个例子来说,同样是重建一块面包被撕开的场景,Fable 5.1跑了一个双场材料点法模拟,每个粒子都设了断裂阈值;DeepSeek v4.1用位置约束动力学算法去模拟撕裂缝隙处的连接断开;而最强的Astra模型压根没写任何物理求解器,直接用解析公式推进一条"内聚断裂前沿"沿着面包体往下走。

这个发现挺耐人寻味的。写一个真正的物理模拟器,好比你要造一辆真车,发动机、变速箱、刹车系统都得按物理规律设计,跑起来是因为内部机械确实在工作。而解析式运动更像做一个玩具模型车,外表看着像,内部其实是提前设定好轨道的小马达带着跑,轨道铺多细,车跑起来就多像真的。如果只靠解析公式,遇到训练数据里没见过的物理情形,这套"轨道"立刻露馅,因为它本质上是在拟合已知轨迹,而不是在推演未知的物理过程。这也解释了为什么静态重建分数高,动态推理分数低,因为很多AI选择了更省事但也更脆弱的那条路。

### 花钱越多效果越好?并不见得

另一个颠覆直觉的发现是,token消耗量和重建质量之间几乎没有相关性。

研究者统计了每个模型完成一个任务平均花费的token数量(也就是计算资源消耗),发现跨模型比较的时候,这个数字和最终得分的相关系数低到可以忽略不计。比如某个叫Qwen的模型,平均每个任务跑了752步、输出150万token,算是相当"卖力"了,但综合排名只排到第11。

不过这个规律有个例外。如果固定住同一个模型架构,只是调整它的推理强度(比如Astra模型分低、中、高三档),那么推理投入和效果就呈现出清晰的正相关。Astra从最低档调到最高档,输出token数从1.3万涨到6.7万,综合得分从0.726稳步爬升到0.791,花的钱也从3.5美元涨到11.3美元。

这说明一件事:不同模型之间比拼"谁用得多",意义不大,因为每个模型内部的推理效率天差地别;但对同一个模型来说,给它更多的思考时间和计算预算,确实能换来实打实的进步。

这就好比两个学生准备考试,一个是死记硬背型选手,花再多时间刷题,成绩曲线也是平的,因为方法本身效率低;另一个是真正理解了解题思路的学生,多花一小时复习,分数就能明显提升,因为他的每一分投入都用在了刀刃上。给前者更多时间没用,给后者更多时间有用,关键不在投入量,而在投入的方式对不对路。

### 哪些场景最容易暴露AI的短板

论文还做了一个挺细致的分类分析,看看不同类型的场景会分别暴露出什么样的弱点。

相比合成场景,真实世界的视频在视觉相似度和问答准确率上都明显更差,差了快一个标准差。这不难理解,真实视频里有复杂的光照、材质反光、运动模糊这些干扰因素,合成场景则是理想化的干净数据。

包含多种材料互相作用的场景(比如固体撞进液体),表现也明显差于单一材料场景。共维结构(布料、绳索这类薄片或线状物体)在2D动态和2.5D几何这两个指标上掉分最严重,说明AI对布料飘动、绳索甩动这种柔性结构的建模能力特别弱。而被外力驱动的场景(比如机器人手臂主动操作物体)在问答准确率上偏低,但在3D几何精度上反而更高,这个有点反直觉,可能是因为外部驱动的运动模式相对规律,容易用解析公式精确描述形状,但理解"为什么会这样动"这个因果链条更难。

这些细分数据提醒我们一件事:笼统地说"AI不懂物理"是不够精确的,它对不同类型的物理现象,理解深浅是不一样的。有些现象(比如刚体碰撞)相对好掌握,有些现象(比如布料褶皱、液体飞溅)则是系统性的软肋。

### 这个测试的局限和没解决的问题

论文作者自己也坦承,目前这套评测体系有一个没法回避的漏洞:它测的是"重建得像不像",而不是"是否真的理解了物理机制"。

打个比方,一个AI完全可以靠硬编码一套提前设定好的运动轨迹,在这个特定场景上拿高分,但这种"背答案"式的解法完全无法推广到新的初始条件或者外力扰动上。换句话说,现在的评分体系还没法区分"真懂物理"和"精准记住了这个视频该怎么动"这两种情况。

研究者提出,未来应该设计一些干预性测试,比如改变初始条件、施加新的外力、要求模型预测更长时间之后会发生什么,这样才能真正检验AI是不是掌握了可迁移的物理推理能力,而不只是把看到的轨迹原样复刻出来。

这篇论文留下的核心问题挺值得玩味的:当我们说AI"理解"了一个视频,到底是指它记住了这段画面该怎么演,还是它真的掌握了背后那套物理规律,可以应用到从没见过的新场景里去。这两者在表面分数上可能长得一模一样,但本质完全不同。

Q&A

Q1:4DCodeBench是用来测试什么的?

A:4DCodeBench是一个评测AI编程智能体能力的基准测试,要求AI根据一段视频,写出可执行的图形学代码,在Blender中重建出视频里场景的三维几何结构和随时间的运动变化,最终评估重建结果在视觉效果、几何精度和动态物理表现上和原视频的匹配程度。

Q2:为什么AI重建视频里的静态画面表现好,动态运动表现差?

A:测试显示最强模型在静态指标(视觉相似度和3D几何精度)上能拿0.91分,但在动态指标(物体运动轨迹)上只有0.67分。这是因为识别物体长什么样靠的是模式匹配能力,而推断物体接下来怎么运动需要真正的物理因果推理,多数AI倾向于用解析公式硬算轨迹而非搭建物理模拟器,遇到复杂材料互动就容易失准。

Q3:AI实现物体运动效果时都用了哪些方法?

A:统计显示67%的方案用解析式数学公式直接计算运动轨迹,19%手写了自定义物理模拟器(比如材料点法),10%调用Blender自带物理引擎,3%靠手动打关键帧。不同模型策略差异很大,比如Opus 5.5有61%的方案用自定义模拟,而部分模型几乎全靠解析公式。

分享至
0赞

好文章,需要你的鼓励

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