Segmentation fault when do OTA with segmentation model

Could you guys help me confirm if OTA update supports segmentation model?

• Hardware Platform (GPU)
• DeepStream Version: nvcr.io/nvidia/deepstream:6.3-gc-triton-devel

• Issue Type( questions, bugs)
I modified deepstream-test5 example a bit like this:

  • add pre-process plugin before nvinfer
  • using model segmentation instead in the config-file properties of nvinfer plugin

Problem: Segmentation fault when switching segmentation model with deepstream example

• 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)
Could you download my deepstream-test6 example to reproduce the issue?
Run app:

./deepstream-test5-app -c configs/test5_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt -p 0 -o configs/test5_ota_override_config.txt 

Then modifiy the ota config

vim configs/test5_ota_override_config.txt

deepstream-test6.zip (77.2 KB)

sorry for the late reply. could you use gdb to get the crash stack?

here it is:

please refer to section 8 of test5 README. there are some limitation for OTA functionality.

I didn’t use any other models, I just switched the same model but got this error

how did you operate exactly? let me have a try.

just download my example app, I just add nvpreprocess before nvinfer then run app like README and do OTA file modification

nvinfer plugin is opensource. I can reproduce this issue. it is related to if (oldParams.numDetectedClasses){} part code in DsNvInferImpl::initNewInferModelParams. when I removed this part code. the app run fine. will continue to check.

let me know if you have final solution, thank you so much

numDetectedClasses is only for detector and Instance Segmentation model. here is the final solution.
In function DsNvInferImpl::initNewInferModelParams of /opt/nvidia/deepstream/deepstream/sources/gst-plugins/gst-nvinfer/gstnvinfer_impl.cpp, please modify
if (oldParams.numDetectedClasses) {
to
if ((oldParams.networkType == NvDsInferNetworkType_Detector
|| oldParams.networkType == NvDsInferNetworkType_InstanceSegmentation)
&& oldParams.numDetectedClasses) {
then rebuild according to readme, then replace /opt/nvidia/deepstream/deepstream/lib/gst-plugins/libnvdsgst_infer.so with the new so.

2 Likes

thank you so much, I will give a try and respond to you soon

Sorry for the late reply, Is this still an DeepStream issue to support? Thanks!

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.