README.md

CIoU

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品 ×
Atlas A2 训练系列产品/Atlas A2 推理系列产品 ×
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能:用于边界框回归的损失函数,在IoU的基础上同时考虑了中心点距离、宽高比和重叠面积,以更全面地衡量预测框与真实框之间的差异。
  • 计算公式:

CIoU=IoU−ρ2(bp,bg)c2−αvv=4π2(arctan(wghg)−arctan(wphp))2α=v1−IoU+vCIoU = IoU - \frac{\rho^2(b^p, b^g)}{c^2} - \alpha v \\ v = \frac{4}{\pi^2}(arctan(\frac{w^g}{h^g}) - arctan(\frac{w^p}{h^p}))^2 \\ \alpha = \frac{v}{1 - IoU + v} \\

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
bboxes 输入 预测矩形框。 FLOAT32、FLOAT16 ND
gtboxes 输入 真值矩形框。 FLOAT32、FLOAT16 ND
trans 属性 用于指定矩形框的格式。 BOOL -
is_cross 属性 用于指定bBoxes与gtBoxes之间是否进行交叉运算。 BOOL -
mode 属性 用于选择计算方式"iou"或"iof"。 String -
atan_sub_flag 属性 用于指定是否输出atan_sub。 BOOL -
overlap 输出 根据两个输入计算得到的交并比/前景交叉比。 FLOAT32、FLOAT16 ND
atan_sub 输出 计算过程中两个arctan的差值。 FLOAT32、FLOAT16 ND

约束说明

  • 若输入格式为[x0, y0, x1, y1],(x0, y0)和(x1, y1)分别表示矩形框的左上角和右下角,需满足x1 > x0, y1 > y0。
  • M和N需要一致。
  • is_cross目前仅支持false
  • atan_sub_flag目前仅支持true

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_ciou 通过aclnnCIoU接口方式调用CIoU算子。