×

人工智能用水监测系统的构建

消耗积分:0 | 格式:zip | 大小:2.98 MB | 2023-06-26

14230

分享资料个

描述

水是地球上最重要的物质之一。所有植物和动物都必须有水才能生存。如果没有水,地球上就没有生命。除了为了生存而饮用,人们对水还有许多其他用途。随着人口的增长和地球上适合消耗的所有水的比例如此之小,我们必须保护和保护这一宝贵资源才有意义。

节约用水意味着明智地使用我们有限的水源并妥善呵护它。由于我们每个人都依赖水来维持生命,因此我们有责任更多地了解节约用水。节约用水是我们每个人的责任。

目的/目标

我打算建立一个人工智能用水监测系统,通过分析实时音频来检测水是被使用还是浪费。这与现有解决方案不同,因为我们使用人工智能来预测用水量。这很有用,因为使用这个系统,我们将节约用水。这是一种有趣的节水方式。

硬件设置

QuickLogic QuickFeather 开发套件

pYYBAGNxJXiAZfg4AArfD_fHiHk388.jpg
 

QuickFeather开发套件是一个小型系统,非常适合支持下一代低功耗机器学习 (ML) 物联网设备。与基于专有硬件和软件工具的其他开发套件不同,QuickFeather 基于开源硬件,与 Adafruit Feather 外形规格兼容,并围绕 100% 开源软件(包括 Symbiflow FPGA 工具)构建。

QuickFeather 由 QuickLogic 的 EOS™ S3 提供支持,这是第一款完全支持 Zephyr RTOS 的支持 FPGA 的 Arm Cortex®-M4F MCU

6V 3.5W 太阳能板

pYYBAGPjBTOAA-D4AAnJRphIAPo306.jpg
 

我将使用 6V 3.5W 太阳能电池板为 QuickLogic QuickFeather 开发套件供电。

配置您的 QuickFeather 开发工具包

在开始任何操作之前,您应该使用最新的数据收集固件刷新您的 QuickFeather 开发套件,以便与 SensiML 数据捕获实验室一起使用。您可以从此处下载二进制文件。

在此项目中,我们将使用简单流 - 通过 USB 串行二进制文件收集音频数据。

您可以从位于https://github.com/QuickLogic-Corp/qorc-sdk的 qorc github 存储库中的数据收集源构建您自己的二进制文件。

需要数据收集固件才能使用 Data Capture Lab 记录数据。运行知识包时禁用数据收集。

确保你的系统上安装了 Python;建议安装 Python 3.6 或更新版本。

您将需要 QuickLogic 的 TinyFPGA Programmer 来闪存您的设备。当您下载 TinyFPGA Programmer 时,您需要使用 git 从 github 克隆 repo。下载存储库的 zip 版本可能会导致意外结果。

用于git clone下载 TinyFPGA Programmer,git clone --recursive https://github.com/QuickLogic-Corp/TinyFPGA-Programmer-Application.git然后pip3 install tinyfpgab安装 Python 库。

将固件文件放在 TinyFPGA 编程器目录中,该目录还包含tinyfpga-programmer-gui.py. 通过 USB 插入设备并按下 QuickFeather 上的“重置”按钮。LED 将闪烁蓝色五秒钟。当 LED 仍在快速闪烁时按下“用户”按钮。按下“用户”按钮后,LED 将开始闪烁绿色,闪烁速度非常慢,就像“呼吸”一样。这意味着设备处于上传模式。如果 LED 没有闪烁绿色,则重复此步骤。

当 LED 呈绿色闪烁时,通过运行以下命令将数据收集二进制文件编程到 QuickFeather 中:

python /Your-directory-path-to-TinyFPGA-Programmer/tinyfpga-programmer-gui.py --port COMX --m4app /Your-directory-path-to-binary/quickfeather-audio-data-collection-usb-serial.bin --mode m4

如果固件文件和tinyfpga-programmer-gui.py它们在同一目录中,那么您可以通过运行以下命令来刷新您的 QuickFeather:

python tinyfpga-programmer-gui.py --port COMX --m4app quickfeather-audio-data-collection-usb-serial.bin --mode m4

在运行此命令之前,请确保在命令提示符中将目录更改为 TinyFPGA 程序员的目录。

COMX 是 QuickFeather 的 COM 端口。您可以通过转到控制面板中设备管理器中的端口来检查端口号(如果您使用的是 Windows 操作系统)。

刷新固件后,按“重置”按钮加载新应用程序。LED 应闪烁蓝色五秒钟,完成后熄灭。

SensiML 数据采集实验室

Data Capture Lab 是一个成熟的时间序列传感器数据收集和标记工具,它带来了一定程度的自动化数据集管理,开发人员已经习惯了编程工具,但直到现在,边缘 ML 软件仍然严重缺失。SensiML 的方法侧重于允许开发人员将数据集构建为持久的知识产权 (IP),可以根据需要轻松维护、修改、探索、扩展和导出。为建模过程提供良好数据会转化为良好的 ML 推理代码作为输出。[来源]

设置数据采集实验室

