详细介绍:广告点击场景下的 YOLO-world 模型训练失败及其解决办法

news/2025/9/23 13:34:06/文章来源:https://www.cnblogs.com/yfceshi/p/19107036

广告点击场景下的 YOLO-world 模型训练失败及其解决办法

背景

我们要通过ADB指令,在局域网下控制手机行为(点击、滑动、启动app)。但要完成这样的控制,需要对于手机屏幕元素(关键文字、关键UI元素)的准确识别。文本识别,用paddleocr就不错(对比过3种ocr模型,paddleocr识别得更恰当些),能应对80%以上的场景;但不够随心所欲。

用YOLO识别UI元素,作为一种不可缺少的场景识别的补充。例如:

当我们认为 644个金币不值得点击观看广告,或,如果点击容易引导背后的算法逐步降低我们每次点击获取的金币量,我们就要点击底下这个 ×,来退出本次弹窗 。但很显然,文本识别 paddleocr 没办法认知这个 x。

类似这样的场景并不少。paddleocr无法解决,只能让yolo上。

在这里插入图片描述


当前面临的问题,是 YOLO-world 模型训练失败,评价参数没有值。
在这里插入图片描述
当前错误状态分析
日志中,​验证集指标全为 0 是核心异常点,需优先排查以下问题:
​1. 验证集加载失败:检查验证集路径是否正确、数据是否被正确读取(如文件路径错误、权限问题)。
2. ​标注格式错误:验证集标签(如 XML、JSON、TXT)是否与模型预期格式匹配(如类别 ID 超出范围、坐标格式错误)。
​3. 模型预测全错:训练初期模型参数随机,可能导致预测全错,但 mAP50 也应为 0?需检查代码中 mAP 计算逻辑是否有 Bug。
4. ​数据不均衡/无目标:验证集是否全是背景类(无目标)?或目标类别与训练集不匹配?

训练指标的优化方向(当前损失未下降的潜在原因)
若验证集指标修复后仍存在“损失震荡/不下降”,可参考以下方向:
5. ​学习率:学习率过高会导致损失震荡,过低则收敛慢。可尝试调整学习率策略(如余弦退火、分段下降)。
​6. 数据增强:增加数据增强(如旋转、缩放、马赛克)缓解过拟合,提升泛化能力。
​7. 模型结构:Backbone 过于简单(特征提取不足)或过于复杂(过拟合)都可能导致损失异常,需匹配任务难度。
​8. 损失函数超参数:YOLO 的损失包含权重系数(如 box_gain、cls_gain),需确保各损失权重平衡。
综上,当前训练的核心问题是验证集指标异常(全0)​,需先解决数据加载/验证流程问题;其次,训练损失的震荡也需结合学习率、数据增强等方向优化。


代码

import os
from ultralytics import YOLOWorld
model = YOLOWorld('yolov8s-worldv2.pt')
# 训练
results = model.train(
data=r"./ad.yaml",
epochs=100,
imgsz=640,
lr0=0.001  # 手动设置初始学习率为 0.001
)

样本标注与识别目标

标注格式用的YOLO的txt输出格式
在这里插入图片描述


样本构成

(1)负样本
共169张无目标图像,对应169个空的标注文件
在这里插入图片描述
在这里插入图片描述
(2)正样本
全量正样本
攒了2652张正样本,打算采取分批少量标注,训练模型后逐次自动标注,人工核对后逐步扩充样本集的半自动标注策略。
在这里插入图片描述
已标注正样本
目前只标注了28张
在这里插入图片描述
在这里插入图片描述
当前训练中,训练集和验证集均为28张正样本。试过添加169张负样本,训练后的模型评价一样无效。


解决思路

错误状态分析给出的思路中,个人认为问题更有可能出在如下几个点:样本少 + 不均衡、标注不正确(类别混乱)、模型参数量大小不匹配、学习率设置不当。

  1. 排除“标注不正确(类别混乱)”:打开labelImg重新查看标注类别和框选区域,也深入查看标注文件中的类别标注数据,看不出来有什么问题;“标注不正确”的情况 先做排除;
  2. 排除“模型参数量大小不匹配”
    前面的模型训练代码针对的是开放世界 YOLO-world 模型,一般参数量就是大一些。所以,我们要减少参数量,首要的,是要整体上换成普通的yolo模型,我们换个参数量最小的模型试试:
    在这里插入图片描述
    yolov5n卡死无法下载(可能路径不维护了),换成yolov8n后模型可以下载了。
    相应的,我们的代码修改如下:
from ultralytics import YOLO  # 注意这里是 YOLO,不是 YOLOWorld
# 加载 YOLOv8n 模型(标准目标检测模型)
model = YOLO('yolov8n.pt')  # 这是官方 YOLOv8n 检测模型
# 开始训练
results = model.train(
data=r"./ad.yaml",      # 你的数据集配置文件
epochs=100,             # 训练 100 轮
imgsz=640,              # 输入图像尺寸
lr0=0.005               # 初始学习率(你可以根据需要调整)
)

效果:
在这里插入图片描述
虽然训练结果看起来还不太稳定,但关键参数是都有了。
就这么简单??就是参数量与样本量不匹配的问题?
回看训练过程,参数至少看起来已能达到很好的效果了。看来是对症结一抓一个准了。
在这里插入图片描述
增加训练到 10000 epoch,750早停了,效果较好。看来深层原因是找到了。
在这里插入图片描述


小结

换了一个模型后,效果已达标。所以,基本确定,本次模型训练失败的原因, 是模型结构和参数与样本数据量、复杂度不匹配的问题。
可能仍存在别的问题,但当前效果已可用,暂不做其它增强,先往下做样本的自动标注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机网站设计与实现是什么珠海门户网站建设费用

dispaly:grid;网格布局 学习博客地址 http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html http://www.ruanyifeng.com/blog/2020/08/five-css-layouts-in-one-line.html

网站布局的三种基本方法百度推广管理系统

在将OpenCV图像数据传递到PyQt的QImage之前,需要理解两者之间的转换关系。OpenCV通常使用cv2.imread()等函数加载图像,返回的是一个NumPy数组。而QImage是Qt框架中用于图像显示的类。 要将OpenCV的灰度图像转换为QImage,你需要执行以下步骤&a…

wap网站是什么江西做网站多少钱

在本机写了一个shell脚本,关于操作mysql的,在本机执行脚本可以正常操作数据库,脚本运行正常。 但是使用ansible ansible -i ./hosts test_teledb -m copy -a "src/etc/ansible/scripts/check.sh dest/tmp"ansible -i ./hosts test…

自己做的博客网站吗wordpress 文章选择器

博主介绍:✌公司项目主程、全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,CSDN博客之星TOP100、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业设计✌ 🍅文末获取源码联系🍅 🍅…

东莞电商网站公司做一个网络公司需要多少钱

[jQuery] 针对jQuery的优化方法有哪些? 1.使用选择器尽量选用id选择器和元素选择器:因为遇到这些选择器的时候,jquery会自动调用浏览器的原生方法比如(document.getElementById()),所以他们的执行速度快.根据图中可以看出ID选择器执行速度最快,其次是元素选择器,然后…

wordpress建站环境搭建网页设计电商网站

以前一直使用Vue来写前端。去年下半年接手了一个基于React Next.js的项目,于是顺带学习了一下Next.js。由于Next.js的特点,这个项目的前后端是放在一起的。一开始没什么问题,看了半天文档就上手了。 上周我们需要在另一个网页项目中&#x…

哈尔滨网站建设哪儿好薇微信下滑小程序怎么关

词的相似性和类比任务 在前面的章节中,我们在一个小的数据集上训练了一个word2vec模型,并使用它为一个输入词寻找语义相似的词。实际上,在大型语料库上预先训练的词向量可以应用于下游的自然语言处理任务,为了直观地演示大型语料…

如企业网站模板下载中山顺德网站建设

工业交换机相比商业级交换机具有各方面性能的优势,在局域网工业交换机是组成网络系统设备的核心。那么,局域网工业交换机有哪些种类?新手该如何选择局域网交换机呢?需要注意哪些事项呢?接下来就跟随飞畅科技的小编一起…

api模式网站开发wordpress文章html页面

