对于DeepStream中的obj_meta数据结构,它是一个包含了目标物体的元数据信息的对象。它包含了对目标物体的识别信息、位置信息、属性信息等。下面是一些obj_meta中常用的属性:
confidence:目标的置信度得分。
unique_component_id:用于在多个组件之间标识目标物体的唯一ID。
class_id:目标的类别ID,一般用于指示目标属于哪个类别。
label_info:一个指向NvDsLabelInfo结构体的指针,用于存储类别标签信息。
rect_params:目标物体的位置和大小等信息,可以通过修改rect_params的属性来设置检测框的坐标、宽度、高度等。
假设您已经有一组新的检测框和对应的类别标签数据,您可以按照以下步骤将新数据添加到obj_meta中:
遍历obj_meta列表,对每个obj_meta对象执行以下操作:
for (l_obj = frame_meta->obj_meta_list; l_obj != NULL; l_obj = l_obj->next)
{
// 获取当前的obj_meta
obj_meta = (NvDsObjectMeta*)(l_obj->data);
// 创建一个新的label_info结构体,并设置类别标签信息
NvDsLabelInfo* label_info = new NvDsLabelInfo;
label_info->result_class_id = 新的类别ID;
label_info->result_prob = 新的置信度;
snprintf(label_info->result_label, MAX_LABEL_SIZE, "新的类别标签");
// 将新的label_info结构体添加到obj_meta中
obj_meta->label_info = label_info;
// 设置检测框的位置和大小等信息
obj_meta->rect_params.left = 新的左上角横坐标;
obj_meta->rect_params.top = 新的左上角纵坐标;
obj_meta->rect_params.width = 新的宽度;
obj_meta->rect_params.height = 新的高度;
obj_meta->rect_params.border_width = 2; // 设置检测框边框宽度
obj_meta->rect_params.border_color.red = 255; // 设置检测框边框颜色(RGB格式)
obj_meta->rect_params.border_color.green = 0;
obj_meta->rect_params.border_color.blue = 0;
// 可以根据需要设置其它的属性
}