电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>基于Microsoft Azure和Raspberry Pi的鸟类探测器

基于Microsoft Azure和Raspberry Pi的鸟类探测器

2022-12-01 | zip | 0.23 MB | 次下载 | 免费

资料介绍

描述

介绍

最近,我参加了一项名为“ Azure Data and AI Challenge ”的云技能挑战赛,该挑战赛由微软发起,旨在让开发人员在探索多样性和包容性的旅程中学习 Azure Data & AI 技术以及可访问性。看法。就我而言,我非常喜欢这种学习形式,因为每个模块都包含明确的目的、详细的概念解释、分步教程,以及免费的 Azure 云资源供用户练习。这让我想起了我在课堂上的经历。我们不仅要知道“什么”,还要学会知道“怎么做”。

我遇到的一个特殊学习模块称为“使用自定义视觉分类濒危鸟类”。在本模块中,我们使用 Azure 认知服务自定义视觉创建模型来识别鸟类的种类!更具体地说,我们可以构建一个机器学习模型,该模型将按物种识别图像中的鸟类。

巧合的是,上周有一个鸽子家庭加入了我们,并在我的窗前筑了一个巢。多么惊喜!今天早上他们在巢里下了两个蛋。这些小动物给我们带来了无尽的快乐。我儿子总是尽可能靠近窗户仔细观察它们。然而,当人类靠近时,鸽子看起来有点害怕。

完成学习后,我想到了一个主意。为什么不使用 Azure 自定义视觉来识别我们窗户旁边的鸟呢?但是,如果按照上面提供的学习路径中的步骤,我们应该在PC上上传图像并得到结果,这对于实时监控来说是相当不便的。经过一番思考,我决定用树莓派网络摄像头作为物联网终端来实现日常监控。然后,我们不必出现在窗户旁边看鸟。PIR 传感器将触发过程拍摄图像,并将图像传输到 Azure 自定义视觉以获取检测结果。然后,Raspberry Pi 会将结果图像上传到 Azure Blob 存储,该存储可从 Internet 随处访问。

如果你对这个项目感兴趣,你可以学习我在这个集合中创建的路径:AI Bird的集合我已邀请我的朋友在 Twitter:Twitter Post上完成学习模块完成这些模块后,您就迫不及待地基于 Azure AI 和 IoT 技术制作自己的项目。

系统总览

如图2所示,整个系统由Raspberry Pi终端、Azure Custom Vision、Azure Blob Storage和用户设备组成。我们将 USB 网络摄像头(或 Raspberry Pi 官方摄像头)和 PIR 传感器连接到 Raspberry Pi 以进行图像捕捉和鸟类检测。一旦鸟靠近 PIR 传感器,它就会向 Raspberry Pi 发送信号,表明某种动物正在接近。然后树莓派会通过摄像头拍照并发送到 Azure Custom Vision 服务获取结果。我们将使用 PIL 库绘制一个矩形来突出显示我们在图片中检测到的对象。最后,树莓派会将图片上传到 Azure Blob Storage 供用户在任何地方查看。

pYYBAGNxH5CABL7DAACJwqX4Itg159.jpg
图 2 系统概述
 

硬件

微软 LifeCam HD-3000

树莓派

PIR 传感器

HMDI 屏幕(可选)

Azure 资源

我们将在项目中使用 Microsoft 帐户。如果没有,请申请一个。我们在这个项目中使用的所有资源都作为沙箱提供。沙盒只能用于完成 Microsoft Learn 培训。禁止出于任何其他原因使用,并可能导致永久失去对沙盒的访问权限。请注意,您沙箱中的所有资源在 4 小时内可用。一旦时间到了,它们将被丢弃。

项目指导

步骤 1 至步骤 6 与模块“使用自定义视觉分类濒危鸟类”中的步骤非常相似不同之处在于我们在这里创建了一个对象检测项目而不是分类项目。如果你只是想实现鸟类的分类,请参考学习模块中提供的步骤。

1. 下载数据集

数据是我们创建机器学习模型所需的第一件事。我们将使用来自康奈尔实验室的 NABirds 数据集的一个子集来训练我们的模型。下载包含数据集的 zip 文件:bird-photos.zip

下载完成后,解压缩文件,如图 3 所示。记下文件夹位置,因为您将在后面的步骤中需要它。我们会发现,这个褶皱里总共有 16 种鸟类。每种包括大约 120 张图像。

poYBAGNxH5KAX8FVAACYhG-CsIU912.png
图 3 鸟类数据集
 

