论文提出了一个由3d合成侧脸数据的方法,由于最近项目需要,便尝试了该方法。在此记录一些东西。
作者给出的数据合成demo中使用的是basel face model(BFM)的人脸3d重建参数,里面用到了pose参数,shape参数。为了合成出自己的数据,我们需要先获取这两个参数。获取这两个参数的方法挺多的,我这边尝试的几个方法分别为:运行作者给定3d重建demo(3DDFA),或者用High-Fidelity Pose and Expression Normalization for Face Recognition in the Wild中给出的demo(HPEN)生成。接下来说一下这两个方法,这两个方法都要求68个人脸特征点。
1、运行3DDFA。直接按照demo里面的说明,替换自己的数据,然后运行。这里面的问题在于,生成的3d模型分辨率是100*100,但在数据合成demo中我们希望合成原始图片的分辨率。因此在获得roi_img(假设400*400)后可以将其保存下来(还要保存68个特征点,要减去bbox左上点的x),然后将3DDFA生成的pose参数中的x,y,z,f参数都乘上400/100=4(下面的代码)。这个方法的一个问题是,由于3DDFA没有形状约束,其重建出来的3d face可能质量没那么高,这会影响后面的侧脸合成。
Pose_Para(4) = Pose_Para(4)*scale