Ejercicio: Modificación de las aplicaciones de ejemplo de DeepStream
Ahora que ha ejecutado una aplicación de ejemplo de DeepStream, puede modificar los ejemplos para obtener un comportamiento diferente.
Comencemos viendo la estructura de la configuración de ejemplo en un editor de texto. Haremos una copia de la configuración de ejemplo que se usó en la sección anterior y veremos algunos valores que podemos cambiar. Ejecute estos comandos:
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
Nota:
Estas son algunas sugerencias para usar vi al editar el archivo source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt:
- Pulse la tecla i para poner el editor en modo de inserción. A continuación, podrá realizar cambios.
- Pulse Esc para salir del modo de inserción y volver al normal.
- Para guardar y salir, escriba :x y, después, pulse Entrar.
- Guarde el archivo, escriba :w y presione Entrar.
- Para cerrar vi, escriba :quit y presione Entrar.
Tenga en cuenta las distintas secciones de configuración y cómo contribuyen a la aplicación general. Estas secciones se indican con corchetes (
[]
). Por ejemplo,[application]
,[tiled-display]
,[source0
] y[sink0]
. Estas secciones se explican con detalle en la sección Grupos de configuración de la documentación del SDK de DeepStream.Por ejemplo, para cambiar la entrada para usar una secuencia de vídeo RTSP en lugar de un archivo de vídeo local, cambie
[tiled-display]
y[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
Después, realice los siguientes cambios. (Observe los cambios en los campos
rows
,columns
,type
,uri
ynum-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
Ejecute la configuración modificada mediante estos comandos:
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
Pruebe esto
Vea las distintas configuraciones de ejemplo incluidas en el SDK de DeepStream. ¿Cómo podría cambiar estos ejemplos para crear un sistema de seguridad para el hogar inteligente? Supongamos que tiene varias cámaras RTSP que sirven fuentes a través de puntos de conexión RTSP únicos. ¿Podría crear una aplicación DeepStream que use esas secuencias de vídeo en directo como entrada y aplique la inferencia para detectar personas y vehículos?
Pasos siguientes
Para terminar este módulo y obtener su trofeo, realice una prueba de conocimientos final.