文件最后提交记录最后更新时间
1 天前
1 天前
1 天前
1 天前
1 天前
1 天前
1 天前
README

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