2021-as útmutató a szemantikus szegmentációhoz

Forrás csomópont: 872271

Intro

A mélytanulás nagyon sikeresnek bizonyult a képekkel, mint adatokkal való munka során, és jelenleg olyan szakaszban van, ahol több felhasználási esetben jobban működik, mint az emberek. A számítógépes látással kapcsolatos legfontosabb problémák, amelyek az embereket érdekelték képosztályozás, tárgyfelismerés és szegmentálás nehézségük növekvő sorrendjében.

A képosztályozás egyszerű régi feladatában csak az érdekelt bennünket, hogy megkapjuk a képen található összes objektum címkéit. Az objektumészlelésben továbblépünk egy lépéssel, és a határoló dobozok segítségével próbáljuk megtudni, hogy mi minden objektum van jelen a képen, hol vannak az objektumok. A képszegmentálás új szintre emeli azáltal, hogy megpróbálja pontosan kideríteni a képen látható objektumok pontos határait.

Forrás: http://cs224d.stanford.edu/index.html

Ebben a cikkben végigmegyünk a képszegmentálás ezen koncepcióján, megvitatjuk a releváns használati eseteket, a különböző neurális hálózati architektúrákat, amelyek részt vesznek az eredmények elérésében, valamint a metrikákat és a feltárandó adatkészleteket.

Mi az a képszegmentálás

Tudjuk, hogy egy kép nem más, mint pixelek gyűjteménye. A képszegmentálás az a folyamat, amely során a kép minden egyes pixelét besorolják egy bizonyos osztályba, és ezért pixelenkénti osztályozási problémának tekinthető. A szegmentációs technikáknak két típusa van

Source http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture11.pdf
  1. Szemantikus szegmentálás :- A szemantikus szegmentálás egy adott címkéhez tartozó minden egyes képpont osztályozásának folyamata. Nem különbözik ugyanazon objektum különböző példányaiban. Ha például 2 macska van egy képen, a szemantikai szegmentálás mindkét macska összes pixeléhez ugyanazt a címkét adja.
  2. Példányszegmentálás :- A példányszegmentálás abban különbözik a szemantikai szegmentálástól, hogy egyedi címkét ad egy adott objektum minden példányához a képen. Amint a fenti képen látható, mind a 3 kutyához különböző színek, azaz különböző címkék vannak hozzárendelve. Szemantikai szegmentálással mindegyik ugyanazt a színt kapta volna.

Tehát most el fogunk jutni arra a pontra, ahol szükségünk van egy ilyen típusú algoritmusra

A képszegmentálás használati esetei

Kézírás felismerés :- Junjo és mindenki bemutatta, hogyan használják a szemantikai szegmentálást szavak és sorok kinyerésére a kézzel írt dokumentumokból. 2019-es kutatási cikk hogy felismerje a kézzel írt karaktereket

forrás

Google portré mód :- Sok olyan használati eset van, amikor feltétlenül szükséges az előtér és a háttér elkülönítése. Például a Google portré módban a hátteret elmosva láthatjuk, miközben az előtér változatlan marad, hogy hűvös hatást keltsen

Forrás:- https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

YouTube-történetek :- A Google a közelmúltban kiadott egy YouTube-sztorik funkciót a tartalomkészítők számára, hogy különböző háttereket mutassanak be történetek készítése közben.

Forrás:- https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

Virtuális smink :- A virtuális ajakrúzs felvitele immár a képszegmentálás segítségével lehetséges

Forrás:- https://www.theverge.com/2017/3/16/14946086/sephora-virtual-assistant-ios-app-update-ar-makeup

4. Virtuális próba :- A ruhák virtuális felpróbálása egy érdekes funkció, amely az üzletekben elérhető volt speciális hardver segítségével, amely 3D-s modellt készít. De a mély tanulással és a képszegmentációval ugyanez elérhető csupán egy 2D-s kép használatával

Forrás:- https://arxiv.org/pdf/1807.07688.pdf

Vizuális képkeresés :- A ruhák szegmentálásának gondolatát az e-kereskedelem kép-visszakereső algoritmusaiban is használják. Például a Pinterest/Amazon lehetővé teszi, hogy bármilyen képet töltsön fel, és hasonló, hasonló kinézetű termékeket kapjon, ha képkeresést végez a ruha rész szegmentálása alapján.

Forrás:- https://github.com/paucarre/tiefvision

Önjáró autók :- Az önvezető autóknak teljes mértékben meg kell érteniük a környezetüket a pixel tökéletes szintjéig. Ezért a képszegmentálást a sávok és egyéb szükséges információk azonosítására használják

Forrás:- https://medium.com/intro-to-artificial-intelligence/semantic-segmentation-udaitys-self-driving-car-engineer-nanodegree-c01eb6eaf9d

A Nanonets segít a Fortune 500 vállalatnak abban, hogy a szemantikus szegmentáció segítségével nagyobb méretű ügyfélélményt nyújtson.

Módszerek és technikák

A mély tanulás megjelenése előtt a klasszikus gépi tanulási technikákat, mint az SVM, a Random Forest, a K-means Clustering, alkalmazták a képszegmentálás problémájának megoldására. De mint a legtöbb képpel kapcsolatos problémamegnyilatkozás esetében, a mélytanulás átfogóan jobban működött, mint a meglévő technikák, és mára normává vált a szemantikus szegmentációval kapcsolatban. Tekintsük át a probléma megoldására használt technikákat

Teljesen konvolúciós hálózat

