Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli...

32
Preprocesiranje slika i Apache Spark Teo Manojlović Šimun Karačić

Transcript of Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli...

Page 1: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Preprocesiranje slika i Apache Spark

Teo Manojlović

Šimun Karačić

Page 2: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

SV Group

Osnovana 1995. godine

Klijenti: velike banke, državne institucije i sl.

ICT gold Award 2016.

Prvi IBM Platinum partner u Hrvatskoj

Page 3: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

SV group big data tim

Streaming obrade, batch obrade, ETL jobovi

Petar Zečević – team leader i autor knjige Spark in Action

Rad s najnovijim big data tehnologijama:

Page 4: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Uvod

• Terabajti podataka dnevno

• Milijuni dnevnih posjeta web

stranicama

• Dinamičnost

• Obrada podataka

Page 5: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Page 6: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Spark

• Cluster computing framework

• Pisan u Scala programskom jeziku

• Podrška za R, Python i Javu

• Brži od Hadoop MapReducea

Page 7: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Mogućnosti

Page 8: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Spark Rdd

• RDD=Resilient Distributed

Datasets

• Lazy, immutable

• map, join, groupByKey,

reduceByKey ….

Page 9: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Spark runtime

Page 10: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Spark arhitektura

Page 11: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

H2O

Page 12: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

H2O

Page 13: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Spark u praktičnoj primjeni

Spark-shell

Spark-submit

Page 14: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Spark parametri

Master Num executorsExecutor coresExecutor memoryDriver memoryPackagesJars

Page 15: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Jupyter notebook

U pozadini se izvršava spark-shell

Za instalaciju potrebno je imati spark

Instalira se preko Python Pip-a

Apache Toree

Page 16: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Obrada slika

Page 17: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Digitalna obrada slike(Koji formati postoje?)

Kompresija slike:

Lossy

Loseless

Dva osnovna načina spremanja informacije:

Vektorski

Rasterski

Poznati formati: jpg, png, bmp, tiff ....

Page 18: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Kako može biti prikazan pixel

ARGB – alpha, red, green, blue

32 bita

Maksimalna vrijednost – bijela bojaMinimalna vrijednost – crna boja

Page 19: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Ostali načini prikaza pixela

CMYK

HSV

Hue – nijansa

Saturation - zasićenost

Value - vidljivost

Page 20: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Digitalna obrada slike

Detekcija rubova

Uklanjanje šumova

Morfološka obrada slike

Segmentacija

Skaliranje, spremanje u vektorski format

Page 21: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Digitalna obrada slike

Detekcija rubova: Sobel, Canny ...

Odšumljivanje

Page 22: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Digitalna obrada slike

Morfološka obrada slike

Segmentacija slike

Page 23: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Praktični primjeri

Scala programski jezik

Scrimage – scala library za osnovni image processing

Osnovne klase

Image

Pixel

Page 24: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Image

Osnovna klasa gdje se sprema slika

Iz Java OutputStream ili Byte array

Korisne funkcije

def argb: Array[Array[Int]]

def map(f: (Int, Int, Pixel) ⇒ Pixel): Image

def filter(filter: Filter): Image

Page 25: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Pixel

Image se sastoji od Pixela

Pixel je ARGB kodiran

Informacije o pojedinim komponentama

Page 26: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

OpenCV

Više verzija za javu

Osnovne klase

Mat

ImgProc

Izračunvanje kernela za daljnju obradu

Morfologija slike

Edge detection

Page 27: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Spark MlLib

Posjeduje osnovne machine learning algoritme

Osnovni podatkovni tipovi:

Vektori

Matrice

26

Page 28: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Spark web sučelje

Page 29: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Spark/Scala – korisna praksa

Performanse:

Particioniranje podataka

Broadcast malih lookup tablica

Coding style:

Odabir imena varijabli iz kojih se vidi tip podataka (imageRdd ako je Rdd)

Razbijanje velikih lambdi na više redova

Page 30: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

Sv Group zapošljava

Područja koja radimo:

Big data

Razvoj Java aplikacija

Poslovna inteligencija (ODI – Oracle Data Integrator)

Što nudimo:

Rad s najnovijim tehnologijama

Certificiranje zaposlenika

Sudjelovanja na konferencijama i kontinuirano usavršavanje

Page 31: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

PITANJA?

30

Page 32: Preprocesiranje slika i Apache Spark · Morfološka obrada slike Segmentacija slike. Tivoli Software Praktični primjeri Scala programski jezik Scrimage –scala library za osnovni

Tivoli Software

HVALA NA PAŽNJI !

31