腾讯云技术专家卢萌凯手把手教你Demo一个人脸识别程序!

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文来自腾讯云技术沙龙,本次沙龙主题为Serverless架构开发与SCF部署实践

卢萌凯:毕业于东南大学,曾就职于华为,熟悉云行业解决方案。目前负责腾讯云中间件产品及无服务器云函数的技术架构打造,帮助用户完成方案设计,对云端存储产品的使用难点有独到见解。

大家好。我是腾讯云中间件及无服务器云函数架构师。我今天介绍分四部分:第一,对象存储COS简介。第二,比较实用的一部分,SCF与COS结合使用的应用场景。第三,比较有意思,人脸识别Demo。调用AI的接口,用几行代码就把人脸识别的Demo就实现了。最后一部分是最佳实践。其实主要是来看一下在COS使用过程当中有哪些需要注意的地方。

img

我们先来介绍第一部分,就是腾讯云存储平台发展历程。首先我们可以看到在2006年的时候腾讯云发布了第一代分布式存储平台,叫TFS。经过近十年发展到2014年存储量达到500P,也是在这一年随着腾讯云推出,腾讯云存储系统开始对外服务。到现在腾讯云超过EB级存储,现在对内服务腾讯相册,QQ以及外部的58同城和大众点评等。

img

对象存储是什么?这页简单介绍一下对象存储概念,如果用云上的话,就是用云的概念,腾讯云对象存储提供的是面向非结构化数据,支持HTTP和HTTPS协议访问的分布式存储服务,它能容纳海量数据并保证用户对带宽和容量扩充无感知,这里可以理解为基于Serverless架构。同时对象存储也会对云上其他的产品做一些深入的结合,比如和CDN结合,用户传到CDN音视频可以选择CDN进行加速,也可以跟云上音视频转码服务相结合,上传到COS音视频可以做转码服务。支持万象优图服务,可以对图片加水印等方面处理。

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

img

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

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

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

img

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

img

把刚才的应用案例再细化一下的话,这边给出了一个用户在实际使用过程当中的架构图。首先,最左边的用户可以通过调API接口,或者自己调云上封装好的sdk,在自己代码里去读写COS。或者通过控制台很方便的上传和下载一些文件。这边是腾讯云上COS云存储,这里一共给了三种应用:一个是标准存储,一个是低频存储,还有近线存储。低频存储是用于读写数据频率比较低的场景,比如说是网盘的运用。近线存储主要用于归档数据,它可能是一些冷数据,不经常用,可以用近线存储,它也可以提供高可靠的数据保存。同时,它的成本也是非常低的。

同时对象存储可以对接云上其他的服务,并针对不同的用户可以设置不同的访问权限。我这里放了一个视频对应用场景做一个总结和发散。

img

img

我这里写了一个简单的Demo,主要做人脸识别,首先我会创建两个存储桶,这两个存储桶用来上传用户的信息,触发SCF调用,其中一个做用户特征的提取。第二个存储筒上传第二张用户的图像,和第一个比对,查看是否可以查到这个用户信息。SCF里直接调AI的接口,大概有四、五行代码就能实现创建用户的信息,再加一行代码就能比对用户信息。这里用SCF日志展示输出。这个流程图是这样的,首先我在COS Bucket1里上传一张图片,看他是否是一个新用户,不是的话就创建一个特征,如果是,就把这个人像添加到已创建的用户特征。另外一个Bucket叫这个名字,这个也会触发相同的SCF,用于查看用户的特征,如果查到的话这个用户可以获取权限;如果查不到就会返回到无权限。

img

img

具体的话在控制台上我这边已经写好了这个函数,我们通过查看函数执行日志来查看输出结果。这里我已经创建好一个bucket,这个用来用户上传图像来提取用户特征。我会做一些测试,我已经有一些测试图片了。我现在在网上随意下载一个用户的图像。我们看到这个图片上传成功了,叫范2,我现在到云函数控制台查看一下日志,这边可以看到时间是16点37分。现在是没有权限的,再上传一张图片,在new face提取一下特征,还是刚才那张图片。已经上传成功了。由于刚才是没有她的用户特征,所以这里会创建一个新用户。我在上传另外一张图片,这两张图片是不一样的,16点38分刚刚上传成功。现在再回到控制台这边查看日志,现在看到刚才范这张照片,可以查看到她的特征了。

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

