跳到主要内容

造一整个能当光源的世界(Text2Light)

这一章讲三件事: 为什么「生成一张全景图」和「生成一张图」是两件事; 一句话怎么在完全没有配对数据的情况下控制住生成; 以及一个很重要的教训——分数低不等于结构对。 它在全书链条里的位置: 这是生成线的最后一章,也是「产物最不像图片」的一章—— 它的输出要被丢进渲染引擎当光源用第 17 章那个「没有配对数据」的困境在这里第二次出现,而这一章给了一个完全不同的解法。

⚠️ 这一章也不用扩散模型。 它用的是「码本 + 一个逐个吐索引的模型」那一路。

1. 顶层全景:两个阶段,四个难点各有各的解

输入:一句话「日落时分的教堂内景」

═══ 第一阶段:先造一张不大的普通全景 ═══

① 那句话过 CLIP 文本编码器 → 一串数

② **管布局的那本码本** + 一个逐个吐索引的模型
→ 吐出一张 8×16 的索引图(整张场景的骨架)

③ **管纹理的那本码本** + 另一个模型,在「骨架 + 球面坐标」的条件下
逐块生成细节,**用滑窗拼出整张 1024×512 的全景**

═══ 第二阶段:提分辨率、提动态范围 ═══

④ 把这张全景当成**球面上的连续场**:任意一个方向都能查到值

⑤ 两个小网络依次上阵:一个提分辨率,一个提动态范围

一张 4K 以上的高动态范围全景 → 丢进渲染引擎当环境光

图说:注意第 ② 和 ③ 两步的分工 —— **一个管「这是个教堂」,一个管「这块砖长什么样」。**
书里说清楚了为什么必须分开:**一本码本兼顾不了这两件事。**

这一章的主走查:一句话「日落时分的教堂内景」。

发生了什么具体的数或状态
那句话过 CLIP → 一串数训练时用的不是它(见第 6 节)
管布局那本码本在 128×256 的缩小全景上训出来编码成 8×16 个索引
逐个吐索引的模型按条件吐出这 8×16 个索引整张场景的骨架
管纹理那本码本在随机裁的 256×256 图块上训出来每块编码成 16×16 个索引
把每个像素的坐标换算回球面角度,再做傅里叶编码让模型知道「这一块在球的哪儿」
另一个模型在「骨架 + 球面编码」条件下逐块生成,滑窗拼满得到 1024×512 的普通全景
把它当成球面上的连续场:每块编成 128×128 的隐码,
任意方向的值由周围四个隐码按面积插值算出来(插值:网格点之间的位置没有存值,
就拿周围几个网格点的值按远近加权凑一个)
分辨率不再被固定尺寸卡住
两个小网络依次跑:一个提分辨率,一个提动态范围4K 以上的高动态范围全景
整批图一起量出来零样本那张表上:画质分 FID 32.01(最好的对照是 38.16,越低越好)

这些数全是书里的真数;那句「日落时分的教堂内景」是我们设的 (书里的定性对比图里确实有教堂内景)1

关于 FID 这个数,有一处最容易读串,先挡在这儿: 第 10 节还会出现一个更刺眼的数——去掉管布局那本码本,FID 崩到 308.38那个数出自另一张表(书里量生成质量用的那张),那张表上完整配置是 10.72,不是这里的 32.01两张表的口径不同,只能各自内部比,不能跨表比。

2. 先说清楚要造的是什么东西

这一节回答:为什么不是「再做一个文生图」?

输出物长什么样

普通的图:一个矩形,记录「从这个角度看出去是什么」

全景:一张很宽的图,**但它记录的是「从这一点向四面八方看,各是什么」**
—— 上下 180 度、左右 360 度,整个球面都被摊在这一张图上
(这种摊法叫**等距柱状投影**:纵坐标对应上下的角度,横坐标对应左右的角度。
世界地图就是这么摊的,所以两极附近会被拉得很宽)

