YOLOV8训练过程中的那些事

经过一系列的折腾,终于可以开始训练模型了,好在官网上提供了多种情况下的训练代码,直接使用即可。

官网提供的代码如下:

点击查看代码
from ultralytics import YOLO

# 加载模型
model = YOLO("yolov8n.yaml")  # 从YAML中创建一个新的模型
model = YOLO("yolov8n.pt")  # 使用一个预训练模型 (训练推荐)
model = YOLO("yolov8n.yaml").load("yolov8n.pt")  # 从YAML中建立模型并传递权重

# 训练模型
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

在一开始的训练过程中,我选择加载模型中的第一句和第三局,将训练模型模块中的数据参数替换为自己的YAML文件,按照网上的教程将yolov8n.yaml中的nc数量改为你的项目需要训练的数量,我照着做了,但是在后来我发现之前的一个运行版本中我并没有更改,但是模型依旧可以训练。

模型训练完成后,对模型的检测效果进行测试,大概有500+图片,进行了300轮训练,测试了一下检测到效果,检测的类别的效果很好,基本上没有出过错。但由于项目的需求是,将被框出的区域截取出来进行进一步处理,于是我参考官方提供的检测框查看代码获取检测框参数,对图片进行截取。截取出来发现,为什么和想的不一样。思考了一下:要么是预测框的精度有所缺失,要么是图片的尺寸有一点不对,毕竟训练的时候是要将图片的尺寸进行修改,而我的使用与裁剪的图片是原图。

基于上述两点,我将模型进行了重新的训练,使用加载模型中的第二句。接着,对要裁剪的图片进行尺寸的转化,确保裁剪图片尺寸与训练图片尺寸一致。图片的呈现效果稍微好了一点,但还是没有办法达到精度的要求。后来,我发现了问题的所在,是我截图的代码有问题,正确的截取代码为:cropped_img = img[int(y1):int(y2), int(x1):int(x2)]

图片能正确显示,接下来测试OCR,遇到了报错Initializing libiomp5md.dll, but found libiomp5md.dll already initialized,报错的原因是libiomp5md.dll初始化过程中发现已经初始化了,这里冲突的地方应该是YOLOV8和paddlepaddle,但两个都要用咋整,使用以下代码:

点击查看代码
import os
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"  
运行顺利,小修小补得到了想要的结果,paddleocr还是不错的,连'.'这一符号都可以识别,开始我以为不能都是自己加的,现在做一下简单的判断即可。 dll文件的报错还有其他的解决方法:参考这里[https://blog.csdn.net/u010053306/article/details/125819465]()。
posted @   fffuzera  阅读(188)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示