使用AWS Lambda轻松开启Amazon Rekognition之旅

这是本系列文章的第一篇,旨在通过动手实践,帮助大家学习亚马逊云科技的生成式AI相关技能。通过这些文章,大家将掌握如何利用亚马逊云科技的各类服务来应用AI技术。

那么让我们开始今天的内容吧!


介绍

什么是Amazon Rekognition?

Amazon Rekognition是基于云的计算机视觉平台,提供软件即服务(SaaS)。
通过经过验证的高度可扩展的深度学习技术,Amazon Rekognition可以轻松地将图像和视频分析功能添加到您的应用程序中,而无需具备机器学习的专业知识。
它提供高度精确的面部分析和面部搜索功能,您可以利用这些功能进行用户身份验证、人数统计和公共安全等多种场景的检测、分析和比较。

服务功能:

  • 标签识别
  • 自定义标签
  • 内容审核
  • 文本检测
  • 面部检测与分析
  • 面部搜索与验证
  • 名人识别
  • 个人防护装备(PPE)检测

Amazon Lambda
  • AWS Lambda是一种无服务器计算服务。
  • 它无需任何服务器管理,允许我们执行任意类型的应用程序代码。
  • 开发人员无需担心启动或管理AWS资源的步骤。
  • 任务的配置以代码形式完成,实施在Lambda中,并在执行时运行。
  • Lambda函数负责处理资源的预置和管理。
  • AWS Lambda支持的编程语言包括Node.js、Python、C#、Java和Go。
  • 它允许我们响应其他AWS服务的事件来运行代码。
  • 根据工作负载的大小,Lambda自动进行扩展。
  • Lambda代码通过来自AWS资源的触发器执行。
  • AWS Lambda的成本非常低,费用取决于多个因素。它会按每100毫秒的运行时间以及代码的执行次数收费。
  • Lambda函数的可允许运行时间在100毫秒到15分钟之间。
  • 它提供从128MB内存到10GB内存的可变资源。

IAM角色
  1. IAM角色是AWS IAM身份(可以在我们的AWS账户中创建),具有特定的权限。
  2. 它类似于IAM用户,决定该身份在AWS中可以执行或无法执行的操作。
  3. 与直接将角色分配给特定用户或组不同,它可以被分配给任何需要它的人。
  4. 拥有角色的好处是我们不需要关联标准的长期凭证,如密码或访问密钥。
  5. 当资源承担某个特定角色时,它会为我们的角色会话提供临时安全凭证。
  6. 我们可以使用角色来访问没有权限访问AWS资源的用户、应用程序或服务。
  7. 根据我们的需求,可以为角色附加一个或多个策略。
  8. 例如,我们可以创建一个具有S3完全访问权限的角色,并将其分配给EC2实例,以便访问S3存储桶。

简单存储服务(S3)
  1. Amazon S3是一种简单的存储服务,我们可以随时、随地通过网络存储和检索任意数量的数据。
  2. 它为开发人员和用户提供高度可扩展、可靠、快速、廉价的数据存储基础设施。
  3. S3保证99.9%的可用性。
  4. S3设计用于存储最多5TB的数据。
  5. S3是全球化的,这意味着您可以在任何地区创建存储桶,并从任何地方访问它。因此,存储桶的名称必须是唯一的。
  6. 用户可以随时删除S3存储桶及其对象。
  7. 我们可以通过为不同用户授予不同权限来限制对存储桶的访问。
  8. S3还提供额外功能,如版本控制、静态网站托管、服务器访问日志记录、对象存储生命周期策略等。

架构图

任务详情
  1. 创建S3存储桶并上传图

  2. 创建Lambda函

  3. 测试Lambda函数


