关于Ai换脸开源项目roop源码的研究
前几天的折腾中,终于把基于英伟达 GPU
的 CUDA
计算引擎推理模型环境搭建起来,
相比 CPU
一下子快了不少。
在解读 roop
项目源码时,发现它其实引用了一个开源人脸识别库 InsightFace
,
查资料发现背后的团队竟然是国人主导的,并且这个开源项目在github上的关注度非常高,
突然很惊讶,原来国内的人脸识别技术还是全球领先的。
分析源码,整个换脸过程大概分为几个步骤:
- 将视频按帧数要求切成图片
- 对每一张图片进行处理:检测出其中的人脸及其特征,等待程模型推理;在该阶段使用经典的面部处理库insightface进行面部的检测和特征识别;
- 发现存在的源脸和需要更换的目标脸后,针对每一帧进行换脸模型(Inswapper128)的推理,并且引入图像处理(插值&缝合边缘的高斯模糊&…)和面部修复模型(GFPGAN/CodeFormer)来提高最终产生的图像质量;
- 用ffmpeg工具命令将换脸后的图片合成成视频;
……