Leikkaus Unionin Yli (IoU) ja Arviointimittarit
Intersection over Union (IoU) on mittari, joka arvioi ennustettujen rajauslaatikoiden tarkkuutta laskemalla ennustetun ja todellisen laatikon päällekkäisen alueen suhteen niiden yhdistettyyn alueeseen.
Miten se lasketaan
Matemaattisesti IoU määritellään seuraavasti:

Missä:
- Päällekkäisyyden pinta-ala on ennustetun ja todellisen rajaavan laatikon leikkaus;
- Yhdisteen pinta-ala on molempien laatikoiden kattama kokonaispinta-ala.
12345678910111213141516171819202122232425262728import numpy as np def compute_iou(boxA, boxB): # Extract coordinates xA = max(boxA[0], boxB[0]) yA = max(boxA[1], boxB[1]) xB = min(boxA[2], boxB[2]) yB = min(boxA[3], boxB[3]) # Compute intersection area interArea = max(0, xB - xA) * max(0, yB - yA) # Compute areas of both boxes boxAArea = (boxA[2] - boxA[0]) * (boxA[3] - boxA[1]) boxBArea = (boxB[2] - boxB[0]) * (boxB[3] - boxB[1]) # Compute union area unionArea = boxAArea + boxBArea - interArea # Compute IoU iou = interArea / unionArea return iou # Example usage box1 = [50, 50, 150, 150] # [x1, y1, x2, y2] box2 = [100, 100, 200, 200] iou_score = compute_iou(box1, box2) print("IoU Score:", iou_score)
IoU rajaavan laatikon tarkkuuden mittarina
IoU:ta käytetään yleisesti arvioimaan, kuinka hyvin ennustettu rajaava laatikko vastaa todellista arvoa. Korkeammat IoU-arvot osoittavat parempaa vastaavuutta; arvo 1.0
tarkoittaa täydellistä päällekkäisyyttä ja 0.0
ei päällekkäisyyttä lainkaan.
IoU-kynnyksen asettaminen oikeille ja väärille positiivisille
Jotta voidaan määrittää, onko havainto oikea (true positive) vai väärä (false positive), asetetaan yleensä IoU-kynnysarvo. Yleisesti käytettyjä kynnysarvoja ovat:
- IoU > 0.5: katsotaan oikeaksi positiiviseksi (TP);
- IoU < 0.5: katsotaan vääräksi positiiviseksi (FP).
Korkeamman IoU-kynnyksen asettaminen lisää tarkkuutta, mutta voi heikentää recall-arvoa, koska harvemmat havainnot täyttävät kriteerit.
Arviointimittarit: tarkkuus, recall ja mAP
IoU:n lisäksi muut arviointimittarit auttavat arvioimaan objektintunnistusmalleja:
- Tarkkuus (Precision): mittaa oikein ennustettujen rajauslaatikoiden osuuden kaikista ennusteista;
- Recall: mittaa oikein ennustettujen rajauslaatikoiden osuuden kaikista todellisista objekteista;
- Mean Average Precision (mAP): laskee keskimääräisen tarkkuuden eri IoU-kynnysten ja objektikategorioiden yli, tarjoten kattavan arvion mallin suorituskyvystä.

123456789def precision_recall(tp, fp, fn): precision = tp / (tp + fp) if (tp + fp) > 0 else 0 recall = tp / (tp + fn) if (tp + fn) > 0 else 0 return precision, recall # Example usage tp, fp, fn = 50, 10, 20 precision, recall = precision_recall(tp, fp, fn) print(f"Precision: {precision:.2f}, Recall: {recall:.2f}")
IoU toimii perustavanlaatuisena mittarina objektintunnistusmallien arvioinnissa, auttaen ennustettujen rajauslaatikoiden tarkkuuden arvioinnissa. Yhdistämällä IoU:n tarkkuuteen, recall-arvoon ja mAP:iin, tutkijat ja insinöörit voivat hienosäätää mallejaan saavuttaakseen paremman tunnistustarkkuuden ja luotettavuuden.
1. Mitä Intersection over Union (IoU) mittaa objektintunnistuksessa?
2. Mikä seuraavista katsotaan vääräksi negatiiviseksi (false negative) objektin tunnistuksessa?
3. Miten tarkkuus (Precision) lasketaan objektin tunnistuksessa?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.45
Leikkaus Unionin Yli (IoU) ja Arviointimittarit
Pyyhkäise näyttääksesi valikon
Intersection over Union (IoU) on mittari, joka arvioi ennustettujen rajauslaatikoiden tarkkuutta laskemalla ennustetun ja todellisen laatikon päällekkäisen alueen suhteen niiden yhdistettyyn alueeseen.
Miten se lasketaan
Matemaattisesti IoU määritellään seuraavasti:

Missä:
- Päällekkäisyyden pinta-ala on ennustetun ja todellisen rajaavan laatikon leikkaus;
- Yhdisteen pinta-ala on molempien laatikoiden kattama kokonaispinta-ala.
12345678910111213141516171819202122232425262728import numpy as np def compute_iou(boxA, boxB): # Extract coordinates xA = max(boxA[0], boxB[0]) yA = max(boxA[1], boxB[1]) xB = min(boxA[2], boxB[2]) yB = min(boxA[3], boxB[3]) # Compute intersection area interArea = max(0, xB - xA) * max(0, yB - yA) # Compute areas of both boxes boxAArea = (boxA[2] - boxA[0]) * (boxA[3] - boxA[1]) boxBArea = (boxB[2] - boxB[0]) * (boxB[3] - boxB[1]) # Compute union area unionArea = boxAArea + boxBArea - interArea # Compute IoU iou = interArea / unionArea return iou # Example usage box1 = [50, 50, 150, 150] # [x1, y1, x2, y2] box2 = [100, 100, 200, 200] iou_score = compute_iou(box1, box2) print("IoU Score:", iou_score)
IoU rajaavan laatikon tarkkuuden mittarina
IoU:ta käytetään yleisesti arvioimaan, kuinka hyvin ennustettu rajaava laatikko vastaa todellista arvoa. Korkeammat IoU-arvot osoittavat parempaa vastaavuutta; arvo 1.0
tarkoittaa täydellistä päällekkäisyyttä ja 0.0
ei päällekkäisyyttä lainkaan.
IoU-kynnyksen asettaminen oikeille ja väärille positiivisille
Jotta voidaan määrittää, onko havainto oikea (true positive) vai väärä (false positive), asetetaan yleensä IoU-kynnysarvo. Yleisesti käytettyjä kynnysarvoja ovat:
- IoU > 0.5: katsotaan oikeaksi positiiviseksi (TP);
- IoU < 0.5: katsotaan vääräksi positiiviseksi (FP).
Korkeamman IoU-kynnyksen asettaminen lisää tarkkuutta, mutta voi heikentää recall-arvoa, koska harvemmat havainnot täyttävät kriteerit.
Arviointimittarit: tarkkuus, recall ja mAP
IoU:n lisäksi muut arviointimittarit auttavat arvioimaan objektintunnistusmalleja:
- Tarkkuus (Precision): mittaa oikein ennustettujen rajauslaatikoiden osuuden kaikista ennusteista;
- Recall: mittaa oikein ennustettujen rajauslaatikoiden osuuden kaikista todellisista objekteista;
- Mean Average Precision (mAP): laskee keskimääräisen tarkkuuden eri IoU-kynnysten ja objektikategorioiden yli, tarjoten kattavan arvion mallin suorituskyvystä.

123456789def precision_recall(tp, fp, fn): precision = tp / (tp + fp) if (tp + fp) > 0 else 0 recall = tp / (tp + fn) if (tp + fn) > 0 else 0 return precision, recall # Example usage tp, fp, fn = 50, 10, 20 precision, recall = precision_recall(tp, fp, fn) print(f"Precision: {precision:.2f}, Recall: {recall:.2f}")
IoU toimii perustavanlaatuisena mittarina objektintunnistusmallien arvioinnissa, auttaen ennustettujen rajauslaatikoiden tarkkuuden arvioinnissa. Yhdistämällä IoU:n tarkkuuteen, recall-arvoon ja mAP:iin, tutkijat ja insinöörit voivat hienosäätää mallejaan saavuttaakseen paremman tunnistustarkkuuden ja luotettavuuden.
1. Mitä Intersection over Union (IoU) mittaa objektintunnistuksessa?
2. Mikä seuraavista katsotaan vääräksi negatiiviseksi (false negative) objektin tunnistuksessa?
3. Miten tarkkuus (Precision) lasketaan objektin tunnistuksessa?
Kiitos palautteestasi!