Articles

#021 CNN objektum lokalizáció

objektum lokalizáció

az objektum detektálás a számítógépes látás egyik olyan területe, amely felrobban, és sokkal jobban működik, mint néhány évvel ezelőtt. Az objektumérzékelés felépítéséhez először az objektum lokalizációjáról tanulunk. Kezdjük azzal, hogy meghatározzuk, mit jelent ez.

már elmondtuk, hogy a képosztályozási feladat az, hogy megnézzük a képet, és mondjuk, van-e autó vagy sem. A lokalizációval történő besorolás azt jelenti, hogy nem csak egy tárgyat kell autóként címkéznünk, hanem egy határoló dobozt is fel kell tennünk, vagy téglalapot kell rajzolnunk az autó pozíciója körül a képen. A lokalizációs problémával való osztályozás kifejezésben a lokalizáció arra utal, hogy kitaláljuk, hol van a képen az általunk észlelt autó.

megismerjük az észlelési problémát, ahol több objektum lehet a képen, és mindegyiket fel kell fedeznünk és lokalizálni kell. Ha ezt egy autonóm vezetési alkalmazás érdekében tesszük, akkor lehet, hogy nem csak más autókat kell észlelnünk, hanem talán más gyalogosokat, motorkerékpárokat vagy akár más tárgyakat is. Az osztályozás és a lokalizációs problémákkal való osztályozás általában egy nagy tárgyat tartalmaz a kép közepén, amelyet megpróbálunk felismerni vagy felismerni és lokalizálni. Az észlelési problémával ellentétben több objektum is lehet, sőt, akár több, különböző kategóriájú objektum is lehet egyetlen képen belül. A képosztályozással kapcsolatos ötletek hasznosak lesznek a lokalizációval történő osztályozáshoz, majd a lokalizációval kapcsolatos ötletek hasznosnak bizonyulnak a detektáláshoz.

mi a lokalizáció és a detektálás ?

kép osztályozás lokalizációval, objektum lokalizáció

kép osztályozás (balra); osztályozás lokalizációval (középen); több objektum észlelése (jobbra)

kezdjük azzal, hogy a lokalizációval történő osztályozásról beszélünk. Már ismerjük a képosztályozási problémát, amelyben egy képet több rétegű \(convnet\) – be adhatunk be, és ez olyan jellemzők vektorát eredményezi, amelyet esetleg egy \(softmax \) egység táplál, amely kiadja az előre jelzett osztályt.

konvolúciós neurális hálózat softmax kimenettel

a \(convnet \) egy \(softmax \) kimenettel

ha önvezető autót építünk, akkor az objektumkategóriáink lehetnek gyalogos, autó, motorkerékpár és háttér (ez a fentiek egyikét sem jelenti). Tehát, ha nincs gyalogos, nincs autó, nincs motor, akkor lehet, hogy van kimeneti hátterünk. Ez a négy osztályunk, tehát szükségünk van egy \ (softmax\) – ra \(4\) lehetséges kimenetekkel.

mi lenne, ha a képen is lokalizálni szeretnénk az autót ? Ehhez meg tudjuk változtatni a neurális hálózat, hogy van még néhány kimeneti egységek kimeneti határoló doboz. Különösen a neurális hálózat kimenete \ (4\) lehet több szám, és ezek a számok \ (b_x\), \ (b_y\),\ (b_h\), \(b_w\). Ezek a \(4\) számok paraméterezik az észlelt objektum határolókeretét.

a CNN, amely egy határoló doboz helyzetét adja ki

konvolúciós neurális hálózat, amely egy határoló doboz helyzetét adja ki

osztályozás lokalizációval

itt azt a jelölést használjuk, hogy a kép bal felső pontja \((0,0)\), a jobb alsó pedig \((1,1) \).

határoló doboz az autón, , objektum lokalizáció

határoló doboz és koordinátái

a határoló doboz megadása a piros téglalaphoz meg kell adni a középpontot, tehát a \(b_x \), \(b_y \) pontot, valamint a \(b_h\) magasságot, valamint a \(b_w \) szélességet. Ha a képzési készletünk nem csak az objektum osztálycímkét tartalmazza, amelyet a neurális hálózatunk itt fent próbál megjósolni, hanem \(4 \) további számokat is tartalmaz, amelyek megadják a határolódobozt, akkor a felügyelt tanulás segítségével algoritmusunk nem csak osztálycímkét, hanem a \(4 \) paramétereket is kimeneti, hogy megmondja, hol van az észlelt objektum határolódoboza. Ebben a példában a \(b_x\) körülbelül \(0.5\) lehet, mert ez körülbelül félúton van a képhez, \(b_y\) körülbelül \(0.7 \) mivel ez a képhez vezető út körülbelül \(70\) % – a, \(b_h\) körülbelül \(0.3 \) lehet, mert ennek a vörös négyzetnek a magassága a kép teljes magasságának körülbelül \(30\) % – A, és \(b_w \) körülbelül \(0.4 \) lehet, mert a piros négyzet szélessége körülbelül \(0.4 \) A teljes kép teljes szélességének.

a célcímke meghatározása \(y \)

formalizáljuk ezt egy kicsit annak szempontjából, hogy hogyan definiáljuk a célcímkét \(Y \) ehhez felügyelt tanulási feladatként. Határozzuk meg a célcímkét \(Y \). Ez egy vektor lesz, ahol az első komponens \(p_c \) megmutatja, hogy van-e objektum. Ha az objektum egy gyalogos, egy autó vagy egy motorkerékpár, \(p_c \) egyenlő lesz 1-gyel, és ha ez a háttér Osztály (Ha ez nem az általunk észlelt objektumok egyike ), akkor \(p_c \) lesz \(0 \). Azt gondolhatjuk, hogy a \(p_c \) azt a valószínűséget jelenti, hogy van egy objektum, annak a valószínűsége, hogy az egyik osztály, amelyet észlelni próbálunk, ott van, valami más, mint a háttér osztály.

