PAI提供多种数据转换功能,可以将图片文件快速转换为TFRecord文件,从而使用训练组件进行模型训练。如果通过PAI智能标注平台进行数据标注,则系统会自动生成标记结果文件,您可以直接调用数据转换组件生成TFRecord文件。 如果通过其他平台进行数据标注,则需要使用PAI命令将标记文件转换为PAI标注文件。

说明 您可以使用SQL脚本组件进行PAI命令调用,也可以使用MaxCompute客户端或DataWorks的开发节点进行PAI命令调用,详情请参见PAI-TF调用方式

图片分类或图片多标签分类

使用PAI命令将图片分类或图片多标签分类的标记文件转换为TFRecord的示例如下。
pai -name easy_vision_ext
      -Dbuckets='oss://{bucket_name}.{oss_host}/{path}/'
      -Darn='acs:ram::*******:role/aliyunodpspaidefaultrole'
      -DossHost='{oss_host}'
      -Dcmd  convert
      -Dlabel_file 'oss://{bucket_name}/path/to/your/{label_file}'
      -Dconvert_param_config '
        --class_list_file oss://{bucket_name}/path/to/your/{class_list_file}
        --max_image_size 600
        --write_parallel_num 8
        --num_samples_per_tfrecord 128
        --test_ratio 0.1
        --model_type CLASSIFICATION
      '
      -Doutput_tfrecord 'oss://{bucket_name}/path/to/output/data_prefix'
      -Dcluster='{
              \"worker\" : {
                \"count\" : 1,
                \"cpu\" : 800
              }
            }'

文字检测识别

使用PAI命令将文字检测识别的标记文件转换为TFRecord的示例如下。
pai -name easy_vision_ext
      -Dbuckets='oss://{bucket_name}.{oss_host}/{path}/'
      -Darn='acs:ram::*******:role/aliyunodpspaidefaultrole'
      -DossHost='{oss_host}'
      -Dcmd  convert
      -Dlabel_file 'oss://{bucket_name}/path/to/your/{label_file}'
      -Dconvert_param_config '
        --model_type TEXT_END2END
        --default_class text
        --max_image_size 2000
        --char_replace_map_path oss://{bucket_name}/path/to/your_char_replace_map
        --default_char_dict_path oss://{bucket_name}/path/to/your_char_dict
        --test_ratio 0.1
        --write_parallel_num 8
        --num_samples_per_tfrecord 64
      '
      -Doutput_tfrecord 'oss://pai-vision-data-hz/test/convert/recipt_text_end2end/data'

命令参数说明

参数是否必选描述参数值格式默认值
cmd必须配置为convertSTRINGconvert
buckets可以输入多个Bucket,以英文逗号(,)分隔,每个Bucket必须须以正斜线(/)结尾。“oss://bucket_name/?role_arn=xxx&host=yyy” “oss://bucket_1/?role_arn=xxx&host=yyy,oss://bucket_2/”
label_filePAI标注文件的OSS路径,具体格式说明请参见标注文件格式说明oss://your_bucket/xxx.csv
convert_param_config转换配置参数,详情请参见下方表格。该参数与convert_config参数选择其一即可。—parama valuea —paramb valueb””
output_tfrecord输出TFRecord前缀。oss://your_dir/prefix””
cluster分布式转换参数配置。JSON格式字符串“{\”worker\”:{\”count\”:3, \”cpu\”: 800, \”gpu\”:0, \”memory\”: 20000}}”
convert_param_config参数说明如下。
参数是否必选描述参数值格式默认值
model_type转换数据用于何种模型训练,取值包括:
  • CLASSIFICATION :图像分类或多标签
  • DETECTION:物体检测
  • SEGMENTATION:语义分割
  • INSTANCE_SEGMENTATION:Instance分割
  • TEXT_END2END:端到端OCR
  • TEXT_RECOGNITION:单行文字识别
  • TEXT_DETECTION :文字检测
  • VIDEO_CLASSIFICATION :视频分类
  • SELF_DEFINED:自定义转换
说明 model_type取值为TEXT_END2ENDTEXT_RECOGNITION时,char_replace_map_pathdefault_char_dict_path参数生效。model_type取值为VIDEO_CLASSIFICATION时,decode_type sample_fpsreshape_sizedecode_batch_sizedecode_keep_size参数生效。
STRING
class_list_file类别列表文件路径,文件内容每行格式为类别名或类别名:映射类别名oss://path/to/your/classlit’’
test_ratio测试数据分割比例。如果取值为0,则所有数据转换为训练数据。如果取值为0.1,则表示10%的数据作为验证集。FLOAT0.1
max_image_size图片最大边限制。如果配置了该参数,则大图片会被Resize后存入TFRecord,从而节省存储、提高数据读取速度。INTNone,即不指定该参数
max_test_image_sizemax_image_size,用于配置测试数据。INT${max_image_size}
default_class默认类别名称,在class_list中未找到的类别均会映射到该名称。STRINGNone
error_class错误类别名称,含有该类别的物体和Box会被过滤,不参与训练。STRINGNone,即不指定该参数
ignore_class忽略类别名称,只用于检测模型,含有该类别的Box在训练中会被忽略。STRINGNone,即不指定该参数
converter_class转换类名称,取值包括:
  • pai itag labeling format:PAI iTAG标注平台产生的标注文件格式。
  • pai labeling format(old version):PAI标注平台产生的标注文件格式(旧版)。
  • qince labeling format:亲测平台产生的标注文件格式。
  • ssl labeling format:平台定义的图片自监督训练所需格式。
STRINGpai labeling format(old version)
seperator分隔符,用于标记内容的Split。STRINGNone,即不指定该参数
image_formatTFRecord中图片的编码方式。常用图像编码方式如下所示:
  • jpg
  • png
  • bmp
STRINGjpg
read_parallel_num读取并发数。INT10
write_parallel_num写TFRecord并发数。INT1
num_samples_per_tfrecord每个TFRecord保存图片数。INT256
user_defined_converter_path自定义converter代码路径,支持HTTP或OSS路径。例如http://path/to/your/converter.pySTRING
user_defined_generator_path自定义generator代码路径,支持HTTP或OSS路径。例如http://path/to/your/generator.pySTRING
generator_class自定义generator类名STRING
char_replace_map_path字符映射替换文件。格式为CSV文件,包含如下两列:
  • original:原字符串。
  • replaced:替换字符串,即使用replaced替换original
STRINGNone,即不指定该参数。
default_char_dict_path字符到ID映射文件路径,每一行是一个字符, 第k行的字符ID为k-1STRINGNone,即不指定该参数。
decode_type视频解码方式。取值范围为:
  • 1:Intra only
  • 2:Keyframe only
  • 3:Without bidir
  • 4:Decode all
INT4
sample_fps抽帧频率。FLOAT5
reshape_size输出帧的大小。INT224
decode_batch_size每次Decode步骤中的Batch大小。INT10
decode_keep_size不同Batch中Overlap的帧数量。INT0