Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU)
GPU • DeepStream Version
6.2 • JetPack Version (valid for Jetson only) • TensorRT Version
8.5 • NVIDIA GPU Driver Version (valid for GPU only) • Issue Type( questions, new requirements, bugs)
Hi, I have a face recognition deepstreamer pipeline which includes detector → tracker (NVDeepSort) → featurizer plugins.
My issue is related to nvtracker plugin, sometimes detector detects the face which is not clearly visible. Tracker is assigning the ID to the detected object and passes it to featurizer (recognizer). As the face is not clear recognizer fails to recognize the face but the tracker keeps the same ID and dont send data for recognition again.
I want to run featurizer for unrecognized tracked ID for N times (frames) and try to identify the person, if it is still fails just label it UNKNOWN, or if one time I managed to recognize assign the label.
As far as I know that is the normal behavior of any tracker, not to send same data to the bigger model that comes after the tracker. So, once tracker assigns ID it will just use that ID until ID is lost. The moment it loses the track, it sends data to bigger model to recognize again the face.
I just want to have control over tracker ID, to drop it when I want. Can I achieve this?
I think I will use my own tracker algorithm which is feature based tracker and then it applies some post-processing logic to pass to recognition model.
Tracker here is the classifier plugin, which get the features for each detected face. Now I want to send to the next plugin user_meta which will contain custom struct containing frame_dets, tracked_dets, added_ids.
How can I parse this information in C++ .so file to the next plugin.