目标检测——数据处理

news2025/4/21 15:26:23

1. Mosaic 数据增强

Mosaic 数据增强步骤:

(1). 选择四个图像:

  • 从数据集中随机选择四张图像。这四张图像是用来组合成一个新图像的基础

(2) 确定拼接位置:

  • 设计一个新的画布(输入size的2倍),在指定范围内找出一个随机点(如图1所示: 范围在320 ~ 960之间)
  • 每一张小图按照长边resize到输入的输入size的大小,然后依次拼接到对应位置
    图像1

图示2

(3) 调整图像大小和裁剪:

  • 对每个选定的图像进行缩放和裁剪,使其适合分配给它的区域。 这样可以确保每个图像都能很好地适应其对应的象限,并且不会超出边界。

(4) 调整标签:

  • 如果你在进行目标检测任务,还需要调整每个图像中的目标框(bounding boxes)的坐标,使其适应新的复合图像的位置。具体来说,需要根据图像在复合图像中的位置重新计算目标框的位置和尺寸。

(5) 应用其他增强操作(可选):

  • 生成的复合图像上可以进一步应用其他常见的数据增强技术,如颜色抖动(color jittering)、水平翻转(horizontal flipping)、旋转(rotation)等,以进一步丰富数据集。

2. CutMix 数据增强

CutMix一种数据增强技术,旨在通过将两张图像的一部分区域进行混合,并相应地调整标签,来增加训练样本的多样性。这种方法不仅能够提高模型的泛化能力,还能有效防止过拟合。

CutMix 数据增强的具体步骤:

(1) 选择两张图像和标签:

  • 从数据集中随机选择两张图像 image1image2 及其对应的标签 label1label2

(2) 确定混合区域:

  • image1 中随机选择一个矩形区域 (x, y, w, h),其中 (x, y) 是矩形的左上角坐标,(w, h)是矩形的宽度和高度。

  • 通常使用均匀分布来随机选择这些参数,例如:

    lam = np.random.beta(beta, beta)  # Beta分布参数,用于控制混合比例
    x = np.random.randint(0, image1.shape[1])
    y = np.random.randint(0, image1.shape[0])
    w = int(image1.shape[1] * np.sqrt(1 - lam))
    h = int(image1.shape[0] * np.sqrt(1 - lam))
    

(3) 裁剪并混合区域:

  • 将 image2 中对应区域的图像裁剪出来,并将其粘贴到 image1 的选定区域中。

  • 这一步可以通过简单的图像操作完成:

    def cutmix(image1, image2, x, y, w, h):
        mixed_image = image1.copy()
        mixed_image[y:y+h, x:x+w] = image2[y:y+h, x:x+w]
        return mixed_image
    

(4) 调整标签:
对于分类任务,标签可以根据混合区域的比例进行线性插值。假设 lam 是混合区域占总面积的比例,则新图像的标签可以表示为:

new_label = lam * label1 + (1 - lam) * label2

对于目标检测任务,需要调整每个目标框的位置和标签,以反映混合后的图像内容。具体来说:

  • 如果目标框完全位于混合区域之外,则保留原标签
  • 如果目标框部分位于混合区域之内,则需要根据交集区域调整目标框的位置和大小

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

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

相关文章

基于springboot+vue的拖恒ERP-物资管理

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

spring结合mybatis多租户实现单库分表

实现单库分表-水平拆分 思路:student表数据量大,所以将其进行分表处理。一共有三个分表,分别是student0,student1,student2,在新增数据的时候,根据请求头中的meta-tenant参数决定数据存在哪张表…

YoloV8改进策略:Block改进|CBlock,Transformer式的卷积结构|即插即用

摘要 论文标题: SparseViT: Nonsemantics-Centered, Parameter-Efficient Image Manipulation Localization through Spare-Coding Transformer 论文链接: https://arxiv.org/pdf/2412.14598 官方GitHub: https://github.com/scu-zjz/SparseViT 这段代码出自SparseViT ,代码如…

微服务架构实践:SpringCloud与Docker容器化部署

## 微服务架构实践:SpringCloud与Docker容器化部署 随着互联网应用的复杂性不断增加,传统的单体应用架构面临着诸多挑战,如难以部署、维护困难、开发效率低下等问题凸显出来。为了解决这些问题,微服务架构应运而生,它通…

[原创]openwebui解决searxng通过接口请求不成功问题

openwebui 对接 searxng 时 无法查询到联网信息,使用bing搜索,每次返回json是正常的 神秘代码: http://172.30.254.200:8080/search?q北京市天气&formatjson&languagezh&time_range&safesearch0&languagezh&locale…

8 SpringBootWeb(下):登录效验、异步任务和多线程、SpringBoot中的事务管理@Transactional

文章目录 案例-登录认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试2. 登录校验2.1 问题分析2.2 会话技术2.2.1 会话技术介绍2.2.2 会话跟踪方案2.2.2.1 方案一 - Cookie2.2.2.2 方案二 - Session2.2.2.3 方案三 - 令牌技术2.2.3 JWT令牌(Token)2.2.3.…

2025年山东省职业院校技能大赛(高职组)“云计算应用”赛项赛卷1

“云计算应用”赛项赛卷1 2025年山东省职业院校技能大赛(高职组)“云计算应用”赛项赛卷1模块一 私有云(30分)任务1 私有云服务搭建(5分)1.1.1 基础环境配置1.1.2 yum源配置1.1.3 配置无秘钥ssh1.1.4 基础安…

MySQL数据库基本概念

目录 什么是数据库 从软件角度出发 从网络角度出发 MySQL数据库的client端和sever端进程 mysql的client端进程连接sever端进程 mysql配置文件 MySql存储引擎 MySQL的sql语句的分类 数据库 库的操作 创建数据库 不同校验规则对查询的数据的影响 不区分大小写 区…

塔能科技:工厂智慧照明,从底层科技实现照明系统的智能化控制

在全球节能减碳和智慧生活需求激增的背景下,基于“用软件定义硬件,让物联运维更简捷更节能”的产品理念,塔能科技的智慧照明一体化方案如新星般崛起,引领照明行业新方向。现在,我们来深入探究其背后的创新技术。该方案…

P3398 仓鼠找 sugar【题解】

这是LCA的一个应用,关于LCA P3398 仓鼠找 sugar 题目描述 小仓鼠的和他的基(mei)友(zi)sugar 住在地下洞穴中,每个节点的编号为 1 ∼ n 1\sim n 1∼n。地下洞穴是一个树形结构。这一天小仓鼠打算从从他…

Android Trace埋点beginSection打tag标签,Kotlin

Android Trace埋点beginSection打tag标签,Kotlin import android.os.Bundle import android.os.Trace import android.util.Log import androidx.appcompat.app.AppCompatActivityclass ImageActivity : AppCompatActivity() {companion object {const val TRACE_TA…

Lua的table(表)

Lua表的基本概念 Lua中的表(table)是一种多功能数据结构,可以用作数组、字典、集合等。表是Lua中唯一的数据结构机制,其他数据结构如数组、列表、队列等都可以通过表来实现。 表的实现 Lua的表由两部分组成: 数组部分…

51页精品PPT | 农产品区块链溯源信息化平台整体解决方案

PPT展示了一个基于区块链技术的农产品溯源信息化平台的整体解决方案。它从建设背景和需求分析出发,强调了农产品质量安全溯源的重要性以及国际国内的相关政策要求,指出了食品安全问题在流通环节中的根源。方案提出了全面感知、责任到人、定期考核和追溯反…

Jenkins 自动打包项目镜像部署到服务器 ---(前端项目)

Jenkins 新增前端项目Job 指定运行的节点 选择部署运行的节点标签,dev标签对应开发环境 节点的远程命令执行配置 jenkins完整流程 配置源码 拉取 Credentials添加 触发远程构建 配置后可以支持远程触发jenkins构建(比如自建的CICD自动化发布平台&…

使用AoT让.NetFramework4.7.2程序调用.Net8编写的库

1、创建.Net8的库&#xff0c;双击解决方案中的项目&#xff0c;修改如下&#xff0c;启用AoT&#xff1a; <Project Sdk"Microsoft.NET.Sdk"><PropertyGroup><OutputType>Library</OutputType><PublishAot>true</PublishAot>&…

第49天:Web开发-JavaEE应用SpringBoot栈模版注入ThymeleafFreemarkerVelocity

#知识点 1、安全开发-JavaEE-开发框架-SpringBoot&路由&传参 2、安全开发-JavaEE-模版引擎-Thymeleaf&Freemarker&Velocity 一、开发框架-SpringBoot 参考&#xff1a;https://springdoc.cn/spring-boot/ 访问SpringBoot创建的网站 1、路由映射 RequestMapping…

数据集笔记:NUSMods API

1 介绍 NUSMods API 包含用于渲染 NUSMods 的数据。这些数据包括新加坡国立大学&#xff08;NUS&#xff09;提供的课程以及课程表的信息&#xff0c;还包括上课地点的详细信息。 可以使用并实验这些数据&#xff0c;它们是从教务处提供的官方 API 中提取的。 该 API 由静态的…

SpringBoot新闻推荐系统设计与实现

随着信息时代的快速发展&#xff0c;新闻推荐系统成为用户获取个性化内容的重要工具。本文将介绍一个幽络源的基于SpringBoot开发的新闻推荐系统&#xff0c;该系统功能全面&#xff0c;操作简便&#xff0c;能够满足管理员和用户的多种需求。 管理员模块 管理员模块为系统管…

谷歌推出PaliGemma 2 mix:用于多任务的视觉语言模型,开箱即用。

去年 12 月&#xff0c;谷歌推出了 PaliGemma 2 &#xff0c;这是Gemma系列中的升级版视觉语言模型。该版本包含不同大小&#xff08;3B、10B 和 28B 参数&#xff09;的预训练检查点&#xff0c;可轻松针对各种视觉语言任务和领域进行微调&#xff0c;例如图像分割、短视频字幕…

linux中断调用流程(arm)

文章目录 ARM架构下Linux中断处理全流程解析&#xff1a;从硬件触发到驱动调用 ⚡**一、中断触发与硬件层响应** &#x1f50c;**1. 设备触发中断** &#x1f4e1; **二、CPU阶段&#xff1a;异常入口与上下文处理** &#x1f5a5;️**1. 异常模式切换** &#x1f504;**2. 跳转…