{"slug":"deepstream-import-vision-model","title":"deepstream-import-vision-model","summary":"Use this skill to bring a supported object-detection vision model from HuggingFace or NVIDIA NGC into an NVIDIA DeepStream pipeline with end-to-end automation: ONNX download, SafeTensors export, TRT engine build, custom nvinfer bbox parser, multi-stream benchmark, and PDF report.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-26T16:30:36.402832Z","repo":{"url":"https://github.com/NVIDIA/skills","stars":3445,"forks":416,"license":"Apache-2.0","updatedAt":"2026-09-25T03:14:56Z"},"bodyHtml":"<h1>DeepStream Import Vision Model</h1>\n<p>Automated end-to-end pipeline: HuggingFace model → TensorRT engine → DeepStream\nmulti-stream benchmark → PDF report.</p>\n<h2>Overview</h2>\n<p>This self-contained skill uses four phase-specific reference documents. Together they automate the full model bringup workflow for NVIDIA DeepStream, from\ndownloading a model on HuggingFace or NVIDIA NGC to a publication-ready benchmark report.</p>\n<p>Supported input formats: ONNX (direct), SafeTensors (auto-exported via <code>torch.onnx.export</code>).</p>\n<p><strong>Current scope:</strong> object detection models only. Classification, segmentation, pose estimation, and other vision tasks are not yet supported — the pipeline fails fast if a non-detection architecture is detected in <code>config.json</code>.</p>\n<h2>Prerequisites</h2>\n<p><strong>Host: only Docker + the NVIDIA driver.</strong> Everything else runs <strong>inside the DeepStream container</strong> —\nDeepStream, TensorRT/<code>trtexec</code>, the Python export venv (<code>torch</code>/<code>onnx</code>/<code>onnxruntime</code>), <code>wkhtmltopdf</code>,\n<code>deepstream-app</code>/<code>gst-launch-1.0</code> — and is bootstrapped by <code>setup.sh</code>. Nothing is installed on the host.\nRuns identically on Linux and <strong>Windows</strong> (Docker Desktop + WSL2 backend, required for GPU).</p>\n<ul>\n<li><strong>Docker</strong> — Docker Desktop with the WSL2 backend on Windows; Docker Engine + NVIDIA Container\nToolkit on Linux.</li>\n<li><strong>NVIDIA GPU + driver</strong> (on Windows, the WSL2 GPU driver — no host CUDA/TensorRT/DeepStream needed).</li>\n<li><code>docker pull nvcr.io/nvidia/deepstream:9.1-triton-multiarch</code>, then run <code>setup.sh</code> through the container.</li>\n</ul>\n<p>See <strong><a href=\"references/windows.md\">references/windows.md</a></strong> for the cross-platform run model and the\nper-shell <code>docker run</code> mount token.</p>\n<h2>Installation</h2>\n<pre><code>bash &lt;path-to-deepstream-import-vision-model&gt;/install.sh --target &lt;your-project-path&gt;\n</code></pre>\n<p>Preview what will be installed first with <code>--dry-run</code>:</p>\n<pre><code>bash &lt;path-to-deepstream-import-vision-model&gt;/install.sh --target &lt;your-project-path&gt; --dry-run\n</code></pre>\n<p>Where <code>&lt;path-to-deepstream-import-vision-model&gt;</code> is the location of this skill in your repo, e.g.:</p>\n<ul>\n<li>In <strong>team-mind-hub</strong>: <code>team-skills/deepstream-sdk/deepstream-import-vision-model</code></li>\n<li>In <strong>ds-copilot</strong>: <code>team-skills/deepstream-sdk/deepstream-import-vision-model</code> (same path)</li>\n</ul>\n<p>The script copies the complete skill into the target project for Claude Code, Codex, and Cursor. Re-running it safely refreshes an existing installation.</p>\n<h2>Usage</h2>\n<p><strong>Claude Code:</strong></p>\n<pre><code>Use deepstream-import-vision-model to run this model: https://huggingface.co/onnx-community/yolov8n\n</code></pre>\n<p><strong>Codex:</strong></p>\n<pre><code>Use $deepstream-import-vision-model to deploy and benchmark https://huggingface.co/onnx-community/yolov8n\n</code></pre>\n<p><strong>Cursor:</strong></p>\n<pre><code>@deepstream-import-vision-model run this model: https://huggingface.co/onnx-community/yolov8n\n</code></pre>\n<p>The skill runs the full pipeline autonomously — no manual steps required.</p>\n<h2>Pipeline Steps</h2>\n<table>\n<thead>\n<tr>\n<th>Step</th>\n<th>Phase reference</th>\n<th>Action</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1–3</td>\n<td><code>references/model-acquire.md</code></td>\n<td>Browse HF repo, download ONNX or export SafeTensors</td>\n</tr>\n<tr>\n<td>4–5</td>\n<td><code>references/engine-build.md</code></td>\n<td>Build dynamic TRT engine, run trtexec benchmarks</td>\n</tr>\n<tr>\n<td>6–7</td>\n<td><code>references/pipeline-run.md</code></td>\n<td>Custom bbox parser, DeepStream single + multi-stream</td>\n</tr>\n<tr>\n<td>8</td>\n<td><code>references/report-generation.md</code></td>\n<td>5 charts, HTML report, PDF</td>\n</tr>\n</tbody>\n</table>\n<h2>Output Structure</h2>\n<p>Per-model outputs are written to <code>models/&lt;model_name&gt;/</code> in your project:</p>\n<pre><code>models/&lt;model_name&gt;/\n  model/          ONNX file(s)\n  parser/         Custom nvinfer bbox parser (.cpp, .so)\n  config/         nvinfer config, DS app config, labels.txt\n  scripts/        Model-specific run helpers\n  benchmarks/     TRT engines, trtexec logs\n  reports/        benchmark_report.md / .html / .pdf + charts/\n  samples/        Output videos, test frames, KITTI detections\n</code></pre>\n<h2>Files in this package</h2>\n<pre><code>deepstream-import-vision-model/\n├── SKILL.md                    Top-level skill definition\n├── README.md                   This file\n├── references/                 Phase-specific runbooks\n├── scripts/                    Utility scripts by pipeline phase\n└── tests/                      Installer and script regression tests\n</code></pre>\n","files":[{"path":"agents/openai.yaml","sizeBytes":384,"isText":true},{"path":"BENCHMARK.md","sizeBytes":4994,"isText":true},{"path":"CHANGELOG.md","sizeBytes":18559,"isText":true},{"path":"evals/evals.json","sizeBytes":24685,"isText":true},{"path":".gitattributes","sizeBytes":640,"isText":false},{"path":".gitignore","sizeBytes":46,"isText":false},{"path":"install.ps1","sizeBytes":5550,"isText":false},{"path":"install.sh","sizeBytes":6422,"isText":true},{"path":"README.md","sizeBytes":4138,"isText":true},{"path":"references/engine-build.md","sizeBytes":17042,"isText":true},{"path":"references/model-acquire.md","sizeBytes":25302,"isText":true},{"path":"references/pipeline-run.md","sizeBytes":27817,"isText":true},{"path":"references/README.md","sizeBytes":774,"isText":true},{"path":"references/report-generation.md","sizeBytes":27412,"isText":true},{"path":"references/windows.md","sizeBytes":3368,"isText":true},{"path":"scripts/deepstream/benchmark-ds.sh","sizeBytes":3718,"isText":true},{"path":"scripts/deepstream/ds-kitti-dump.sh","sizeBytes":4602,"isText":true},{"path":"scripts/deepstream/ds-perf-run.sh","sizeBytes":4889,"isText":true},{"path":"scripts/deepstream/ds-single-stream.sh","sizeBytes":5015,"isText":true},{"path":"scripts/deepstream/ds-sweep.sh","sizeBytes":12563,"isText":true},{"path":"scripts/deepstream/extract-frame.sh","sizeBytes":1981,"isText":true},{"path":"scripts/dsrun.sh","sizeBytes":1436,"isText":true},{"path":"scripts/engine/benchmark-trtexec.sh","sizeBytes":2826,"isText":true},{"path":"scripts/model/cleanup.sh","sizeBytes":2774,"isText":true},{"path":"scripts/model/config-to-labels.py","sizeBytes":4154,"isText":true},{"path":"scripts/model/hf-download-config.sh","sizeBytes":2277,"isText":true},{"path":"scripts/model/hf-list-files.sh","sizeBytes":4462,"isText":true},{"path":"scripts/model/inspect-onnx.py","sizeBytes":3747,"isText":true},{"path":"scripts/model/make-static-batch-onnx.py","sizeBytes":2781,"isText":true},{"path":"scripts/model/ngc-download.sh","sizeBytes":3907,"isText":true},{"path":"scripts/model/ngc-list-files.sh","sizeBytes":2812,"isText":true},{"path":"scripts/model/resolve-engine.sh","sizeBytes":1865,"isText":true},{"path":"scripts/model/safetensors_to_onnx.py","sizeBytes":10282,"isText":true},{"path":"scripts/model/safetensors-to-onnx.sh","sizeBytes":3664,"isText":true},{"path":"scripts/preflight.sh","sizeBytes":4316,"isText":true},{"path":"scripts/report/generate-benchmark-charts.py","sizeBytes":11096,"isText":true},{"path":"scripts/report/latex-pdf-wrap.tex","sizeBytes":1689,"isText":false},{"path":"scripts/report/md-to-html-pdf.py","sizeBytes":7236,"isText":true},{"path":"scripts/report/md-to-pdf.sh","sizeBytes":2272,"isText":true},{"path":"scripts/report/mermaid-puppeteer.json","sizeBytes":42,"isText":true},{"path":"scripts/report/mermaid-puppeteer-root.json","sizeBytes":86,"isText":true},{"path":"scripts/report/pandoc-wrap-tables.lua","sizeBytes":2286,"isText":false},{"path":"scripts/report/render-mermaid-for-pdf.py","sizeBytes":7548,"isText":true},{"path":"scripts/report/report-style.css","sizeBytes":1983,"isText":false},{"path":"scripts/requirements.txt","sizeBytes":2660,"isText":true},{"path":"setup.sh","sizeBytes":3638,"isText":true},{"path":"skill-card.md","sizeBytes":4631,"isText":true},{"path":"SKILL.md","sizeBytes":14565,"isText":true},{"path":"skill.oms.sig","sizeBytes":16449,"isText":false},{"path":"tests/__init__.py","sizeBytes":137,"isText":true},{"path":"tests/README.md","sizeBytes":3058,"isText":true},{"path":"tests/test_evals_contract.py","sizeBytes":10712,"isText":true},{"path":"tests/test_hardened_scripts.py","sizeBytes":13623,"isText":true},{"path":"tests/test_onnx_export_contract.py","sizeBytes":9120,"isText":true},{"path":"tests/test_powershell_installer.py","sizeBytes":9454,"isText":true},{"path":"tests/test_skill_model_intake.py","sizeBytes":2058,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-26T16:31:28.263659Z","sha256":"D21C2E2C7369DC612722450D02C28327AC25A7727C2D2C1D0371CD66E99890F5","sizeBytes":150689},"review":null,"source":{"repositoryUrl":"https://github.com/NVIDIA/skills","path":"skills/deepstream-import-vision-model","license":"Apache-2.0","commit":"d8519c57da6db5d9bea274ec1724a4a7a56a3dee","subtreeSha":"BD6C619295D509F7F40D216B9FD19766235404D3F75FF131EB9ABD708EDAEEDD","lastSyncedAt":"2026-09-26T16:30:30.547995Z"},"reviewedAt":"2026-09-26T16:32:48.141751Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/NVIDIA/skills/tree/main/skills/deepstream-import-vision-model"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install nvidia-skills@llmmart"},{"target":"git","command":"git clone https://github.com/NVIDIA/skills.git"}]}