VPS sample using DeepStream for object detection

Attached you can find a sample for VPS that does object detection using Nvidia DeepStream. It can detect cars, people, bicycles and roadsigns. It is based on a DeepStream reference application. There is a README located in the vpsdeepstream folder that will give you more detailed information. While this sample should work with the current first drop of VPService, it produces metadata that for now cannot be returned to VMS (this will be available in 2020 R1 coming out in February). For now, you can use this sample to get inspired how to integrate DeepStream with VPS and print the metadata to the screen.

Hi Kristine,

can you elaborate on how you built your setup ? DeepStream 4.0.2 depends on cuda 10.1 and has dependencies that depend on 10.2 and when we deploy deepstream ourselves we have the deepstream-app samples not working (deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt -i ../../streams/sample_720p.mp4 with Sink1)

If we use nvcr.io/nvidia/deepstream:4.0.2-19.12-devel docker image, then the deepstream-app sample works fine. Unfortunately the vpsjpegtranscoder does not work.

There are probably isuses between some gstreamer libs when deepstream is installed.

Hi Christophe,

Our setup is using Deepstream 4.0.1 with CUDA version 10.2.89.

We haven’t tried running our samples on docker images, but I assume the deepstream docker image you are using will attempt to use the nvidia decoder plugin for the vpsjpegtranscoder, which won’t work. Have you tried running the vps deepstream sample on the docker image?

Hi Kristine,

yes, this gives me other errors:

0:00:00.225998846 203 0x7f453065a190 WARN v4l2 gstv4l2object.c:2925:gst_v4l2_object_probe_caps_for_format:decode:src Could not probe maximum capture size for pixelformat NM12

0:00:00.226060673 203 0x7f453065a190 WARN v4l2 gstv4l2object.c:2370:gst_v4l2_object_add_interlace_mode:0x7f4530259170 Failed to determine interlace mode

gstnvtracker: Loading low-level lib at libnvds_nvdcf.so

gstnvtracker: Optional NvMOT_RemoveStreams not implemented

gstnvtracker: Batch processing is ON

[NvDCF] Initialized

2020-02-18 12:54:30.723+00:00 INFO - 7fb601e9-9931-4d60-bfcf-204458f2903d Connection made by 192.168.20.124:61392

0:00:01.094318146 203 0x7f4530261630 ERROR v4l2 gstv4l2object.c:2072:gst_v4l2_object_get_interlace_mode: Driver bug detected - check driver with v4l2-compliance from http://git.linuxtv.org/v4l-utils.git

I’m testing with nvcr.io/nvidia/deepstream:4.0.2-19.12-devel and I followed the instructions at https://github.com/NVIDIA/nvidia-docker to deploy the nvidia docker toolkit on top of a 10.2 driver.

Hi Christophe,

When I run the vpsdeepstream with GST_DEBUG=2, I get the same errors/warnings. However despite of these errors the plugin seems to run fine and I get metadata through to Corporate. Can you check how far the data gets, for example put a printout in the chain function of vpsboundingboxes?

Hi Kristine,

you’re right. It works despite the error messages. If anyone knows how to avoid those messages it would be nicer. But anyway, as it works, we can play around this sample. Thanks for the support.

Best,

Christophe.

Hello!

I tried the plugin on deepstream 5.0. When I run the plugin, it’s stopping after h264parser executes, the last thing I see in the log is this:

0:00:27.266138757 1116 0x7fafd481d370 WARN h264parse gsth264parse.c:1237:gst_h264_parse_handle_frame: broken/invalid nal Type: 0 Unknown, Size: 199 will be dropped

0:00:27.266153657 1116 0x7fafd481d370 WARN h264parse gsth264parse.c:1237:gst_h264_parse_handle_frame: broken/invalid nal Type: 5 Slice IDR, Size: 7 will be dropped

0:00:27.266165598 1116 0x7fafd481d370 WARN h264parse gsth264parse.c:1237:gst_h264_parse_handle_frame: broken/invalid nal Type: 2 Slice DPA, Size: 27 will be dropped

0:00:27.266177099 1116 0x7fafd481d370 WARN h264parse gsth264parse.c:1237:gst_h264_parse_handle_frame: broken/invalid nal Type: 29 Invalid, Size: 179 will be dropped

Has anyone encountered this situation?

Thanks.