ポーズ検出コンポーネントは、HRNet または Lite-HRNet バックボーンを使用してトップダウン型の姿勢推定モデルをトレーニングします。Machine Learning Designer パイプラインでこのコンポーネントを使用し、画像から人体のキーポイントを検出できます。
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
有効化済みの Object Storage Service (OSS) バケット
Machine Learning Studio が OSS へのアクセスを許可されていること — OSS の有効化 および ビジュアルモデリングの使用に必要な権限を付与する をご参照ください。
制限事項
このコンポーネントは、Machine Learning Platform for AI (PAI) の Machine Learning Designer でのみ利用可能です。
Deep Learning Containers (DLC) の計算リソースが必要です。
TopDown アルゴリズムタイプのみサポートされています。TopDown はまずオブジェクト検出器で人物を検出し、その後、検出された各人物に対してキーポイントを推定します。このアプローチは精度が高い一方で、画像内の人数が増えると処理速度が低下するため、人数が少なく固定されたシーンに最適です。ポーズ検出の前に人体検出を実行する必要があるため、上流に オブジェクト検出 コンポーネントを接続するか、下流の image prediction コンポーネントで検出モデルのパスを手動で設定してください。
仕組み
コンポーネントライブラリの ビデオアルゴリズム > オフライントレーニング 配下にこのコンポーネントがあります。
このコンポーネントは、5 つの入力ポートを通じてトレーニングデータ、アノテーションファイル、評価データ、およびデータセット情報ファイルを受け取ります。トップダウン型のポーズモデルをトレーニングし、トレーニング済みモデルを OSS ディレクトリに出力します。このディレクトリは、下流の image prediction コンポーネントが静的推論に使用します。
コンポーネントの設定
入力ポート
各ポートに Read File Data コンポーネントを接続します。すべてのポートは任意です。ポートを接続しない場合は、対応する OSS パスパラメーターを設定してください。
| ポート (左から右) | データタイプ | 必須 |
|---|---|---|
| トレーニング用データ | OSS | いいえ |
| トレーニング用データのアノテーションパス | OSS | いいえ |
| 評価用データ | OSS | いいえ |
| 評価用データのアノテーションパス | OSS | いいえ |
| データキーポイント情報パス | OSS | いいえ |
入力ポートと対応するパラメーターの両方が設定されている場合、入力ポートの値が優先されます。
フィールド設定
| パラメーター | 必須 | デフォルト | 説明 |
|---|---|---|---|
| model type | はい | TopDown | アルゴリズムタイプ。TopDown のみサポートされています。 |
| oss dir to save model | いいえ | なし | トレーニング済みモデルを保存する OSS ディレクトリ。例: oss://examplebucket/output_dir/ckpt/ |
| oss data path to training | いいえ | なし | トレーニング画像の OSS パス。トレーニング入力ポートを接続しない場合は必須です。例: oss://examplebucket/data/train_images/ |
| oss annotation path for training data | いいえ | なし | トレーニング用アノテーションファイルの OSS パス。トレーニングアノテーションポートを接続しない場合は必須です。例: oss://examplebucket/data/annotations/train.json |
| oss data path to evaluation | いいえ | なし | 評価画像の OSS パス。評価入力ポートを接続しない場合は必須です。例: oss://examplebucket/data/val_images/ |
| oss annotation path for evaluation data | いいえ | なし | 評価用アノテーションファイルの OSS パス。評価アノテーションポートを接続しない場合は必須です。例: oss://examplebucket/data/annotations/val.json |
| oss path to dataset info file | いいえ | なし | データセット情報ファイルの OSS パス。データセット情報ポートを接続しない場合は必須です。例: oss://examplebucket/data/annotations/dataset_info.py |
| Data Source Type | はい | DetSourceCOCO | 入力データ形式。DetSourceCOCO のみサポートされています。 |
| oss path to pretrained model | いいえ | なし | カスタムの事前学習済みモデルの OSS パス。空白の場合、PAI はデフォルトの事前学習済みモデルを使用します。 |
パラメーター設定
| パラメーター | 必須 | デフォルト | 説明 |
|---|---|---|---|
| backbone | はい | hrnet | バックボーンモデル。有効な値:hrnet、lite_hrnet。 |
| num keypoints | はい | なし | データセット内のキーポイントカテゴリ数。 |
| image size after resizing | はい | 192,256 | 固定入力画像サイズ (幅,高さ)。値はカンマで区切ります。 |
| initial learning rate | はい | 0.01 | トレーニング時の初期学習率。 |
| learning rate policy | はい | step | 学習率スケジュール。step のみサポートされています。この場合、学習率は lr step で指定されたエポックで減衰します。 |
| lr step | はい | 170,200 | 学習率を 90 % 減衰させるエポック。複数の値はカンマで区切ります。たとえば、初期学習率が 0.1 で lr step が 5,10 の場合、エポック 1~5 では 0.1、エポック 6 以降では 0.01、エポック 11 以降では 0.001 を使用します。 |
| train batch size | はい | 32 | 1 回のトレーニング反復あたりのサンプル数。 |
| eval batch size | はい | 32 | 1 回の評価反復あたりのサンプル数。 |
| total train epochs | はい | 200 | トレーニングデータ全体を通過する総回数。 |
| save checkpoint epoch | いいえ | 1 | チェックポイントの保存頻度。1 を設定すると、各エポック終了後にチェックポイントが保存されます。 |
チューニング
| パラメーター | 必須 | デフォルト | 説明 |
|---|---|---|---|
| optimizer | はい | SGD | モデルトレーニング用のオプティマイザー。有効な値:SGD、Adam。 |
| number process of reading data per gpu | いいえ | 2 | GPU あたりのデータ読み込みスレッド数。 |
| evtorch model with fp16 | いいえ | なし | FP16 混合精度を有効にして、GPU メモリ使用量を削減します。 |
| single worker or distributed on DLC | はい | single_on_dlc | 計算モード。有効な値:single_on_dlc、distribute_on_dlc。 |
| number of worker | いいえ | 1 | ワーカーノード数。distribute_on_dlc を選択した場合に必須です。 |
| cpu machine type | いいえ | 16vCPU+64GB Mem-ecs.g6.4xlarge | CPU インスタンスタイプ。distribute_on_dlc を選択した場合に必須です。 |
| gpu machine type | はい | 8vCPU+60GB Mem+1xp100-ecs.gn5-c8g1.2xlarge | GPU インスタンスタイプ。 |
出力ポート
| ポート | データタイプ | 下流コンポーネント |
|---|---|---|
| 出力モデル | OSS ディレクトリ (oss dir to save model と同じ) | image prediction |
ポーズ検出パイプラインの構築
以下の手順で、完全なトレーニングおよび推論パイプラインを構築できます。![]()
データにラベルを付けます。 iTAG を使用してイメージに注釈を付けます。詳細については、「iTAG」をご参照ください。
データをロードします。 5 つの Read File Data コンポーネント (Read File Data-1 ~ Read File Data-5) を追加します。各コンポーネントの OSS Data Path パラメーターを、次のパスに順に設定します:トレーニング画像、トレーニングアノテーション、評価画像、評価アノテーション、データセット情報ファイル。
接続および設定を行います。 5 つの Read File Data コンポーネントすべてを pose detection コンポーネントに接続します。「コンポーネントの設定」セクションで説明されているパラメーターを設定します。
推論を追加します。 pose detection コンポーネントの出力を image prediction コンポーネントに接続します。image prediction コンポーネントで以下のパラメーターを設定します。
パラメーター 値 model type pose_predictoross path for model oss dir to save model に pose detection コンポーネントで設定したパスと同じパス oss path of detection model for pose オブジェクト検出モデルの OSS パス。上流にすでに オブジェクト検出 コンポーネントが接続されている場合は不要です。その場合、検出モデルは自動的に継承されます。 detection model type for pose yolox_predictor(必須)