Übung: Ändern der DeepStream-Beispielanwendungen

Abgeschlossen

Nachdem Sie nun eine DeepStream-Beispielanwendung ausgeführt haben, können Sie die Beispiele ändern, um ein anderes Verhalten zu erhalten.

  1. Werfen wir zunächst in einem Text-Editor einen Blick auf die Struktur der Beispielkonfiguration. Wir erstellen eine Kopie der im vorherigen Abschnitt verwendeten Beispielkonfiguration und sehen uns einige Einstellungen an, die wir ändern können. Führen Sie diese Befehle aus:

    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
    

    Hinweis

    Im Folgenden finden Sie einige Tipps zur Verwendung von vi, wenn Sie die Datei source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt bearbeiten:

    • Drücken Sie die Taste i, um den Editor in den Einfügemodus zu versetzen. Dies ermöglicht Ihnen das Vornehmen von Änderungen.
    • Wählen Sie ESC aus, um den Einfügemodus zu verlassen und wieder in den Normalmodus zurück zu wechseln.
    • Geben Sie :x ein, um zu speichern und zu schließen, und drücken Sie dann die EINGABETASTE.
    • Speichern Sie die Datei, geben Sie :x ein, und drücken Sie dann die EINGABETASTE.
    • Zum Schließen von vi geben Sie :quit ein und drücken dann die EINGABETASTE.
  2. Beachten Sie die verschiedenen Konfigurationsabschnitte und deren Beitrag zur Gesamtanwendung. Diese Abschnitte sind durch Klammern ([]) gekennzeichnet. Beispielsweise [application], [tiled-display], [source0] und [sink0]. Diese Abschnitte werden im Abschnitt Konfigurationsgruppen der DeepStream SDK-Dokumentation ausführlich erläutert.

    Wenn Sie beispielsweise die Eingabe so ändern möchten, dass anstelle einer lokalen Videodatei ein RTSP-Videostream verwendet wird, ändern Sie [tiled-display] und [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
    

    Nehmen Sie dann folgende Änderungen vor. (Beachten Sie die Änderungen in den Feldern rows, columns, type, uri und 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. Führen Sie die geänderte Konfiguration mit den folgenden Befehlen aus:

    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
    

Probieren Sie es aus

Sehen Sie sich die verschiedenen Beispielkonfigurationen an, die im DeepStream SDK enthalten sind. Wie können Sie diese Beispiele ändern, um ein Sicherheitssystem für ein Smart Home zu erstellen? Angenommen, Sie verfügen über mehrere RTSP-Kameras, die Feeds über eindeutige RTSP-Endpunkte bedienen. Könnten Sie eine DeepStream-Anwendung erstellen, die diese Livevideostreams als Eingabe verwendet und Rückschlüsse zum Erkennen von Personen und Fahrzeugen anwendet?

Nächste Schritte

Zum Abschließen dieses Moduls und Erwerben Ihrer Punkte führen Sie eine abschließende Wissensbeurteilung durch.