前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用COS和SCF玩转人脸识别

使用COS和SCF玩转人脸识别

作者头像
云存储
发布2020-05-26 15:48:40
2.5K1
发布2020-05-26 15:48:40
举报

导读:

通过本文你可以快速了解到:

第一. 腾讯云对象存储COS简介;

第二. 腾讯云COS典型的应用场景;

第三. 几行代码就能实现人脸识别Demo;

第四. 最佳实践给你最真实的案例场景解决方案;

卢萌凯:目前负责腾讯云Serverless云函数的技术架构打造,帮助用户完成方案设计及落地,对云端存储产品的使用场景有独到见解。

一、对象存储简介

我们先来介绍下对象存储是什么?

如果用"云"上的话,就是用云的概念解释,腾讯云对象存储提供的是面向非结构化数据,支持HTTP和HTTPS协议访问的分布式存储服务,它能容纳海量数据并保证用户对带宽和容量扩充无感知,这里可以理解为基于Serverless架构。

同时对象存储也会对云上其他的产品做一些深入的结合,比如和CDN结合,用户上传的音视频可以选择CDN进行加速,也可以跟云上音视频转码服务相结合,上传到COS音视频可以做转码服务。支持数据万象服务,可以对图片加水印等方面的处理。

当然对象存储COS也支持和云函数结合,做事件触发,如回调通知、CDN自动化预热刷新、文件压缩/解压缩、AI识别等。

这里列了一个COS对象存储简易流程,用户通过手机APP、网站或者H5页面可以方便简单的访问。COS会和云上其他的应用相结合,同时用户也可以选择和COS本地服务相结合。

上图是一个COS应用服务架构,传输服务可以选择CDN加速。比如用户需要上传到COS延时高的情况下可以选择CDN加速;同时可以选择腾讯云提供的专线服务,可以保证低延时,同时也可以使用运营商服务。

应用接入层可以选择应用服务,像图片智能识别和处理、音视频处理等。同时COS可以和云上一些大数据套件对接。一个简单的场景,用户可以用云上的Kafka直接写入COS,COS和大数据对接来做用户行为的分析。

数据接口是COS底层的一些接入方法。最底层是分布式数据存储,我们可以通过API或者通过HTTP REST来访问接口。

二、COS典型应用场景

这里给了一个简单的应用流程,最左边可以看到用WEB服务或者APP终端,通过运营商网络接入到对象存储,做一些简单的上传和下载动作;同时,腾讯云上的COS可以做CDN分发,或者做格式转换,又或者对接到云上的云主机或者私有云客户自己的云服务,做一整条流程的打通。

把刚才的应用案例再细化一下的话,这是一个用户在实际使用过程当中的架构图。

首先,最左边的用户可以通过调API接口或者自己调云上封装好的SDK,在自己代码里去读写COS,又或者通过控制台很方便的上传和下载一些文件。

右边是腾讯云上COS云存储,这里一共给了三种应用:一个是标准存储,一个是低频存储,还有归档存储。低频存储是用于读写数据频率比较低的场景,比如说是网盘的运用。归档存储主要用于归档数据,它可能是一些冷数据,不经常用,它也可以提供高可靠的数据保存。同时,它的成本也是非常低的。

同时对象存储可以对接云上其他的服务,并针对不同的用户可以设置不同的访问权限。

三、人脸识别Demo

我这里写了一个简单的Demo,主要做人脸识别。

首先我会创建两个存储桶,这两个存储桶用来上传用户的信息,触发SCF调用,其中一个桶做用户特征的提取。

第二个存储桶上传第二张用户的图像,和第一个比对,查看是否可以查到这个用户信息。SCF里直接调AI的接口,大概有四、五行代码就能实现创建用户的信息,再加一行代码就能比对用户信息。

这里用SCF日志展示输出。这个流程图是这样的,首先我在COS Bucket1里上传一张图片,看他是否是一个新用户,不是的话就创建一个特征;如果是,就把这个人像添加到已创建的用户特征。另外一个Bucket有这个名字,也会触发相同的SCF,用于查看用户的特征,如果查到的话这个用户可以获取权限,如果查不到就会返回到无权限。

在控制台上写好这个函数,我们通过查看函数执行日志来查看输出结果。这里我已经创建好一个bucket,这个用作用户上传图像时提取用户特征。

