无法从 deepstream 自定义解析器检索输出

Posted

技术标签:

【中文标题】无法从 deepstream 自定义解析器检索输出【英文标题】:unable to retrieve outputs from deepstream custom parser 【发布时间】:2021-02-01 18:19:02 【问题描述】:

我有一个使用深度流自定义边界框解析器的检测任务。我将推理结果存储在

std::vector<NvDsInferParseObjectInfo>& objectList

以这样的方式:

NvDsInferObjectDetectionInfo object;
object. classId = static_cast<unsigned int>(class);
object.left = static_cast<unsigned int>(left);
object.top = static_cast<unsigned int>(top);
object.width = static_cast<unsigned int>(width);
object.height = static_cast<unsigned int>(height);
object.detectionConfidence = static_cast<float>(score);
objectList.push_back(object);

我打印了上面的值,它们确实存在。但是,当我尝试通过以下方式在我的程序中打印它们时:

batch_meta = pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))
l_frame = batch_meta.frame_meta_list
frame_meta = pyds.NvDsFrameMeta.cast(l_frame.data)
frame_number=frame_meta.frame_num
num_rects = frame_meta.num_obj_meta
l_obj=frame_meta.obj_meta_list
print(l_obj)
print(num_rects)

它显示 None 或 0。根本没有输出。

知道我做错了哪一部分吗?谢谢

【问题讨论】:

【参考方案1】:

num_rects 也显示 0 吗?

一定要在探测器的配置文件中设置detection-threshold 还要确保边界框位于配置文件中的 roi 属性(如果已设置)中

如果检测器不是主要检测器,请确保在配置文件中设置operate-on-gie 属性。

【讨论】:

以上是关于无法从 deepstream 自定义解析器检索输出的主要内容,如果未能解决你的问题,请参考以下文章

sbt/ivy 无法解析通配符 ivy 对文件系统解析器的依赖

无法在 Web api 配置中设置自定义合同解析器

解析Google自定义搜索API Swift

DeepStream6.0系列之SDK文件夹解析

无法从 prometheus-adapter 检索自定义指标

使用DeepStream5.0部署YOLOV3,并实现多路拉流自定义模型