ERROR: Could not find output coverage layer for parsing objects / Failed to parse bboxes

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) Jetson
• DeepStream Version 6.2
• JetPack Version (valid for Jetson only) 5.1
• TensorRT Version 8.5.2

I’m trying to implement the below pipeline in deep stream

Face detection → Tracking → Recognition

I’m using Facedetect for detection(FaceDetect | NVIDIA NGC) and facenet for recognition. I have tested the detection & tracking parts and both are working well. However when I added face recognition (Facenet model converted to ONNX) to the pipeline by writing over Test-2 sample this generated an error. I have attached the full log of error.
DS_Facedetec+faceneterror (55.0 KB)

I have used .etlt file INT8 (detection), .ONNX FP16 (recognition) and from log I can see that for primary/secondary configs give the expected input/ output dimensions. Facenet (Recognitionmodel) takes 160x160 and gives 512 embedding.
Can you please advise how to solve this error

Seems your facenet postprocessing is wrong.

0:00:56.738614428 19297     0x31ed85e0 ERROR                nvinfer gstnvinfer.cpp:674:gst_nvinfer_logger:<secondary-inference face_classifier> NvDsInferContext[UID 1]: Error in NvDsInferContextImpl::parseBoundingBox() <nvdsinfer_context_impl_output_parsing.cpp:59> [UID = 1]: Could not find output coverage layer for parsing objects
0:00:56.738656636 19297     0x31ed85e0 ERROR                nvinfer gstnvinfer.cpp:674:gst_nvinfer_logger:<secondary-inference face_classifier> NvDsInferContext[UID 1]: Error in NvDsInferContextImpl::fillDetectionOutput() <nvdsinfer_context_impl_output_parsing.cpp:735> [UID = 1]: Failed to parse bboxes

You configure the facenet as detector. While your facenet model output only one layer.

0   INPUT  kFLOAT input           3x160x160       
1   OUTPUT kFLOAT output          512

Please configure your model correctly and seems you need to customize the postprocessing of facenet.

Does that mean that there’s ab error in converting the facenet model from Pytorch to ONNX? I have followed tensorrt official guide.
Additionally where to config the facenet as recognition i have wrote over test-2 sample where 2nd configuration is the recognition part

any recommendations?

No. When you choose the model, please also understand the input and output of the model. There are thousands of models for different purpose, the TensorRT only do the ineferencing, you need to do the pre-process and post-process.

In my case Facedetect gives two outputs and Facenet gives one output which is the 512 embeddings. I wrote over test-2 to add the classification which compares the generated embeddings with embeddings in a dataset. Can you please support what preprocessing/post processing technique should be used and where to add it in the above pipeline

For facedetect, there is already sample in deepstream_tao_apps/configs/nvinfer/facial_tao/config_infer_primary_facenet.txt at master · NVIDIA-AI-IOT/deepstream_tao_apps (github.com)

For your facenet, we don’t know anything about your model. The only sample we can provide you is for how to get the tensor output and parse the embedding vectors into the user meta. deepstream_tao_apps/apps/tao_others/deepstream-mdx-perception-app/deepstream_mdx_perception_app.c at master · NVIDIA-AI-IOT/deepstream_tao_apps (github.com)