当前位置: 首页 > news >正文

YOLOv5 目标检测优化:降低误检与漏检

1. 引言

在目标检测任务中,误检(False Positive, FP)和漏检(False Negative, FN)是影响检测性能的两个主要问题。误检意味着模型检测到了不存在的目标,而漏检则指模型未能检测到真实存在的目标。本文将介绍如何优化 YOLOv5 以减少误检和漏检,提高检测精度。

2. 误检与漏检的常见原因

2.1 误检的常见原因

  • 训练数据质量问题:数据集存在噪声,如误标注或错误样本。
  • 背景复杂度过高:目标与背景相似度高,导致模型误判。
  • IoU(交并比)阈值过低:如果 NMS(非极大值抑制)中的 IoU 阈值过低,可能会保留过多低质量的框。
  • 过拟合:模型在训练数据上表现良好,但在测试数据上泛化能力差。
  • 类别不均衡:某些类别样本过多,导致模型倾向于过度检测。

2.2 漏检的常见原因

  • 置信度阈值过高:如果模型置信度设定过高,可能会导致部分低置信度目标被忽略。
  • 目标尺寸太小:YOLOv5 在小目标检测上相对较弱,可能难以检测微小目标。
  • 数据增强过度:过强的数据增强可能会改变目标形态,使模型难以识别。
  • 网络结构限制:默认 YOLOv5 的网络结构可能不适用于所有任务,可能需要调整。
  • 数据集不完整:如果数据集中缺少某些类别或场景,模型可能无法学习到足够的特征。

3. 降低误检的方法

3.1 提高训练数据质量

  1. 清理数据集:去除错误标注、重复数据或模糊目标。
  2. 平衡类别分布:尽可能使数据集中的不同类别样本数量均衡。
  3. 增加硬例(Hard Examples):针对易混淆类别增加相应样本,提升模型区分能力。

3.2 调整NMS(非极大值抑制)

data/hyp.scratch.yaml 中调整 IoU 阈值,例如:

nms_iou: 0.45  # 降低 IoU 阈值可以减少重复框

如果误检较多,可适当 降低 IoU 阈值,如 0.3-0.4,但不能太低,否则可能导致漏检。

3.3 调整置信度阈值

检测时的置信度阈值影响最终输出的检测结果。在 detect.py 中修改 conf-thres 参数,例如:

python detect.py --conf-thres 0.3

如果误检多,可 提高 置信度阈值,如 --conf-thres 0.4,但不能过高,否则可能导致漏检。

3.4 调整损失函数

如果误检较多,可以尝试修改 loss 计算方式,如增加 类别损失(class loss) 的权重:

cls_pw: 1.5  # 默认 1.0,可适当增加

3.5 增强数据增强策略

如果背景复杂导致误检,可以减少强烈的数据增强,避免模型学到无关信息。例如,减少 hsv_h, hsv_s, hsv_v 的变化范围:

hsv_h: 0.015  # 色调变化减少
hsv_s: 0.5    # 饱和度调整
hsv_v: 0.4    # 亮度调整

3.6 采用更强的模型

如果误检仍然较多,可以使用更大的 YOLOv5 变体,如 yolov5lyolov5x,提高检测能力。

python train.py --weights yolov5l.pt --epochs 300

4. 降低漏检的方法

4.1 降低置信度阈值

如果模型漏检较多,可以适当 降低 置信度阈值,例如 --conf-thres 0.2,但不能过低,否则会引入过多误检。

4.2 适当提高 NMS IoU 阈值

如果检测框被误过滤,可以适当 提高 IoU 阈值:

nms_iou: 0.5  # 提高 IoU 过滤

4.3 增强小目标检测能力

YOLOv5 对小目标检测较弱,可采用以下方法:

  1. 使用更高分辨率的输入
python train.py --img-size 1280
  1. 修改网络结构:调整 yolov5s.yaml 中的 depth_multiple 适当增加检测层。
  2. 数据增强:增加 MosaicCopy-Paste 以增强小目标样本。

4.4 采用多尺度训练

python train.py --multi-scale

开启多尺度训练,使模型能更好适应不同大小的目标。

4.5 采用更优的 Anchor Box

如果目标形状特殊,可以重新计算 Anchor:

python utils/autoanchor.py --dataset mydataset

4.6 采用数据增广策略

如果漏检主要集中在某些特定角度或场景,可以增加相应的数据增强,例如 旋转、仿射变换