再加一样:**高动态范围**(常写作 HDR)
普通图每个像素的亮度只有 0 到 255 这么点范围;
而真实世界里太阳比阴影亮几万倍。
**高动态范围就是把这个真实的亮度比例存下来。**

图说:两样合起来,这张图就能**当光源用** ——
把一个 3D 物体放进场景里,渲染器照着这张全景的每个方向去取光,
物体身上的高光、反射、影子就都对了。

为什么值得自动生成

书里给的理由很实在2:

虚拟现实和三维渲染对这种场景表示的需求在快速增长; 而获取它既耗资源、又受物理条件限制。

说白了:你得扛着一台特殊的相机,跑到一个真的日落教堂里,在对的时间拍。

3. 四个难点,书里列得清清楚楚

这一节交代这件事难在哪儿。四条各对应后面的一节3:

难点具体是什么在哪一节解
① 分辨率现有生成模型做不到 4K 以上、场景级的细节和多样性第 8 节
② 连贯场景不是单个物体,它有多个物体和整体布局,语义和结构都得连得上第 4、5 节
③ 文本对齐收集「文本 ↔ 场景」的配对数据又贵又费人力,所以零样本这条路基本没人走过第 6 节
④ 动态范围把普通亮度范围的输出转成高动态范围,这个转换不稳定第 8 节

第 ③ 条是这一章和第 17 章共有的困境,但两章的解法完全不同: 第 17 章的办法是不训练——拿 CLIP 当裁判,一点点优化; 这一章的办法是照训不误,只是把训练用的条件伪造出来(第 6 节)。

4. 第一处设计:全景不是一张宽图,它是一个球

这一节解第 ② 个难点的一半。

问题

如果你把全景当成一张普通的宽图来生成,模型不知道「左边缘和右边缘是接在一起的」, 也不知道「越靠近上下两极,横向就被拉得越厉害」。

做法:把像素坐标换算回球面角度

一个像素在图上的位置 (i, j)

├─ 换算成球面上的方向:
│ 上下角度 θ = (2i/H − 1) × π
│ 左右角度 φ = (2j/W − 1) × π/2
│ —— 这一步正好是等距柱状投影的逆运算

└─ 再对 (θ, φ) 做一次**傅里叶编码**
(把一个角度换成一串不同频率的正弦余弦值。
第 16 章讲过傅里叶变换是「换个角度看同一件事」;
这里用它是因为**直接喂原始坐标,模型抓不住高频的细节变化**)

结果:每一块图块都带上了「我在球的哪个方向」这个信息。
书里管这套叫**球面位置编码**。

图说:这一步的作用第 10 节有对照 ——
**去掉它,模型会横向铺出一片重复的纹理**,因为它根本不知道自己转到哪儿了。

5. 第二处设计:一本码本不够,拆成两本

这一节解第 ② 个难点的另一半,也是主走查第 ②、④ 步。

先回忆码本

第 17 章讲过:码本就是「先把所有可能性压成 N 个代表,然后只在这 N 个里挑」。 这一章用的是同一个思路,但对象不是体型,是图像的一小块。

做法叫**向量量化**:
① 训一个「压缩 + 还原」的网络对:压缩那半把图变成一片连续的特征
② 准备一本码本(一份代表清单)
③ **把每个位置的特征替换成码本里离它最近的那个代表**
—— 于是一张图变成了一张**索引表**(每个位置一个编号)
④ 还原那半从索引表把图重建回来

图说:这样一来,「生成一张图」就变成了「生成一串编号」——
**而生成一串编号,正是逐个预测下一个的模型最擅长的事**(第 03 章讲过自回归)。

为什么要两本

书里给的理由是一句实测4:

场景的纹理又多又复杂,一个「压缩 + 还原」的网络 做不到「既让整体连贯、又有足够的局部细节」。

所以拆成两本,各训各的:

码本在什么上训编码成多大管什么
管布局的缩小到 128×256 的整张全景8×16整体语义、粗略的全局特征
管纹理的从全景上随机裁的 256×256 图块16×16细节和纹理