poYBAGNxJXqAAGZ5AAC52DnB2Bk687.png
 

首先,创建一个新帐户并下载合适的 DCL 软件。下载软件后,登录您的帐户。

创建一个新项目并将其保存在 SensiML 项目目录中。

打开项目后,单击切换模式并打开捕获模式。

设备插件是描述 DCL 如何从您的设备收集数据的属性列表。例如,设备插件可能包含您的设备支持的采样率列表。这允许 DCL 从任何已构建为接受以下支持参数的设备收集数据。

您可以从此处下载简单流协议的 example.SSF 文件。Data Capture Lab 允许您通过菜单项Edit Import Device Plugin导入 Device Plugins via.SSF 文件……接下来,您将能够选择您的插件协议。

配置您的传感器并设置适当的采样率。我们将在这个项目中使用麦克风。

QuickLogic QuickFeather开发套件中的麦克风为英飞凌IM69D130 MEMS麦克风,灵敏度为-36.0 dBFS,信噪比为69 dB(A)。

捕获数据

poYBAGPjBT-AGn_CAAD82RXQybY178.jpg
 

在 DCL 软件右侧的硬件设置中,将捕获方法设置为实时流捕获,并将连接方法设置为串行端口。

插入 QuickFeather 开发套件后,选择“查找设备”选项并单击“扫描设备”。选择适当的 COM 端口并连接您的设备。

在标签设置中,为您正在录制的事件创建一个标签。在本例中,标签为UsedWastedIdle在此之后,为当前录制选择元数据。我为元数据创建了一个并添加了两个值TrainTest

准备就绪后,按下记录按钮以捕获您的数据。

完成该过程后,切换到 Label Explorer 模式并选择 Project explorer。在其中,选择文件并确保数据准确地代表标签。为此,请将您的数据分成几部分。对项目资源管理器中的所有相关文件重复该过程。

转到“文件”菜单并选择“关闭文件”选项后,您现在可以使用 Analytics Studio 从捕获的数据生成模型。

保存在 DCL 中的数据会自动上传并存储在云端。

分析工作室

SensiML Analytics Studio 是 SensiML 软件套件的核心,它使用您标记的数据集使用 AutoML 和广泛的边缘优化功能和分类器库快速生成高效的推理模型。使用基于云的模型搜索,Analytics Studio 可以在几分钟或几小时内将您标记的原始数据转换为高性能边缘算法,而不是像手动编码那样需要数周或数月。Analytics Studio 使用 AutoML 来解决机器学习算法预处理、选择和调整的复杂性,而无需依赖专家手动定义和配置这些无数选项。

无论是经验丰富的 ML 专家还是刚刚学习数据科学的基础知识,Analytics Studio 提供的工具都可以显着提高您的嵌入式算法开发效率。[来源]

训练模型

转到Analytics Studio并登录到您的帐户。选择您现在在 Data Capture Lab 中创建的项目。

要训​​练模型,我们必须首先以查询的形式告诉 Analytics Studio 我们要使用哪些数据。这可以通过单击Prepare Data选项卡并输入名称、会话、标签、相关元数据、传感器以及绘制方式来完成。保存后数据集应该出现在右侧,我们可以看到每个标签中有多少段。

pYYBAGPjBUKADFnxAAEDJ35kCZ0670.jpg
 

可以通过转到Build Model选项卡并输入名称、刚刚创建的查询、窗口大小(使其与传感器的捕获率大小相同)、优化指标(f1-score 是最平衡的)来构建管道,和分类器大小,它限制了模型的大小,非常适合加载到 ROM 受限的芯片上。单击Optimize将完成并构建模型,根据数据集的大小,可能需要一段时间才能完成。

 
 
 
poYBAGPjBUWAa2hmAADZ4Z_9yTM341.jpg
 
1 / 3
 

生成知识包

该项目的最后一步是将机器学习模型部署到您的 QuickLogic QuickFeather 开发工具包。这可以通过获取知识包来完成。对于这个项目,我们将以二进制形式下载模型。在“下载模型”选项卡中,选择您刚刚使用以下设置优化的管道,如下图所示。

 
 
 
pYYBAGPjBUiALSyZAABnJHWZiXw528.jpg
 
1 / 2
 

下载 zip 文件并将二进制文件解压缩到包含tinyfpga-programmer-gui.py. 按照用于刷新简单流固件的相同步骤进行操作。我已在论坛中寻求帮助。

未来更新

  • 由于斯里兰卡目前处于封锁状态,我无法购买 Adafruit Huzzah32 - ESP32 Feather 板。

未来,我想:

  • 将 Adafruit Huzzah32 - ESP32 Feather 板与 QuickFeather 开发套件结合使用,并将此 POC 转变为物联网 POC。
  • 在各种情况下测试机器学习模型,并将可变数据提供给机器学习模型以提高其准确性。
  • 使用更高的采样频率试验我的机器学习模型。
  • 使用显示用水情况的显示器改进我的项目。
  • 添加一个电磁水阀来控制水龙头,不用时关闭。
  • 想办法自动为为 QuickFeather 开发板供电的锂离子电池充电。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !