超简单使用Python换脸实例

  

换脸!   

这段时间,deepfakes搞得火热,比方说把《射雕英雄传》里的朱茵换成了杨幂,看下面的图!毫无违和感!

  

超简单使用Python换脸实例

  

其实早在之前,基于AI换脸的技术就得到了应用,比方说《速度与激情7》里面的演员保罗。沃克,由于发生意外,

  

后期的视频都是由他的兄弟完成拍摄,然后再对其换脸,最终也就是我们影院看到的效果。

  

当然,也有人把这项技术应用在其他的领域,例如把某种电影的女主换成了盖尔。加朵(《神奇女侠》的扮演者),,
  

  

超简单使用Python换脸实例

  

这真的是对“技术是一把又刃剑”阐述的十分到位…

  

关于deepfakes这里不再详细说明,好吧,小编承认是来蹭热度的…

  

下面来介绍一种对照片的简单换脸方法。

  

本篇介绍的换脸方法需要借助脸+ +,关于脸+ +的API,大家可自行查看说明文档,都比较简单,小编在这里就不做具体

  

说明了:

  

文档地址:https://console.faceplusplus.com.cn/documents/20813963
  

  

        pip安装要求   pip安装simplejson   之前      

  

脸+ +网址:https://console.faceplusplus.com.cn/dashboard
  

  

  

调用的库
  

        进口的要求   进口simplejson   进口json   进口base64      

第一步,获取人脸关键点,代码如下说述:
  

        def find_face (imgpath):      打印(“寻找”)      http_url=' https://api-cn.faceplusplus.com/facepp/v3/detect '      data=https://www.yisu.com/zixun/{“api_key”:“自己申请的,   “api_secret”:“自己申请”,“image_url”: imgpath、“return_landmark”: 1}      文件={" image_file”:开放(imgpath, rb)}=响应请求。帖子(http_url, data=https://www.yisu.com/zixun/data,文件=文件)      req_con=response.content.decode (utf - 8)      req_dict=json.JSONDecoder () .decode (req_con)      this_json=simplejson.dumps (req_dict)      this_json2=simplejson.loads (this_json)      面临=this_json2['脸']      list0[0]=脸      矩形=list0 (“face_rectangle”)      #打印(矩形)      返回矩形      

第二步,换脸,其中图片的大小应不超过2 m,代码如下所述:
  

        #数字表示换脸的相似度   def merge_face (image_url_1 image_url_2 image_url,数字):      ff1=find_face (image_url_1)      ff2=find_face (image_url_2)      rectangle1=str (str (ff1['高级'])+”、“+ str (ff1['左'])+”、“+ str (ff1[“宽度”])+”、“+ str (ff1['高']))      rectangle2=str (ff2['高级'])+”、“+ str (ff2['左'])+”、“+ str (ff2[“宽度”])+”、“+ str (ff2['高'])      url_add=" https://api-cn.faceplusplus.com/imagepp/v1/mergeface "      f1=开放(image_url_1 rb)      f1_64=base64.b64encode (f1.read ())      f1.close ()      f2=开放(image_url_2 rb)      f2_64=base64.b64encode (f2.read ())      f2.close ()      data=https://www.yisu.com/zixun/{“api_key”:“自己申请”,“api_secret”:“自己申请的,   “template_base64”: f1_64,“template_rectangle”: rectangle1,   “merge_base64”: f2_64,“merge_rectangle”: rectangle2,“merge_rate”:}=响应请求。帖子(url_add, data=https://www.yisu.com/zixun/data)      req_con=response.content.decode (utf - 8)      req_dict=json.JSONDecoder () .decode (req_con)      结果=req_dict(“结果”)      imgdata=https://www.yisu.com/zixun/base64.b64decode(结果)      文件=开放(image_url,“世界银行”)      file.write (imgdata)      file.close ()      

测试         def测试():      image1=r F: \ GXT.bmp”      image2=r F: \ MSC.bmp”      形象=r F: \ MEG.bmp”      merge_face (image2 image1,形象,90)      

测试结果:

  

左图:关某某

  

右图:马某某

  

中图:合并

  

超简单使用Python换脸实例“> <h2 class=超简单使用Python换脸实例