mcpField
T
tao-train-ocdnet

tao-train-ocdnet

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

tao-train-ocdnet について

自然画像のシーンテキスト検出に使う TAO スキルです。任意方向の文字領域に対応し、トレーニング、評価、推論、エクスポート、TensorRT デプロイを扱います。

主な機能

  1. 01任意方向の文字検出
  2. 02微分可能な二値化
  3. 03AutoML トレーニング
  4. 04評価と推論のアクション
  5. 05エクスポートと TensorRT デプロイ

活用シーン

  1. 01自然画像内の文字検出
  2. 02ラベル付き文字データでの学習
  3. 03文字検出モデルの評価
  4. 04TensorRT 推論の準備

インストール

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

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

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

同梱ファイル

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

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
skill_info.yaml
spec_template_deploy_evaluate.yaml
spec_template_deploy_gen_trt_engine.yaml
spec_template_deploy_inference.yaml
spec_template_evaluate.yaml
spec_template_export.yaml
spec_template_gen_trt_engine.yaml
spec_template_inference.yaml
spec_template_prune.yaml
spec_template_quantize.yaml
spec_template_retrain.yaml
spec_template_train.yaml
tao-deploy-ocdnet.md
tao-deploy-ocdnet.skill_info.yaml
schemas/
evaluate.schema.json
export.schema.json
gen_trt_engine.schema.json
inference.schema.json
manifest.json
prune.schema.json
quantize.schema.json
retrain.schema.json
train.schema.json

詳細

OCDNet

シーンテキスト検出用の OCDNet です。微分可能な二値化アプローチを使用して、自然画像内の任意の向きのテキスト領域を検出します。

事前学習済み重みを使用するには、train.pretrained_model_path を設定してください。

TAO Deploy の TensorRT アクション(gen_trt_engine、TensorRT の evaluate、TensorRT の inference)については、まず references/tao-deploy-ocdnet.md をお読みください。デプロイ仕様テンプレートは、このスキルの references/ フォルダーにある spec_template_deploy_*.yaml というプレフィックスのファイルです。

データクラススキーマ

生成された 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 が存在するとは想定しないでください。メンテナーはスキルバンクをパッケージ化する前に、スキーマ/テンプレートを再生成してください。

学習アクションのポリシー

このモデルでは、モデルレイヤーで AutoML が有効になっています。学習ステージのリクエストを処理する前に、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 を指定し、学習アクションを tao-skill-bank:tao-run-automl 経由で実行してください。データセット、仕様、出力ディレクトリ、GPU/プラットフォーム設定、親チェックポイント、automl_policy に対するワークフロー/アプリケーションのオーバーライドは維持してください。automl_policy: off の場合、またはパッケージ化された学習スキーマ/テンプレートがない場合にのみ、モデルの直接学習を使用してください。スキーマがない場合は、このモデルで AutoML は有効になっていますが、スキーマが生成されるまで実行できないことを報告してください。

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

学習要件

  • データセットタイプ: ocdnet
  • 形式: デフォルト
  • 監視メトリック: hmean
アクションごとのデータセット要件
アクション仕様キーソースファイルリスト?
evaluatedataset.validate_dataset.data_patheval_datasettest.tar.gzはい
gen_trt_enginegen_trt_engine.tensorrt.calibration.cal_image_dircalibration_datasettrain/img.tar.gzはい
inferenceinference.input_foldereval_datasettest/img.tar.gzいいえ
prunedataset.validate_dataset.data_patheval_datasettest.tar.gzはい
quantizedataset.train_dataset.data_pathtrain_datasetstrain.tar.gzはい
quantizedataset.validate_dataset.data_patheval_datasettest.tar.gzはい
quantizedataset.quant_calibration_dataset.images_dirtrain_datasetstrain/img.tar.gzいいえ
retraindataset.train_dataset.data_pathtrain_datasetstrain.tar.gzはい
retraindataset.validate_dataset.data_patheval_datasettest.tar.gzはい
traindataset.train_dataset.data_pathtrain_datasetstrain.tar.gzはい
traindataset.validate_dataset.data_patheval_datasettest.tar.gzはい
典型的な Spec Overrides

データソースのオーバーライドはすべてのアクションで必須です。エージェントは、上記の「アクションごとのデータセット要件」表を参照してデータソースのパスを構築し、spec_overrides に含める必要があります。

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

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

{
    "train.num_epochs": 30,
    "train.checkpoint_interval": 10,
    "train.validation_interval": 10,
    "train.num_gpus": 1,
    "dataset.train_dataset.loader.batch_size": 16,
    "dataset.train_dataset.data_path": [f"{S3_TRAIN}/train.tar.gz"],
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}

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