我会做一些测试:我在网上随意下载一个用户的图像。我们看到这个图片上传成功了,叫'范',我现在到云函数控制台查看一下日志,这边可以看到上传的时间。现在是没有权限的,再上传一张图片,在new face提取一下特征,还是刚才那张图片。已经上传成功了,由于刚才是没有她的用户特征,所以这里会创建一个新用户。我在上传另外一张图片,这两张图片是不一样的,刚刚上传成功。现在再回到控制台这边查看日志,现在看到刚才'范'这张照片,可以查看到她的特征了。

刚才实现的代码里,大部分都是从cos里下载图片的代码和逻辑判断,实际做人像识别的代码是直接调AI接口。这里还会对图片做大小判断,如果太大的话会做一次裁剪,因为太大的话可能上传到cos时会报超时。下面我还列了一些对AI接口的操作,这里有很多的接口都封装到了 SDK,直接调用大概也就几行就可以实现,比如人脸检索,特征信息创建,人脸比对两张照片是否是一个人,还有身份证识别,所以使用起来是很方便。

这部分介绍的是COS和SCF结合的应用架构和应用场景。上传到COS的文件,会自动触发云函数运行。用户可以在云函数平台上做核心逻辑开发,并配置COS触发器,可以选择上传或者删除事件来触发这个云函数。文件上传到云函数后,可以在云函数里做很多操作,比如说我可以做日志备份,跨区域的文件复制,写云数据库,回调通知后台服务,做一些图片处理或者语音识别等,大部分的云服务都可以和云函数平台做一个结合。

云函数和COS都支持高并发和弹性扩缩容,用户只用聚焦自身代码的实现,使服务可以快速上线,且当用户的调用量很大的时候,这个架构也能很好的应对,尤其是波峰和波谷比较明显的业务。把某些使用场景抽象化、简单化后,可以使用COS存储桶,做上传删除等等操作,还可以和其他的产品或者服务做结合,像自定义日志分析、事件通知、OCR识别、文件处理等。

这里举例事件通知的场景,上传到COS Bucket的图片、视频、日志等文件,可以直接触发云函数运行,在云函数里可以实现简单的业务逻辑,比如回调API服务、写数据库并发送邮件、短信通知等。

云函数会根据上传量的大小自动扩缩容,对比客户端直接发送通知的方案,使用云函数可以更便于维护和更新业务逻辑,且稳定性和高可用都能得到保障。

四、最佳实践最真实的案例场景

(1)

上面案例是视频文件转码,用户视频文件上传,调用腾讯云的视频解码服务,再根据不同码率写到 COS,COS最后会用CDN,对视频文件做一个加速。这里所有的触发都在云上,你不需要运维,同时这边的服务也是非常的便捷。

(2)

这个是CDN自动刷新,很多用户会用到COS和CDN,把COS文件做CDN加速,但是这里有一个问题,每次文件更新都需要手动点击刷新,现在就不用了,上传到COS的文件自动触发SCF,SCF调CDN的API接口,实现自动刷新。

(3)

这个客户案例,是做日志文件分析,客户的点播平台每时每刻都在产生大量的日志,怎样快速低成本的对这些日志进行统计分析,筛选出最受欢迎的视频源,点播峰值时间段等一并展示出来成为客户面临的难题。

(4)

这个案例是一个在线视频教育的案例,老师和学生会有视频课程,它们会从视频课程抓取图像,然后把这些图像上传到COS,然后COS会触发SCF做一次分析,把这个写到消息队列,并通知客户自身的业务模块进行分析,从而来判断老师和学生之间是否有敏感信息产生。

总结

只要能为用户实际创造价值,它就是一个最佳实践。下图我列举了几条,主要是在使用COS和SCF过程中的注意事项。

比如COS触发SCF的流程,首先COS会把上传和删除事件写到自己的消息队列,和云函数SCF消息队列做一个对接,云函数消息队列会触发云函数执行每次的事件操作,所以这是异步调用,且COS触发SCF只支持同地域配置。另外,COS支持前后缀过滤触发,以及同一Bucket中多种事件类型触发SCF。

为了避免COS的事件生产投递出现错误,COS针对每个Bucket的每个事件限制只能绑定一个可触发的函数,主要为了避免用户出现循环调用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云存储 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导读:
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档