Could not find output coverage layer for parsing objects

Hi
On the basis of example Deepstream_python_apps/deepstream_test3, I implemented a simple face detection pipeline by replacing the primary network model.My project can be found here.The caffe model can be found here link.And prototxt file is modified according to this.But when running, the following error is reported:

gstname= video/x-raw
features= <Gst.CapsFeatures object at 0x7f8008b9a8 (GstCapsFeatures at 0x7ee4199320)>
0:00:25.005110305 15292 0x11b0c6d0 ERROR nvinfer gstnvinfer.cpp:613:gst_nvinfer_logger: 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:25.005186869 15292 0x11b0c6d0 ERROR nvinfer gstnvinfer.cpp:613:gst_nvinfer_logger: NvDsInferContext[UID 1]: Error in NvDsInferContextImpl::fillDetectionOutput() <nvdsinfer_context_impl_output_parsing.cpp:733> [UID = 1]: Failed to parse bboxes
Segmentation fault

2 Likes

I am not 100% certain on this, but my guess is that you need to implement your own custom bounding box parser in C++. Out of the box, deepstream supports the following models in terms of custom bounding box implementation (source: Using a Custom Model with DeepStream — DeepStream 6.3 Release documentation).

  • FasterRCNN
  • MaskRCNN
  • SSD
  • YoloV3 / YoloV3Tiny / YoloV2 / YoloV2Tiny
  • DetectNet

You need to write your own custom bbox parsing implementation, compile it to .so for linking and then include the path in the configuration file as follows:

[property]
...
parse-bbox-func-name=NvDsInferParseCustomModel
custom-lib-path=nvdsinfer_custom_impl_model/libnvdsinfer_custom_impl_model.so

See the following post for more information: