神器啊|想不想有一张明星脸,来看看用Python玩人脸合成
日期:2023-02-20 18:06:01 / 人气:165
如今,随着技术的不时提高,“变脸”技术不再是四川悲剧的“独门武功”。运用机器学习的办法,我们异样可以完成人脸“交融”。当然这里说的人脸交融指的是将两团体的人脸照片停止交融,至于交融的比例,要依照本人的爱好来定。人脸交融的效果我们先看视频。01变脸视频,一睹爲快封闭观看更多更多正在加载正在加载加入全屏视频加载失败,请刷新页面再试 刷新视频概况上面小编就率领大家从以下的几个方面来打造一款向上图所示的人脸辨认软件。02中心原理引见1).首先是人脸辨认的原理引见要停止人脸的交融,且交融后两团体脸的地位应该大体分歧,这要如何才干做到呢?首先便是人脸的检测,只要检测到了人脸,才干停止接上去的打工。人脸的检测,我们采用的是Dlib函数库,协助我们停止人脸的检测。如下图所示:失掉人脸的地位后,接上去就是关于人脸的关键点的定位,什麼是关键点的定位呢,说的浅显一点,就是确定图片中人脸的关键特征的地位,比方眼睛,嘴巴,鼻子的地位。而这些关键点又被称爲Landmark。2).如何检测这些关键点呢这里又应用到了Dlib库,Dlib库爲我们提供了68个标志点的Dlib官方人脸辨认模型,用于构建Dlib的特征提取器,协助我们停止关键点的提取。提取效果如下图所示:有了关键点,相当于我们有了两张脸的数据,接上去我们将针关于这些关键点停止交融,交融的公式代码如下所示: points = (1 - alpha) * np.array(points1) + alpha * np.array(points2)其中alpha是我们的交融系数,而points1和points2辨别代表两张图的关键点,points表示关键点交融的后果。接上去便是对points运用delaunay算法,这个算法将前往一个三角形列表。而至于效果则如下图所示:由上图可以看出,两张图中的三角形抓取了近乎类似的区域。由下面我们可以失掉图片1中关键点的和图片2中关键点的集合,以及分解图片的关键点的集合。我们也由delaunay算法失掉了确定的三角形。接上去我们选取图片1中的三角形和分解图中的三角形停止仿射变换,也就是将图片1中的三角形对应的映射到分解图片当中去,关于仿射变换,我们可以运用opencv中的getAffineTransform函数停止。关于图片2,我们也采取异样的处置方式,最初是基于我们提供的交融系数,停止两张人脸的交融。局部源码如下图所示:上述的morph_faces函数,用来停止人脸的交融,首先是读取两张人脸图片,然后是获取两张人脸的关键点,辨别命名爲points1和points2并对points1和points2停止交融,命名爲points,然后应用morph_triangle函数对人脸停止仿射变换,完成两张人脸的对齐,并将对齐的两张人脸依照交融系数停止交融。03软件界面设计以上就是关于人脸交融的根本原理,接上去就是运转界面的搭建了。运转界面的搭建采用的是tkinter停止处置,首先是翻开文件夹,读入我们想要停止交融的人脸然后是输出交融的比例系数,假如我们遗忘输出交融系数的话,软件默许的系数便是0.5最初点击我们的“人脸交融”按钮,软件便会展现出人脸交融后的效果。这里需求留意的是,输出的两张图片大小不需求严厉的分歧,顺序会自动帮大家停止图片大小的调整。一共有4个按钮,散布是翻开图片1,翻开图片2,人脸交融和加入软件。两头有3张图片,前2张都是原始图片,最初一个分解图片,尤其是分解图片那里是关键中关键:这外面的main函数是调用后台的算法函数,然后再输出一个交融系数,就是entry.get()外面获取的用户输出的交融系数,普通默许是0.5,即两个脸一半一半。后台的算法会把两种图片应用cv2和dlib停止处置分解,然后生成一个新的分解图片最初我们用PIL库把图片读出来,然后显示在界面上即可。04看一下效果最初,小编找了几位明星,停止人脸的交融,效果如下图所示:

作者:币安比特币分分彩官网
新闻资讯 News
- 中国将在长江流域开展水生态评估...07-10
- [点评]“私拆档案袋”争议背后:推...07-10
- [采访]阿斯塔纳国际金融中心总裁...07-10
- 本地新闻要闻:北京60岁及以上常住...07-10
案例展示 Case
- 币安比特币分分彩平台03-03
- 币安比特币分分彩登录03-03
- 币安比特币分分彩注册03-03