Übung: Ändern der DeepStream-Beispielanwendungen
Nachdem Sie nun eine DeepStream-Beispielanwendung ausgeführt haben, können Sie die Beispiele ändern, um ein anderes Verhalten zu erhalten.
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.
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
undnum-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
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.