Exercice - Modifier les exemples d’applications DeepStream

Effectué

Maintenant que vous avez exécuté un exemple d’application DeepStream, vous pouvez modifier les exemples pour obtenir un comportement différent.

  1. 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.
  2. 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 et num-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
    
    
  3. 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.