任务1:创建S3存储桶并上传图像
在此任务中,我们将通过提供所需的配置来创建一个S3存储桶,并将图像上传到该存储桶。
  1. 导航到顶部的“服务”菜单,然后在“存储”部分点击S3。
  2. 在左侧菜单中选择“存储桶”,点击“创建存储桶”按钮并填写存储桶的详细信息。
  • 存储桶名称: 输入 labs.rekognition.23
    注意: 存储桶名称必须在Amazon S3中所有现有存储桶名称中是唯一的。如果您收到存储桶名称已存在的错误,请将存储桶名称的最后两位数字更改为任意随机数字。

  • 区域: 选择 美国东部(弗吉尼亚北部)us-east-1

  • 对象所有权: 选择 禁用ACL(推荐) 选项

  • 阻止公共访问的存储桶设置: 取消选中“阻止所有公共访问”选项,并勾选“确认”复选框。

  1. 其他设置保持默认。
  2. 点击“创建存储桶”按钮。

3.现在您的S3存储桶已经创建好了。

4.点击您的存储桶名称。

5.在“概览”中,您会看到以下消息:

   "此存储桶中没有任何对象。"

6.注意:本实验室仅支持使用jpg、jpeg和PNG文件格式。其他格式不支持。

7.您可以从本地存储上传任何图像,或者从此链接下载示例图像:Download Me

8.如果图像在新标签页中打开,请右键点击并将图像保存到您的本地机器上。保存后可以关闭该标签页。

9.上传文件到S3存储桶的步骤

  • 点击“上传”按钮。
  • 点击“添加文件”按钮。
  • 浏览本地图像文件,或选择下载的图像文件,文件名为:rose_flower_54_11.jpeg
  • 点击“上传”按钮。
  • 您可以在屏幕底部的传输面板中查看上传进度。
  • 文件上传完成后,它将显示在存储桶中。

10.现在,点击屏幕右上角的“关闭”按钮。

任务2:创建Lambda函数

在此任务中,我们将通过提供名称、运行时、权限和代码等所需配置来创建一个Lambda函数。

  1. 确保您所在的区域是美国东部(弗吉尼亚北部)
  2. 通过点击顶部的“服务”菜单导航到Lambda,然后在“计算”部分点击Lambda。
  3. 点击“创建函数”按钮。
  • 选择“从头开始创建”按钮。
  • 函数名称:输入 my_rekognition_Lambda
  • 运行时:选择 Python 3.8
  • 权限:点击“更改默认执行角色”,选择“使用现有角色”。
  • 现有角色:从下拉列表中选择 Whiz_policy_role_<RANDOM_NUMBER>
  • 点击“创建函数”按钮。
  • 4.在“代码”选项卡下,找到“代码源”部分,双击 lambda_function.py 文件,然后将现有代码替换为以下代码。
import json
import boto3
def lambda_handler(event, context):bucket_name = "labs.rekognition.23"image_obj_name = "rose_flower_54_11.jpeg"try:rkClient = boto3.client("rekognition", region_name="us-east-1")try:rkResponse = rkClient.detect_labels(Image={'S3Object': {'Bucket': bucket_name,'Name': image_obj_name}},)print(rkResponse['Labels'])return rkResponse['Labels']except Exception as e:print("Get labels failed because ", e)except Exception as e:print("Client connection to Rekognition failed because ", e)

注意:请将代码中的存储桶名称和对象名称替换为您自己的名称。

5.注意:如果您创建的存储桶名称不同或上传的对象与实验室中的不一致,输出/结果可能会有所不同。

6.点击“部署”按钮以保存函数。

任务3:测试Lambda函数

  1. 注意:请确保第6行和第7行的存储桶名称和对象名称与您的S3数据一致。
  2. 点击“测试”按钮,事件名称:输入LambdaTest,然后点击“保存”按钮。
  3. 再次点击“测试”按钮。
  4. 现在,在Lambda的执行结果中,Rekognition将根据图像返回标签。
  5. 它将以JSON格式提供数据,包含标签名称以及它对从图像中检测到该标签的置信度。

 

6.这就是我们使用Amazon Rekognition服务来检测图像中标签的方式。

 结语

通过本次实验室操作,我们成功创建了一个S3存储桶并上传了图像,配置并部署了Lambda函数,同时利用Amazon Rekognition服务实现了对图像标签的自动检测。通过这一步步的实践,我们不仅了解了如何将Amazon Rekognition与AWS Lambda集成,还掌握了如何高效地处理图像分析任务。这种无服务器架构为应用程序的扩展性和自动化提供了强大的支持,是实现AI功能的有效途径。