A CNN általános architektúrája néhány konvolúciós és pooling rétegből áll, majd néhány teljesen összekapcsolt rétegből áll a végén. A Fully Convolutional Network 2014-ben megjelent tanulmánya azt állítja, hogy a végső, teljesen összekapcsolt réteg egy 1×1-es konvolúciónak tekinthető, amely az egész régiót lefedi.

Forrás:- https://arxiv.org/abs/1411.4038

Így a végső sűrű rétegek helyettesíthetők egy konvolúciós réteggel, amely ugyanazt az eredményt éri el. De most ennek az az előnye, hogy a bemenet méretét már nem kell rögzíteni. Sűrű rétegek bevonásakor a bemenet mérete korlátozott, ezért ha más méretű bemenetet kell megadni, azt át kell méretezni. De ha egy sűrű réteget konvolúcióval helyettesítünk, ez a megszorítás nem létezik.

Akkor is, ha nagyobb méretű képet adunk meg bemenetként, az előállított kimenet egy jellemzőtérkép lesz, és nem csak egy osztálykimenet, mint egy normál bemeneti méretű kép esetében. A végső tereptérkép megfigyelt viselkedése is a kívánt osztály hőtérképét reprezentálja, azaz az objektum pozíciója kiemelve van a tereptérképen. Mivel a jellemzőtérkép kimenete a kívánt objektum hőtérképe, ez érvényes információ a szegmentálási esetünkhöz.

Mivel a kimeneti rétegen kapott jellemzőtérkép lefelé mintavételezett a végrehajtott konvolúciók halmaza miatt, szeretnénk felfelé mintavételezni egy interpolációs technikával. A bilineáris felfelé mintavétel működik, de a tanulmány a tanult felfelé mintavételt javasolja dekonvolúcióval, amely akár nemlineáris felfelé mintavételt is megtanulhat.

A hálózat lefelé mintavételezési részét kódolónak, a felfelé irányuló mintavételezési részt dekódernek nevezzük. Ez egy olyan minta, amelyet sok architektúrában látni fogunk, például a méret csökkentése kódolóval, majd a mintavételezés dekóderrel. Egy ideális világban nem szeretnénk a mintavételt lecsökkenteni pooling használatával, és végig ugyanazt a méretet tartani, de ez hatalmas mennyiségű paraméterhez vezetne, és számításilag kivitelezhetetlen lenne.

Forrás:- https://arxiv.org/abs/1411.4038

Bár a kapott kimeneti eredmények megfelelőek, a megfigyelt kimenet durva és nem egyenletes. Ennek az az oka, hogy a konvolúciós rétegeket használó 32-szeres mintavételezés következtében az utolsó jellemző réteg információvesztése. Most már nagyon nehéz lesz a hálózat számára 32-szeres felmintavételezést végrehajtani ennek a kis információnak a felhasználásával. Ezt az architektúrát FCN-32-nek hívják

A probléma megoldására a cikk két másik FCN-2, FCN-16 architektúrát javasolt. Az FCN-8-ban az előző pooling réteg információit használják a végső jellemzőtérképpel együtt, így most a hálózat feladata a 16-szoros mintavétel megtanulása, ami jobb az FCN-16-höz képest. Az FCN-32 megpróbálja még jobbá tenni azáltal, hogy még egy korábbi pooling rétegből származó információkat tartalmaz.

Unet

Az U-net felülről a teljesen konvolúciós hálózatra épít. Orvosi célokra építették, hogy daganatokat találjanak a tüdőben vagy az agyban. Tartalmaz továbbá egy kódolót, amely lemintázza a bemeneti képet egy jellemzőtérképre, és egy dekódolóból, amely felfelé mintát vesz a jellemzőleképezésből a bemeneti képmérethez a tanult dekonvolúciós rétegek segítségével.

Forrás:- https://arxiv.org/abs/1505.04597

Az U-Net architektúra fő hozzájárulása a parancsikon-kapcsolatok. Fentebb láttuk az FCN-ben, hogy mivel a kódoló részeként lemintázunk egy képet, sok olyan információt veszítettünk el, amelyeket nem lehet könnyen visszaállítani a kódoló részben. Az FCN ezt úgy próbálja megoldani, hogy a végső szolgáltatási réteg előtt a pooling rétegekből veszi az információkat.

Az U-Net új megközelítést javasol ennek az információvesztési problémának a megoldására. Azt javasolja, hogy információt küldjenek a dekóder minden felfelé mintavételi rétegére a kódoló megfelelő lefelé irányuló mintavételi rétegéből, amint az a fenti ábrán látható, így finomabb információkat rögzítve, miközben a számítási mennyiséget is alacsony szinten tartja. Mivel a kódoló elején lévő rétegek több információval rendelkeznének, a bemeneti képeknek megfelelő finom részletekkel erősítenék a dekóder felfelé mintavételezési műveletét, így jelentősen javítva az eredményeket. A cikk egy új veszteségfüggvény alkalmazását is javasolta, amelyet az alábbiakban tárgyalunk.

DeepLab

A Google kutatóinak egy csoportjától származó Deeplab számos technikát javasolt a meglévő eredmények javítására és finomabb eredmények elérésére alacsonyabb számítási költségek mellett. A kutatás részeként javasolt 3 fő fejlesztés a következő

1) Atrous kanyarulatok
2) Atrous Spatial Pyramidal Pooling
3) Feltételes véletlenszerű mezők használata a végső kimenet javítására
Beszéljünk mindezekről

Atrous Convolution

