ml.utils — ML segédeszközök¶
A ml.utils modul a gépi tanuláshoz használható segédosztályokat és -függvényeket tartalmaz.
Függvények¶
- ml.utils.sigmoid(x: ndarray) ndarray¶
Visszaadja az átadott
ndarrayösszes értékének szigmoid értékét.
- ml.utils.threshold(scores: ndarray, threshold: float, scale: float, find_max: bool = False, find_max_axis: int = 1) ndarray¶
Küszöböli a
scoresértékeit (int8, uint8, int16 vagy uint16 típusú kvantáltndarray) egy kvantáltthresholdsegítségével, és visszaad egyndarraytömböt a küszöbértéket meghaladó összes indexszel.A
scalealapján dől el, hogy a dekvantált értékek pozitívak vagy negatívak. Hascale > 0, akkor azok az indexek kerülnek visszaadásra, aholscores > threshold; egyébként azok, aholscores < threshold.A
find_maxha True, akkor ascorestömböt belsőleg lecseréli egyndarraytömbre, amely afind_max_axismentén vett maximumokat (vagy minimumokat, ascalefüggvényében) tartalmazza.A
find_max_axisaz a tengely, amely mentén a maximum/minimum redukció kiszámításra kerül, amikor afind_maxTrue.
- ml.utils.quantize(model: ml.Model, value: ndarray, index: int = 0) ndarray¶
Az átadott
ndarraytömböt a skálával való osztással és a modell nullpontjának hozzáadásával konvertálja. Avalueváltozatlanul kerül visszaadásra, ha a modell kimeneti dtype-ja azindexhelyen float.A
modelaz a modell, amelynek kimeneti kvantálási paraméterei kerülnek felhasználásra.A
valuea kvantálandóndarray.Az
indexválasztja ki, hogy amodelmelyik tenzorkimenetéhez képest történjen a kvantálás.
- ml.utils.dequantize(model: ml.Model, value: ndarray, index: int = 0) ndarray¶
Az átadott
ndarraytömböt a nullpont kivonásával, majd a modell skálájával való szorzással konvertálja. Avalueváltozatlanul kerül visszaadásra, ha a modell kimeneti dtype-ja azindexhelyen float.A
modelaz a modell, amelynek kimeneti kvantálási paraméterei kerülnek felhasználásra.A
valuea dekvantálandóndarray.Az
indexválasztja ki, hogy amodelmelyik tenzorkimenetéhez képest történjen a dekvantálás.
- 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¶
Határoló dobozokat (vagy középpontjelölőket) rajzol szöveges címkékkel az
imageképre.A
boxes(x, y, w, h)tuple-ök listája.A
labelscímkesztringek listája, dobozonként egy.A
colors(r, g, b)tuple-ök listája, dobozonként egy.A
scoresha nemNone, akkor a dobozonkénti megbízhatósági pontszámok listája. Megadása esetén minden megjelenített címke ki lesz egészítve a" %.2f"formátumban formázott pontszámmal.A
formatszabályozza, hogyan kerülnek értelmezésre a doboz koordinátái:"pascal_voc"– normalizált(xmin, ymin, xmax, ymax)a0.0és1.0közötti tartományban."point"– abszolút képpont(x, y, w, h); téglalap helyett egy kitöltött kör jelölő kerül rajzolásra a doboz közepén (középpont-detektorokhoz hasznos).bármely más érték – abszolút képpont
(x, y, w, h); téglalapként kerül rajzolásra.
A
font_widtha címke minden egyes karakterének szélessége képpontban.A
font_heighta címke hátterének magassága képpontban.A
text_colora címke szövegéhez használt(r, g, b)szín.
- 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¶
Kulcspont
(x, y, ...)értékekndarraytömbjét rajzolja azimageképre.A
radiusa kulcspont köre sugara. Haradius == 0, a kulcspontok egyetlen képpontként kerülnek kirajzolásra.A
colora kulcspont(r, g, b)színe.A
thicknessa kör körvonalának vastagsága.A
fillha True, kitölti a kulcspont köröket.
- 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¶
Kulcspont
(x, y, ...)értékekndarraytömbjét rajzolja azimageképre, majd vonalszakaszokkal összeköti őket.A
lines(kp0_idx, kp1_idx)tuple-ök listája, amely megadja, mely kulcspontpárokat kell összekötni.A
kp_radiusa kulcspont köre sugara (továbbadva adraw_keypointsfüggvénynek).A
kp_colora kulcspont(r, g, b)színe.A
kp_thicknessa kulcspont köre körvonalának vastagsága.A
kp_fillha True, kitölti a kulcspont köröket.A
line_colora vonal(r, g, b)színe.A
line_thicknessa vonal vastagsága.
class NMS – Soft-Non-Maximum Suppression¶
Az NMS objektum összegyűjt egy listát határoló dobozokról a hozzájuk tartozó pontszámokkal, Soft-NMS segítségével kiszűri az alacsonyabb pontszámú átfedő dobozokat, és visszaképezi az al-ablakban észlelt dobozokat az eredeti kép koordinátáira.
- class ml.utils.NMS(window_w: int, window_h: int, roi: tuple[int, int, int, int])¶
Létrehoz egy
NMSobjektumot.A
window_wéswindow_ha modell bemeneti tenzorjának / ablakának szélessége és magassága.A
roiaz eredeti kép(x, y, w, h)érdeklődési területe, amelyen a modell futott (jellemzően aNormalization()objektum adja vissza). Arra szolgál, hogy az észlelt dobozokat visszaképezze az eredeti kép koordináta-rendszerébe. Aroi[2]ésroi[3]értékének >= 1-nek kell lennie.- add_bounding_box(xmin: float, ymin: float, xmax: float, ymax: float, score: float, label_index: int, keypoints: ndarray | None = None) None¶
Hozzáad egy határoló dobozt az
NMSobjektumhoz. A[0.0, 1.0]tartományon kívüliscoreértékkel rendelkező, vagy a vágás után nulla/negatív szélességű vagy magasságú dobozok eldobásra kerülnek.Az
xmin,ymin,xmax,ymaxa határoló doboz koordinátái az ablak képpont-terében, a[0, window_w]/[0, window_h]tartományra vágva.A
scorea határoló doboz megbízhatósági pontszáma (0.0-1.0).A
label_indexa határoló dobozhoz tartozó osztálycímke indexe.A
keypointsegy opcionálisndarraya kulcspont(x, y, ...)értékekkel, amelyek ehhez a határoló dobozhoz tartoznak.
- get_bounding_boxes(threshold: float = 0.1, sigma: float = 0.1) list[list[tuple]]¶
Soft-NMS-t végez az összes hozzáadott dobozon, és visszaad egy
label_indexszerint indexelt, osztályonkénti listákból álló listát. Minden belső lista((x, y, w, h), score)tuple-öket tartalmaz, amelyek vissza vannak képezve az eredeti kép koordinátáira. Ha a hozzáadáskorkeypointsis meg lett adva, a tuple kibővül a visszaképezettkeypointsndarraytömbbel.A metódus meghívása után hozzon létre egy új
NMSobjektumot egy új határoló doboz halmaz feldolgozásához.A
thresholdaz a minimális pontszám, amelyet egy doboznak a Soft-NMS elnyomás után meg kell tartania ahhoz, hogy megmaradjon.A
sigmaszabályozza az átfedő határoló dobozok pontszámának büntetésére használt Gauss-függvényt. A kisebbsigmaagresszívabb elnyomást eredményez. Asigma <= 0.0letiltja a Gauss-büntetést (az átfedő dobozok pontszámai nem csökkennek).