If you’re certain you need parallel inference, please refer to this sample. Could you share your current pipeline? I can then help you determine if parallel inference is necessary.
Parallel inference requires that the batch metata of each branch be independent; otherwise, metamux will not work as expected.
Metamux copies batchmeta data, which may result in the loss of parent-child mapping. This is the expected behavior.
In such scenarios, we only recommend saving relevant information in the sgie source pad probe function, rather than retrieving it after Metamux.
I’m trying to implement custom GStreamer elements to handle rule-based logic (e.g., person entering a zone, missing PPE, fall detection) using the output from the DeepStream metamux.
The metamux aggregates metadata from multiple models, including keypoints, detection, detection-to-classification, and detection-to-detection pipelines. This metadata is then passed downstream for rule processing.
However, I’m currently facing an issue with the detection-to-detection case: the metadata coming from metamux does not preserve the parent object information, so I’m unable to map secondary detections back to their corresponding primary objects.
Do you have any recommendations on how to handle this? Also, could you help review whether there might be any issues in my pipeline design?
This parallel inference pipeline should be working correctly. Regarding the issue of parent object information not being preserved, this might require using a global variable mapped to the object ID; this is caused by batch meta-copying.
@junshengy
I found the metamux source code in DeepStream 9. Would it be possible to modify it so that the parent-child metadata relationship is preserved after passing through metamux and then rebuild the plugin?
There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks.