准备工作
在我们准备搭建人脸融合小程序之前,首先需要完成一些准备工作。大家可以将其理解为,我们现在要来做菜了,做菜之前要买一下做菜的原材料啦,洗一下锅洗一下菜啥的,耐心准备下~
1、了解人脸融合是什么东西
在不提任何概念之前,我们提起人脸融合,想到的是啥?按腾讯云官网文档的概念,人脸融合通过快速精准地定位人脸关键点,将用户上传的照片与特定形象进行面部层面融合,使生成的图片同时具备用户与特定形象的外貌特征。
翻译一下就是,将用户的图跟素材图人脸关键点融合,生成兼具这两张图特征的新的人脸图。
实际融合能衍生有很多玩法,比如cosplay,比如试衣,比如生成专属表情包等等。那么今天我们简单选择表情包这个主题,做一个小程序,看看从0开始的融合小程序,究竟怎么搞。
2、腾讯云人脸融合服务怎么回事
确定了要搞个融合小程序,那么融合算法能力咧?腾讯云提供人脸融合的能力,就它了。
在使用腾讯云人脸融合接口之前,我们来仔细瞅瞅这个官方文档
总结一下,使用腾讯云人脸融合服务,要做好以下准备:
注册腾讯云账号、做好实名认证
首先登陆腾讯云控制台,进行登陆注册。腾讯云注册方式包括以下几种:
注册方式 | 描述 |
---|---|
微信扫码快速注册 | 使用您的微信扫码快速注册腾讯云,后续您可以使用微信扫码登录腾讯云,方便您的后续管理和使用。 |
邮箱注册 | 使用邮箱注册腾讯云,方便企业客户维护账号。 |
QQ 注册 | 使用您已有的 QQ 帐号注册腾讯云,直接用 QQ 帐号快捷登录腾讯云。 |
微信公众号注册 | 使用您已有的公众号注册腾讯云。 |
使用腾讯云人脸融合要求先进行实名认证:
类型 | 适用对象 | 账号归属 | 支持的认证方式 | 实名区别 | 操作指引 |
---|---|---|---|---|---|
个人实名认证 | 个人 | 个人 | 微信认证、QQ 认证、人脸识别认证 | 可参加个人类运营活动、无法申请增值税专用发票 | 个人实名认证指引 |
企业实名认证 | 企业、政府、事业单位、学校、组织等 | 企业 | 微信公众号认证、充值认证、企业对公打款认证 | 可参加企业类运营活动、可以申请增值税专用发票 | 企业实名认证指引 |
开通人脸融合服务
登陆人脸融合控制台,点击开通服务:
创建活动
腾讯云人脸融合服务是按活动维度展开的,调用方(我们)需要告诉云的那一边,我们是哪个活动,用的哪张图片跟这个活动下的哪张素材融合
笔者简单创建了个活动,发现有好几个注意的地方:
- 算法版本,指这个活动用的算法版本,我们先选择官方推荐Re-Invent
提供两种算法
在创建活动时选择,测试阶段支持在控制台的活动列表进行切换,但请您注意,一旦购买授权将无法切换算法。
Re-Invent 版:我们推出的新版本,融合相似度上表现较好,支持侧脸自动矫正。
Re-Define 版:线上运行时间较长、较为成熟的版本,性能稳定出色。
- 基础QPS、素材额度,指当前这个活动的基础QPS以及素材图片的上限值
素材额度:指单个活动拥有的素材数量,在创建活动时选择,可选10/30/1000张,默认为10张。 素材额度的作用:对应的是技术授权费套餐类型,素材额度与授权费套餐的关系如下:
授权费套餐 | 资源包 | 固定 QPS | 素材额度 | 素材可更新时间 |
---|---|---|---|---|
套餐一 | 1万次 | 10QPS | 10张 | 30天 |
套餐二 | 30万次 | 50QPS | 30张 | 365天 |
套餐三 | 500万次 | 500QPS | 1000张 | 365天 |
总结来说就是笔者创建的这个活动,最多只能创建10张素材,并且只支持10的并发数,融合算法用的是Re-Invent版。需要注意的是,在未购买活动授权之前,活动始终只有1
的QPS,并且仅支持500
次免费调用,因此在调试阶段要把握好用量了~
创建素材
多年保存的表情包派上用场,简单添加完素材图片后,观察下,陈列的信息基本都是素材图片的基础信息。有个神秘的按钮引起我的注意:【调节参数】
这个其实是在线试用人脸融合的入口,我们可以在控制台请求人脸融合,并调整融合参数实时查看调整的效果
控制台上上传输入图,点击【生成结果】,超哥拔你WIFI表情包就GET了,可以不可以!
- 两个算法效果都能在弹窗展示,方便大家选择自己中意的算法版本
- 在线调整融合参数,方便大家确定适合自己业务的融合参数,并保存下来
- 支持选择上传多脸图,或上传多达三张输入图,实现多脸融合:
于是温碧霞、朱茵、杨幂的撒娇三连表情包GET!可以不可以!
素材图片审核
在实际接口调用时,素材图片状态必须是【审核成功】的状态,如果活动上线时间有要求,记得提前准备好素材
审核时效:上传后将于1-3个工作日内审核,政治/明星/名人等素材照片需提供版权证明。
3、API接口又怎么玩?
在控制台试用的效果不错,现在我热血沸腾,可以开搞了!然后呢?
然后先压制住内心的激动,前面都是在控制台利用交互点点鼠标完成了融合操作,现在我们先来看看,API的人脸融合接口要怎么用咧~
当前人脸融合提供两个接口,分别支持单脸融合与选脸融合,两个接口的出参入参不尽相同,我们一个一个来看:
人脸融合相关接口
接口名称 | 接口功能 |
---|---|
FaceFusion | 人脸融合 |
FuseFace | 选脸融合 |
FaceFusion
俗称单脸融合:
总结一下入参:
- 腾讯云接口公共参数
- 活动ID、素材ID,告诉云我用哪个活动,哪张素材图
- 其他信息:输入图,这个图拿来跟素材图融合;返回的图片格式,url还是base64;输入图是否需要鉴政
单脸融合只涉及一张输入图、一张素材图,按要求填入参数即可。
FuseFace
俗称选脸融合、又名多脸融合:
入参与单脸融合多有相似,下面总结一下两者不同的地方:
- MergeInfos.N:输入信息数组
用上面多脸融合的例子来说,API传参的方式如下:
代码语言:javascript复制MergeInfos = [{
Image: '双人图',
InputImageFaceRect: { // 温碧霞的脸
X: 1,
Y: 1,
Width: 50,
Height: 50
},
TemplateFaceID: '300215_2_1'
}, {
Image: '双人图',
InputImageFaceRect: { // 朱茵的脸
X: 2,
Y: 2,
Width: 50,
Height: 50
},
TemplateFaceID: '300215_2_2'
}, {
Image: '三人图',
InputImageFaceRect: { // 杨幂的脸
X: 3,
Y: 3,
Width: 50,
Height: 50
},
TemplateFaceID: '300215_2_3'
}]
通过输入数组,确定好每个融合组,以达到多脸融合的效果。
- InputImageFaceRect
上面的输入数组告知了云我们想要哪两张脸作为组合融合,但是前提是需要知道我们上传的图的目标人脸的人脸框信息(X, Y, Width, Height),手无寸铁我们咋知道咧?~
按官方推荐,我们可以使用腾讯云人脸检测接口协助获取人脸框信息
因此,我们实际使用选脸融合之前,要先用人脸检测接口,获取目标人脸框信息,再将此作为入参,填入输入数组内,继而完成人脸融合请求
人脸检测接口入参较为简单,大家可以看官方文档使用,这里说一下出参:
人脸融合需要的人脸框信息集中在FaceInfos里,直接使用即可
- FuseProfileDegree、FuseFaceDegree
素材的融合参数,不填默认用控制台保存的值
4、动手前先设计设计
好比做菜前,我们把原材料都准备好了洗干净了,为了让整个做菜过程更高效更清晰,我们可以先把菜谱设计好~
我们已经充分了解腾讯云人脸融合API接口是怎么使用的,结合微信小程序开发,笔者简单梳理了下整个融合小程序简易的系统架构图:
- 腾讯云API提供封装好的SDK,我们可以直接在小程序端使用
- 由于使用腾讯云API需要提供用户的API密钥,这是构建请求的重要凭证,强烈不建议放到端上直接使用,有泄漏风险。因此发起腾讯云API请求需要放到程序后端实现,这里我们选择微信小程序的云函数实现
最后的最后,再来啰嗦一下,扪心自问,NodeJS环境搭好了吗(戳)?微信小程序开发工具下载好了吗(戳)?
材料都准备好了,就可以开始下锅了!
不知不觉,准备工作就写了这么多,着实有点吓人,不过仔细阅读,其实整个准备跟理解过程都不算复杂。实战部分就放在下一篇文章,有兴趣的同学可以跟上~