F

face reconstruction

Update optim.cpp
yuhaiyang authored
6d256001
Name Last commit Last update
c++ Update optim.cpp
README.md Update README.md
main.py update

运行

创建data文件夹,将temp.npz,landmark_embedding.npz置于此文件夹下

  • main.py

    读取视频,并将调用dll,将bs系数存储为n * 51的bs.npy文件。

  • c++/optim.cpp

    c++程序入口--fit(doubleres, double landmark)的输入为(指向bs数据的double指针, 指向2*68的landmark的double指针),函数返回值为指向bs数据的double指针,包括模型创建,初始化和计算过程,具体细节可参考代码注释,

  • c++/AvatarModel.cpp

    模型构建和初始化

  • c++/AvatarOptimize.cpp

    求解问题--optimize(double* res)函数的输入为指向2*68的landmark的double指针,在函数内部完成bs参数优化。

bs基的顺序

            ['browDownLeft.obj', 'browDownRight.obj', 'browInnerUp.obj', 'browOuterUpLeft.obj',
             'browOuterUpRight.obj',
             'eyeBlinkLeft.obj', 'eyeBlinkRight.obj', 'eyeLookDownLeft.obj', 'eyeLookDownRight.obj',
             'eyeLookInLeft.obj', 'eyeLookInRight.obj', 'eyeLookOutLeft.obj', 'eyeLookOutRight.obj',
             'eyeLookUpLeft.obj', 'eyeLookUpRight.obj', 'eyeSquintLeft.obj', 'eyeSquintRight.obj',
             'eyeWideLeft.obj', 'eyeWideRight.obj',

             'jawForward.obj', 'jawLeft.obj','cheekPuff.obj', 'cheekSquintLeft.obj', 'cheekSquintRight.obj',
             'jawOpen.obj', 'jawRight.obj', 'mouthClose.obj', 'mouthDimpleLeft.obj', 'mouthDimpleRight.obj',
             'mouthFrownLeft.obj', 'mouthFrownRight.obj', 'mouthFunnel.obj', 'mouthLeft.obj',
             'mouthLowerDownLeft.obj', 'mouthLowerDownRight.obj', 'mouthPressLeft.obj', 'mouthPressRight.obj',
             'mouthPucker.obj', 'mouthRight.obj', 'mouthRollLower.obj', 'mouthRollUpper.obj', 'mouthShrugLower.obj',
             'mouthShrugUpper.obj', 'mouthSmileLeft.obj', 'mouthSmileRight.obj', 'mouthStretchLeft.obj',
             'mouthStretchRight.obj', 'mouthUpperUpLeft.obj', 'mouthUpperUpRight.obj', 'noseSneerLeft.obj',
             'noseSneerRight.obj']

文件下载

temp.npz

链接: https://pan.baidu.com/s/1T9BWbKGSg7aK7DH23bZw1g?pwd=rqah 提取码: rqah

landmark_embedding.npz

链接: https://pan.baidu.com/s/1jzYtO7-0FzkMab60n8U1vw?pwd=aacj 提取码: aacj