注意这两个尺寸的对比:管布局那本看的是整张图,但看得很粗(只有 8×16 个格); 管纹理那本看得很细,但每次只看一小块。 这正是「整体」和「局部」这对矛盾的一个物理化分工。

6. 第三处设计:没有配对数据,就把条件伪造出来

这一节是全章最巧的一招,也是主走查第 ①、③ 步。

问题的形状

你想训一个「给一句话,吐出场景骨架」的模型。 但训练集里只有场景,没有配对的句子。

关键的观察

第 01 章讲过:CLIP 把图和句子钉进了同一个空间,配对的那一对靠得很近。

所以:一张图的那串数,本来就已经很接近「描述它的那句话」的那串数了。 那能不能直接拿图像的那串数,冒充文本的那串数来训?

几乎可以,但不完全——两边终究还是隔着一小段距离。 书里的做法是把这段距离用噪声「模糊」掉5:

伪文本特征 = (1−α) × 这张图的图像特征 + α × 一份缩放到同样长度的高斯噪声

图说:α 是一个固定的比例。
**加噪声不是为了让它更像文本,是为了让模型别太依赖「图像特征」的精确位置** ——
训练时看到的是一团带噪的东西,推理时换成真的文本特征,它也认。

还不够,再加一步最近邻

光有那个伪特征还不够。书里又加了一手5:

取这个伪文本特征在图像嵌入里最近的 K 个邻居,和它一起当条件 (「找最近的 K 个」这个动作叫最近邻;第 11 章量「这个类离学过的类多远」时用的是同一个动作)。

这一步的分量有多重,第 10 节的消融会给出答案——去掉它,文本一致性从 4.56 掉到 1.23。

训练与推理

训练时:条件 = { 最近的 K 个图像嵌入 | 伪文本特征 }
模型:一个逐个预测下一个索引的 Transformer
损失 = 序列的负对数似然 + 一项对比正则
(对比正则:把真图像特征和它的伪文本特征拉近,
用的是第 01 章那种「配对的靠近、不配对的推远」)

推理时:**把伪文本特征换成真的文本特征,别的一个字不改。**

图说:书里把这称作「与语言无关的训练设置」——
**整个训练过程一句话都没用到,而训完之后它就能听话了。**

7. 第四处设计:局部采样器与滑窗

这一节是主走查第 ⑤、⑥ 步。

另一个 Transformer,在两个条件下从「管纹理的码本」里逐块采样:
条件一:上一步得到的整体骨架
条件二:这一块的球面位置编码(第 4 节那个)

推理时**滑窗**:把这个模型的注意力窗口一块一块地在全景上滑过去,
逐块生成,直到拼满整张 1024×512 的图,再用还原网络把索引变回像素。

图说:滑窗是能拼出「任意大小」的关键 ——
**模型只学过怎么生成一小块,但整体骨架和球面坐标保证了这些块拼起来是连贯的。**

8. 第二阶段:把全景当成球面上的连续场

这一节解第 ①、④ 两个难点,也是主走查第 ⑦、⑧ 步。

关键的一步换视角

别把结果当成一张固定分辨率的图,把它当成一个函数:

给我球面上任意一个方向(θ, φ),我告诉你那个方向的高动态范围值。

这一步换视角带来一个很实在的好处6:

因为表示是连续的,训练时不必把 4K 到 8K 的原图缩到某个固定尺寸。

怎么实现

① 从普通全景上裁一块,编成一张 **128×128 的隐码图**
—— 「像素对齐」的意思是:隐码图上的每个位置,对应原图上的一小片
② 要查任意一个方向 (θ, φ) 的值:
找到它周围最近的四个隐码,**按面积比例插值**
(就像在地图上查一个不在网格点上的位置的海拔:
用周围四个网格点的值按距离加权)
③ 拿插出来的这个特征,依次过两个小网络:
第一个(四层)**提分辨率**
第二个**提动态范围** —— 它还要额外吃 (θ, φ) 这两个角度

