mcpField
T
tao-train-nvpanoptix3d

tao-train-nvpanoptix3d

github.com/promptingcompanyデータ・データベース039 回インストール17 週間前に更新
リポジトリ

tao-train-nvpanoptix3d について

姿勢情報付き RGB 画像からパノプティックな 3D シーンを再構成する TAO スキルです。セマンティック、インスタンス、パノプティックセグメンテーションと占有補完を組み合わせ、2D・3D の段階的なチェックポイントを使います。

主な機能

  1. 01パノプティック 3D シーン再構成
  2. 02セマンティック・インスタンス分割
  3. 03占有補完
  4. 042D・3D チェックポイントの段階利用
  5. 052D・3D ONNX モデルの個別エクスポート

活用シーン

  1. 01姿勢情報付き画像からの 3D 再構成
  2. 02セマンティック・インスタンスマスクの生成
  3. 033D 占有予測の補完
  4. 042D・3D モデルコンポーネントのエクスポート

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/promptingcompany/nv-skills --skill tao-train-nvpanoptix3d

インストール後、Claude Code で/tao-train-nvpanoptix3dを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
skill_info.yaml
spec_template_evaluate.yaml
spec_template_export.yaml
spec_template_inference.yaml
spec_template_train.yaml
schemas/
evaluate.schema.json
export.schema.json
inference.schema.json
manifest.json
train.schema.json

詳細

NVPanoptix3D

NVPanoptix3D は、ポーズ付き RGB 画像からパノプティック 3D シーンを再構築します。占有状態の補完を行いながら、3D パノプティックセグメンテーション(セマンティック、インスタンス、パノプティックマスク)を生成します。VGGT バックボーン、Mask2Former スタイルのヘッド、3D フラスタム再構築に基づいて構築されています。

2D および 3D のステージチェックポイントを使用します。段階的な初期化には、train.checkpoint_2d と train.checkpoint_3d を設定してください。

Dataclass スキーマ

生成された TAO Core スキーマは schemas/<action>.schema.json にパッケージ化されており、利用可能なアクションは schemas/manifest.json に記載されています。生成された各スキーマでは、スキーマのトップレベルの default フィールドから references/spec_template_<action>.yaml も生成されます。AutoML の有効化は、references/skill_info.yaml のモデルレイヤーで automl_enabled により宣言されています。AutoML を実行するには、schemas/train.schema.json と references/spec_template_train.yaml が存在し、解析できる必要もあります。automl_default_parameters、automl_disabled_parameters、デフォルト値、最小/最大の境界値、列挙型、オプションの重み、数学的条件、依存関係、よく使用されるパラメーターには、パッケージ済みの train スキーマを使用してください。実行時に ~/tao-core が存在することを前提にしないでください。メンテナーは、スキルバンクをパッケージ化する前にスキーマ/テンプレートを再生成してください。

Train アクションのポリシー

このモデルでは、モデルレイヤーで AutoML が有効になっています。train ステージのリクエストを処理する前に、references/skill_info.yaml を読み込み、明示的な automl_policy の値、またはユーザーのワークフローリクエストから実行時のオーバーライドを特定してください。「AutoML をオフにして」、「AutoML を無効にして」、「HPO なしで」、「通常のトレーニング」などの表現は、今回の実行に限り automl_policy: off として扱います。それ以外の場合は、デフォルトで auto を使用します。automl_policy: auto、automl_enabled: true であり、schemas/train.schema.json と references/spec_template_train.yaml の両方がパッケージ化されている場合、デフォルトでこのモデルの skill_dir を指定して、train アクションを tao-skill-bank:tao-run-automl 経由で実行します。データセット、spec、出力ディレクトリ、GPU/プラットフォーム設定、親チェックポイント、automl_policy に対するワークフロー/アプリケーションのオーバーライドは維持してください。直接モデルをトレーニングするのは、automl_policy: off の場合、またはパッケージ済みの train スキーマ/テンプレートがない場合に限ります。スキーマがない場合は、AutoML が有効でも、スキーマが生成されるまではこのモデルで実行できないことを報告してください。

evaluate、inference、export、デプロイフローなど、train 以外のアクションは、このモデルのスキル内で実行します。実行ごとの automl_policy オーバーライドによって、モデルのメタデータが変わることはありません。

トレーニング要件

  • データセットの種類: nvpanoptix3d
  • 形式: front3d、matterport
  • モニタリング指標: kpi
