Sobes.tech
Middle — Senior

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.