deepstream-run-mv3dt

Par nvidia · skills

Exécuter et opérer l'application de référence DeepStream Multi-View 3D Tracking, également connue sous le nom de MV3DT. À utiliser lorsque l'utilisateur souhaite configurer les prérequis, exécuter les exemples MV3DT fournis, lancer le Multi-View 3D Tracking sur des jeux de données MP4 synchronisés personnalisés, importer la calibration de caméra, déléguer la calibration manquante à AutoMagicCalib, inspecter la visualisation OSD ou BEV, consommer les métadonnées Kafka MV3DT, ou nettoyer l'état d'exécution MV3DT dans le répertoire de l'application DeepStream MV3DT.

npx skills add https://github.com/nvidia/skills --skill deepstream-run-mv3dt

Skill : Exécuter DeepStream MV3DT

Quand utiliser cette skill

Activez cette skill quand l'utilisateur veut configurer, exécuter, vérifier ou déboguer l'application de référence DeepStream Multi-View 3D Tracking. Prompts typiques :

  • « configurer MV3DT DeepStream »
  • « exécuter l'échantillon MV3DT 4 caméras »
  • « exécuter l'échantillon MV3DT 12 caméras »
  • « exécuter MV3DT sur mes MP4 synchronisés »
  • « j'ai des vidéos mais pas d'étalonnage ; étalonner et exécuter MV3DT »
  • « afficher le visualiseur BEV ou les métadonnées Kafka »
  • « arrêter MV3DT » / « nettoyer MV3DT » / « arrêter MV3DT »

N'utilisez pas cette skill pour le suivi 3D monovue, le développement générique d'applications DeepStream, ou l'intégration de flux en direct, sauf si l'utilisateur mappe explicitement ce travail au pipeline MV3DT de ce dépôt.

Exemples

  • « Déployer l'échantillon DeepStream MV3DT 4 caméras et afficher les fenêtres OSD et BEV. »
  • « Exécuter l'échantillon MV3DT 12 caméras sans affichage avec RTDETR et enregistrer les vidéos. »
  • « Exécuter MV3DT sur des MP4 synchronisés sous /data/mv3dt-demo en utilisant PeopleNetTransformer. »
  • « Mes vidéos MV3DT personnalisées n'ont pas d'étalonnage ; utiliser AutoMagicCalib, puis exécuter MV3DT. »

Aperçu

Opérez l'application de référence Multi-View 3D Tracking dans DeepStream/src/apps/reference_apps/deepstream-tracker-3d-multi-view via le chemin du conteneur DeepStream. La skill supporte la configuration, les exécutions d'échantillons livrés, les datasets MP4 synchronisés personnalisés, la délégation d'étalonnage à AutoMagicCalib, l'exécution en affichage/sans affichage, les sorties OSD/BEV, et l'inspection des métadonnées Kafka.

Conditions préalables

  • Répertoire de l'application MV3DT sur disque sous DeepStream/src/apps/reference_apps/deepstream-tracker-3d-multi-view ; s'il est absent, demandez avant de cloner le dépôt DeepStream public
  • Docker avec support GPU NVIDIA
  • Accès à l'image du conteneur DeepStream
  • Datasets d'échantillons MV3DT, modèles, bibliothèques de parseurs personnalisées, Kafka, Mosquitto, et mv3dt_venv préparés par le script de configuration du dépôt
  • Affichage X11/VNC fonctionnel pour les fenêtres OSD/BEV en direct, ou le chemin sans affichage de sortie enregistrée pour le MP4 DeepStream mosaïqué plus le MP4 BEV dérivé de Kafka

Instructions

Étape 0 : Résoudre la vérification de l'application MV3DT

La skill peut être installée en dehors du dépôt DeepStream. Résolvez REPO_ROOT au répertoire de l'application MV3DT, pas nécessairement au répertoire de niveau supérieur du Git.

MV3DT_APP_SUBDIR="src/apps/reference_apps/deepstream-tracker-3d-multi-view"

is_mv3dt_app_dir() {
  test -f "$1/README.md" || return 1
  test -d "$1/config_templates" || return 1
  test -d "$1/scripts" || return 1
  grep -q "Multi-View 3D Tracking" "$1/README.md"
}