アクションごとのデータセット要件
アクションSpec キーソースファイルリスト?
evaluatedataset.frustum_mask_patheval_datasetmeta/frustum_mask.npzいいえ
evaluatedataset.label_mapeval_datasetmeta/colormap.jsonいいえ
evaluatedataset.val.json_patheval_datasetmeta/val.jsonいいえ
evaluatedataset.val.base_direval_datasetいいえ
evaluatedataset.test.json_pathinference_datasetmeta/test.jsonいいえ
evaluatedataset.test.base_dirinference_datasetいいえ
inferencedataset.frustum_mask_pathinference_datasetmeta/frustum_mask.npzいいえ
inferencedataset.label_mapinference_datasetmeta/colormap.jsonいいえ
inferenceinference.images_dirinference_datasetimages.tar.gzいいえ
traindataset.frustum_mask_pathtrain_datasetsmeta/frustum_mask.npzいいえ
traindataset.label_maptrain_datasetsmeta/colormap.jsonいいえ
traindataset.train.json_pathtrain_datasetsmeta/train.jsonいいえ
traindataset.train.base_dirtrain_datasetsいいえ
traindataset.val.json_patheval_datasetmeta/val.jsonいいえ
traindataset.val.base_direval_datasetいいえ
traindataset.test.json_pathinference_datasetmeta/test.jsonいいえ
traindataset.test.base_dirinference_datasetいいえ
一般的な仕様のオーバーライド

データソースのオーバーライドはすべてのアクションで必須です。エージェントは、上記のアクションごとのデータセット要件テーブルからデータソースパスを作成し、spec_overrides に含める必要があります。

S3_TRAIN = "s3://bucket/data/train"
S3_EVAL = "s3://bucket/data/eval"

train(必須データソース):

{
    "train.num_epochs": 10,
    "train.checkpoint_interval": 10,
    "train.validation_interval": 10,
    "train.num_gpus": 1,
    "dataset.enable_3d": True,
    "model.sem_seg_head.num_classes": 13,
    "dataset.frustum_mask_path": f"{S3_TRAIN}/meta/frustum_mask.npz",
    "dataset.label_map": f"{S3_TRAIN}/meta/colormap.json",
    "dataset.train.json_path": f"{S3_TRAIN}/meta/train.json",
    "dataset.train.base_dir": f"{S3_TRAIN}",
    "dataset.val.json_path": f"{S3_EVAL}/meta/val.json",
    "dataset.val.base_dir": f"{S3_EVAL}",
    "dataset.test.json_path": f"{S3_EVAL}/meta/test.json",
    "dataset.test.base_dir": f"{S3_EVAL}",
}

evaluate(必須データソース):

{
    "dataset.enable_3d": True,
    "dataset.frustum_mask_path": f"{S3_EVAL}/meta/frustum_mask.npz",
    "dataset.label_map": f"{S3_EVAL}/meta/colormap.json",
    "dataset.val.json_path": f"{S3_EVAL}/meta/val.json",
    "dataset.val.base_dir": f"{S3_EVAL}",
    "dataset.test.json_path": f"{S3_EVAL}/meta/test.json",
    "dataset.test.base_dir": f"{S3_EVAL}",
}

inference(必須データソース):

{
    "dataset.enable_3d": True,
    "dataset.frustum_mask_path": f"{S3_EVAL}/meta/frustum_mask.npz",
    "dataset.label_map": f"{S3_EVAL}/meta/colormap.json",
    "inference.images_dir": f"{S3_EVAL}/images.tar.gz",
}

評価用データセット

任意です。検証用/テスト用の分割は、dataset.val と dataset.test のパスで設定します。

重要なパラメーター

  • model.sem_seg_head.num_classes:セマンティッククラスの数。デフォルトは 13 です。
  • model.mode:予測モード。選択肢:panoptic、instance、semantic。デフォルトは panoptic です。
  • model.backbone_type:バックボーン。デフォルトは vggt です(スキーマで唯一の選択肢)。
  • model.mask_former.num_object_queries:オブジェクトクエリの数。デフォルトは 100 です。
  • model.mask_former.dec_layers:デコーダーレイヤー数。デフォルトは 10 です。
  • model.frustum3d.truncation:3D フラスタムの切り捨て値。デフォルトは 3 です。
  • model.frustum3d.panoptic_weight:パノプティック損失の重み。デフォルトは 25 です。
  • model.frustum3d.completion_weights:補完損失の重み。デフォルトは [50, 25, 10] です。
  • dataset.name:データセット名。選択肢:front3d、matterport、synthetic_hospital、synthetic_warehouse。
  • dataset.downsample_factor:画像のダウンサンプリング係数。デフォルトは 1(Front3D)、2(Matterport)です。
  • dataset.target_size:目標画像サイズ。デフォルトは [320, 240] です。
  • dataset.depth_min:最小深度。デフォルトは 0.4 メートルです。
  • dataset.depth_max:最大深度。デフォルトは 6.0 メートルです。
  • train.lr:学習率。デフォルトは 2e-4 です。backbone_multiplier=0.1 です。
  • train.lr_scheduler:選択肢:MultiStep、Warmuppoly。マイルストーンは [88, 96] です。
  • train.precision:選択肢:fp16、fp32。デフォルトは fp16 です。
  • train.distributed_strategy:選択肢:ddp、fsdp。デフォルトでは activation_checkpoint=True です。
  • train.clip_grad_norm:勾配クリッピングのノルム。デフォルトは 0.1 です。
  • export.onnx_file_2d:2D モデルコンポーネントの ONNX パス。
  • export.onnx_file_3d:3D モデルコンポーネントの ONNX パス。
  • export.max_voxels:エンジン入力の最大ボクセル数。デフォルトは 700000 です。
  • inference.mode:選択肢:semantic、instance、panoptic。

