K210智能垃圾分类

  • 总结1
  • 代码
    • 数据集训练

总结1

非常幸运参加了2021工程训练的省赛,是我大学以来第一次参加的省级比赛,虽然没有进国赛,但是对自己的成绩还是比较满意的。以下是我们在准备期间遇到的一些问题及自己的解决办法。自己是小白,如果有不对的地方欢迎大家指正。

代码

数据集训练

数据集在百度飞桨上训练,用官方给的五朵花的历程稍加修改,就可以训练自己的数据集。
五朵花历程:
链接: link.

训练过程大概为:
1.将data/data2815中的压缩包删除后添加自己数据集。(几类文件几个文件夹,不是一个大文件,可参考五类花的数据集。图片命名最好不含括号)
2.然后更改程序中的路径,官方程序为:

# 解压花朵数据集
!cd data/data2815 && unzip -q flower_photos.zip

将 flower_photos.zip改为你上传的文件名称.zip可以完成数据集的解压。

!cd data/data2815 && unzip -q garbage.zip  /解压数据集

在之后的代码中,将路径为 'data/data2815/‘都改为’data/data2815/garbage’(garbage为数据集压缩包解压后生成的文件,根据你数据集命名更改)。
如果路径不更改,预处理代码运行的结果是一个大类,无法进行图形分类。
运行结果:

['garbage']

'data/data2815/garbage’的运行结果为

运行耗时: 309毫秒
['barry', 'can', 'kiwa', 'smoke', 'zhuank']

此时程序的识别类别为5类,分别为上述几类。
3.然后是数据集训练,(程序中代码最长的部分,600多行)

if __name__ == '__main__':init_log_config()init_train_parameters()train()

以下这种情况就是训练完成了:

2021-08-07 17:33:35,970 - <ipython-input-1-b7bca58bf88e>[line:635] - INFO: end training
2021-08-07 17:33:35,971-INFO: training till last epcho, end training
2021-08-07 17:33:35,971 - <ipython-input-1-b7bca58bf88e>[line:649] - INFO: training till last epcho, end training

如果代码一开始训练就报一个。。。expect one的错误,通常是两个问题:
a.数据集中某一小类中的图片不只有一个东西,比如一张照片有好几个矿泉水瓶,这类照片不能太多。多了就报错。解决办法:把数据集单一化一点,只有一个东西。
b.你在训练过程中更换了数据集,但是左侧的中间产物并没有清除干净。解决办法:把之前的删掉,点开一个新的项目,重新来一遍。

4.之后测试集对模型进行预测

if __name__ == '__main__':    eval_all()

运行结果会有一个预测精度,这个数在以后的代码中会决定参数的大小。

运行时长: 18秒244毫秒
结束时间: 2021-08-07 17:42:41
total eval count:292 cost time:18.15 sec predict accuracy:0.7191780821917808

该模型的预测精度为:0.7191780821917808。通常如果该数值小于0.6,模型就不太具有识别效果了,最好对数据集进行更新,重新训练。自己试过,效果不好。

然后最艰难的部分都解决了,剩下就是按部就班的改路径,执行等待生成 .kmodel 文件了。
以下的代码不要忘了改路径:

进行模型压缩. 我们需要进行量化。为了保证量化后的精度, 需要使用训练图片调整模型。拷贝评估图片到/home/aistudio/work/images
#!mkdir /home/aistudio/work/images
#!cp -rf /home/aistudio/data/data2815/evalImageSet/*  /home/aistudio/work/images/
import os
import shutil
!mkdir /home/aistudio/work/images
filenames = os.listdir("/home/aistudio/data/data2815/garbage/evalImageSet/")index = 0
for i in range(1, len(filenames), 7):srcFile = os.path.join("/home/aistudio/data/data2815/garbage/evalImageSet/", filenames[index])targetFile = os.path.join("/home/aistudio/work/images",filenames[index])shutil.copyfile(srcFile,targetFile)index += 7

filenames = os.listdir("/home/aistudio/data/data2815/garbage/evalImageSet/")
srcFile = os.path.join("/home/aistudio/data/data2815/garbage/evalImageSet/", filenames[index])

