Ejercicio: Modificación de las aplicaciones de ejemplo de DeepStream

Completado

Ahora que ha ejecutado una aplicación de ejemplo de DeepStream, puede modificar los ejemplos para obtener un comportamiento diferente.

  1. 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.
  2. 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 y 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. 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.