lab内容参考自whizlabs平台的lab实验,如需想要完整练习上面内容推荐去相关平台进行学习。

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

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

相关文章

前端宝典之五:React源码解析之深度剖析Diff算法

本文主要针对React源码进行解析&#xff0c;内容有&#xff1a; 1、Diff算法原理、两次遍历 2、Diff瓶颈及限制 3、Diff更新之单节点和多节点原理 一、Diff源码解析 以下是关于 React Diff 算法的详细解析及实例&#xff1a; 1、React Diff 算法的基本概念和重要性 1.1 概念…

【LeetCode每日一题】——301.删除无效的括号

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 广度优先搜索 二【题目难度】 困难 三【题目编号】 301.删除无效的括号 四【题目描述】 给…

【C++】————智能指针

作者主页&#xff1a; 作者主页 本篇博客专栏&#xff1a;C 创作时间 &#xff1a;2024年8月20日 一&#xff0c;什么是智能指针 在C中没有垃圾回收机制&#xff0c;必须自己释放分配的内存&#xff0c;否则就会造成内存泄露。解决这个问题最有效的方法是使用智能指针&…

Spring模块详解Ⅱ

目录 Spring Beans模块详解1. 什么是 Bean?2. Spring Bean的配置方式2.1 基于 XML 配置例子&#xff1a; 2.2 基于注解配置例子&#xff1a; 2.3 基于 Java 配置&#xff08;JavaConfig&#xff09;例子&#xff1a; 3. Bean 的生命周期生命周期回调的例子&#xff1a; 4. Bea…

Oracle+ASM+High冗余详解及空间计算

Oracle ASM&#xff08;Automatic Storage Management&#xff09;的High冗余模式是一种提供高度数据保护的策略&#xff0c;它通过创建多个数据副本来确保数据的可用性和安全性。 以下是关于Oracle ASM High冗余的详细解释&#xff1a; 一、High冗余的特点 1.数据冗余度 在Hi…

极速闪存启动:SD与SPI模式的智能初始化指南

最近很多客户朋友在询问我们 CS 创世 SD NAND 能不能使用 SPI 接口&#xff0c;两者使用起来有何区别&#xff0c;下面为大家详细解答。 SD MODE: CS 创世 SD NAND 支持 SD 模式和 SPI 模式&#xff0c;SD NAND 默认为 SD 模式&#xff0c;上电后&#xff0c;其初始化过程如下…

【Word多级标题完整设置】设置各级标题样式将多级列表链接到各级标题样式中

Word多级标题完整设置 一、设置各级标题样式主标题样式设置中英文字体、字形以及字号设置段落设置&#xff08;缩进、间距和行距&#xff09; 一级标题样式设置中英文字体、字形以及字号设置段落设置&#xff08;缩进、间距和行距&#xff09; 二级标题样式设置中英文字体、字形…

深度学习基础—Batch Norm

对于一个神经网络我们知道&#xff0c;归一化输入特征是加速网络训练的技巧之一&#xff0c;因为归一化后&#xff0c;损失函数的图像就会由狭长变得更圆&#xff0c;那么这是否启发我们&#xff0c;在深度更深模型中&#xff0c;对各层的输出进行归一化&#xff0c;有益于下一…

day6 测试基础知识积累

JMeter 服务端系统性能测试是针对服务器端应用程序或服务 在特定负载下的运行能力和稳定性进行评估的方法。 产品文档应该有产品的性能指标&#xff0c;做性能测试前&#xff0c;如果需求文档没有性能指标则要向产品团队要。服务端系统性能测试 的常见指标有&#xff1a;TPS、…

ebpf教程(4.1):XDP程序的加载

文章目录 前言环境准备加载XDP程序源码构建过程运行 前言 前置阅读要求&#xff1a; ebpf教程(3):使用cmake构建ebpf项目-CSDN博客[译] [论文] XDP (eXpress Data Path)&#xff1a;在操作系统内核中实现快速、可编程包处理&#xff08;ACM&#xff0c;2018&#xff09;xdp-t…

kubeadm搭建生产环境高可用集群

