Re-ID model engine failing in Deepstream 6.2

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) GPU
• DeepStream Version 6.2
• JetPack Version (valid for Jetson only)
• TensorRT Version 8.5.1-1+cuda11.8
• NVIDIA GPU Driver Version (valid for GPU only) 535.183.01
• Issue Type( questions, new requirements, bugs) bugs
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
I am trying to change the re-ID model in the NvDCF tracker config to resnet50_market1501_aicity156.onnx.

Since Deepstream 6.2 doesn’t support onnx and I can’t update to newer version, I created an engine file using command ‘trtexec --onnx=resnet50_market1501_aicity156.onnx --saveEngine=ai_city_reid_model.engine’

The I updated my Re-ID in the config file as below
ReID:
reidType: 2 # The type of reid among { DUMMY=0, NvDEEPSORT=1, Reid based reassoc=2, both NvDEEPSORT and reid based reassoc=3}

[Reid Network Info]

batchSize: 1 # Batch size of reid network
workspaceSize: 1000 # Workspace size to be used by reid engine, in MB
reidFeatureSize: 256 # Size of reid feature
reidHistorySize: 100 # Max number of reid features kept for one object
inferDims: [3, 256, 128] # Reid network input dimension CHW or HWC based on inputOrder
networkMode: 0 # Reid network inference precision mode among {fp32=0, fp16=1, int8=2 }

[Input Preprocessing]

inputOrder: 0 # Reid network input order among { NCHW=0, NHWC=1 }. Batch will be converted to the specified order before reid input.
colorFormat: 0 # Reid network input color format among {RGB=0, BGR=1 }. Batch will be converted to the specified color before reid input.
offsets: [0.0, 0.0, 0.0] # Array of values to be subtracted from each input channel, with length equal to number of channels
netScaleFactor: 1.0000 # Scaling factor for reid network input after substracting offsets
keepAspc: 1 # Whether to keep aspc ratio when resizing input objects for reid

[Paths and Names]

inputBlobName: “input” # Reid network input layer name
outputBlobName: “fc_pred” # Reid network output layer name
# Absolute path to reid network uff model
modelEngineFile: “/opt/nvidia/deepstream/deepstream/samples/models/Tracker/ai_city_reid_model.engine”

But when I run the deepstream app I get the following error

gstnvtracker: Loading low-level lib at /opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so
gstnvtracker: Batch processing is ON
gstnvtracker: Past frame output is ON
[NvMultiObjectTracker] Loading TRT Engine for tracker ReID…
ERROR: [TRT]: 1: [stdArchiveReader.cpp::StdArchiveReader::32] Error Code 1: Serialization (Serialization assertion magicTagRead == kMAGIC_TAG failed.Magic tag does not match)
ERROR: [TRT]: 4: [runtime.cpp::deserializeCudaEngine::66] Error Code 4: Internal Error (Engine deserialization failed.)
~~ CLOG[src/modules/ReID/ReID.cpp, loadTRTEngine() @line 465]: Engine build failed
[NvMultiObjectTracker] Load engine failed. Create engine again.

!![ERROR] UFF file does not exist
[NvMultiObjectTracker] De-initialized
An exception occurred. UFF file does not exist
gstnvtracker: Failed to initialize tracker context!
gstnvtracker:: Failed to create batch context. Shutting down processing.
** ERROR: main:716: Failed to set pipeline to PAUSED
Quitting
nvstreammux: Successfully handled EOS for source_id=0
App run failed

Can you have a try with DeepSteam 7.1? We recommand you upgrade to latest DeepStream version.

I cannot upgrade to Deepstream 7.1 now because there are other modules compatible only with 6.2 in the project.

Is there any possible solution?

The model I am trying to use is deployable V1.2

I created the engine file from onnx using the command

trtexec --onnx=my_model.onnx --saveEngine=/opt/nvidia/deepstream/deepstream/samples/models/Tracker/ai_city_reid_model.engine

Later I updated the tracker config as mentioned in my original post. But the engine loading fails everytime

Why you need replace the Re-ID model? Can you share more on your use case?

I am trying to evaluate effectiveness of different reID models on KITTI object tracking dataset. Since the existing model is for person reidentification, I would like to try to add other vehicle reidentification model in the future. Since most of the other models are available in onnx format, I want to find a way of using it within Deepstream 6.2 and hence the first model that I tried with is the one mentioned above.

I would like to suggest to use latest DeepStream version for future work as we most likely provide support based on latest DeepStream version and TensorRT version.