工训智能垃圾桶总结1相关推荐

  1. 第七届全国大学生工程训练综合能力竞赛(工训赛) 智能配送无人机赛项 省赛心得

    第七届全国大学生工程训练综合能力竞赛(工训赛) 智能配送无人机赛项 省赛心得 第七届全国大学生工程训练综合能力竞赛(工训赛)江西省赛 在华东交通大学落下帷幕.至此,为时四个多月的备赛阶段终于告一段落了 ...

  2. 32、基于51单片机红外智能垃圾桶系统设计

    摘要 随着现代化进程的日益推进,科技越来越发达,人们的生活水平也提高了,城市化程度越来越高,与此同时也带了许多问题,生活垃圾越来越多垃圾设施却不够完善.无论是在公共场合还是家庭厨房的垃圾大都是没有盖或 ...

  3. 湖南大学工训创新大作业——改进电子音乐

    课程实验报告 课 程 名 称: STC实验板综合设计 实验项目名称: 改进电子音乐 专 业 班 级: 姓 名: 学 号: 指 导 教 师: 完 成 时 间: 2020 年 9 月 16 日 一. 设计 ...

  4. stm32的语音识别_免费开源基于STM32的智能垃圾桶之舵机控制(HAL库)

    大家好,我是『芯知识学堂』的SingleYork,前面给大家简单介绍了<基于STM32的智能垃圾桶之成员简介>.<基于STM32的智能垃圾桶之语音识别>和<基于STM32 ...

  5. python3语音识别模块_『开源项目』基于STM32的智能垃圾桶之语音识别

    大家好,我是『芯知识学堂』的SingleYork,前面给大家简单介绍了『开源项目』基于STM32的智能垃圾桶之成员简介,相信有很多小伙伴都已经忍不住跃跃欲试了,别着急,从这一篇开始,笔者将会带领大家一 ...

  6. 『开源项目』基于STM32的智能垃圾桶之语音识别

    大家好,我是『芯知识学堂』的SingleYork,前面给大家简单介绍了『免费开源』基于STM32的之成员简介,相信有很多小伙伴都已经忍不住跃跃欲试了,别着急,从这一篇开始,笔者将会带领大家一步一步来完 ...

  7. 黑科技:Wi-Fi热点智能垃圾桶现身纽约

    智能手机和平板电脑的普及令用户们对无线网络产生了巨大的需求.然而就在城市几乎完全被网络信号覆盖的今天,大家还是会经常感觉无线网络不够用.面对这种局面,纽约一家名为BigBelly的公司就想出了一个绝对 ...

  8. stm32语音识别文字显示_『开源项目』基于STM32的智能垃圾桶之语音识别

    大家好,我是『芯知识学堂』的SingleYork,前面给大家简单介绍了『开源项目』基于STM32的智能垃圾桶之成员简介,相信有很多小伙伴都已经忍不住跃跃欲试了,别着急,从这一篇开始,笔者将会带领大家一 ...

  9. 工训赛:从参赛到“弃赛”

      此篇博文并非技术分享,而是记一次艰难的比赛经历,可能也是大学接近尾声时最难忘的一次比赛.   4月12日,已经深夜,快要坚持不下去了,已经连续通宵了三天,身体出现了明显的不良状况,但距离工训赛省赛 ...

最新文章

  1. java公平索非公平锁_Java 并发编程中使用 ReentrantLock 替代 synchronized
  2. 利用Gearman,搭建异步分布式计算平台
  3. 在AWS控制台里创建key Pair
  4. 主成分分析和因子分析及其在R中的…
  5. 前端进阶(8) - 前端开发需要了解的工具集合:webpack, eslint, prettier, ...
  6. php怎么使用多个数据库,怎么在php项目中使用CI对多个数据库进行操作
  7. vue rem适配_vue如何使用UI库快速开发项目
  8. 基础训练(一~五)题解
  9. Android Material Components – MaterialAlertDialog
  10. WPF整理-使用ResourceDictionary管理Logical Resources
  11. 数据库系统概论第五版(第 4 章 数据库安全性)笔记
  12. mysql怎么创建外表_MYSQL数据去重与外表填充
  13. eclipse建java gui工程,Eclipse java swing开发环境搭建教程
  14. socket长连接的维持
  15. 2021-08-27-亚马逊 MWS 坑 handling time(handing time)
  16. 2015 年最热门的国人开发开源软件 TOP 50
  17. java 查看类_JAVA基础知识之JVM-——通过反射查看类信息
  18. 浅谈www.baidu.com和baidu.com
  19. python创建学生类和教师类,python,学校成员类的例子,老师和学生(python class父类与子类之间的联系与逻辑)...
  20. 本地怎么画最简单的监控图

热门文章

  1. 视频太长如何压缩发送?这样做就很简单
  2. 编译原理 -- 语法制导翻译
  3. android 反编译 2017,反编译Apk入门工具合集
  4. 【文件上传绕过】——前端检测_前端js验证漏洞
  5. HTML5 控制手机陀螺仪
  6. 成都传智播客 不用“包就业”赚生源
  7. (c)(数据结构)栈与队列的应用--停车场管理
  8. leave, ret, enter指令的等效
  9. C语言 strlen(int),C语言 - strlen函数及int,char转换问题
  10. RTKLIB软件源码学习(Kalman滤波最小二乘)