本文主要是介绍基于深度学习的生活垃圾智能分类装置(K210开发板实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1.核心功能与流程图
2.硬件框图
3.设计原理
4.开发过程
5.项目原型
6.主要元器件介绍
7.资料、源码分享链接:
1.核心功能与流程图
针对上述提出的目标,该项目核心功能如下:
功能1:对垃圾进行基于深度学习的精准分类
功能2:通过旋转垃圾桶自动分类垃圾
该装置的具体工作流程如下:
2.硬件框图
硬件框图
该装置由以下2部分组成:
识别模块:K210
分类模块:Arduino UNO、舵机
3.设计原理
基于深度学习和AI视觉的生活垃圾智能分类装置利用深度学习算法和AI视觉技术,能够对生活垃圾进行智能分类。
识别模块设计原理:装置需要大量的标记好的生活垃圾图片数据集,每种生活垃圾都有对应的标签,用于训练深度学习模型。数据集应该包含不同角度、光照条件和遮挡情况下的垃圾图片,以确保模型的泛化能力。通常使用卷积神经网络作为深度学习模型。可以选择已经预训练好的模型,如ResNet、Inception,或者自行设计和训练模型。使用标记好的数据集对深度学习模型进行训练。通过将图片输入模型,让其逐渐学习提取垃圾的特征,然后将这些特征映射到对应的垃圾分类标签。训练过程中需要合理设置学习率、损失函数和优化算法,以提高模型的准确率和收敛速度。当装置接收到垃圾图片时,深度学习模型会对其进行预测和分类。模型会输出一个概率分布,表示图片属于每一类垃圾的概率。根据概率分布,装置会选择概率最高的类别作为该垃圾的分类。[3]
分类模块设计原理:分类装置通过舵机旋转装置,将相对应的垃圾桶旋转至投放者面前。这里需要根据模型的输出结果,控制舵机的旋转,实现智能分类。
4.开发过程
结合实际应用需求设计的基于物联网技术的智能垃圾回收系统,其核心控件为Arduino,结合K210模块的神经网络模型实现垃圾智能分类,通过驱动舵机将相对应的垃圾桶旋转至投放者面前;通过实际组装和软硬件联合测试,验证了装置整体功能的合理性[2]。
制作过程如下:
硬件装置部分:
第一步:根据我们想要的外形通过Auto CAD画出该装置的外壳组装图,设计完成后再用激光切割进行切割,然后进行组装。
外壳CAD图纸
第二步:用SolidWorks设计出垃圾桶,并进行3D打印
垃圾桶3D打印模型
Arduino部分:
第一步:在Arduino上编写舵机控制部分,将垃圾种类分为四种,可回收垃圾,干垃圾,湿垃圾,有害垃圾,并将其对应四种信号A、B、C、D,当Arduino收到来自K210的四种信号时,控制舵机旋转至四个方向,以下为代码部分。
舵机控制代码
第二步:添加Arduino信号引脚,我们设置9号引脚为舵机信号引脚,并且需要初始化串口,此外,我们将波特率规定为9600,以下为代码部分。
添加舵机信号引脚代码
因此,Arduino部分整体代码如下:
#include <Servo.h>Servo servo;void setup() {// 初始化串口,波特率为9600Serial.begin(9600);// 附加舵机信号引脚servo.attach(9);
}void loop() {if (Serial.available() > 0) {char signal = Serial.read();// 根据收到的信号控制舵机转向不同方向if (signal == 'A') {// 控制舵机转向方向Aservo.write(0);} else if (signal == 'B') {// 控制舵机转向方向Bservo.write(60);} else if (signal == 'C') {// 控制舵机转向方向Cservo.write(120);} else if (signal == 'D') {// 控制舵机转向方向Dservo.write(180);}}
}
Arduino部分整体代码
K210部分:(注意!!若Maixhub模型训练用不了,可选择嘉楠科技的模型训练,操作方法与Maixhub大体一致)
第一步:浏览器搜索MaixHub并点击。
浏览器搜索MaixHub
第二步:点击Maixhub:AI平台和共享社区。
MaixHub主页
第三步:点击模型训练中的开始训练。
MaixHub模型训练平台页面
第四步:点击新建训练
MaixHub模型训练页面
第五步:填写信息
填写信息页面
第六步:点击去准备数据集
准备数据集页面
第七步:先点击创建数据集,再完成信息填写,后点击确定
新建数据集页面
第八步:点击上传图片后,再点击添加标签
上传图片页面
第九步:先选中标签,然后点击选中图片,选中该垃圾的训练图片然后点开始上传,同样方法上传完四个标签
添加标签页面
第十步:勾选随机处理的三个选项,部署平台选中合适的平台,点击最下方的创建训练任务
开始训练页面
第十一步:等待训练完成后点击部署模型
训练完成页面
第十二步:点击下载模型
下载模型页面
第十三步:修改main.py的部分代码
将发送信息部分代码添加进mian.py,然后保存
烧录固件部分:
第一步:打开以下网址,下载最新版固件
下载站 - Sipeed
固件页面
第二步,下载kflash_gui,并打开,将K210用type-c与电脑连接,选择刚刚下好的固件,地址为0x00000,端口选择与K210想连接的端口,波特率选择115200
烧录软件界面
如果出现以下报错:
按照如下进行排查:
1.检查PC是否有权限打开端口,对于 win10,需要以管理员身份运行 kflash_gui 。
2.检查端口是否选择正确(如果出现两个设备端口,通常选择端口号小的那一个)。
3.检查端口是否被其他应用占用(如Maixpy IDE,putty等),应当关闭其他程序占用。
将如下图的压缩包内文件解压放到K210里的sd卡当中。
程序界面
运行程序,可通过K210上的屏幕,看到所识别的垃圾种类,通过输出可以看到识别率。
组装部分:
按照下图进行组装:
装置组装图
接线部分:
舵机的黑线接Arduino的GND接口,红线接5V接口,白线接9号接口,Arduino的0号引脚接K210的10号引脚,Arduino的1号引脚接K210的11号引脚,Arduino的另一个GND引脚接K210的GND引脚,Arduino的3.3V引脚接K210的3.3V引脚。
5.项目原型
6.主要元器件介绍
- Arduino UNO
Arduino UNO
Arduino UNO的处理核心是ATMEGA328P,有14个数字输入/输出引脚,其中有6个可用作PWM输出,6个模拟输入,16MHz晶振时钟,USB连接,电源插孔,ICSP接头盒复位按钮。通过USB数据线连接电脑就能供电、程序下载和数据通信。
2.K210开发板
K210开发板
K210是一款由中国公司思必驰(Sipeed)开发的人工智能处理器。它是一款低功耗、高性能的处理器,专门设计用于边缘计算和物联网设备。
K210由于其低功耗、高性能和适用于AI推理的能力,被广泛应用于各种智能硬件设备,例如智能摄像头、智能家居设备、机器人、智能监控系统等。作为边缘计算的代表之一,K210的发展在推动物联网和人工智能技术在嵌入式系统中的应用方面发挥着积极的作用。
3.舵机
舵机
DSServo达盛舵机DS3218MG是一种数字舵机,是达盛舵机(DSServo)系列产品中的一员。舵机是一种电动执行元件,通常用于模型、机器人和其他自动控制系统中,用于控制角度位置的精准转动。
7.资料、源码分享链接:
链接:https://pan.baidu.com/s/1z6P3owHLP78L1pwykBbHJQ
提取码:bmfy
--来自百度网盘超级会员V2的分享
这篇关于基于深度学习的生活垃圾智能分类装置(K210开发板实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!