ml.utils — ML-apuohjelmat

ml.utils-moduuli sisältää aputyökaluluokkia ja -funktioita koneoppimista varten.

Funktiot

ml.utils.logit(x: ndarray) ndarray

Palauttaa logit-arvon kaikille välitetyn ndarray-taulukon arvoille.

ml.utils.sigmoid(x: ndarray) ndarray

Palauttaa sigmoid-arvon kaikille välitetyn ndarray-taulukon arvoille.

ml.utils.threshold(scores: ndarray, threshold: float, scale: float, find_max: bool = False, find_max_axis: int = 1) ndarray

Kynnystää scores-arvot (kvantisoitu ndarray, joka on tyyppiä int8, uint8, int16 tai uint16) kvantisoidulla threshold-arvolla ja palauttaa ndarray-taulukon kaikista indekseistä, jotka ylittävät kynnysarvon.

scale testataan sen määrittämiseksi, ovatko dekvantisoidut arvot positiivisia vai negatiivisia. Kun scale > 0, palautetaan indeksit, joissa scores > threshold; muutoin palautetaan indeksit, joissa scores < threshold.

find_max korvaa, jos True, sisäisesti scores-arvot ndarray-taulukolla, joka sisältää maksimit (tai minimit scale-arvosta riippuen) akselilla find_max_axis.

find_max_axis on akseli, jota pitkin maksimi-/minimisupistus lasketaan, kun find_max on True.

ml.utils.quantize(model: ml.Model, value: ndarray, index: int = 0) ndarray

Muuntaa välitetyn ndarray-taulukon jakamalla skaalalla ja lisäämällä mallin nollapisteen. Palauttaa value-arvon muuttumattomana, kun mallin ulostulon dtype indeksissä index on float.

model on malli, jonka ulostulon kvantisointiparametreja käytetään.

value on kvantisoitava ndarray.

index valitsee, mihin model-mallin tensoriulostuloon kvantisointi tehdään.

ml.utils.dequantize(model: ml.Model, value: ndarray, index: int = 0) ndarray

Muuntaa välitetyn ndarray-taulukon vähentämällä nollapisteen ja kertomalla sen jälkeen mallin skaalalla. Palauttaa value-arvon muuttumattomana, kun mallin ulostulon dtype indeksissä index on float.

model on malli, jonka ulostulon kvantisointiparametreja käytetään.

value on dekvantisoitava ndarray.

index valitsee, mihin model-mallin tensoriulostuloon dekvantisointi tehdään.

ml.utils.draw_predictions(image: image.Image, boxes: list[tuple[float, float, float, float]], labels: list[str], colors: list[tuple[int, int, int]], scores: list[float] | None = None, format: str = 'pascal_voc', font_width: int = 8, font_height: int = 10, text_color: tuple[int, int, int] = (255, 255, 255)) None

Piirtää rajauslaatikoita (tai keskipistemerkkejä) tekstiluokkanimillä image-kuvaan.

boxes on lista (x, y, w, h)-monikkoja.

labels on lista luokkanimimerkkijonoja, yksi kutakin laatikkoa kohti.

colors on lista (r, g, b)-monikkoja, yksi kutakin laatikkoa kohti.

scores on, jos ei None, lista laatikkokohtaisia luottamuspisteytyksiä. Kun se annetaan, jokaiseen piirrettyyn luokkanimeen liitetään pisteytys muodossa " %.2f".

format ohjaa, miten laatikon koordinaatit tulkitaan:

  • "pascal_voc" – normalisoitu (xmin, ymin, xmax, ymax) välillä 0.01.0.

  • "point" – absoluuttinen pikseli (x, y, w, h); laatikon keskelle piirretään täytetty ympyrämerkki suorakulmion sijaan (hyödyllinen keskipistetunnistimille).

  • mikä tahansa muu arvo – absoluuttinen pikseli (x, y, w, h); piirretään suorakulmiona.

font_width on luokkanimen kunkin merkin leveys pikseleinä.

font_height on luokkanimen taustan korkeus pikseleinä.

text_color on luokkanimen tekstin (r, g, b)-väri.

ml.utils.draw_keypoints(image: image.Image, keypoints: ndarray, radius: int = 4, color: tuple[int, int, int] = (255, 0, 0), thickness: int = 1, fill: bool = False) None

Piirtää ndarray-taulukon avainpisteiden (x, y, ...)-arvoja image-kuvaan.

