Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Non-Maximaalinen Suppressio (NMS) | Osio
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Soveltava tietokonenäkö

bookNon-Maximaalinen Suppressio (NMS)

Pyyhkäise näyttääksesi valikon

Objektintunnistusmallit ennustavat usein useita päällekkäisiä rajauslaatikoita samalle objektille. Tämä johtuu siitä, että mallit skannaavat kuvaa eri mittakaavoissa ja kohdissa, mikä johtaa päällekkäisiin ennusteisiin. Non-Max Suppression (NMS) on olennainen jälkikäsittelyvaihe, joka tarkentaa näitä havaintoja 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 havaintoihin samasta objektista;
  • Liukuva ikkuna -menetelmät: jotkin tunnistusmenetelmät skannaavat kuvaa pienissä osissa, mikä aiheuttaa toistuvia havaintoja objektista päällekkäisillä alueilla;
  • Korkeat luottamuspisteet: malli antaa jokaiselle ennusteelle luottamuspisteen, ja samankaltaiset ennusteet korkealla luottamuksella voivat olla merkittävästi 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ääristä epäluotettavia.

Kuinka Non-Max Suppression toimii

NMS:ää 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ä saanut laatikko ja lisää se lopulliseen havaintolistaan;
  • IoU-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 kuvaavat samaa kohdetta;
  • 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ä kohdeympäristöissä.

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 kohteiden tunnistamiseen.

Tarkkuuden ja nopeuden tasapainottaminen NMS:ssä

Oikean IoU-kynnysarvon valinta on ratkaisevaa:

  • Korkeammat kynnysarvot (esim. 0.6 - 0.7): aggressiivisempi suodatus, jolloin säilytetään vain luotettavimmat laatikot, mutta osa oikeista havainnoista voi jäädä pois;
  • Matala kynnysarvo (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 havaintoja.

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

Non-Max Suppression on olennainen tekniikka objektintunnistuksessa, 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 objektintunnistuksessa?

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 objektintunnistuksessa?

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 1. Luku 23

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 1. Luku 23
some-alt