Exercício - Modificar os aplicativos de exemplo do DeepStream
Agora que você executou um aplicativo de exemplo DeepStream, você pode modificar os exemplos para obter um comportamento diferente.
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 :
- Pressione a tecla i para colocar o editor no modo Inserir. Em seguida, você poderá fazer alterações.
- Pressione Esc para sair do modo Inserir e retornar ao modo Normal.
- Para guardar e sair, introduza :x e, em seguida, prima Enter.
- Salve o arquivo, digite :w e pressione Enter.
- Para fechar o vi, digite :quit e pressione Enter.
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
rows
campos ,columns
,type
,uri
, enum-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
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.