前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教学从0到1搭建人脸融合小程序(上)

手把手教学从0到1搭建人脸融合小程序(上)

原创
作者头像
MIKADO
修改2019-12-26 12:39:17
5.3K0
修改2019-12-26 12:39:17
举报
文章被收录于专栏:YLH开发笔记YLH开发笔记

准备工作

在我们准备搭建人脸融合小程序之前,首先需要完成一些准备工作。大家可以将其理解为,我们现在要来做菜了,做菜之前要买一下做菜的原材料啦,洗一下锅洗一下菜啥的,耐心准备下~

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

俗称单脸融合:

总结一下入参:

  • 腾讯云接口公共参数
  • 活动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环境搭好了吗()?微信小程序开发工具下载好了吗()?

材料都准备好了,就可以开始下锅了!

不知不觉,准备工作就写了这么多,着实有点吓人,不过仔细阅读,其实整个准备跟理解过程都不算复杂。实战部分就放在下一篇文章,有兴趣的同学可以跟上~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备工作
    • 1、了解人脸融合是什么东西
      • 2、腾讯云人脸融合服务怎么回事
        • 注册腾讯云账号、做好实名认证
        • 开通人脸融合服务
        • 创建活动
        • 创建素材
        • 素材图片审核
      • 3、API接口又怎么玩?
        • FaceFusion
        • FuseFace
      • 4、动手前先设计设计
      相关产品与服务
      人脸融合
      人脸融合(Face Fusion)可将一张人脸图像对应的人脸特征融合到模板图像中的特定人物上,生成的图片既兼具指定图像和模板图像中的人脸特征,也保持了模板图像中人物的姿态、表情、动作等属性,支持单脸、多脸、选脸融合。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档