数据处理
4.1 版本新增: 数据处理功能。
数据处理功能提供清洗和准备数据。用户可以使用算法卷或 Git 仓库和自定义运行指令,运行数据处理。也可选择预置算法,运行数据处理,包括删除重复的数据、拆分数据、增广数据等。
创建数据处理
操作步骤
左侧功能栏选择“数据管理->数据处理”;
单击右上角“创建数据处理”;
按照页面提示配置参数,分为两种创建方式:
通过自定义算法和运行指令创建
参数
必填项
说明
数据处理名称
是
他人访问权限
是
具体参见 他人访问权限
算法
是
选择 “算法卷” 或 “Git 仓库”,参考 准备数据和脚本
输入
是
可选“标注数据集”、“我的数据集”或“数据集收藏”,可添加多个
输出
是
可选“标注数据集”或“我的数据集”,可添加多个
运行命令
是
生成数据处理的命令与参数,参考 准备数据和脚本
单节点规格
是
数据处理的算力规格
节点名称
否
指定数据处理可运行的节点,不可与“驱动版本”同时指定
驱动版本
否
选择 MLU 或 GPU 规格时可用
镜像
是
镜像适用范围需包含“数据处理”
镜像适用板卡类型需和单节点规格一致
节点数
是
目前暂不支持修改,只支持 1 个
通过预置算法创建,支持的预置算法参见:支持预置算法说明 章节
参数
必填项
说明
数据处理名称
是
他人访问权限
是
具体参见 他人访问权限
算法
是
选择 “预置算法”。如果预置算法有参数,按参数描述填写参数值
任务类型
是
可选“图像”或“文本”
处理算法
是
“图像”可选“清洗”或“增强”下的算法,“文本”只可选“清洗”算法
输入
是
可选“标注数据集”、“我的数据集”或“数据集收藏”,可添加多个
输出
是
可选“标注数据集”或“我的数据集”,参考 预置算法输出目录结构
单节点规格
是
数据处理的算力规格。仅 GPU、MLU 型预置算法需要选择
节点名称
否
指定数据处理可运行的节点,不可与“驱动版本”同时指定
驱动版本
否
选择 MLU 或 GPU 规格时可用
节点数
是
目前暂不支持修改,只支持 1 个。仅 GPU、MLU 型预置算法需要
单击“创建”。
准备数据和脚本
通过用户算法和自定义运行指令创建数据处理,前期准备操作如下:
准备需要处理的数据集;
开发处理数据集的脚本:
例如使用 PIL 对图片增强对比度:
from PIL import Image, ImageEnhance def enhance_contrast(image_path, output_path, contrast_factor): image = Image.open(image_path) enhancer = ImageEnhance.Contrast(image) enhanced_image = enhancer.enhance(contrast_factor) enhanced_image.save(output_path)
输入输出路径请参考 数据处理目录结构
在算法卷中上传脚本,操作参见 算法卷 ;
上传脚本运行时镜像到镜像仓库,并在镜像“适用范围”中添加
数据处理
,操作参见 镜像管理 。
数据处理目录结构
运行数据处理生成脚本时容器内的目录结构为:
/
└── workspace
├── algorithm(创建时选择的算法卷)
├── anno_dataset
│ ├── 标注数据集名字 A
│ | └── annotation(选择某个版本的标注数据时,该版本的标注文件)
| └── 标注数据集名字 B
└── dataset
├── private
│ ├── 我的数据集名字 C
│ └── 我的数据集名字 D
└── favorite
├── 收藏数据集名字 E
│ └── 收藏数据集版本名字 V1
└── 收藏数据集名字 F
└── 收藏数据集版本名字 V2
预置算法输出目录结构
如果使用预置算法创建数据处理,处理结果会被保存在输出数据集根目录下每个输入数据集对应的子目录中。
例如:输入标注数据集名字 A、标注数据集名字 B、我的数据集名字 C、我的数据集名字 D、收藏数据集名字 E 版本名 V1、收藏数据集名字 F 版本名 V2。输出目录结构为:
└── 输出数据集
├── anno-dataset-A
├── anno-dataset-B
├── dataset-private-C
├── dataset-private-D
├── favorite-E-V1
└── favorite-F-V2
支持预置算法说明
目前支持针对图像任务(清洗算法和增强算法)和文本任务(清洗算法)的预置算法。
清洗算法只可单选,增强算法可多选,并且可以拖拽排序执行顺序。
图像清洗算法
详细信息为:
算法名称 |
说明 |
---|---|
图片去近似(GPU) |
设置相似程度阈值,过滤掉相似度高于此值的图片对中的任意一张,推荐使用 GPU 规格 |
图片去近似(MLU) |
设置相似程度阈值,过滤掉相似度高于此值的图片对中的任意一张,推荐使用 MLU 规格 |
过滤无人体(GPU) |
过滤不包含人体的图片,推荐使用 GPU 规格 |
过滤无人体(MLU) |
过滤不包含人体的图片,推荐使用 MLU 规格 |
过滤无人脸(GPU) |
过滤不包含人脸的图片,推荐使用 GPU 规格 |
过滤无人脸(MLU) |
过滤不包含人脸的图片,推荐使用 MLU 规格 |
图像增强算法
目前支持多种图像增强算法。增强前的原始图像如下:
仿射
对图像进行仿射变换。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
scale |
要使用的缩放因子,其中 1.0 表示“无变化”, 0.5 表示缩小到原始大小的 50% 。 |
float |
[0, 1] |
translate_percent |
平移为图像高度/宽度的一部分(x 平移、y 平移), 其中 0 表示“无变化”,0.5 表示“轴尺寸的一半”。 |
float |
[-1, 1] |
rotate |
以度为单位的旋转(不是弧度)。旋转发生在图像中心, 将从区间 [a, b] 中均匀采样一个值,并将其用作旋转值。 |
(int, int) |
[-360,360] |
shear |
以度为单位的错切(不是弧度),推荐值范围为 [-45, 45]。 从区间 [a, b] 中均匀采样两个值,并用作 x 和 y 剪切值。 |
(int, int) |
[-360, 360] |
p |
应用变换的概率。 |
float |
[0, 1] |
正框随机裁切
随机裁剪,裁剪区域包含所有正框,即在所有正框的外接矩形到图像边缘范围内裁剪。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
erosion_rate |
腐蚀比率,表示裁切之前图像边缘内缩的比率。 |
float |
[0, 1] |
p |
应用变换的概率。 |
float |
[0, 1] |
模糊
对图像进行模糊操作。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
blur_limit |
模糊图像的最大核大小。 |
int |
[3, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
亮度
改变图像的亮度。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
brightness |
亮度抖动多少,将从该范围采样。 |
(float, float) |
[0, 2] |
p |
应用变换的概率。 |
float |
[0, 1] |
中心裁切
裁剪图像中心区域。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
height |
裁剪后的图像高度。 |
int |
[1, inf] |
width |
裁剪后的图像宽度。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
随机粗挖除
随机丢弃图像中的矩形区域,用固定值填充。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
max_holes |
需裁剪的最大区域个数。 |
int |
[1, inf] |
min_holes |
需裁剪的最小区域个数。 |
int |
[1, inf] |
min_height |
洞的最小高度。 |
int |
[1, inf] |
min_width |
洞的最小宽度。 |
int |
[1, inf] |
max_height |
洞的最大高度。 |
int |
[1, inf] |
max_width |
洞的最大宽度。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
对比度
改变图像的对比度。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
contrast |
对比度抖动多少,将从该范围采样。 |
(float, float) |
[0, 2] |
p |
应用变换的概率。 |
float |
[0, 1] |
裁切
裁剪图像,返回裁剪部分。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
x_min |
裁剪区域的左上角x坐标。 |
int |
[0, inf] |
y_min |
裁剪区域的左上角y坐标。 |
int |
[0, inf] |
x_max |
裁剪区域的右下角x坐标。 |
int |
[0, inf] |
y_max |
裁剪区域的右下角y坐标。 |
int |
[0, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
裁切并填充
按像素数或者图像占比裁剪或填充图像上下左右四个边缘。此变换永远不会裁剪高度或宽度低于 1 的图像。注意此变换会 resize 变换后的图像到原始图像大小。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
percent |
图像每侧裁剪(负值)或填充(正值)像素比例, 以分数形式给出。 如果设为 -0.1, 则变换将在四周裁剪图像高度的各 10%。 |
float |
[-1, 1] |
keep_size |
裁剪或填充后的图像尺寸会改变。 若为真,表示将其改为输入图像尺寸。 否则保留变化后的尺寸。 |
bool |
/ |
sample_independently |
表示四个边操作的值是否独立采样。 |
bool |
/ |
p |
应用变换的概率。 |
float |
[0, 1] |
灵活变换
对图像应用弹性的变换。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
alpha |
扭曲变换参数。值越大扭曲效果越明显。 |
float |
[0, inf] |
sigma |
高斯滤波参数。值越小扭曲效果越明显。 |
float |
[0, inf] |
alpha_affine |
仿射变换参数。 |
float |
[0, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
图片镜像
水平、垂直或水平和垂直翻转输入。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
p |
应用变换的概率。 |
float |
[0, 1] |
网格变形
将网格失真增强应用于图像、蒙版和边界框。该技术涉及将图像划分为单元网格并随机移动网格的交叉点,从而导致局部变形。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
num_steps |
图像分块数(横纵相等)。 |
int |
[1, inf] |
distort_limit |
畸变限制范围。 |
float |
[0, 1] |
normalized |
若设为真,图像内容与原图一致, 不会丢失或扩充图像边界。 |
bool |
|
p |
应用变换的概率。 |
float |
[0, 1] |
网格挖除
以网格方式丢弃图像的矩形区域和相应的掩模。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
ratio |
掩模孔与 unit_size 的比率(水平和垂直方向相同)。 |
float |
[0, 1] |
unit_size_min |
网格单元的最小尺寸。 |
int |
[2, 图像短边] |
unit_size_max |
网格单元的最大尺寸。 |
int |
[2, 图像短边] |
shift_x |
控制 grids 的起点x方向偏移。 |
int |
[0, inf] |
shift_y |
控制 grids 的起点y方向偏移。 |
int |
[0, inf] |
fill_value |
被丢弃的像素的值。 |
int |
[0, 255] |
p |
应用变换的概率。 |
float |
[0, 1] |
水平镜像
输入绕 y 轴水平翻转。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
p |
应用变换的概率。 |
float |
[0, 1] |
限制最长边的图像缩放
保持缩放比例缩放图像,将长边调整为指定尺寸。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
max_size |
变换后图像最长边的尺寸。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
蒙版挖除
随机将图像和蒙版中的目标实例归零。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
max_objects |
可以清零的最大标签数。 |
int |
[0, inf] |
image_fill_value |
图像中归零区域填充值。 |
int |
[0, 255] |
mask_fill_value |
蒙版的归零区域填充值。 |
int |
[0, 255] |
p |
应用变换的概率。 |
float |
[0, 1] |
光学变形
图像进行桶型或枕型畸变。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
distort_limit |
畸变限制,大于零时是桶形畸变, 小于零时是枕形畸变。 |
float |
[0, 1] |
shift_limit |
偏移限制。 |
float |
[0, 1] |
p |
应用变换的概率。 |
float |
[0, 1] |
按需填充
填充图像边缘到指定尺寸。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
min_height |
填充后图像的最小高度。 |
int |
[1, inf] |
min_width |
填充后图像的最小宽度。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
透视变换
对输入执行随机四点透视变换。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
scale |
正态分布的标准差。用于控制新的子图像 corners 与完整图像 corners 的距离。 |
float |
[0, 1] |
keep_size |
应用透视变换后是否将图像调整回原始大小。 |
bool |
/ |
fit_output |
如为真,变换后图像平面大小和位置被调整为能捕获整个图像 (如 keep_size 设置为真,则随后调整图像大小)。 |
bool |
/ |
p |
应用变换的概率。 |
float |
[0, 1] |
分段仿射
应用局部邻域之间不同的仿射变换。这种增强在图像上放置规则的点网格,并通过仿射变换随机移动这些点的邻域,会导致局部扭曲。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
scale |
形变因子,值越大,代表偏离常规网格点的距离越大。 |
float |
[0, 1] |
nb_rows |
常规网格的行数,至少为2,大图像建议4以上。 |
int |
[2, inf] |
nb_cols |
常规网格的列数,至少为2,大图像建议4以上。 |
int |
[2, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
像素挖除
随机丢弃像素,即设置某些像素值为0。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
dropout_prob |
丢弃像素的概率。 |
float |
[0, 1] |
per_channel |
通道维是否独立操作,若为真, 表示每个通道单独生成 drop mask。 |
bool |
/ |
drop_value |
丢弃位置重置的像素值。 |
int |
[0, 255] |
p |
应用变换的概率。 |
float |
[0, 1] |
随机裁切
随机裁剪图像。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
height |
裁切后图像的高度。 |
int |
[1, inf] |
width |
裁切后图像的宽度。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
随机边缘裁切
图像四周边缘裁剪掉部分,结果不 resize,所以会改变原始图像尺寸。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
crop_left |
图像左侧裁剪比例。 |
float |
[0, 1] |
crop_right |
图像右侧裁剪比例。 |
float |
[0, 1] |
crop_top |
图像顶侧裁剪比例。 |
float |
[0, 1] |
crop_bottom |
图像底侧裁剪比例。 |
float |
[0, 1] |
p |
应用变换的概率。 |
float |
[0, 1] |
随机网格洗牌
将图像分块,并随机打乱。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
rows |
网格行数。 |
int |
[1, inf] |
columns |
网格列数。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
随机缩放裁切
裁剪图像某个区域,并缩放至指定尺寸。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
scale |
相对原始图像的裁剪范围。 |
float |
[0, 1] |
height |
缩放的目标高度。 |
int |
[1, inf] |
width |
缩放的目标宽度。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
随机 90 度旋转
0 次或多次旋转图片 90 度,即对原图进行0°,90°,180°,270° 随机旋转。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
p |
应用变换的概率。 |
float |
[0, 1] |
随机放大或缩小
随机调整输入的大小。输出图像尺寸与输入图像尺寸不同。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
scale_limit |
缩放因子范围。 |
float |
[0, 1] |
p |
应用变换的概率。 |
float |
[0, 1] |
随机正框安全裁切
裁剪输入的随机部分并将其重新缩放到一定大小,而不会丢失正框。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
erosion_rate |
腐蚀比率,该值表示裁剪之前图像边缘内缩的比率。 |
float |
[0, 1] |
height |
裁剪并调整大小后的高度。 |
int |
[1, inf] |
width |
裁剪并调整大小后的宽度。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
随机裁切缩放
裁剪输入的随机部分并将其重新缩放到特定大小。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
max_crop_height |
随机裁剪的最大高度。 |
int |
[1, inf] |
min_crop_height |
随机裁剪的最小高度。 |
int |
[1, inf] |
w2h_ratio |
裁剪的宽高比。 |
float |
[0, inf] |
height |
缩放的目标高度。 |
int |
[1, inf] |
width |
缩放的目标宽度。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
更改图像大小
将输入的大小调整为给定的高度和宽度。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
height |
调整大小后的高度。 |
int |
[1, inf] |
width |
调整大小后的宽度。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
更改 RGB 的值
RGB 每个通道上的值进行偏移。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
r_shift_limit |
红色通道值偏移的范围。 |
int |
[0, inf] |
g_shift_limit |
绿色通道值偏移的范围。 |
int |
[0, inf] |
b_shift_limit |
蓝色通道值偏移的范围。 |
int |
[0, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
旋转
将图像旋转一定角度。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
90_ratio |
图片旋转 90 度的概率 (与其他两个角度的概率一起加权,归一化到 1)。 |
float |
[0, 1] |
180_ratio |
图片旋转 180 度的概率 (与其他两个角度的概率一起加权,归一化到 1)。 |
float |
[0, 1] |
270_ratio |
图片旋转 270 度的概率 (与其他两个角度的概率一起加权,归一化到 1)。 |
float |
[0, 1] |
p |
应用变换的概率。 |
float |
[0, 1] |
安全旋转
将图像旋转一定角度。旋转后,图像可能具有不同的长宽比,调整大小后,它会以图像的原始长宽比恢复到原始形状。由于这些原因,我们可能会看到一些伪影。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
90_ratio |
图片旋转 90 度的概率 (与其他两个角度的概率一起加权,归一化到 1)。 |
float |
[0, 1] |
180_ratio |
图片旋转 180 度的概率 (与其他两个角度的概率一起加权,归一化到 1)。 |
float |
[0, 1] |
270_ratio |
图片旋转 270 度的概率 (与其他两个角度的概率一起加权,归一化到 1)。 |
float |
[0, 1] |
p |
应用变换的概率。 |
float |
[0, 1] |
锐度
锐化输入图像并将结果与原始图像叠加。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
alpha |
控制锐化图像的程度。 0 表示只保留原图,1 表示只保留锐化图。 |
float |
[0, 1] |
p |
应用变换的概率。 |
float |
[0, 1] |
随机平移、缩放和旋转
随机应用仿射变换:平移、缩放和旋转输入。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
shift_limit |
高度和宽度的移位因子范围。 |
float |
[-1, 1] |
scale_limit |
缩放因子范围。 |
float |
[-1, 1] |
rotate_limit |
旋转角度范围。 |
float |
[-1, 1] |
p |
应用变换的概率。 |
float |
[0, 1] |
限制最短边的图像缩放
重新缩放图像,使最小边等于 size,同时保持初始图像的宽高比。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
size |
变换后图像最小边的最大尺寸。 |
int |
[1, inf] |
p |
应用变换的概率。 |
float |
[0, 1] |
转置
通过交换行和列来转置输入。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
p |
应用变换的概率。 |
float |
[0, 1] |
垂直镜像
绕 x 轴垂直翻转输入。
超参数 |
描述 |
数据类型 |
数据范围 |
---|---|---|---|
p |
应用变换的概率。 |
float |
[0, 1] |
文本清洗算法
To_utf8
将非 utf-8 编码的文本转为 utf-8。
To_simple
将文本中的繁体字转为简体字。
Remove_emoji
去除文本中的表情符号。
Remove_url
去除文本中的 URL 链接。
Remove_phone
去除文本中的电话号码。
Remove_email
去除文本中的电子邮箱地址。
Contain_zh_en
仅保留文本中的中文和英文,去除其他语言。
查看数据处理详情
克隆数据处理
左侧功能栏选择“数据管理->数据处理”;
查找需要克隆的数据处理,单击该数据处理的“操作”按钮;
在下拉列表中,单击“克隆”;
调整配置;
单击“创建”。
搜索数据处理
左侧功能栏选择“数据管理->数据处理”;
单击左上角搜索框;
在下拉列表中,可基于“名称”、“状态”、“创建人”、“我的算法卷”、“算法收藏”、“数据集收藏”、“我的数据集”和“算力规格”搜索数据处理。
删除数据处理
左侧功能栏选择“数据管理->数据处理”;
单个删除:查找需要删除的数据处理,单击该数据处理的“操作”按钮,在下拉列表中,单击“删除”;
批量删除:单击表格右上角“编辑”按钮,勾选多个需要删除的数据处理,单击表格右上角“删除”按钮;
单击“确认删除”。
他人访问权限
5.0 版本新增: 支持为数据处理配置他人访问权限。
创建时,可以限制同项目内其他用户的访问权限,包括:“可读写”、“只读”和“不可读写”。 应用访问权限不得高于资源访问权限。 若管理员关闭共享权限,则他人访问权限只能为“不可读写”。
不同权限支持的操作如下:
可读写 |
只读 |
不可读写 |
|
---|---|---|---|
查看详情 |
√ |
√ |
X |
克隆 |
√ |
√ |
X |
停止 |
√ |
X |
X |
删除 |
√ |
X |
X |