Keras 3 API 文档 / KerasCV / 损失 / GIoU 损失

GIoU 损失

[来源]

GIoULoss

keras_cv.losses.GIoULoss(bounding_box_format, axis=-1, **kwargs)

实现广义 IoU 损失

GIoU 损失是常用的目标检测修改 IoU 损失。此损失旨在直接优化真实框和预测框之间的 IoU 分数。GIoU 损失在 IoU 损失上添加了惩罚项,该项考虑了包含两个被考虑用于 IoU 的框的最小框的面积。最后一个维度的长度应为 4,以表示边界框。

参数

  • bounding_box_format: 不区分大小写的字符串(例如,“xyxy”)。每个边界框由这 4 个值定义。有关支持格式的详细信息,请参阅KerasCV 边界框文档
  • axis: 对 ious 求平均值的轴,默认为 -1。

参考资料

示例

y_true = np.random.uniform(size=(5, 10, 5), low=0, high=10)
y_pred = np.random.uniform(size=(5, 10, 4), low=0, high=10)
loss = GIoULoss(bounding_box_format = "xyWH")
loss(y_true, y_pred).numpy()

使用 compile() API

model.compile(optimizer='adam', loss=keras_cv.losses.GIoULoss())