华为云杯2020深圳开放数据应用创新大赛·生活垃圾图片分类(目标检测)资源文件
简介
本资源文件是为“华为云杯”2020深圳开放数据应用创新大赛·生活垃圾图片分类(目标检测)任务提供的相关资源。该比赛旨在利用人工智能技术对居民生活垃圾图片进行检测,找出图片中有哪些类别的垃圾,并指示出垃圾在图片中的位置。
内容概述
本资源文件包含了以下内容:
- 数据集:提供了用于训练和测试的生活垃圾图片数据集。
- 代码:提供了基于YOLOv3的PyTorch实现代码,用于目标检测任务。
- 训练策略:详细介绍了训练过程中使用的策略,包括学习率调整、多尺度训练等。
- 调参技巧:分享了在数据集上有效的调参技巧,以及一些尝试但效果不佳的技巧。
- 模型评估:提供了模型评估的命令和方法。
- 提交指南:详细说明了如何生成提交文件并上传到华为云平台。
使用说明
数据集
数据集包含了大量生活垃圾图片,每张图片都标注了垃圾的类别和位置。数据集分为训练集和验证集,比例为9:1。
代码
代码基于YOLOv3实现,使用了PyTorch框架。代码结构如下:
models/
:包含模型定义文件。utils/
:包含各种辅助函数,如数据增强、损失计算等。train.py
:训练脚本。test.py
:测试脚本。gen_submit_dir.py
:生成提交文件的脚本。
训练策略
训练过程中使用了以下策略:
- 学习率调整:采用了余弦退火学习率调整策略。
- 多尺度训练:在训练过程中随机调整输入图像的尺寸。
- 数据增强:使用了多种数据增强技术,如随机翻转、HSV增强等。
调参技巧
在数据集上有效的调参技巧包括:
- SPP结构:在网络中加入空间金字塔池化层。
- K-means聚类:使用K-means算法聚类锚点。
- Stitcher增强:使用Stitcher数据增强技术。
模型评估
使用test.py
脚本进行模型评估,命令如下:
python3 test.py --cfg trained_models/baseline-stitcher/yolov3-spp-44.cfg --data data/rubbish.data --weights trained_models/baseline-stitcher/best.pt --batch-size 8
提交指南
生成提交文件的命令如下:
python gen_submit_dir.py -m trained_models/baseline-stitcher -s submit/baseline-stitcher
生成的提交文件需要上传到华为云的OBS云存储中,然后部署到ModelArts中进行提交。
参考资料
本资源文件的详细内容和思路分享可以参考以下文章:
致谢
感谢华为云提供的比赛平台和数据支持,感谢所有参与者的贡献。