目标检测——数据处理
1. Mosaic
数据增强
Mosaic
数据增强步骤:
(1). 选择四个图像:
- 从数据集中随机选择四张图像。这四张图像是用来组合成一个新图像的基础。
(2) 确定拼接位置:
- 设计一个新的画布(
输入size的2倍
),在指定范围内找出一个随机点(如图1所示: 范围在320 ~ 960之间)。 - 每一张小图按照长边resize到输入的输入size的大小,然后依次拼接到对应位置。
(3) 调整图像大小和裁剪:
- 对每个选定的图像进行缩放和裁剪,使其适合分配给它的区域。 这样可以确保每个图像都能很好地适应其对应的象限,并且不会超出边界。
(4) 调整标签:
- 如果你在进行目标检测任务,还需要调整每个图像中的目标框(
bounding boxes
)的坐标,使其适应新的复合图像的位置。具体来说,需要根据图像在复合图像中的位置重新计算目标框的位置和尺寸。
(5) 应用其他增强操作(可选):
- 在生成的复合图像上可以进一步应用其他常见的数据增强技术,如颜色抖动(
color jittering
)、水平翻转(horizontal flipping
)、旋转(rotation
)等,以进一步丰富数据集。
2. CutMix
数据增强
CutMix
是一种数据增强技术,旨在通过将两张图像的一部分区域进行混合,并相应地调整标签,来增加训练样本的多样性。这种方法不仅能够提高模型的泛化能力,还能有效防止过拟合。
CutMix
数据增强的具体步骤:
(1) 选择两张图像和标签:
- 从数据集中随机选择两张图像
image1
和image2
及其对应的标签label1
和label2
。
(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
对于目标检测任务,需要调整每个目标框的位置和标签,以反映混合后的图像内容。具体来说:
- 如果目标框完全位于混合区域之外,则保留原标签。
- 如果目标框部分位于混合区域之内,则需要根据交集区域调整目标框的位置和大小。
相关文章:

目标检测——数据处理
1. Mosaic 数据增强 Mosaic 数据增强步骤: (1). 选择四个图像: 从数据集中随机选择四张图像。这四张图像是用来组合成一个新图像的基础。 (2) 确定拼接位置: 设计一个新的画布(输入size的2倍),在指定范围内找出一个随机点(如…...
深度学习工程师的技术图谱和学习路径
在构建一个深度学习工程师的技术图谱时,按照“技能树与能力模型”的结构可以帮助清晰地展示出技术体系的层次化关系,帮助学习者更好地理解每个技术点的依赖与顺序。 深度学习工程师的技术图谱和学习路径 以下是深度学习工程师的技能树,包括从基础到进阶的学习路径,以及对…...

Qt 文件操作+多线程+网络
文章目录 1. 文件操作1.1 API1.2 例子1,简单记事本1.3 例子2,输出文件的属性 2. Qt 多线程2.1 常用API2.2 例子1,自定义定时器 3. 线程安全3.1 互斥锁3.2 条件变量 4. 网络编程4.1 UDP Socket4.2 UDP Server4.3 UDP Client4.4 TCP Socket4.5 …...

如何使用ArcGIS Pro制作横向图例:详细步骤与实践指南
ArcGIS Pro,作为Esri公司推出的新一代地理信息系统(GIS)平台,以其强大的功能和灵活的操作界面,在地理数据处理、地图制作和空间分析等领域发挥着重要作用。 在地图制作过程中,图例作为地图的重要组成部分&…...
Kotlin 嵌套类和内部类
在Kotlin中,嵌套类(Nested Class)和内部类(Inner Class)是两种不同的类,它们在定义和使用上有一些区别。 1.嵌套类(Nested Classes)默认是静态的(即等同于Java中的stati…...
蓝蝶(BlueStacks)模拟器Root、Magisk、LSPosed及Shamiko框架安装与过应用检测指南
蓝蝶(BlueStacks)模拟器Root、Magisk、LSPosed及Shamiko框架安装与过应用检测指南 蓝蝶bluestacks模拟器root和magisk以及Lsposed和shamiko框架的安装过应用检测 一、引言 蓝蝶(BlueStacks)模拟器是一款广受欢迎的安卓模拟器&…...
OpenCV计算摄影学(6)高动态范围成像(HDR imaging)
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 高动态范围成像(HDR imaging)是一种图像处理技术,旨在通过增加图像的动态范围来更准确地表示真实世界的亮度差…...
[ComfyUI][AI生图]如何在Comfyui中安装插件管理器
如何在ComfyUI便携版中安装插件管理器 在现代软件环境中,图形用户界面(GUI)提供了一种直观的方式来与应用程序交互。ComfyUI是一个出色的GUI框架,它使用户能够通过图形化方式配置和管理他们的应用程序。特别是ComfyUI的便携版,它允许用户在没有安装的情况下使用这一工具,…...

初探Ollama与deepseek
什么是Ollama?它与大模型有什么联系? 简单说,Ollama就像是你电脑上的一个 “大模型小助手”。 以前,很多强大的大语言模型,比如能回答各种问题、写文章、翻译等的那些模型,要么只能在网上的服务器上用&am…...
Linux top 常用参数记录
top命令经常用来监控linux的系统状况,能实时显示系统中各个进程、线程的资源占用情况,是常用的性能分析工具。 一些常用参数记录 top的使用方式 top [-d number] | top [-bnp] # 5s 更新一次 top -d 5# 进行2次top命令的输出结果 top -n 2# 查看进程的…...

CCF-CSP认证 202104-1灰度直方图
题目描述 思路 首先输入矩阵长度、矩阵宽度和灰度范围,结果数组长度可固定,其中的元素要初始化为0。在输入灰度值的时候,结果数组中以该灰度值为索引的元素值1,即可统计每个灰度值的数量。 代码 C版: #include <…...

怎么下载安装yarn
安装 npm install --global yarn 是否安装成功 yarn -v Yarn 淘宝源安装,分别复制粘贴以下代码行到黑窗口运行即可 yarn config set registry https://registry.npm.taobao.org -g yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/…...

Vulhub靶机 AppWeb认证绕过漏洞(CVE-2018-8715)(渗透测试详解)
一、开启vulhub环境 docker-compose up -d 启动docker ps 查看开放的端口 影响版本 Appweb 7.0.2以及之前的版本 二、访问靶机IP 8080端口 访问IP会弹出个登录框 1、随便输个用户名,利用burp抓包 2、修改数据包 ,发包 Authorization: Digest usern…...

CSS 系列之:grid 布局
基本概念 <template><div class"parent"><div class"box">p1-1</div><div class"box">p1-2</div><div class"box">p1-3</div></div><div class"parent"><…...

DeepSeek MLA(Multi-Head Latent Attention)算法浅析
目录 前言1. 从MHA、MQA、GQA到MLA1.1 MHA1.2 瓶颈1.3 MQA1.4 GQA1.5 MLA1.5.1 Part 11.5.2 Part 21.5.3 Part 3 结语参考 前言 学习 DeepSeek 中的 MLA 模块,究极缝合怪,东抄抄西抄抄,主要 copy 自苏神的文章,仅供自己参考&#…...

【计算机网络入门】初学计算机网络(七)
目录 1. 滑动窗口机制 2. 停止等待协议(S-W) 2.1 滑动窗口机制 2.2 确认机制 2.3 重传机制 2.4 为什么要给帧编号 3. 后退N帧协议(GBN) 3.1 滑动窗口机制 3.2 确认机制 3.3 重传机制 4. 选择重传协议(SR&a…...
Conda 环境搭建实战:从基础到进阶
在当今复杂多变的软件开发与数据科学领域,拥有一个稳定、可复现且易于管理的开发环境是项目成功的基石。Conda 作为一款强大的跨平台环境管理与包管理工具,为开发者提供了便捷高效的环境搭建与依赖管理解决方案。本文将深入探讨 Conda 环境搭建的实战技巧…...

大数据-236 离线数仓 - 会员活跃度 WDS 与 ADS 导出到 MySQL 与 广告业务 需求分析
点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop࿰…...
fps项目总结:关于攻击与受击
文章目录 战斗交互攻击方命中区间 双方命中响应 攻击方:指定攻击动画指定动画命中区间:在动画中指定攻击范围以及命中响应动画通知:动画中攻击的开关——调用蓝图攻击函数:实现攻击检测以及命中响应通道检测:——自定义…...

coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以
coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以。 很简单。 准备工作,先发布你的工作流,和发布应用。 然后,点击扣子API 。 申请一个࿰…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...