cdf-autonomous-vehicle-dataset-generation

Par nvidia · skills

Préparez les payloads, exécutez et surveillez le workflow Airflow de génération de datasets pour véhicules autonomes, et inspectez les résultats pour la récupération de clips de conduite et les variantes Cosmos3-Nano. Les clips existants sans récupération utilisent cdf-video-data-augmentation ; la génération d'événements ou d'anomalies par seed-image utilise cdf-event-video-generation.

npx skills add https://github.com/nvidia/skills --skill cdf-autonomous-vehicle-dataset-generation

Génération de Dataset pour Véhicule Autonome

Trouvez des clips de conduite similaires à une vidéo exemple, ou générez des variations de pluie, neige et lumière diurne. Préparez une charge utile (un fichier JSON de paramètres d'exécution), exécutez autonomous_vehicle_dataset_generation_dag_k8s, et inspectez les résultats. Le workflow utilise Cosmos-Curator, Cosmos Dataset Search (CDS) et Cosmos3-Nano. Il démarre et arrête ses propres services.

Pour augmenter les clips existants sans récupération, utilisez cdf-video-data-augmentation. Pour les vidéos d'événement ou d'anomalie à partir d'une image de départ, utilisez cdf-event-video-generation. Pour les demandes d'augmentation de clip où l'utilisateur dit qu'aucune recherche ou récupération n'est nécessaire, arrêtez et réorientez vers l'augmentation de données vidéo plutôt que de construire une charge utile de recherche AV ou de contourner l'exigence de recherche.

Utilisez un checkout correspondant au workflow déployé. Gardez la documentation du repository et les charges utiles disponibles quand cette skill est copiée dans un sandbox d'agent.

Détails des composants

Cette skill de workflow et ses références constituent le guide principal pour configurer et exécuter le workflow. Consultez une skill de composant uniquement quand la configuration demandée ou le diagnostic nécessite des détails spécifiques au composant non couverts ici, et n'inventez pas de clés ou valeurs.

Composant Couvre Skill du composant
Curation et Récupération CDF Fractionnement, embedding et curation des clips Cosmos-Curator ; ingestion de collection Cosmos Dataset Search et recherche de similarité cdf-curation-and-retrieval skill
Augmentation CDF Génération de variantes Cosmos3-Nano avec contrôles RGB ou WSM, et erreurs d'augmentation cdf-augmentation skill

Si le repository est inaccessible, continuez les tâches supportées par le guide de ce workflow. Identifiez la référence indisponible et le détail spécifique au composant non résolu uniquement quand ce guide manquant empêche de compléter le travail demandé ; n'inventez pas de paramètres de composant ou ne traitez pas l'accès au composant comme une condition préalable à l'utilisation ordinaire du workflow.

Exemples

Choisissez un démarrage dans le Payload Guide courant :

Demande Charge utile de démarrage
Trouver un clip de conduite similaire Retrieval
Générer une variation pluvieuse Rain
Générer une variation enneigée Snow
Générer une variation diurne Daylight

Tous les démarrages traitent une scène source et demandent une correspondance. Les démarrages de génération produisent une variante de 93 images à 1280x720. Pluie et lumière diurne utilisent des contrôles RGB, 24 images par seconde et 35 étapes d'inférence. Neige utilise des contrôles WSM, 10 images par seconde et 50 étapes d'inférence.

Demande exemple :

Préparez le démarrage de récupération en utilisant les profils de stockage inputs et outputs. Conservez les chemins exemple et utilisez la collection demo_av_retrieval_001. Retournez le JSON et les étapes Airflow ; ne pas soumettre.

Retournez la charge utile modifiée avec la génération désactivée et les étapes de soumission liées. Expliquez qu'une exécution réussie écrit search_result.json et les clips récupérés sous results/ dans son dossier de sortie.

Pour plus d'exemples, utilisez :

  • Workflow requests : les champs question couvrent la préparation de charges utiles de récupération, pluie, neige et lumière diurne et l'explication de leurs résultats.
  • Generation prompt example : une édition neige pour cosmos.prompt. Les démarrages de génération ci-dessus contiennent les invites complètes de pluie, neige et lumière diurne.
  • Retrieval walkthrough et RGB-generation walkthrough : disposition d'entrée, paramètres d'exécution, soumission Airflow et résultats attendus.

Instructions

Préparer la Charge Utile

Copiez le démarrage sélectionné. Pour les exécutions AV sauvegardées par S3, utilisez des URI s3://<bucket>/<path> explicites pour chaque chemin de stockage, y compris input_video_path, query_video et output_directory. Remplacez tous les placeholders msc:// dans la charge utile de démarrage ; utilisez le nom du bucket de sauvegarde réel, qui peut différer du nom du profil MSC. Le runtime AV courant ne supporte pas les chemins msc:// dans tout le workflow.

Pour les demandes Azure, suivez Azure Storage with AV Dataset Generation. Ce guide nécessite des changements de déploiement et de code avant l'exécution ; changer uniquement les préfixes d'URI n'active pas le support Azure.

Définissez les chemins de l'utilisateur et choisissez un nom de collection unique. Gardez les autres paramètres de démarrage sauf si l'utilisateur demande un changement documenté. Demandez les entrées manquantes ou clarifiez si l'utilisateur veut une récupération ou une génération si nécessaire.

  • Les vidéos sources utilisent <scene-id>/camera_front_wide_120fov.mp4 et doivent faire au moins 9,3 secondes. Gardez les sorties séparées des entrées.
  • Les démarrages utilisent search_mode: "embedding". La requête est traitée séparément de limit ; tous les clips de sa source sont exclus. Aucune correspondance restante signifie que l'exécution échoue.
  • La récupération garde cosmos.enabled: false. La génération le définit à true et utilise cosmos.prompt pour l'édition demandée. num_clips sélectionne les correspondances ; num_augmentation produit des variantes avec le même prompt.
  • Pour les ajustements documentés, lisez le Payload Guide. Il décrit aussi l'indexation avec search_mode: "none". Les URL de service externe, la sélection de modèle et les templates de génération personnalisés ne sont pas des options de charge utile.

Pour une demande réservée à la charge utile, retournez le JSON modifié et les conditions préalables non résolues sans accéder au cluster ou soumettre une exécution.

Pour les réponses de charge utile de génération, expliquez le mécanisme de contrôle sélectionné :

  • RGB : les clips récupérés sont rééchantillonnés à cosmos.fps sans changer la vitesse de lecture, puis utilisés pour dériver les contrôles d'edge. Aucun manifest WSM n'est nécessaire.
  • WSM : le wsm/wsm-manifest.json de chaque scène source identifie les contrôles préparés correspondant à la caméra, au débit d'images, à la taille et au span de clip sélectionné. Le workflow extrait la section video-contrôle correspondante ; il ne rend pas les contrôles.

Vérifier les Conditions Préalables

Lisez Prerequisites pour la capacité GPU, le stockage et l'installation FFmpeg partagée à /opt/ffmpeg. Réutilisez le contrôleur existant. Utilisez la orchestration preflight partagée quand la vérification de la préparation est nécessaire et orchestration setup quand l'installation ou la connexion est demandée.

La génération par défaut utilise cosmos.control_mode: "rgb". Le workflow rééchantillonne les clips récupérés à cosmos.fps sans changer la vitesse de lecture et dérive les contrôles d'edge à partir d'eux. Aucun manifest WSM n'est nécessaire.

Seul cosmos.control_mode: "wsm" nécessite des contrôles World Scenario Model (WSM) préparés. Chaque scène source admissible a besoin de wsm/wsm-manifest.json reliant sa vidéo à un contrôle correspondant à la caméra, au débit d'images et à la taille et couvrant le span sélectionné. Le workflow extrait la section correspondante ; il ne rend pas les contrôles. Suivez WSM Controls pour la préparation. Signalez les contrôles manquants ou mal alignés avant la soumission WSM.

Lors de la vérification de la préparation, vérifiez l'accès au stockage pour les chemins configurés. Accepter le format de charge utile ne confirme pas que le workflow peut les lire. Gardez les identifiants dans une configuration protégée, en dehors des charges utiles.

Exécuter et Monitorer

Une demande d'exécution explicite autorise la soumission. Vérifiez que le workflow Airflow (DAG) déployé supporte la charge utile. Depuis la racine du repository, exécutez python3 skills/cdf-orchestration-preflight/scripts/storage_check.py --payload <payload.json> et soumettez uniquement s'il affiche Storage mapping: ready. Une ligne UNMAPPED signifie que l'exécution échouerait à l'exécution ; signalez le champ non mappé et les préfixes configurés. Utiliser ce bucket nécessite de changer la configuration de stockage du contrôleur et de le redéployer ; avec l'autorisation de l'utilisateur, routez ce changement vers orchestration setup, puis réexécutez la vérification. Ensuite, suivez Getting Started pour l'interface Airflow ou Direct Airflow API pour la soumission API. Si l'accès à l'exécution n'est pas disponible, retournez la charge utile et les étapes de l'interface, y compris comment suivre l'état de la tâche dans la vue Grid ou Graph d'Airflow, sans affirmer qu'une exécution a commencé.

Enregistrez l'ID d'exécution et continuez à l'observer jusqu'au succès ou à l'échec terminal dans la fenêtre d'observation demandée par l'utilisateur. Un sondeur en arrière-plan seul ne complète pas une demande de monitoring de l'exécution ; attendez son résultat avant de terminer le tour. Si l'observation doit se terminer tôt en raison d'une limite d'observation ou d'une perte d'accès, signalez l'ID d'exécution, l'état observé en dernier et comment reprendre la vérification. Ne promettez pas une mise à jour ultérieure à moins qu'un mécanisme de continuation supporté ne soit actif.

Si une réponse de soumission est incertaine, recherchez le même ID et comparez sa charge utile avant de réessayer. Ne créez pas d'exécution dupliquée. Pour les demandes de statut uniquement, inspectez l'exécution existante.

En cas d'échec, lisez le journal de la première tâche échouée et signalez la cause appuyée par cette preuve. Le nettoyage réussi seul n'établit pas le succès du workflow. Pour l'annulation, marquez la tâche en cours d'exécution comme échouée comme documenté pour permettre au nettoyage de s'exécuter ; ne supprimez pas la DagRun ou le DAG.

Lire les Résultats

Utilisez le dossier d'exécution sous output_directory, avec les caractères de nom de fichier non supportés d'ID d'exécution remplacés par - :

Sortie Signification
search_result.json Clips correspondants et emplacements sources, ou un résumé d'indexation.
results/ Clips récupérés quand collect_result_clips est true.
cosmos3-nano/videos/ Vidéos acceptées qui passent les vérifications de plausibilité physique et de média ; peut être vide.
cosmos3-nano/result_manifest.json Sorties outputs acceptées avec chemins published_video, tâches rejected et failed, et résultats de validation quand un manifest est publié.

Signalez l'état d'exécution, les emplacements de sortie et les résultats de validation disponibles. La génération nécessite une validation vidéo et des vérifications de plausibilité physique. Les candidats doivent scorer strictement au-dessus de cosmos.plausibility_threshold (défaut 0,5) pour être acceptés. Les candidats rejetés sont filtrés ; une exécution peut réussir sans vidéos acceptées. Les résultats d'évaluation manquants ou invalides, les erreurs d'évaluateur et les défaillances de validation médias font toujours échouer l'exécution. Regardez les médias générés accessibles pour confirmer l'édition demandée et la préservation de la scène ; la plausibilité physique seule n'établit pas l'une ou l'autre. Déclarez quand l'examen visuel n'a pas été effectué.

Skills similaires