Az FCN megközelítés egyik fő problémája az egymást követő pooling műveletek miatti túlzott létszámleépítés. A sorozatos összevonás miatt a bemeneti kép mintavételezése 32-szeresére csökken, ami ismét felfelé történik a szegmentálási eredmény eléréséhez. A 32-szeres mintavételezés információvesztést eredményez, ami nagyon fontos a szegmentálási feladat finom kimenetének eléréséhez. A minta 32-szeres növelésére történő dekonvolúció is számítási és memóriaigényes művelet, mivel további paraméterek is részt vesznek a betanult mintavételezés kialakításában.

A cikk az Atrous konvolúció vagy a lyukkonvolúció vagy a dilatált konvolúció használatát javasolja, ami segít a nagy kontextus megértésében, azonos számú paraméter használatával.

Source:- https://www.mdpi.com/1424-8220/19/24/5361/htm

A dilatált konvolúció úgy működik, hogy növeli a szűrő méretét nullák (úgynevezett lyukak) hozzáadásával, hogy kitöltse a paraméterek közötti rést. A szűrőparaméterek között kitöltött lyukak/nullák számát dilatációs rátának nevezzük. Ha az arány 1, az nem más, mint a normál konvolúció. Ha az arány 2, minden más paraméter közé egy nullát szúrunk, így a szűrő 5×5-ös konvolúciónak tűnik. Most már képes az 5×5 konvolúció kontextusának lekérésére, miközben 3×3 konvolúciós paraméterekkel rendelkezik. Hasonlóan a 3-as aránynál a receptív mező 7×7-re megy.

A Deeplabban az utolsó pooling rétegeket 1 helyett 2-re cserélik, így a lefelé irányuló mintavételi arány csak 8x marad. Ezután egy sor szörnyű kanyarulatot alkalmaznak a nagyobb kontextus megragadására. A betanításhoz a kimeneti feliratú maszk mintavételezése 8x az egyes pixelek összehasonlításához. Következtetésként a bilineáris felfelé mintavételezést használják azonos méretű kimenetek előállítására, amelyek megfelelő eredményeket adnak alacsonyabb számítási/memóriaköltségek mellett, mivel a bilineáris felfelé mintavételhez nincs szükség paraméterekre, szemben a felfelé mintavételezés dekonvolúciójával.

ASPP

A Spatial Pyramidal Pooling egy olyan fogalom, amelyet az SPPNetben vezettek be, hogy több léptékű információt rögzítsenek egy tereptérképről. Az SPP bevezetése előtt különböző felbontású bemeneti képeket szállítanak, és a kiszámított jellemzőtérképeket együtt használják a többléptékű információk megszerzéséhez, de ez több számítást és időt vesz igénybe. A Spatial Pyramidal Pooling segítségével többléptékű információ rögzíthető egyetlen bemeneti képpel.

Forrás:- http://kaiminghe.com/eccv14sppnet/index.html

Az SPP modullal a hálózat 3 1×1 (azaz GAP), 2×2 és 4×4 méretű kimenetet állít elő. Ezeket az értékeket 1d vektorokká konvertálva összefűzzük, így több léptékű információt rögzítünk. Az SPP használatának másik előnye, hogy bármilyen méretű bemeneti kép biztosítható.

Az ASPP átveszi a különböző skálák információinak egyesítésének koncepcióját, és alkalmazza az Atrous-konvolúciókra. A bemenet különböző tágulási rátákkal van konvolálva, és ezek kimenetei össze vannak olvasztva.

Forrás:- http://liangchiehchen.com/projects/DeepLab.html

Amint látható, a bemenet 3×3-as 6, 12, 18 és 24 tágulási arányú szűrőkkel van konvolálva, és a kimenetek össze vannak kötve, mivel azonos méretűek. Egy 1×1 konvolúciós kimenet is hozzáadódik a biztosítékos kimenethez. A globális információk biztosításához a GAP kimenet is hozzáadásra kerül a fenti mintavételezés után. A 3×3 változatos dilatált kimenetek, 1×1 és GAP kimenetek olvadó kimenete 1×1 konvolúción keresztül jut el a kívánt számú csatornához.

Mivel a szegmentálandó kép bármilyen méretű lehet a bemenetben, az ASPP többléptékű információja segít az eredmények javításában.

A kimenet javítása CRF-fel

A pooling egy olyan művelet, amely segít csökkenteni a paraméterek számát egy neurális hálózatban, de az invariancia tulajdonságát is magával hozza. Az invariancia egy neurális hálózat minősége, amelyet nem befolyásolnak a bemeneti enyhe fordítások. Ennek a pooling-el nyert tulajdonságnak köszönhetően a neurális hálózat által kapott szegmentációs kimenet durva, a határok nincsenek konkrétan meghatározva.

Forrás:- http://liangchiehchen.com/projects/DeepLab.html

Ennek kezelésére a cikk a CRF grafikus modell használatát javasolja. A Conditional Random Field egy utófeldolgozási lépést hajt végre, és megpróbálja javítani a kapott eredményeket, hogy meghatározza a formáló határait. Úgy működik, hogy a képpontokat nem csak a címkéje, hanem más pixelcímkék alapján is osztályozza. Amint az a fenti ábrán látható, a neurális hálózat által generált durva határvonal a CRF-en való áthaladás után finomodik.

A Deeplab-v3 bevezette a kötegelt normalizálást és a javasolt tágulási rátát szorozva (1,2,4) egy Resnet blokk minden rétegében. A dokumentum részeként javasoltuk a képszintű funkciók hozzáadását az ASPP-modulhoz, amelyet az ASPP-ről szóló fenti vitában tárgyaltunk.

Forrás:- https://arxiv.org/pdf/1706.05587.pdf