5. 训练时的优化建议

5.1 选择合适的预训练模型

预训练模型的选择影响模型性能。例如,检测小目标时,使用 yolov5myolov5l 可能比 yolov5s 更好。

5.2 调整学习率策略

适当调整 lr0lrf,避免训练初期过快收敛。

lr0: 0.01  # 初始学习率
lrf: 0.2   # 最终学习率

5.3 训练更多 epochs

对于复杂任务,可以适当增加训练 epochs,例如:

python train.py --epochs 500

6. 结论

降低误检和漏检需要从 数据、超参数、网络结构、训练策略 等多个方面优化。关键点包括:

  • 数据集质量 是核心,应清理数据、平衡类别。
  • 调整置信度阈值 适应不同任务需求。
  • 优化 NMS 策略,适当调整 IoU 阈值。
  • 使用更大的模型改进 Anchor 设计 提升检测能力。
  • 数据增强策略 需适度,避免过强影响模型泛化。

通过合理的优化,可以大幅降低误检和漏检,提高 YOLOv5 在目标检测任务中的表现。

相关文章:

YOLOv5 目标检测优化:降低误检与漏检

1. 引言 在目标检测任务中,误检(False Positive, FP)和漏检(False Negative, FN)是影响检测性能的两个主要问题。误检意味着模型检测到了不存在的目标,而漏检则指模型未能检测到真实存在的目标。本文将介绍…...

网络安全治理模型

0x02 知识点 安全的目标是提供 可用性 Avialability机密性 confidentiality完整性 Integrity真实性 Authenticity不可否认性 Nonrepudiation 安全治理是一个提供监督、问责和合规性的框架 信息安全系统 Information Security Management System ISMS 策略,工作程…...

网络原理-

文章目录 协议应用层传输层网络层 数据链路层 协议 在网络通信中,协议是非常重要的概念.协议就是一种约定. 在网络通信过程中,对协议进行了分层 接下来就按照顺序向大家介绍每一种核心的协议. 应用层 应用层是咱们程序员打交道最多的一层协议.应用层里有很多现成的协议,但…...

HTML/CSS中交集选择器

1.作用:选中同时符合多个条件的元素 交集就是或的意思 2.语法:选择器1选择器2选择器3......选择器n{} 3.举例: /* 选中:类名为beauty的p元素,此种写法用的非常的多 */p.beauty{color: red;}/* 选中:类名包含rich和beauty的元素 */.rich.beauty{color: blue;} 4.注意: 1.有标签…...

机器学习(1)安装Pytorch

1.安装命令 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 2.安装过程Log: Looking in indexes: https://download.pytorch.org/whl/cu118 Co…...

Spring Boot过滤器链:从入门到精通

文章目录 一、过滤器链是什么?二、为什么需要过滤器链?三、Spring Boot中的过滤器链是如何工作的?(一)过滤器的生命周期(二)过滤器链的执行流程 四、如何在Spring Boot中定义自己的过滤器&#…...

vue3之echarts3D圆柱

vue3之echarts3D圆柱 效果&#xff1a; 版本 "echarts": "^5.1.2" 核心代码&#xff1a; <template><div ref"charts" class"charts"></div><svg><linearGradient id"labColor" x1"0&q…...

Redux中间件redux-thunk和redux-saga的具体区别是什么?

Redux 中间件是增强 Redux 功能的重要工具&#xff0c;redux-thunk 和 redux-saga 是两个常用的中间件&#xff0c;它们在处理异步操作和副作用时提供了不同的方式和理念。以下是两者的具体区别&#xff1a; 1. 概念与设计理念 redux-thunk 简洁&#xff1a;redux-thunk 是一…...

代码随想录算法训练营第四十三天| 动态规划06

322. 零钱兑换 如果求组合数就是外层for循环遍历物品&#xff0c;内层for遍历背包。 如果求排列数就是外层for遍历背包&#xff0c;内层for循环遍历物品。 这句话结合本题 大家要好好理解。 视频讲解&#xff1a;动态规划之完全背包&#xff0c;装满背包最少的物品件数是多少&…...

UI自动化教程 —— 元素定位技巧:精确找到你需要的页面元素