マルチ GPU/マルチノード

起動方法: Lightning による管理(単一の python プロセスから Lightning がワーカーを起動します)。

仕様キー説明デフォルト
train.num_gpusGPU 数1
train.gpu_idsGPU デバイスのインデックス[0]
train.num_nodesノード数1
train.distributed_strategyddp のみddp
  • fsdp は NVPanoptix3D ではサポートされていません(コードは ddp のみを処理します)
  • アクティベーションチェックポイントを有効にした ddp(デフォルトで有効):find_unused_parameters=False
  • アクティベーションチェックポイントを無効にした ddp:find_unused_parameters=True
  • 3D を有効にした FAN バックボーンでは sync_batchnorm が自動的に有効になります

マルチノード環境変数(オーケストレーターによって設定):WORLD_SIZE、NODE_RANK、MASTER_ADDR、MASTER_PORT、NUM_GPU_PER_NODE。

エクスポート/TRT のデフォルト値

  • 2D と 3D の ONNX モデルを個別にエクスポートします(onnx_file_2d、onnx_file_3d)
  • TRT データ型:FP32、FP16 のみ
  • max_voxels:700000(エンジン入力テンソルの上限)

ハードウェア

最低 2 GPU、推奨 4 GPU です。GPU ごとに 40GB 以上の VRAM が必要です(A100 を推奨)。3D 再構成は非常に多くのメモリを使用します。fp16 を推奨します。activation_checkpoint はデフォルトで有効です。マルチノードでは FSDP を使用します。AutoML はモデルレイヤーで有効です。train を AutoML 経由で振り分ける際は、この GPU/VRAM に関する指針を維持してください。

エラーパターン

フラスタムマスクが見つからない場合:データセットディレクトリに meta/frustum_mask.npz が存在することを確認してください。

ダウンサンプリング係数の不一致:Matterport3D では downsample_factor=2、Front3D/合成データセットでは 1 を使用してください。

3D 占有データによる OOM:3D 再構成中に GPU メモリが不足する場合は、frustum_dims または grid_dimensions を小さくしてください。

Spec Param / 親モデルの推論

モデル固有の推論マッピングは config.json ではなく、この MD ファイルに記述します。生成されたランナーはこのセクションを読み込み、create_job() の前に SDK ヘルパーを使ってマッピングを適用します。これは、以前のマイクロサービスにおける infer_params.py のフローを踏襲しています。

TAO Core の nvpanoptix3d.config.json からの推論マッピング:

アクションSpec フィールド推論関数意味
評価encryption_keykey暗号化キー
評価evaluate.checkpointparent_model親ジョブの結果フォルダーから推論したモデルファイル
評価results_diroutput_dir現在のジョブの結果ディレクトリ
エクスポートencryption_keykey暗号化キー
エクスポートexport.checkpointparent_model親ジョブの結果フォルダーから推論したモデルファイル
エクスポートexport.onnx_file_2dcreate_onnx_file_2dcreate_onnx_file_2d
エクスポートexport.onnx_file_3dcreate_onnx_file_3dcreate_onnx_file_3d
エクスポートresults_diroutput_dir現在のジョブの結果ディレクトリ
推論encryption_keykey暗号化キー
推論inference.checkpointparent_model親ジョブの結果フォルダーから推論したモデルファイル
推論results_diroutput_dir現在のジョブの結果ディレクトリ
トレーニングencryption_keykey暗号化キー
トレーニングresults_diroutput_dir現在のジョブの結果ディレクトリ
トレーニングtrain.checkpoint_2dparent_model_or_ptm利用可能な場合は親モデル、そうでなければ PTM
トレーニングtrain.checkpoint_3dptm事前学習済みモデル
トレーニングtrain.resume_training_checkpoint_pathresume_model現在のジョブの結果フォルダーから推論したモデルファイル

parent_model または parent_model_folder には、上流の train/export/AutoML 子ジョブの ID を parent_job_id として渡します。SDK は親の結果フォルダーを一覧表示し、チェックポイントアーティファクトをフィルタリングして、選択されたモデルファイルまたはフォルダーを返します。これらのマッピングを config.json に戻したり、チェックポイントのパスを推測するように生成されたランナースクリプトを修正したりしないでください。

コメント