linas petkevičius 7 @dxlino @linas-p...

25
Vaizdų segmentavimas Linas Petkevičius @dxlino @linas-p Giliojo mokymosi metodai (Deep learning) VU MIF II, 2019 pavasaris 2019-04-30 1 / 25

Upload: others

Post on 09-Feb-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

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

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

Š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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Kitas susitikimas:

Goodfellow: 10 skyrius: Rekurentiniai modeliai

25 / 25