https://github.com/guanjz20/StyleSync_PyTorch
这个是号称最强的模型. 说百分之99拟合真人. 我们赶紧来学习.
首先权重和训练是不开源的. 我也只能尽可能的根据发布的代码来看能学到什么.
先说结论: 整体跟wav2lip百分之90相似. 都是视频--->图片--->抽取人脸landmark->每个图片根据音频生成新的图片->ffmpeg把图片变成视频即可.
==========首先我们看inference.py
parser.add_argument('--img_size', type=int, default=256)======这里跟wav2lip 的96比变大了. 所以结果demo看得出来明显比wav2lip生成的分辨率高很多
face, affine_matrix = restorer.align_warp_face(img.copy(), lmks3=lmk3_, smooth=True) ==========这里进行了人脸变形.
face = cv2.resize(face, (args.img_size, args.img_size), interpolation=cv2.INTER_CUBIC) 然后人脸resize
然后他还使用了mask
face_masked = face.copy() * img_mask 对人脸以外部分进行了保护.
pred = model(img_batch, mel_batch) # 预测新脸
pred = cv2.resize(pred, (x2 - x1, y2 - y1), interpolation=cv2.INTER_CUBIC) # resize回去
out_img = restorer.restore_img(img, pred, affine_matrix) # 逆仿射把人脸变回去.
#最后ffmpeg写入视频.
总结确实比wav2lip 加入很多细节处理. 预处理和后处理!!!!!可以借鉴!!!!!!!!!!
================stylesync_model.py 下面我们分析这个文件
audioConv2d audio也用了conv计算.
加入了一些噪音好像
mask_n_noise. 后续的有时间看论文再找找有用的吸收洗手.
======================结束======================