Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU)
GPU / T4
• DeepStream Version
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs)
I’m trying running RetinaFace model with DeepStream 6.0.1, but I found it quite hard to pass landmarks to downstream with NvInfer plugin. I’m using docker nvcr.io/nvidia/deepstream:6.0.1-devel, so the environment is not a problem.
RetinaFace is indeed an object detection model. If we only want boundingboxs, writing an
custom-bbox-parser-func will be enough, and NvInfer will do
NMS-like postprocessing as configured for us.
But RetinaFace has extra landmarks for every detected object/face, and the output struct
custom-bbox-parser-func has no field to store extra landmark data.
I’ve found several other topics about this problem, but i didn’t see an actual solution.
I’ve come up two possible ways:
Directly writing model output to Metadata, and do post processing and parsing in a probe function. This will introduce a little overhead, since raw model output occupy more memory.
NvDsInferObjectDetectionInfostruct to support landmarks, modify related metadata writing code and recompile NvInfer plugin, since source code the of plugin is provided. But I don’t know if the source code is equivalent to the current binary plugin, and will there by a legal problem in commercial usage?
Please give some advice, thanks!