真人女神换脸二次元女神

最近做一个测试,用到了人脸landmark检测。用到了谷歌开源的mediapipe, 使用系统是windows10,又不能虚拟机。在windows下研究编译了很久,才搞定。其中有个人脸稠密点检测facelandmark, 测试速度很快而且精度也说的过去。目前的开源人脸swap方案都是基于深度学习的,需要大量训练时间,比如deepfake。于是我想采用以前的三角仿射方案做个换脸。虽然我这周映射方案一眼就能看出融合,但作为娱乐问题不大。毕竟不需要训练。

以前用的是dlib的68个点的方案,只是做眉眼以下部分。这次用谷歌这个方案,脸部大部分区域都覆盖到了。对换脸来说体验度也会大大提升。简单地说就是设置原始图和要替换的脸。这两个人脸型越接近,最终效果越好。

采用谷歌的方法首先生成特征点,看一看结果。然后把特征点保存下来。进行三角剖分。三角仿射首先要确定三角形结构。标准做法就是三角剖分,依据维诺图做成delauny三角。这位博主讲的很好,大家参考就行了,地址

生成三角剖分,opencv有实现的方案。这位博主写的很完善,请大家参考。地址
我是一个很懒的人觉得opencv代码太多了,还要写保存代码,太麻烦了,就用matlab做了。

points = load("pts");
x = points(:,1);
y = points(:,2);
tr=delaunay(x ,y);
tr=int32(tetr);
t = [tr(:,[1,2]); tr(:,[2,3]); tr(:,[1,3])];
[t,j,j] = unique(sort(t,2),'rows');

可以直接生成delauny三角,而且可以排序剔除掉重复的。反正只用生成一次。生成的是三角的索引,结果保存下来就可以了。
然后进行仿射变换,把要进行仿射的三角变化过去就行了。请参考opencv写的,地址
都仿射变化之后可以生成结果。速度基本也能令人满意。
变换结果
大家还可以看

真人女神实时换脸二次元女神


以后我把详细的实现方法和大家分享。

另外,我看了一下face++的收费人脸稠密点检测,准确度很高。我建议把特征点检测换成face++的,对各种侧脸卡通形象都能准确检测,效果应该会更好。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值