Skip to main content

Edgeimpulse

Edge Impulse

Edge Impulse 是边缘设备机器学习的领先开发平台,对开发者免费,并受到全球企业的信赖。

  • 通过 Edge Impulse,软件开发者、工程师和领域专家可以在边缘设备上使用机器学习解决实际问题,无需博士学位或高级嵌入式工程技能。从入门到生产中的 MLOps,Edge Impulse 在从 MCU 到 CPU 的各种硬件上提供最高的效率和速度。
  • 通过 EdgeImpulse 我们可以

  • 直接从设备收集数据集
  • 从其他来源收集数据集,如 .zip 文件、通过 API 或其他第三方云端摄取
  • 创建测试和训练数据并将它们放入不同的标签中
  • 训练我们的模型
  • 能够选择合适的机器学习算法 - EI 基于我们的数据集提供推荐的机器学习算法
  • 将其部署到我们的硬件上
  • 具有版本控制的 TinyML 项目协作
  • 以及更多帮助您构建 tinyML 应用程序的功能。
  • 快速实践体验

    在学习 Edge Impulse 的完整过程之前,我们提供了完整的预生成 Arduino 库,您可以通过直接将这个 Arduino 程序从草图刷写到 XIAO ESP32S3 Sense 来查看结果。

    在 Arduino 上设置 XIAO ESPS3 Sense

    在开始使用 Edge impulse 库之前,我们需要在 Arduino IDE 上设置 XIAO ESPS3,请查看 这里 的指南

    // the setup function runs once when you press reset or power the board
    void setup() {
    // initialize digital pin LED_BUILTIN as an output.
    pinMode(LED_BUILTIN, OUTPUT);
    }

    // the loop function runs over and over again forever
    void loop() {
    digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
    delay(1000); // wait for a second
    digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
    delay(1000); // wait for a second
    }

    确保在上传前选择正确的开发板和正确的端口。

    待办事项

  • 在 Arduino IDE 上安装 XIAO ESPS3 开发板
  • 在 XIAO ESPS3 上编译并上传 Blink 示例
  • 可用的 Edge Impulse 库

    我们也在并行推进,制作一些已经验证并编辑过的 Edge Impulse 导出的 Arduino 库,这些库可以直接与 XIAO ESP32S3 Sense 配合使用。当我们使用这些库时,我们在程序中有更多的控制权,可以做出决策。

  • 语音关键词识别(Yes & No)Arduino 库
  • 水果识别(苹果、香蕉、葡萄)Arduino 库
  • 如何使用 Edge Impulse Arduino 库

    这就像一个通用的 arduino 库,我们需要先在 Arduino IDE 上安装它,然后使用示例代码来运行演示。

    语音关键词识别(Yes & No)Arduino 库

    工作原理

    步骤 1. 下载 KWS 演示库

    下载 语音关键词识别(Yes & No)Arduino 库 库作为 .Zip 文件。

    步骤 2. 将 ZIP 库添加到 Arduino IDE

    由于您已经下载了 zip 库,打开您的 Arduino IDE,点击 Sketch > Include Library > Add .ZIP Library。

    选择您刚刚下载的 zip 文件,如果库安装正确,您将在通知窗口中看到 Library added to your libraries。这意味着库已成功安装。

    步骤 3. 运行推理代码

    复制上述代码或从 这里 下载,然后将代码上传到XIAO。

     // print the predictions
    ei_printf("Predictions ");
    ei_printf("(DSP: %d ms., Classification: %d ms., Anomaly: %d ms.)",
    result.timing.dsp, result.timing.classification, result.timing.anomaly);
    ei_printf(": \n");
    for (size_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) {
    ei_printf(" %s: ", result.classification[ix].label);
    ei_printf_float(result.classification[ix].value);
    ei_printf("\n");

    if (result.classification[ix].value > pred_value) {
    pred_index = ix;
    pred_value = result.classification[ix].value;
    }
    }

    // Display inference result
    if ((pred_index == 0 && (pred_value > 0.8))) {
    digitalWrite(LED_BUILTIN, HIGH); //Turn on
    } else if ((pred_index == 2) && (pred_value > 0.8)) {
    digitalWrite(LED_BUILTIN, LOW); //Turn off
    } else {
    //nothing to do.
    }

    在上面的代码中,我们可以看到在哪里做出了 打开 LED 关闭 LED 的决定。我们也可以在这里放置其他逻辑,让 KWS 来控制我们的项目。

    水果识别(苹果、香蕉、葡萄)Arduino 库

    步骤 1. 下载水果识别库

    下载 水果识别(苹果、香蕉、葡萄)Arduino 库 库文件(.Zip 格式)。

    步骤 2. 将 ZIP 库添加到 Arduino IDE

    由于您已经下载了 zip 库文件,请打开您的 Arduino IDE,点击 Sketch > Include Library > Add .ZIP Library。

    选择您刚刚下载的 zip 文件,如果库安装正确,您将在通知窗口中看到"Library added to your libraries"。这意味着库已成功安装。

    步骤 3. 运行示例代码

    您可以在 Files -> Examples -> xiao-esp323-fruits-classify_inferencing -> XIAO-ESP32S3-Sense 下找到示例代码

    试用演示

    这里 打开数据集示例页面并打开水果图像,然后将 XIAO ESP32S3 摄像头对准水果图像,在屏幕上查看结果。

  • 在 Arduino 上安装 XIAO ESPS3
  • 编译和上传
  • 安装 KWS Arduino 库并运行示例。
  • 安装图像识别库并运行示例。
  •