{
    "gen_trt_engine.tensorrt.data_type": "INT8",
    "gen_trt_engine.tensorrt.calibration.cal_image_dir": [f"{S3_TRAIN}/train/img.tar.gz"],
}

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

{
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}

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

{
    "inference.input_folder": f"{S3_EVAL}/test/img.tar.gz",
}

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

{
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}

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

{
    "dataset.train_dataset.data_path": [f"{S3_TRAIN}/train.tar.gz"],
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
    "dataset.quant_calibration_dataset.images_dir": f"{S3_TRAIN}/train/img.tar.gz",
}

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

{
    "dataset.train_dataset.data_path": [f"{S3_TRAIN}/train.tar.gz"],
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}

評価データセット

任意です。テストデータセットは別の tarball として提供されます。

重要なパラメーター

  • model.backbone:デフォルトは deformable_resnet18 です。変形可能畳み込みにより、不規則なテキストのテキスト領域検出が向上します。
  • train.optimizer.args.lr:学習率です。デフォルトは 0.001(Adam)です。
  • postprocess.thresh:テキスト領域抽出の二値化しきい値です。
  • postprocess.box_thresh:検出結果のフィルタリングに使用するボックスの信頼度しきい値です。

マルチ GPU/マルチノード

起動方法: Lightning 管理(単一の python プロセスで、Lightning がワーカーを起動します)。

Spec Key説明デフォルト
train.num_gpusGPU の数1
train.gpu_idsGPU デバイスのインデックス[0]
train.distributed_strategyddp、fsdp、または deepspeed_stage_3_offloadddp
  • ddp とアクティベーションチェックポイントを使用する場合:find_unused_parameters=False
  • ddp とアクティベーションチェックポイントを使用しない場合:find_unused_parameters=True
  • fsdp は FP16 を強制します
  • deepspeed_stage_3_offload は OCDNet でのみサポートされています(FP16 を強制します)
  • FAN バックボーンでは sync_batchnorm が自動的に有効になります

ハードウェア

最低 1 GPU、推奨 1 GPU です。GPU あたり 8GB 以上の VRAM が必要です。OCDNet は軽量です。ほとんどのデータセットでは、単一 GPU で十分です。

エラーパターン

検出率が低い場合: postprocess.thresh と box_thresh を調整します。デフォルトのしきい値では、一部のデータセットで厳しすぎる場合があります。

Spec Param / 親モデルの推論

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

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

アクションSpec フィールド推論関数意味
評価evaluate.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
評価evaluate.trt_engineparent_model親ジョブの結果フォルダーから推論されるモデルファイル
評価model.pruned_graph_pathpruned_model親のプルーニング済みモデル
評価results_diroutput_dir現在のジョブの結果ディレクトリ
エクスポートexport.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
エクスポートexport.onnx_filecreate_onnx_file出力 ONNX パス
エクスポートresults_diroutput_dir現在のジョブの結果ディレクトリ
gen_trt_enginegen_trt_engine.onnx_fileparent_model親ジョブの結果フォルダーから推論されるモデルファイル
gen_trt_enginegen_trt_engine.tensorrt.calibration.cal_cache_filecreate_cal_cacheキャリブレーションキャッシュのパス
gen_trt_enginegen_trt_engine.trt_enginecreate_engine_file出力 TensorRT エンジンのパス
gen_trt_engineresults_diroutput_dir現在のジョブの結果ディレクトリ
推論inference.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
推論inference.trt_engineparent_model親ジョブの結果フォルダーから推論されるモデルファイル
推論model.pruned_graph_pathpruned_model親のプルーニング済みモデル
推論results_diroutput_dir現在のジョブの結果ディレクトリ
プルーニングprune.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
プルーニングresults_diroutput_dir現在のジョブの結果ディレクトリ
量子化quantize.model_pathparent_model親ジョブの結果フォルダーから推論されるモデルファイル
量子化results_diroutput_dir現在のジョブの結果ディレクトリ
再トレーニングmodel.pruned_graph_pathparent_model親ジョブの結果フォルダーから推論されるモデルファイル
再トレーニングresults_diroutput_dir現在のジョブの結果ディレクトリ
トレーニングmodel.pretrained_model_pathptm_if_no_resume_model再開用チェックポイントがない場合の PTM
トレーニングresults_diroutput_dir現在のジョブの結果ディレクトリ
トレーニングtrain.resume_training_checkpoint_pathresume_model現在のジョブの結果フォルダーから推論されるモデルファイル

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

デプロイ

  • tao-deploy-ocdnet — TAO Deploy を使用した TensorRT エンジン生成、TensorRT 評価、TensorRT 推論の OCDNet デプロイワークフロー。

コメント