GIT_TOP="$(git rev-parse --show-toplevel 2>/dev/null || true)"
CANDIDATES=()
if [ -n "${MV3DT_REPO_ROOT:-}" ]; then CANDIDATES+=("${MV3DT_REPO_ROOT}"); fi
if [ -n "${DEEPSTREAM_REPO_ROOT:-}" ]; then CANDIDATES+=("${DEEPSTREAM_REPO_ROOT}/${MV3DT_APP_SUBDIR}"); fi
CANDIDATES+=("${PWD}")
if [ -n "${GIT_TOP}" ]; then
  CANDIDATES+=("${GIT_TOP}" "${GIT_TOP}/${MV3DT_APP_SUBDIR}")
fi
CANDIDATES+=("${HOME}/DeepStream/${MV3DT_APP_SUBDIR}" "${HOME}/deepstream/${MV3DT_APP_SUBDIR}")

REPO_ROOT=""
for candidate in "${CANDIDATES[@]}"; do
  if [ -n "$candidate" ] && is_mv3dt_app_dir "$candidate"; then
    REPO_ROOT="$(cd "$candidate" && pwd)"
    break
  fi
done

if [ -z "${REPO_ROOT}" ]; then
  cat <<'EOF'
ERROR: MV3DT reference app directory was not found.
Set MV3DT_REPO_ROOT to an existing deepstream-tracker-3d-multi-view app directory, or ask the user to approve cloning the public DeepStream repo and then run:

  DEEPSTREAM_REPO_ROOT="${DEEPSTREAM_REPO_ROOT:-$HOME/DeepStream}"
  git clone https://github.com/NVIDIA/DeepStream.git "$DEEPSTREAM_REPO_ROOT"
  export MV3DT_REPO_ROOT="$DEEPSTREAM_REPO_ROOT/src/apps/reference_apps/deepstream-tracker-3d-multi-view"

Do not clone silently.
EOF
  exit 1
fi

cd "${REPO_ROOT}"
export REPO_ROOT MV3DT_REPO_ROOT="${REPO_ROOT}"

Si le répertoire de l'application ne peut pas être résolu, demandez à l'utilisateur un chemin d'accès existant ou l'approbation pour cloner https://github.com/NVIDIA/DeepStream. Ne clonez pas en silence.

Étape 1 : Sélectionner le flux de travail principal

Chargez exactement une seule référence principale pour la demande actuelle de l'utilisateur :

Intention de l'utilisateur Référence
Installer, préparer ou vérifier les conditions préalables references/setup.md
Exécuter l'échantillon 4 caméras ou 12 caméras fourni references/sample-run.md
Exécuter des MP4 synchronisés personnalisés references/custom-dataset.md
Étalonnage personnalisé manquant references/amc-calibration-handoff.md, puis revenir à references/custom-dataset.md
Afficher OSD, BEV, captures d'écran, enregistrements ou métadonnées Kafka references/visualization-metadata.md
Arrêter une exécution, nettoyer les artefacts générés ou arrêter les services de conditions préalables references/setup.md

Si la configuration, les datasets, les modèles, Kafka, Mosquitto, le runtime GPU Docker, ou l'environnement Python venv sont manquants, chargez references/setup.md avant de continuer vers le flux de travail original de l'utilisateur.

Quand sample-run.md ou custom-dataset.md doit régénérer les configurations DeepStream, chargez references/generate-configs.md comme la référence de génération de configuration partagée canonique plutôt que de dupliquer la logique shell.

Étape 2 : Suivre les étapes d'exécution

Pour chaque exécution, utilisez cet ordre d'étapes :

