标签(空格分隔): CNN BRDF
---
##简介
通过一张未知自然光照下平面材质的近距离照片恢复出物体的完整材质属性(SVBRDF)极具挑战性。然而通常我们并不需要获取物理上精准的材质属性,例如在虚拟世界中创建大规模的内容或是在游戏开发中,一个物理上合理的估计已经很有意义了。
目前,获取纹理材质的通常步骤是用艺术家的手去绘制出所有的纹理材质属性。现在电影特效和游戏行业中的大部分纹理材质,其实依然是艺术家手工加工绘制出来的。艺术家根据自己的丰富经验,可以从一张简单的照片出发,对照片进行种种处理,最终绘制出纹理材质对应的不同属性,并可以用于图像渲染。
这篇文章作者通过卷积神经网络(CNN)估计物理上近似的材质属性。
由于并不是图片中的每个像素都能观察到明显的镜面反射,如果没有空间先验知识很难获得完全的具有空间变化的镜面反射部分。于是作者估计的是一个简化的完整材质属性,这个简化的材质属性由空间变化的漫反射,均匀的镜面反射,空间变化的表面法向量组成。
训练一个用于估计简化材质属性的卷积神经网络需要大量的带标签的图片,收集大量带标签的图片作为测试集费时费力,相比而言,获取不带标签的图片就简单多了,尽管每张不带标签的图片只是拍摄自未知光源下的某一个角度,但它们都包含了空间变化反射参数的某个具体实例。
作者不仅仅只是使用卷积神经网络估计材质属性,他用了一个新颖的训练策略将大量不带标签的图片利用起来——将这些图片用于增强卷积神经网络的训练。
思路:使用目标CNN预测不带标签图片的临时反射参数。目标CNN的逆过程实际上是基于物理的渲染算法——在给定光照确定观察角度的情况下利用估计出来的反射参数合成图片。
假设最开始使用带标签图片训练出的CNN是一个好的预测器,那么预测出的临时反射参数应该类似于这些图片对应材质的真实反射参数,对于输入的无标记照片,首先使用监督方法训练好的模型估计出SVBRDF参数,然后使用该参数,在CG软件中变换光照和视角,渲染出一张新的图片,然后再次利用深度网络估计出新的SVBRDF参数,以两个SVBRDF之间的偏差作为loss。
##目标:
通过一张未知自然光照下平面材质的近距离照片估计大致的表观属性。
##SVBRDF-net
输入:具有空间变化材质的照片
输出:表观属性
均匀镜面反射部分用Ward BRDF表示
镜面反射率: $\rho_s$
镜面粗糙度: $\alpha$
空间变换的漫反射部分:
像素的漫反射率: $\rho_d(x)$
像素的三维表面法向量: $n(x)$
halfway vector: $\omega_h=(\omega_i+\omega_o)/{\Vert\omega_i+\omega_o\rVert}$
$\delta$: $\omega_h$与$n(x)$的夹角
###$f_r(\omega_i,\omega_o,x)=\frac{\rho_d(x)}{\pi}+\rho_s\frac{e^{-tan^2\delta/\alpha^2}}{4\pi\alpha^2\sqrt{(\omega_i\cdot n(x))(\omega_o\cdot n(x))}}$###
由于照明的整体强度和表面反射率之间固有的尺度不确定性,SVBRDF-net只能估计相对漫反射率$\rho_{d_{rel}}$
与相对镜面反射率$\rho_{s_{rel}}$,假设平均漫反射率固定$(avg(\rho_d(x))=0.5)$,则相对漫反射率与镜面反射率可以由平均漫反射率表示:
$\rho_{d_{rel}}(x)=\rho_d(x)/s$, $\rho_{s_{rel}}=\rho_s/s$
其中$s=2avg(\rho_d)$。
为了稳定性,作者还使用对数相对镜面反射系数$(\rho_{s_{log-rel}}=log\rho_{s_{rel}})$以避免SVBRDF-net中镜面反射分量的巨大参数值。此外,为了使表观预测误差分布更均匀,同样对镜面粗糙度做了对数处理$(\alpha_{log}=log\alpha)$
SVBRDF-net由分来的两部分网络结构组成:
1. 均匀镜面反射部分(相对对数镜面反射率与对数镜面粗糙度)
2. 空间变换的漫反射部分(相对漫反射率与表面法向量)
网友评论