引言 在UI自动化测试中&#xff0c;准确地定位页面元素是至关重要的。无论是点击按钮、填写表单还是验证页面内容&#xff0c;都需要首先找到相应的页面元素。Playwright 提供了多种方法来实现这一点&#xff0c;包括使用CSS选择器和XPath进行元素定位&#xff0c;以及利用文本…...

MySQL六大日志的功能介绍。

前言 首先&#xff0c;MySQL的日志应该包括二进制日志&#xff08;Binary Log&#xff09;、错误日志&#xff08;Error Log&#xff09;、查询日志&#xff08;General Query Log&#xff09;、慢查询日志&#xff08;Slow Query Log&#xff09;、重做日志&#xff08;Redo …...

二级指针略解【C语言】

以int** a为例 1.二级指针的声明 a 是一个指向 int*&#xff08;指向整型的指针&#xff09;的指针&#xff0c;即二级指针。 通俗的讲&#xff0c;a是一个指向指针的指针&#xff0c;对a解引用会是一个指针。 它可以用于操作动态分配的二维数组、指针数组或需要间接修改指针…...

鸿蒙状态管理概述

状态管理 状态管理之v1LocalStorageLocalStorageLink的框架行为LocalStorageProp的框架行为LocalStorage使用场景 AppStorageStorageLink的框架行为StorageProp的框架行为AppStorage的使用场景 PersistentStorageEnvironmentEnvironment内置参数 WatchWatch的使用场景 $$语法$$…...

【核心算法篇十三】《DeepSeek自监督学习:图像补全预训练方案》

引言:为什么自监督学习成为AI新宠? 在传统监督学习需要海量标注数据的困境下,自监督学习(Self-Supervised Learning)凭借无需人工标注的特性异军突起。想象一下,如果AI能像人类一样通过观察世界自我学习——这正是DeepSeek图像补全方案的技术哲学。根据,自监督学习通过…...

由浅入深学习大语言模型RLHF(PPO强化学习- v1浅浅的)

最近&#xff0c;随着DeepSeek的爆火&#xff0c;GRPO也走进了视野中。为了更好的学习GRPO&#xff0c;需要对PPO的强化学习有一个深入的理解&#xff0c;那么写一篇文章加深理解吧。纵观网上的文章&#xff0c;要么说PPO原理&#xff0c;各种复杂的公式看了就晕&#xff0c;要…...

网络安全三件套

一、在线安全的四个误解     Internet实际上是个有来有往的世界&#xff0c;你可以很轻松地连接到你喜爱的站点&#xff0c;而其他人&#xff0c;例如黑客也很方便地连接到你的机器。实际上&#xff0c;很多机器都因为自己很糟糕的在线安全设置无意间在机器和系统中留下了“…...

瑞芯微RV1126部署YOLOv8全流程:环境搭建、pt-onnx-rknn模型转换、C++推理代码、错误解决、优化、交叉编译第三方库

目录 1 环境搭建 2 交叉编译opencv 3 模型训练 4 模型转换 4.1 pt模型转onnx模型 4.2 onnx模型转rknn模型 4.2.1 安装rknn-toolkit 4.2.2 onn转成rknn模型 5 升级npu驱动 6 C++推理源码demo 6.1 原版demo 6.2 增加opencv读取图片的代码 7 交叉编译x264 ffmepg和op…...

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析⑤】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase05 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月15日 关键词&#xff1a;UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-005测试用例 用例ID测试场景验证要点参考条款预期…...

python-leetcode 35.二叉树的中序遍历

给定一个二叉树的根节点root,返回它的中序遍历。 方法一&#xff1a;递归 二叉树的中序遍历&#xff1a;按照访问左子树——根节点——右子树的方式遍历这棵树&#xff0c;而在访问左子树或者右子树的时候我们按照同样的方式遍历&#xff0c;直到遍历完整棵树。因此整个遍历过…...

glob 用法技巧

目录 处理大量文件节省内存 匹配多个文件扩展名 遍历多种格式文件 遍历某一个文件&#xff1a; 查找当前目录和子目录 6. 排除特定文件 7. 大小写不敏感匹配 8. 获取绝对路径 9. 处理特殊字符 处理大量文件节省内存 技巧&#xff1a;用 iglob 替代 glob&#xff0c;逐…...

NE2281 1000W PFC芯片,主要应用于boost PFC变换器

