1.DIP
A.渲染器及参数
由于text to 3d的目标是从任意角度渲染图片,从而得到更好的效果。所以其生成模型不能在像素空间采样。而可微图像参数化,可以满足。用数学语言可以表示为:,其中
为图像,
为体渲染器,
为3d 体渲染参数。
B.渲染器的损失函数:
首先尝试了以类似的score matching的目标函数的形式构造
,用于学习条件密度
,发现identity DIP 即
时,生成图片的真实性。这是由于U-Net的Jacobian项计算量大,但是近似计算低噪声时的边缘分布的缩放后的Hessian矩阵会变得病态,难以收敛。省略U-Net的Jaccob项梯度则可以正常优化。所以构造SDS作为新的损失函数。
从为了拉近prompt条件后验分布和DIP渲染模型的先验分布
,先构造KL散度,求
,最后再利用该项构造成
2.DREAMFUSION ALGORITHM
A.3d模型的神经渲染
based on mip-NeRF 360(减少了走样)
1)shading:
与NeRF的主要差别:先参数化表面的颜色,然后叠加光照。
(1)
(2)参照lambertian渲染公式,构造颜色的计算公式:
表面的法向量:
环境光:;光源颜色:
;光源坐标
; 采样点坐标
其中数学符号f(y)◦g(x)代表复合函数f(g(x)),则
(3)把颜色、法向量、以及和NeRF相同的权重带入NeRF渲染方程
(特别的,在渲染过程中,随机将着色率换为纯白,防止模型过拟合生成的3d结果是平面图像)
2)场景结构
查询场景的NeRF得到渲染的颜色, 用另一个MLP以位置编码后的光线为输入储存环境颜色。最终用在场景颜色上叠加渲染的颜色,按照alpha 值混合得到结果。这样避免NeRF场景把距离相机很近的部分都占满了,并且也能在生成的场景前添加效果。
3)几何正则化项
惩罚不透明度:防止对空间的不必要填充
朝向loss:防止法线出现大面积远离相机的情况
B. text to 3d合成流程
(1) 随机采样光线和相机
(2)用NeRF从该相机、该光线渲染一张图片
(3) 以NeRF参数为梯度,计算 SDS loss
(4) 用优化器优化NeRF的参数
-------------------------------------
:guided noise prediction;
: noise prediction
------------------------------------
训练的score matching的目标函数:
和的score function 的关系:
(根据Tweedie’s formula
)
通过控制guidance scalar 控制生成的质量:
(根据 classifier-free)