欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

程序员文章站 2022-04-16 17:00:36
...

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

这次花了点时间,将百度智能云里面的人脸识别功能与python结合,进行了一场实验。结果还是蛮有成就感的,过程也挺简单,不会复杂,说不定,你就能融合出你孩子的长相了耶~ 下面我们一起敲起键盘吧!

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

前期预备

百度AI开放平台

账号注册

用你的百度账号登陆ai.baidu.com,百度AI开放平台。

然后创建一个人脸识别应用,
用Python玩人脸融合,想知道你未来孩子的长相?(附源码)
用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)
你就会得到API Key 和 Secret Key,这我们等会代码里要用到,
用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

因为每个账号的调用次数都是有限的,只能免费500次,且玩且珍惜。所以你们还是自己申请的好。
用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

读接口开发文档…

文档地址:https://ai.baidu.com/docs#/Face-Merge/6961f699

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

上面为注意事项,就是post要带header,图片要是base64,还有请求地址等说明,文档还是要仔细看的,等下就会少点错误。

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

上图是说明你要post过去的数据,比如要template模板图片和target目标文件两张图片,你也可以设置图片类型,图片质量等

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

上图就是说你post过去后,会返回哪些东西的说明。

OK,看完了文档,我们来捋一下思路

思路

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

开始Coding…

一点点来开发,不要急于求成:

导入模块

    基于经验,我们肯定要用到requests模块,json模块也要用,然后就是base64模块,因为我们要处理图片。这些模块我们都有了,所以直接导入:

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

获取Token

 Token就是令牌,你要用接口需要取得它的认可,就是我们要用到之前申请的那些key来获取令牌:

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

获取图片Base64

    base64是图片的一种格式,所以要先打开图片,然后转成base64编码才能用

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

保存base到本机

因为文档里面告诉我们,返回的图片是base64,所以这里我们还要把base64转成你可以看到的图片。所以:

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

注意:代码文件也放在这个文件夹里面。

图片融合

    接下来就是最主要的功能了,

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

功能测试

在开始调试时,要一点点来测试,不然你那500次调用次数根本不够你用,等你代码写好了,对不起,你的次数用完了,如下图,你还玩个蛋蛋呀!
用Python玩人脸融合,想知道你未来孩子的长相?(附源码)
用Python玩人脸融合,想知道你未来孩子的长相?(附源码)
为了测试,我从网上下了两张图片,呃!

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)
下面是我电脑文件夹,注意图片的格式

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)
然后写几行代码,然后运行一下

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)
出现Done!说明代码成功了!我们打开文件夹看看有没有“done.jpg”这张图

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)
用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

python完整代码

请发送【源码】,今天文件名为“face.zip”。

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)
用Python玩人脸融合,想知道你未来孩子的长相?(附源码)

↓ ↓ ↓ 加小哥哥一起玩耍吧 ↓ ↓ ↓

用Python玩人脸融合,想知道你未来孩子的长相?(附源码)