radius on avainpisteen ympyrän säde. Kun radius == 0, avainpisteet piirretään yksittäisinä pikseleinä.

color on avainpisteen (r, g, b)-väri.

thickness on ympyrän ääriviivan paksuus.

fill täyttää avainpisteen ympyrät, jos True.

ml.utils.draw_skeleton(image: image.Image, keypoints: ndarray, lines: list[tuple[int, int]], kp_radius: int = 4, kp_color: tuple[int, int, int] = (255, 0, 0), kp_thickness: int = 1, kp_fill: bool = False, line_color: tuple[int, int, int] = (0, 255, 0), line_thickness: int = 1) None

Piirtää ndarray-taulukon avainpisteiden (x, y, ...)-arvoja image-kuvaan ja yhdistää ne sitten viivasegmenteillä.

lines on lista (kp0_idx, kp1_idx)-monikkoja, jotka määrittävät, mitkä avainpisteparit yhdistetään.

kp_radius on avainpisteen ympyrän säde (välitetään edelleen draw_keypoints-funktiolle).

kp_color on avainpisteen (r, g, b)-väri.

kp_thickness on avainpisteen ympyrän ääriviivan paksuus.

kp_fill täyttää avainpisteen ympyrät, jos True.

line_color on viivan (r, g, b)-väri.

line_thickness on viivan paksuus.

class NMS – Soft-Non-Maximum Suppression

NMS-objekti kerää listan rajauslaatikoita liittyvine pisteytyksineen, suodattaa päällekkäiset laatikot, joilla on alempi pisteytys, Soft-NMS-menetelmällä ja muuntaa aliotoksessa tunnistetut laatikot takaisin alkuperäisen kuvan koordinaatteihin.

class ml.utils.NMS(window_w: int, window_h: int, roi: tuple[int, int, int, int])

Luo NMS-objektin.

window_w ja window_h ovat mallin syötetensorin/ikkunan leveys ja korkeus.

roi on alkuperäisen kuvan (x, y, w, h)-kohdealue, jolla malli ajettiin (tyypillisesti Normalization()-objektin palauttama). Käytetään tunnistettujen laatikoiden muuntamiseen takaisin alkuperäisen kuvan koordinaattiavaruuteen. roi[2] ja roi[3] on oltava >= 1.

add_bounding_box(xmin: float, ymin: float, xmax: float, ymax: float, score: float, label_index: int, keypoints: ndarray | None = None) None

Lisää rajauslaatikon NMS-objektiin. Laatikot, joiden score on välin [0.0, 1.0] ulkopuolella tai joiden leveys tai korkeus on nolla tai negatiivinen leikkauksen jälkeen, hylätään.

xmin, ymin, xmax, ymax ovat rajauslaatikon koordinaatit ikkunan pikseliavaruudessa, leikattuna välille [0, window_w] / [0, window_h].

score on rajauslaatikon luottamuspisteytys (0.0-1.0).

label_index on rajauslaatikkoon liittyvän luokkanimen indeksi.

keypoints on valinnainen ndarray avainpisteiden (x, y, ...)-arvoja, jotka liittyvät tähän rajauslaatikkoon.

get_bounding_boxes(threshold: float = 0.1, sigma: float = 0.1) list[list[tuple]]

Suorittaa Soft-NMS:n kaikille lisätyille laatikoille ja palauttaa listan luokkakohtaisia listoja, indeksoituna label_index-arvon mukaan. Kukin sisälista sisältää ((x, y, w, h), score)-monikkoja, jotka on muunnettu takaisin alkuperäisen kuvan koordinaatteihin. Jos keypoints annettiin lisättäessä, monikkoa laajennetaan muunnetulla keypoints-ndarray-taulukolla.

Kun olet kutsunut tätä metodia, luo uusi NMS-objekti uuden rajauslaatikkojoukon käsittelemiseksi.

threshold on vähimmäispisteytys, joka laatikon on säilytettävä Soft-NMS-vaimennuksen jälkeen, jotta se pidetään.

sigma ohjaa Gaussin funktiota, jota käytetään päällekkäisten rajauslaatikoiden pisteytysten rankaisemiseen. Pienempi sigma johtaa aggressiivisempaan vaimennukseen. sigma <= 0.0 poistaa Gaussin rangaistuksen käytöstä (päällekkäisten laatikoiden pisteytyksiä ei vaimenneta).