The current approaches I’ve tried is,
- Modified the code of deepstream-test2 app to work on a single classifier. The app runs perfectly fine. I made the classifier to run on the person. I can see the results.
- Train a custom classifier using caffe and I get a caffe model and prototxt file and a mean file.
- Modify the dstest2_sgie1_config.txt config file to take the custom classifier as input. Dropping the config below.
- Added labels.txt file according to my classifier
Here is the classifier config file,
[property] gpu-id=0 net-scale-factor=1 # model-file=/opt/nvidia/deepstream/deepstream-4.0/samples/models/Secondary_CarColor/resnet18.caffemodel # proto-file=/opt/nvidia/deepstream/deepstream-4.0/samples/models/Secondary_CarColor/resnet18.prototxt # mean-file=/opt/nvidia/deepstream/deepstream-4.0/samples/models/Secondary_CarColor/mean.ppm # labelfile-path=/opt/nvidia/deepstream/deepstream-4.0/samples/models/Secondary_CarColor/labels.txt # int8-calib-file=/opt/nvidia/deepstream/deepstream-4.0/samples/models/Secondary_CarColor/cal_trt.bin model-file=/home/mufasa/Documents/deepstream-test2/resnet18.caffemodel proto-file=/home/mufasa/Documents/deepstream-test2/resnet18.prototxt mean-file=/home/mufasa/Documents/deepstream-test2/mean.ppm labelfile-path=/home/mufasa/Documents/deepstream-test2/labels.txt batch-size=16 # 0=FP32 and 1=INT8 mode network-mode=1 input-object-min-width=64 input-object-min-height=64 process-mode=2 model-color-format=1 gpu-id=0 gie-unique-id=2 operate-on-gie-id=1 operate-on-class-ids=2 is-classifier=1 output-blob-names=predictions/Softmax classifier-async-mode=1 classifier-threshold=0.51 gie-mode=2
One difference that I did observe were the content of the mean.ppm file,
I used caffe’s compute_image_mean to get the mean file.
Coming to the actual issue, whenever I try to run the app after changing the config, I get the following error,
ERROR from element secondary1-nvinference-engine: Failed to create NvDsInferContext instance Error details: gstnvinfer.cpp(692): gst_nvinfer_start (): /GstPipeline:dstest2-pipeline/GstNvInfer:secondary1-nvinference-engine: Config file path: dstest2_sgie1_config.txt, NvDsInfer Error: NVDSINFER_CONFIG_FAILED Returned, stopping playback Deleting pipeline
Any help would be appreciated. Thanks.
Apart from this I also have the classifier as a tensorrt engine file. Can I use this instead? If yes, how?
Edit: I’ve also changed the output-blob-names to the layer name in the model. But had forgotten to mention it.