图说:这两个小网络都是**多层感知机**(第 05 章第 1 节立过:最基础的那种网络,
几层「乘一张数表、过一次简单变换」叠起来,写出来就是 MLP)。
书里把这一整套叫「超分辨率 + 逆色调映射」算子。
(**逆色调映射**:把压缩过的亮度范围还原回真实比例,是「色调映射」的反操作。)

效果:两个小网络打赢重型网络

方法平均绝对误差(越低越好)均方根误差(越低越好)
(两种量「差多少」的算法:前者直接取差的绝对值求平均,
后者先平方再开方,对大错误罚得更重)
一个专门的还原网络0.321851.73
另一个0.189426.68
第三个0.171326.40
这两个小网络0.144226.38

书里的对照方法都是重型的全卷积网络,而这里赢它们的是两个多层感知机7

9. 结果,以及一个必须记住的教训

零样本文生场景

方法FID(越低越好)感知质量(5 分制)文本一致性(5 分制)
一个基于 CLIP 编辑的方法57.861.981.33
另一个38.162.411.57
本章的方法32.014.384.56

注意最后一列的差距:1.57 对 4.56,几乎是三倍8(后两列是 25 人打的主观分。)

那个教训:分数低不等于结构对

在「不带文本、只比生成质量」的那张表里,有一族老方法的 FID 并不差—— 最好的一个是 14.62,而本章方法是 10.729

但书里紧接着写了它们的定性表现9:

那一族方法在完整的全景上训练,FID 分数相对不错, 却抓不住全景固有的结构属性。 它生成的教堂内景乍看很真实,但天花板和长椅是扭的、断的。 另一个方法在水平方向铺出重复的图案,而在两极附近是没有纹理的像素。

判断(我们的,不是书里的): 这一段应该被单独记住,而且它不限于全景。 FID 量的是「两堆图的特征分布差多远」,它对『结构对不对』基本不敏感—— 一张天花板断掉的教堂,在特征分布上仍然很像一堆真实的教堂照片。 换句话说:分布层面的指标查不出个体层面的结构错误。 如果错,会错在: 如果结构错误足够普遍、足够严重,它最终也会体现在分布上。 所以这不是「FID 没用」,而是**「FID 在这个分数区间内已经分辨不出这类差别」**; 书里也正是用主观打分补上了这一格。

10. 三组消融,一组比一组说明问题

这一节是这一章证据最硬的地方10:

去掉什么FID说明
去掉管布局的那本码本308.38(完整是 10.72)崩了。 因为管纹理那本和它的采样器只在图块上训过,没有全局信息就拼不出整张全景;而且文本对齐的能力也一起没了
去掉整个球面表示(改成横向外扩)56.37结构完整性明显变差
只去掉球面编码里的傅里叶那一步31.19模型会生成重复的纹理

文本那一侧另有一组11:

去掉什么FID文本一致性
去掉最近邻那一步52.851.23(完整是 4.56)
去掉对比正则34.70(书里说它只有小幅提升)
完整32.014.56

两条结论: ① 管布局那本码本是这套东西的命门——去掉它,分数从 10 崩到 308,是全书最大的一次崩塌; ② 那个最近邻是文本能起作用的真正原因,不是那个伪文本特征本身。 对比正则只是锦上添花。

11. 能拿它干什么

书里列了三个下游用法12:

  1. 当环境光渲染 3D 资产——这是它最初的目的;
  2. 在虚拟现实里做 360 度漫游;
  3. 文本编辑场景——给「夜晚的城市街景」追加「带砖砌路面」,路面就换了。

12. 作者的判断与证据

书里给了证据的:

说法证据
一本码本不够去掉管布局那本,FID 从 10.72 崩到 308.38
球面表示对结构连贯必要两个变体的对照 + 定性图(去掉傅里叶编码会出重复纹理)
伪文本 + 最近邻能实现零样本零样本表全面领先;去掉最近邻文本一致性 4.56 → 1.23
对比正则只是小幅提升34.70 对 32.01
连续表示 + 两个小网络够用两项误差都赢过三个重型网络
分数低不等于结构对定性对比 + 主观打分

属于作者的推断:

  • 「那族老方法抓不住全景固有的结构属性」——这是对定性现象的归因, 没有单独设计实验去验证「是结构先验缺失导致的」;
  • 「罕见景象生成不了,是因为训练文本对齐采样器时用了最近邻」—— 书里用的措辞是「我们把它归因于」,这是推测;
  • 另一个对照方法失败,「可能是因为普通 Transformer 缺乏归纳偏置」——原文也用的是「likely」。

13. 边界与局限

书里把局限写在延伸阅读那一节里,两条13:

① 文本偏见。 因为完全不用配对数据,表现全靠 CLIP; 而作者观察到 CLIP 在某些「词–图」搭配上是有偏的。

② 罕见景象生成不了。 书里给了一个具体例子: 给它「树和极光」,它只理会「树」。 作者把这归因于训练时用了最近邻——因为最近邻会把条件拉回到数据集里常见的那一片。

我们再补三条书里没有明说的:

③ 它不是扩散模型,所以第 15、16 章的那套改进用不上。 这条路线(码本 + 逐个吐索引)在书出版时已经不是主流, 书里自己在局限那一段也提到了「用扩散先验」这条可能的解法。

④ 分辨率的提升来自第二阶段,不是第一阶段生成的。 第一阶段只出 1024×512;4K 是靠一个超分网络放出来的—— 所以「4K 的细节」有多少是真被生成的、有多少是被合理猜出来的,书里没有讨论。

⑤ 全章只做了场景,没有做「场景里的物体可控」。 你能说「日落的教堂」,但说不了「教堂左边有一尊雕像」。

14. 可带走的

  1. 这一章的产物不是图,是能当光源用的东西:一张 4K 以上的高动态范围全景;
  2. 全景 = 把整个球面摊在一张图上(等距柱状投影),高动态范围 = 把真实的亮度比例存下来;
  3. 四个难点:分辨率、结构连贯、没有配对数据、动态范围;
  4. 全景不能当宽图处理:要把像素坐标换算回球面角度,再做傅里叶编码; 去掉这一步,模型会横向铺出重复纹理;
  5. 一本码本兼顾不了整体和细节,所以拆成两本:一本在缩小的全景上训(8×16,管布局), 一本在随机裁的图块上训(16×16,管纹理);
  6. 管布局那本是命门:去掉它 FID 从 10.72 崩到 308.38,而且文本对齐也一起没了;
  7. 没有配对数据的解法:把图像特征加噪当成伪文本特征来训, 推理时换成真的文本特征——因为 CLIP 早就把两边钉在同一个空间里了;
  8. 真正起作用的是最近邻那一步:去掉它文本一致性从 4.56 掉到 1.23;
  9. 第二阶段换了个视角:把全景当成球面上的连续场,任意方向都能查值—— 好处是训练时不必把原图缩到固定尺寸;
  10. 两个小网络(多层感知机)依次提分辨率和动态范围,就赢过了三个重型全卷积网络;
  11. 必须记住的教训:分数低不等于结构对。 一族老方法 FID 只有 14.62,但生成的教堂天花板是断的;
  12. 作者自陈两条局限:一切依赖 CLIP 所以继承它的偏见; 罕见景象生成不了——给「树和极光」它只理会「树」。

15. 原文地图

