扩展 AWS DeepLens 以使用 AWS Lambda 发送 SMS 通知

2019 年 11 月 04 日

扩展 AWS DeepLens 以使用 AWS Lambda 发送 SMS 通知

AWS DeepLens 是一个带有摄像头的支持深度学习的开发人员工具包。它使您能够通过实操计算机视觉教程和预建模型来开发机器学习技能并进行扩展。


本博客文章将说明如何借助 AWS IoT 规则引擎和 Lambda 函数来利用云功能扩展 DeepLens 的本地功能。我们在这里介绍的简单功能是:在您通过 DeepLens 设备看到热狗后向您的电话号码发送 SMS 通知。我们期望有更多的高级用户扩展此功能以包含其他 AWS 云服务,例如 Amazon Elasticsearch Service (利用时间轴和帧为检测到的所有对象和面部构建控制面板和搜索界面)、Amazon Kinesis Analytics (构建有关在您的店面前走过的人数的异常检测模型)、Amazon Rekognition (使用名人识别和面部搜索 API 来识别您周围的 VIP) 和很多其服务。


这里有一张示意图展示了系统中数据的流动 – 从摄像头前部的物体一直到您口袋中的移动设备。



创建 Lambda 函数


首先,您将创建一个 AWS Lambda 函数,该函数将在云中运行并为具有足够高 (>0.5) 的概率获得热狗的人筛选来自您的 DeepLens 设备的消息。在此过程中,您还将在 AWS IoT 规则引擎中创建一条规则,用于从您使用 AWS Greengrass 部署到设备的 Lambda 函数获取消息。


  • AWS Lambda 控制台上,转到“Create Function”。

  • 筛选包含“iot-button-email”的蓝图并选择它作为您的蓝图模板。

  • 为您的 Lambda 函数指定一个名称。例如,Hotdog_Notifier”。

  • 在“Role”字段中保留“Create a new Role from template(s)”值。

  • 为新角色指定名称。例如,“Hotdog_Notifier_Role”。

  • 在“Policy Templates”中添加策略“SNS Publish policy”。

  • 在“aws-iot”部分中,切换为使用“Custom IoT Rule”。

  • 选择“Create a new rule”。

  • 为该规则指定名称 (例如,“search_hotdogs”) 和描述。

  • 在规则查询语句中放置以下 SELECT 查询:Select Hotdog from ‘/$aws/deeplens/KJHFD-DKJO87-LJLKD/inference’。此查询可捕获来自 DeepLens 设备的采用以下 JSON 格式的消息: { "Hotdog" : 0.5438 }

  • 在后面的复选框中启用“Trigger”。

  • 我们将在下一步中修改 Lambda 函数的代码。

  • 将环境参数从“email”更改为“phone_number”,并将您的电话号码作为“Value”放置。请注意,电话号码格式应包含国家/地区代码 (例如,美国号码 +15555555555)。您可以在 AWS SNS 常见问题中阅读有关针对 SMS 的国际支持的更多内容:https://aws.amazon.com/sns/faqs/#sms-related-questions

  • 选择“Create Function”按钮。

  • 切换为您刚刚创建的 Lambda 函数的“Configuration”。您可以查找左侧的配置选项卡 (“configuration”、“triggers”和“monitoring”)。

  • 在 Lambda 函数代码中,我们可以删除常规 SNS 订阅所需的所有帮助程序函数,例如 findExistingSubscription、createSubscriptioncreateTopic。删除“use strict”之前的所有代码。我们还将修改代码以直接发送 SMS:

  • Python


   'use strict';