img

现在回到PPT,这一部分介绍的是COS和SCF结合的应用架构和应用场景。第一页是放的云函数架构平台,这边是BaaS架构。用户可以上传代码和做一些配置在云函数平台,并选择COS触发器,同时也可以选择上传或者删除事件来触发这个云函数。文件上传到云函数后,可以在云函数里做很多操作,比如说我可以做日志备份,跨区域的文件复制,写云数据库,做一些图片处理或者语音识别等。或者我可以用SCF对接IoT平台,把数据推到IoT终端。大部分的云服务都可以和云函数平台做一个结合。

这样用的好处是COS这边可以提供高并发的场景。云函数这边也可以支持高并发。用户只用聚焦自身代码的实现,使服务可以快速上线,且当用户的调用量很大的时候,这个架构也能很好的应对,有效的应对波峰和波谷。

img

把才的场景轴象化、简单化后,可以看到左边是COS存储桶,我可以做上传删除等等,右边可以和其他的产品或者服务做结合,像自定义日志分析,和消息队列做事件通知。

img

这里举例用户头像制作,用户上传图片到COS,触发SCF运行,SCF对图片进行处理后发送到客户端,并写入COS,删除原图。假定我这边配置SCF内存128MB,单词执行时间1秒,平均每天被触发运行5万次。COS配置触发SCF运行,用户上传到COS的平均文件大小1MB,每天上传5万次,被SCF处理后,图片大小为100K。这样算出来SCF是这三部分的加和,因为这里免费额度的原因,所以这边资源使用费用是零,相当于是免费在使用Serverless。这边调用次数的费用是0.69元,每天触发调用5万次,一个月的费用不到1块钱。另外一个费用是因为这边有外网出流量,每次上传是多少GB,然后乘以5万次,再乘30天,每GB0.8元,算出来是144元。如果没有往客户端发流量,所有的流量都在平台内部打转的话,这个费用也是没有的,相当用SCF的费用基本上不到两块钱。

COS的话这边也是把免费额度扣除掉之后,每次用户上传,存100K的图片,加上读写IO,算出来是一个月14.6。所以这边加起来一个月不到130块钱。这是一个实际应用场景里COS和SCF的价格举例。

img

这里我又列举了一些用户的实际案例,这边因为没有拿到用户的授权,所以没有把用户的名称放出来。这个案例是视频文件转码,这边是用户视频文件上传,调用腾讯云的视频解码服务,再根据不同码率写到COS,COS最后会用CDN,对视频文件做一个加速。这里所有的触发都在云上,你不需要运维,同时这边的服务也是非常的便宜。

img

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

img

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

img

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

img

这是一个自动灾备的案例,客户是荔枝微课,用户在APP或者电脑端做文件上传,文件上传以后,需要同步到跨区域同跨帐号下的其他Bucket。

img

最后我说一下最佳实践。其实只要能为用户实际创造价值,它就是一个最佳实践。这边我列举了几条,主要是在使用COS和SCF过程中的注意事项。比如COS触发SCF的流程,首先COS会把上传和删除事件写到自己的消息队列,和云函数SCF消息队列做一个对接,云函数消息队列会触发云函数执行每次的事件操作。所以这是异步调用。有同学会问这边是不是实时的,如果正常情况下,没有消息堆积的话是毫秒级。如果某一时刻有大量用户做上传视频或者删除动作的话,可能会产生消息堆积。如果来不及消费,可能在秒级触发SCF运行。

COS触发SCF只支持同地域配置。

COS支持前后缀过滤触发,以及同一Bucket中多种事件类型触发SCF。

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

目前单个云函数支持绑定2个COS触发器。

最后一个是列举了COS Bucket的消息格式,会把什么样的信息发给SCF。SCF在这个事件里把消息拉出来。比如用户的APPID,用户上传的文件名,以及用户Bucket所在的地域,这边都可以拿到。所以在SCF这边可以拿到用户上传到COS大部分的文件信息。

