Secondary gie depend on another secondary gie

Hi. I am having some issues with the secondary gie which depends on another secondary gie.

• Hardware Platform (Jetson / GPU): GPU
• DeepStream Version: 4.0.1
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only): 418.43

Here are snippets of the pipeline.

Snippets of Pipeline:

Primary gie

Secondary gie

Current Issue:

[primary-gie]
  enable = 1
  gie-unique-id = 1
  batch-size = 1
  config-file = 7-class.conf

[secondary-gie0]
  enable = 1
  gie-unique-id = 2
  batch-size = 1
  config-file = bag-style.conf
  operate-on-gie-id = 1

[secondary-gie1]
  enable = 1
  gie-unique-id = 3
  batch-size = 1
  config-file = bag-colour.conf
  operate-on-gie-id = 2

Result:

    {
      "class" : "bag",
      "confidence" : 0.0,
      "track_id" : 9,
      "attributes" : {
        "subclass" : [
          "backpack"
        ],
        "confidence" : [
          0.54759711027145386
        ],
        "colour" : [
        ],
        "score" : [
        ],
        "bbox" : [
        ]
      }
    },

So my current issue is that the secondary-gie1 should depend on secondary-gie0. The results above did not show a colour classification of the backpack.

My workaround:

  • bag colour secondary gie depend on primary gie instead of bag style secondary gie
[primary-gie]
  enable = 1
  gie-unique-id = 1
  batch-size = 1
  config-file = 7-class.conf

[secondary-gie0]
  enable = 1
  gie-unique-id = 2
  batch-size = 1
  config-file = bag-style.conf
  operate-on-gie-id = 1

[secondary-gie1]
  enable = 1
  gie-unique-id = 3
  batch-size = 1
  config-file = bag-colour.conf
  operate-on-gie-id = 1

Result:

{
      "class" : "bag",
      "confidence" : 0.0,
      "track_id" : 9,
      "attributes" : {
        "subclass" : [
          "handbag"
        ],
        "confidence" : [
          0.68141072988510132
        ],
        "colour" : [
          "black"
        ],
        "score" : [
          0.68141072988510132
        ],
        "bbox" : [
        ]
      }
}

I had to make secondary-gie1 depend on primary-gie. I am not sure if this make sense.

What I want to achieve:

  • bag colour secondary gie depend on bag style secondary gie
[primary-gie]
  enable = 1
  gie-unique-id = 1
  batch-size = 1
  config-file = 7-class.conf

[secondary-gie0]
  enable = 1
  gie-unique-id = 2
  batch-size = 1
  config-file = bag-style.conf
  operate-on-gie-id = 1

[secondary-gie1]
  enable = 1
  gie-unique-id = 3
  batch-size = 1
  config-file = bag-colour.conf
  operate-on-gie-id = 2

Result:

{
      "class" : "bag",
      "confidence" : 0.0,
      "track_id" : 9,
      "attributes" : {
        "subclass" : [
          "handbag"
        ],
        "confidence" : [
          0.68141072988510132
        ],
        "colour" : [
          "black"
        ],
        "score" : [
          0.68141072988510132
        ],
        "bbox" : [
        ]
      }
}

secondary-gie0 and secondary-gie1 are configured as classifiers.

In this way, I am very sure secondary-gie1 depends on secondary-gie0 instead of primary-gie.

Is there currently a support for this issue? If there is, kindly point me to the relevant resource or workaround for this issue?

Thank you.

Classifier 2 wants to infer based on results of classified 1 - this cannot be done directly - User will have to write custom code. User can modify should_infer_object function to check class ID of label metadata