Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Leikkaus Unionin Yli (IoU) ja Arviointimittarit | Esineentunnistus
Konenäön Perusteet
course content

Kurssisisältö

Konenäön Perusteet

Konenäön Perusteet

1. Johdatus Tietokonenäköön
2. Kuvankäsittely OpenCV:llä
3. Konvoluutioneuroverkot
4. Esineentunnistus
5. Edistyneiden Aiheiden Yleiskatsaus

book
Leikkaus Unionin Yli (IoU) ja Arviointimittarit

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

12345678910111213141516171819202122232425262728
import 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)
copy

IoU mittarina rajaavan laatikon tarkkuudelle

IoU:ta käytetään yleisesti arvioimaan, kuinka hyvin ennustettu rajaava laatikko vastaa todellista (ground truth) laatikkoa. Korkeammat IoU-arvot osoittavat parempaa osumaa; IoU-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

Määritettäessä, onko havainto oikea (true positive) vai väärä (false positive), asetetaan yleensä IoU-kynnysarvo. Yleisesti käytettyjä kynnysarvoja ovat:

  • IoU > 0.5: katsotaan True Positive (TP);

  • IoU < 0.5: katsotaan False Positive (FP).

Korkeamman IoU-kynnyksen asettaminen lisää tarkkuutta, mutta voi vähentää recall-arvoa, koska harvemmat havainnot täyttävät ehdot.

Arviointimittarit: Precision, Recall ja mAP

IoU:n lisäksi muita arviointimittareita käytetään objektiendistysmallien arviointiin:

  • Precision: mittaa oikein ennustettujen rajaavien laatikoiden osuuden kaikista ennusteista;

Precision=TPTP+FP\text{Precision}=\frac{\text{TP}}{\text{TP}+\text{FP}}
  • Recall: mittaa oikein ennustettujen rajaavien laatikoiden osuuden kaikista todellisista objekteista;

Recall=TPTP+FN\text{Recall}=\frac{\text{TP}}{\text{TP}+\text{FN}}
  • Mean Average Precision (mAP): laskee keskimääräisen precision-arvon eri IoU-kynnyksillä ja objektikategorioissa, tarjoten kattavan arvion mallin suorituskyvystä.

123456789
def 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}")
copy

IoU toimii perustavanlaatuisena mittarina objektiendetektiomallien 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 objektien tunnistuksessa?

2. Mikä seuraavista katsotaan vääräksi negatiiviseksi (false negative) objektin tunnistuksessa?

3. Miten tarkkuus (Precision) lasketaan objektin tunnistuksessa?

question mark

Mitä Intersection over Union (IoU) mittaa objektien tunnistuksessa?

Select the correct answer

question mark

Mikä seuraavista katsotaan vääräksi negatiiviseksi (false negative) objektin tunnistuksessa?

Select the correct answer

question mark

Miten tarkkuus (Precision) lasketaan objektin tunnistuksessa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4

Kysy tekoälyä

expand
ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

course content

Kurssisisältö

Konenäön Perusteet

Konenäön Perusteet

1. Johdatus Tietokonenäköön
2. Kuvankäsittely OpenCV:llä
3. Konvoluutioneuroverkot
4. Esineentunnistus
5. Edistyneiden Aiheiden Yleiskatsaus

book
Leikkaus Unionin Yli (IoU) ja Arviointimittarit

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

12345678910111213141516171819202122232425262728
import 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)
copy

IoU mittarina rajaavan laatikon tarkkuudelle

IoU:ta käytetään yleisesti arvioimaan, kuinka hyvin ennustettu rajaava laatikko vastaa todellista (ground truth) laatikkoa. Korkeammat IoU-arvot osoittavat parempaa osumaa; IoU-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

Määritettäessä, onko havainto oikea (true positive) vai väärä (false positive), asetetaan yleensä IoU-kynnysarvo. Yleisesti käytettyjä kynnysarvoja ovat:

  • IoU > 0.5: katsotaan True Positive (TP);

  • IoU < 0.5: katsotaan False Positive (FP).

Korkeamman IoU-kynnyksen asettaminen lisää tarkkuutta, mutta voi vähentää recall-arvoa, koska harvemmat havainnot täyttävät ehdot.

Arviointimittarit: Precision, Recall ja mAP

IoU:n lisäksi muita arviointimittareita käytetään objektiendistysmallien arviointiin:

  • Precision: mittaa oikein ennustettujen rajaavien laatikoiden osuuden kaikista ennusteista;

Precision=TPTP+FP\text{Precision}=\frac{\text{TP}}{\text{TP}+\text{FP}}
  • Recall: mittaa oikein ennustettujen rajaavien laatikoiden osuuden kaikista todellisista objekteista;

Recall=TPTP+FN\text{Recall}=\frac{\text{TP}}{\text{TP}+\text{FN}}
  • Mean Average Precision (mAP): laskee keskimääräisen precision-arvon eri IoU-kynnyksillä ja objektikategorioissa, tarjoten kattavan arvion mallin suorituskyvystä.

123456789
def 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}")
copy

IoU toimii perustavanlaatuisena mittarina objektiendetektiomallien 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 objektien tunnistuksessa?

2. Mikä seuraavista katsotaan vääräksi negatiiviseksi (false negative) objektin tunnistuksessa?

3. Miten tarkkuus (Precision) lasketaan objektin tunnistuksessa?

question mark

Mitä Intersection over Union (IoU) mittaa objektien tunnistuksessa?

Select the correct answer

question mark

Mikä seuraavista katsotaan vääräksi negatiiviseksi (false negative) objektin tunnistuksessa?

Select the correct answer

question mark

Miten tarkkuus (Precision) lasketaan objektin tunnistuksessa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?
some-alt