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

目标检测——数据处理

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

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

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

相关文章:

  • 嵌入式晶振细究
  • 《深度揭秘:生成对抗网络如何重塑遥感图像分析精度》
  • 2025年2月个人工作生活总结
  • 网络层IP协议
  • C++—类与对象(中)
  • JAVA笔记【一】
  • 张雪峰教育观点及争议分析
  • 【java】@Transactional导致@DS注解切换数据源失效
  • 为AI聊天工具添加一个知识系统 之128 详细设计之69 编程 核心技术:Cognitive Protocol Language 之1
  • AutoMQ:无需 Cruise Control 实现 Kafka 的自动分区再平衡
  • GitLab 密钥详解:如何安全地使用 SSH 密钥进行身份验证
  • 用Python之requests库调用大型语言模型(LLM)API的流式输出与非流式输出比较
  • [C#]C#移动文件报错完全限定文件名必须少于 260 个字符,并且目录名必须少于 248 个字符
  • 新版的 distrobox 首先需要:设置密码
  • Spring Boot问题总结
  • deepseek+mermaid【自动生成流程图】
  • 独立开发者的内容营销教程
  • MySQL双主搭建-5.7.35
  • Vue 3 新特性:对比 Vue 2 的重大升级
  • V-HOP:结合视觉和触觉多模态融合数据集,助力机器人实现鲁棒的6D物体姿态跟踪
  • GTA5房产网站建设中/百度推广是什么意思
  • 会员充值网站怎么做/seo常用工具网站
  • 新农村建设的网站/网站播放视频速度优化
  • 网站备案帐号是什么情况/网站的网站建设
  • 网站不能访问如何做冗余/seo诊断分析在线工具
  • 网站要注册为什么/运营推广的方式和渠道