时间:2021-07-15 | 标签: | 作者:Q8 | 来源:AWS云计算网络
小提示:您能找到这篇{使用Jetson nano结合AWS机器学习和IoT实现边缘智能}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的使用Jetson nano结合AWS机器学习和IoT实现边缘智能内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
< ">一、一些概念 在正式开启AWS边缘智能之前,我们先了解一些基础概念: 1.1边缘智能(Edge Intelligence,EI)是指在“终端侧”部署人工智能。为什么只在云端做推理不行?众所周知,人工智能(AI)正在成为改变各行各业的通用技术。此前绝大部分AI是依赖云端实现的事件舆情分析,因为云端有更丰富的算力、GPU资源、机器学习平台等。随着AI芯片和边缘算力的不断发展,EI已成为未来的趋势。 1.2边缘计算定义:OpenStack基金会对外发布的白皮书《边缘计算–跨越传统数据中心》对“边缘计算”这一概念进行了清晰的阐述,边缘计算是为应用开发者和服务提供商在网络的边缘侧提供云服务和IT环境服务,“边缘”指的是位于管理域的边缘,尽可能地靠近数据源或用户。其目标是在靠近数据输入或用户的地方提供计算、存储和网络带宽。但不同的行业对应边缘计算的定义可能不同。基于物联网技术的行业更多的边缘侧旨在设备端。 1.3 Jetson Nano是NVIDIA推出边缘AI的开发板,GPU使用NVIDIA Maxwell?架构,配备128个NVIDIA CUDA?核心,开发者们可以基于Jetson Nano开发很多EI的应用。 Jetson Nano Developer Kit 1.4边缘计算与IoT云平台,边缘计算与云计算平台将是共生互补。边缘计算并不会取代云计算,而是通过边缘侧的算力,让传统的云计算框架进一步去中心化,在边缘侧完成部分计算工作,然后将结果汇聚到云端进行统一处理。云端也可以通过OTA,模型的训练后的下放与边缘端集成到一起。云端仍旧可以处理时间不敏感的应用场景,通过数据的汇聚以及云端的大数据分析进一步为业务的决策提供数据支撑。 < ">< font-size: 18px;">二、场景描述: 在本篇博客中,我们将通过AWS Greengrass和Jetson Nano实现图片的分类,AWS Greengrass通过Lambda处理图像分类的消息与调用本地的SageMaker训练好的Neo模型,然后通过Topic把图像分类的结果发送至AWS IoT Core。其中边缘推理部分使用了Greengrass ML inference。本篇博客以乐高恐龙图像分类作为开启EI亦或AIoT应用的开端。 恐龙图片分类素材 < ">< font-size: 18px;">三、技术架构: < ">< font-size: 18px;"> < ">< font-size: 16px;">AWS EI image classification AWS IoT Greengrass可将AWS无缝扩展至边缘设备,因此可以在本地操作其生成的数据,同时仍可将云用于管理、分析和持久存储。借助AWS IoT Greengrass,边缘设备可以运行AWS Lambda函数、Docker容器,基于机器学习模型执行预测、使设备数据保持同步以及与其他设备安全通信–甚至在没有连接Internet的情况下也可实现这些功能。 Amazon SageMaker是一种完全托管的机器学习服务。借助Amazon SageMaker,数据科学家和开发人员可以快速轻松地构建和训练机器学习模型,然后直接将模型部署到托管的生产就绪环境中。它提供了一个集成Jupyter Notebook的实例,供您轻松访问数据源以便进行探索和分析,因此您无需管理服务器。 Amazon SageMaker Ground Truth是数据标注的服务,为机器学习模型构建高品质的训练数据集。 Amazon SageMaker Neo使机器学习模型训练一次即可在云和边缘站点中的任何环境运行。Neo可自动优化TensorFlow、Apache MXNet、PyTorch、ONNX和XGBoost模型以部署在ARM、Intel和Nvidia处理器上,减少移植所需的时间和工作。但需要注意一点的是,Neo当前支持的是从TensorFlow、MXNet或PyTorch导出的图像分类模型,以及XGBoost模型。 本篇具体实现的流程如下图,在最后的参考链接会附有源代码和对应的库: AWS EI Demo流程图 < ">< font-size: 18px;">四、AWS EI实验步骤: < ">< font-size: 16px;">4.1图片标注(SageMaker GroundTruth) 在这次试验中,我们将使用SageMaker GroundTruth的服务来标注由乐高恐龙组成的图像训练集。 < ">< font-size: 16px;">步骤如下: 将未标注的数据集上传到S3上 在Sagemaker GroundTruth中创建一个私有的Labeling workforce 创建一个GroundTruth Labeling job 使用GroundTruth平台来标注图片 分析结果 < ">< font-size: 16px;">4.1.1下载未标注的数据集: 在这一步中,我们将未标注的数据集下载到本地,然后upload到刚刚创建的存储桶中作为SageMaker GroundTruth的数据输入。这个数据集中包含388个文件,其中包含6大分类(Brachiosaurus,Dilophosaurus,Spinosaurus,Stegosaurus,Triceratops and Unknown)。 数据集下载地址: https://ml-jetson-greengrass.s3.cn-north-1.amazonaws.com.cn/lego_dinosaurs_dataset.zip 或者 https://sagemaker-nvidia-webinar.s3.amazonaws.com/lego_dinosaurs_dataset.zip 将未标注的数据集上传到S3上: 在ap-northeast-1区域中创建一个S3存储桶并给存储桶唯一的命名.(比如,ground-truth-labelling-job-initials-20200112) < ">< font-size: 16px;">< font-size: 16px;">将download的数据集上传到刚刚创建的桶中。(因为下面的步骤我们需要做人工标注,所以建议将6大类的乐高恐龙分别选取2-3张作为需要标注的数据集即可) 在设置权限这一步保持默认即可,然后完成设置。 < ">< font-size: 16px;">4.1.2在GroundTruth中创建一个私有的Labeling workforce 这一步骤中我们将通过Sagemaker GroundTruth创建一个图像分类任务在ap-northeast-1。 打开AWS控制台>Amazon SageMaker>标签工作人员(Labeling workforces) 选择私有(Private)的标签然后创建私有团队(Create private team) 给私有标注的工作组命名 填写一个有效的邮箱地址 … 创建私有团队 < ">< font-size: 16px;">创建私有团队 当创建成功后,我们的邮箱会收到来自于no-reply verificationemail.com发来的验证邮件,这个邮件包含了我们创建workforce的用户名和临时密码。 < ">< font-size: 16px;">创建workforce 使用log in的连接和临时密码登陆到标注控制台进行标注。 此时会要求我们更改临时密码。 因为我们还没有分配给worker(我们自己)标注任务,此时标注任务是空的,下一步我们将分配给自己标注乐高恐龙的标注任务。 < ">< font-size: 16px;">4.1.3创建一个GroundTruth Labeling job 这一步骤就是我们创建一个标注的任务,然后分配给workforce。 打开AWS控制台>Amazon SageMaker>标记任务(Labeling jobs) Step1:指定任务详细信息中: —定义任务名称(记住任务名称,我们在notebook中的代码会用到) —创建清单文件(manifest),输入S3训练数据集的路径,注意要以/结尾。For e.g.:s3:///<prefix/foldername>/ 创建manifest —IAM角色,在测试环境中我们可以允许它访问所有的S3 bucket,当然我们可以指定它可以访问特定S3 bucket。 —任务类型,我们选择图像分类。 < ">< font-size: 16px;">任务类型 < ">< font-size: 16px;">< font-size: 16px;">Step2:选择工作人员并配置工具 选择“私有(Private)”>“私有团队(Private teams)在下拉框中我们已经在1.2创建过的”>“取消自动标记”>“其他配置中工作人员数量为1”>“图像分类标记工具中添加6个标签:Brachiosaurus,Dilophosaurus,Spinosaurus,Stegosaurus,Triceratops and Unknown” 返回标注作业的页面查看jobs的状态,此时我们的邮箱会有no-reply verificationemail.com发来的邮件,内容是分配给我1个jobs需要完成。 < ">< font-size: 16px;">4.1.4用GroundTruth平台来标注图片 这一步骤就是人工标注的过程,因为前面我们已经节选出13张有代表的图像,我们下面就对这13张图像进行标注即可。如下图: 当标注完成后,我们返回到Sagemaker平台上。可以跟踪标记任务的状态以及进度。 < ">< font-size: 16px;">4.1.5结果验证 我们可以用sublime text打开在output中的/manifests/output.manifest文件,它是一个json文件包含一些被标记图片的metadata.比如: Manifests格式 < ">< font-size: 16px;">4.2模型训练与优化 这一步我们主要的目的就是通过Amazon SageMaker notebook编写训练模型的代码,通过代码来调用云计算的资源,比如机器学习类型的instance。它将执行数据训练,并将训练和优化好的模型以Amazon SageMaker Neo导出。下一步将Amazon SageMaker Neo模型部署到Jetson Nano的设备上。如果不想对模型进行训练的话可以到参考链接处下载训练好的模型。 这个notebook主要是展示端到端机器学习的工作流程 使用Sagemaker GroundTruth创建的标签数据集。然后将数据集分为训练和验证。 < ">< font-size: 16px;">< font-size: 16px;">使用Sagemaker容器训练模型 使用Sagemaker Neo优化模型 4.2.1下载代码ipynb并导入到SageMaker notebook中 图像分类代码< font-size: 16px; color: rgb(127, 127, 127);">https://ml-jetson-greengrass.s3.cn-north-1.amazonaws.com.cn/sagemaker_image_clas营销型网站系统sification-Copy1.ipynb < ">< font-size: 16px;">注意不要使用参考链接中的github上的代码。 < ">< font-size: 16px;"> 创建Amazon SageMaker笔记本 < ">< font-size: 16px;">4.2.2部分代码解析 < ">< font-size: 16px;">< font-size: 16px;">在OUTPUT_MANIFEST要输入Sagemaker GroundTruth的output路径,前面的步骤已经验证过output的manifest的json格式。 代码解析-1 < ">< font-size: 16px;">< font-size: 16px;">在创建Sagemaker训练任务的时候,请根据自己数据集训练的个数来调整超参数(hyperparamerter)和训练instance的类型(InstanceType)如下: 代码解析-2 < ">< font-size: 16px;">< font-size: 16px;">在InputDataConfig替换AttributeNames为自己定义的name,比如: “AttributeNames”:[“source-ref”,”groundtruth-labeling-job-20191209-clone”] 启动训练作业,我们可以在Sagemaker notebook中查看到结果,也可以返回到Sagemaker控制台的训练任务中看到训练的状态。训练的时间长短取决于训练实例类型、数据集大小、超参数的定义。 Sagemaker notebook的训练状态 Sagemaker console的训练状态 < ">< font-size: 16px;">< font-size: 16px;">通过使用Sagemaker Neo来优化压缩模型给终端Jetson Nano使用,导出的模型路径我们要记录一下,在下一步骤部署GreenGrass的时候会用到。 模型导出 < ">< font-size: 16px;">小结: 回顾一下我们的Demo流程图,我们一起完成了第一部分:图片标注和第二部分模型训练与优化。下一章是我们的另一个重点,开始构建边缘环境与执行边缘推理。 AWS EI Demo流程图 |
上一篇:2020跨境电商未来出路,独立站精细化运营,Sho
下一篇:wish商家如何打造爆款?
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“使用Jetson nano结合AWS机器学习和IoT实现边缘智能”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通使用Jetson nano结合AWS机器学习和IoT实现边缘智能的相关事宜。
关键词:使用Jetson,nano结合AWS机器学