Linas Petkevičius 7 @dxlino @linas-p...
Transcript of Linas Petkevičius 7 @dxlino @linas-p...
![Page 1: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/1.jpg)
Vaizdų segmentavimas
Linas Petkevičius7 @dxlino � @linas-p
Giliojo mokymosi metodai (Deep learning)VU MIF II, 2019 pavasaris
2019-04-30
1 / 25
![Page 2: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/2.jpg)
Šiandienos eiga
• Segmentavimo uždaviniai• Penkiaminutinė užduotėlė• Laboratorinių darbų užduotys
2 / 25
![Page 3: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/3.jpg)
Priminimas• Lokalizacija + klasifikavimas• Objektų aptikimas• Segmentavimas• Momentinis segmentavimas
1
1https://towardsdatascience.com/detection-and-segmentation-through-convnets-47aa42de27ea3 / 25
![Page 4: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/4.jpg)
Vaizdų segmentavimo sąvokaIstoriškai segmentavimas suprantamas kaip vaizdo padalijimas įsritis:
Žmogaus susegmentuoti vaizdai: šaltinis Svetlana Lazebnik
4 / 25
![Page 5: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/5.jpg)
K-vidurkių klasterizavimasPasirinkus fiksuotą skaičių k, visi duomenys priskiriami vienam išartimiausių centrų.
2
2https://bigdata-madesimple.com/possibly-the-simplest-way-to-explain-k-means-algorithm/5 / 25
![Page 6: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/6.jpg)
K-vidurkių klasterizavimas: pavyzdys
Taikant K-vidurkių klasterizavimą rasti tris centrus geriausiainusakančius pikselių grupes. Ieškosime centrų ci minimizuodamiKvadratų sumą (Sum of Square):
SSD =∑
i∈klasteriai
∑x∈klasterisi
(x− ci)2
6 / 25
![Page 7: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/7.jpg)
K-vidurkių algoritmas
1. Inicializuojame centrus c1, ..., cK . Dažnai parenkameatsitiktinai.
2. Kiekvieną tašką priskiriame atskiram artimiausiam centrui.3. Atnaujiname centrus imdami vidurį visų taškų esančių tame
klasteryje.4. Kartojame 2-3 procedūrą, kol centrai nebesikeičia arba
ivykdomas atitinkamas skaičius iteracijų.
3
3https://brilliant.org/wiki/k-means-clustering/7 / 25
![Page 8: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/8.jpg)
Uždaviniai su giliaisiai modeliais
Kiekvieną pikselį priskiriame klasifikuojame į klases:
4
4https://towardsdatascience.com/understanding-semantic-segmentation-with-unet-6be4f42d4b478 / 25
![Page 9: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/9.jpg)
Formulavimas: pikselis -> klasės
5
5https://www.jeremyjordan.me/semantic-segmentation/ 9 / 25
![Page 10: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/10.jpg)
Formulavimas: Tikslo funkcijosDažniausiai taikome kryžminę entropiją (cross entropy) kiekvienampikseliui:
6
6https://www.jeremyjordan.me/semantic-segmentation/ 10 / 25
![Page 11: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/11.jpg)
Tikslo funkcijos
L = 1−Dice = 1− 2 |A�B||A|2 + |B|2
7
7https://www.jeremyjordan.me/semantic-segmentation/11 / 25
![Page 12: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/12.jpg)
FCNSS (2015)
• KNT tipo modelis• Prognozavimas papikseliui
8
8Long, Jonathan, Evan Shelhamer, and Trevor Darrell. "Fully convolutional networks for semanticsegmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.
12 / 25
![Page 13: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/13.jpg)
Atspaudimas
9
9CS231n kursas13 / 25
![Page 14: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/14.jpg)
Atspaudimas
10
10CS231n kursas14 / 25
![Page 15: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/15.jpg)
Atspaudimas
11
11CS231n kursas15 / 25
![Page 16: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/16.jpg)
Atspaudimas: pavyzdys
Tarkime turime:
X4×4 ∗K3×3 =
4 5 8 71 8 8 83 6 6 46 5 7 8
∗1 4 1
1 4 33 3 1
=(
122 148126 143
)= A2×2
Išskaidykime K specifiškai į K, bei vektorizuokime X į X:
K =
1 4 1 0 1 4 3 0 3 3 1 0 0 0 0 00 1 4 1 0 1 4 3 0 3 3 1 0 0 0 00 0 0 0 1 4 1 0 1 4 3 0 3 3 1 00 0 0 0 0 1 4 1 0 1 4 3 0 3 3 1
X = (4, 5, 8, 7, 1, 8, 8, 8, 3, 6, 6, 4, 6, 5, 7, 8)T
K4×16X16×1 = (122, 148, 126, 134)T = A4×1
16 / 25
![Page 17: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/17.jpg)
Atspaudimas: pavyzdys
Tarkime norime rekonstruoti vaizdą, turime mažą paveikslėlį B, jįvektorizuojame B, taigi turėdami konvoliucinio branduolio svoriusK padidiname paveikslėlį Y
KT16×4B4×1 = Y16×1 = Y4×4
17 / 25
![Page 18: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/18.jpg)
U-Net (2015)• Auto-enkoderio tipo modelis• Daugiasluoksnis prognozavimas• Mokinimas grupėmis (patches)
12
12http://www.deeplearning.net/tutorial/unet.html18 / 25
![Page 19: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/19.jpg)
Seg-Net (2017)
• Auto-enkoderio tipo modelis• Praskėstos (dilated) konvoliucijos• Max-up pooling
13
13Badrinarayanan, Vijay, Alex Kendall, and Roberto Cipolla. "Segnet: A deep convolutional encoder-decoderarchitecture for image segmentation." IEEE transactions on pattern analysis and machine intelligence 39.12 (2017):2481-2495.
19 / 25
![Page 20: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/20.jpg)
Momentinis segmentavimas
Aptikimas + Segmentavimas
14
14CS231n kursas20 / 25
![Page 21: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/21.jpg)
Mask R-CNN (2017)
15
15https://medium.freecodecamp.org/mask-r-cnn-explained-7f82bec890e321 / 25
![Page 22: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/22.jpg)
Momentinis segmentavimas
Aptikimas + Segmentavimas
16
16CS231n kursas22 / 25
![Page 23: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/23.jpg)
Momentinis segmentavimasTikslo funkcija:
L = Lklasifikavimas + Llokalizacija + Lkauke
17
17https://medium.com/@jonathan_hui/image-segmentation-with-mask-r-cnn-ebe6d79327223 / 25
![Page 24: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/24.jpg)
Mask R-CNN (2017)
• Nepriklausanti nuo pav. dydžio• Sričių generatorius• Regionių lygiavimas (RoIAlign)• Multi-task network head:
• Srities klasifikatorius• Srities regresija• Srities identifikavimas (mask)• Pagrindinių taškų identifikavimas
18
18https://codesign.live/2018/07/11/mask-r-cnn-mask-r-cnn-for-object-detection-and-instance-segmentation-on-keras-and-tensorflow/
24 / 25
![Page 25: Linas Petkevičius 7 @dxlino @linas-p 2019-04-30klevas.mif.vu.lt/~linp/deeplearning/p10/teo_10.pdf · Vaizdų segmentavimas Linas Petkevičius 7 @dxlino ⁄ @linas-p Giliojo mokymosi](https://reader030.fdocument.pub/reader030/viewer/2022040809/5e4dcd11b8089b327778c078/html5/thumbnails/25.jpg)
Kitas susitikimas:
Goodfellow: 10 skyrius: Rekurentiniai modeliai
25 / 25