Oefening: de DeepStream-voorbeeldtoepassingen wijzigen

Voltooid

Nu u een DeepStream-voorbeeldtoepassing hebt uitgevoerd, kunt u de voorbeelden wijzigen om ander gedrag te krijgen.

  1. Laten we beginnen met het bekijken van de structuur van de voorbeeldconfiguratie in een teksteditor. We maken een kopie van de voorbeeldconfiguratie die in de vorige sectie wordt gebruikt en bekijken enkele instellingen die we kunnen wijzigen. Voer deze opdrachten uit:

    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
    

    Notitie

    Hier volgen enkele tips voor het gebruik van vi wanneer u het bestand source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt bewerkt:

    • Druk op de i-toets om de editor in de modus Invoegen te plaatsen. Vervolgens kunt u wijzigingen aanbrengen.
    • Druk op Esc om de modus Invoegen af te sluiten en terug te keren naar de normale modus.
    • Als u wilt opslaan en afsluiten, voert u :x in en drukt u op Enter.
    • Sla het bestand op, voer :w in en druk op Enter.
    • Als u vi wilt sluiten, typt u :quit en drukt u op Enter.
  2. Let op de verschillende configuratiesecties en hoe ze bijdragen aan de algehele toepassing. Deze secties worden aangeduid met vierkante haken ([]). Bijvoorbeeld, [application], [tiled-display][source0]en [sink0]. Deze secties worden uitgebreid beschreven in de sectie Configuratiegroepen van de DeepStream SDK-documentatie.

    Als u bijvoorbeeld de invoer wilt wijzigen voor het gebruik van een RTSP-videostream in plaats van een lokaal videobestand, wijzigt [tiled-display] u en [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
    

    Breng vervolgens de volgende wijzigingen aan. (Let op de wijzigingen in de rowsvelden , columns, typeen urinum-sourcesvelden.)

    [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. Voer de gewijzigde configuratie uit met behulp van deze opdrachten:

    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
    

Probeer dit eens

Bekijk de verschillende voorbeeldconfiguraties die zijn opgenomen in de DeepStream SDK. Hoe kunt u deze voorbeelden wijzigen om een smart-home-beveiligingssysteem te maken? Stel dat u meerdere RTSP-camera's hebt die feeds leveren via unieke RTSP-eindpunten. Kunt u een DeepStream-toepassing maken die gebruikmaakt van deze live videostreams als invoer en deductie toepassen om personen en voertuigen te detecteren?

Volgende stappen

Voltooi een laatste kennistoets om deze module te voltooien en uw trofee te verdienen.