2. 创建自定义视觉 API 资源

接下来,我们将在 Azure 认知服务自定义愿景中创建一个 API 资源。

在 Azure 门户中,选择“创建资源”。

搜索自定义视觉。在搜索结果的自定义视觉卡中,选择创建。

在 Basics 选项卡上,输入或选择所需的值:

⦁ 选择您的 Azure 订阅。如果我们使用沙盒,默认订阅是 Concierge Subscription。

⦁ 默认资源组为 learn-******

⦁ 输入新自定义视觉服务资源的名称(例如,BirdCustomVisionDemo)。

⦁ 在培训资源下:将培训位置设置为最近的点。

⦁ 将培训定价层设置为免费 F0(每秒 2 次交易)。

⦁ 在预测资源下:

⦁ 将预测位置设置为我们在上面选择的位置。

⦁ 将预测定价层设置为免费 F0(每秒 2 次交易)。

⦁ 选择查看 + 创建。

⦁ 选择创建。

详情请参阅图 4。

pYYBAGNxH5WAQLUZAAENZA9qfKE552.png
图 4 创建自定义视觉资源
 

3.上传数据

上传图片有两种方式。首先,在自定义视觉门户中,我们可以选择、上传、然后标记图像。或者,如果我们有大量数据、图像类和标签要上传,我们可以使用自定义视觉 SDK。在这里,我们使用自定义视觉门户进行图像上传。

转到https://www.customvision.ai/projects并登录。选择新建项目。

在创建新项目中:

⦁ 对于名称,输入您选择的项目名称。

⦁ 对于描述,输入模型的简短描述。(例如,DetectBirds)。

⦁ 对于资源组,选择您在 Azure 门户中创建的资源组。

⦁ 对于项目类型,选择对象检测。

⦁ 对于域,选择常规。有关详细信息,请参见图 5。

poYBAGNxH56AFsUWAAE2_Nkb_ds037.png
图 5 创建自定义视觉项目
 

选择创建项目。

现在,是时候在图片中为鸟类添加图像和标签了。在您的自定义视觉项目中,选择添加图像。

Open中,转到从数据集 zip 文件中提取图像文件的birds-photo 文件夹。

打开鸟类物种文件夹。

选择Ctrl + A以选择物种文件夹中的所有图像,然后选择Open

上传后,我们应该在每张图片中标记对象。详情请参阅图 6。

pYYBAGNxH6KACV91AAFE6z4FQmQ975.png
图 6 标记图像中的对象。
 

重复上述步骤,上传下载数据集中每个鸟类文件夹中的照片。

4. 训练数据

我们已经在自定义视觉中创建了我们的数据集。现在,是时候训练我们的模型了。在自定义视觉门户中,选择我们的项目。在顶部菜单栏中,选择训练在选择培训类型中,选择快速培训,然后选择培训如图 7 所示。

poYBAGNxH6WAYtsrAADsFqSbbi4901.png
图 7 训练数据
 

训练完成后,有关模型如何为训练迭代执行的信息如图 8 所示。

pYYBAGNxH6eABmfNAACvuoAfxdM853.png
图 8 模型性能
 

当我们测试您的模型时,Custom Vision 会显示三个指标。指标是可以帮助您了解模型执行情况的指标。这些指标并不表明模型的真实性或准确性。指标仅告诉您模型对您提供的数据的执行情况。模型在已知数据上的表现如何让您了解模型在新数据上的表现。

精度:如果您的模型预测标签,则此指标表明预测正确标签的可能性有多大。

回忆:在模型应该正确预测的标签中,该指标表示您的模型正确预测的标签的百分比。

平均精度:通过计算不同阈值的精度和召回率来衡量模型性能。

5. 测试模型

让我们测试我们的模型,看看它在看不见的数据上的表现如何。我们将使用来自互联网搜索的鸟的图像。

在自定义视觉门户中,选择我们的项目。在顶部菜单栏中,选择快速测试在 Quick Test 中,将 URL 粘贴到 Image URL 中,然后按 Enter 以测试模型的准确性。预测如图 9 所示。我们会发现结果包括图像中的对象坐标,用红色矩形突出显示。

poYBAGNxH6mAPCp7AADmnWUFC8w151.png
图 9 测试模型
 

6.部署模型

我们可以通过获取预测 URL 或在应用程序中使用 API 来部署到端点。

在自定义视觉门户顶部菜单栏中,选择性能。选择发布Publish Model中,选择Prediction资源,然后为您的 Custom Vision 项目选择预测的名称。选择发布

