针对吉利生产的电池进行外观检测和工艺质量检测--vscode YoloV8目标检测
前言这个项目是使用vscode平台在使用wsl进行远程链接虚拟机使用ubuntu系统进行代码编写以及训练测试的。由于之前并没有接触模型框架和其他的经历所以并没有修改模型。其次只是模型训练和数据集标注内容主要是问题梳理以及知识技术概要。训练自己的模型一.数据集的准备数据集采用的 桐庐缺陷分类样本参考.zip网盘链接为 https://pan.quark.cn/s/839ddfcd394f压缩包中分为三个文件第一个文件是主要的缺陷类型分类以及原图剩下都是原图要自己进行筛选和分类。将其分类之后放入ubuntu系统的jl文件夹中。二.数据集的处理由于使用的是yolo进行图像识别训练所以要将标签使用yolo格式保存并放入相应文件夹。这边使用的工具是labellmg。使用方法在labellmg文件夹目录下输入cmd打开控制台输入python labelImg.py predefined_classes.txt 打开程序进入到此界面右边是对应的标签名然后直接打开目标文件夹进行缺陷标注最后保存在使用split.py对图片进行分类使得格式为imagestrainval,比例82开进行划分。三.开始训练先对标准分类的图片标注然后训练一个初始模型用训练模型再去自动标注剩余图片。设置训练轮数300轮patience50若50轮无显著变化则停止。使用模型yolov8s自己并未修改所以效果会很差。runs/detect/runs/detect/battery_defect/weights/best.pt训练后的模型保存路径。新建unlabled文件建立continue_train.py调用上一次保存的文件进行在训练。降低学习率由于使用的wsl虚拟机不能一次性处理过多的图片可能导致连接中断所以直接patience0确保跑完成。训练完成之后使用merge.py把标注好的图片合并至训练集进行在训练。最后训练好模型保存在runs/detect/runs/detect/battery_defect_continue/weights/best.pt。最后直接调用这个模型即可。问题总结以及解决办法首先最直接的问题的就是数据集标注问题因为数据集图片较多所以人工全部手动标注时间成本太大采用先训练一个初始模型在用初始模型进行再标注然后人工审查一番。但是这样精度肯定比不上人工但是这样比较节省时间。其次也是最大的问题就是没有去修改模型框架这个肯定是影响最大的。在学校实验中没有怎么接触过这些一般都是给定的模型和训练集自己去跑训练结果。我觉得要是有优化调整应该先关注这个。对于训练loss值调整和精度提高我认为可以从这几个方面。首先使用的yolov8肯定是数据集以及对应的缺陷的数据要足够多不然像裂纹和其他较小的缺陷就无法识别。其次调低学习率也可以使得loss值降低。lr00.01-lr00.001。采用数据增强mosaic提高分辨率但是分辨率过高会导致wsl连接中断所以不采用。总结就是一定要自己去改模型框架。不建议在虚拟机上进行训练尽量去使用linux系统。