垃圾桶模型技术路线报告
- 暑假接手这个项目的模型训练部分,根据赛题要求,我和队员进行了第一次的数据采集,每种类型30张数据.
(图1 赛题数据要求)
垃圾桶模型技术路线报告
- 暑假接手这个项目的模型训练部分,根据赛题要求,我和队员进行了第一次的数据采集,每种类型30张数据.
(图1 赛题数据要求)
(图2 第一次收集的数据)
- 第一次训练模型看网络上有类似的项目,采用的是pp-picodet模型,这个模型如图所示,既有较高的精准度也有较快的速度,但是由于每个30张的数据集过小了,而且数据也不平衡,模型练出来也是一塌糊涂,啥也不行。后面是没有使用这个模型,因为那时同时跑了一个ppyolo-mbv3-small的模型,这个模型表现的稍微好一点,时间的关系,就沿用ppyolo了。虽然我觉得的picodet这个的效果可能会更好,但当时急于跑一个能用的就没有继续实验了。
(图3 picodet模型比较)
(图4 ppyolo模型比较)
3.这2个模型各练的一个模型都在实际垃圾桶上表现的不好,于是我从2个方面入手,第一个方面,我猜想是数据量的问题,因为数据确实少,于是开始了第二次的数据采集,这个时候还没意思到数据不平衡的问题,每个种类的数据量都不平均,模型效果肯定不会好,第二次每个数据采集了50张,并且进行了数据增强。
(图5 数据增强后的第二次采集数据)
这次练的模型在线下垃圾桶上实际测试时,一样是一塌糊涂,识别不准,打标的框也乱来,后面查看各种资料,发现我数据不平衡的问题,我于是进行了数据删减,将每一类的标注数都平衡也进行数据增强,
(图6 数据平衡后的数据)
这次训练后,模型效果显著提高,在aistdio平台上导入图片进行测试,标注框和识别都可以,但是在实际的垃圾桶上表现有不是很好,偶尔才能识别对,但是画框又不行。这时我的猜想还是数据的问题(其实不是),我又加了一部分数据,更多的类型,但是都没有进展,在实际环境中还是识别的一般。
- 那我是怎么解决的呢,就是一个随机事件,我有一次在实验模型效果时,刚好摄像头拆掉了,于是我手拿着摄像头,发现摄像头里只有白色背景和物体时就没有问题,都能很好的识别物体,于是我写了个代码,先拍一张1080p的图片,在裁切中间的白色背景传入模型,果然,识别率飙升,在哪之后就只有一些小问题了。
- 之后就是一些特殊的类别识别不准的问题了,基本解决方法就是加对应类型的数据,问题基本就解决了,如果还没有解决,那就可以采取几个模型一起,让一个模型单独去识别一个物体,就能解决对应物体识别不准的问题了。
- 期间也有点数据增强的问题,比如我起先不太了解的时候,加了一下旋转标注框的数据增强,这个数据增强会导致一些紧挨着的标注框出现一些问题。
- 这基本就是模型遇到的问题了,后面也就是加数据了。主要的问题就是一些逻辑的问题了,比如识别几次取平均值返回,提高模型准确性。
(图2 第一次收集的数据)
- 第一次训练模型看网络上有类似的项目,采用的是pp-picodet模型,这个模型如图所示,既有较高的精准度也有较快的速度,但是由于每个30张的数据集过小了,而且数据也不平衡,模型练出来也是一塌糊涂,啥也不行。后面是没有使用这个模型,因为那时同时跑了一个ppyolo-mbv3-small的模型,这个模型表现的稍微好一点,时间的关系,就沿用ppyolo了。虽然我觉得的picodet这个的效果可能会更好,但当时急于跑一个能用的就没有继续实验了。
(图3 picodet模型比较)
(图4 ppyolo模型比较)
3.这2个模型各练的一个模型都在实际垃圾桶上表现的不好,于是我从2个方面入手,第一个方面,我猜想是数据量的问题,因为数据确实少,于是开始了第二次的数据采集,这个时候还没意思到数据不平衡的问题,每个种类的数据量都不平均,模型效果肯定不会好,第二次每个数据采集了50张,并且进行了数据增强。
(图5 数据增强后的第二次采集数据)
这次练的模型在线下垃圾桶上实际测试时,一样是一塌糊涂,识别不准,打标的框也乱来,后面查看各种资料,发现我数据不平衡的问题,我于是进行了数据删减,将每一类的标注数都平衡也进行数据增强,
(图6 数据平衡后的数据)
这次训练后,模型效果显著提高,在aistdio平台上导入图片进行测试,标注框和识别都可以,但是在实际的垃圾桶上表现有不是很好,偶尔才能识别对,但是画框又不行。这时我的猜想还是数据的问题(其实不是),我又加了一部分数据,更多的类型,但是都没有进展,在实际环境中还是识别的一般。
- 那我是怎么解决的呢,就是一个随机事件,我有一次在实验模型效果时,刚好摄像头拆掉了,于是我手拿着摄像头,发现摄像头里只有白色背景和物体时就没有问题,都能很好的识别物体,于是我写了个代码,先拍一张1080p的图片,在裁切中间的白色背景传入模型,果然,识别率飙升,在哪之后就只有一些小问题了。
- 之后就是一些特殊的类别识别不准的问题了,基本解决方法就是加对应类型的数据,问题基本就解决了,如果还没有解决,那就可以采取几个模型一起,让一个模型单独去识别一个物体,就能解决对应物体识别不准的问题了。
- 期间也有点数据增强的问题,比如我起先不太了解的时候,加了一下旋转标注框的数据增强,这个数据增强会导致一些紧挨着的标注框出现一些问题。
- 这基本就是模型遇到的问题了,后面也就是加数据了。主要的问题就是一些逻辑的问题了,比如识别几次取平均值返回,提高模型准确性。