Please provide complete information as applicable to your setup.
**• Hardware Platform ------> GPU
**• DeepStream Version -----> 7.0 • TensorRT Version -------> 8.6
**• NVIDIA GPU Driver Version ------> 545
What I want to achieve is I have nvinfer1 ----> nvanalytics1 -----> nvinfer2 ----> nvanalytics2 ------> tracker
for my nvanalytics1 my classid is 0. for nvanalytics2 also my classid is 0.
But What happening is my nvanalytics1’s object is coming in roi name of nvanalytics2
I want to understand why is this happening ? what will be the solution for this ?
what are the nvinfer1 and nvinfer2 used to do respectively? are they detection models? is there any dependency? what are the nvanalytics1 and nvanalytics2 used to do respectively?
Let’s say nvinfer1 is responsible for detecting a person and nvinfer2 is responsible for fire_smoke , and both are detection model, they don’t have any dependency, nvanalytics1 will contain ROI for nvinfer1 with class id , and nvanalytics2 will contain ROI for nvinfer2 with class id
for a workaround, you can make the classid different. then nvdsanalytics already supports class-id setting. please refer to the doc and sample deepstream-nvdsanalytics-test.
@fanzh
I am using class-id settings also what is happening is nvinfer1 ---->person(classid is “0”) and nvinfer2—>fire(class-id is also “0”) in nvanalytics1 I’m setting class-id 0 and for nvanalytics2 also setting class-id 0
How we can solve this ?
nvinfer1’s classid 0 is person. nvinfer2’s classid1 is fire. nvanalytics does not know this difference. please refer to my last comment. for a workaround, you can add a probe function on nvinfer2’s src. if find obj_meta->unique_component_id if nvinfer2’s id and obj_meta->class_id is 0, you can modify obj_meta->class_id to 100. please refer to osd_sink_pad_buffer_probe of deepstream-test1 for how to access objectmeta.