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 (kvantisoitundarray, joka on tyyppiä int8, uint8, int16 tai uint16) kvantisoidullathreshold-arvolla ja palauttaandarray-taulukon kaikista indekseistä, jotka ylittävät kynnysarvon.scaletestataan sen määrittämiseksi, ovatko dekvantisoidut arvot positiivisia vai negatiivisia. Kunscale > 0, palautetaan indeksit, joissascores > threshold; muutoin palautetaan indeksit, joissascores < threshold.find_maxkorvaa, jos True, sisäisestiscores-arvotndarray-taulukolla, joka sisältää maksimit (tai minimitscale-arvosta riippuen) akselillafind_max_axis.find_max_axison akseli, jota pitkin maksimi-/minimisupistus lasketaan, kunfind_maxon 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. Palauttaavalue-arvon muuttumattomana, kun mallin ulostulon dtype indeksissäindexon float.modelon malli, jonka ulostulon kvantisointiparametreja käytetään.valueon kvantisoitavandarray.indexvalitsee, mihinmodel-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. Palauttaavalue-arvon muuttumattomana, kun mallin ulostulon dtype indeksissäindexon float.modelon malli, jonka ulostulon kvantisointiparametreja käytetään.valueon dekvantisoitavandarray.indexvalitsee, mihinmodel-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.boxeson lista(x, y, w, h)-monikkoja.labelson lista luokkanimimerkkijonoja, yksi kutakin laatikkoa kohti.colorson lista(r, g, b)-monikkoja, yksi kutakin laatikkoa kohti.scoreson, jos eiNone, lista laatikkokohtaisia luottamuspisteytyksiä. Kun se annetaan, jokaiseen piirrettyyn luokkanimeen liitetään pisteytys muodossa" %.2f".formatohjaa, miten laatikon koordinaatit tulkitaan:"pascal_voc"– normalisoitu(xmin, ymin, xmax, ymax)välillä0.0–1.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_widthon luokkanimen kunkin merkin leveys pikseleinä.font_heighton luokkanimen taustan korkeus pikseleinä.text_coloron 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, ...)-arvojaimage-kuvaan.radiuson avainpisteen ympyrän säde. Kunradius == 0, avainpisteet piirretään yksittäisinä pikseleinä.coloron avainpisteen(r, g, b)-väri.thicknesson ympyrän ääriviivan paksuus.filltä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, ...)-arvojaimage-kuvaan ja yhdistää ne sitten viivasegmenteillä.lineson lista(kp0_idx, kp1_idx)-monikkoja, jotka määrittävät, mitkä avainpisteparit yhdistetään.kp_radiuson avainpisteen ympyrän säde (välitetään edelleendraw_keypoints-funktiolle).kp_coloron avainpisteen(r, g, b)-väri.kp_thicknesson avainpisteen ympyrän ääriviivan paksuus.kp_filltäyttää avainpisteen ympyrät, jos True.line_coloron viivan(r, g, b)-väri.line_thicknesson 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_wjawindow_hovat mallin syötetensorin/ikkunan leveys ja korkeus.roion alkuperäisen kuvan(x, y, w, h)-kohdealue, jolla malli ajettiin (tyypillisestiNormalization()-objektin palauttama). Käytetään tunnistettujen laatikoiden muuntamiseen takaisin alkuperäisen kuvan koordinaattiavaruuteen.roi[2]jaroi[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, joidenscoreon 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,ymaxovat rajauslaatikon koordinaatit ikkunan pikseliavaruudessa, leikattuna välille[0, window_w]/[0, window_h].scoreon rajauslaatikon luottamuspisteytys (0.0-1.0).label_indexon rajauslaatikkoon liittyvän luokkanimen indeksi.keypointson valinnainenndarrayavainpisteiden(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. Joskeypointsannettiin lisättäessä, monikkoa laajennetaan muunnetullakeypoints-ndarray-taulukolla.Kun olet kutsunut tätä metodia, luo uusi
NMS-objekti uuden rajauslaatikkojoukon käsittelemiseksi.thresholdon vähimmäispisteytys, joka laatikon on säilytettävä Soft-NMS-vaimennuksen jälkeen, jotta se pidetään.sigmaohjaa Gaussin funktiota, jota käytetään päällekkäisten rajauslaatikoiden pisteytysten rankaisemiseen. Pienempisigmajohtaa aggressiivisempaan vaimennukseen.sigma <= 0.0poistaa Gaussin rangaistuksen käytöstä (päällekkäisten laatikoiden pisteytyksiä ei vaimenneta).