TrafficcamNet 420fps on Jetson AGX Xavier?

Hello Everyone,
I would like to know If I made any mistakes during my tests about the performances of TrafficCamNet on my Jetson AGX Xavier, because NVIDIA declares that with this network on Xavier I can get 420FPS but I did not get any results better than 338 fps through the deepstream sample app.

Nvidia Link:

I configured the pgie file and the deepstream file as following:
pgie config file:

config_infer_primary_trafficcamnet.txt (1.1 KB)

deepstream_config_file

deepstream_app_source1_trafficcamnet.txt (2.7 KB)

My Environment:
Nvidia Jetson AGX Xavier
Deepstream 4.0
Jetpack 4.2.2

Thanks

Please run
$ sudo nvpmodel -q

to check the poewr mode.

If not MAXN, please
$sudo nvpmodel -m 0

Then,
$jetson_clocks

Hello Morgan,
My Jetson Xavier is already working in that way.
I really would like to know if you with your environment can analyse 420 fps with trafficCamNet, because I really can not overcame the 338 fps threshold.

Ric

Suggest you running experiment to verify the model(https://ngc.nvidia.com/catalog/models/nvidia:tlt_trafficcamnet) firstly.
Reference step:
Accelerating Peoplnet with tlt for jetson nano - #13 by Morganh

Note, above is for peoplenet. Yours should be trafficCamNet.

Hello @Morganh
I did not retrain the default trafficCamNet, I am currently using the trafficCamNet int8 precision on my Jetson Xavier.
If you can, could you please tell me if you get 420FPS with the standard model that NVIDIA provided?
Ric

In my step mentioned above, it is not needed to retrain. Just download the ngc pretrained model and verify its fps.
I will run experiment to check.

Just run below experiment.

  1. Download the pruned etlt model
    wget https://api.ngc.nvidia.com/v2/models/nvidia/tlt_trafficcamnet/versions/pruned_v1.0/files/resnet18_trafficcamnet_pruned.etlt

  2. Generate trt engine
    $ cat generate_trt_engine.sh
    tlt-converter resnet18_trafficcamnet_pruned.etlt
    -k tlt_encode
    -c cal.bin
    -o output_bbox/BiasAdd,output_cov/Sigmoid
    -d 3,544,960
    -i nchw
    -m 8
    -t int8
    -e resnet18_trafficnet.engine
    -b 64
    -w 1000000000

  3. Check the fps @bs2. The fps is about 429.
    $ /usr/src/tensorrt/bin/trtexec --loadEngine=resnet18_trafficnet.engine --int8 --batch=2 --useSpinWait

that’s perfect thank you, I am going to try.
Ric

Hi @Morganh just one more question, where I can find the bash generate_trt_engine.sh?
Ric

See above. I already paste it.

that’s right.
Thanks
Ric

Hello @Morganh
I have a problem with TrafficCamNet, I have compared the results between TrafficCamNet and PeopleNet
and I realised that:
if do not set any tracker and any inference interval TrafficCamNet is faster then PeopleNet as expected but If I set NVDCF tracker PeopleNet become faster then TrafficCamNet, and this behaviour is unexpected, I am going to share with you my results:
PLATFORM

  • Jetson AGX Xavier Jetpack 4.4
  • resource : uri=file://…/…/streams/sample_1080p_h264.mp4
    ENGINES
  • People Net FP16 precision (I did non found any way to optimise to int8 precision)
  • TrafficCamNet int8 precision
    No TRACKER and no interval
  • PeopleNet 128 FPS
  • TrafficCamNet 242 FPS
    NVDCF tracker with interval 0
  • PeopleNet 54 FPS
  • TrafficCamNet 49 FPS
    NVDCF tracker with interval 2
  • PeopleNet 74 FPS
  • TrafficCamNet 59 FPS
    NVDCF tracker with interval 4
  • PeopleNet 85 FPS
  • TrafficCamNet 60 FPS

I hope that you can help me to understand.
Ric

@Rik
Above seems to be not an apple to apple comparison.
Please use the same int8 precision to check. Currently, TLT 2.0 is already released.
For peoplenet int8 models, they are also available now.
See https://ngc.nvidia.com/catalog/models/nvidia:tlt_peoplenet/files?version=pruned_v2.0

Ok I’ll check with PeopleNet int8 precision and compare it again with TrafficCamNet.
I’ll let you know soon.
Rick