资料介绍
描述
这是全文的简化版本,为了简单起见,以便可以轻松地完成该项目的复制。在该模型中,使用与光相关的电子元件和机器学习机制进行颜色检测和识别;它本质上是一个 RGB LED 和一个 CdS 单元(光传感器,或 LDR)的组合,两者都与环境光隔离。这些组件分别发射和感应从特定颜色的物体反射的每种光(红色、绿色和蓝色)的强度。
多层感知器
多层感知器 (MLP) 是人工神经网络的前馈架构,具有输入(非神经)层、隐藏层和输出层。该网络通过反向传播算法进行训练,执行监督学习(通过示例学习)。
对于这个颜色传感器,上面说明的神经网络接收3 个输入(RGB 值),一个隐藏层有 6 个神经元,一个输出层有 10 个神经元- 只是回忆一下:输出层必须具有相同数量的类(颜色,in这种情况下),用于二值化输出。对于本教程,网络已经过训练并且能够识别颜色 :)。有关训练步骤和用于它的示例数据集的更多详细信息,请查看我博客中的完整帖子。
颜色识别
可以使用我们训练有素的 MLP 网络来执行此任务。它允许对空间可分离的模式进行分类和识别——在这种情况下非常有用。在其训练步骤中,网络将区域映射到下图所示的 RGB 颜色空间中,因此被超平面隔离的每个区域都代表一种颜色。因此,每个新的 RGB 颜色模式(表示为 3D 点)都属于特定区域,被分类为其各自的颜色。
为了使用 MLP 获得泛化以更好地识别 RGB 模式,必须将训练集(具有上述 3D 空间所需输出的颜色示例)呈现给网络以进行训练步骤。此项目中使用的训练集可在项目的GitHub存储库中获得。如果您热衷于神经网络,请继续阅读本节并查看我开发的这个Playground ,这样您就可以使用数据集自己训练网络并在代码中使用它:)。否则,跳到实施细节。
泛化将发生在训练集所包含的域中,因此值得关注空间每个组件的最小值和最大值!不要向网络提供此域之外的模式,否则输出将无法正常工作。
数据集(所有示例)包含 75 个颜色模式实例,范围从 0 到 1。最初的范围从 0 到 255,这些实例通过简单地将每个值除以 255 进行重新缩放,使得 0 <= x1, x2, x3 <= 1 . 从数据集中可以看出,重要的是要指出,输出层只有一个神经元必须输出 1,而其余神经元必须输出 0。由于经过训练的网络输出浮点值,因此后处理如下:
其中 yi 是第 i 个神经元的输出,max(y) 是最大的输出值。实际上,输出最大的神经元给出 1 作为输出,其余的给出 0。就这么简单。
电子电路
由物体产生的所有检测过程都发生在电子电路中,包括在连接到 Arduino 板的 Atmega328 中运行的计算活动。从下面的示意图中检查接线。
代码遵循上述使用共阳极RGB LED 的方案。
色彩理论
电子电路执行的颜色感知基于颜色理论概念。由于还没有涉及透镜,因此只应考虑具有不透明(和无光泽)材料的物体,避免处理 LED 的镜面反射。另一方面,漫反射是用光进行颜色检测的关键。入射光会在不规则表面反射,不会产生破坏 CdS 电池功能的发光效果。
回到实际的颜色理论,当光(某种颜色的)到达一个物体时,它会根据该物体颜色的特性而反射。例如,到达黄色物体的红光将根据该黄色成分中存在多少红色而反射 - 请记住,我们谈论的是光!- 所以预计会有大量的红光被反射,当我们想到黄色的 RGB 成分(基本上是红色和绿色)时,这是有道理的。然而,当蓝光到达黄色物体时,由于颜色成分中的蓝色含量低,预计不会有强烈的反射。
考虑一个加色系统,其中白色和黑色分别代表每种颜色的存在和不存在(此处有更多详细信息),可以测量(使用 CdS 单元)来自 RGB LED 的每种光的最大和最小反射,这些反射将达到彩色对象。也就是说,可以对电路中涉及的电子元件进行校准。这是在检测中获得保真度以及确保稳定检测模式(避免异常值)的另一个关键 - 这是一个黄金提示:校准后,尝试(努力!)不要移动或触摸电子元件(特别是当它们被放置在面包板中时),也不是您正在使用(您必须使用)将组件与环境光隔离的部件。
编程
对于校准和识别,一旦有色物体暴露于 RGB LED 和 CdS 单元,颜色传感器就会执行三次迭代。在第一次迭代中,红光照射到物体上,程序等待 CdS 细胞稳定其感应;然后读取模拟输入并存储红光的反射。该程序针对绿色和蓝色重复了两次以上。颜色理论中显示的图很好地直观地解释了这个迭代过程。
关于校准,上述迭代过程执行两次:一次用于黑色,一次用于白色。正如色彩理论中所解释的,这是为了检测最大值和最小值——最初从接近零到接近 1024 ,根据读数分辨率——红、绿和蓝光的反射,获得真实范围以正确重新调整到区间 [0 , 255](用于提供信息)和 [0, 1](馈送神经网络的实际输入)。
建立光传感器读数的等待时间可能因每个电子元件而异,因此最好提供一个良好的延迟以确保稳定的感应。在我的例子中,我给出了 500 毫秒的延迟,但值得一开始使用一个更大的值,然后再减小它直到出现不稳定行为的边缘。
在检测中,收集到的 RGB 值(范围从 0 到 1)提供给 MLP,执行实际的颜色识别。对于在 Arduino 中运行的 MLP,我使用的是Neurona - 我编写的一个库,可以在 arduino 中轻松使用 ANN,它可以使用 Library Manager 从 Arduino IDE 安装。另请查看此帖子以获取更多详细信息。
如前所述,网络已经经过训练,可以在项目代码中进行检测。它是使用我开发的Playground进行训练的,将调整后的权重嵌入到代码中,以便 Neurona 库使网络准备好运行。
测试
出于提供信息的目的,从数据集中提取了一些颜色以执行一些识别测试:
图外的数字用于识别,图内的数字表示错误分类,参考哪些颜色被分类。
- 使用TCS230 TCS3200颜色传感器制作颜色检测器
- Arduino项目之玩转颜色传感器
- 带闪光灯LED的颜色传感器
- 可读取颜色的传感器Adafruit_TCS34725-master 4次下载
- TCS230颜色传感器的原理与应用及识别颜色的过程详细说明 76次下载
- 搬运机器人颜色传感器模块的概述及其特点和应用的介绍 12次下载
- 传感器显示:大小、形状和颜色 0次下载
- 颜色传感器TCS230英版资料 0次下载
- 基于TCS3200颜色传感器 71次下载
- TCS3200颜色传感器配套资料 74次下载
- 基于颜色传感器TCS230的氯离子和PH检测仪设计 147次下载
- 基于Lego颜色传感器的寻线小车程序 204次下载
- 基于TCS230传感器的高精度颜色识别系统设计
- 烟叶初烤颜色采集器的设计 0次下载
- 颜色传感器在新型养路机械中的应用
- 基于CW32系列MCU的GY-33颜色识别模块设计 1472次阅读
- Python OpenCV教程:特定颜色的检测 919次阅读
- 利用单片机的颜色识别系统设计 2947次阅读
- 分享一个不错的颜色检测器/传感器电路图 3051次阅读
- 分享一个不错的颜色传感器电路图 3281次阅读
- 颜色识别传感器的类型及原理解析 1.5w次阅读
- 什么是颜色传感器它有哪些类型的 7658次阅读
- dfrobot TCS3200 颜色传感器简介 2728次阅读
- digilent颜色传感模块简介 1596次阅读
- ev3颜色传感器能够识别几种颜色 2.1w次阅读
- 颜色传感器和色标传感器的本质区别及应用解析 7089次阅读
- 迎接颜色测量的新时代—— 颜色传感器IC与光谱仪性能对比 3227次阅读
- 颜色识别传感器原理与应用详解 6.8w次阅读
- 一文读懂颜色传感器使用方法 3.9w次阅读
- 从9个方面让传感器处理任何颜色通道所产生的噪声和非线性响应 6066次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多