NvDsAnalyticsFrameMeta

class pyds.NvDsAnalyticsFrameMeta

保存一组 nvdsanalytics 帧级别元数据。

变量:
  • ocStatusdict<str, bool>, 保存配置的 ROI 的过度拥挤布尔状态的映射,可以使用键值对访问;其中键是 ROI 标签。

  • objInROIcntdict<str, int>, 保存配置的 ROI 的 ROI 中有效对象的总计数映射,可以使用键值对访问;其中键是 ROI 标签。

  • objLCCurrCntdict<str, int>, 保存配置的线在当前帧中的线交叉总计数映射,可以使用键值对访问;其中键是线交叉标签。

  • objLCCumCntdict<str, int>, 保存配置的线的线交叉累积总计数映射,可以使用键值对访问;其中键是线交叉标签

  • unique_idstr, 保存 nvdsanalytics 实例的唯一标识符。

  • objCntint, 保存每个类别 ID 的对象总计数映射,可以使用键值对访问;其中键是类别 ID。

使用示例

# Get meta data from NvDsAnalyticsFrameMeta
l_user = frame_meta.frame_user_meta_list #Get glist containing NvDsUserMeta objects from given NvDsFrameMeta
while l_user:
    try:
        user_meta = pyds.NvDsUserMeta.cast(l_user.data) #Must cast glist data to NvDsUserMeta object
        if user_meta.base_meta.meta_type == pyds.nvds_get_user_meta_type("NVIDIA.DSANALYTICSFRAME.USER_META"):
            user_meta_data = pyds.NvDsAnalyticsFrameMeta.cast(user_meta.user_meta_data) #Must cast user metadata to NvDsAnalyticsFrameMeta
            #Access NvDsAnalyticsFrameMeta attributes with user_meta_data.{attribute name}
            if user_meta_data.objInROIcnt: print("Objs in ROI: {0}".format(user_meta_data.objInROIcnt))                    
            if user_meta_data.objLCCumCnt: print("Linecrossing Cumulative: {0}".format(user_meta_data.objLCCumCnt))
            if user_meta_data.objLCCurrCnt: print("Linecrossing Current Frame: {0}".format(user_meta_data.objLCCurrCnt))
            if user_meta_data.ocStatus: print("Overcrowding status: {0}".format(user_meta_data.ocStatus))
    except StopIteration:
        break
    try:
        l_user = l_user.next
    except StopIteration:
        break
static cast(data: capsule) pyds.NvDsAnalyticsFrameMeta

将给定的对象/数据转换为 NvDsAnalyticsFrameMeta, 调用 pyds.NvDsAnalyticsFrameMeta.cast(data)