O que são as perdas GIoU, DIoU, CIoU?
sobes.tech IA
Resposta da IA
GIoU (Interseção sobre União Generalizada), DIoU (Interseção sobre União de Distância) e CIoU (Interseção sobre União Completa) são funções de perda usadas em tarefas de detecção de objetos para melhorar a qualidade da previsão das caixas delimitadoras.
-
IoU mede a interseção e a união de duas caixas, mas não considera a distância entre elas, o que pode causar problemas com retângulos não sobrepostos.
-
GIoU amplia o IoU adicionando uma penalidade pela distância entre as caixas, considerando o retângulo mínimo que as cobre ambas. Isso ajuda a melhorar os gradientes quando não há interseção.
-
DIoU considera não apenas a área de interseção, mas também a distância entre os centros das caixas, acelerando a convergência e melhorando a precisão.
-
CIoU também leva em conta a relação de aspecto das caixas, ajudando a prever caixas delimitadoras mais precisas e proporcionais.
Exemplo de uso da perda CIoU em PyTorch (simplificado):
import torch
def ciou_loss(pred_boxes, target_boxes):
# pred_boxes e target_boxes: [x_centro, y_centro, largura, altura]
# Cálculo de IoU, distância entre centros e relação de aspecto
# Retorna o valor da perda CIoU
pass # A implementação depende da tarefa específica
Essas funções de perda ajudam a melhorar a qualidade da localização de objetos em detectores modernos, como YOLOv4 e outros.