Exercice - Modifier les exemples d’applications DeepStream
Maintenant que vous avez exécuté un exemple d’application DeepStream, vous pouvez modifier les exemples pour obtenir un comportement différent.
Commençons par examiner la structure de l’exemple de configuration dans un éditeur de texte. Nous allons faire une copie de l’exemple de configuration utilisé dans la section précédente et passer en revue certains paramètres que vous pouvez modifier. Exécutez les commandes suivantes :
cd /opt/nvidia/deepstream/deepstream-6.0/samples/configs/deepstream-app sudo cp source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt sudo vi source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt
Notes
Voici quelques conseils pour utiliser vi quand vous modifiez le fichier source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt :
- Appuyez sur la touche i pour faire passer l’éditeur en mode Insertion. Vous pouvez alors apporter des modifications.
- Appuyez sur Échap pour quitter le mode Insertion et revenir au mode Normal.
- Pour enregistrer et quitter, entrez :x, puis appuyez sur Entrée.
- Enregistrez le fichier, entrez :w, puis appuyez sur Entrée.
- Pour fermer vi, entrez :quit, puis appuyez sur Entrée.
Notez les différentes sections de configuration et la façon dont elles contribuent à l’application globale. Ces sections sont dénotées par des crochets (
[]
). Par exemple :[application]
,[tiled-display]
,[source0
] et[sink0]
. Ces sections sont expliquées en détail dans la section Groupes de configuration de la documentation du kit SDK DeepStream.Par exemple, pour changer l’entrée afin d’utiliser un flux vidéo RTSP au lieu d’un fichier vidéo local, modifiez
[tiled-display]
et[source0]
:[tiled-display] enable=1 rows=2 columns=2 width=1280 height=720 gpu-id=0 #(0): nvbuf-mem-default - Default memory allocated, specific to particular platform #(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla #(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla #(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla #(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson nvbuf-memory-type=0 [source0] enable=1 #Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP type=3 uri=file://../../streams/sample_1080p_h264.mp4 num-sources=4 #drop-frame-interval=2 gpu-id=0 # (0): memtype_device - Memory type Device # (1): memtype_pinned - Memory type Host Pinned # (2): memtype_unified - Memory type Unified cudadec-memtype=0
Ensuite, effectuez les modifications suivantes. (Notez les modifications apportées aux champs
rows
,columns
,type
,uri
etnum-sources
.)[tiled-display] enable=1 rows=1 columns=1 width=1280 height=720 gpu-id=0 #(0): nvbuf-mem-default - Default memory allocated, specific to particular platform #(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla #(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla #(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla #(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson nvbuf-memory-type=0 [source0] enable=1 #Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP type=4 uri=rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov num-sources=1 #drop-frame-interval=2 gpu-id=0 # (0): memtype_device - Memory type Device # (1): memtype_pinned - Memory type Host Pinned # (2): memtype_unified - Memory type Unified cudadec-memtype=0
Exécutez la configuration modifiée en utilisant les commandes suivantes :
cd /opt/nvidia/deepstream/deepstream-6.0/samples/configs/deepstream-app deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt
Essayez ceci
Examinez les différents exemples de configurations inclus dans le kit SDK DeepStream. Comment pouvez-vous modifier ces exemples pour créer un système de sécurité domotique ? Supposons que vous ayez plusieurs caméras RTSP qui diffusent des flux sur des points de terminaison RTSP uniques. Pouvez-vous créer une application DeepStream qui utilise ces flux vidéo en direct comme entrée et appliquer l’inférence pour détecter les personnes et les véhicules ?
Étapes suivantes
Pour terminer ce module et gagner votre trophée, effectuez un contrôle des connaissances final.