A Deeplab-v3+ azt javasolta, hogy legyen egy dekóder a sima bilineáris 16x-os mintavételezés helyett. A dekóder egy tippet vesz az olyan architektúrák által használt dekódertől, mint az U-Net, amelyek a kódoló rétegekből veszik az információkat az eredmények javítása érdekében. A kódoló kimenetét 4x felfelé mintavételezi bilineáris felfelé mintavételezéssel, és összefűzi a kódoló jellemzőivel, amely 4×3 konvolúció végrehajtása után ismét 3x mintavételezésre kerül. Ez a megközelítés jobb eredményeket ad, mint a közvetlen, 16-szoros mintavétel. Szintén módosított Xception architektúra javasolt a Resnet helyett a kódoló részeként, és a számítások számának csökkentése érdekében a mélységben szétválasztható konvolúciókat az Atrous konvolúciókon felül alkalmazzák.

Global Convolution Network

Forrás:- https://arxiv.org/pdf/1703.02719.pdf

A szemantikai szegmentálás két feladat egyidejű végrehajtását jelenti

i) Osztályozás
ii) Lokalizáció

Az osztályozási hálózatokat úgy hozták létre, hogy invariánsak legyenek a fordításra és a forgatásra, így nem tulajdonítanak jelentőséget a helyinformációknak, míg a lokalizáció a hely pontos adatainak megszerzését jelenti. Ez a két feladat tehát eleve ellentmondásos. A legtöbb szegmentáló algoritmus nagyobb jelentőséget tulajdonít a lokalizációnak, azaz a fenti ábrán a másodiknak, és így szem elől téveszti a globális kontextust. Ebben a munkában a szerző azt javasolja, hogy az osztályozási feladatnak is jelentőséget tulajdonítson, ugyanakkor ne veszítse el a lokalizációs információkat.

Forrás:- https://arxiv.org/pdf/1703.02719.pdf

A szerző azt javasolja, hogy ezt úgy érjék el, hogy nagy kerneleket használnak a hálózat részeként, így sűrű kapcsolatokat és ezáltal több információt tesznek lehetővé. Ezt a fenti ábrán látható módon egy GCN blokk segítségével érjük el. A GCN blokk akxk konvolúciós szűrőnek tekinthető, ahol k lehet 3-nál nagyobb szám. A paraméterek számának csökkentése érdekében az akxk szűrőt tovább osztjuk 1 xk és kx 1, kx1 és 1xk blokkra, amelyeket azután összeadunk. Így a k érték növelésével nagyobb kontextus kerül rögzítésre.

Ezenkívül a szerző egy határfinomítási blokkot javasol, amely hasonló a Resnetben látható maradék blokkhoz, amely egy parancsikon-kapcsolatból és egy maradék kapcsolatból áll, amelyeket összegezve kapja meg az eredményt. Megfigyelhető, hogy a határfinomítási blokk használata az eredmények javulását eredményezte a szegmentálás határán.

Az eredmények azt mutatták, hogy a GCN blokk javította az objektum középpontjához közelebbi pixelek osztályozási pontosságát, jelezve a javulást, amelyet a nagy hatótávolságú kontextus rögzítése okozott, míg a határfinomítási blokk segített a határhoz közelebbi képpontok pontosságának javításában.

Lásd többször – KSAC a szemantikai szegmentációhoz

A Deeplab család az ASPP-t használja annak érdekében, hogy több befogadó mező rögzítse az információkat különböző durva konvolúciós sebességekkel. Bár az ASPP jelentősen hasznos volt az eredmények szegmentálásának javításában, az architektúra miatt néhány eredendő probléma merül fel. Az ASPP különböző párhuzamos rétegei között nincs információ megosztása, így ez befolyásolja a kernelek általánosítási képességét az egyes rétegekben. Továbbá, mivel minden réteg a betanítási minták különböző készleteit szolgálja ki (kisebb objektumoktól kisebb kopásosodási sebességig, nagyobb objektumoktól nagyobb kopási arányig), az egyes párhuzamos rétegekhez tartozó adatmennyiség kevesebb lesz, ami befolyásolja az általános általánosíthatóságot. A hálózatban lévő paraméterek száma is lineárisan növekszik a paraméterek számával, és így túlillesztéshez vezethet.

Forrás:- https://arxiv.org/pdf/1908.09443.pdf

Mindezen problémák kezelésére a szerző egy új hálózati struktúrát javasol, az úgynevezett Kernel-Sharing Atrous Convolution (KSAC). Amint az a fenti ábrán látható, ahelyett, hogy minden párhuzamos ASPP-réteghez más-más kernel lenne, egyetlen kernel van megosztva, így javítva a hálózat általánosítási képességét. Az ASPP helyett a KSAC használatával a paraméterek 62%-a mentésre kerül, ha 6,12 és 18-as tágulási arányt használunk.

A KSAC struktúra használatának másik előnye, hogy a paraméterek száma független az alkalmazott tágulási ráták számától. Így a lehető legtöbb árat hozzáadhatjuk a modell méretének növelése nélkül. Az ASPP 6,12,18-as aránnyal adja a legjobb eredményt, de a pontosság csökken 6,12,18,24-gyel, ami lehetséges túlillesztést jelez. De a KSAC pontossága továbbra is jelentősen javul, jelezve a fokozott általánosítási képességet.

Ez a kernelmegosztási technika a funkciótér bővítésének is tekinthető, mivel ugyanazt a kernelt több sebességen alkalmazzák. Hasonlóan ahhoz, ahogy a bemeneti kiegészítés jobb eredményeket ad, a hálózatban végrehajtott funkcióbővítésnek segítenie kell a hálózat reprezentációs képességének javításában.