vektorunk \(y \) a következő lenne:

$$ y=\begin{bmatrix} p_{c}\\ b_{x}\\b_{y}\\b_{h}\\b_{h}\\c_{1}\\C_{2}\\c_{3}\end{bmatrix} $$

ezután, ha van egy objektum, akkor ki akarjuk adni \(b_x\), \(b_y\), \(b_h\) és \(B_W\), az észlelt objektum határolókerete. És végül, ha van egy objektum, tehát ha \(p_c =1 \), akkor azt is ki akarjuk adni \(C1 \), \(C2 \) és \(C3\), amely megmondja, hogy a \(class1\), \(class 2 \) vagy \(class 3\), más szóval gyalogos, autó vagy motorkerékpár. Feltételezzük, hogy képünknek csak egy objektuma van, és ezen objektumok közül a legtöbb megjelenik a képen ebben az osztályozásban lokalizációs problémával. Menjünk át néhány példát.

ha az \ (x\) egy edzőkészlet-kép, akkor \ (y\) lesz az első összetevő\ (p_c =1\), mert van egy objektum, akkor \(b_x\), \ (b_y\),\ (b_h\) és \ (b_w\) adja meg a határoló mezőt. Így, a címke képzési készlet szükségünk lesz határoló dobozok a címkéket.

és végül ez egy autó, tehát \(class 2 \). \(C_1=0 \) mert nem gyalogos, \(C_2=1\) mert autó, \(C_3=0\) mivel nem motorkerékpár. A \(C_1,C_2,C_3 \) között legfeljebb az egyiknek \(1\) – nek kell lennie.

$ $ y= \ kezdő{bmatrix}1 \ \ b_{x} \ \ b_{y} \ \ b_{h} \ \ b_{w}\\0\\1\\0 \end{bmatrix} $$

mi van, ha nincs objektum a képen? Ebben az esetben \(p_c=0 \) és ennek a vektornak a többi eleme tetszőleges szám lehet, mert ha ebben a képen nincs objektum,akkor nem érdekel,hogy a neurális hálózat milyen határoló dobozát adja ki, valamint azt, hogy a három objektum közül melyik \(C_1, C_2, C_3\) gondol erre.

$ $ y=\kezdő{bmatrix}0\\?\\?\\?\\?\\?\\?\\? \end{bmatrix} $$

Autókép (balra) - természetkép(jobbra)

példák edzőkészletben lévő képekre

címkézett edzőkészlet alapján így állítjuk össze: \(x\) a bemeneti kép, valamint \(y\) az osztály felcímkézi mind a képeket, ahol van objektum, mind a képeket, ahol nincs objektum, és ezek halmaza határozza meg az edzéskészletet.

Veszteségfüggvény

végül írjuk le a neurális hálózat kiképzéséhez használt veszteségfüggvényt. A föld igazság címke volt \(y \), és a neurális hálózat kimenetek néhány \(\hat{y}\) mit kell a veszteség méh.

$$ L \ left (\hat{y}, y \ right) = \ left (\hat{y}_{1} – Y_{1} \ right) ^{2} + \ left (\hat{y}_{2} – Y_{2} \ right) ^{2}+… + \ left (\hat{y} _ {8}-Y_{8} \ right) ^{2}, y_{1}=1 $$

$$ L \ bal (\kalap{y}, y \ jobb) = \bal (\kalap{y} _ {1}-y_{1} \ Jobb) ^{2}, y_{1}=0 $$

figyeljük meg, hogy \(y \) itt van \(8 \) komponensek (az első sorban a veszteség függvény), úgy, hogy megy összege a négyzetek a különbség az elemek, és ez a veszteség, ha \(y_1 =1\). Ez az eset áll fenn, ha van egy objektum so \(y_1 \) =\(p_c\). Tehát, ha van egy objektum a képen, akkor a veszteség lehet a négyzetek összege az összes különböző elem felett.

a másik eset az if \(y_1 =0.\ ) Ha ez \(p_c=0 \), akkor a veszteség csak \(\hat{y_1}\) mínusz \(y_1\) négyzet lehet, mert ebben a második esetben az összes többi komponens nem fontos. Csak az érdekel, hogy ebben az esetben a neurális hálózat mennyire pontosan adja ki a \(p_c \) kimenetet.

csak egy összefoglaló…

ha \(y_1=1 \), akkor a négyzetes hiba segítségével büntethetjük a négyzetes eltérést a prediktortól, mint mind a nyolc komponens tényleges kimenetei, míg ha \(y_1 =0\), akkor nem érdekel a fennmaradó hét érték. Csak az érdekel, hogy a neurális hálózatunk pontosan becsüli-e a \(y_1 \) értéket, amely egyenlő a \(p_c\) értékkel. Csak egy oldalsó megjegyzés azoknak, akik szeretnék tudni az összes részletet. A négyzethibát csak a leírás egyszerűsítésére használtuk, a gyakorlatban valószínűleg használhatunk valószínűségi veszteséget a \(C1 \ enspace ,C2 \enspace, C3\enspace \) a \(softmax \) kimenethez, de a loos kiszámításakor a négyzethiba jól fog működni.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.