云服务器内容精选

  • 数据生成算子(StyleGan算子) 图像生成利用Gan网络依据已知的数据集生成新的数据集。Gan是一个包含生成器和判别器的网络,生成器从潜在空间中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别器的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。训练中获得的生成器网络可用于生成与输入图片相似的图片,用作新的数据集参与训练。基于Gan网络生成新的数据集不会生成相应的标签。图像生成过程不会改动原始数据,新生成的图片或xml文件保存在指定的输出路径下。 基于StyleGan2用于在数据集较小的情形下,随机生成相似图像。StyleGAN提出了一个新的生成器结构,能够控制所生成图像的高层级属性(high-level attributes),如发型、雀斑等;并且生成的图像在一些评价标准上得分更好。而本算法又增加了数据增强算法,可以在较少样本的情况下也能生成较好的新样本,但是样本数尽量在70张以上,样本太少生成出来的新图像不会有太多的样式。 图4 StyleGan算子 表2 StyleGan算子高级参数 参数名 默认值 参数说明 resolution 256 生成正方形图像的高宽,大小需要是2的次方。 batch-size 8 批量训练样本个数。 total-kimg 300 总共训练的图像数量为total_kimg*1000。 generate_num 300 生成的图像数量,如果是多个类的,则为每类生成的数量。 predict False 是否进行推理预测,默认为False。如果设置True,需要在resume参数设置已经训练完成的模型的obs路径。 resume empty 如果predict设置为True,需要填写Tensorflow模型文件的obs路径用于推理预测。当前仅支持“.pb”格式的模型。示例:obs://xxx/xxxx.pb。 默认值为empty。 do_validation True 是否做数据校验,默认为True,表示数据生成前需要进行数据校验,否则只进行数据生成。 输入要求 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,图像生成算子不需要标注信息,输入支持单层级或双层级目录,存放结构支持“单层级”或“双层级”模式。 单层级目录结构如下所示: image_folder----0001.jpg ----0002.jpg ----0003.jpg ... ----1000.jpg 双层级目录结构如下所示: image_folder----sub_folder_1----0001.jpg ----0002.jpg ----0003.jpg ... ----0500.jpg ----sub_folder_2----0001.jpg ----0002.jpg ----0003.jpg ... ----0500.jpg ... ----sub_folder_100----0001.jpg ----0002.jpg ----0003.jpg ... ----0500.jpg 输出说明 输出目录的结构如下所示。其中“model”文件夹存放用于推理的“frozen pb”模型,“samples”文件夹存放训练过程中输出图像,“Data”文件夹存放训练模型生成的图像。 train_url----model----CYcleGan_epoch_10.pb ----CYcleGan_epoch_20.pb ... ----CYcleGan_epoch_1000.pb ----samples----0000_0.jpg ----0000_1.jpg ... ----0100_15.jpg ----Data----CYcleGan_0_0.jpg ----CYcleGan_0_1.jpg ... ----CYcleGan_16_8.jpg ----output_0.manifest 其中manifest文件内容示例如下所示。 {"id": "xss","source": "obs://home/fc8e2688015d4a1784dcbda44d840307_14.jpg","usage": "train", "annotation": [{"name": "Cat", "type": "modelarts/image_classification"}]}
  • 数据扩增算子说明 数据扩增主要用于训练数据集不足或需要仿真的场景,能通过对已标注的数据集做变换操作来增加训练图片的数量,同时会生成相应的标签。在深度学习领域,增强有重要的意义,能提升模型的泛化能力,增加抗扰动的能力。数据扩增过程不会改动原始数据,扩增后的图片或xml文件保存在指定的输出路径下。 ModelArts提供以下数据扩增算子: 表1 数据扩增算子介绍 算子 算子说明 高级 AddNoise 添加噪声,模拟常见采集设备在采集图片过程中可能会产生的噪声。 noise_type:添加噪声的分布类型,Gauss为高斯噪声,Laplace为拉普拉斯噪声,Poisson是泊松噪声,Impulse是脉冲噪声,SaltAndPepper为椒盐噪声。默认值为Gauss loc:噪声分布的均值,仅在Gauss和Laplace生效。默认值为0 scale:噪声分布的标准差,仅在Gauss和Laplance生效。默认值为1 lam:泊松分布的lambda系数,仅在Poisson有效。默认值为2 p:对于每个像素点,出现脉冲噪声或椒盐噪声的概率,仅在Impulse和SaltAndPepper有效。默认值为0.01 do_validation:数据扩增前是否进行数据校验。默认值为True。 Blur 模糊,使用滤波器对图像进行滤波操作,有时用于模拟成像设备的成像。 blur_type:可选Gauss和Average两种模式,分别为高斯和均值滤波。默认值为Gauss do_validation:数据扩增前是否进行数据校验。默认值为True。 Crop 图片裁剪,随机裁剪图片的一部分作为新的图片。 crop_percent_min:各边裁剪占比的随机取值范围的最小值。默认值为0.0 crop_percent_max:各边裁剪占比的随机取值范围的最大值。默认值为0.2 do_validation:数据扩增前是否进行数据校验。默认值为True。 CutOut 随机擦除,在深度学习中常用的方法,用于模拟物体被障碍物遮挡。 do_validation:数据扩增前是否进行数据校验。默认值为True。 Flip 翻转,沿图片水平轴或竖直轴做翻转,是非常常见的增强方法。 lr_ud:选择翻转的方向,lr为水平翻转,ud为竖直翻转。默认值为lr flip_p:做翻转操作的概率。默认值为1。 do_validation:数据扩增前是否进行数据校验。默认值为True。 Grayscale 图片灰度化,将三通道的彩色图像转换到三通道的灰度图像。 do_validation:数据扩增前是否进行数据校验。默认值为True。 HistogramEqual 直方图均衡化,多半是使用于让图片的视觉效果更加好,在某些场景下会使用。 do_validation:数据扩增前是否进行数据校验。默认值为True。 LightArithmetic 亮度增强 ,对亮度空间做线性增强操作。 do_validation:数据扩增前是否进行数据校验。默认值为True。 LightContrast 亮度对比度增强,使用一定的非线性函数改变亮度空间的亮度值。 func:默认值为gamma gamma为常见方法伽马矫正,公式为255*((v/255)**gamma)') sigmoid为函数为S型曲线,公式为255*1/(1+exp(gain*(cutoff-I_ij/255)))') log为对数函数,公式为255*gain*log_2(1+v/255) linear为线性函数,公式为127 + alpha*(v-127)') do_validation:数据扩增前是否进行数据校验。默认值为True。 MotionBlur 运动模糊,模拟物体运动时产生的残影现象。 do_validation:数据扩增前是否进行数据校验。默认值为True。 Padding 图片填充,在边缘添加黑色的边。 px_top:图像顶端增加的像素行数。默认值为1 px_right:图像右侧增加的像素行数。默认值为1 px_left:图像左侧增加的像素行数。默认值为1 px_bottom:图像底侧增加的像素行数。默认值为1 do_validation:数据扩增前是否进行数据校验。默认值为True。 Resize 调整图片大小。 height:变换后的图片高度。默认值224 width:变换后的图片宽度。默认值224 do_validation:数据扩增前是否进行数据校验。默认值为True。 Rotate 旋转,将图像围绕中心点旋转的操作,操作完成之后保持图片原本的形状不变,不足的部分用黑色填充。 angle_min:旋转角度随机取值范围的最小值,每张图片会从范围中随机取值作为自己的参数。默认值为90° angle_max:旋转角度随机取值范围的最大值,每张图片会从范围中随机取值作为自己的参数。默认值为-90° do_validation:数据扩增前是否进行数据校验。默认值为True。 Saturation 色度饱和度增强,对图片的HSV中的H和S空间做线性的变化,改变图片的色度和饱和度。 do_validation:数据扩增前是否进行数据校验。默认值为True。 Scale 图片缩放,将图片的长或宽随机缩放到一定倍数。 scaleXY:缩放方向,X为水平,Y为垂直。默认值为X scale_min:缩放比例随机取值范围的最小值。默认为0.5 scale_max:缩放比例随机取值范围的最大值。默认值为1.5 do_validation:数据扩增前是否进行数据校验。默认值为True。 Sharpen 图像锐化,用于将边缘清晰化,让物体边缘更加明显。 do_validation:数据扩增前是否进行数据校验。默认值为True。 Shear 图片错切,一般用于图片的几何变换,通过线性函数将像素点进行映射。 shearXY:错切方向,X为水平,Y为竖直。默认值为X shear_min:错切角度随机取值范围的最小值。默认值为-30 shear_max:错切角度随机取值范围的最大值。默认值为30 do_validation:数据扩增前是否进行数据校验。默认值为True。 Translate 图片平移,将图片整体向X轴或Y轴平移,超出原图部分舍弃,丢失部分用黑色填充。 translateXY:平移的方向,X为水平,Y为竖直。默认值为X do_validation:数据扩增前是否进行数据校验。默认值为True。 Weather 添加天气,模拟天气效果。 weather_mode:添加天气的模式,默认值为Rain。 Rain:下雨 Fog:雾 Snow:雪 Clouds:云 do_validation:数据扩增前是否进行数据校验。默认值为True。 输入要求 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,存放结构支持“包含图片和标注信息”模式。 “包含图片和标注信息”,根据不同场景类型,结构不同。 图像分类场景,其目录结构如下所示。如下目录结构,仅支持单标签场景。 input_path/ --label1/ ----1.jpg --label2/ ----2.jpg --../ 物体检测场景,其目录结构如下所示。支持jpg、jpeg、png、bmp格式的图片,xml为标准的PACAL VOC格式标注文件。 input_path/ --1.jpg --1.xml --2.jpg --2.xml ... 输出说明 由于算法中有些操作将会舍弃一些数据,输出文件夹里可能不包含全量数据集。例如,“Rotate”会舍弃标注框超出原始图片边界的图片。 输出目录结构如下所示。其中“Data”文件夹用于存放新生成的图片和标注信息,“manifest”文件存储文件夹中图片的结构,可直接导入到数据集中。 |----data_url |----Data |----xxx.jpg |----xxx.xml(xxx.txt) |----output.manifest 其中manifest文件内容示例如下所示。 {"id": "xss","source": "obs://home/fc8e2688015d4a1784dcbda44d840307_14.jpg","usage": "train", "annotation": [{"name": "Cat", "type": "modelarts/image_classification"}]}
  • 数据域迁移算子(CycleGan算子) 基于CycleGAN用于生成域迁移的图像,即将一类图片转换成另一类图片,把X空间中的样本转换成Y空间中的样本。CycleGAN可以利用非成对数据进行训练。模型训练时运行支持两个输入,分别代表数据的原域和目标域,在训练结束时会生成所有原域向目标域迁移的图像。 图5 CycleGan算子 表3 CycleGan算子高级参数 参数名 默认值 参数说明 do_validation True 是否进行数据校验,默认为True,表示数据生成前需要进行数据校验,否则只进行数据生成。 image_channel 3 生成图像的通道数。 image_height 256 图像相关参数:生成图像的高,大小需要是2的次方。 image_width 256 图像相关参数:生成图像的宽,大小需要是2的次方 batch_size 1 训练相关参数:批量训练样本个数。 max_epoch 100 训练相关参数:训练遍历数据集次数。 g_learning_rate 0.0001 训练相关参数:生成器训练学习率。 d_learning_rate 0.0001 训练相关参数:判别器训练学习率。 log_frequency 5 训练相关参数:日志打印频率(按step计数)。 save_frequency 5 训练相关参数:模型保存频率(按epoch计数)。 predict False 是否进行推理预测,默认为False。如果设置True,需要在resume参数设置已经训练完成的模型的obs路径。 resume empty 如果predict设置为True,需要填写Tensorflow模型文件的obs路径用于推理预测。当前仅支持“.pb”格式的模型。示例:obs://xxx/xxxx.pb。 默认值为empty。 输入说明 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,图像生成算子不需要标注信息,输入支持单层级或双层级目录,存放结构支持“单层级”或“双层级”模式。 单层级目录结构如下所示: image_folder----0001.jpg ----0002.jpg ----0003.jpg ... ----1000.jpg 双层级目录结构如下所示: image_folder----sub_folder_1----0001.jpg ----0002.jpg ----0003.jpg ... ----0500.jpg ----sub_folder_2----0001.jpg ----0002.jpg ----0003.jpg ... ----0500.jpg ... ----sub_folder_100----0001.jpg ----0002.jpg ----0003.jpg ... ----0500.jpg 输出说明 输出目录的结构如下所示。其中“model”文件夹存放用于推理的“frozen pb”模型,“samples”文件夹存放训练过程中输出图像,“Data”文件夹存放训练模型生成的图像。 train_url----model----CYcleGan_epoch_10.pb ----CYcleGan_epoch_20.pb ... ----CYcleGan_epoch_1000.pb ----samples----0000_0.jpg ----0000_1.jpg ... ----0100_15.jpg ----Data----CYcleGan_0_0.jpg ----CYcleGan_0_1.jpg ... ----CYcleGan_16_8.jpg ----output_0.manifest 其中manifest文件内容示例如下所示。 {"id": "xss","source": "obs://home/fc8e2688015d4a1784dcbda44d840307_14.jpg","usage": "train", "annotation": [{"name": "Cat", "type": "modelarts/image_classification"}]}