Exercício – Modificar os aplicativos de exemplo do DeepStream
Agora que você já executou um aplicativo de exemplo do DeepStream, modifique os exemplos para obter um comportamento diferente.
Vamos começar exibindo a estrutura da configuração do exemplo em um editor de texto. Faremos uma cópia da configuração do exemplo usada na seção anterior e vamos ver 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
Observação
Aqui estão algumas dicas para usar o vi ao editar 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. Assim, você poderá fazer alterações.
- Pressione Esc para sair do modo Inserir e retornar ao modo Normal.
- Para salvar e encerrar, digite :x e pressione Enter.
- Salve o arquivo, digite :w e pressione Enter.
- Para fechar, digite :quit e pressione Enter.
Observe as várias seções de configuração e como elas contribuem para o aplicativo em geral. Essas seções são demarcadas com colchetes (
[]
). Por exemplo,[application]
,[tiled-display]
,[source0
] e[sink0]
. Essas partes 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
Depois, faça as alterações a seguir. (Observe as alterações nos campos
rows
,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 fazer isto
Observe as diversas configurações do exemplo incluídas no SDK do DeepStream. Como você pode alterar esses exemplos para criar um sistema de segurança doméstico inteligente? Suponha que você tenha várias câmeras RTSP que atendem feeds por meio de pontos de extremidade RTSP exclusivos. Você poderia criar um aplicativo do DeepStream que use esses fluxos de vídeo ao vivo como entrada e aplicar inferência para detectar pessoas e veículos?
Próximas etapas
Para concluir este módulo e ganhar seu troféu, faça a última verificação de conhecimentos.