すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:画像をTFRecordファイルに変換する

最終更新日:Jul 22, 2024

このトピックでは、Platform for AI (PAI) のデータ変換機能を使用して画像をTFRecordファイルに変換する方法について説明します。 この方法では、TFRecordファイルを使用して、PAIが提供するトレーニングコンポーネントを使用してモデルをトレーニングできます。 PAIのiTAGを使用してデータにラベルを付けると、システムはラベル付きデータセットを生成します。 次に、データ変換コンポーネントを呼び出して、ラベル付きデータセットをTFRecordファイルに変換できます。 他のプラットフォームを使用してデータにラベルを付ける場合は、PAIコマンドを実行して、ラベル付きデータをPAIでサポートされているラベル付きデータセットに変換する必要があります。 次に、ラベル付きデータセットをTFRecordファイルに変換できます。

説明

SQL Scriptコンポーネント、MaxComputeクライアント、またはDataWorksのODPS SQLノードを使用して、PAIコマンドを実行できます。 詳細については、「MaxComputeクライアント (odpscmd) 」または「MaxCompute SQLタスクの開発」をご参照ください。

ラベル付きデータセットをシングルラベルまたはマルチラベルの画像分類に変換する

次の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://{bucket_name}/test/convert/recipt_text_end2end/data'

PAIコマンドパラメータ

パラメーター

必須

説明

Format

デフォルト値

バケット

不可

Object Storage Service (OSS) バケットの名前。 名前はスラッシュ (/) で終わる必要があります。 複数のバケットを指定する場合は、バケット名をコンマ (,) で区切ります。

"oss:// bucket_name/?role_arn=xxx&host=yyy" "oss:// bucket_1/?role_arn=xxx&host=yyy、oss:// bucket_2/"

Empty

cmd

実行する操作です。 変換する値を設定します。

STRING

変換

label_file

ラベル付きデータセットのOSSパス。 詳細については、「ラベル付きデータセット形式の概要」をご参照ください。

oss:// your_bucket/xxx.csv

N/A

convert_param_config

不可

変換タスクに関する情報。 詳細については、次の表を参照してください。 convert_param_configをconvert_configに置き換えることもできます。

-- parama valuea -- paramb valueb

""

output_tfrecord

不可

TFRecordファイルのOSSパス。

oss:// your_dir /プレフィックス

""

クラスター

不可

分散方式で変換を実行するために使用されるワーカーノードに関する情報。

JSON文字列

"{\" worker\":{\" count\":3, \" cpu\": 800, \" gpu\":0, \" memory\": 20000}}"

次の表に、convert_param_configフィールドのオプションを示します。

オプション

必須

説明

Format

デフォルト値

model_type

変換されたデータが適用されるモデルのタイプ。 有効な値:

  • CLASSIFICATION: シングルラベルまたはマルチラベルの画像分類

  • DETECTION: オブジェクト検出

  • SEGMENTATION: セマンティック画像セグメンテーション

  • INSTANCE_SEGMENTATION: インスタンスセグメンテーション

  • TEXT_END2END: エンドツーエンドの光学式文字認識 (OCR)

  • TEXT_RECOGNITION: 単一行のテキスト認識

  • TEXT_DETECTION: テキスト検出

  • VIDEO_CLASSIFICATION: ビデオ分類

  • SELF_DEFINED: カスタム変換

説明

model_typeパラメーターの値がTEXT_END2ENDまたはTEXT_RECOGNITIONに設定されている場合、char_replace_map_pathおよびdefault_char_dict_pathパラメーターが有効になります。 model_typeパラメーターの値がVIDEO_CLASSIFICATIONに設定されている場合、decod_typesample_fpsreshape_sizedecode_batch_size、およびdecode_keep_sizeパラメーターが有効になります。

STRING

N/A

class_list_file

不可

カテゴリファイルのOSSパス。 ファイルにはカテゴリ名のリストが含まれています。 カテゴリ名は、以下のフォーマットで提示することができる。カテゴリ名: マッピングカテゴリ名

