首页 > 其他分享 >YOLOV8训练过程中的那些事

YOLOV8训练过程中的那些事

时间:2024-07-26 11:51:40浏览次数:13  
标签:训练 代码 YOLOV8 那些 yaml yolov8n 模型 图片

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

官网提供的代码如下:

点击查看代码
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]()。

标签:训练,代码,YOLOV8,那些,yaml,yolov8n,模型,图片
From: https://www.cnblogs.com/fuzera/p/18324677

相关文章

  • 代码随想录算法训练营第45天 | 子序列入门
    300.最长递增子序列https://leetcode.cn/problems/longest-increasing-subsequence/代码随想录https://programmercarl.com/0300.最长上升子序列.html674.最长连续递增序列https://leetcode.cn/problems/longest-continuous-increasing-subsequence/description/代码随想录......
  • 代码随想录算法训练营第44天 | 动态规划9:买卖股票总结
    188.买卖股票的最佳时机IVhttps://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iv/description/代码随想录https://programmercarl.com/0188.买卖股票的最佳时机IV.html#算法公开课309.最佳买卖股票时机含冷冻期https://leetcode.cn/problems/best-time-to-buy-a......
  • 我在训练随机森林回归器时不断遇到这个问题
    /usr/local/lib/python3.10/dist-packages/sklearn/base.py:432:UserWarning:X有特征名称,但RandomForestRegressor的安装没有特征名称warnings.warn(我尝试添加.values但它仍然标记一个错误。这个警告信息表明你输入到RandomForestRegressor的数据X......
  • YOLOv8改进 | 主干网络 | ⭐重写星辰Rewrite the Stars⭐【CVPR2024】
     秋招面试专栏推荐:深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转......
  • ACM日常训练日记——7.25
    Atcoder训练Harlequin思维题博弈论,思考每一次怎么转化最优,存在两个答案说明f可以赢,打表发现当所有数字都是偶数时,答案为second,否则为first#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;intmain(){ lln; cin>>n; llans=0; vector<ll>v(......
  • 2024牛客暑期多校训练营4
    Preface最赤石的一集,上来先认为D是个煞笔贪心提交了该题的第一发代码并喜提WA后面下机后祁神把L扔给我告诉我就是个煞笔线段树板,结果我写完过不去样例发现题意假了值得一提的是最后发现这两题是这场过的人最少的两题,直接开局给我干的道心破碎之后A题写不来带权并查集样......
  • *算法训练(leetcode)第三十一天 | 1049. 最后一块石头的重量 II、494. 目标和、474. 一
    刷题记录*1049.最后一块石头的重量II*494.目标和474.一和零*1049.最后一块石头的重量IIleetcode题目地址本题与分割等和子集类似,要达到碰撞最后的石头重量最小,则尽可能把石头等分为两堆。时间复杂度:O......
  • 从DDPM到DDIM(三) DDPM的训练与推理
    从DDPM到DDIM(三)DDPM的训练与推理前情回顾首先还是回顾一下之前讨论的成果。扩散模型的结构和各个概率模型的意义。下图展示了DDPM的双向马尔可夫模型。其中\(\mathbf{x}_T\)代表纯高斯噪声,\(\mathbf{x}_t,0<t<T\)代表中间的隐变量,\(\mathbf{x}_0\)代表生成的图像......
  • 一文看懂llama2(原理&模型&训练)
    关注我,持续分享逻辑思维&管理思维&面试题;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可......
  • RIME:用交叉熵 loss 大小分辨 preference 是否正确 + 内在奖励预训练 reward model
    文章题目:RIME:RobustPreference-basedReinforcementLearningwithNoisyPreferences,ICML2024Spotlight,368(?)pdf:https://arxiv.org/pdf/2402.17257html:https://arxiv.org/html/2402.17257v3或https://ar5iv.labs.arxiv.org/html/2402.17257v3GitHub:https://g......