添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

关于如何训练你的BME688传感器的完整指南

各位科技爱好者,大家好!博世发布了 BME688 ,一个令人敬畏的新传感器,可以分辨出多达四种不同的气味。本指南将解释教你的BME688如何区分气味的所有细节。如果你是人工智能或Python的新手,请不要担心。本指南适合于初学者。

所以,让我们直接跳到前面。

  • BME688分线板 博世BME688气体传感器开发套件
  • 产生所需气味的标本
  • 一个密闭的容器来放置传感器和标本
  • 博世的BSEC和AI工作室
  • 选择你的应用
  • 1.选择你的应用程序

    第一步是选择你的应用。在本指南中,我将使用肉类和奶酪作为例子。但是有无穷无尽的可能性。你可以区分水果和蔬菜,或者清洁剂和香水。你也可以尝试确定食物何时变坏。

    在选择应用程序时,有一些事情你应该考虑。你需要为你想区分的每一类提供许多标本,以确保算法变得强大。开始时,你应该选择一些便宜的、可广泛使用的东西。还要记住,最好使用正常空气作为其中一个类别,因为它几乎总是存在的。

    为了创建一个强大的算法,你应该对每个标本使用至少半小时的测量数据。因此,能产生恒定香味的标本是一个很好的选择。还要确保使用范围广泛的标本。例如,如果你只用橙子、柠檬和酸橙作为水果类,传感器可能无法将覆盆子归类为水果,因为它与你用于训练的标本差别太大。使用的不同标本越多越好。

    一旦你确定了你的选择,就该创建一个新的AI Studio项目了。打开AI Studio并按下 创建项目... 按钮。按下 配置BME板 如果你想用一个特定的配置来记录数据。

    2.记录数据

    这个过程是不同的,取决于你是否使用了 BME688分线板 博世BME688气体传感器开发套件 (进一步的穿梭板)。穿梭板更容易使用,捕获数据的速度将比突破板快八倍,但它的价格要高得多。我将在下面的章节中详细解释这两种方法。

    请注意。 BME688传感器需要一些时间来适应环境和烧制。确保在记录训练数据之前让它运行至少24小时。

    用BME688梭子板记录数据

    BOSCH为穿梭板配备了8个BME688传感器,因此它在相同的时间内产生了8倍的数据。所有的软件都已安装,开箱即用。观看 博世的这个视频教程 以了解测量过程。

    如果你在一次会议上记录了许多标本,你可能想记下标本的顺序,以避免混淆。你可以在以后的AI Studio中随时裁剪数据,所以不要害怕捕捉大量的数据。

    用BME688分线板记录数据

    如果你在使用 BME688分线板 我仍然建议你观看 博世教程 因为它提供了一些关于AI Studio的训练过程的有用信息。但是为了记录训练数据,还需要一些额外的步骤。

    我们在 pi3g 为BME68X传感器创建了一个Python库,你可以用它来升级 博世BSEC 2.0 .因此,如果你有一些python的经验是有帮助的,但这不是必须的。

    请注意。 请直接在我们的网站上查看安装和使用说明。 GitHub .

    首先克隆我们的 bme68x-python-library .这可以通过在bash终端执行以下命令来完成。

    git clone https://github.com/pi3g/bme68x-python-library.git

    现在你需要构建和安装bme68x python模块。该 BSEC 2.0 是专利软件,所以你需要直接从博世下载2.0.6.1版本,并同意他们的许可。将其解压到bme68x-python-library文件夹中,然后执行这些命令。

    cd path/to/bme68x-python-library
    sudo python3 setup.py install

    现在你可以运行 bmerawdata.py 脚本的默认设置。

    cd tools/bmerawdata
    python3 bmerawdata.py

    脚本将在每次测量后显示记录的数据。终止脚本并将数据保存在AI Studio兼容的文件中,按 Ctrl+c .

    3.训练该算法

    无论你是否在使用 BME688分线板 博世BME688气体传感器开发套件 ,下一步是将数据导入AI Studio。按下 进口数据 按钮并选择你的.bmerawdata文件。

    导入数据对话框

    你的会议需要一个有意义的名字。选择一个列举的标本是合适的。

    你可以看到你的数据图表,例如气体数据通道的图表,如下图所示。

    气体数据通道

    如果数据来自梭子板,你可以在八个传感器的数据之间切换。每一条彩色的线代表了用来捕捉数据的加热器曲线的一个步骤。

    请注意。 在大多数情况下,你应该只使用气体数据通道进行训练。

    现在我们需要给我们的标本贴上标签。如果你用梭子板记录了数据,并使用板上的按钮来标记标本,你已经能够看到每个标本的模板了。你也可以裁剪标本并创建新的标本(例如,如果你用我们的突破板记录了多个标本)。

    标本标签和时间戳

    在你完成编辑会话后,按 进口数据 按钮,在对话框的右下角。

    一旦你导入并标记了所有的标本,就是创建和训练算法的时候了。

    选择 我的算法 在顶部点击 + 新算法 .给你的算法起个名字,代表它应该做什么,在我的例子中 芝士蛋糕(AirMeatCheese .然后添加类。我把我的类称为NormalAir、Meat和Cheese。选择哪些标本属于哪个类,并为每个类选择一种颜色。

    命名你的算法
    命名你的算法
    编辑你的班级
    编辑你的班级

    要添加或删除标本,你可以点击其中一个类别。下面是一个例子,说明 肉类 类看起来像。

    肉类的观点
    肉类的观点

    在类的下面,你可以看到一些关于算法的额外数据。

    额外的算法数据
    额外的算法数据

    数据平衡显示了每个类别的总测量时间。为了确保最佳性能,每个类别的测量时间应该是相等的。如果其中一个类的测量时间远远大于此,你可能会遇到算法对该类的偏见。还要注意每个标题前面的问号按钮。按下它可以获得更详细的信息。

    请注意。 请务必查看BME688 AI Studio文档以了解更多信息。

    在数据通道下,您可以选择四个传感器输出中哪一个用于您的算法。我建议只使用气体数据通道,因为其他通道主要取决于环境而不是样本。一旦你设置好了一切,就可以进行训练了。

    培训和出口

    训练你的算法
    训练你的算法

    在这里你可以选择训练方法、最大轮数和数据分割。如果你是神经网络的新手,你应该把一切都保持在默认设置。不过,我将尝试对这些设置进行简单的解释。

    在我写这篇文章时,唯一可用的训练方法是ADAM优化器。这是一种寻找误差函数最小值的具体方法(误差越小意味着预测越准确)。你可以选择不同的批次大小来提高训练速度和稳定性。

    增加最大的训练轮次是提高算法性能的另一种方法。对于每一轮(通常被称为epoch),AI Studio将整个训练数据集送入神经网络中。这意味着更多的最大回合数将增加训练算法的时间。大多数时候,AI Studio会检测是否达到了最小值,并在达到最大轮数之前完成训练。这就减少了训练时间,避免了过度拟合。

    过度拟合意味着神经网络对训练数据进行了过多的调整。如果该算法在训练中的准确率非常高,但在实际测试中的表现却很差,你可能想减少最大训练回合。

    数据分割设置允许你选择多少记录的数据被用于训练,多少被用于测试。你应该避免将超过三分之一的数据用于测试。顾名思义,该算法将只使用训练数据进行训练。训练结束后,AI Studio将使用测试数据对算法进行评估,因为它以前从未见过这些数据。

    新闻 训练神经网络 来开始训练。你会看到估计的剩余训练时间和准确度和损失的线图。

    在每个历时中,准确度和验证准确度应该提高,而损失和验证损失应该减少。等到训练结束。

    训练完成后,检查混淆矩阵。它包含关于训练结果的重要信息。最有趣的统计数字是准确率,但如果你的训练数据分布不均,那么F1得分可能是一个更好的指标。

    混淆矩阵和训练结果
    混淆矩阵和训练结果

    你很少会达到超过90%的准确度,所以如果准确度高于80%,你应该导出算法来测试。我们将用我们的检测气味的 码头 网络界面。请确保导出BSEC 2.0.6.1版本的算法,因为 码头 到目前为止只支持这个版本。

    请注意。 在大多数情况下,培训将在达到预计期限之前完成。

    4.检测气味

    要检测气味,只需安装 码头 客户端,并将其连接到你的账户。如果你没有 码头 然而,只需免费注册,并按照那里的指示进行操作。我们的数字鼻子应用程序允许你上传你训练的算法,并通过网络界面看到实时预测。请看 数字鼻帮助 以获得关于如何使用该应用程序的完整解释。

    另一种检测气味的方法是通过使用我们的 BME68X Python扩展 .这需要一些python编码,但提供更多的控制,并允许你使用你的算法创建自己的应用程序。请参考 README.md ,在 文档.md 例子 文件夹,以了解如何安装和使用该扩展。

    所以你有了它。你现在应该能够记录数据,训练你的算法并检测气味。如果你觉得本指南有用,或者在遵循本指南时遇到任何麻烦,请让我知道。

    请与我联系: [email protected]