Övning – Ändra DeepStream-exempelprogram

Slutförd

Nu när du har kört ett DeepStream-exempelprogram kan du ändra exemplen för att få ett annat beteende.

  1. Vi börjar med att visa exempelkonfigurationens struktur i en textredigerare. Vi gör en kopia av exempelkonfigurationen som användes i föregående avsnitt och tittar på några inställningar som vi kan ändra. Kör dessa kommandon:

    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
    

    Kommentar

    Här följer några tips för hur du använder vi när du redigerar filen source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt :

    • Tryck på i-tangenten för att placera redigeraren i infogningsläge. Sedan kan du göra ändringar.
    • Tryck på Esc för att avsluta Infogningsläget och återgå till Normalt läge.
    • Om du vill spara och avsluta anger du :x och trycker sedan på Retur.
    • Spara filen, ange :w och tryck sedan på Retur.
    • Om du vill stänga vi anger du :quit och trycker sedan på Retur.
  2. Observera de olika konfigurationsavsnitten och hur de bidrar till det övergripande programmet. Dessa avsnitt betecknas med hakparenteser ([]). Till exempel [application], , [tiled-display][source0], och [sink0]. De här avsnitten beskrivs i detalj i avsnittet Konfigurationsgrupper i DeepStream SDK-dokumentationen.

    Om du till exempel vill ändra indata för att använda en RTSP-videoström i stället för en lokal videofil ändrar du [tiled-display] och [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
    

    Gör sedan följande ändringar. (Observera ändringarna i fälten rows, columns, type, urioch 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. Kör den ändrade konfigurationen med hjälp av följande kommandon:

    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
    

Prova detta

Titta på de olika exempelkonfigurationerna som ingår i DeepStream SDK. Hur kan du ändra de här exemplen för att skapa ett smart hemsäkerhetssystem? Anta att du har flera RTSP-kameror som hanterar feeds över unika RTSP-slutpunkter. Kan du skapa ett DeepStream-program som använder dessa livevideoströmmar som indata och tillämpa slutsatsdragning för att identifiera personer och fordon?

Nästa steg

Slutför den här modulen och få din trofé genom att slutföra en slutlig kunskapstest.