Videó szegmentálása

Olyan felhasználási esetekben, mint az önvezető autók, robotika stb., szükség van a megfigyelt videó valós idejű szegmentálására. Az eddig tárgyalt architektúrákat nagyjából a pontosságra és nem a sebességre tervezték. Tehát ha képkockánként alkalmazzák őket egy videón, az eredmény nagyon alacsony sebességgel jön létre.

Szintén általában egy videóban sok átfedés van az egymást követő képkockák jeleneteiben, ami felhasználható az eredmények és a sebesség javítására, ami nem jön be a képbe, ha az elemzést képkockánként végzik. E jelzések segítségével beszéljük meg azokat az architektúrákat, amelyeket kifejezetten videókhoz terveztek

STFCN

A Spatio-Temporal FCN az FCN és az LSTM használatát javasolja a videószegmentáláshoz. Már tisztában vagyunk azzal, hogyan lehet az FCN-t felhasználni a képek szegmentálásához szükséges funkciók kinyerésére. Az LSTM egyfajta neurális hálózat, amely képes az idő múlásával szekvenciális információkat rögzíteni. Az STFCN az FCN és az LSTM erejét egyesíti a térbeli és időbeli információk rögzítésére

Forrás:- https://arxiv.org/abs/1608.05971

Amint az a fenti ábrán látható, az STFCN egy FCN, tér-időbeli modulból áll, amelyet dekonvolúció követ. Az FCN által készített jellemzőtérkép elküldésre kerül a Tér-Temporális Modulnak, amely szintén rendelkezik bemenettel az előző keret moduljából. A mindkét bemeneten alapuló modul a térbeli információkon kívül rögzíti az időbeli információkat is, és elküldi azokat, amelyeken mintavételezés történik a kép eredeti méretére, az FCN-hez hasonló dekonvolúció segítségével.

Mivel az FCN és az LSTM is együtt dolgozik az STFCN részeként, a hálózat végpontokig betanítható, és felülmúlja az egykockás szegmentálási megközelítéseket. Vannak hasonló megközelítések, ahol az LSTM-et GRU váltja fel, de a koncepció ugyanaz a térbeli és időbeli információk rögzítésében.

Szemantikus videó CNN-ek az ábrázolás elvetemítésén keresztül

Ez a cikk a szomszédos képkockákon áthaladó optikai áramlás használatát javasolja extra bemenetként a szegmentálási eredmények javítása érdekében

Forrás:- https://arxiv.org/abs/1708.03088

A javasolt megközelítés bármely szabványos architektúrához beépíthető beépülő modulként. A kulcsfontosságú összetevő a játékban a NetWarp modul. A szegmentációs leképezés kiszámításához az aktuális és az előző képkocka közötti optikai áramlást számítjuk ki, azaz Ft-ot, és egy FlowCNN-n áthaladva megkapjuk a Λ(Ft) értéket. Ezt a folyamatot áramlási transzformációnak nevezik. Ezt az értéket egy vetemítési modulon továbbítják, amely egy köztes réteg jellemzőtérképét is bemenetként veszi, amelyet a hálózaton való áthaladással számítanak ki. Ez egy elvetemült jellemzőtérképet ad, amelyet azután kombinálnak az aktuális réteg köztes jellemzőtérképével, és a teljes hálózatot a végétől a végéig betanítják. Ez az architektúra SOTA eredményeket ért el a CamVid és a Cityscapes videó benchmark adatkészletein.

Clockwork Convnets a videó szemantikai szegmentálásához

Ez a cikk a neurális hálózat végrehajtási sebességének javítását javasolja videókon a szegmentálási feladatokhoz, kihasználva azt a tényt, hogy a videó szemantikai információi lassan változnak a pixel szintű információkhoz képest. Tehát az utolsó rétegekben lévő információ sokkal lassabb ütemben változik, mint a kezdő rétegekben. A lap eltérő időpontokat javasol

Forrás:- https://arxiv.org/abs/1608.03609

A fenti ábra a változás mértékének összehasonlítását mutatja egy közepes szintű rétegkészlet4 és egy mélyrétegű fc7 esetében. A bal oldalon azt látjuk, hogy mivel sok változás van a kereteken belül, mindkét réteg változást mutat, de a pool4 változása magasabb. A jobb oldalon azt látjuk, hogy nincs sok változás a keretek között. Ezért a pool4 marginális változást mutat, míg az fc7 szinte nulla változást mutat.

A kutatás ezt a koncepciót használja, és azt sugallja, hogy azokban az esetekben, amikor nincs nagy változás a keretek között, nincs szükség a jellemzők/kimenetek újbóli kiszámítására, és az előző keret gyorsítótárazott értékei használhatók. Mivel a változás mértéke rétegenként változik, különböző órákat lehet beállítani a különböző rétegkészletekhez. Amikor az óra ketyeg, az új kimenetek kiszámításra kerülnek, ellenkező esetben a gyorsítótárazott eredmények kerülnek felhasználásra. Az óra ketyegésének sebessége statikusan rögzíthető vagy dinamikusan megtanulható

Forrás:- https://arxiv.org/abs/1608.03609

Alacsony késleltetésű videó szemantikai szegmentáció

Ez a cikk tovább javítja a fentieket azáltal, hogy adaptív módon választja ki a kereteket a szegmentációs térkép kiszámításához vagy a gyorsítótárazott eredmény használatához rögzített időzítő vagy heurisztika használata helyett.

