【名额有限】云开发AI拓展能力等你来体验!
这次来了个超厉害的新能力!
人脸智能打马赛克、人脸智能裁剪……各种操作,都能一步到位!
迫不及待想体验,戳链接:https://wj.qq.com/s2/3986990/e0ef/
还没有搞懂,继续往下看——
基于云开发+AI人脸检测与分析能力——任意给定一张图片,即可检测是否含有人脸,如有则返回人脸的位置、面部属性和质量信息。返回信息包括包括性别、年龄、表情、魅力、眼镜、头发、口罩、姿态及质量分.
具体会有什么不一样呢?

两个字,智能。
比如:
- 上传证件照照片大小不同,不需要手动裁减,就能实现自动裁剪图片的同时,保留你最美丽的面庞;
- 出去玩和小伙伴们拍合照背景中无关人员太多,不需要一个一个手动马赛克掉,就能自动打马——甚至还 会根据人物面部表示或是否戴眼镜等做出不同的处理方法;
纸上谈兵没意思,效果如何?让图中的漂亮美眉来试一试

经典案例:智能裁剪
1、场景解析
在应用开发中常有在媒体卡片中展示缩略图的场景,通常的做法是图片平铺 contain 方式展示,或缩放至撑满媒体容器。
但这样的做法存在致命缺陷——倘若图片是规格不一的未经预处理的原始图片,contain 方式极易导致图片主体内容被切割,甚至完全丢失。
试想专辑封面上的俊俏佳人们只剩下半张脸,又或是变身无脸男,简直不堪设想。而缩放的方式将导致图像失真导致人像矮胖矮胖的 ,呃...那画面太美我不敢看···

用上云开发AI人脸检测与分析能力以后

2、实现步骤
其实,解决这类问题的核心就在于——怎么获取合适的 【图像主体】 内容。
人工进行预处理当然是万无一失的办法,但面对数据巨大的内容信息,人力显然 cover 不住了。
此时求助于 AI 算法就是一个很好的选择。针对人像图片的场景,借助云开发· AI 人脸特征分析与检测能力,可以轻易得到图像中人脸的位置大小,从而在自动裁剪的过程中尽可能的选中人脸。
确定了方案,就可以开始动手了,整体的流程也很简单。
step 1 :一键部署AI后端能力
首先需要开通云开发的 AI 人脸特征分析与检测扩展能力,并完成授权。
之后选择一键部署即可将人脸检测能力的云函数部署至需要的环境中,之后即可直接在环境中进行调用,整体流程 非常平滑 。
step 2 :小程序前端使用
能力部署完成之后,即可在小程序中发起调用,AI 人脸特征分析与检测扩展能力在小程序中通过云函数进行调用。
step 3 :上传图片
对图片进行分析与检测需要将图片交给检测服务,可以使用云开发 · 存储的fileId、公网 url 地址,或者 base64 编码后的图片数据。对于我们的场景,可以很简单的拿到图片的 fileId 或 url,如果没有的话,也可以简单地将图片上传到云开发中,云开发存储提供权限控制、cdn 等能力,方便对文件对象进行管理。
wx.cloud.uploadFile({
cloudPath: "this/is/a/file/path.image",
filePath: "the/file`s/local/path.jpg",
success: ({ fileID }) => {
console.log(fileID);
},
fail: () => {}
});
直接调用name为tcbService-ai-detectFace的云函数检测即可
let { code, data } = await wx.cloud.callFunction({
name: "tcbService-ai-detectFace",
data: {
// 图片数据支持 3 种方式,使用 fileId 是极好的。
FileID: ""// 云开发 存储 fileId
// Url: "", // 公网可访问url地址
// Image: "" // base64 转码后的图片
}
});
// data
// { ImageWidth, ImageHeight, FaceInfos: [{X, Y, Width, Height, FaceAttributesInfo, FaceQualityInfo}]}
使用分析结果检测人脸位置和裁剪,分析结果中包含了图像宽高像素数量,以及图像中人脸的位置、大小、分析属性、质量信息,根据这些信息就可以准确的实现裁剪
首先根据 contain 的算法,根据图片与容器的宽高比将图片缩放到一边与容器对齐,之后以人脸为中心,在图片上划出裁剪区域,若裁剪区域超出图片,平移图片到刚好充满裁剪区域即可
当然,你也可以选择其他的裁剪策略,在已知关键区域的位置,大小之后,怎么裁剪,任君选择
利用云开发,结合AI 人脸特征分析与检测的扩展能力,就这样轻松的解决了媒体卡片缩略图的设置问题。这样应用主页看起来就舒服多了
当然在相关的场景,例如头像的上传中,可以结合AI 人脸特征分析与检测的能力,在头像中进行预选中,用户微调后即可直接裁剪上传,体验,尽享丝滑。

云开发与AI
云开发和AI本没有特别大的关联,使用云开发可以severless化调用腾讯云的AI能力,然鹅——
来自官方的云开发扩展能力解决方案却让这两者发生了奇妙的化学反应。而点燃这两个产品的竟然是—— 一键部署
传统的小程序AI的接口开发,你需要可能不只五步

逻辑还没开发,时间就耗在和机器打交道的过程上去了
如果我不要care服务器,不需要购买、备案、写http接口逻辑,那么选择**【云开发 】 **
懒惰的人想能不能连云函数逻辑、云函数上传、调试都不要做啊,可以,选择云开发扩展方案!
统统不要,云开发扩展方案提供的 【一键部署】 可以让这些工作统统不要!只需动动鼠标,后端代码即可自动生成部署!
于是三步就可以完成AI的使用:

这种美妙的化学反应全部来自于——云开发扩展能力解决方案
云开发扩展能力解决方案旨在解决各位开发大大们在开发过程中的各种恼人的问题,提升开发效率。
体验官招募
云开发扩展方案将云开发基础能力和AI巧妙的融合在一起
通过一键部署功能,达到了奇妙的开发体验!
那么如何报名体验这种美妙的体验呢?!
报名链接:https://wj.qq.com/s2/3986990/e0ef/
【名额有限】云开发AI拓展能力等你来体验!的更多相关文章
- 前端微信小程序云开发基础讲解
什么是云开发 云开发与传统模式的对比 云开发能力介绍云开发对小程序开发的变革 云开发是微信团队联合腾讯云提供的原生serverless云服务,致力于帮助更多的开发者快速实现小程序业务的开发,快速迭代. ...
- Serverless介绍篇(一)云开发在Serverless方面取得了怎样的新成果?
过去几年间,Serverless 发展迅猛,与其相伴的还有从小程序.移动端等到前后端一体化的演进与实践,也正因如此,从云计算到前端,众多开发者都极为关注.本文介绍了腾讯云CloudBase 的 Ser ...
- 【微信小程序云开发】从陌生到熟悉
前言 微信小程序在9月10号正式上线了云开发的功能,弱化后端和运维概念,以前开发一个小程序需要申请一个小程序,准备一个https的域名,开发需要一个前端一个服务端,有了云开发只有申请一个小程序,一个前 ...
- 热度3年猛增20倍,Serverless&云开发的技术架构全解析
『 作为一个不断发展的新兴技术, Serverless 热度的制高点已然到来.』 或许,Google Trends 所显示的 3 年猛增 20 倍的" Serverless " 搜 ...
- TVP专家眼中的云开发:定是未来,尚不完美
TVP专家眼中的云开发:定是未来,尚不完美 C++之父 Bjarne曾说,"世界上只有两种编程语言,一种被人骂,一种没人用".这句玩笑话道出了软件开发行业的真谛,不怕被人吐槽,就怕 ...
- 解锁云原生 AI 技能 - 开发你的机器学习工作流
按照上篇文章<解锁云原生 AI 技能 | 在 Kubernetes 上构建机器学习系统>搭建了一套 Kubeflow Pipelines 之后,我们一起小试牛刀,用一个真实的案例,学习如何 ...
- 云开发新能力,支持 HTTP 调用 API
今天来上班打开电脑,总感觉微信开发文档哪里有点不太一样,研究了半天原来是云开发又多了神级功能--HTTP API! HTTP API是什么?简单来说就是通过云开发HTTP API,可以不需要通过微信小 ...
- 新能力 | 云开发CMS内容管理系统,5分钟搞定小程序管理后台
小程序·云开发的云调用能力,让用户可以免鉴权快速调用微信的开放能力,极大节约了开发成本.现在,大家期待已久的云开发 CMS 内容管理系统,终于上线啦!顺便提示,接下来还可以二次开发哦! 云开发 CMS ...
- git clone开启云上AI开发
摘要:相比于传统的软件开发,AI开发存在以下4个痛点:算法繁多:训练时间长:算力需求大:模型需手动管理,我们可以使用云上AI开发的方式来缓解以上4个痛点. 本文分享自华为云社区<git clon ...
随机推荐
- Angular语法(三)——数据绑定
绑定类型 绑定类型可以按照数据流的方向分为三类:从源到视图,从视图到源,以及双向序列 示例 <!-- Bind button disabled state to `isUnchanged` pr ...
- PostSharp-5.0.26安装包_KeyGen发布_支持VS2017
PostSharp-5.0.26安装包_KeyGen发布_支持VS2017 请低调使用. PostSharp安装及注册步骤截图.rar 请把浏览器主页设置为以下地址支持本人.https://www.d ...
- 将QuickReport报表保存为图片(使用TMetaFile和TMetafileCanvas)
//将报表第iPageNo页存为BMP文件 procedure ReportSaveToBMPFile(sFileName :string; iPageNo :integer) ...
- Qt4可以使用trUtf8函数,其内容可以是中文,也可以是\F硬编码
显示在textBrowser->setText 中文乱码 转成QObject::trUtf8即可. ui->textBrowser->setText((QObject::trUtf8 ...
- IT回忆录-2
随着网络的发展,下载工具也不断地更新. 印象比较深的下载工具,从网络蚂蚁.网际快车,到BT. BT出来的时候,对下载真的是一个革命啊,以前下载东西,下载的人越多肯定就越慢,我们之前还会跑到一些FTP上 ...
- ORACLE 11.2.0.4 RAC安装在rhel6上
. 关闭ipv4防火墙(两个节点): [root@RAC01 ~]# service iptables stop [root@RAC01 ~]# service iptables status ipt ...
- Qt 跨UI线程的数据交换和信号-槽调用实现方案汇总
一.目录 转载1: http://my.oschina.NET/fanhuazi/blog/737224?ref=myread 点击打开链接 转载2: http://www.qtcn.org/bbs/ ...
- Delphi事件的广播
原文地址:Delphi事件的广播 转作者:MondaySoftware 明天就是五一节了,辛苦了好几个月,借此机会应该尽情放松一番.可是想到Blog好久没有写文章,似乎缺些什么似的.这几个月来在项目中 ...
- Tencent://Message/协议的实现原理(Windows提供协议注册)
腾讯官方通过 Tencent://Message/协议可以让QQ用户显示QQ/TM的在线状态发布在互联网上:并且点击 XXX ,不用加好友也可以聊天 官方链接: http://is.qq.com/w ...
- 完全卸载mysql免安装版
使用以下命令 reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\MySQL& ...