一点小说明(遗憾+致歉)

首先,十分遗憾,由于第一年参赛,尤其是这个赛项,我们当时做的时候网上也完全找不到参考资料,所以最开始一抹黑,硬着头皮从头开始做。最后初赛全省第一、决赛全省第二、国赛选拔赛全省第三,赛制挺迷的,省奖只看决赛成绩,进国赛又只看选拔赛成绩。而整个比赛要求最高最难的反而是初赛的要求。捶胸顿足,遗憾至极。同时由于我们比赛比较早,不知道当时是否能进入决赛,所以我们去年比完就开始了国赛的准备,更新了控制板,更新了识别算法,更新了垃圾分类当时,引入了机械臂,加入了云台,如果省赛这配置,国赛稳稳的,而且我觉得这一版参加今年的国赛,肯定是稳稳的。正好这个日期也特殊,明天就是全国总决赛了,不过疫情原因是每个省同时组织,期待明天的大家的表现,希望我们学校其它赛道的队伍能够勇夺金奖(大赛改名升级了,再次捶胸顿足,没进国赛的遗憾)!!!
其次,大家也看到这个专题的第一篇文章已经写了大半年了,其实这个专题我早应该总结了。但是由于其它比赛和学业,加上找工作等等一些事宜一拖再拖。所以当时学习开发时遇到的一些坑都忘记,我尽力想起来帮大家填一些坑。一是给自己一个交代,二是和大家一起交流进步,或者是看着曾经自己写的那些代码我会不会自己笑起来(狗头!)。

智能垃圾桶演变(伪智能——>有点智能——>(希望你们能做的更加智能))

(1)最开始的想法是参加互联网+,然后临时想出来的一个方向。当时考虑着做什么图像识别太难了,可能我们做不出来,然后就说用语音识别做,巴拉巴拉。最后靠编,竟然互联网+还混了个省铜(真不建议这个选题去参加互联网+这种比赛,因为垃圾分类做的人多,而且这玩意太局限,很多技术都那一实现,加上现阶段的垃圾分类大环境也不太好,所以很多老师也不看好,所以有天花板,走不远);
(2)后来机缘巧合工训赛有这个赛道,加上遇到了一位十分负责和积极提供支持的指导老师,才得以这个作品最终有个雏形出来;
(3)最开始考虑的使用openmv,或者opencv在树莓派上做图像识别。 这个方案现阶段真不建议尝试,说实话,效果很不好。先不说准确率了,光是识别帧率就低到离谱。 所以当时也很巧合,发现一款很不错,上手很简单的开发板。就是Sipeed科技推出的几款k210芯片的开发板,第一眼看到,真是精致,再了解它的功能,简直强大,再看它的价格,wc,好划算(虽然这一年涨价了,还涨了不少)。尤其是这么小巧的一个板子,跑图像识别真是强,还很流畅,为什么呢?自己去看吧。

maixpy的WIKI文档
dfrobot的有关maixpy的论坛
Sipeed自己的官方论坛
Spieed的github工程

还有交流群,官方网站,等等其它资料和网站,WIKI里都有提及,也可以进群交流。

这些地方我差不多一年半没进去看过了,刚刚进去大概浏览了一下,焕然一新! 其实看历程介绍,大家也可以看到这个板子很新,2018年出来的,我是在2020年入坑的,当时真的就是资料匮乏,解决问题的唯一途径就是群里直接问,我反正当时问了不少问题,当时的一群也才千来人。至于官方论坛,不超过50条记录,唯一可以看的也就10来条,剩下都是无人解答状态。至于WIKI文档,只有一个大概,很多信息只有标题没有内容,从当时到现在,这个文档的界面经历三四次大变,内容基本完善,所有的论坛都有非常非常多的提问和解答。CSDNB站一下子涌出了大量资源。开发和学习环境有了很大的改进;

其实不止maixpy哈,其实大家TB可以搜一下K210,也有很多其它公司在做开发板,他们有的就做的很完善,有更多的引脚和板载资源,更适合学习。我不知道现在怎么样哈,当时用它的时候基本过几周就要出新固件,然后重新烧,遇到很多配置问题可能还需要改配置代码,很头疼,但是也很有趣,看到底层的东西。

4)所以由此诞生了我们第二代,使用maixpy作为识别的主控,但是,使用的时候我们发现。maixpy太精致了,所以硬件资源很不够,当时我使用了播放视频+图像识别两个功能,但是经常出现out of memory,看了很多示例程序,也询问了群里的大佬,通过不断地释放资源的方式也没解决这个难题。最终考虑上下位机的方式解决,让K210单独做识别。至于下位机当时Arduinostm32都考虑和简单使用了,当时传输使用串口传输数据时,也出现了很多问题,那一块用数据流传输可能好一点。具体的有机会后面讲;

5)不过最后由于比赛要求需要播放视频(还是不同格式),你像STM32Arduino来做的话使用串口屏也可以播放,但是效果不好,而且不支持不同格式,所以还是采取使用树莓派做下位机,播放视频会好很多。还有可以使用python编程,加快开发速度;

6maixpy+树莓派的方案当时实现了多种垃圾(12种左右,当时训练不方便,加上种类一多效果就不好,而且我们数据集也不多),加电机、舵机、超声波、压缩,红外等一系列的控制,完成了当时的省赛。

 

当时比赛现场抖音直播,可以看到很简陋。

在这里插入图片描述

7)后面也就开始着手于国赛,直接上了jetsonnano,那硬件比之前好的不是一般般,而且maixpy识别用的yolov3图像识别算法,上了jetson之后直接升级成了yolov5,其实这虽然是一个系列,但是其实V5是另外的人做的,所以部署上还有很大的不同。不仅如此,我们机械结构完全重做了,比之前更灵活,加入云台设置,投递更快,还引入了机械臂。机械臂的话由于比赛紧,没有自己设计制作,是直接购买的一个六自由的机械臂。

 

第三代,可以看到精简了很多,俯视图(上方的结构当时还没设计好,后来也没继续下去这一块,上半部分应该密封,减少环境对识别效果的影响,还有滑到设计,使得垃圾平稳进入识别台,这一块我们没有最终呈现,大家制作学习时可以考虑一下!)

在这里插入图片描述

这大概就是我们制作开发的一个流程,我主要负责所有的软件开发和图像识别处理训练部分,另外有个小伙伴主要负责机械结构设计,还有一个小伙伴负责一部分的编程,以及比赛资料和文档的编写。还有最恶心人的数据集标注,当时我两没日没夜的标,还找了几个学弟学妹一起标,最终的数据集大概6500张,前前后后一共标了不下1W张,只是有的格式不一样,也不好转换,所以就舍去了不少。先感谢学弟学妹和我的小伙伴,其它小伙伴有需要可以联系我!
下一篇博客正式开始动手讲解。

数据集目录

网上找的加自己拍的,你看这青菜有多难标,想想就知道了!
在这里插入图片描述
每一类都500来张,标的有多痛苦想不到。
在这里插入图片描述