从您的IoT设备调用对象检测器-Wio终端


文档摘要

从您的IoT设备调用对象检测器 - Wio终端 一旦您的对象检测器发布,就可以从您的IoT设备中使用它。 复制图像分类项目 大部分现成的检测器与您在之前的课程中创建的图像分类器相同。 任务 - 复制图像分类项目 按照制造项目的第2课步骤将ArduCam连接到Wio终端。 您可能还想将摄像头固定在一个位置,例如,将电缆挂在盒子或罐子上,或者使用双面胶带将摄像头固定在盒子上。 使用PlatformIO创建一个新的Wio终端项目,并将其命名为 。 重复制造项目的第2课步骤中的步骤,从摄像头捕获图像。 重复制造项目的第2课步骤,调用图像分类器。这部分代码大部分将被重用以检测对象。 将代码从分类器更改为图像检测器 用于分类图像的代码与用于检测对象的代码非常相似。

从您的IoT设备调用对象检测器 - Wio终端

一旦您的对象检测器发布,就可以从您的IoT设备中使用它。

复制图像分类项目

大部分现成的检测器与您在之前的课程中创建的图像分类器相同。

任务 - 复制图像分类项目

  1. 按照制造项目的第2课步骤将ArduCam连接到Wio终端。

    您可能还想将摄像头固定在一个位置,例如,将电缆挂在盒子或罐子上,或者使用双面胶带将摄像头固定在盒子上。

  2. 使用PlatformIO创建一个新的Wio终端项目,并将其命名为stock-counter

  3. 重复制造项目的第2课步骤中的步骤,从摄像头捕获图像。

  4. 重复制造项目的第2课步骤,调用图像分类器。这部分代码大部分将被重用以检测对象。

将代码从分类器更改为图像检测器

用于分类图像的代码与用于检测对象的代码非常相似。主要区别在于从Custom Vision获得的调用的URL和调用的结果。

任务 - 将代码从分类器更改为图像检测器

  1. main.cpp文件顶部添加以下包含指令:

    #include <vector>
  2. classifyImage function to detectStock, both the name of the function and the call in the buttonPressed function.

  3. Above the detectStock函数重命名,并声明一个阈值来过滤掉任何概率较低的检测结果:

    const float threshold = 0.3f;

    与图像分类器不同,后者每种标签只返回一个结果,对象检测器会返回多个结果,因此需要过滤掉概率较低的结果。

  4. detectStock函数上方声明一个处理预测结果的函数:

    void processPredictions(std::vector<JsonVariant> &predictions) { for(JsonVariant prediction : predictions) { String tag = prediction["tagName"].as<String>(); float probability = prediction["probability"].as<float>(); char buff[32]; sprintf(buff, "%s:\t%.2f%%", tag.c_str(), probability * 100.0); Serial.println(buff); } }

    这个函数接收一个预测列表,并将其打印到串行监视器上。

  5. detectStock function, replace the contents of the for循环中,循环遍历预测结果,并添加以下内容:

    std::vector<JsonVariant> passed_predictions; for(JsonVariant prediction : predictions) { float probability = prediction["probability"].as<float>(); if (probability > threshold) { passed_predictions.push_back(prediction); } } processPredictions(passed_predictions);

    这个循环遍历预测结果,将概率与阈值进行比较。所有概率高于阈值的预测结果都将被添加到list and passed to the processPredictions函数中。

  6. 上传并运行您的代码。将摄像头对准货架上的物体并按下C按钮。您将在串行监视器上看到输出:

    Connecting to WiFi.. Connected! Image captured Image read to buffer with length 17416 tomato paste: 35.84% tomato paste: 35.87% tomato paste: 34.11% tomato paste: 35.16%

    您可能需要调整阈值以适应您的图像。

    您可以在自定义视觉中的预测选项卡中看到拍摄的图像以及这些值。

    货架上有4罐番茄酱,预测结果分别为35.8%,33.5%,25.7%和16.6%

您可以在code-detect/wio-terminal文件夹中找到此代码。

您的库存计数程序成功了!

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


发布者: 作者: 转发
评论区 (0)
U