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

什么是卷积网络中的平移不变性?平移shft在数据增强中的意义

今天来介绍一下数据增强中的平移shft操作和卷积网络中的平移不变性。

1、什么是平移

Shift 平移是指在数据增强(data augmentation)过程中,通过对输入图像或目标进行位置偏移(平移),让目标在图像中呈现出不同的位置。Shift 平移的目的是增加训练数据的多样性,从而提高模型对目标在不同位置上的泛化能力。

具体的平移以及操作步骤可以参考这篇:详解数据增强中的平移shft操作-CSDN博客

1.1、平移的定义

  • 平移是将目标或图像内容在水平或垂直方向上移动。
  • 平移范围(shift range):定义平移的最大像素数,例如 ±16 像素表示目标可以随机移动 -16 到 +16 像素。

1.2、操作步骤

以图像为例:

  • 输入:目标所在的图像(即“搜索区域”)和目标框(目标的坐标)。
  • 平移操作
    • 选择一个随机平移的值:从范围 [−r,r](如 -16 到 +16 像素)中随机生成一个水平平移值 Δx和一个垂直平移值 Δy。
    • 移动目标框:将目标框的位置平移为(x+Δx,y+Δy)。
    • 对整个图像应用相应的平移:图像的内容会被相应地向左、右、上或下移动,边界位置的空白部分可以用填充值(如 0、均值或镜像填充)补充。

具体示例:假设我们有一张 255×255像素的图像,目标位于中心位置。

  1. 未平移(0-shift)
    • 目标始终在图像中心。
    • 输出的目标框位置不变,例如:(128,128)。
  2. 16-shift
    • 随机生成 Δx=10和 Δy=−12,目标向右移动 10 像素,向上移动 12 像素。
    • 输出的目标框位置为 (138,116)。
  3. 32-shift
    • 假设 Δx=−20,Δy=25,目标向左移动 20 像素,向下移动 25 像素。
    • 输出的目标框位置为 (108,153)。

2、什么是平移不变性?

  • 定义:平移不变性是指当输入图像或特征图中的物体发生位置平移时,模型的输出不会因为这种平移而改变。
    换句话说,如果我们将目标在输入图像中向某个方向移动,模型的输出(如特征图或预测结果)也应该随之平移,而不发生其他变化。
  • 例子:假设一个模型能正确识别目标“猫”在图像的中心。如果我们把“猫”平移到图像的左边,模型也应该能够以相同的准确度识别“猫”。
  • 重要性:在视觉任务(如目标检测与跟踪)中,目标可能出现在图像的任何位置。如果模型具有平移不变性,就能在不同位置上正确地识别目标,而不是依赖目标固定出现在某个位置(如中心)。

3、为什么填充(padding)会破坏平移不变性?

  • 卷积操作中的填充
    • 卷积神经网络(CNN)通常会在输入图像边界加上填充(padding)以保持输出特征图的大小不变。
    • 常见的填充方法是零填充(用0填充边缘),即在图像周围增加一圈“0”值。
  • 填充破坏平移不变性的原因
    • 当目标发生平移时,图像边界附近的特征会受到填充值(如0)的影响,而非目标本身的真实像素值。这会导致模型对目标位置的响应不一致。
    • 举例:假设一个目标平移到图像边缘,其周围的像素会被填充值取代,导致卷积结果与目标在中心时不同。这种边界效应直接破坏了平移不变性。
    • 当目标平移到边界时,模型的感受野中包含了填充值(非目标信息),这会使模型输出的特征发生偏移或变化。

4、为什么引入随机平移(shift)能缓解填充对平移不变性的破坏?

该问题在这篇论文中进行了详细的分析,具体可看这篇分享:

论文速读:SiamRPN++,利用深度网络实现Siamese视觉跟踪的进化-CSDN博客SiamRPN++:利用深度网络实现Siamese视觉跟踪的进化-CSDN博客

(1)引入shift的作用:

  • 随机平移指在训练时,将目标的位置在图像中随机移动一定范围(shift range)。
  • 例如,目标可以被随机平移±16或±32像素,这相当于模拟目标在图像中出现的各种位置。

(2)随机平移如何缓解问题:

  • 打破中心偏置
    • 如果训练中目标总是在中心,模型会习惯性地“认为”目标只会出现在中心(即学习了一个中心偏置)。
    • 随机平移让目标出现在图像的不同位置,迫使模型学习处理目标在各种位置的情况,而不是依赖中心区域的特性。
  • 增加边界数据的多样性
    • 随机平移可以让目标多次接近边界,从而让模型在边界位置“见过”更多真实的数据,而不仅仅是填充值。
    • 这缓解了填充导致的边界效应,使模型学会更好地处理边界位置的输入。

(3)训练效果的改善:

  • 在训练中随机平移目标后,模型学习到的分布更接近真实世界中目标的位置分布(目标可能出现在任何位置,而不是总在中心)。
  • 这使得模型在测试时表现得更加鲁棒,不再依赖目标的具体位置。

5、Shift 平移在数据增强中的意义

  1. 多样性增加
    • Shift 平移让目标在训练集中出现在不同位置,而不是总在中心位置。
    • 增强了模型的泛化能力,使其能够处理目标在图像中任何位置的情况。
  2. 缓解中心偏置
    • 如果目标总是出现在中心,模型可能会依赖中心区域的特性(中心偏置)。
    • Shift 平移打破了这种依赖,使模型能够更均匀地处理图像中的所有位置。
  3. 边界学习
    • Shift 平移可以使目标更频繁地出现在图像的边界区域,帮助模型学习如何处理边界效应,尤其是填充(padding)对模型的影响。
http://www.lryc.cn/news/519953.html

相关文章:

  • java.net.SocketException: Connection reset 异常原因分析和解决方法
  • Maven 仓库的分类
  • 隧道网络:为数据传输开辟安全通道
  • CentOS 7 下 Nginx 的详细安装与配置
  • JAVA 使用apache poi实现EXCEL文件的输出;apache poi实现标题行的第一个字符为红色;EXCEL设置某几个字符为别的颜色
  • 通过vba实现在PPT中添加计时器功能
  • 检验统计量与p值笔记
  • 【集成学习】Bagging、Boosting、Stacking算法详解
  • Rabbit Rocket kafka 怎么实现消息有序消费和延迟消费的
  • 【Ubuntu与Linux操作系统:五、文件与目录管理】
  • 32_Redis分片集群原理
  • 微信小程序mp3音频播放组件,仅需传入url即可
  • Sql 创建用户
  • 数据结构:LinkedList与链表—面试题(三)
  • 【开发日记】Docker修改国内镜像源
  • Elasticsarch:使用全文搜索在 ES|QL 中进行过滤 - 8.17
  • 第432场周赛:跳过交替单元格的之字形遍历、机器人可以获得的最大金币数、图的最大边权的最小值、统计 K 次操作以内得到非递减子数组的数目
  • RK3399开发板Linux实时性改造
  • 青少年编程与数学 02-006 前端开发框架VUE 22课题、状态管理
  • Linux 内核中的 netif_start_queue 函数:启动网络接口发送队列的关键
  • 数据结构之顺序结构二叉树(超详解)
  • acwing_5722_十滴水
  • acwing-3194 最大的矩形
  • UnityDemo-TheBrave-制作笔记
  • 玩转 JMeter:Random Order Controller让测试“乱”出花样
  • VTK知识学习(33)-交互问题2
  • Centos9-SSH免密登录配置-修改22端口-关闭密码登录-提高安全性
  • SqlServer: An expression services limit has been reached异常处理
  • CentOS下安装Docker
  • WPF控件Grid的布局和C1FlexGrid的多选应用