oss:// path/to/your/classlit

"

test_ratio

不可

テストデータのセットを異なるサブセットに分割するために使用される比率。 値が0に設定されている場合、テストデータのセット全体がトレーニングに使用されます。 値が0.1に設定されている場合、テストデータの10% が検証に使用されます。

FLOAT

0.1

max_image_size

不可

画像の長辺の最大ピクセル値。 このパラメーターを設定し、イメージのサイズが上限を超えると、イメージのサイズが変更されてTFRecordファイルに保存され、ストレージスペースが削減され、データの読み取りが高速化されます。

INT

N/A

max_test_image_size

不可

テストに使用される画像の長辺の最大ピクセル値。 このパラメーターの値は、max_image_sizeパラメーターの値と同じです。 このパラメーターは、テストデータの設定に使用されます。

INT

${max_image_size}

default_class

不可

デフォルトのカテゴリの名前。 名前がclass_listに含まれていないカテゴリは、デフォルトのカテゴリと見なされます。

STRING

なし

error_class

不可

無効なカテゴリの名前。 このカテゴリに属するオブジェクトまたはバウンディングボックスは、トレーニングには使用されません。

STRING

N/A

ignore_class

不可

モデル検出にのみ使用されるカテゴリの名前。 このカテゴリに属する境界ボックスは、トレーニングには使用されません。

STRING

N/A

converter_class

不可

変換クラスの名前。 有効な値:

  • pai itagラベリング形式: iTAGによって生成されたラベル付きファイルの形式

  • paiラベリング形式 (旧バージョン): iTAGによって生成されたラベル付きファイルの以前の形式

  • qinceラベリング形式: qinceプラットフォームによって生成されたラベル付きファイルの形式

  • sslラベリング形式: PAIが自己監視画像学習用に定義したファイル形式

STRING

paiラベリング形式 (旧バージョン)

separator

不可

ラベルファイルを部分文字列に分割するためにsplit() メソッドで使用されるセパレータ。

STRING

N/A

image_format

不可

TFRecordファイル内の画像のエンコード形式。 次の画像エンコード形式が一般的に使用されます。

  • jpg

  • png

  • bmp

STRING

jpg

read_parallel_num

不可

同時読み取りの数。

INT

10

write_parallel_num

不可

TFRecordファイルへの同時書き込み数。

INT

1

num_samples_per_tfrecord

不可

各TFRecordファイルに保存された画像の数。

INT

256

user_defined_converter_path

不可

カスタムコンバーターコードのHTTPまたはOSSパス。 例: http:// path/to/your/converter.py

STRING

N/A

user_defined_generator_path

不可

カスタムジェネレーターコードのHTTPまたはOSSパス。 例: http:// path/to/your/generator.py

STRING

N/A

generator_class

不可

カスタムジェネレータークラスの名前。

STRING

N/A

char_replace_map_path

不可

文字マップ置換用のCSVファイルのOSSパス。 ファイルには、originalとreplacedという2つの列があります。

  • の列には、元の文字列のリストが含まれます。

  • 置き換えられた列には、の文字列を置き換えるために使用される文字列のリストが含まれます。

STRING

N/A

default_char_dict_path

不可

文字をIDにマッピングするために使用されるファイルのOSSパス。 ファイルでは、各文字が1行を占めます。 文字のIDは、行番号から1を引いたものに等しい。

STRING

N/A

decode_type

不可

ビデオのデコードに使用される形式。 有効な値:

  • 1: イントラのみ

  • 2: キーフレームのみ

  • 3: bidirなし

  • 4: すべてデコード

INT

4

sample_fps

不可

1秒あたりのサンプリングで抽出されるフレーム数。

FLOAT

5

reshape_size

不可

出力フレームのサイズ。 単位: ピクセル。

INT

224

decode_batch_size

不可

同时にデコードされるフレームの数。

INT

10

decode_keep_size

不可

異なるバッチ内の重複フレームの数。

INT

0