zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python工具方法27 训练时在线random resize的实现(支持图像分类与语义分割)

Python方法训练工具 实现 支持 图像 分类
2023-09-14 09:15:04 时间

在训练过程中动态调整数据的尺寸可以增强模型对不同size尺寸物体的适应能力,是提升模型泛化能力的一种手段。如在paddledection套件中,就提供了参数设置多种size组合;此外,博主在拜读SegFormer模型论文时,作者也提到了使用0.5-2.0的倍率对训练数据进行缩放(作者操作还包含随机水平翻转和随机裁剪)。为此对该操作进行实现,对于图像的resize均使用PIL.Image实现与ai框架无任何关联,paddle、pytorch、tensorflwo都可以使用。对目标检测暂不支持,如果后续有需要会完善。

在使用中切记,进行random_size时,由于要将图片转换为uint8,因此传入的数据不能进行标准化(减均值除方差),只传入允许归一化的数据。否则会导致性能极差,模型无法收敛(标准化的数据存在负数,转uint8后存在信息丢失)

1、具体实现

1.1 resize函数的实现

在进行图像resize时,需要注意的是label的格式是WH,为二维数据,而image的格式为CWH或WHC为三维数据,此外image还分为单通道和三通道,三通道通常为rgb数据,而单通道通常为灰度图数据。针对于不同的数据需要选用不同的函数进行resize操作,具体共有以下三个函数。

from PIL import