yolov8目标检测如何设置背景/无标签图像参与训练

news/2024/11/17 18:49:49/

背景

在开发深度学习模型的时候,总有一些图像会造成误检,这时候就需要将这些误检的图像不进行标注加入训练,让模型知道这里是一个不需要检测的“背景”,减少模型的误检率。
而在网上搜了一大堆之后,发现并没有单独介绍这方面的文章,因此在这里做一个简单的文章进行介绍。

1、yolov8的数据集加载逻辑

第一步:首先通过图像路径得到所有图像的绝对文件路径列表
图像加载逻辑
第二步:再通过img2label_paths这个函数将图像路径转换为标签文件路径,感兴趣的可以再去看看这个函数,所以这里需要划重点!!!,yolov8不是靠给定的标签文件路径去寻找标签文件,而是将图像文件路径转换为标签路径

在这里插入图片描述
第三步:通过一个进程池和verify_image_label函数将所有的标签文件加载到内存里
在这里插入图片描述
点进这个函数,我把标签文件存在的加载代码折叠了,只看标签文件不存在时的的代码,可以发现这里将nm置为了1.,也就是不存在标签,这个只作为一个计数使用。重点是下面这一行。对于没有标签的图像,yolov8生成了一个空白的标签,并且将这个空白标签作为真实的标签进行训练

在这里插入图片描述

总结

yolov8将背景图像加入训练,不是生成一个空白的标签文件,而是将背景图像直接放入训练集即可


http://www.ppmy.cn/news/1547782.html

相关文章

ptrade财务数据

ptrade财务数据很多,这里只取最简单的形式 get_fundamentals(g.security, valuation) 估值数据 - valuation 字段名称字段类型字段说明属性trading_daystr交易日期固定返回total_valuestrA股总市值(元)固定返回float_valuestrA股流通市值(元)自选返回napsnumpy.flo…

HTML5:网页开发的新纪元

文章目录 前言一、HTML5技术概述二、主要特点及优势1. 多媒体支持2. 图形绘制3. 离线存储4. 表单控件增强5. 响应式设计 三、应用场景1. 游戏开发2. 在线教育3. 电子商务 四、面临的挑战结语 前言 在互联网技术快速发展的今天,H5(HTML5的简称&#xff0…

【FPGA开发】AXI-Stream总线协议解读

文章目录 AXI-Stream概述协议中一些定义字节定义流的定义 数据流类别字节流连续对齐流连续不对齐流稀疏流 协议的信号信号列表 文章为个人理解整理,如有错误,欢迎指正! 参考文献 ARM官方手册 《IHI0051B》 AXI-Stream概述 协议中一些定义 A…

【C++】list 与 string 基础与实现字符串操作

【C】使用 list 与 string 实现基础字符串操作 文章目录 一、字符串的基础操作1.1 - startsWith1.2 - endsWith1.3 - trim1.4 - indexOf1.5 - replaceAll 二、list 基础操作2.1 - 遍历2.1.1 - 使用迭代器访问2.1.2 - 使用基于范围的 for 循环遍历2.1.3 - 使用标准算法库遍历 2.…

STM32G4的数模转换器(DAC)功能介绍

目录 概述 1 DAC介绍 1.1 功能 1.2 主要特征 1.3 DAC特性总结 ​2 DAC模块框架结构 3 DAC数据格式 3.1 单DAC通道 3.2 双通道数据格式 3.3 有符号、无符号数据 4 DAC数据转换 ​5 DAC输出电压 概述 本文主要介绍STM32G4的数模转换器(DAC)功能&a…

AI在电商平台中的创新应用:提升销售效率与用户体验的数字化转型

1. 引言 AI技术在电商平台的应用已不仅仅停留在基础的数据分析和自动化推荐上。随着人工智能的迅速发展,越来越多的电商平台开始将AI技术深度融合到用户体验、定价策略、供应链优化、客户服务等核心业务中,从而显著提升运营效率和用户满意度。在这篇文章…

vue3中使用 HTML5 Canvas 做一个案例总结笔记

这篇文章记录了在vue3中如何使用HTML5 Canvas做一个时钟的案例, 当然主要是HTML5 Canvas, 如何需要了解更多关于vue的知识前面也已经写过好几篇了,辛苦翻一下的... 开始写代码之前我们先来了解一下关于HTML5 Canvas 的基础知识 目录 一 .基础知识 1.了解canvas 1.1 基本用法…

Linux下useradd 和 adduser的区别

useradd 和 adduser 是在类 Unix 系统中用于添加新用户的命令,但它们之间存在一些差异,主要体现在不同的系统环境和命令的具体实现上。 useradd useradd 命令通常用于基于 sysvinit 的系统,如早期的 Linux 发行版(比如 CentOS 6…