作者|陈伟 博士,英特尔公司物联网事业部副总裁、视频事业部全球总经理、中国区总经理 后疫情时代,当我们重新审视全球疫情,深刻领悟到这段特殊时期不仅加速了千行百业的数字化转型进程,更进一步引发了数据的指数级爆发。与以往不…

工艺品网站源码哈尔滨建设网站平台

第一组:第三方库或框架 React 相关模块第三方库或框架(例如:antd) 第二组:自己的库或模块 自己的库或模块(例如:jszone/abc、jszone/bcd) 第三组:具体功能或业务相关…

【深度学习计算机视觉】06:目标检测内容集

【深度学习计算机视觉】06:目标检测内容集2025-09-23 13:24 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…

建个网站平台需要多少钱如何搭建一个购物网站

多媒体标签 1 图片标签2 音频标签3 视频标签 1 图片标签 img(重点) 图片标签,用于在页面上引入图片 代码 <!-- src用于定义图片的连接 title用于定义鼠标悬停时显示的文字 alt用于定义图片加载失败时显示的提示文字 --> <img src"路径" title"悬停显…

网站建设标语文案怎么做网站导航条

Irvine的书使用MASM作为参考汇编程序 .作者正在谈论MASM operators 1 - 这些运营商仅为了我们人类的利益而受到支持 .它们让我们对立即数和常量执行算术&#xff0c;但它们使用的表达式必须最终在汇编时解析为一个值 .aConstant EQU 35mov edx, NOT 1 ;Same as mov edx, 0fffff…

北滘企业网站开发html网站设计源码

1. 认识网页 网页主要由文字、图像和超链接等元素构成。当然&#xff0c;除了这些元素&#xff0c;网页中还可以包含音频、视频以及Flash等。 2. 浏览器&#xff08;显示代码&#xff09; 浏览器是网页显示、运行的平台&#xff0c;常用的浏览器有IE、火狐&#xff08;Firefox…

做兼职的网站都有哪些工作内容潍坊专业联轴器收购价格

2024.1.14 题目来源我的题解方法一 双指针&#xff08;快慢指针&#xff09; 题目来源 力扣每日一题&#xff1b;题序&#xff1a;83 我的题解 方法一 双指针&#xff08;快慢指针&#xff09; 因为题目中的链表已经是升序排列&#xff0c;因此使用两个指针&#xff0c;分别…

网站的流量怎么赚钱嘉兴网站建设模板网站

这篇文章是关于历史经验以及最近应用的性能优化技术的。 几年前&#xff0c;我在特定的应用程序中发誓&#xff0c;我不得不发现隐藏在真正聪明的工程“技术”之下的无证行为。 它是一个典型的用于发票的单片Java EE应用程序。 最好忘记确切的代码&#xff0c;但是我记得开发人…

福州专业网站建设服务商网页设计与制作教程电子书

原标题&#xff1a;PPT新功能&#xff01;竟然还能用来制作H5最近几年随着移动端的快速发展&#xff0c;我们获取信息的途径更加便捷了&#xff0c;我们几乎每天都会刷微博、看朋友圈。而在众多的信息传递中&#xff0c;H5页面成了最受大众欢迎的形式。所谓的H5&#xff0c;简单…

营销型网站建设试卷织梦后台怎么换网站模板

近几个月来&#xff0c;我们一直看到一小部分但持续的操作失败&#xff0c;并带有一个奇怪的异常– org.springframework.jdbc.CannotGetJdbcConnectionException –“无法获得JDBC连接&#xff1b; 嵌套异常是java.sql.SQLException&#xff1a;客户端尝试检出Connection的尝试…

医院网站规划方案中南建设网官方网站

使用python的人都知道range()函数很方便&#xff0c;今天再用到他的时候发现了很多以前看到过但是忘记的细节。 这里记录一下range(),复习下list的slide&#xff0c;最后分析一个好玩儿的冒泡程序。 这里记录一下&#xff1a; >>> range(1,5) #代表从1到5(不包含5)[1,…

c语言数组与指针

c语言里面的指针,有两个能力,一个是具备存储地址的能力,就跟普通变量一样,定义指针后,例如,int p就是说p是一个指针变量,加上点数组的概念的情况下,同时它也是一个数组p[0],那=就可以推导出来P+1=p[1],对这个指…