Realtime Performance-Based Facial Animation 论文阅读

Realtime Performance-Based Facial Animation 论文阅读_第1张图片

中心思想: 创建一个仅使用Kinect设备的实时人脸驱动的系统

备注:这是一个伪实时,因为personal bsoffline 创建的

Realtime Performance-Based Facial Animation 论文阅读_第2张图片

文章的主要流程如上图

  1.   Kinect获取RGB+depth图片
  2.   使用offline获取的bs和先验概率去监督生成bs系数,为了时序更稳定加入了时域一致性监督
  3.   获得系数之后,使用系数驱动其它数字人

文章难点:

  难点1: personal bs 制作

  难点2: BS系数的先验分布和时域监督

  难点3:系数的优化

Realtime Performance-Based Facial Animation 论文阅读_第3张图片

难点1: personal bs 制作

  1.   首先固定被采集的表情
  2.   使用Kinect采集只有head pose运动,表情不动的人头数据,使用去躁方法生成accumulated scans
  3.   使用bfm99 fit 中性scan 得到neutral face mesh作为模板(T)
  4.   根据采集的不同表情,使用 non-rigid icp T变形为相同拓扑的不同表情mesh
  5.   使用example based facial rigging方法,输入上述带表情的mesh 和 一套确定的blendshapes,生成这个人特有的一组blendshapes

备注:

  1. Blendshapes 就是 在中性无表情mesh的基础上产生不同单个表情的变化而生成的一组用来表达表情的meshes
  2. 原则是这些单个表情的组合应该能够表达出人脸所有面部肌肉的运动

难点2:  先验制作和时域监督 (这部分数学模型太多,没看懂)

  1.   设置一个滑动窗
  2.   在滑动窗内,在已知前面系数的概率分布同时,结合当前帧的depthtexture信息计算当前帧的结果

难点3: 系数优化

系数优化总共三个部件

  1.   几何监督;可以理解为mesh点和depth点云的loss监督
  2.   图像监督;可以理解为,在得到personal bs的同时,还有对应的纹理,在获取当前帧人脸的pose后,可以将人脸投影到图像上,获取像素值的loss
  3.   先验监督;就是根据滑动窗内前几帧的结果获取当前帧的分布符合整体分布

备注:

  1. 图像监督没有代码操作过
  2. 先验监督,只使用过pca基的奇异值进行监督

我不会的点

  1.   多帧depth生成accumulated 3d model;感觉类似kinect fusion
  2.   泊松融合 ; opencv操作是有的可以参考下一页
  3.   Non-rigid ICP 没有实际进行操作过,后续会更新
  4.   exampled based facial rigging后续会更新
  5.   loss中加入image监督;后续会更新
  6.   时域loss 滑动窗口滤波;后续会更新

part2---泊松融合

Realtime Performance-Based Facial Animation 论文阅读_第4张图片

  1. 自己理解(一句话解释泊松融合):
  2. 将前景图融入背景图中,并保持前景图内容平滑(和背景图片梯度一致/和前景与背景的组合结果梯度一致)和背景图的边界处一致

上图中变量:

  1. V是背景图g的梯度(已知)
  2. omiga是背景图上的融合区域
  3. omiga导数是背景图边界
  4. f是融合后mask内像素的表征
  5. f*是融合后mask外像素表征

参考论文/链接

[1] Weise, Thibaut, et al. "Realtime performance-based facial animation." ACM transactions on graphics (TOG) 30.4 (2011): 1-10. 

[2] Poisson Image Editing

[3] 从泊松方程的解法,聊到泊松图像融合 - 知乎

你可能感兴趣的:(三维人脸重建,图形学)