pixel_group

接口原型

mx_driving.pixel_group(Tensor score, Tensor mask, Tensor embedding, Tensor kernel_label, Tensor kernel_contour, int kernel_region_num, float distance_threshold) -> List[List]

功能描述

根据像素之间的嵌入向量和距离,将未被分组的像素分组。

参数说明

  • score (Tensor):前景得分矩阵,数据类型为float32,shape为[Height, Width]
  • mask (Tensor):前景掩码矩阵,标记可被分组的像素,数据类型为bool,shape为[Height, Width]
  • embedding (Tensor):特征向量,数据类型为float32,shape为[Height, Width, Embedding_dim]
  • kernel_label (Tensor):像素的实例标签,数据类型为int32,shape为[Height, Width]
  • kernel_contour (Tensor):内核的边界像素,数据类型为uint8,shape为[Height, Width]
  • kernel_region_num (int):不同内核(分组)的数量,数据类型为int
  • distance_threshold (float):嵌入向量的距离阈值,数据类型为float

返回值

  • pixel_assignment (List):像素的分组信息,数据类型为float32,length为入参kernel_region_num

约束说明

  • mask = score > 0.5
  • score的取值范围在[0, 1]之间
  • kernel_label的最大值为kernel_region_num-1
  • kernel_contour的取值非0即1

支持的型号

  • Atlas A2 训练系列产品

调用示例

import torch, torch_npu
import numpy as np
from mx_driving import pixel_group
H, W, dim, num = 10, 10, 8, 3
score = np.random.uniform(0, 1, [H, W]).astype(np.float32)
score = torch.from_numpy(score).npu()
mask = (score) > 0.5
embedding = np.random.uniform(0, 10, [H, W, dim]).astype(np.float32)
embedding = torch.from_numpy(embedding).npu()
kernel_label = np.random.uniform(0, num, [H, W]).astype(np.int32)
kernel_label = torch.from_numpy(kernel_label).npu()
kernel_contour = np.random.uniform(0, 1, [H, W]).astype(np.uint8)
kernel_contour = torch.from_numpy(kernel_contour).npu()
kernel_region_num = num
distance_threshold = 0.8

output = pixel_group(score, mask, embedding, kernel_label, kernel_contour, kernel_region_num, distance_threshold)