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"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)