有同学问到,传统开发模式和无服务器模式架构的区别,或者说是用传统开发模式的优势或者两者之间的成本对比。这边可以看到对于传统架构设计,比如买了云主机,架构分层,功能划分,模块通信等等都需要考虑。用无服务器只需要对函数功能进行划分,同时把一些具体的功能通过事件触发的形式去绑定到一起,这边架构上会减少很多工作量。但是,如果说这个逻辑或者服务计算是非常重的话,其实还是用传统开发模式可能会更好一点。另外如果云主机使用效率在 70%以下的话,其实SCF会便宜很多,同时SCF可以省去很多运维和环境搭建的工作。

代码开发,传统模式要考虑到容灾,业务逻辑的对接。云函数只需要关心自己的业务代码,把业务代码写好后配置相应的触发器,这边就可以运行了。

代码调试,登陆服务器使用熟悉的工具在本地调试。无服务器目前主要依赖日志调试。

发布部署,云函数这边可能效率会更高一点,但是差别不是很大。

Q&A

Q:我在更新我的模型文件的时候,会不会对我其他的文件产生影响?

A:像对COS做热更新的时候,在那个时刻会有影响,但是在过程中没有影响。

Q:SCF到底是什么?

A:简单来说SCF就是一种计算资源。我们有时候会叫它FaaS。FaaS是一个概念,SCF是一款产品。

本文PPT附件请点击原文下载。

问答
Serverless:如何删除一个函数?
相关阅读
多个场景中的AI落地实践
低于0.01%的极致Crash率是怎么做到的?
【每日课程推荐】新加坡南洋理工大学博士,带你深度学习NLP技术

此文已由作者授权腾讯云+社区发布,更多原文请点击

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验,尽在云加社区!

转载于:https://www.cnblogs.com/qcloud1001/p/9567170.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机硬件知识考证题,计算机硬件知识题(答案)资料

信息技术过关考试题库(“计算机基础知识”部分)1、计算机的核心部件中央处理器的简称是________。CA 主机B 存储器C CPUD 输入设备2、世界上第一台电子计算机诞生于_____________。AA 1946年B 1950年C 1949年D 1941年3、下列全部是硬件的选项是______。AA 键盘、显示器B Window…

活动目录排错笔记

经过几年的网络管理工作,总结了一些关于AD的排错经验现在拿出来同大家分享,其中一些说明抄了微软的KB在这里说明一下,排错笔记有些地方可能写的不是很全,看不明白的地方大家可以GOOGLE一下,不对的地方也请大家提出 活…

CCF 201712-3 Crontab

本地AC,CCF编译失败。 通过对每条任务进行处理,将可能的月,日处理出来,并且比对对应星期是否符合要求。再对时分进行处理,判断整体时间在所给区域内。 思路借鉴自https://blog.csdn.net/gl486546/article/details/7905…

二十世纪最伟大的算法,你了解哪个?

