省赛博客(k210)
比赛成绩:全国一等奖
有需要代码资料请+扣扣:1287073476(备注来意)
继上次省赛,更换如下配置:
1. 开发板: jeston nano
2. 摄像头: USB广角摄像头
3. 算法: yolov3换成yolov4-tiny cpu训练模型换成了gpu训练模型
4. 硬件: 串口屏换成了与英伟达配套的屏幕
基本环境配置以及使用方法可跳转
这里
环境搭载完毕后,针对比赛而言,就需要开始制作自己的垃圾数据集开始训练了:
使用yolov4-tiny进行模型训练
安装VS2019 及c++,python(有pycharm就不用装了,没有就装),下载darknet源代码
安装好OpenCV4.0以上的版本后配置环境变量:
安装完成后将
这两个文件移动到darknet-master\build\darknet\x64中用记事本打开darknet.vcxproj查找替换中的CUDA版本为对应的版本(这里为11.1)
,打开darknet-master\build\darknet\darknet.sln 点开属性(alt+enter)后第一步:
第二步:添加包含库、库目录
第三步:添加依赖
第四步: CUDA C/C++选项中,修改device compute值:
确定保存后运行生成,将生成后的yolo_cpp_dll.lib拷贝至darknet-master\build\darknet\x64目录下即可。
参考:Windows10下编译opencv以及yolov4、yolov4_cpp_dll.dll_kai_io的博客-CSDN博客等
Yolov4-tiny垃圾训练步骤
将图片和xml标签文件准备好,参考:
使用yolov3训练自己的数据--详细过程及问题总结_weixin_41813620的博客-CSDN博客_yolov3 训练
为目标检测制作PASCAL VOC2007格式的数据集_hitzijiyingcai的博客-CSDN博客_voc2007数据集格式等
我的步骤:图片准备用python摄像头拍照程序,拍完照片后重命名,用labelImg软件标注类别:
(ps:kitchen 笔误,以下kittchen均为笔误,抱歉各位看官)
完成后将所有图片放入D:\Myproject\darknetmaster\build\darknet\x64\object\VOCdevkit\VOC2021\JPEGImages中
Python txt.py 生成txt文件
修改voc_label.py文件中的class类名称与要识别的垃圾名称对应
Python voc_label.py 生成labels训练文件(数量与xml标签文件一致)
修改yolov4-tiny-train.cfg和yolov4-tiny-test.cfg文件中的class变量和 filter=(class+5)*3变量(有两处)
修改coco.data文件中class变量与识别种类数量一致
修改coco.name文件中的识别名称与voc-label.py中的名称顺序一致(注意最后不要加回车)
WIN+R 打开命令行
D: 转到D盘
cd : D:\Myproject\darknet-master\build\darknet\x64\object 转到工程路径
cd .. 转到上一级目录
Darknet detector train object/coco.data object/yolov4-tiny-train.cfg yolov4-tiny.conv.29开始训练
生成权重文件后,将权重文件复制粘贴到jeston nono中,通过程序进行垃圾识别分类。
英伟达垃圾识别程序
部分代码如下:
比赛收获总结
国赛的经历相比省赛给了我更多的收获,通过学习图像识别的相关知识,从yolov3到yolov4等算法的相关知识,到最终采用的yolov4-tiny来进行目标检测识别垃圾。有了省赛的经验,在准备国赛的时候不急不躁,一直慢慢来,本着求稳不求快的原则在备赛期一直顺顺利利,和队友默契配合,有效沟通,不断解决出现的问题,暑期留校的一个月内,深入的学习了英伟达的使用,准备了两套备用方案,以备不时之需。最终成功的完成了国赛的挑战。三天的比赛期间,结交了很多志同道合的朋友,见识到了大家的比赛热情以及强劲的实力,也意识到了自己的不足,比赛虽然结束,却是一个新的开始,一年的经历,感谢队友一路陪伴,家人女友的鼓励,让我重新燃起斗志,不断鼓励我永不放弃。这次的比赛也让我深深意识到,每个人都可以成功,前提是要相信自己,把你的工作变成你的热爱,投入你的热情。只要相信你可以成功,那么你就已经成功一大半了。谨以此博客致敬努力的自己,致敬一起努力的大家。博客如有不准确还请指教,感谢大家阅读,加油,朋友!欢迎大家评论区交流学习。