主题原书章原文位置
为什么要高动态范围全景;获取又贵又受限17. Text-Driven Scene Generationtext/54-ch17-17-text-driven-scene-generation.txt:31(搜「resource-intensive and limited by physical constraints」)
四个难点同上text/54-ch17-17-text-driven-scene-generation.txt:37(搜「ultra-high-resolution (4K+)」) · text/54-ch17-17-text-driven-scene-generation.txt:39(搜「multiple objects and structural layouts」) · text/54-ch17-17-text-driven-scene-generation.txt:41(搜「expensive and labor-intensive」) · text/54-ch17-17-text-driven-scene-generation.txt:43(搜「can be unstable」)
球面表示与傅里叶编码同上text/54-ch17-17-text-driven-scene-generation.txt:71(搜「each pixel is associated with a point on a unit sphere」) · text/54-ch17-17-text-driven-scene-generation.txt:75(搜「reverses the equirectangular projection」)
双码本:为什么要两本、各自的尺寸同上text/54-ch17-17-text-driven-scene-generation.txt:103(搜「a single VQVAE」)
伪文本特征与最近邻同上text/54-ch17-17-text-driven-scene-generation.txt:109(搜「pseudo-text feature」) · text/54-ch17-17-text-driven-scene-generation.txt:113(搜「top-K nearest image embeddings」)
自回归训练、损失、推理时换成真文本同上text/54-ch17-17-text-driven-scene-generation.txt:117(搜「autoregressive manner」) · text/54-ch17-17-text-driven-scene-generation.txt:127(搜「substituting」)
局部采样器与滑窗同上text/54-ch17-17-text-driven-scene-generation.txt:133(搜「structure-aware sampler」) · text/54-ch17-17-text-driven-scene-generation.txt:141(搜「sliding-window manner」)
第二阶段:连续场、面积插值、两个小网络同上text/54-ch17-17-text-driven-scene-generation.txt:145(搜「querying HDR values at any spherical position」) · text/54-ch17-17-text-driven-scene-generation.txt:153(搜「area-based interpolation」) · text/54-ch17-17-text-driven-scene-generation.txt:161(搜「two small MLPs」)
零样本主表与消融同上text/54-ch17-17-text-driven-scene-generation.txt:377(搜「32.01」) · text/54-ch17-17-text-driven-scene-generation.txt:363(搜「1.23」) · text/54-ch17-17-text-driven-scene-generation.txt:449(搜「KNN plays a crucial role」)
生成质量表与「FID 低不等于结构对」同上text/54-ch17-17-text-driven-scene-generation.txt:301(搜「10.72」) · text/54-ch17-17-text-driven-scene-generation.txt:309(搜「the ceiling and bench are distorted and broken」)
去掉全局码本崩到 308同上text/54-ch17-17-text-driven-scene-generation.txt:271(搜「308.38」) · text/54-ch17-17-text-driven-scene-generation.txt:439(搜「decreases drastically without the global codebook」)
球面表示的两组消融同上text/54-ch17-17-text-driven-scene-generation.txt:445(搜「horizontal outpainting」)
逆色调映射的四行对照同上text/54-ch17-17-text-driven-scene-generation.txt:431(搜「0.1442」)
两条自陈局限同上text/54-ch17-17-text-driven-scene-generation.txt:477(搜「tree and aurora rays」)

