覆盖主要内容
版本: 6.1.0

图像

组件介绍

**“图像”(Image)**控件主要用于加载CV任务所需的用户上传的图像数据集,支持ImageNet,VOC,COCO数据格式。


  • 输入:
  • 输出:
    • data:数据集

**““图像”(Image)**控件读取输入数据压缩文件并将数据集发送到其输出通道。该控件支持 zip, tar, gzip 等压缩文件类型的上传与ImageNet,VOC,COCO数据格式的解析。

页面介绍

点击**“图像”(Image)**控件查看参数配置页面,如下图所示:

参数选项

选项说明样例值
图片上传

选择一个ImageNet/VOC/COCO数据压缩文件(.zip, .tar, .gzip)进行上传,成功解析加载后显示如下信息:
图片数:上传的图片总数
训练集:用于模型训练的样本数
验证集:用于模型验证的样本数
测试集:用于测试的样本数

预览数据

对成功上传、解析、加载的图像数据进行预览展示

提示

在加载数据时,该控件会把数据分为三种数据格式:ImageNet, VOC, COCO。不同类型的数据在压缩包内的组织方式如下:

  1. ImageNet
├── folder_1
│ ├── xxx.png
│ ├── xxy.png
│ └── ...
├── folder_2
│ └── ...
├── train_list.txt # 训练集
├── val_list.txt # 验证集
└── test_list.txt # 测试集
└── label_list.txt # 标签列表

其中,folder_1, folder_2文件夹用于存放模型训练、测试所需要的样本图片,目录名称可自定义。 label_list.txt为数据集使用的标签列表,类别序号的值应当属于 [0, num_classes - 1] 范围。文件内容格式如下:

label_1
label_2
...

train_list.txt、val_list.txt、test_list.txt分别为训练集、验证集、测试集,每行记录声明对应图片的路径和标签索引,并用空格分隔。其中第一列表示图像 相对于主目录的路径,第二列表示类别序号。例如,train_list.txt文件内容格式如下:

folder_1/xxx.png 1
folder_1/xxy.png 1
folder_2/... 0
... ()
  1. Pascal VOC
├── JPEGImages      # 图像目录
│ ├── xxx.jpg
│ ├── xxy.jpg
│ └── ...
├── Annotations # 标签目录
│ └── xxx.png
│ └── xxy.png
│ └── ...
├── train_list.txt # 训练集
├── val_list.txt # 验证集
└── test_list.txt # 测试集
└── label_list.txt # 标签列表

其中label_list.txt为数据集使用的标签列表,以图像分割任务中的VOCDataset为例,包含两个分类标签:背景(background)、前景标签(label_x),名称可根据任务自行定义。文件内容具体格式如下:

background
label_x
...
  1. COCO
├── train          # train目录用于存放模型训练的样本
│ ├── xxx.jpg
│ ├── xxy.jpg
│ └── ...
├── val # val目录用于存放训模型验证的样本
│ ├── xxx.jpg
│ ├── xxy.jpg
│ └── ...
├── test # test目录用于存放模型测试的样本
│ ├── xxx.jpg
│ ├── xxy.jpg
│ └── ...
├── annotations # 标签目录
│ └── train.json # 训练集
│ └── val.json # 验证集
│ └── test.json # 测试集

其中annotations目录用于存放标注文件,train.json、val.json、test.json分别为训练集、验证集、测试集对应的标注信息,COCO数据集的标注格式如下所示,其中的键(key)都是必要的,参考这里来获取更多细节。

{
"images": [image],
"annotations": [annotation],
"categories": [category]
}


image = {
"id": int,
"width": int,
"height": int,
"file_name": str,
}

annotation = {
"id": int,
"image_id": int,
"category_id": int,
"segmentation": RLE or [polygon],
"area": float,
"bbox": [x,y,width,height],
"iscrowd": 0 or 1,
}

categories = [{
"id": int,
"name": str,
"supercategory": str,
}]

使用案例

**“图像”(Image)控件一般作为一个工作流的开端,支持文件压缩包的上传、加载预览。如下图所示的工作流中 ,使“图像”(Image)**控件加载数据,并通过预览数据对全量数据、训练数据、验证数据、测试数据进行查看。

案例中加载样例数据中的 iris 示例数据集,案例中控件执行结果如下图所示: