Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ei-maksimin Vaimennus (NMS) | Esineentunnistus
Tietokonenäön Perusteet

bookEi-maksimin Vaimennus (NMS)

Objektintunnistusmallit ennustavat usein useita päällekkäisiä rajauslaatikoita samalle objektille. Tämä johtuu siitä, että mallit tutkivat kuvaa eri mittakaavoissa ja kohdissa, mikä johtaa päällekkäisiin ennusteisiin. Non-Max Suppression (NMS) on olennainen jälkikäsittelyvaihe, joka tarkentaa näitä tunnistuksia valitsemalla olennaisimmat rajauslaatikot ja poistamalla tarpeettomat.

nms

Miksi useita päällekkäisiä laatikoita syntyy

Objektintunnistimet ennustavat useita rajauslaatikoita yhdelle objektille seuraavista syistä:

  • Ankkurilaatikot: jotkin mallit, kuten Faster R-CNN ja YOLO, käyttävät ennalta määriteltyjä erikokoisia ankkurilaatikoita, mikä johtaa useisiin tunnistuksiin samasta objektista;
  • Liukuva ikkuna -menetelmät: jotkin tunnistusmenetelmät tutkivat kuvaa pienissä osissa, mikä aiheuttaa toistuvia tunnistuksia päällekkäisillä alueilla;
  • Korkeat luottamuspisteet: malli antaa jokaiselle ennusteelle luottamuspisteet, ja samankaltaiset ennusteet korkeilla pisteillä voivat olla huomattavan päällekkäisiä.

Jos näitä päällekkäisiä laatikoita ei suodateta, ne voivat heikentää objektintunnistuksen suorituskykyä lisäämällä laskennallista monimutkaisuutta ja tekemällä objektien lukumäärästä epäluotettavan.

Kuinka Non-Max Suppression toimii

NMS:tä käytetään poistamaan päällekkäiset havainnot ja säilyttämään luottamustasoltaan vahvin rajauslaatikko. Menettely etenee seuraavasti:

  • Pisteytyksen järjestäminen: järjestä kaikki ennustetut rajauslaatikot laskevaan järjestykseen niiden luottamuspisteiden perusteella;
  • Parhaan laatikon valinta: valitse korkein pistemäärän saanut laatikko ja lisää se lopulliseen havaintolistaan;
  • IoU:n laskenta: laske Intersection Over Union (IoU) valitun laatikon ja kaikkien jäljellä olevien laatikoiden välillä;
  • Kynnysarvon soveltaminen: poista (suppress) laatikot, joiden IoU ylittää asetetun kynnysarvon (esim. 0.5), koska ne todennäköisesti edustavat samaa objektia;
  • Toisto: jatka tätä prosessia seuraavaksi korkeimman pistemäärän laatikolle, kunnes kaikki laatikot on käsitelty.
import numpy as np

def non_max_suppression(boxes, scores, iou_threshold=0.5):
    # Sort boxes by confidence scores in descending order
    sorted_indices = np.argsort(scores)[::-1]
    selected_boxes = []
    
    while len(sorted_indices) > 0:
        # Pick the highest confidence box
        best_idx = sorted_indices[0]  
        selected_boxes.append(boxes[best_idx])
        
        # Compute IoU with the remaining boxes
        remaining_boxes = boxes[sorted_indices[1:]]
        ious = np.array([compute_iou(boxes[best_idx], box) for box in remaining_boxes])
        
        # Suppress boxes with IoU above threshold
        sorted_indices = sorted_indices[1:][ious < iou_threshold]
    
    return selected_boxes

Soft-NMS: Älykkäämpi vaihtoehto

Tavallinen NMS poistaa kaikki päällekkäiset laatikot, joiden IoU ylittää tietyn kynnysarvon, mikä voi joskus johtaa hyödyllisten havaintojen menetykseen. Soft-NMS parantaa tätä vähentämällä päällekkäisten laatikoiden luottamuspisteitä poistamisen sijaan. Tämä mahdollistaa joustavamman suppressioprosessin ja voi parantaa havaintotarkkuutta tiheissä objektitilanteissa.

Keskeiset erot tavallisen NMS:n ja Soft-NMS:n välillä:

  • Tavallinen NMS: poistaa päällekkäiset laatikot, joiden IoU ylittää kynnysarvon;
  • Soft-NMS: vähentää päällekkäisten laatikoiden luottamuspisteitä poistamisen sijaan, mikä tekee siitä joustavamman osittain peittyneiden objektien tunnistuksessa.

Tarkkuuden ja nopeuden tasapainottaminen NMS:ssä

Oikean IoU-kynnysarvon valinta on ratkaisevaa:

  • Korkeammat kynnysarvot (esim. 0.6 - 0.7): aggressiivisempi suodatus, jolloin vain luotettavimmat laatikot säilytetään, mutta osa oikeista havainnoista voi jäädä pois;
  • Matalammat kynnysarvot (esim. 0.3 - 0.4): säilyttää enemmän päällekkäisiä laatikoita, mikä voi olla hyödyllistä ruuhkaisissa kohtauksissa, mutta voi lisätä vääriä positiivisia.

Optimoitujen toteutusten, kuten TensorFlow'n tai OpenCV:n sisäänrakennettujen NMS-funktioiden, käyttö voi nopeuttaa käsittelyä reaaliaikaisissa sovelluksissa.

Non-Max Suppression on olennainen tekniikka objektien tunnistuksessa, jolla poistetaan päällekkäiset rajauslaatikot ja parannetaan mallin tarkkuutta. Standardi NMS poistaa tehokkaasti päällekkäiset havainnot, kun taas Soft-NMS hienosäätää prosessia säätämällä luottamuspisteitä poistamisen sijaan. Säätelemällä IoU-kynnyksiä voidaan löytää sopiva tasapaino tunnistustarkkuuden ja laskennallisen tehokkuuden välillä.

1. Mikä on Non-Max Suppression (NMS):n päätarkoitus objektien tunnistuksessa?

2. Miten standardi NMS määrittää, mitkä rajauslaatikot poistetaan?

3. Mikä on keskeinen ero standardin NMS:n ja Soft-NMS:n välillä?

question mark

Mikä on Non-Max Suppression (NMS):n päätarkoitus objektien tunnistuksessa?

Select the correct answer

question mark

Miten standardi NMS määrittää, mitkä rajauslaatikot poistetaan?

Select the correct answer

question mark

Mikä on keskeinen ero standardin NMS:n ja Soft-NMS:n välillä?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain how to choose the best IoU threshold for my application?

What are the main advantages of using Soft-NMS over standard NMS?

Can you provide more details on how IoU is calculated?

Awesome!

Completion rate improved to 3.45

bookEi-maksimin Vaimennus (NMS)

Pyyhkäise näyttääksesi valikon

Objektintunnistusmallit ennustavat usein useita päällekkäisiä rajauslaatikoita samalle objektille. Tämä johtuu siitä, että mallit tutkivat kuvaa eri mittakaavoissa ja kohdissa, mikä johtaa päällekkäisiin ennusteisiin. Non-Max Suppression (NMS) on olennainen jälkikäsittelyvaihe, joka tarkentaa näitä tunnistuksia valitsemalla olennaisimmat rajauslaatikot ja poistamalla tarpeettomat.

nms

Miksi useita päällekkäisiä laatikoita syntyy

Objektintunnistimet ennustavat useita rajauslaatikoita yhdelle objektille seuraavista syistä:

  • Ankkurilaatikot: jotkin mallit, kuten Faster R-CNN ja YOLO, käyttävät ennalta määriteltyjä erikokoisia ankkurilaatikoita, mikä johtaa useisiin tunnistuksiin samasta objektista;
  • Liukuva ikkuna -menetelmät: jotkin tunnistusmenetelmät tutkivat kuvaa pienissä osissa, mikä aiheuttaa toistuvia tunnistuksia päällekkäisillä alueilla;
  • Korkeat luottamuspisteet: malli antaa jokaiselle ennusteelle luottamuspisteet, ja samankaltaiset ennusteet korkeilla pisteillä voivat olla huomattavan päällekkäisiä.

Jos näitä päällekkäisiä laatikoita ei suodateta, ne voivat heikentää objektintunnistuksen suorituskykyä lisäämällä laskennallista monimutkaisuutta ja tekemällä objektien lukumäärästä epäluotettavan.

Kuinka Non-Max Suppression toimii