前言 搞了好多天&#xff08;今天是20240819&#xff09;&#xff0c;中途遇到各种各样的问题&#xff0c;总算是可以用了 我这里用的vmware开了5台服务器做学习实践 K8S因为直接使用的 pkgs.k8s.io 仓库&#xff0c;所以直接拉取的最新release版&#xff08;v1.31&#xff09…

SIRA-PCR: Sim-to-Real Adaptation for 3D Point Cloud Registration 论文解读

目录 一、导言 二、 相关工作 1、三维点云配准工作 2、无监督域适应 三、SIRA-PCR 1、FlyingShape数据集 2、Sim-to-real自适应方法 3、配准 4、损失函数 一、导言 该论文来自于ICCV2023&#xff0c;论文提出了一种新的方法SIRA-PCR&#xff0c;通过利用合成数据Flying…

网易云音乐故障 2 小时,这次到底谁背锅?(今天记得领补偿)

大家好&#xff0c;我是程序员鱼皮&#xff0c;8 月 19 日下午&#xff0c;网易云音乐突发严重故障&#xff0c;并登顶微博热搜&#xff0c;跟黑神话悟空抢了热度。 根据用户的反馈&#xff0c;故障的具体表现为&#xff1a;用户无法登录、歌单加载失败、播放信息获取失败、无法…

了解数据库中常用存储引擎数据结构(2)

目录 深入了解B树及其变种 BTree BTree B*Tree BTree并发机制 B-Link Tree 深入了解B树及其变种 先把我们要解释的B树变种都列出来&#xff0c;B树的变种主要有B树、B*树、B-Link树、COW B树、惰性B树、Bw树等。 下面具体来分析这些变种的优势和发展趋势。 BTree 下图…

Taro+Vue 创建微信小程序

TaroVue 创建微信小程序 一、全局安装 tarojs/cli二、项目初始化三、现在去启动项目吧 一、全局安装 tarojs/cli npm install -g tarojs/cli //安装 npm info tarojs/cli //查看安装信息 如果正常显示版本说明成功了&#xff0c;就直接跳到第二步吧官网说&#xff1a;…

AI产品经理如何入门?零基础入门到精通,收藏这一篇就够了

现在做产品经理&#xff0c;真的挺累的。 现在产品越来越难做&#xff0c;晋升困难&#xff0c;工资迟迟不涨……公司裁员&#xff0c;产品经理首当其冲&#xff01;&#xff01; 做产品几年了&#xff0c;还没升职&#xff0c;就先到了“职业天花板”。 想凭工作几年积累的…

BFS解决单源最短路问题

目录 迷宫中离入口最近的出口 最小基因变化 单词接龙 为高尔夫比赛砍树 迷宫中离入口最近的出口 题目 思路 使用宽度优先遍历解决这道题&#xff0c;需要一个二维数组标记是否被遍历过&#xff0c;也需要一个队列辅助完成宽度优先遍历&#xff0c;类似于水波纹一样&#x…

JAVA基础:File类

目录 前言 file对象的创建 file的常用方法 前言 file类表示的是系统中的一个文件或者文件夹 file类和系统中的文件或者文件夹不需要是一一对应的&#xff0c;我们可以在file类中写你系统中不存在的文件或文件夹 file类中存储的实际上是文件或文件夹的抽象路径&#xff0c…

面试经典算法150题系列-最长公共前缀

最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 输入&#xff1a;strs ["flower","flow","flight"] 输出&#xff1a;"fl"示例 2&…

软件测试 - 自动化测试(概念)(Java)(自动化测试分类、web自动化测试、驱动、selenium自动化测试工具的安装)

一、自动化的概念 ⾃动洒⽔机&#xff0c;主要通上⽔就可以⾃动化洒⽔并且可以⾃动的旋转。 ⾃动洗⼿液&#xff0c;免去了⼿动挤压可以⾃动感应出洗⼿液 超市⾃动闸⻔&#xff0c;不需要⼿动的开⻔关⻔ ⽣活中的⾃动化案例有效的减少了⼈⼒的消耗&#xff0c;同时也提⾼了⽣…