毕业照:基于百度API的人脸融合实现
共 1554字,需浏览 4分钟
·
2021-06-07 11:21
背景
故事要从学校要求每人一张单人学士服照片说起,大叔今天周五下个早班后,便寻思着这个事情怎么弄,早就没有学士服在身边了,如何把自己那帅气的脸Copy到学校给的模板中,想想自己也没有那么高超PS水平。心想花一杯奶茶钱去找会美图的同学修一下,但是出于编程的爱好,便想去度娘和论坛上看看有没有同学用Demo去实现了,于是乎,就有了以下的故事情节.....
寻找
在百度的过程中,发现确实有同学实现了,比如有采用华为ModelArts去实现的
在微信开放社区提供的云毕业照功能
更有人在CSDN里面分享采用深度伪造(Deepfake)技术去实现换脸的
比较
而大叔在打算站在巨人的肩膀上用其中一种方法实现,但是想到开发环境的搭建,网友对于华为ModelArts的实现分享中,采用的是python,目前大叔的电脑里面木有;而深度伪造(Deepfake)技术和微信开放社区之前大叔也是没有接触过,咋办?对了,还有百度AI开放平台,网址为:
https://ai.baidu.com/
开始干活
在登录进去百度AI开放平台后,可以直接在搜索框中搜索“人脸融合”
点击进去之后,你就会看到这个
点击查看技术文档,你就可以看到该功能的API对于各种语言的调用方式
看到这里,你可能对于上一张图所显示的费用使用方式望而却步,大叔可以负责的告诉你,像百度这类的大厂,对于绝大多少的API调用都是有免费次数的,而你的功能一般在免费次数消耗完之前就实现,因为你最多调用几次,完善一下Demo你就把功能实现了,以下是大叔目前的调用次数
实现思路
百度人脸融合API调用思路
1、查看官方技术文档,选择开发语言了解access_token、AK、SK的获取方式
2、搭建开发环境。(大叔用的是C#,环境上引用一些库就OK了)
3、按照相关格式提供参数,比如说该API要求的图片上传大小限制在1920x1080以下,不然程序获取结果的时候,数组中的结果长度值为0
程序分享
大叔后期会把持续更新在自己的CSDN博客上,有兴趣的同学可以去跑一下持续,看看效果,或者直接点击原文链接,看一看其他Demo。
大叔在CSDN的文章链接,持续更新中
效果图片
学校给的单人学士服模板(模板图片)
网上找到一张帅气的胡歌照片(素材)
经过百度人脸融合API实现的学士服胡歌(最后的效果图)
翻车现场
我瞅着最后出来的胡歌效果图那么好看,也就给自己整了一张,结果,翻车了。。。。
可能是模板图片的脸太大了。。
结尾
今天虽然实现了这个小功能,这个算法很牛,但是不是我写的,因为我依旧是站在百度和其他网友的肩膀上去实现的,这就类似于自己现在的工作,还是在前辈们的框架下修修改改,什么时候我也能实现这么一个牛气冲天的Demo,害,继续熬夜肝代码。