asp做网站技术怎样,可以做婚礼视频的网站,wordpress可视化插件,陕西恒业建设集团网站目录
1.数据预处理
2.数据增强
2.1 数据增强的作用 2.2 数据增强方式与适用场景
2.2.1离线增强#xff08;Offline Augmentation#xff09;
2.2.2 在线增强#xff08;Online Augmentation#xff09;
3. 数据增强的具体方法
4. YOLOv8的数据增强
4.1 YOLOv8默认…目录
1.数据预处理
2.数据增强
2.1 数据增强的作用 2.2 数据增强方式与适用场景
2.2.1离线增强Offline Augmentation
2.2.2 在线增强Online Augmentation
3. 数据增强的具体方法
4. YOLOv8的数据增强
4.1 YOLOv8默认使用的增强方式策略
4.2 YOLOv8未使用的增强方式策略 4.3 YOLOv8数据增强的源码位置 1.数据预处理
当数据顺利导入数据后我们就可以依据图像的具体情况对图像进行预处理了。与机器学习中较为固定的预处理流程不同图像的预处理基本完全与数据本身有关。从数据采集的瞬间开始我们就需要考虑预处理的事项。如果我们的数据是自行从网络爬取或搜索引擎采集我们可能需要对图像进行去重、删除无效样本等操作如果数据是自行拍摄、实验提取那可能也需要根据实验要求进行一些删除、增加的处理。当我们将所有有效数据导入后至少需要确保
1全部样本的尺寸是一致的同时全部样本的通道数是一致的
2图像最终以Tensor形式被输入卷积网络
3图像被恰当地归一化
其中前两项是为了卷积神经网络能够顺利地运行起来第三项是为了让训练过程变得更加流畅快速。在PyTorch中所有的数据预处理都可以在导入数据的时候通过transform参数来完成我们通常在transform参数中填写torchvision.transforms这个模块下的类。在预处理时我们需要使用的常规类如下所示
Compose transforms专用的类似于nn.Sequential的打包功能可以将数个transforms下的类 打包形成类似于管道的结构来统一执行。
CenterCrop 中心裁剪。需要输入最终希望得到的图像尺寸。
Resize 尺寸调整。需要输入最终希望得到的图像尺寸。注意区别于使用裁剪缩小尺寸或使 用填充放大尺寸。
Normalize 归一化Tensor Only)。对每张图像的每个通道进行归一化每个通道上的每个像素 会减去该通道像素值的均值并除以该通道像素值的方差。
ToTensor (PIL Only)将任意图像转变为Tensor 无论使用怎样的卷积网络我们都倾向于将图像调整到接近28x28或224x224的尺寸。当原图尺寸与目 标尺寸较为接近时我们可以使用“裁剪”功能。裁剪是会按照我们输入的目标尺寸将大于目标尺寸的 像素点丢弃的功能因此使用裁剪必然会导致信息损失过多的信息损失会导致卷积网络的结果变差。 当需要检测或识别的对象位于图像的中心时可以使用中心裁剪。中心裁剪会以图像中心点为参照按照输入的尺寸从外向内进行裁剪被裁剪掉的像素会被直接丢弃。如果输入的尺寸大于原始图像尺寸 则在原始图像外侧填充0再进行中心裁剪。 当图像的尺寸与目标尺寸相差较大我们不能接受如此多的信息被丢弃的时候就需要使用尺寸调整的类Resize。Resize是使用像素聚类、像素插补等一定程度上对信息进行提取或选择、并按要求的尺寸重排像素点的功能。一般来说Resize过后的图片会呈现出与原图较为相似的信息但图片尺寸会得到缩放。如果原始图像尺寸很大目标尺寸很小我们一般会优先使用Resize将图像尺寸缩小到接近目标尺寸的程度再用裁剪让图片尺寸完全等于目标尺寸。例如对于600*800的图像先Resize将尺寸降到 256x256再裁剪至224x224。
2.数据增强
2.1 数据增强的作用
在目标检测模型的训练过程中进行数据增强是非常关键的一个步骤其主要作用体现在以下几个方面
增加训练数据的多样性 数据增强通过应用一系列随机变换如翻转、裁剪、旋转、缩放、颜色调整、平移等到原始训练图像上生成大量具有不同视点、尺寸、光照条件和背景的新样本。这些变换模拟了现实世界中物体可能出现的各种形态和环境变化使得模型在训练阶段就能接触到更多样化的场景从而提高了模型对不同情况的适应性。提高模型的泛化能力 增加训练数据的多样性有助于防止模型过度拟合训练集即避免模型对训练数据中的特定细节或噪声过于敏感而忽视了更普遍、更本质的特征。通过数据增强模型被迫学习更为通用的特征表示使其在面对未见过的测试数据时仍能准确地检测出目标物体进而提高整体的泛化性能。增强模型的鲁棒性 数据增强引入的噪声和变化有助于模型在训练中应对各种潜在干扰因素。例如添加轻微的模糊、亮度变化或色彩失真可以使模型在实际应用中对图像质量的变化、光照条件的波动以及相机成像偏差等具有更强的抵抗能力。这样即使在复杂或非理想的环境下模型也能稳定地进行目标检测。缓解样本不均衡问题 在许多目标检测任务中不同类别或不同大小的目标样本可能存在数量上的显著差异导致训练过程中的类别不平衡问题。数据增强可以通过复制、合成或优先增强少数类样本的方法帮助平衡各类别的数据分布确保模型对所有目标类别都能给予适当的重视提高整体检测性能特别是对稀有类别或小目标的检测准确性。优化模型对尺度变化的适应性 特别是在目标检测任务中物体的实际大小和距离摄像头的距离会导致目标在图像中呈现出不同的尺度。数据增强通过应用多尺度训练策略如随机缩放、多尺度输入、多分辨率训练等使模型能够更好地理解和处理不同尺度下的目标提升对不同大小目标的检测效果。减少对大量标注数据的依赖 在实际应用中获取大规模、高质量标注的目标检测数据集成本高昂且耗时。数据增强通过有效利用现有数据生成新的训练样本能够在一定程度上弥补数据量不足的问题使得有限的数据资源得以充分利用降低对大规模标注数据集的硬性需求。 2.2 数据增强方式与适用场景
常见的数据增强方式主要有两种在线增强Online Augmentation和离线增强Offline Augmentation。 以下是这两种方式的定义、增强方式以及适用场景的详细解释
2.2.1离线增强Offline Augmentation
定义 离线增强是指在模型训练前在计算机上一次性完成所有数据增强操作将原始数据集转化为包含多种增强版本的扩充数据集并将增强后的样本保存到磁盘或内存中然后使用这个固定的扩充数据集进行训练。
适用场景 离线增强适用于以下场景
计算资源受限离线增强只需在训练前进行一次计算后续训练可以直接使用已增强好的数据减少了实时计算需求适合计算资源有限的环境。 模型对数据分布稳定有要求对于需要保持训练数据分布稳定的模型或算法如某些基于统计特征的模型离线增强提供了固定且一致的数据分布。
训练时间紧张当训练时间有限需要快速启动训练过程时离线增强避免了每次迭代时的实时增强计算可以显著加快训练初期的速度。 数据集较小对于小型数据集离线增强可以生成大量多样化的样本有效扩充数据集规模有助于提高模型泛化能力。
2.2.2 在线增强Online Augmentation
定义 在线增强是指在模型训练过程中模型会实时进行数据增强操作。每次迭代时从原始数据集中抽取一个样本后立即对其进行一系列随机的变换处理生成新的增强样本然后使用该增强样本进行当前批次的训练。
适用场景 在线增强适用于以下场景
计算资源充足在线增强需要在训练过程中实时生成增强样本可能会增加计算负担因此更适合在计算资源充足的环境中使用。 模型对数据变化敏感对于需要精细调整超参数或对数据分布变化敏感的模型实时数据增强可以即时反馈增强效果便于调整和优化。实时性要求不高在线增强适用于训练时间相对充裕、对预处理速度要求不高的场景。
总结来说选择在线增强还是离线增强主要取决于计算资源状况、模型特性、训练时间要求以及数据集规模等因素。在线增强具有更高的灵活性和即时反馈优势而离线增强则更适合资源有限、要求数据分布稳定的场景并能节省训练初期的时间。实际应用中有时也会结合两者的特点采用混合策略进行数据增强。 3. 数据增强的具体方法
数据增强的具体方法包括但不限于
几何变换如水平/垂直翻转、随机裁剪、旋转、缩放、平移、透视变换等改变目标物体的位置、方向和大小。颜色空间变换如亮度调整、对比度变化、饱和度调整、色调偏移、添加高斯噪声、椒盐噪声等模拟光照条件、相机白平衡和图像质量的变化。混合变换如图像混合如CutMix、MixUp、样本拼接如GridMask、RandomErasing等将多个样本的部分内容组合在一起或随机擦除部分区域。特定领域的增强针对特定任务或数据类型设计的增强技术如深度估计中的视点变换、医学影像中的纹理合成等。
4. YOLOv8的数据增强 4.1 YOLOv8默认使用的增强方式策略
1.1、 hsv_h 通过色轮的一小部分调整图像的色调引入颜色可变性。帮助模型在不同的照明条件下进行概括。
默认数值为0.015范围是0.0~1.0。
1.2、hsv_s 将图像的饱和度更改一小部分从而影响颜色的强度。适用于模拟不同的环境条件。
默认数值为0.7范围是0.0~1.0。
1.3、hsv_v 将图像的值亮度修改一小部分有助于模型在各种照明条件下表现良好。
默认数值为0.4范围是0.0~1.0。
1.4、translate 将图像水平和垂直方向平移图像的一小部分有助于学习检测部分可见对象。
默认数值为0.1范围是0.0~1.0。
1.5、translate 按增益因子缩放图像模拟与摄影机相距不同距离的对象。
默认数值为0.5范围是大于等于0.0都可以。
1.6、fliplr 以指定的概率将图像从左向右翻转类似于左右镜像这对于学习对称对象和增加数据集的多样性非常有用。
默认数值为0.5范围是0.0~1.0。
1.7、mosaic 将四个训练图像组合为一个模拟不同的场景组成和对象交互。YOLO最经典的数据增强方式。对复杂场景的理解非常有效。
默认数值为1.0范围是0.0~1.0。
1.8、auto_augment 面向分类任务自动应用预定义的增强策略randaugment、autoaugment和augmix通过使视觉特征多样化来优化分类任务。
默认数值为randaugment范围是randaugment、autoaugment和augmix。
1.9、erasing 在分类训练过程中随机擦除图像的一部分鼓励模型专注于不太明显的特征进行识别。
默认数值为0.4范围是0.0~0.9。
1.10、crop_fraction 将分类图像裁剪到其大小的一小部分以强调中心特征并适应对象比例从而减少背景干扰。
默认数值为1.0范围是0.1~1.0。
4.2 YOLOv8未使用的增强方式策略
2.1、degrees 在指定的度数范围内随机旋转图像提高模型识别不同方向对象的能力。选择旋转角度后在选择的旋转角度范围内进行数据随机旋转。
范围是-180~180。
2.2、shear 以指定的角度剪切图像模仿从不同角度观看对象的效果。选择角度后在选择的角度范围内进行数据随机剪切。
范围是-180~180。
2.3、perspective 将随机透视变换应用于图像增强模型理解三维空间中对象的能力。
范围是0.0~0.001。
2.4、flipud 以指定的概率将图像倒置在不影响对象特性的情况下增加数据的可变性。
范围是0.0~1.0。
2.5、bgr 以指定的概率将图像通道从RGB翻转到BGR这有助于提高对不正确通道排序的鲁棒性。
范围是0.0~1.0。
2.6、mixup 混合两个图像及其标签创建合成图像。通过引入标签噪声和视觉可变性来增强模型的泛化能力。
范围是0.0~1.0。
2.7、copy_paste 将对象从一个图像中复制并粘贴到另一个图像上这对于增加对象实例和学习对象遮挡非常有用。
范围是0.0~1.0。 在进行训练时直接加相对应的参数即可例如添加使用flipud 增强策略 model YOLO(ryolov8m-pose.pt) # 用于迁移训练的权重文件路径results model.train(datarE:\ultralytics-main\datasets\key-points.yaml,imgsz640, epochs100, batch4, flipud 0.5, device 0) 4.3 YOLOv8数据增强的源码位置
YOLOv8进行数据增强的源码位置在ultralytics/data/augment.py中的v8_transforms函数中 因此在YOLOv8模型训练时自己数据集数量不是特别少的情况下。一般为了节省训练时间我们无需额外对数据集进行离线数据增强。YOLOv8模型会自动帮我们在训练时进行数据的在线数据增强主要包括马赛克增强Mosaic、混合增强Mixup、随机扰动random perspective 以及颜色扰动HSV augment等。以确保模型数据集的多样性与泛化能力。 以上数据增强策略均可用于目标检测分割骨干提取和分类等。有可能加了之后会导致结果指标下降需要实际实验进行选取。