详解数据增强中的平移shft操作

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

1、Shift 平移的实现方式及步骤

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、平移后会产生的问题

**如果目标进行了平移,那么目标离开了原位置,原位置就会出现一个空缺处,这个空缺处的像素是如何处理的?**当目标进行平移后,原位置和新位置可能会出现空缺或溢出区域,这些区域需要用一定的策略进行填充处理,以保证图像的尺寸一致。

2.1、常见填充方法

(1)零填充(Zero Padding)

  • 用值为0的像素填充空缺区域。
  • 优点:实现简单,计算高效。
  • 缺点:容易引入与图像内容差异较大的边缘区域,可能对模型学习带来干扰。

(2)常数填充(Constant Padding)

  • 用一个固定的常数(如图像的平均值或中值)填充。
  • 优点:相对于零填充更平滑,可以减少填充值对模型的影响。
  • 缺点:可能无法完全匹配图像内容。

(3)镜像填充(Reflection Padding)

  • 用靠近空缺区域的像素的镜像值填充。
  • 优点:较自然,与图像内容保持一致性。
  • 缺点:实现稍微复杂。

(4)边缘复制填充(Replication Padding)

  • 将图像边界的像素值重复填充到空缺区域。
  • 优点:简单且保留了一定的内容一致性。
  • 缺点:可能引入边缘效应。

(5)随机填充(Random Padding)

  • 用随机生成的像素值填充空缺区域。
  • 优点:增加数据的多样性。
  • 缺点:可能引入噪声,干扰模型学习。

2.2、具体处理方式

(1)对空缺区域的填充

  • 当目标平移后,在目标原位置的空缺区域可以采用上述填充方式填补,确保图像尺寸一致。

(2)对目标超出边界的处理

  • 如果目标的平移导致部分内容超出图像边界,通常采取以下策略:
    • 裁剪(Clipping):将目标超出边界的部分直接裁剪掉。
    • 周期填充(Cyclic Padding):将图像视为环形空间,超出部分从对侧补充。
    • 延展(Extrapolation):用边界内容延展补充超出部分。

(3)背景填充

  • 如果目标是从目标框(bounding box)裁剪出的,则其背景部分可以直接用原图的背景填充。

2.3、实现中的常见选择

在许多深度学习框架中,常用以下组合处理:

  • 输入图像的填充:对于整个图像(如搜索区域),常用镜像填充或边缘复制填充。
  • 目标框的裁剪:将目标框平移到新的位置,如果部分超出边界,裁剪掉超出部分。

3、案例分析:以目标跟踪为例

当目标在平移时超出了图像边界,会导致目标的一部分"溢出"图像范围。

3.1、假设场景

  • 原图大小: 255×255像素。
  • 目标框大小: 127×127像素,初始位于图像中心。
  • 初始目标框位置:中心点为 (128,128),左上角为 (65,65),右下角为 (192,192)。
  • 平移操作
    • 水平平移 +80像素(向右)。
    • 垂直平移 +30像素(向下)。
    • 平移后,目标框的新位置为:
      • 左上角:(65+80,65+30)=(145,95)。
      • 右下角:(192+80,192+30)=(272,222)。

在此情况下,目标框的右底部超出了图像边界。

3.2、处理方法

3.2.1、裁剪目标框(Clipping the Bounding Box)

  • 方法:直接将超出图像边界的部分裁剪掉。
  • 操作
    • 裁剪右侧,使得目标框的右下角保持在图像范围内。
    • 新目标框为:
      • 左上角:(145,95)。
      • 右下角:(255,222)(右侧被限制为图像宽度 255)。
  • 优点:简单直接。
  • 缺点:如果目标框超出部分较大,可能丢失重要信息。

3.2.2、填充图像边界(Padding the Image Border)

  • 方法:在图像边界外扩展额外的区域,用特定方式填充。
  • 操作
    • 在图像的右侧和底部各扩展 17像素(差值为 272−255=17),填充方式可选:
      • 零填充:扩展的区域填充0值。
      • 镜像填充:用图像边界的像素值镜像填充。
      • 常数填充:填充固定值,如图像平均值。
    • 新图像大小:272×272。
  • 优点:保留目标完整性。
  • 缺点:增加图像大小,可能引入非真实数据。

3.2.3、部分目标遮挡(Partial Occlusion Simulation)

  • 方法:保留目标框在图像中的部分,将超出边界部分认为是"不可见"或"遮挡"。
  • 操作
    • 保留目标框的可见区域:
      • 左上角:(145,95)。
      • 右下角:(255,222)。
    • 超出图像右侧和底部的区域不处理(保留空白或设置为背景)。
  • 优点:模拟实际场景中的遮挡情况。
  • 缺点:丢失目标信息。

3.2.4、缩小目标框(Rescaling the Bounding Box)

  • 方法:在平移时缩小目标框的尺寸以适应图像边界。
  • 操作
    • 将目标框缩小 17像素,使其完全位于图像内。
    • 新目标框为:
      • 左上角:(145,95)。
      • 右下角:(255,222)。
  • 优点:目标框始终保持在图像范围内。
  • 缺点:可能导致目标框尺寸与实际目标不匹配。
相关推荐
阿里云大数据AI技术6 分钟前
阿里云 AI 搜索方案解读:大模型驱动下的智能搜索,助力企业数字化转型
人工智能·阿里云·云计算
Anna_Tong13 分钟前
阿里云Qwen系列大模型:多领域AI应用的创新利器
人工智能·阿里云·语言模型·云计算
深图智能14 分钟前
OpenCV的TIF红外可见光融合算法
图像处理·人工智能·python·opencv·算法·计算机视觉
羑悻的小杀马特39 分钟前
【Artificial Intelligence篇】AI 入侵家庭:解锁智能生活的魔法密码,开启居家梦幻新体验
c++·人工智能·生活
JINGWHALE12 小时前
设计模式 行为型 访问者模式(Visitor Pattern)与 常见技术框架应用 解析
前端·人工智能·后端·设计模式·性能优化·系统架构·访问者模式
羊小猪~~2 小时前
错误修改系列---基于RNN模型的心脏病预测(pytorch实现)
人工智能·pytorch·rnn·深度学习·神经网络·机器学习·tensorflow
金智维科技官方2 小时前
财务自动化管理系统有哪些?
大数据·人工智能·自动化
郁大锤2 小时前
Windows 下安装 PyTorch 的常见问题及解决方法
人工智能·python
多用户商城系统2 小时前
AI在零售行业中的应用:提升顾客体验与运营效率
大数据·人工智能·线上线下新零售
沃恩智慧2 小时前
解锁图像处理新姿势!多尺度特征融合带来的视觉革新!
图像处理·人工智能·计算机视觉