Iou3D
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:计算两组3D旋转框(7-DoF:
[x, y, z, w, h, d, theta])之间的3D IoU矩阵。 -
计算原理:
- BEV投影:每个框在XY平面按
theta旋转,得到4个顶点:P = center ± 0.5*w*(cos, sin) ± 0.5*h*(-sin, cos)。 - 交集面积:顶点包含测试 + 边相交,收集交集多边形顶点;0/3顶点直接算三角形面积,>3顶点质心分解 + 极角排序求和。
- Z轴重叠:
real_d = max(min(z1max, z2max) - max(z1min, z2min), 0),其中z_min = z - 0.5*d,z_max = z + 0.5*d。
- BEV投影:每个框在XY平面按
-
计算公式:
IoU3D=bev_area×real_dVA+VB−Vinter+ε,ε=10−6\text{IoU}_{3D} = \frac{\text{bev\_area} \times \text{real\_d}}{V_A + V_B - V_{inter} + \varepsilon}, \quad \varepsilon = 10^{-6}
其中
V = w * h * d为框体积,V_inter = bev_area * real_d为交集体积。 -
数值稳定三守卫:分母加
epsilon = 1e-6防除零;Z轴重叠clamp到非负;退化多边形(顶点 < 3)面积置0。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| bboxes | 输入 | 预测框,shape [B, 7, N]。第二维为7-DoF [x, y, z, w, h, d, theta]。 |
FLOAT | ND |
| gtboxes | 输入 | 真值框,shape [B, 7, K]。第二维为7-DoF [x, y, z, w, h, d, theta]。 |
FLOAT | ND |
| iou | 输出 | 3D IoU矩阵,shape [B, N, K],值域 [0, 1]。iou[b, n, k] = 第b批第n个预测框与第k个真值框的3D IoU。 |
FLOAT | ND |
- 7-DoF语义:
x, y, z为中心坐标,w, h, d为框在三个方向的尺寸,theta为绕Z轴的旋转角(弧度)。 - 三个Tensor的batch维
B必须一致;bboxes.shape[1] == gtboxes.shape[1] == 7。
约束说明
- 数据类型:
bboxes、gtboxes、iou均必须为float32。 - channel固定为7:
bboxes.shape[1]与gtboxes.shape[1]必须等于7(7-DoF),否则拒绝。 - K 无上限:对标 mmcv,
gtboxes.shape[2](K)不设上限;逐对计算的UB与极角排序(固定32元素)缓冲与K无耦合,任意K成立。 - 无效框排序:同一batch内无效框(
w * h * d = 0)不能排在有效框之前。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| GE图模式 | test_geir_iou3d | 通过算子IR构图方式调用Iou3D算子 |