内容已经转出,请移步以下网址:

https://viadean.notion.site

ESP32机器学习最邻近算法

 二维码 58
文章附图

本教程介绍了如何使用ESP32机器学习。 更详细地介绍了如何使用ESP32 KNN分类器根据对象的颜色对其进行分类。

KNN分类器

为了更好地理解我们将要构建的项目,了解分类器的工作方式很有用。 简而言之,KNN代表k最近邻算法。 该算法属于监督机器学习算法。 KNN假设相似的物体彼此靠近。 KNN尝试为对象分配标签,以测量其与训练阶段看到的其他标签的相似程度。

因此,在此ESP32 KNN机器学习示例中,我们有两个不同的阶段:

  • 第一阶段,我们训练算法,以便可以识别相似之处

  • 我们将算法应用于对象以进行识别

我们考虑的功能是三个颜色分量(红色,绿色,蓝色)。此外,KNN非常简单,因此可以在ESP32器件上实现。 这样,通过几行代码,我们可以尝试如何将Machine Learning与ESP32结合使用。

ESP32分类

现在,我们知道了KNN的工作原理,我们可以将注意力集中在ESP32上KNN的实现上。即使您可以使用另一个IDE,我们也将使用PlatformIO创建此项目。

首先,创建一个新项目。完整代码如下所示:

而与此项目一起使用的platformio.ini文件是:

分类器工作原理

首先,假设我们要对具有三种颜色的三个不同的球进行分类:

此外,我们使用三种不同的功能对这些对象进行分类或标记:红色,蓝色和绿色。

该代码为我们要检测的每个对象获取了30个样本。 为了代替使用接近传感器,我们将使用不同样本之间的延迟。 训练阶段完成后,在循环方法中,代码开始要求检测将被分类的对象。

ESP32机器学习 | 可视化结果 | 测试分类

要测试分类是否有效,我们需要三个不同颜色的对象。 我用了三个不同颜色球,您也可以使用其他物体。 让我们运行代码,在训练阶段的日志中,您应该会看到如下图所示的内容:

对于蓝色

另一个对象也发生同样的事情。训练阶段完成后,我们可以开始使用ESP32 KNN和TCS3200测试分类。

结果如下:

如果您更喜欢使用输出控制台,结果如下所示:

原理图


阅读完整文档