IoU Loss
- Original Link : https://keras.io/api/keras_cv/losses/iou_loss/
- Last Checked at : 2024-11-25
IoULoss
class
keras_cv.losses.IoULoss(bounding_box_format, mode="log", axis=-1, **kwargs)
Implements the IoU Loss
IoU loss is commonly used for object detection. This loss aims to directly optimize the IoU score between true boxes and predicted boxes. The length of the last dimension should be 4 to represent the bounding boxes. This loss uses IoUs according to box pairs and therefore, the number of boxes in both y_true and y_pred are expected to be equal i.e. the ith y_true box in a batch will be compared the ith y_pred box.
Arguments
- bounding_box_format: a case-insensitive string (for example, “xyxy”). Each bounding box is defined by these 4 values. For detailed information on the supported formats, see the KerasCV bounding box documentation.
- mode: must be one of
"linear"
. The loss will be calculated as 1 - iou"quadratic"
. The loss will be calculated as 1 - iou2"log"
. The loss will be calculated as -ln(iou) Defaults to “log”.
- axis: the axis along which to mean the ious, defaults to -1.
References
Example
y_true = np.random.uniform(size=(5, 10, 5), low=10, high=10)
y_pred = np.random.uniform(size=(5, 10, 5), low=10, high=10)
loss = IoULoss(bounding_box_format = "xyWH")
loss(y_true, y_pred)
Usage with the compile()
API:
model.compile(optimizer='adam', loss=keras_cv.losses.IoULoss())