Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU) • DeepStream Version • JetPack Version (valid for Jetson only) • TensorRT Version • NVIDIA GPU Driver Version (valid for GPU only) • Issue Type( questions, new requirements, bugs) • 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)
**• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
Currently, the reference application sends detection data via MQTT using C++ implementation. However, I want to:
Create a Python-based DeepStream pipeline using the Python bindings (pyds)
Extract detection/tracking data using probe functions
Access the 3D tracking metadata (3D bounding boxes, world coordinatesCurrent Issue
What I’m Currently Getting:
2D bounding box coordinates (obj_meta.rect_params) - ✅ Working
Object IDs (obj_meta.object_id) - ✅ Working per camera
Class IDs and confidence scores - ✅ Working
The Problem:
Different Object IDs for the same person across different cameras ❌
Camera 0: Person tracked with ID 5
Camera 1: Same person tracked with ID 12
Camera 2: Same person tracked with ID 8
These should be the same cross-camera ID for multi-view tracking
What I Need:
Cross-camera associated IDs - Same ID for same person across all camera views
How to access the multi-view tracking metadata that links objects across cameras
def tracker_src_pad_probe(pad, info, u_data):
gst_buffer = info.get_buffer()
if not gst_buffer:
return Gst.PadProbeReturn.OK
batch_meta = pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))
l_frame = batch_meta.frame_meta_list
while l_frame is not None:
try:
frame_meta = pyds.NvDsFrameMeta.cast(l_frame.data)
except StopIteration:
break
source_id = frame_meta.source_id
l_obj = frame_meta.obj_meta_list
while l_obj is not None:
try:
obj_meta = pyds.NvDsObjectMeta.cast(l_obj.data)
# Extract object parameters
obj_id = obj_meta.object_id
class_id = obj_meta.class_id
confidence = obj_meta.confidence
# Extract bounding box
x = obj_meta.rect_params.left
y = obj_meta.rect_params.top
w = obj_meta.rect_params.width
h = obj_meta.rect_params.height
print(f"Camera {source_id}: ID={obj_id}, Class={class_id}, "
f"Bbox=({x:.0f},{y:.0f},{w:.0f},{h:.0f})")
# ❓ PROBLEM: obj_id is different for same person in different cameras
# How to get cross-camera associated ID for multi-view tracking?
except StopIteration:
break
try:
l_obj = l_obj.next
except StopIteration:
break
try:
l_frame = l_frame.next
except StopIteration:
break
return Gst.PadProbeReturn.OK
Ensure that the source and camera calibration data match. Such as Warehouse_Synthetic_Cam00x.yml in config_tracker.yml match with nvstreammux source id
2.Ensure the Communicator is configured correctly. The tracker will use MQTT to exchange data from different cameras to achieve MTMC.
I was able to extract the 3D bounding boxes successfully after adding the Python bindings for NvDsObj3DBbox as suggested.
Now I’m facing one issue:
The tracking IDs are not consistent across multiple camera streams.
The same object (e.g., a person or vehicle) is visible in two cameras, but DeepStream assigns different IDs in each stream. I expected the same object to have a unified ID across all cameras, especially since the 3D world coordinates are available.
I attached my DeepStream pipeline code — I’m creating all source bins normally but inside Docker the MQTT broker on port 1884 shows continuous rapid connect/disconnect loops. Can someone help identify what might be causing these repeated disconnects?
I am using MV3DTracker with 2 input streams and I want to understand the behaviour of the ReID model.
is MV3DTracker use a ReID network to improve identity consistency. I enabled the ReID section in the tracker config and added the ReID model (as per the sample config). The tracker runs correctly, but I am not observing any visible difference in tracking or ID consistency after enabling ReID.
My questions:
Does MV3DTracker actually use the ReID model for ID reassignment, or does it primarily use global 3D coordinates and trajectory smoothing for multi-stream association?
If ReID is enabled, does MV3DTracker combine:
appearance similarity (ReID embedding),
global coordinates,
velocity/trajectory,
for ID matching?
Or is the ReID module optional and only used in specific pipeline configurations?
I attached my tracker config file below.
Could you please tell me if any parameters need to be changed for the ReID model to actually be used?