BoundingBoxDecode
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
功能说明
将目标检测回归分支预测的偏移量deltas结合锚框anchor_box解码为图像坐标空间的绝对框boxes,用于后续NMS、画框或COCO mAP评估。该算子是bounding_box_encode的逆运算,两者共享同一套(means, stds)标准化参数与(x1, y1, x2, y2)锚框坐标约定,配套使用才能保证训练与推理编码一致。
设锚框anchor_box=(x1, y1, x2, y2)、偏移量deltas=(dx', dy', dw', dh')、means=(m0,m1,m2,m3)、stds=(s0,s1,s2,s3)、max_shape=(H, W),解码步骤为:
pw=x2−x1+1,pcx=(x1+x2)×0.5pw = x2 - x1 + 1,\quad pcx = (x1 + x2) \times 0.5
dx=dx′×s0+m0,dw=dw′×s2+m2dx = dx' \times s0 + m0,\quad dw = dw' \times s2 + m2
gw=pw×exp(dw),gx=pcx+pw×dxgw = pw \times \exp(dw),\quad gx = pcx + pw \times dx
x1out=clip(gx−gw×0.5+0.5, 0, W)x1_{out} = \mathrm{clip}(gx - gw \times 0.5 + 0.5,\ 0,\ W)
y维度(y1、y2)同理,裁剪上界为H。fp16输入时中间exp及乘加计算在fp32域进行后回cast到fp16。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| anchor_box | 输入 | 锚框坐标(x1,y1,x2,y2),对应公式中anchor_box。 | FLOAT16、FLOAT | ND |
| deltas | 输入 | 回归偏移量(dx',dy',dw',dh'),对应公式中deltas。 | FLOAT16、FLOAT | ND |
| boxes | 输出 | 解码后的绝对框(x1,y1,x2,y2),对应公式中boxes。 | FLOAT16、FLOAT | ND |
| means | 可选属性 | deltas反标准化均值,长度4,默认[0.0, 0.0, 0.0, 0.0]。 | FLOAT | - |
| stds | 可选属性 | deltas反标准化标准差,长度4且各元素非0,默认[1.0, 1.0, 1.0, 1.0]。 | FLOAT | - |
| max_shape | 属性 | 解码框裁剪上限(H, W),长度2。 | INT64 | - |
| wh_ratio_clip | 可选属性 | 宽高比裁剪阈值,默认0.016。 | FLOAT | - |
约束说明
- anchor_box与deltas的shape必须完全一致(N, 4),无广播。
- anchor_box与deltas的dtype必须一致。
- means与stds长度必须为4,stds各元素不能为0。
- max_shape长度必须为2。
- wh_ratio_clip必须大于0,当前不参与核心解码公式,仅做入参校验。
- 输入仅支持ND数据格式。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| GE图模式 | - | test_geir_bounding_box_decode.cpp |