NMS:tä käytetään poistamaan päällekkäiset havainnot ja säilyttämään luottamustasoltaan vahvin rajauslaatikko. Menettely etenee seuraavasti:

  • Pisteytyksen järjestäminen: järjestä kaikki ennustetut rajauslaatikot laskevaan järjestykseen niiden luottamuspisteiden perusteella;
  • Parhaan laatikon valinta: valitse korkein pistemäärän saanut laatikko ja lisää se lopulliseen havaintolistaan;
  • IoU:n laskenta: laske Intersection Over Union (IoU) valitun laatikon ja kaikkien jäljellä olevien laatikoiden välillä;
  • Kynnysarvon soveltaminen: poista (suppress) laatikot, joiden IoU ylittää asetetun kynnysarvon (esim. 0.5), koska ne todennäköisesti edustavat samaa objektia;
  • Toisto: jatka tätä prosessia seuraavaksi korkeimman pistemäärän laatikolle, kunnes kaikki laatikot on käsitelty.
import numpy as np

def non_max_suppression(boxes, scores, iou_threshold=0.5):
    # Sort boxes by confidence scores in descending order
    sorted_indices = np.argsort(scores)[::-1]
    selected_boxes = []
    
    while len(sorted_indices) > 0:
        # Pick the highest confidence box
        best_idx = sorted_indices[0]  
        selected_boxes.append(boxes[best_idx])
        
        # Compute IoU with the remaining boxes
        remaining_boxes = boxes[sorted_indices[1:]]
        ious = np.array([compute_iou(boxes[best_idx], box) for box in remaining_boxes])
        
        # Suppress boxes with IoU above threshold
        sorted_indices = sorted_indices[1:][ious < iou_threshold]
    
    return selected_boxes

Soft-NMS: Älykkäämpi vaihtoehto

Tavallinen NMS poistaa kaikki päällekkäiset laatikot, joiden IoU ylittää tietyn kynnysarvon, mikä voi joskus johtaa hyödyllisten havaintojen menetykseen. Soft-NMS parantaa tätä vähentämällä päällekkäisten laatikoiden luottamuspisteitä poistamisen sijaan. Tämä mahdollistaa joustavamman suppressioprosessin ja voi parantaa havaintotarkkuutta tiheissä objektitilanteissa.

Keskeiset erot tavallisen NMS:n ja Soft-NMS:n välillä:

  • Tavallinen NMS: poistaa päällekkäiset laatikot, joiden IoU ylittää kynnysarvon;
  • Soft-NMS: vähentää päällekkäisten laatikoiden luottamuspisteitä poistamisen sijaan, mikä tekee siitä joustavamman osittain peittyneiden objektien tunnistuksessa.

Tarkkuuden ja nopeuden tasapainottaminen NMS:ssä

Oikean IoU-kynnysarvon valinta on ratkaisevaa:

  • Korkeammat kynnysarvot (esim. 0.6 - 0.7): aggressiivisempi suodatus, jolloin vain luotettavimmat laatikot säilytetään, mutta osa oikeista havainnoista voi jäädä pois;
  • Matalammat kynnysarvot (esim. 0.3 - 0.4): säilyttää enemmän päällekkäisiä laatikoita, mikä voi olla hyödyllistä ruuhkaisissa kohtauksissa, mutta voi lisätä vääriä positiivisia.

Optimoitujen toteutusten, kuten TensorFlow'n tai OpenCV:n sisäänrakennettujen NMS-funktioiden, käyttö voi nopeuttaa käsittelyä reaaliaikaisissa sovelluksissa.

Non-Max Suppression on olennainen tekniikka objektien tunnistuksessa, jolla poistetaan päällekkäiset rajauslaatikot ja parannetaan mallin tarkkuutta. Standardi NMS poistaa tehokkaasti päällekkäiset havainnot, kun taas Soft-NMS hienosäätää prosessia säätämällä luottamuspisteitä poistamisen sijaan. Säätelemällä IoU-kynnyksiä voidaan löytää sopiva tasapaino tunnistustarkkuuden ja laskennallisen tehokkuuden välillä.

1. Mikä on Non-Max Suppression (NMS):n päätarkoitus objektien tunnistuksessa?

2. Miten standardi NMS määrittää, mitkä rajauslaatikot poistetaan?

3. Mikä on keskeinen ero standardin NMS:n ja Soft-NMS:n välillä?

question mark

Mikä on Non-Max Suppression (NMS):n päätarkoitus objektien tunnistuksessa?

Select the correct answer

question mark

Miten standardi NMS määrittää, mitkä rajauslaatikot poistetaan?

Select the correct answer

question mark

Mikä on keskeinen ero standardin NMS:n ja Soft-NMS:n välillä?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 5
some-alt