这次来了个超厉害的新能力!

人脸智能打马赛克、人脸智能裁剪……各种操作,都能一步到位!

迫不及待想体验,戳链接: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拓展能力等你来体验!的更多相关文章

  1. 前端微信小程序云开发基础讲解

    什么是云开发 云开发与传统模式的对比 云开发能力介绍云开发对小程序开发的变革 云开发是微信团队联合腾讯云提供的原生serverless云服务,致力于帮助更多的开发者快速实现小程序业务的开发,快速迭代. ...

  2. Serverless介绍篇(一)云开发在Serverless方面取得了怎样的新成果?

    过去几年间,Serverless 发展迅猛,与其相伴的还有从小程序.移动端等到前后端一体化的演进与实践,也正因如此,从云计算到前端,众多开发者都极为关注.本文介绍了腾讯云CloudBase 的 Ser ...

  3. 【微信小程序云开发】从陌生到熟悉

    前言 微信小程序在9月10号正式上线了云开发的功能,弱化后端和运维概念,以前开发一个小程序需要申请一个小程序,准备一个https的域名,开发需要一个前端一个服务端,有了云开发只有申请一个小程序,一个前 ...

  4. 热度3年猛增20倍,Serverless&云开发的技术架构全解析

    『 作为一个不断发展的新兴技术, Serverless 热度的制高点已然到来.』 或许,Google Trends 所显示的 3 年猛增 20 倍的" Serverless " 搜 ...

  5. TVP专家眼中的云开发:定是未来,尚不完美

    TVP专家眼中的云开发:定是未来,尚不完美 C++之父 Bjarne曾说,"世界上只有两种编程语言,一种被人骂,一种没人用".这句玩笑话道出了软件开发行业的真谛,不怕被人吐槽,就怕 ...

  6. 解锁云原生 AI 技能 - 开发你的机器学习工作流

    按照上篇文章<解锁云原生 AI 技能 | 在 Kubernetes 上构建机器学习系统>搭建了一套 Kubeflow Pipelines 之后,我们一起小试牛刀,用一个真实的案例,学习如何 ...

  7. 云开发新能力,支持 HTTP 调用 API

    今天来上班打开电脑,总感觉微信开发文档哪里有点不太一样,研究了半天原来是云开发又多了神级功能--HTTP API! HTTP API是什么?简单来说就是通过云开发HTTP API,可以不需要通过微信小 ...

  8. 新能力 | 云开发CMS内容管理系统,5分钟搞定小程序管理后台

    小程序·云开发的云调用能力,让用户可以免鉴权快速调用微信的开放能力,极大节约了开发成本.现在,大家期待已久的云开发 CMS 内容管理系统,终于上线啦!顺便提示,接下来还可以二次开发哦! 云开发 CMS ...

  9. git clone开启云上AI开发

    摘要:相比于传统的软件开发,AI开发存在以下4个痛点:算法繁多:训练时间长:算力需求大:模型需手动管理,我们可以使用云上AI开发的方式来缓解以上4个痛点. 本文分享自华为云社区<git clon ...

随机推荐

  1. mac 安装使用Liteide

    1.下载go 官网下载地址(需要FQ)golang 中国镜像网站下载golangtc 下载go1.5.1.darwin-amd64.tar.gz包,解压得到一个Go目录,把go目录移动到你想要的路径下 ...

  2. fzu-1753 Another Easy Problem-高速求N!多少个月p

    它计算每个C(N,M)什么号码乘以像.... #include <iostream> #include<stdio.h> #include<vector> #inc ...

  3. ADT eclipse的几个快捷键

    智能内容感知 Alt+/ ,该快捷键可以方便的匹配我们使用的类信息,/ 在键盘上和?是同一个按键. ctrl+.及ctrl+1:下一个错误及快速修改 ctrl+.将光标移动至当前文件中的下一个报错处或 ...

  4. PHP模拟POST提交数据并获得返回值之CURL方法(使用PHP extension,然后使用php_curl.dll,很不错)

    今天公司做个东西,需要条用同事的接口,我的代码和他的代码不在同一个域下,但是都是子域. a.ifensi.com与b.ifensi.com的关系. 我需要传递一个关联数组过去,他那边给我返回一个jso ...

  5. IIS Express 启用目录浏览

    IIS Express 启用目录浏览,有需要的朋友可以参考下. 今天刚刚使用visual studio 2013创建第一个hello world,结果就发现提示错误. HTTP 错误 403.14 - ...

  6. WPF DataGrid自动生成列

    <Window x:Class="DataGridExam.MainWindow"        xmlns="http://schemas.microsoft.c ...

  7. layui弹出框打开第二次select内容无法显示问题

    今天, 在使用layui弹出框的时候, 第一次进入select内容加载是正常的, 将弹出框关闭再次进入后select下拉框内容为空, 经排查是因为每次弹出窗口z-index都会改变, 弹出框的z-in ...

  8. Oracle报错:不是单组分组函数

    报错:不是单组分组函数 实例:select sum(HWJZ) ,rq from  JcChargeInfo 原因: 1.如果程序中使用了分组函数,则有两种情况可以使用: 程序中存在group by, ...

  9. C#高性能大容量SOCKET并发(二):SocketAsyncEventArgs封装

    原文:C#高性能大容量SOCKET并发(二):SocketAsyncEventArgs封装 1.SocketAsyncEventArgs介绍 SocketAsyncEventArgs是微软提供的高性能 ...

  10. OAUTH2 SAML2.0

    OAuth2 - http://www.cnblogs.com/linianhui/p/oauth2-authorization.html SAML - wikipedia Shibboleth / ...