苏飞论坛
标题:
分享一个C#基于OpenCvSharp和DlibDotNet实现的人脸替换的完整源码
[打印本页]
作者:
米饭不能用了
时间:
2021-4-16 17:53
标题:
分享一个C#基于OpenCvSharp和DlibDotNet实现的人脸替换的完整源码
源图
(, 下载次数: 8)
上传
点击文件名下载附件
要替换的脸
(, 下载次数: 9)
上传
点击文件名下载附件
替换结果
(, 下载次数: 9)
上传
点击文件名下载附件
看不出来区别的去洗下眼睛
原理其实不复杂,先用DlibDotNet分别从两张图片中找出人脸关键点,然后用OpenCvSharp计算出凹包,最后用三角形变形将人脸覆盖上去,用opencv消除颜色差异,让覆盖后的人脸看上去没那么突兀。这个方案有一个问题就是新的人脸是完全覆盖的,如果源目标人脸的嘴巴是关闭的但是新的人脸嘴巴是张开的,那么替换后的结果嘴巴也是关闭的,如果跳过提取凹包这一步直接三角形变换替换就会让嘴巴看上去很奇怪,解决这个问题也有一个方案,就是先准备几张嘴巴张开程度不同的图片,然后在替换以前先识别出源目标嘴巴的状态(后续我再整理些嘴巴和眼睛状态识别的demo),使用不同的图片替换。这种方法比较适合处理视频帧。代码也是网上整理的,调试花了些时间,文件太大了传不了附件。。。,可以直接在
https://download.csdn.net/download/mifandeboke/16703776
下载,dll引用都处理好了,也编译到了debug里面,可以直接运行测试,晚点我找个网盘再传一份。
(, 下载次数: 8)
上传
点击文件名下载附件
欢迎光临 苏飞论坛 (http://www.sufeinet.com/)
Powered by Discuz! X3.4