Footnotes

  1. 出处:「17. Text-Driven Scene Generation」第 93 段(text/54-ch17-17-text-driven-scene-generation.txt:93,搜「1024×512」)与第 103、141、161 段。各步数值:第一阶段输出 1024×512;管布局的码本在 128×256 的降采样全景上训、编码成 8×16,管纹理的在 256×256 的随机裁块上训、编码成 16×16(text/54-ch17-17-text-driven-scene-generation.txt:103,搜「a single VQVAE」);第二阶段的隐码图是 128×128(text/54-ch17-17-text-driven-scene-generation.txt:153,搜「area-based interpolation」);零样本 FID 32.01 与对照 38.16 见表 17.2(text/54-ch17-17-text-driven-scene-generation.txt:377,搜「32.01」;text/54-ch17-17-text-driven-scene-generation.txt:347,搜「38.16」);去掉全局码本 308.38 见 text/54-ch17-17-text-driven-scene-generation.txt:271(搜「308.38」)。「日落时分的教堂内景」这句是我们设的输入,书里的定性对比里用的是教堂内景这个场景。

  2. 出处:同上第 31 段(text/54-ch17-17-text-driven-scene-generation.txt:31,搜「resource-intensive and limited by physical constraints」)。原文:元宇宙与虚拟现实的快速发展显著提高了对逼真三维场景渲染的需求;高动态范围全景这类高质量场景表示,对实现真实光照与沉浸式环境效果是必需的;理想的表示应当同时具备高分辨率、丰富的动态范围与细致的细节,但获取过程既耗资源又受物理条件限制,这正是要做自动生成流水线的动机。

  3. 出处:同上第 37、39、41、43 段(text/54-ch17-17-text-driven-scene-generation.txt:37,搜「ultra-high-resolution (4K+)」;text/54-ch17-17-text-driven-scene-generation.txt:39,搜「multiple objects and structural layouts」;text/54-ch17-17-text-driven-scene-generation.txt:41,搜「expensive and labor-intensive」;text/54-ch17-17-text-driven-scene-generation.txt:43,搜「can be unstable」)。原文四条依次是:现有生成模型难以合成 4K 以上、细节与多样性都够的场景级内容;场景不同于物体级图像,含多个物体与结构布局,语义连贯与结构一致都难保持;为「自由文本生成场景级内容」收集配对数据既贵又费人力,使零样本生成基本无人探索;把低动态范围输出转成高动态范围不稳定。

  4. 出处:同上第 103 段(text/54-ch17-17-text-driven-scene-generation.txt:103,搜「a single VQVAE」)。原文:鉴于场景纹理多样且复杂,单个向量量化自编码器往往无法同时合成连贯的外观与足够的局部细节;因此推导出一种分层的离散表示——两本码本:全局那本通过在 128×256 的降采样全景上训练一个向量量化自编码器得到,编码器把它变成 8×16 的特征;局部那本在从整张全景随机裁出的 256×256 图块上训练,得到 16×16 的细粒度特征。

  5. 出处:同上第 109 段(text/54-ch17-17-text-driven-scene-generation.txt:109,搜「pseudo-text feature」)、第 113 段(text/54-ch17-17-text-driven-scene-generation.txt:113,搜「top-K nearest image embeddings」)与第 117、121、127 段。原文:核心洞察是用无监督手段——最近邻与对比学习——把采样器与输入文本对齐,目标是在没有配对文本–场景数据的情况下造出一个近似目标场景语义的文本条件;做法是扰动图像特征以生成伪文本特征(按一个固定比例混入高斯噪声,并把噪声缩放到与图像特征同样的长度),再取该伪特征在图像嵌入里最近的 K 个当额外条件;采样器是一个自回归的 Transformer,在文本条件下逐个预测全局码本的下一个索引,损失是序列的负对数似然加一项对比正则;训练完成后推理时把伪文本特征换成真正的文本特征,即可零样本迁移。 2

  6. 出处:同上第 145 段(text/54-ch17-17-text-driven-scene-generation.txt:145,搜「querying HDR values at any spherical position」)、第 153 段(text/54-ch17-17-text-driven-scene-generation.txt:153,搜「area-based interpolation」)与第 161 段(text/54-ch17-17-text-driven-scene-generation.txt:161,搜「two small MLPs」)。原文:第二阶段构造一个连续表示,使得球面上任意位置都能查询高动态范围值;从低动态范围图块编出一张 128×128 的像素对齐隐码图,任意位置的特征由周围四个隐码按面积插值得到;再用一个复合算子——由两个小的多层感知机构成,依次提升空间分辨率与动态范围;第二个还额外吃查询点的球面坐标。

  7. 出处:同上表 17.3(text/54-ch17-17-text-driven-scene-generation.txt:431,搜「0.1442」;text/54-ch17-17-text-driven-scene-generation.txt:433,搜「26.38」)。三个对照方法的平均绝对误差与均方根误差依次是 0.3218 / 51.73、0.1894 / 26.68、0.1713 / 26.40,本方法 0.1442 / 26.38。

  8. 出处:同上表 17.2(text/54-ch17-17-text-driven-scene-generation.txt:377,搜「32.01」;text/54-ch17-17-text-driven-scene-generation.txt:347,搜「38.16」;text/54-ch17-17-text-driven-scene-generation.txt:353,搜「1.57」)。零样本文本驱动生成的三行:两个对照方法 57.86 / 1.98 / 1.33 与 38.16 / 2.41 / 1.57,本方法 32.01 / 4.38 / 4.56;后两列是 25 人的 5 分制主观打分(评测设置见同章实验节)。

  9. 出处:同上表 17.1(text/54-ch17-17-text-driven-scene-generation.txt:221,搜「14.62」;text/54-ch17-17-text-driven-scene-generation.txt:301,搜「10.72」)与第 309 段(text/54-ch17-17-text-driven-scene-generation.txt:309,搜「the ceiling and bench are distorted and broken」)。原文:那三个变体在完整全景上训练,FID 相对较低,却抓不住全景固有的结构属性,导致保真度差;例如其中一个生成的教堂内景乍看真实,但天花板和长椅是扭曲、断裂的;另一个在水平区域附近生成重复图案、两极附近是无纹理的像素;还有一个在图块上训练、缺少稠密条件时合成不出完整全景,原文说这「可能是因为普通 Transformer 缺乏归纳偏置」。 2

  10. 出处:同上第 439 段(text/54-ch17-17-text-driven-scene-generation.txt:439,搜「decreases drastically without the global codebook」)与第 445 段(text/54-ch17-17-text-driven-scene-generation.txt:445,搜「horizontal outpainting」),数值见表 17.1(text/54-ch17-17-text-driven-scene-generation.txt:271,搜「308.38」;text/54-ch17-17-text-driven-scene-generation.txt:281,搜「56.37」;text/54-ch17-17-text-driven-scene-generation.txt:291,搜「31.19」)。原文:去掉全局码本后全景质量急剧下降,因为局部码本与结构感知采样器都是在图块上训练的,没有全局外观信息就合成不出完整全景;而且模型还会失去把生成内容与输入文本对齐的能力;球面表示那两个变体分别是「完全去掉球面表示、改用横向外扩」与「只去掉傅里叶编码」,后者会导致模型生成重复纹理。

  11. 出处:同上第 449 段(text/54-ch17-17-text-driven-scene-generation.txt:449,搜「KNN plays a crucial role」)与表 17.2(text/54-ch17-17-text-driven-scene-generation.txt:357,搜「52.85」;text/54-ch17-17-text-driven-scene-generation.txt:363,搜「1.23」;text/54-ch17-17-text-driven-scene-generation.txt:367,搜「34.70」)。原文:最近邻对生成质量与文本一致性都起关键作用,而对比正则只带来适度提升;定性上最近邻能减少文本到场景对齐时的伪影,对比正则则让模型更能捕捉文本与图像之间的细粒度对应。

  12. 出处:同上第 451 至 467 段(text/54-ch17-17-text-driven-scene-generation.txt:451,搜「downstream」)。三个下游用法:当环境光渲染 3D 资产、虚拟现实里的 360 度漫游、以及文本编辑场景。

  13. 出处:同上第 477 段(text/54-ch17-17-text-driven-scene-generation.txt:477,搜「tree and aurora rays」)。原文两条局限:文本偏见——由于文本驱动合成完全不用配对数据,表现依赖 CLIP,而作者观察到 CLIP 在某些词–图对上有偏;罕见景象——模型合成不了数据集里不常见的场景级内容,给出「tree and aurora rays」这句时模型只关注「tree」,作者把它归因于训练文本对齐采样器时用了最近邻;并提出可能的解法是进一步利用 CLIP 的图文联合空间或改用扩散先验。