Forrás:- https://arxiv.org/abs/1804.00389

A cikk azt javasolja, hogy a hálózatot 2 részre osztják, alacsony szintű szolgáltatásokra és magas szintű szolgáltatásokra. Az alacsony szintű szolgáltatások hálózaton belüli kiszámításának költsége sokkal alacsonyabb a magasabb szolgáltatásokhoz képest. A kutatás az alacsony szintű hálózati jellemzők használatát javasolja a szegmentációs térkép változásának indikátoraként. Megfigyeléseikben szoros összefüggést találtak az alacsony szintű jellemzők változása és a szegmentációs térkép változása között. Tehát annak megértéséhez, hogy szükség van-e annak kiszámítására, hogy a magasabb jellemzőket kell-e számítani, a rendszer megtalálja az alacsonyabb jellemzők különbségét 2 képkocka között, és összehasonlítja, ha átlép egy adott küszöböt. Ezt az egész folyamatot egy kis neurális hálózat automatizálja, amelynek feladata két képkocka alacsonyabb jellemzőinek felvétele, és előrejelzést adni arra vonatkozóan, hogy magasabb jellemzőket kell-e számítani vagy sem. Mivel a hálózati döntés a bemeneti kereteken alapul, a döntés a fenti megközelítéshez képest dinamikus.

Szegmentáció pontfelhők számára

Az érzékelőktől, például a lidartól származó adatok a Point Cloud nevű formátumban kerülnek tárolásra. A pontfelhő nem más, mint 3D adatpontok (vagy bármilyen dimenzió) rendezetlen halmaza. Ez a jelenet ritkás ábrázolása 3D-ben, és a CNN ilyen esetben nem alkalmazható közvetlenül. Minden olyan architektúrának, amelyet pontfelhők kezelésére terveztek, figyelembe kell vennie, hogy ez egy rendezetlen halmaz, és ezért sok lehetséges permutációja lehet. Tehát a hálózatnak permutációinvariánsnak kell lennie. A pontfelhőben meghatározott pontok a köztük lévő távolsággal is leírhatók. Tehát a közelebbi pontok általában hasznos információkat tartalmaznak, amelyek hasznosak a szegmentálási feladatokhoz

PointNet

A PointNet fontos tanulmány a pontfelhők kutatásának történetében, amely mély tanulást alkalmaz az osztályozás és szegmentálás feladatainak megoldására. Tanulmányozzuk a Pointnet architektúráját

Forrás:- https://arxiv.org/abs/1612.00593

A hálózat bemenete n pontra egy nx 3 mátrix. Az nx 3 mátrix az nx 64-re van leképezve egy megosztott többperceptron réteggel (teljesen csatlakoztatott hálózat), amelyet ezután leképeznek az nx 64-re, majd az nx 128-ra és az nx 1024-re. Maximum pooling-et alkalmazunk egy 1024-es vektor létrehozásához, amelyet k-vé alakítunk. kimenetek 512, 256 és k méretű MLP-ken keresztül. Végül k osztályú kimenetet állítanak elő, hasonlóan bármely osztályozási hálózathoz.

Az osztályozás csak a globális jellemzőkkel foglalkozik, de a szegmentálásnak szüksége van lokális jellemzőkre is. Tehát az nx 64-nél lévő közbülső réteg helyi jellemzői össze vannak kapcsolva globális jellemzőkkel, hogy megkapjuk az anx 1088 mátrixot, amelyet az 512-es és 256-os mlp-n keresztül elküldenek az nx 256-hoz, majd a 128-as és m-es MLP-n keresztül minden ponthoz m kimeneti osztályt adnak. pontfelhőben.

A hálózat egy bemeneti transzformációt és jellemző transzformációt is tartalmaz a hálózat részeként, amelynek feladata, hogy ne változtassa meg a bemenet alakját, hanem invarianciát adjon az affin transzformációkhoz, például fordításhoz, elforgatáshoz stb.

A-CNN

Forrás:- https://arxiv.org/abs/1904.08017

Az A-CNN a gyűrűs konvolúciók használatát javasolja a térinformációk rögzítésére. A CNN-től tudjuk, hogy a konvolúciós műveletek rögzítik a helyi információkat, amelyek elengedhetetlenek a kép megértéséhez. Az A-CNN kidolgozott egy új, Gyűrűs konvolúció nevű konvolúciót, amelyet a pontfelhő szomszédsági pontjaira alkalmaznak.

Az architektúra bemenetként nx 3 pontot vesz fel, és ezekhez normális értékeket keres, amelyeket a pontok sorrendjére használ. A pontokból egy részmintát veszünk az FPS algoritmussal, ami ni x 3 pontot eredményez. Ezeken a gyűrű alakú konvolúciót alkalmazzák, hogy 128 dimenzióra növeljék. Gyűrűs konvolúciót hajtanak végre a szomszédsági pontokon, amelyeket KNN algoritmussal határoznak meg.

A fenti műveletek egy másik sorozatát hajtják végre a dimenziók 256-ra növelésére. Ezután egy mlp-t alkalmazunk a méretek 1024-re történő módosításához, és a pooling-ot alkalmazzuk, hogy egy pontfelhőhöz hasonló 1024-es globális vektort kapjunk. Ez az egész rész kódolónak számít. Az osztályozáshoz a kódoló globális kimenetét az mlp-n keresztül továbbítják, hogy c osztályú kimeneteket kapjanak. A szegmentálási feladathoz mind a globális, mind a lokális jellemzőket hasonlónak tekintjük a PointCNN-hez, majd áthaladnak egy MLP-n, hogy m osztályú kimenetet kapjunk minden ponthoz.

Metrics

Beszéljük meg azokat a mérőszámokat, amelyeket általában egy modell eredményeinek megértésére és értékelésére használnak.

Pixel pontosság

A pixelpontosság a legalapvetőbb mérőszám, amely az eredmények érvényesítésére használható. A pontosságot a helyesen osztályozott pixelek és az összes pixel arányának kiszámításával érjük el

Pontosság = (TP+TN)/(TP+TN+FP+FN)

Az ilyen technika használatának fő hátránya, hogy az eredmény jól néz ki, ha az egyik osztály felülmúlja a másikat. Tegyük fel például, hogy a háttérosztály lefedi a bemeneti kép 90%-át, 90%-os pontosságot kaphatunk, ha minden pixelt háttérként osztályozunk.

Kereszteződés az Unió felett

Az IOU az alapigazság és az előre jelzett szegmentációs kimenetek metszéspontjának aránya az egyesülésükön. Ha több osztályra számolunk, akkor minden osztály IOU-ja kiszámításra kerül, és ezek átlagát veszik. Ez egy jobb mérőszám a pixel pontossághoz képest, mivel ha minden pixel háttérként van megadva egy 2 osztályú bemenetben, akkor az IOU értéke (90/100+0/100)/2, azaz 45% IOU, ami jobb reprezentációt ad a 90-hez képest. %-os pontosság.

Forrás:- https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection

Gyakorisággal súlyozott IOU

Ez az általunk tárgyalt átlagos IOU kiterjesztése, és az osztálykiegyensúlyozatlanság leküzdésére szolgál. Ha egy osztály uralja az adathalmaz képeinek nagy részét, például a háttérben, akkor azt le kell súlyozni a többi osztályhoz képest. Így ahelyett, hogy az összes osztályeredmény átlagát vennénk, egy súlyozott átlagot veszünk az osztályrégió gyakorisága alapján az adatkészletben.

F1 pontszám

Az F1 Score osztályozásban elterjedt mérőszám szegmentálási feladathoz is használható az osztálykiegyensúlyozatlanság kezelésére.

Forrás:- https://en.wikipedia.org/wiki/F1_score

Átlagos pontosság

A pontosság alatti terület – egy kiválasztott küszöbértékhez tartozó visszahívási görbe A különböző osztályok IOU-átlagát használja az eredmények érvényesítésére.

Veszteségfüggvények

A veszteségfüggvény arra szolgál, hogy a neurális hálózatot az optimalizálás felé terelje. Nézzünk meg néhány népszerű veszteségfüggvényt a szemantikai szegmentálási feladathoz.

Keresztentrópia elvesztése

A keresztentrópia osztályozási veszteség egyszerű átlaga a kép minden pixelére általános függvényként használható. De ez ismét az osztálykiegyensúlyozatlanság miatt szenved, amelyet az FCN javasol az osztálysúlyok segítségével

Az UNet ezen igyekszik javítani azáltal, hogy nagyobb súlyozást ad a határ közelében lévő, a határ részét képező pixeleknek a belső pixelekhez képest, mivel így a hálózat inkább a határok azonosítására összpontosít, és nem ad durva kimenetet.

Fókuszvesztés

A fókuszvesztést úgy tervezték, hogy a hálózat a kemény példákra összpontosítson azáltal, hogy nagyobb súlyozási kort ad, és kezelni tudja az egyfokozatú tárgydetektoroknál megfigyelt szélsőséges osztálykiegyensúlyozatlanságot. Ugyanez alkalmazható szemantikai szegmentálási feladatokban is

Kocka elvesztése

A kocka funkció nem más, mint az F1 pontszáma. Ez a veszteségfüggvény közvetlenül megpróbálja optimalizálni az F1 pontszámot. Hasonlóképpen a közvetlen IOU pontszám is felhasználható az optimalizálás futtatására

Tversky veszteség

Ez a kockaveszteség egyik változata, amely eltérő súlyozási kort ad az FN-nek és az FP-nek

Hausdorff távolság

Ez egy olyan technika, amelyet az alapigazság és az előrejelzett határok közötti hasonlóság mérésére használnak. Kiszámítása az egyik határ bármely pontja és a másik határ legközelebbi pontja közötti maximális távolság megállapításával történik. A határveszteség függvény közvetlen csökkentése egy újabb trend, és kimutatták, hogy jobb eredményeket ad különösen olyan felhasználási esetekben, mint az orvosi képszegmentáció, ahol a pontos határ azonosítása kulcsszerepet játszik.

A határveszteség használatának előnye a régió alapú veszteséghez, például az IOU-hoz vagy a Dice Loss-hoz képest, hogy nem befolyásolja az osztályok kiegyensúlyozatlansága, mivel nem a teljes régiót veszik figyelembe az optimalizálás során, csak a határt.

Forrás https://en.wikipedia.org/wiki/Hausdorff_distance

Az itt tárgyalt két kifejezés két határra vonatkozik, azaz az alapigazságra és a kimeneti előrejelzésre.

LabelMe :-

Pythonban írt képannotációs eszköz.
Támogatja a sokszög annotációt.
Nyílt forráskódú és ingyenes.
Windows, Mac, Ubuntu vagy Anaconda, Docker rendszeren fut
Link: - https://github.com/wkentaro/labelme

Forrás :- https://github.com/wkentaro/labelme

Computer Vision Annotation Tool: -