1、方案名称&#xff1a;NE2281 1000W PFC芯片&#xff0c;主要应用于boost PFC变换器 2、品牌&#xff1a;星云半导体&#xff08;NEBULA&#xff09; 3、描述&#xff1a;NE2281 是一款高性能、多模式工作的 AC/DC控制器&#xff0c;具有高集成度、高效率等特性&#xff0c…...

告别手动刷新:闲鱼智能监控系统帮你5分钟搭建自动化淘货助手

告别手动刷新&#xff1a;闲鱼智能监控系统帮你5分钟搭建自动化淘货助手 【免费下载链接】idlefish_xianyu_spider-crawler-sender 闲鱼自动抓取/筛选/发送系统&#xff0c;xianyu spider crawler blablabla 项目地址: https://gitcode.com/gh_mirrors/id/idlefish_xianyu_sp…...

OpenClaw共生未来——“记忆经济”、联邦记忆与碳硅文明的意识纠缠(第十六篇)

OpenClaw共生未来——“记忆经济”、联邦记忆与碳硅文明的意识纠缠&#xff08;第十六篇&#xff09;导言&#xff1a;当硅基龙虾学会做梦&#xff0c;人类将栖身何处&#xff1f;在第一篇中&#xff0c;我们见证了记忆作为“反熵引擎”的本体论升维&#xff1b;在第二篇中&…...

10年运维总监深度拆解:成本优化与资源管理,如何在“稳”与“省”之间找到最佳平衡点?

一句话核心价值&#xff1a;本文帮你建立一套可量化、可落地的“稳中有省”运维决策框架&#xff0c;让你在2026年IT预算持续承压的背景下&#xff0c;既能守住系统生命线&#xff0c;又能把每一分钱花在刀刃上。一、你在追求“省”的时候&#xff0c;到底在冒多大的“不稳”风…...

云原生环境中的DevOps最佳实践:从基础设施即代码到GitOps的全面指南

云原生环境中的DevOps最佳实践&#xff1a;从基础设施即代码到GitOps的全面指南 &#x1f525; 硬核开场 各位技术大佬们&#xff0c;今天咱们来聊聊云原生环境中的DevOps最佳实践。别跟我说你的运维还在手动配置&#xff0c;那都不叫DevOps&#xff01;在云原生时代&#xf…...

欧盟AI法案合规指南:软件测试视角下的五大雷区与应对策略

一场即将到来的合规风暴2026年8月2日&#xff0c;全球首部综合性人工智能法规——欧盟《人工智能法案》的核心条款将全面生效。这部法律不仅以其“风险分级监管”的严格原则重塑全球AI治理格局&#xff0c;更以最高可达全球年营业额7%的巨额罚则&#xff0c;为所有意图进入欧盟…...

DevEco Studio:Profile Manager

1、我在module.json5中配置了3种设备&#xff1a;点击右侧的Previewer&#xff1a;出现预览窗口&#xff1a;点击右上角的Enable Profile Manager:点击 Edit图标&#xff1a;出现界面&#xff0c;创建一个tablet profile&#xff0c;然后点击OK 按钮&#xff1a;同理&#xff0…...

【AI面试临阵磨枪-27】CoT、ToT、Plan-and-Solve、Plan-and-Execute 分别是什么?适用场景?

一、面试题目请你分别说明 CoT、ToT、Plan-and-Solve、Plan-and-Execute 四种大模型推理范式的核心定义&#xff0c;并对比各自的适用业务场景。二、知识储备1. CoT&#xff08;Chain-of-Thought 思维链&#xff09;核心定义最简单的线性推理范式&#xff0c;引导模型不直接给出…...

FPGA数字信号发生器实战:基于ROM查表法生成任意波形(正弦/方波/三角波)

FPGA数字信号发生器实战&#xff1a;基于ROM查表法生成任意波形&#xff08;正弦/方波/三角波&#xff09; 在嵌入式系统开发和高频电路设计中&#xff0c;灵活可编程的信号发生器是不可或缺的工具。传统专用信号发生器往往价格昂贵且功能固化&#xff0c;而基于FPGA和ROM查表法…...

AI给软件测试带来的5大机遇,错过一个都不应该!

01「 什么是人工智能&#xff08;AI&#xff09;&#xff1f;」 人工智能&#xff08;Artificial Intelligence, AI&#xff09;是一门集合了计算机科学、信息工程、心理学、哲学等多学科知识的研究领域&#xff0c;它旨在创建能够执行通常需要人类智能的任务的机器和软件。AI…...