云服务器内容精选

  • MetaValidation算子概述 ModelArts的数据校验通过MetaValidation算子实现。当前ModelArts支持jpg、jpeg、bmp、png四种图片格式。物体检测场景支持xml标注格式,不支持“非矩形框”标注。针对您提供的数据集,MetaValidation算子支持对图片和xml文件进行数据校验: 表1 图片类数据校验 异常情况 处理方案 图片本身损坏无法解码 过滤掉不能解码的图片 图片通道可能是1通道、2通道,不是常用的3通道 转换图片成RGB三通道 图片格式不在ModelArts支持的格式范围内 转换图片格式至jpg格式 图片后缀与实际格式不符,但格式在ModelArts支持的格式内 后缀转换成与实际格式一致 图片后缀与实际格式不符,且格式不在ModelArts支持的格式内 转换图片格式至jpg格式 图片分辨率过大 宽、高按指定大小同比例进行裁剪 表2 标注类文件数据校验 异常情况 处理方案 xml结构残缺,无法解析 过滤xml文件 xml中没有标注“object” 过滤xml文件 xml中没有矩形框“bndbox” 过滤xml文件 某些标注“object”中没有矩形框“bndbox” 过滤标注“object” 图片经过裁剪后,xml文件中宽高不符 修改错误宽高参数为图片真实宽高 xml中没有“width”、“height”字段 根据图片真实宽高补全xml中的“width”、“height”字段和值 图片经过裁剪后,xml中矩形框“bndbox”大小不符 按图片裁剪比例缩放xml文件中“bnxbox”值 xml中矩形框“bndbox”宽或高值过小,显示为一条线 矩形框宽或高差值小于2,移除当前“object” xml中矩形框“bndbox”最小值大于最大值 移除当前“object” 矩形框“bndbox”超出图片边界,且超出部分占框面积50%以上 移除当前“object” 矩形框“bndbox”超出图片边界,但超出部分小于框面积50% 矩形框“bndbox”拉回到图片边界 数据校验过程不会改动原始数据,通过校验的图片或xml文件保存在指定的输出路径下。
  • 输入要求 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,存放结构又分两种情况,“仅包含图片”或“包含图片和标注信息”。 “仅包含图片”:当目录下全是图片时,支持jpg、jpeg、png、bmp格式,嵌套子目录的图片也将全部读入。 “包含图片和标注信息”:根据不同场景类型,结构不同。 图像分类场景,其目录结构如下所示。如下目录结构,仅支持单标签场景。 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 ...
  • 输出说明 图像分类 输出数据的目录结构如下所示。 output_path/ --Data/ ----class1/ # 如果输入数据有标注信息会一并输出,class1为标注类别 ------1.jpg ------2_checked.jpg ----class2/ ------3.jpg ------4_checked.jpg ----5_checked.jpg --output.manifest 其中manifest文件内容示例如下所示。会给每一条数据加上一个校验属性"property":{"@modelarts:data_checked":true}。 { "id": "xss", "source": "obs://hard_example_path/Data/fc8e2688015d4a1784dcbda44d840307_14_checked.jpg", "property": { "@modelarts:data_checked": true }, "usage": "train", "annotation": [ { "name": "Cat", "type": "modelarts/image_classification" } ] } 物体检测 在输出目录下,文件结构如下所示。 output_path/ --Data/ ----1_checked.jpg ----1_checked.xml # 如果输入数据在校验过程中经过了转换,文件名会加上'_checked' ----2.jpg # 如果输入数据未经过转换,则以原来的名字保存 ----2.xml --output.manifest 其中manifest文件内容示例如下所示。会给每一条数据加上一个校验属性"property":{"@modelarts:data_checked":true}。 { "source": "obs://hard_example_path/Data/be462ea9c5abc09f_checked.jpg", "property": { "@modelarts:data_checked": true }, "annotation": [ { "annotation-loc": "obs://hard_example_path/Data/be462ea9c5abc09f_checked.xml", "type": "modelarts/object_detection", "annotation-format": "PASCAL VOC", "annotated-by": "modelarts/hard_example_algo" } ] }
  • 输入要求 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,存放结构又分两种情况,“仅包含图片”或“包含图片和标注信息”。 “仅包含图片”:当目录下全是图片时,支持jpg、jpeg、png、bmp格式,嵌套子目录的图片也将全部读入。 “包含图片和标注信息”:根据不同场景类型,结构不同。 图像分类场景,其目录结构如下所示。如下目录结构,仅支持单标签场景。 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 ...
  • 输出说明 图像分类 输出数据的目录结构如下所示。 output_path/ --Data/ ----class1/ # 若输入数据有标注信息会一并输出,class1为标注类别 ------1.jpg ----class2/ ------2.jpg ----3.jpg --output.manifest 其中manifest文件内容示例如下所示。 { "id": "xss", "source": "obs://home/fc8e2688015d4a1784dcbda44d840307_14.jpg", "usage": "train", "annotation": [ { "name": "Cat", "type": "modelarts/image_classification" } ] } 物体检测 输出数据的目录结构如下所示。 output_path/ --Data/ ----1.jpg ----1.xml # 若输入数据有标注信息会一并输出,xml为标注文件 ----2.jpg ----3.jpg --output.manifest 其中manifest文件内容示例如下所示。 { "source":"obs://fake/be462ea9c5abc09f.jpg", "annotation":[ { "annotation-loc":"obs://fake/be462ea9c5abc09f.xml", "type":"modelarts/object_detection", "annotation-format":"PASCAL VOC", "annotated-by":"modelarts/hard_example_algo" } ] }
  • 参数说明 表1 数据清洗-PCC算子参数说明 参数名 是否必选 默认值 参数说明 prototype_sample_path 是 None 数据清洗正样例目录。目录应存放正样例图片文件,算法将这些图片为正样例,对输入中的数据进行过滤,即保留与“prototype_sample_path”目录下图片相似度高的数据。 请输入一个真实存在的OBS目录,且目录下已包含提供的正样例图片,且以obs://开头。如:obs://obs_bucket_name/folder_name criticism_sample_path 否 None 数据清洗负样例目录。目录应存放负样例图片文件,算法将这些图片为负样例,对算法输入中的数据进行过滤, 即保留与“criticism_sample_path”目录下图片相似度差距较大的数据。 建议该参数和“prototype_sample_path”配合使用,可以提高数据清洗的准确性。 请输入一个真实存在的OBS目录,且以obs://开头。如:obs://obs_bucket_name/folder_name n_clusters 否 auto 数据样本的种类数,默认值auto。您可以输入小于样本总数的整数或auto。auto表示使用正样本目录的图片个数作为数据样本的种类数。 simlarity_threshold 否 0.9 相似度阈值。两张图片相似程度超过阈值时,判定为相似图片,反之按非相似图片处理。输入取值范围为0~1。 embedding_distance 否 0.2 样本特征间距。两张图片样本特征间距小于设定值,判定为相似图片,反之按非相似图片处理。输入取值范围为0~1。 do_validation 否 True 是否做数据校验,可填True或者False。表示数据清洗前需要做数据校验,否则只做数据清洗。
  • 数据输入 算子输入分为两种,“数据集”或“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
  • 图像生成算子概述 图像生成算子利用Gan网络依据已知的数据集生成新的数据集。Gan是一个包含生成器和判别器的网络,生成器从潜在空间中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别器的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。训练中获得的生成器网络可用于生成与输入图片相似的图片,用作新的数据集参与训练。基于Gan网络生成新的数据集不会生成相应的标签。图像生成过程不会改动原始数据,新生成的图片或xml文件保存在指定的输出路径下。 ModelArts提供两种类型的图像生成算子: CycleGan算子:基于CycleGAN用于生成域迁移的图像,即将一类图片转换成另一类图片,把X空间中的样本转换成Y空间中的样本。CycleGAN可以利用非成对数据进行训练。模型训练时运行支持两个输入,分别代表数据的原域和目标域,在训练结束时会生成所有原域向目标域迁移的图像。 图1 CycleGan算子 表1 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。 StyleGan算子:基于StyleGan2用于在数据集较小的情形下,随机生成相似图像。StyleGAN提出了一个新的生成器结构,能够控制所生成图像的高层级属性(high-level attributes),如发型、雀斑等;并且生成的图像在一些评价标准上得分更好。而本算法又增加了数据增强算法,可以在较少样本的情况下也能生成较好的新样本,但是样本数尽量在70张以上,样本太少生成出来的新图像不会有太多的样式。 图2 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,表示数据生成前需要做数据校验,否则只做数据生成。
  • 输出说明 输出目录的结构如下所示。其中“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"}]}