Deep3DFaceRecon_pytorch icon indicating copy to clipboard operation
Deep3DFaceRecon_pytorch copied to clipboard

重建53215个点的face mesh

Open zyqlalala opened this issue 4 years ago • 4 comments

您好,我注意到您源码里训练时用的BFM model是经过转化以后只有35709个点的BFM model

我根据'BFM_exp_idx.mat'从原始BFM09(有53490个顶点)中提取了53215个点并且与“Exp_Pca.bin"中的表情基进行了整合,最终得到了'bfm_53215.mat'(相对于您用的35709个点的模型,增加了脖子和耳朵,验证过其拓扑结构也没有问题)。

我注意到您在根据回归出来的coeff来重建出个性化人脸模型时,进行了recenter,具体如下(详情可见/model/bfm.py): image

想问若我想使用我得到的'bfm_53215.mat'来重建出含有脖子和耳朵的个性化人脸模型,是否也需要recenter?

若recenter以后,在相同的coeff情况下,得到的含有脖子和耳朵的人脸模型再去掉脖子和耳朵以后 跟 直接将coeff作用于35709个点的BFM model得到的个性化人脸模型,他们的三维点坐标是不一样的。我个人认为的原因是在recenter是求平均值时,因为bfm_53215的meanshape的平均值与bfm_35709的meanshape的平均值不同。

zyqlalala avatar Oct 25 '21 13:10 zyqlalala

That is because when the authors compute the shape, they discard the mean expression from 01_MorphableModel.mat, but do not use the counterpart in Exp_Pca.bin.

https://github.com/sicxu/Deep3DFaceRecon_pytorch/issues/36

lhyfst avatar Nov 08 '21 07:11 lhyfst

您好,我注意到您源码里训练时用的BFM model是经过转化以后只有35709个点的BFM model

我根据'BFM_exp_idx.mat'从原始BFM09(有53490个顶点)中提取了53215个点并且与“Exp_Pca.bin"中的表情基进行了整合,最终得到了'bfm_53215.mat'(相对于您用的35709个点的模型,增加了脖子和耳朵,验证过其拓扑结构也没有问题)。

我注意到您在根据回归出来的coeff来重建出个性化人脸模型时,进行了recenter,具体如下(详情可见/model/bfm.py): image

想问若我想使用我得到的'bfm_53215.mat'来重建出含有脖子和耳朵的个性化人脸模型,是否也需要recenter?

若recenter以后,在相同的coeff情况下,得到的含有脖子和耳朵的人脸模型再去掉脖子和耳朵以后 跟 直接将coeff作用于35709个点的BFM model得到的个性化人脸模型,他们的三维点坐标是不一样的。我个人认为的原因是在recenter是求平均值时,因为bfm_53215的meanshape的平均值与bfm_35709的meanshape的平均值不同。

recenter的目的是为将人脸的中心改为(0, 0, 0),我们训练的网络的pose是基于“bfm_35709”的空间位置预测得到,所以将回归得到的系数直接用于“bfm_53215”,会出现pose不一致的问题,解决办法也较为直接,即利用“ bfm_53215”减去“bfm_35709”的中心即可。

sicxu avatar Nov 15 '21 10:11 sicxu

您好,我注意到您源码里训练时用的BFM model是经过转化以后只有35709个点的BFM model

我根据'BFM_exp_idx.mat'从原始BFM09(有53490个顶点)中提取了53215个点并且与“Exp_Pca.bin"中的表情基进行了整合,最终得到了'bfm_53215.mat'(相对于您用的35709个点的模型,增加了脖子和耳朵,验证过其拓扑结构也没有问题)。

我注意到您在根据回归出来的coeff来重建出个性化人脸模型时,进行了recenter,具体如下(详情可见/model/bfm.py): image

想问若我想使用我得到的'bfm_53215.mat'来重建出含有脖子和耳朵的个性化人脸模型,是否也需要recenter?

若recenter以后,在相同的coeff情况下,得到的含有脖子和耳朵的人脸模型再去掉脖子和耳朵以后 跟 直接将coeff作用于35709个点的BFM model得到的个性化人脸模型,他们的三维点坐标是不一样的。我个人认为的原因是在recenter是求平均值时,因为bfm_53215的meanshape的平均值与bfm_35709的meanshape的平均值不同。

您好,我遇到了同样的问题,可否发我一下您生成的bfm_53215.mat来作为参考和验证

FlightZCB avatar Dec 07 '21 03:12 FlightZCB

您好, 请问,我可否进一步缩减BFM model的顶点数,来训练获取一个顶点数更少的人脸模型结果? 谢谢

bin1guo avatar Jul 13 '22 10:07 bin1guo