Sobes.tech
Middle — Senior

Čo sú strata GIoU, DIoU, CIoU?

sobes.tech AI

Odpoveď od AI

GIoU (Všeobecný prekryv nad zjednotením), DIoU (Vzdialenosť prekryvu nad zjednotením) a CIoU (Kompletný prekryv nad zjednotením) sú funkcie straty používané v úlohách detekcie objektov na zlepšenie kvality predpovede ohraničujúcich rámcov.

  • IoU meria prekryv a zjednotenie dvoch rámcov, ale nezohľadňuje vzdialenosť medzi nimi, čo môže spôsobovať problémy pri neprekrývajúcich sa pravouhlých tvaroch.

  • GIoU rozširuje IoU pridaním trestu za vzdialenosť medzi rámcami, pričom zohľadňuje minimálny obklopujúci pravouholník, ktorý oba rámce pokrýva. To pomáha zlepšiť gradienty pri absencii prekryvu.

  • DIoU zohľadňuje nielen plochu prekryvu, ale aj vzdialenosť medzi stredmi rámcov, čo zrýchľuje konvergenciu a zvyšuje presnosť.

  • CIoU navyše zohľadňuje pomer strán rámcov, čo pomáha predpovedať presnejšie a proporčne správne ohraničujúce rámce.

Príklad použitia CIoU straty v PyTorch (zjednodušené):

import torch

def ciou_loss(pred_boxes, target_boxes):
    # pred_boxes a target_boxes: [x_stred, y_stred, šírka, výška]
    # Výpočet IoU, vzdialenosti medzi stredmi a pomeru strán
    # Vráti hodnotu CIoU straty
    pass  # Implementácia závisí od konkrétneho úlohy

Tieto funkcie straty pomáhajú zlepšiť kvalitu lokalizácie objektov v moderných detektoroch, ako je YOLOv4 a ďalšie.