deep learning v prostředí matlab...využití metod deep learningv počítačovém vidění v...

36
Využití metod deep learning v počítačovém vidění v prostředí MATLAB Jaroslav Jirkovský [email protected] www.humusoft.cz [email protected] www.mathworks.com 12.9.2018 Liberec

Upload: others

Post on 05-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Využití metod deep learningv počítačovém vidění

v prostředí MATLAB

Jaroslav Jirkovský

[email protected]

[email protected]

www.mathworks.com

12.9.2018 Liberec

Page 2: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

2

Co je MATLAB a Simulink

• MATLAB

– Inženýrský nástroj a interaktivní prostředí pro vědecké a technické výpočty

– Grafické a výpočetní nástroje

– Grafické aplikace (GUI, APPS)

– Otevřený systém

• Simulink

– Nadstavba MATLABu

– Modelování, simulace a analýza dynamických systémů

– Prostředí blokových schémat

– Platforma pro Model Based Design

• Aplikační knihovny

Návrh řídicích systémů a robotika

Deep learning, neuronové sítě, fuzzy

Zpracování obrazu a počítačové vidění

Strojové učení, statistika a optimalizace

Měření a testování

Zpracování signálu a komunikace

Výpočetní biologie

Finanční analýza a datová analytika

Tvorba samostatných aplikací

Modelování fyzikálních soustav

Systémy diskrétních událostí

Generování kódu (RT a embedded)

Page 3: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Zpracování obrazu a počítačové vidění

• Snímání reálného obrazu

• Zpracování obrazu a videa

– úprava obrazu, transformace, segmentace

– práce s barevnými prostory

• Počítačové vidění

– detekce a sledování objektů

– detekce obličeje, postav

– 3-D vision, OCR

• Deep Learning

– rozpoznávání obrazu a detekce objektů

– sémantická segmentace

3

Page 4: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Počítačového vidění: typy úloh a jejich řešení

4

• Hledání vzorového objektu

– nalezení a porovnání příznaků (BRISK, SURF, KAZE, MSER, corner)

• Detekce objektů

– cascade object detector (Viola-Jones)

– ACF object detector

– R-CNN, Fast R-CNN, Faster R-CNN

• Klasifikace objektů (snímků)

– bag-of-visual words

– CNN

• Sledování objektů

– sledování bodů (KLT)

– sledování oblasti na základě histogramu

deep learning

• Odhad a predikce pohybu

• Detekce popředí, …

Page 5: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Deep Learning

5

Page 6: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

What is Machine Learning ?

Machine learning uses data and produces a program to perform a task

Page 7: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Machine Learning

• Different Types of Learning:

Page 8: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

What is Deep Learning ?

Deep learning performs end-end learning by learning features, representations and tasks directly from images, text and sound

Page 9: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Deep Learning is Ubiquitous

Computer Vision

• Pedestrian and traffic sign detection

• Landmark identification

• Scene recognition

• Medical diagnosis and discovery

Signal and Time Series Processing

Text Analytics

Page 10: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Why is Deep Learning so Popular ?

• Results:

– 95% + accuracy

• on ImageNet 1000 class challenge

• Computing Power:

– GPU’s

– advances to processor technologies

possible to train networks on massive sets of data.

• Data:

– availability of storage

– access to large sets of labeled data

Year Error Rate

Pre-2012 (traditional

computer vision and

machine learning

techniques)

> 25%

2012 (Deep Learning) ~ 15%

2015 (Deep Learning) <5 %

Page 11: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Convolutional Neural Networks

What do filters do?

Page 12: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

CNN in MATLAB

layers = [imageInputLayer(image_size)

convolution2dLayer(filter_size,num_filters)

reluLayer()

maxPooling2dLayer(window_size,'Stride',step)

fullyConnectedLayer(num_classes)

softmaxLayer()

classificationLayer()];

options = trainingOptions('sgdm');

convnet = trainNetwork(trainingData,layers,options);

results = classify(convnet,newData);

Page 13: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

CNN in MATLAB

layers = [imageInputLayer([28 28 1])

convolution2dLayer(5,20)

reluLayer()

maxPooling2dLayer(2,'Stride',2)

fullyConnectedLayer(10)

softmaxLayer()

classificationLayer()];

options = trainingOptions('sgdm');

convnet = trainNetwork(trainingData,layers,options);

results = classify(convnet,newData);

Page 14: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

2 Approaches for Deep Learning

• Approach 1: Train a Deep Neural Network from Scratch

Page 15: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

2 Approaches for Deep Learning

• Approach 2: Fine-tune a pre-trained model (transfer learning)

Page 16: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Demo : Fine-tune a pre-trained model (transfer learning)

Page 17: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Available pre-trained CNNs

• AlexNet

• VGG-16 and VGG-19

• GoogLeNet

• ResNet-50 and ResNet-101

• Inception-v3

• Inception-ResNet-v2

• SqueezeNet

• Import models from Caffe (including Caffe Model Zoo)

• Import models from TensorFlow-Keras

17

Page 18: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Training and Visualization

• Monitor training progress

– plots for accuracy, loss, validation metrics, and more

• Automatically validate network performance

– stop training when the validation metrics stop improving

• Perform hyperparameter tuning using Bayesian optimization

• Visualize activations and filters from intermediate layers