选择预测 URL选项卡。如何使用预测 API中,我们可以得到如图 10 所示的 Key。

poYBAGNxH6uAJEwKAAEwMJSDDHw177.png
图 10 如何使用预测 API
 

此外,我们将获取 Endpoint 和 Project ID 以供进一步使用。可以在设置页面上访问它们,如图 11 所示。

pYYBAGNxH66ACKyZAAECGsl-PHM017.png
图 11 项目 ID 和端点
 

7.组装硬件

在这个项目中,需要一个树莓派、一个 USB 网络摄像头(树莓派官方的摄像头可以)和一个 PIR 传感器。如果您有 HDMI 屏幕,您可以直接在屏幕上看到结果。如果没有,您可以在 Raspberry Pi 上安装 VNC 服务器,并在您的 PC 或其他移动设备上通过 VNC 客户端与它进行交互。以下是我使用的模块:

⦁ 微软 LifeCam HD-3000

⦁ 树莓派 4

⦁ PIR 传感器。

⦁ Waveshare 7寸 HDMI LCD (B) (800*480)

PIR Sensor 配备三个引脚,即 Vcc、GND 和 Out。Vcc 和 GND 将连接到 Raspberry Pi 上的 5V 和 GND 引脚,而 Out 引脚将连接到 BCM 引脚 NO。4、原型如图12所示。

pYYBAGNxH7qAN7tCAAJ-bXQ2q0c296.jpg
图 12 项目硬件
 

8.安装必要的库

我们将使用 Azure 自定义视觉 Python SDK、Azure 存储博客 Python SDK 和 USB 摄像头。然后我们将使用 pip 工具和 apt-get 安装必要的组件,如下所示。

pip3 install azure-cognitiveservices-vision-customvision
pip3 install azure-storage-blob
pip3 install msrest
sudo apt-get install fswebcam

若要创建 Azure 存储帐户并查看有关如何使用适用于 Python 的 Azure 存储 Blob 客户端库的更多信息,请参阅此文档:适用于 Python 的 Azure 存储 Blob 客户端库

可以在 Azure 门户上查看连接字符串,如图 13 所示。

pYYBAGOIOgmAdpn4AAHQOon9Urc302.png
图 13 Azure Blob 存储的连接字符串
 

9.下载并运行代码

您可以从 Github 下载 python 代码:https ://github.com/shijiong/AzureCustomVisionBirdDemo 请确保您在第 14 行至第 17 行输入了您的自定义视觉项目的预测密钥、预测端点、项目 ID 和发布迭代名称。第 19 行至第 21 行中的连接字符串、容器名称和 blob 名称应为换成你的。详情请参阅图 14。

pYYBAGOIOguAEpeQAADE8bXwTRA268.png
图 14 项目的 Python 代码
 

其次,在第 33 行,我们将图像分辨率指定为 1280*720,这在您的项目中可能会有所不同。很重要的一点是,我们会根据第 46 行的预测 API 的结果在图像上绘制一个矩形。如果图像的分辨率不同,我们应该改变它,否则我们将无法获得识别对象的正确位置在图像上。

第三,我在第 41 行将预测概率的阈值设置为 0.9,您可以更改它以满足您的场景。

最后,如果你想在树莓派上查看预测图像,你可以取消注释第 49 到 52 行的代码。但是,上传过程将被阻止,直到你关闭图像。

我将设备部署在我的窗户旁边。将代码复制到您的 Raspberry Pi,使用 Thonny(Raspberry Pi 上预装的 Python IDE)打开它,然后运行。触发 PIR 传感器后,将捕获图像并将其传输到 Azure 自定义视觉以获取预测结果。如图 15 所示,识别的对象将被红色矩形突出显示。

poYBAGOIOg6AJrJnAAHn7dU3oJk476.jpg
图 15 物体检测结果
 

最后,图像将被传输到 Azure Blob Storage,如图 16 所示。您可以在任何地方查看它。

pYYBAGOIOhGACseSAAFug9uTcHw179.png
图 16 Azure Blob 存储中的图像
 

概括

在本教程中,我们设计了一个基于 Azure Custom Vision、Azure Blob Storage 和 Raspberry Pi 的鸟类检测器。然后给出了数据集上传、数据训练、模型部署、硬件搭建和操作流程的演示。希望这对那些需要在 Raspberry Pi 设备上使用 Azure 自定义视觉服务的人有用。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费