Exercício - Modificar os aplicativos de exemplo do DeepStream

Concluído

Agora que você executou um aplicativo de exemplo DeepStream, você pode modificar os exemplos para obter um comportamento diferente.

  1. Vamos começar visualizando a estrutura da configuração de exemplo em um editor de texto. Faremos uma cópia da configuração de exemplo usada na seção anterior e veremos algumas configurações que podemos alterar. Execute estes 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

    Aqui estão algumas dicas para usar o vi quando você edita o arquivo source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt :

    • Selecione a tecla i para colocar o editor no modo Inserir. Em seguida, você poderá fazer alterações.
    • Selecione Esc para sair do modo Inserir e retornar ao modo Normal.
    • Para guardar e sair, introduza :x e, em seguida, selecione Enter.
    • Salve o arquivo, digite :w e selecione Enter.
    • Para fechar vi, digite :quit e selecione Enter.
  2. Observe as várias seções de configuração e como elas contribuem para a aplicação geral. Estas secções são indicadas entre parênteses ([]). Por exemplo, , [application], [source0[tiled-display]] e [sink0]. Essas seções são explicadas em detalhes na seção Grupos de configuração da documentação do SDK do DeepStream.

    Por exemplo, para alterar a entrada para usar um fluxo de vídeo RTSP em vez de um arquivo de vídeo local, altere [tiled-display] e [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
    

    Em seguida, faça as seguintes alterações. (Observe as alterações nos rowscampos , , , , uricolumnstypee .)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. Execute a configuração alterada usando estes 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
    

Experimente isto

Observe as várias configurações de exemplo incluídas no SDK do DeepStream. Como você pode alterar esses exemplos para criar um sistema de segurança de casa inteligente? Suponha que você tenha várias câmeras RTSP que servem feeds em pontos de extremidade RTSP exclusivos. Você poderia criar um aplicativo DeepStream que usa esses fluxos de vídeo ao vivo como entrada e aplicar inferência para detetar pessoas e veículos?

Próximos passos

Para terminar este módulo e ganhar o seu troféu, complete uma verificação final de conhecimentos.