• Deep Dream visualization

Page 19: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Verification using Deep Dream Images

• Visualize what the learned features look like

• Generate images that strongly activate a particular channel of the network layers

• function deepDreamImage

Page 20: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Handling Large Sets of Images

• Use imageDataStore

– easily read and process large sets of images

• Access data stored in

– local files

– networked storage

– databases

– big data file systems

• Efficiently resize and augment image data

– increase the size of training datasets

– imageDataAugmenter, augmentedImageSource

20

Page 21: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Deep Learning Models for Regression

• To predict continuous data such as angles and distances in images

• Include a regression layer at the end of the network

layers = [imageInputLayer([28 28 1])

convolution2dLayer(12,25)

reluLayer()

fullyConnectedLayer(1)

regressionLayer()];

options = trainingOptions('sgdm');

convnet = trainNetwork(trainImages,trainAngles,layers,options);

results = predict(convnet,newImages);21

Page 22: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Directed Acyclic Graphs (DAG) Networks

22

• Represent complex architectures

– layerGraph, plot, addLayers, removeLayers, connectLayers, disconnectLayers

• Addition layer, Depth concatenation layer

a) layers connected in series

b) DAG network: layers are skipped (ResNet)

c) DAG network: layers are connected in parallel (GoogLeNet)

Page 23: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Image Classification vs. Object Detection

• Image Classification

– classify whole image using set of distinct categories

• Object Detection

– recognizing and locating the (small) object in a scene

– multiple objects in one image

23

Detector Function

R-CNN deep learning detector trainRCNNObjectDetector

Fast R-CNN deep learning detector trainFastRCNNObjectDetector

Faster R-CNN deep learning detector trainFasterRCNNObjectDetector

Page 24: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Semantic Segmentation

• Classify individual pixels

• Functions:

– perform semantic segmentation

• semanticseg

– special layers:

• pixelClassificationLayer, crop2dLayer

– complete networks:

• segnetLayers, fcnLayers

24

SegNet Convolutional Neural Network

Page 25: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Semantic Segmentation

25

Page 26: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Semantic Segmentation

26

Page 27: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Automated Driving

• Design, simulate, and test ADAS and autonomous driving systems

• Object detection

– lane marker detection, vehicle detection, …

• Multisensor fusion

– vision, radar, ultrasound

• Visualization

– annotation, bird’s-eye-view, point cloud

• Scenario Generation

– synthetic sensor data for driving scenarios

• Ground-truth labeling

– annotating recorded sensor data

27

Page 28: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Automated Driving – Robotics

• Mapping of environments using sensor data

• Segment and register lidar point clouds

• Lidar-Based SLAM:

– Localize robots and build map environments using lidar sensors

28

Page 29: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Deep Learning with Time Series and Sequence Data

• Create time-frequency representation of the signal data

– Signal Analyzer app

– spectrogram

• spectrogram, pspectrum

– scalogram (continuous wavelet transform)

• cwt

time-frequency images

• Apply deep neural network to the images

29

Page 30: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Long Short Term Memory (LSTM) Networks

• LSTM layer is recurrent neural network (RNN) layer

– learn long-term dependencies between the time steps of sequence data

• Prediction and classification on time-series, text, and signal data

– lstmLayer, bilstmLayer

30

LSTM LayerArchitecture

layers = [ ...sequenceInputLayer(12)lstmLayer(100)fullyConnectedLayer(9)softmaxLayerclassificationLayer]

Page 31: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Application Deployment

• MATLAB based programs can be deployed as:

– standalone applications

– software components for integration into web and enterprise applications

31

Page 32: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Embedded Deployment

• Design real-time applications targeting

– floating- or fixed-point processors

– FPGAs

• From MATLAB and Simulink generate

– C and C++ code

– HDL code

• Optimize code for specific processor architectures

32

Page 33: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Embedded Deployment - GPU Coder

• Generates optimized CUDA code from MATLAB code

– deep learning, embedded vision, and autonomous systems

• Calls optimized NVIDIA CUDA libraries

– cuDNN, cuSolver, and cuBLAS

• Generate CUDA as:

– source code

– static libraries

– dynamic libraries

• Prototyping on GPUs

– NVIDIA Tesla® and NVIDIA Tegra®

• Acceleration using MEX

33

Page 34: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

MATLAB for Deep Learning

• Network Architectures and Algorithms

• Training and Visualization

• Access the Latest Pretrained Models

• Scaling and Acceleration

• Handling Large Sets of Images

• Object Detection

• Semantic Segmentation

• Ground-Truth Labeling

• Embedded Deployment

Page 35: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

35

Jak začít s prostředím MATLAB?

• Zkušební verze:

– plnohodnotná verze MATLAB

– časově omezena na 30 dní

– možnost libovolných nadstaveb

– v případě zájmu využijte kontaktní formulář

http://www.humusoft.cz/matlab/trial/

• MATLAB Onramp:

– on-line kurz zdarma

– časová náročnost: 2 hodiny

– přihlášení: https://matlabacademy.mathworks.com/

35

Page 36: Deep Learning v prostředí MATLAB...Využití metod deep learningv počítačovém vidění v prostředí MATLABJaroslav Jirkovský jirkovsky@humusoft.cz info@humusoft.cz 2 Co je

Děkuji za pozornost