Č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.