/** * This is a sample Lambda function that sends an SMS Notification When your * Deep Lens device detects a Hot Dog * * Follow these steps to complete the configuration of your function: * * Update the phone number environment variable with your phone number. */
const AWS = require('aws-sdk');
const phone_number = process.env.phone_number; const SNS = new AWS.SNS({ apiVersion: '2010-03-31' });
exports.handler = (event, context, callback) => { console.log('Received event:', event);
// publish message const params = { Message: `Your DeepLens device just identified a Hot Dog. Congratulations!`, PhoneNumber: phone_number }; if (event.Hotdog > 0.5) SNS.publish(params, callback); };
复制代码


  • 选择“Save”。您也可以在此屏幕中测试 Lambda 函数,但我们现在将通过 IoT 规则引擎测试它,以模拟来自 DeepLens 设备的消息流。


测试配置


  • IoT 控制台中,选择“Test”选项。

  • 在以下消息上方选择“Publish to a Topic”和“Publish to the topic you defined in your Rule”: { "Hotdog": 0.68725 }

  • 您应该会收到 SMS 通知,其中包含消息“Your DeepLens device just…”,该消息是您在 Lambda 函数中定义的。

  • 现在是时候向您的 DeepLens 设备展示一些对象和一根热狗了。祝您好运!

  • 如果您在向设备展示一根热狗后没有收到信息,请回到顶部的图表,然后验证您是否按照颜色匹配了相关值以及是否提供了正确的电话号码和国家/地区代码。


结论


Amazon DeepLens 是一个开放式教育和创新平台,我们希望开发人员能提出很多不同的想法来使用它解决现实生活中的问题:从分析在商店周围走动的人员到为您的汽车自动打开车库门,或者在您的餐厅里的桌子很脏或客人请求服务时提醒您。这只是您可以使用 AWS DeepLens 构建 (借助与本博客文章中的简单扩展类似的扩展) 的系统的一个小型示例。




补充阅读


了解如何通过 HTML 页面上的 AWS DeepLens 自定义和显示项目输出





作者介绍:



Guy Ernest 是 Amazon AI 的首席解决方案架构师。 他有一个令人非常兴奋的机会来帮助塑造和践行策略,以构建思想共享并广泛使用适用于 AI、机器学习和深度学习使用案例的 Amazon 云计算平台。在空闲时间,他喜欢与妻子和家人呆在一起,收集一些令人尴尬的故事,然后在谈论 Amazon 和 AI 的未来时进行分享。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/extend-aws-deeplens-to-send-sms-notifications-with-aws-lambda/


2019 年 11 月 04 日 08:00117

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

初识进程coredump(以中间件为例)异常宕机

清康

总结

武鹏

百万并发「零拷贝」技术系列之Linux实现

码农神说

Java 架构 零拷贝

LeetCode题解:142. 环形链表 II,JavaScript,HashMap,详细注释

Lee Chen

LeetCode 前端进阶训练营

作业1

武鹏

智能边缘,开启中国“数”“智”新时代

飞天鱼2017

环信大学:从IT建设模式变化看客户中心发展

DT极客

云小课|带你揭开IP地址的神秘身份

华为云开发者社区

网络安全 IP 网络 服务器 华为云

第八周架构师训练营作业

子豪sirius

人车识别实验丨华为ModelArts VS 百度Easy DL硬核体验

华为云开发者社区

百度云 AI 车联网 物体检测 华为云

【写作群星榜】7.18~7.24 写作平台优秀作者 & 文章排名

InfoQ写作平台

写作平台 排行榜

影响地图:业务敏捷中你需要掌握的可视化力量

华为云开发者社区

敏捷 敏捷开发 业务线 需求 华为云

2020掠夺者刀锋500搭载英特尔十代酷睿处理器硬核上阵

飞天鱼2017

Flink 使用大状态时的一点优化

Apache Flink

flink RocksDB

Java 线程池

陈皮

从业14年的SaaS业务牛人,为你拆穿SaaS创业骗局

北柯

互联网 SaaS IT 创业者

简易web性能工具

王鹏飞

耦合层:撮合物联网的理论与实践牵手的“月老”

华为云开发者社区

AI 物联网 IoT 低耦合 华为云

艺术鬼才,Unicode 字符还能这么玩?

楼下小黑哥

html 互联网 后端 js

3. 懂了这些,方敢在简历上说会用Jackson写JSON

YourBatman

json Jackson Fastjson

漫画解读:唐僧师徒是如何用CDN神力,修复雷音寺官网的?

巨侠说

CDN

云图说|“真人?机器?傻傻分不清!” WAF Bot管理,带你慧眼辨“精”!

华为云开发者社区

bootstrap 搜索引擎 安全 防火墙 华为云

移动互联网系统与应用安全国家工程实验室联合中国信息通信研究院安全研究所和智游网安公司共同发布《全国移动App风险监测评估报告》

InfoQ_11eaedef67e9

移动应用安全 大数据报告 App风险

北京麻辣女程序员的生存现状

北柯

阿里巴巴 阿里云 程序员 北京行动计划

一文带你学习DWS数据库用户权限设计与管理

华为云开发者社区

数据库 数据 用户权限 数据安全 华为云

判断字链表伪代码

Mr.Monkey

MySQL主从复制详解

Simon

MySQL 主从复制

两个单向链表的合并判断

任小龙

百度官方论文复现营!顶会审稿人28天手把手带你复现顶会论文

百度大脑

人工智能 百度 AI GAN 视频分类

第八周架构师训练营学习心得

子豪sirius

Java 8 中的函数式接口

陈皮

扩展 AWS DeepLens 以使用 AWS Lambda 发送 SMS 通知-InfoQ