Étape Action
Valider Vérifier le répertoire de l'application, les conditions préalables, la forme du dataset, le mode affichage/sans affichage, le support GPU Docker, et la possibilité d'écriture du répertoire de sortie.
Préparer Indiquer l'échantillon/dataset personnalisé sélectionné, le détecteur, le mode d'exécution, le répertoire de sortie, les surfaces de sortie attendues, et la décision de sécurité Docker pour --privileged --net=host avant le lancement.
Exécuter Générer les configurations, lancer d'abord la capture BEV hors ligne en mode sans affichage ou quand la sauvegarde MP4 BEV est explicitement demandée, puis exécuter DeepStream ou déléguer l'étalonnage manquant à AutoMagicCalib.
Vérifier Confirmer la disponibilité fonctionnelle avec App run successful, les artefacts MP4 frais quand la sortie fichier est activée, les décalages/messages Kafka, et les comptes de messages/images BEV quand l'exécution de capture MP4 BEV s'exécute.
Rapport Résumer les options sélectionnées, les fichiers générés, les chemins d'artefacts, les tailles/comptes de fichiers, et toute surface de sortie ignorée ou échouée ; après une exécution d'échantillon 4 caméras par défaut, mentionner que l'échantillon 12 caméras est également disponible comme suivi.

Étape 3 : Appliquer les valeurs par défaut explicitement

  • Chemin d'exécution : conteneur DeepStream.
  • Chemin affichage : si un affichage X11/VNC fonctionnel est disponible, utilisez le chemin de démarrage rapide du dépôt avec les fenêtres OSD et BEV. La fenêtre OSD ne sauvegarde pas MP4 par défaut ; quand l'utilisateur demande explicitement de sauvegarder la sortie en mode affichage, régénérez les configurations avec à la fois --enable-osd et --enable-file-output plus --enable-msg-broker.
  • Chemin sans affichage : si aucun affichage fonctionnel n'est disponible, utilisez les sorties enregistrées par défaut. Générez les configurations avec --enable-file-output et --enable-msg-broker ; lancez la capture BEV hors ligne avant DeepStream pour que l'exécution produise à la fois le MP4 DeepStream mosaïqué et le MP4 BEV dérivé de Kafka.
  • Dataset d'échantillon : supporter à la fois les datasets 4 caméras et 12 caméras fournis. Si l'utilisateur ne spécifie pas d'échantillon, exécutez d'abord l'échantillon 4 caméras, puis mentionnez dans le rapport final que l'échantillon 12 caméras est également disponible et peut être exécuté ensuite.
  • Détecteur : PeopleNetTransformer sauf si l'utilisateur demande RTDETR ou PeopleNet2.6.3 ; reportez le DETECTOR_MODEL sélectionné à travers la génération de configuration et la normalisation de modelInfo AMC camInfo. Pour la délégation d'étalonnage personnalisée, demandez à l'utilisateur de choisir le détecteur AutoMagicCalib au lieu de configurer par défaut en silence.
  • Source de données personnalisée : fichiers MP4 synchronisés. La gestion de flux en direct sort de cette première version de skill.
  • Délégation d'étalonnage : utilisez les skills AutoMagicCalib autonomes au lieu de dupliquer leur configuration ou flux de travail API.

Étape 4 : Préserver l'idempotence et les données utilisateur

  • Les vérifications de disponibilité peuvent être réexécutées sans risque.
  • La configuration peut installer des packages, tirer des conteneurs, télécharger des modèles et démarrer des services ; demandez d'abord.
  • La génération de configuration et les exécutions DeepStream mettent à jour les fichiers générés sous EXPERIMENT_DIR ; enregistrez RUN_STARTED_AT et ne rapportez pas les anciens artefacts comme succès de l'exécution actuelle.
  • L'arrêt normal arrête uniquement les processus d'exécution actuels et laisse Kafka, Mosquitto, les modèles, les datasets et les artefacts générés en place sauf si l'utilisateur demande explicitement d'arrêter les services ou supprimer les fichiers.
  • Les datasets personnalisés sont des données utilisateur. Copiez les variantes de format d'étalonnage manquantes par défaut, et demandez avant de renommer, overwrite, clarifier ou supprimer les fichiers dataset.

Critères de succès

  • Les vérifications de conditions préalables passent ou la condition préalable manquante est signalée avec une étape suivante étroite.
  • L'exécution DeepStream imprime finalement App run successful.
  • Le mode affichage affiche par défaut la grille OSD DeepStream et le visualiseur BEV en direct.
  • Le mode sans affichage produit une ${EXPERIMENT_DIR}/outVideos/tiled_display_raw.mp4 fraîche et tente la capture MP4 BEV par défaut.
  • Le topic Kafka mv3dt reçoit les métadonnées protobuf de l'exécution actuelle quand la sortie du courtier de messages est activée.
  • Le MP4 BEV est signalé comme réussi uniquement quand le processus de capture BEV séparé a produit des messages et images non nuls.