Az Intel által fejlesztett videó- ​​és képannotációs eszköz
Ingyenes és online elérhető
Windows, Mac és Ubuntu rendszeren fut
Link: - https://github.com/opencv/cvat

Vgg képannotátor :-

Ingyenes nyílt forráskódú képannotációs eszköz
Egyszerű html oldal < 200 kb, és offline is futhat
Támogatja a sokszög megjegyzéseket és pontokat.
Link: - https://github.com/ox-vgg/via

Forrás: - https://github.com/ox-vgg/via

Rect label: -

Fizetett annotációs eszköz Mac-hez
Használhatja az alapvető ML modelleket a képek előzetes megjegyzéséhez
Támogatja a sokszögeket, a kocka-beziert, a vonalakat és a pontokat
Link: - https://github.com/ryouchinsa/Rectlabel-support

Címkedoboz: -

Fizetett annotációs eszköz
Támogatja a toll eszközt a gyorsabb és pontos megjegyzések készítéséhez
Link: - https://labelbox.com/product/image-segmentation

Datasets

Ennek a szakasznak a részeként beszéljünk a nyilvánosan elérhető különféle népszerű és változatos adatkészletekről, amelyek segítségével elkezdheti a képzést.

Pascal-kontextus

Ez az adatkészlet a Pascal VOC 2010 adatkészlet kiterjesztése, és túlmutat az eredeti adatkészleten azáltal, hogy megjegyzéseket biztosít a teljes jelenethez, és több mint 400 osztályú valós adatot tartalmaz.

Forrás:- https://cs.stanford.edu/~roozbeh/pascal-context/
Forrás:- https://cs.stanford.edu/~roozbeh/pascal-context/

Link: - https://cs.stanford.edu/~roozbeh/pascal-context/

COCO adatkészlet

A COCO-adatkészlet 164 172 képét tartalmazza az eredeti COCO-adatkészletből pixelszintű megjegyzésekkel, és ez egy általános benchmark adatkészlet. 80 osztályt fed le: 91 dolog osztályt, 1 cucc osztályt és XNUMX osztályt "címkézetlen"

Forrás:- http://cocodataset.org/#home

Link: - http://cocodataset.org/

Városképek adatkészlet

Ez az adatkészlet szegmentálási alapigazságokat tartalmaz utak, sávok, járművek és az úton lévő objektumok tekintetében. Az adatkészlet 30 osztályt és 50 várost tartalmaz, amelyeket különböző környezeti és időjárási körülmények között gyűjtöttek össze. Rendelkezik egy finom megjegyzésekkel ellátott képekből álló videoadatkészlettel is, amely felhasználható a videó szegmentálására. KITTI és a CamVid hasonló típusú adatkészletek, amelyek az önvezető autók oktatására használhatók.

Forrás:- https://www.cityscapes-dataset.com/

Link: - https://www.cityscapes-dataset.com/

Adatkészletet világít

Az adatkészletet annak a kihívásnak a részeként hozták létre, hogy azonosítsák a máj CT-vizsgálatokból származó daganatos elváltozásokat. Az adatkészlet 130 edzési adatot és 70 tesztadat CT-vizsgálatot tartalmaz.

Forrás:- https://competitions.codalab.org/competitions/17094

Link: - https://competitions.codalab.org/competitions/17094

CCP adatkészlet

A Cloth Co-Parsing egy olyan adatkészlet, amelyet a Clothing Co-Parsing by Joint Image Segmentation and Labeling kutatási cikk részeként hoztak létre. Az adatkészlet több mint 1000 képet tartalmaz pixel szintű megjegyzésekkel, összesen 59 címkével.

Forrás: - https://github.com/bearpaw/clothing-co-parsing

Forrás :- https://github.com/bearpaw/clothing-co-parsing

Pratheepan adatkészlet

A bőr szegmentálására létrehozott adatkészlet a Google képei alapján, amely 32 arcfotót és 46 családi fotót tartalmaz

Forrás:- http://cs-chan.com/downloads_skin_dataset.html

Link: - http://cs-chan.com/downloads_skin_dataset.html

Inria légifelvételek címkézése

Nyilvános képekből létrehozott légi szegmentációs térképek adatkészlete. Lefedettsége 810 négyzetkilométer, és 2 osztályú épület és nem épület.

Forrás:- https://project.inria.fr/aerialimagelabeling/
Forrás:- https://project.inria.fr/aerialimagelabeling/

Link: - https://project.inria.fr/aerialimagelabeling/

S3DIS

Ez az adatkészlet hat nagyméretű beltéri rész pontfelhőit tartalmazza 3 épületben, több mint 70000 XNUMX képpel.

Forrás:- http://buildingparser.stanford.edu/dataset.html

Link: - http://buildingparser.stanford.edu/dataset.html

Összegzésként

Megbeszéltük a különböző algoritmusok taxonómiáját, amelyek felhasználhatók a szemantikai szegmentáció használati eseteinek megoldására, legyen szó képekről, videókról vagy pontfelhőkről, valamint ezek hozzájárulásáról és korlátairól. Áttekintettük az eredmények értékelésének módjait és az adatkészleteket is a kezdéshez. Ennek átfogó megértést kell adnia a szemantikai szegmentációról általában.

A szemantikai szegmentáláshoz szükséges további erőforrások listájához kezdje el https://github.com/mrgloom/awesome-semantic-segmentation.

További olvasnivalók


Érdekelhetik legújabb bejegyzéseink itt:

Frissítés:
További olvasnivalók hozzáadva.

Forrás: https://nanonets.com/blog/semantic-image-segmentation-2020/

Időbélyeg:

Még több AI és gépi tanulás