云服务器内容精选

  • 数据校验算子说明(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文件保存在指定的输出路径下。 参数说明 表3 数据校验-MetaValidation算子参数说明 参数名 是否必选 默认值 参数说明 image_max_width 否 -1 输入图片宽度最大值,如果输入图片宽度超过设定值则按比例裁剪。单位为px。 默认值 -1 表示不做裁剪。 image_max_height 否 -1 输入图片长度最大值,如果输入图片长度超过设定值则按比例裁剪。单位为px。 默认值 -1 表示不做裁剪。 输入要求 算子输入分为两种,“数据集”或“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" } ] } 数据输出的data文件夹中存放的是修改、更新过的图片,对于数据处理过程中没有修改过的图片,在data文件夹中不会展示,图片的位置信息显示该图片在输入目录中。 output.manifest存放的是数据处理之后的图片信息(主要是指图片的位置和标注信息等),可以直接使用这个output.manifest文件创建数据集,或者把output.manifest文件导入到已经存在的数据集中。 物体检测 在输出目录下,文件结构如下所示。 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" } ] }
  • 数据清洗算子(PCC算子) ModelArts的数据清洗通过PCC算子实现。图像分类或者物体检测的数据集中可能存在非所需类别的图像,需要将这些图像去除掉,以免对标注、模型训练造成干扰。 图5 PCC算子效果 参数说明 表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目录”,存放结构又分两种情况,“仅包含图片”或“包含图片和标注信息”。 “仅包含图片”:当目录下全是图片时,支持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" } ] }
  • 数据处理场景介绍 ModelArts平台提供的数据处理功能,基本目的是从大量的、杂乱无章的、难以理解的数据中抽取或者生成对某些特定的人们来说是有价值、有意义的数据。当数据采集和接入之后,数据一般是不能直接满足训练要求的。为了保障数据质量,以免对后续操作(如数据标注、模型训练等)带来负面影响,开发过程通常需要进行数据处理。 常见的数据处理类型有以下四种: 数据校验:通常数据采集后需要进行校验,保证数据合法。 数据校验是指对数据可用性的基本判断和验证的过程。通常,用户采集的数据或多或少都会有很多格式问题,无法被进一步处理。以图像识别为例,用户经常会从网上找一些图片用于训练,但是其质量难以保证,有可能图片的名字、路径、后缀名都不满足训练算法的要求;图片也可能有部分损坏,造成无法解码、无法被算法处理的情况。因此,数据校验非常重要,可以帮助人工智能开发者提前发现数据问题,有效防止数据噪声造成的算法精度下降或者训练失败问题。 数据清洗:数据清洗是指对数据进行去噪、纠错或补全的过程。 数据清洗是在数据校验的基础上,对数据进行一致性检查,处理一些无效值。例如在深度学习领域,可以根据用户输入的正样本和负样本,对数据进行清洗,保留用户想要的类别,去除用户不想要的类别。 数据选择:数据选择一般是指从全量数据中选择数据子集的过程。 数据可以通过相似度或者深度学习算法进行选择。数据选择可以避免人工采集图片过程中引入的重复图片、相似图片等问题;在一批输入旧模型的推理数据中,通过内置规则的数据选择可以进一步提升旧模型精度。 数据增强: 数据扩增通过简单的数据扩增例如缩放、裁剪、变换、合成等操作直接或间接的方式增加数据量。 数据生成应用相关深度学习模型,通过对原数据集进行学习,训练生成新的数据集的方式增加数据量。 数据域迁移应用相关深度学习模型,通过对原域和目标域数据集进行学习,训练生成原域向目标域迁移的数据。 父主题: 处理ModelArts数据集中的数据