Sortie clé

  • Configurations générées : ${EXPERIMENT_DIR}/config_deepstream.txt, ${EXPERIMENT_DIR}/config_tracker.yml, ${EXPERIMENT_DIR}/config_msgconv.txt
  • MP4 mosaïqué DeepStream enregistré quand la sortie fichier est activée : ${EXPERIMENT_DIR}/outVideos/tiled_display_raw.mp4
  • MP4 BEV enregistré quand la capture hors ligne est utilisée : ${EXPERIMENT_DIR}/bev_outputs/trajectory_video_<timestamp>.mp4
  • Topic Kafka : mv3dt
  • Racines de sortie d'échantillon : ${REPO_ROOT}/experiments/deepstream/4cam et ${REPO_ROOT}/experiments/deepstream/12cam

Dépannage

Problème Première action
Conditions préalables de configuration manquantes Chargez references/setup.md et exécutez le chemin de vérification uniquement avant la configuration.
Docker ne peut pas accéder au GPU Corriger le NVIDIA Container Toolkit ou le runtime Docker avant de lancer les échantillons.
Fenêtre d'affichage manquante Vérifiez DISPLAY et /tmp/.X11-unix ; utilisez le chemin de sortie enregistrée sans affichage quand aucun affichage n'est disponible.
MP4 DeepStream manquant Confirmez que les configurations ont été générées avec --enable-file-output et vérifiez que l'artefact est plus récent que RUN_STARTED_AT.
MP4 BEV manquant ou messages nuls Lancez la capture BEV hors ligne avec --from-end avant DeepStream, utilisez un --first-message-timeout assez long, et vérifiez que les décalages Kafka se déplacent pendant l'exécution.
Le client Kafka ne montre aucun message Régénérez les configurations avec --enable-msg-broker et vérifiez que le topic mv3dt existe.
Le dataset personnalisé manque d'étalonnage Chargez references/amc-calibration-handoff.md ; demandez les choix de détecteur/paramètres avant de déléguer.
Les fichiers générés sont propriété root Signalez le problème de propriété et demandez avant d'appliquer un correctif d'autorisation de répertoire généré étroit.

Remarques de sécurité

  • Demandez avant les commandes utilisant sudo, installer des packages, tirer des conteneurs, télécharger des modèles, démarrer ou arrêter des services, modifier l'accès à l'affichage de l'hôte, overwrite les fichiers dataset, ou clarifier l'état généré.
  • Traitez la suppression de Kafka, Mosquitto, modèles, datasets ou sorties d'expérience comme un nettoyage destructif. Affichez les cibles exactes et obtenez une confirmation explicite avant de supprimer quoi que ce soit.
  • Avant d'exécuter docker run --privileged --net=host, déclarez explicitement que le conteneur obtient un accès large à l'hôte, aux périphériques, au réseau et au dépôt monté, puis obtenez l'approbation de l'utilisateur.
  • Ne clonez pas silencieusement les dépôts, ne changez pas les autorisations de l'hôte en dehors du dépôt, ne renommez ni ne supprimez les datasets utilisateur, et ne signalez pas les anciens artefacts comme succès de l'exécution actuelle.
  • Traitez les vidéos personnalisées, l'étalonnage, les visualisations enregistrées et les métadonnées de suivi comme des données locales potentiellement sensibles. Conservez les sorties locales sauf si l'utilisateur demande explicitement de les déplacer ou partager.
  • Si les correctifs de permission sont nécessaires pour les sorties générées, proposez le correctif le plus étroit du répertoire généré uniquement et demandez d'abord ; ne recommandez jamais les modifications de permission récursive largement lisibles par tous.

Skills connexes

  • amc-setup-calibration-stack - Lancer la pile AutoMagicCalib autonome quand l'étalonnage est nécessaire.
  • amc-run-video-calibration - Générer l'étalonnage à partir des MP4 locaux synchronisés avant de revenir à MV3DT.

<!-- signing marker -->

Skills similaires