3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记

该文章直接预测的是平均mesh的坐标偏差,相机参数和纹理uv图。里面有各种损失函数,很值得学习。

这篇论文还有个有意思的点,论文用的训练数据是没有对应的3D模型的(也就是一张图片没有对应的3D模型)。训练过程有点像3DMM的重建过程,即先估计3D模型,将模型渲染到2D;然后比较渲染的图片和原始图片的差异,以更新模型的参数。要将这个过程应用在神经网络中,由于渲染是不可导的,因此需要解决渲染这一步骤的求导问题。这个问题的解决可以看论文:Neural 3D Mesh Renderer

3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记

上图是模型的训练过程:图片经过encoder抽取出特征,然后预测相机参数、变形参数(平均模型的顶点坐标差值,3DV=ΔV+V¯())和纹理流;最后利用mask(前景背景掩蔽图)、特征点和纹理误差来更新网络参数。

损失函数

特征点

3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记
xi 是第i个训练样本真实特征点,π~i(AVi) 是对应的预测特征点。其中πi 是相机参数。论文假设特征点可以由3D模型的其他顶点线性相加计算出来,因此有AVi。A为一个线性方程的系数矩阵。

掩蔽

3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记

Si 为样本i的掩蔽图,R(Vi,F,π~i) 代表利用3D mesh M=(V,F),F是三角面片和相机参数π 渲染出来的掩蔽图。

相机参数

3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记

惩罚项

1、拉普拉斯网格平滑

3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记

LV是拉普拉斯网格平滑中的拉普拉斯坐标,该项的目的是使LV=0,也就是令顶点的拉普拉斯坐标等于0。几何意思是使顶点i的坐标等于其相邻顶点的均值。

2、变形参数正则化

3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记
目的是防止变形过于夸张,并且使得变形结果更有意义。

3、特征点系数矩阵约束

Lvert2kp=1|K|kvAk,vlogAk,v

这是个交叉熵损失函数,目的是使每个特征点对应的系数Ak 应该是一个one-hot向量。

纹理

论文不是直接预测纹理图,而是预测纹理图中每个点在原始图片中的位置。3D模型中某一顶点的纹理,一般直接通过其uv坐标在纹理图中取得,论文的这个方法是先从预测出来的纹理流(矩阵)中获取x,y坐标,然后该顶点的纹理根据x,y在原始图片中得到(可以用双线性采样)。

3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记

Si 是掩蔽图,Ii 是输入图片R(Vi,F,π~i,Iuv) 是渲染出来的图片。

上面的这个损失函数只能计算物体前面可见的纹理流,而对于3D mesh的背面就无法计算。因此作者还提出了如下损失函数:
3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记
其中G是双线性采样,DSi 是the distance transform field of the foreground mask(不知道啥意思。。。。),Fi 是纹理流。