这一片也是关于3D城市的,是做3D城市生成的
原文: CityDreamer: Compositional Generative Model of Unbounded 3D Cities
(arxiv.org/pdf/2309.00610)
摘要
本文认为一个3D城市生成应该包括两个部分:
1)多样的建筑
2)背景(包括道路、绿化等等)
因此,从两个方面入手:instance-oriented和stuff-oriented
然后文章还提出了数据集CityGen Datasets。
(嘿,怎么abstract里没有具体说方法啊)
1. Intro
之前的模型建筑立面(building facades)都太单一了,因此提出了一个可以解决多样性问题的方案:periodic positional encoding
创建了一个新的数据集:CityGen,包括OSM和GoogleEarth
本文贡献:
- 提出了CItyDreamer,专门用于无界3D城市(unbounded 3D cities),应用了instance-oriented和stuff-oriented
- 构建了 CityGen数据集
- 讲述了一下模型的表现
2. Related Work
- 3D-Aware GANs
- Scene-Level Content Generation
3. 方法
分为四个步骤:
1)生成一个城市的layout,也就是一个基本的布局
2)然后背景生成器(background generator)会生成对应的城市背景和掩膜
3)随后,建筑实例生成器(building instance generator)分别为每一个建筑生成实例图片和对应的mask掩膜
4)最后,进行合并
- 感觉有点像一块一块分割,然后贴贴图
3.1 Unbounded City Layout Generator
城市被分为了七大部分:
- roads
- buildings
- green lands
- construction sites
- water areas
- others
- empty
为了构建3D的信息:(所以要进行一个类似于升维的作用)
- L是layout
- S是语义图(也就是语义分隔以后的图)
- H是高度图
这样生成的任务就被分割为了生成无限大的语义图和对应的高度图
最终的gerator基于MaskGIT模型,用于绘制
然后他们对semantic map和 height field patches 进行了tokenize的操作,并且将他们转换到一个特定的域中,并根据内容构建了一个codebook
下面就是如何生成layout token T, 他们采用了自回归(自回归模型_百度百科 (baidu.com)),去进行预测生成
这里使用的是VQVAE去生成S-H对
- 这里的S是extra Smoothness Loss, 据说可以保留建筑的边缘锋利度
3.2 City Background Generator
Scene representation
-
分窗口处理
-
local window
Scene Parameterization
将p和fg映射到超空间:
这里开始有点迷了
- 那个符号⊕就是按位异或
- π i 和 π j π^i 和 π^j πi和πj代表大素数
- p 是3D位置
Volumetric Rendering
- 体积渲染
把pixel用光线来理解,就是光线从o点出发,然后向v方向的延伸
损失计算
- 分别是L1loss,感知损失(perceptual loss),和GAN loss
- 感知损失:损失函数——感知损失(Perceptual Loss)-CSDN博客 (就是不是传统的mse,而是通过模型提取出特征,然后最小化两张图片特征之间的距离)
3.3 Building Instance Generator
- 整体步骤和背景生成类似
Scene Representation:
首先提取窗口:
找到可以用于生成部分的
然后因为建筑的屋顶和外立面往往都有明显的差别,所以在最上层中加入了roof标签
Scene Parameterization:
这里的O代表vanilla NeRF的positional encoding:
Volumetric Rendering:
- 体积渲染,这个和上面那个背景的公式很像
损失计算
就是使用了一个Gan loss:
3.4 合并
-
最后一步就是合并了,然后因为没有对应的grounth truth 图片,所以很难直接用神经网络进行训练
-
(6,所以就是硬核拼接)
因为之前有掩膜生成,所以依靠掩膜,然后所有都叠加在一张图片上就是最终的结果了。
4. 数据集
- 包括OSM和GoogleEarth
5. 实验
找了几个指标:
- FID和KID (Frechet Inception Distance (FID) and Kernel Inception Distance (KID))(GAN-评价指标IS以及FID、KID_fid kid-CSDN博客)(主要是feature 的对比)
- Depth Error
- Camera Error
然后就是消融实验
5.5 Further discussion
1)因为现在的模型依赖高度,所以很难应用到洞穴等地势
2)建筑都是单独生成的,计算量较大