• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
Guide

Guida segmentazione semantica | Tensorflow, machine learning e computer vision

Guida segmentazione semantica | Tensorflow, machine learning e computer vision

Questa guida ti aiuterà a configurare i file necessari per ottenere una segmentazione semantica a partire da una qualunque immagine, grazie ad una tecnica di machine learning applicata a foto: tensorflow in aiuto ed ecco la computer vision. 

Ometto dettagli circa la procedura perché suppongo che se ti trovi a leggere queste parole, hai già un’infarinatura e sai di cosa si tratta.

Requsiti hardware

La maggior parte dei processi di machine learning, come la segmentazione semantica, richiede macchine performanti, questo non è da meno. Se sei privo di GPU con memoria RAM dedicata, e ti limiti a possedere un laptop con i5 o anche i7, ti conviene lasciare perdere. 

Puoi sempre provare, ma i tempi di processing crescono a dismisura. Con una 1070, un i5 6700k (non OC) e 8GB di RAM ho ottenuto ottimi risultati. Usa questi dati come riferimento.

Requisiti software

Tensorflow-gpu agevola il processo computazionale, ti consiglio di installarlo con questa guida, se ne sei privo.

Installare Tensorflow-gpu, CUDA Toolkit e cudnn | Windows

Potresti dover installare le seguenti librerie:

pip install

Detto ciò, andiamo avanti

Download dilation-tensorflow

Collegati al sito GitHub e scarica la repository:

Dilation-tensorflow | Download GitHub Repository

Scarica il primo, il secondo o entrambi i modelli. 

pretrained_dilation_cityscapes.pickle| Download 
pretrained_dilation_camvid.pickle | Download

La differenza è nel numero di classi che sono in grado di identificare: 19 per cityscapes e 11 per questa versione di Camvid (ce ne sono altre che arrivano a 32). I file sono troppo pesanti per essere analizzati, ma non contengono virus. 

Scarica i file nella cartella:

dilation-tensorflow/data

Get Semantic Segmentation

Apri il file ‘main_tf.py’ e modifica la riga inserendo il nome del modello che intendi usare, scegliendo tra ‘cityscapes’ e ‘camvid’.

Esegui lo script main_tf.py e il gioco è fatto! In un tempo che varia in base alle tue dipsonibilità hardware avrai le belle immagini processate per la segmentazione semantica

Allocation of… | Means you are poor

Se eseguendo lo script dovessi notare, tra gli altri, un errore di questo tipo, non temere. La segmentazione semantica richiede parecchie risorse.

E normale.

Il computer ti sta dicendo che sei povero. 

E potresti no avere memoria RAM o la tua GPU ha terminato la VRAM occupabile, ma generalmente riguarda la RAM. Puoi risolvere il problema in due modi:

  • con tensorflow e 8GB di RAM, chiudi Chrome, o ogni altro programma non necessario. Libera memoria con ogni mezzo, se serve disinstalla Microsoft Edge. Questo non è un consiglio, ma è quello che al liceo chiamavamo peer-tutoring, educazione civica se vogliamo. Microsotf Edge no. Brutto
  • con tensorflow-gpu, devi impedire al sistema di allocare troppa memoria. Sgui allora la guida: Memory Allocation Problem con Tensorflow-gpu? La soluzione!

Wait. What the f***

Tanto di cappello a chiunque abbia scritto lo script, ma bomber… non esiste che io mi metta a rinominare ogni singola immagine di cui voglio ottenere la segmentazione.

Infatti, affinche lo script funzioni, è necessario rinominare l’immagine di cui vuoi eseguire la segmentazione con il nome di uno dei due modelli che usi. Quindi, se ad esempio scegliessi ‘cityscapes‘ allora dovrai chiamare la tua immagine cityscapes.png o cityscapes.jpg etc.

Ovviamo al problema: main.py.

Modifica main_tf.py | Easy life

Per risparmiare tempo, ti consiglio di usare una versione del main_tf.py che ho modificato, aggiungendo un ciclo for che itera per ogni file all’interno della cartella data.

Così se vuoi segmentare più di un’immagine alla volta, non ci saranno problemi. Salvo il tempo per la computazione. Ricordati di modificare il file, cambiando alle righe 33 e 57 la frazione di memoria usata dalla GPU. 

Esegui quindi il comando main.py.

Modifica main_tf.py | Cross work with Deep Photo Style Transfer

Quando è arrivato il momento di usare nuove foto da cui partire e nuove immagini da prendere come stile, nella guida sulla Deep Photo Style Transfer, abbiamo riscontrato un grosso problema: mancava lo script per generare la segmentazione.

Ora finalmente possiamo ovviare al problema. 

Rispetto alla repository ufficiale, quella di cui ho eseguito il fork, questa contiene oltre al file main.py, un file dataset modificato. Cambiano alcuni colori che sono usati per il processo di segmentazione in questo modo risulterà compatibile anche con la Deep Photo Style Transfer. 

Per poter raggiungere il nostro scopo dobbiamo però prendere alcuni accorgimenti, tra cui la riduzione delle immagini campione.

Siamo giunti alla fine della guida!

Ci vediamo alla prossima.

Un caldo abbraccio, Andrea.

Written by Andrea Provino - Dicembre 26, 2018
Tags | computer vision, machine learning, python, tensorflow

You Might Also Like

Figure lavorative: le 10 per AI e Data Science| Enterprise AI Role Jobs

Settembre 26, 2019
machine-learning-engineer-lavoro-stipendio-responsabilità-come-diventare

Machine Learning Engineer

Novembre 23, 2020
global-differential-privacy-local-differential-privacy-deep-learning-data-science-scaled

Global Differential Privacy vs Local Differential Privacy

Febbraio 13, 2020
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • Blockchain Developer

    Circuito aritmetico

    Novembre 1, 2022
  • machine-learning

    Un nuovo inizio

    Settembre 4, 2021
  • Zero Knwoledge Proof Article Privacy Preserving

    Zero Knowledge Proof: zk-SNARK e zk-STARK | Prova a conoscenza zero

    Luglio 8, 2021
  • oblivious-transfer-spiegazione-italiano-ot-explanation Privacy Preserving

    Oblivious Transfer (OT)

    Luglio 6, 2021
  • Aleo Studio Website Preview machine-learning

    Aleo Studio: un IDE per Zero-Knowledge Proofs Applications

    Luglio 1, 2021
  • privacy-enhancing-technologies-data-machine-learning-data-science Privacy Preserving

    Perché il Privacy Tech è un vantaggio competitivo micidiale

    Giugno 17, 2021
  • bloom-filter-spiegazione-italian Privacy Preserving

    Bloom Filter

    Giugno 3, 2021
  • trusted-execution-environment-tee-data-science-come-fuziona Data Science, Privacy Preserving

    Trusted Execution Environment | Cos’è un TEE?

    Giugno 2, 2021
  • Crypto Custody services machine-learning

    Crypto Custody: Guida alla custodia delle criptomonete

    Maggio 26, 2021
  • deep-q-learning-q-learning-reinforcement-learning machine-learning

    Deep Q-Learning

    Aprile 27, 2021

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino