http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 11890|回复: 0

[源码分享] 分享一个C#基于OpenCvSharp和DlibDotNet实现的人脸替换的完整源码

[复制链接]
发表于 2021-4-16 17:53:49 | 显示全部楼层 |阅读模式
源图

persion.jpg
要替换的脸

face.jpg
替换结果

result.jpg
看不出来区别的去洗下眼睛

原理其实不复杂,先用DlibDotNet分别从两张图片中找出人脸关键点,然后用OpenCvSharp计算出凹包,最后用三角形变形将人脸覆盖上去,用opencv消除颜色差异,让覆盖后的人脸看上去没那么突兀。这个方案有一个问题就是新的人脸是完全覆盖的,如果源目标人脸的嘴巴是关闭的但是新的人脸嘴巴是张开的,那么替换后的结果嘴巴也是关闭的,如果跳过提取凹包这一步直接三角形变换替换就会让嘴巴看上去很奇怪,解决这个问题也有一个方案,就是先准备几张嘴巴张开程度不同的图片,然后在替换以前先识别出源目标嘴巴的状态(后续我再整理些嘴巴和眼睛状态识别的demo),使用不同的图片替换。这种方法比较适合处理视频帧。代码也是网上整理的,调试花了些时间,文件太大了传不了附件。。。,可以直接在https://download.csdn.net/download/mifandeboke/16703776 下载,dll引用都处理好了,也编译到了debug里面,可以直接运行测试,晚点我找个网盘再传一份。 1618564551_545102.png





1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-24 11:43

© 2014-2021

快速回复 返回顶部 返回列表