导读:作者July总结了一篇关于计算方法的文章《 细数二十世纪最伟大的10大算法 》。一、1946 蒙特卡洛方法[1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known …

桌面计算机恢复出厂设置,windows7电脑怎么恢复出厂设置

我们使用电脑一段时间,由于各种问题,希望将电脑恢复出厂设置,那么windows7电脑怎么恢复出厂设置呢?下面跟着学习啦小编来一起了解下windows7电脑恢复出厂设置的方法吧。windows7电脑恢复出厂设置方法一按下开机键,启动…

关于Exchange管理控制台报“您的权限不足,无法此查看数据”的解决办法

今天朋友突然来电话,说自己的Exchange 2010 EMC突然报“you dont have sufficient permissions to view this data”(您的权限不足,无法查看此数据),同时所有的cmdlet命令也不可以执行。询问我解决办法,出错…

C语言程序返回值为int的时候,不同值代表不同的意义

这个是我自己给自己的代码定的标准,方便自己阅读与编码。他人代码情况不可套用 1  执行成功 0  出现错误,不影响程序执行 -1  执行失败 -2  程序内部致命错误,退出程序转载于:https://www.cnblogs.com/kgtone/p/9570388.html

内存为什么还有管理?

本文作者:度白嵌入式任何程序运行起来都需要分配内存空间存放该进程的资源信息的,C程序也不例外。C程序中的变量、常量、函数、代码等等的信息所存放的区域都有所不同,不同的区域又有不同的特性。C语言学习者、尤其是在学习嵌入式的朋友&…

ajax html fileupload,fileUpload.html

文件上传测试说明: 最大上传量:100M,单个文件最大长度:100Menctype"multipart/form-data" method"post">Element.hide(progressBar);Event.observe(fileUploadForm,submit,startProgress,false);Event.observe(cancelUploadButton,click,ca…

HDOJ1106 排序

题目&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1106 代码: #include<stdio.h> #include<string.h> #include<stdlib.h> int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b; } int main(){ char s[1001]; int len,i,sum,cnt; …

TCP实现可靠传输

1. TCP 和 UDP的区别&#xff1a; TCP面向连接&#xff1b;UDP无连接TCP保证数据的可靠传输&#xff0c;数据传送无差错&#xff0c;不丢失&#xff0c;无重复&#xff0c;按序到达&#xff1b;UDP不保证可靠交付TCP连接一对一&#xff1b;UDP支持更广泛UDP实时性好&#xff0c…

旧手机别扔,手把手教你DIY一台Linux服务器

作者&#xff1a;Hannah Lee编译&#xff1a;弯月 欧阳姝黎来源&#xff1a;CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;本文将向你展示如何使用 UrBackup 和 Linux Deploy在一台 Android 旧手机上搭建一台备份服务器。旧手机的污染问题众所周知&#xff0c;我有一台旧…

学计算机买电脑显卡1605ti够吗,GTX1650和GTX1050Ti哪个好?GTX1050ti和GTX1650性能差距对比评测...

GTX1650显卡在2019年4月22日进行发售&#xff0c;不少用户认为GTX1650是智商检测卡&#xff0c;真的是吗&#xff1f;从命名上来看&#xff0c;GTX1650应该是GTX1050的升级产品&#xff0c;不过根据英伟达的说法&#xff0c;GTX1650相比GTX1050提升幅度达到了70%&#xff0c;但…

Cacti Plugin Architecture安装

1.下载Cacti PluginArchitecture ,http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz2.解压Cacti Plugin Architecture 3.安装cd cacti-plugin-archcp cacti-plugin-0.8.7b-PA-v2.1.diff /var/www/cactipatch -p1 -N < cacti-plugin-0.8.…

P1547 Out of Hay

传送门 练习 只是一个最小生成树的水题&#xff0c;拿来练练模板 AC代码&#xff1a; #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; #define maxn 10001 struct hh {int x,y,z; }t[maxn]; int …

研发转FAE,要想清楚

说个事情吧因为今天有个同学跟我说&#xff0c;自己想转去做FAE。他最近刚面试了一个FAE的岗位&#xff0c;那边感觉挺缺人了&#xff0c;感觉那边领导也比较喜欢自己&#xff0c;想让他快点去那边。然后我就跟他聊了下首先&#xff0c;过去做FAE的岗位就是一个大头兵&#xff…

Gamma的传说

Gamma校正对于图形和图像来说是个常提的概念&#xff0c;但对于gamma的缘由和使用方法&#xff0c;却存在着很多传说。本文将尽可能解析gamma校正来源&#xff0c;破解各种迷思。Gamma校正从何而来 有一种常见的说法&#xff0c;gamma来源于眼睛对光感受。我也曾经错误地采用了…

计算机网络在实践中的应用,计算机网络技术及在实践中的应用

摘 要隨着社会的快速发展&#xff0c;计算机网络技术也得到迅猛发展&#xff0c;计算机网络技术已经广泛应用于人们的生活和工作中。如今&#xff0c;计算机网络技术已经趋向成熟&#xff0c;应用范围也在不断扩大。计算机网络技术实际上是以下几种技术的结合&#xff1a;一是计…

进程中的一个线程死了所引发的后果

我们知道&#xff0c;同一个进程中的多个线程共享进程资源&#xff0c;包括主内存、文件句柄、锁资源等。那么当一个线程死了&#xff08;非正常退出、死循环等&#xff09;就会导致线程该占有的资源永远无法释放&#xff0c;从而影响其他线程的正常工作&#xff0c;看下面一个…

心急吃不了热豆腐

良好的焊接是保证电路稳定持久工作的前提。下面给出了常见到的焊接缺陷。看看你遇到过多少种&#xff1f;▲ 图1 焊接中的常见问题▲ 图2 锡珠▲ 图3 扰动的焊接&#xff1a;在焊接点冷却过程中焊锡移动&#xff0c;造成焊接表面起雾、结晶、粗糙▲ 图4 立碑▲ 图5 冷结&…