top of page
Team I.A. Italia

Computer Vision e Deep Learning - Cosa è la Visione Artificiale e cosa centra il Deep Learning


Vorrei iniziare questo articolo andando a vedere la definizione di computer vision


Cosa è la Computer Vision :

La computer vision (CV) è il campo scientifico che definisce il modo in cui le macchine interpretano il significato di immagini e video. Gli algoritmi di visione artificiale analizzano determinati criteri in immagini e video, quindi applicano interpretazioni a compiti predittivi o decisionali.

Oggi, le tecniche di deep learning sono più comunemente utilizzate per la visione artificiale. Questo articolo esplora diversi modi in cui puoi utilizzare il deep learning per la visione artificiale. In particolare, imparerai i vantaggi dell'utilizzo delle reti neurali convoluzionali (CNN), che forniscono un'architettura multistrato che consente alle reti neurali di concentrarsi sulle caratteristiche più rilevanti nell'immagine.

In questo articolo imparerai:



Apprendimento profondo per la visione artificiale - Deep Learning per la Computer Vision
Apprendimento profondo per la visione artificiale - Deep Learning per la Computer Vision


Che cos'è la visione artificiale o Computer Vision?

La computer vision è una sotto-area di machine learning dedicata all'interpretazione e alla comprensione di immagini e video. Viene utilizzato per insegnare ai computer a "vedere" e a utilizzare le informazioni visive per eseguire attività visive che gli esseri umani possono.

I modelli di visione artificiale sono progettati per tradurre i dati visivi in ​​base alle caratteristiche e alle informazioni contestuali identificate durante l'addestramento. Ciò consente ai modelli di interpretare immagini e video e applicare tali interpretazioni a compiti predittivi o decisionali.

Sebbene entrambi siano correlati ai dati visivi, l'elaborazione delle immagini non è la stessa della visione artificiale. L'elaborazione delle immagini comporta la modifica o il miglioramento delle immagini per produrre un nuovo risultato. Può includere l'ottimizzazione della luminosità o del contrasto, l'aumento della risoluzione, la sfocatura delle informazioni sensibili o il ritaglio. La differenza tra elaborazione delle immagini e visione artificiale è che la prima non richiede necessariamente l'identificazione del contenuto.

Reti neurali convoluzionali: le fondamenta della moderna visione artificiale I moderni algoritmi di visione artificiale si basano su reti neurali convoluzionali (CNN), che forniscono un notevole miglioramento delle prestazioni rispetto ai tradizionali algoritmi di elaborazione delle immagini.

Le CNN sono reti neurali con un'architettura multilivello che viene utilizzata per ridurre gradualmente dati e calcoli al set più pertinente. Questo set viene quindi confrontato con dati noti per identificare o classificare l'input dei dati.

Le CNN vengono generalmente utilizzate per attività di visione artificiale, sebbene possano essere eseguite anche analisi del testo e analisi dell'audio. Una delle prime architetture della CNN è stata AlexNet (descritta di seguito), che ha vinto la sfida di riconoscimento visivo di ImageNet nel 2012.

Come funzionano le CNN Quando un'immagine viene elaborata da una CNN, ogni colore di base utilizzato nell'immagine (ad es. rosso, verde, blu) viene rappresentato come una matrice di valori. Questi valori vengono valutati e condensati in tensori 3D (nel caso di immagini a colori), che sono raccolte di pile di mappe di caratteristiche legate a una sezione dell'immagine. Questi tensori vengono creati facendo passare l'immagine attraverso una serie di strati convoluzionali e di raggruppamento, che vengono utilizzati per estrarre i dati più rilevanti da un segmento di immagine e condensarli in una matrice più piccola e rappresentativa. Questo processo viene ripetuto numerose volte (a seconda del numero di strati convoluzionali nell'architettura). Le caratteristiche finali estratte dal processo convoluzionale vengono inviate a un livello completamente connesso, che genera previsioni.


Architetture di deep learning per la visione artificiale

Le prestazioni e l'efficienza di una CNN sono determinate dalla sua architettura. Ciò include la struttura dei livelli, come sono progettati gli elementi e quali elementi sono presenti in ogni livello. Sono state create molte CNN, ma i seguenti sono alcuni dei progetti più efficaci.


AlexNet (2012)

AlexNet è un'architettura basata sulla precedente architettura LeNet. Comprende cinque strati convoluzionali e tre strati completamente connessi. AlexNet utilizza una struttura a doppia pipeline per consentire l'uso di due GPU durante l'addestramento. La principale differenza tra AlexNet e le architetture precedenti è l'uso di unità lineari rettificate (ReLU) invece delle funzioni di attivazione sigmoide o Tanh utilizzate nelle reti neurali tradizionali. ReLU è più semplice e veloce da calcolare, consentendo ad AlexNet di addestrare i modelli più velocemente.


GoogleNet (2014)

GoogleNet, noto anche come Inception V1, si basa sull'architettura LeNet. È composto da 22 strati formati da piccoli gruppi di circonvoluzioni, detti “moduli di inizio”. Questi moduli di avvio utilizzano la normalizzazione batch e RMSprop per ridurre il numero di parametri che GoogleNet deve elaborare. RMSprop è un algoritmo che utilizza metodi di tasso di apprendimento adattivo.


VGGNet (2014)

VGG 16 è un'architettura a 16 livelli (alcune varianti avevano 19 livelli). VGGNet ha livelli convoluzionali, un livello di pool, alcuni livelli convoluzionali in più, un livello di pool, molti altri livelli di conv e così via. VGG si basa sulla nozione di una rete molto più profonda con filtri più piccoli: utilizza convoluzioni 3×3 fino in fondo, che è la dimensione del filtro conv più piccola che esamina solo alcuni dei pixel vicini. Utilizza piccoli filtri a causa di un minor numero di parametri, rendendo possibile l'aggiunta di più livelli. Ha lo stesso campo ricettivo effettivo di uno strato convoluzionale 7×7.


ResNet (2015)

ResNet, acronimo di Residual Neural Network, è un'architettura progettata per avere un gran numero di livelli: le architetture tipicamente utilizzate vanno da ResNet-18 (con 18 livelli) a ResNet-1202 (con 1202 livelli). Questi livelli sono impostati con gated unità o "salta connessioni" che gli consentono di passare informazioni a livelli convoluzionali successivi. ResNet utilizza anche la normalizzazione batch per migliorare la stabilità della rete.


Xception (2016)

Xception è un'architettura basata su Inception, che sostituisce i moduli di inizio con circonvoluzioni separabili in profondità (convoluzione in profondità seguita da circonvoluzioni puntuali). Funziona catturando prima le correlazioni tra mappe di funzionalità e poi le correlazioni spaziali. Ciò consente un uso più efficiente dei parametri del modello.


ResNeXt-50 (2017)

ResNeXt-50 è un'architettura basata su moduli con 32 percorsi paralleli. Utilizza la cardinalità per ridurre gli errori di convalida e rappresenta una semplificazione dei moduli di inizio utilizzati in altre architetture.


Usi del deep learning nella visione artificiale

Lo sviluppo delle tecnologie di deep learning ha consentito la creazione di modelli di computer vision più accurati e complessi. Con l'aumento di queste tecnologie, l'incorporazione di applicazioni di visione artificiale sta diventando più utile. Di seguito sono riportati alcuni modi in cui il deep learning viene utilizzato per migliorare la visione artificiale.


Apprendimento profondo per la visione artificiale - Deep Learning per la Computer Vision
Apprendimento profondo per la visione artificiale - Deep Learning per la Computer Vision

Rilevamento di oggetti e Visione Artificiale

Esistono due tipi comuni di rilevamento di oggetti eseguiti tramite tecniche di visione artificiale:

  • Rilevamento di oggetti in due fasi : il primo passaggio richiede una rete di proposte regionali (RPN), che fornisce un numero di regioni candidate che possono contenere oggetti importanti. Il secondo passaggio consiste nel passare le proposte della regione a un'architettura di classificazione neurale, comunemente un algoritmo di raggruppamento gerarchico basato su RCNN o un pool di regioni di interesse (ROI) in Fast RCNN. Questi approcci sono abbastanza precisi, ma possono rallentare molto.

  • Rilevamento di oggetti in un solo passaggio : con la necessità di rilevamento di oggetti in tempo reale, sono emerse architetture di rilevamento di oggetti in un solo passaggio, come YOLO, SSD e RetinaNet. Questi combinano la fase di rilevamento e classificazione, regredendo le previsioni del riquadro di delimitazione. Ogni riquadro di delimitazione è rappresentato con poche coordinate, facilitando la combinazione della fase di rilevamento e classificazione e velocizzando l'elaborazione.


Localizzazione e rilevamento di oggetti

La localizzazione dell'immagine viene utilizzata per determinare dove si trovano gli oggetti in un'immagine. Una volta identificati, gli oggetti sono contrassegnati da un riquadro di delimitazione. Il rilevamento degli oggetti si estende su questo e classifica gli oggetti identificati. Questo processo si basa su CNN come AlexNet, Fast RCNN e Faster RCNN.

La localizzazione e il rilevamento di oggetti possono essere utilizzati per identificare più oggetti in scene complesse. Questo può quindi essere applicato a funzionalità come l'interpretazione di immagini diagnostiche in medicina.

Segmentazione semantica

La segmentazione semantica, nota anche come segmentazione degli oggetti, è simile al rilevamento degli oggetti tranne per il fatto che si basa sui pixel specifici relativi a un oggetto. Ciò consente di definire più accuratamente gli oggetti immagine e non richiede riquadri di delimitazione. La segmentazione semantica viene spesso eseguita utilizzando reti completamente convoluzionali (FCN) o U-Net.

Un uso popolare per la segmentazione semantica è per l'addestramento di veicoli autonomi. Con questo metodo, i ricercatori possono utilizzare immagini di strade o passaggi con confini accuratamente definiti per gli oggetti.

Stima della posa

La stima della posa è un metodo utilizzato per determinare dove si trovano le articolazioni in un'immagine di una persona o di un oggetto e cosa indica il posizionamento di tali articolazioni. Può essere utilizzato sia con immagini 2D che 3D. L'architettura principale utilizzata per la stima della posa è PoseNet, che si basa sulle CNN.

La stima della posa viene utilizzata per determinare dove parti del corpo possono apparire in un'immagine e può essere utilizzata per generare posizioni realistiche o movimenti di figure umane. Spesso, questa funzionalità viene utilizzata per la realtà aumentata, il rispecchiamento dei movimenti con la robotica o l'analisi del cammino.


Sei Interessato a sapere qualcosa nello specifico sulla Visione Artificiale ?

Scrivi un commento qui sotto !

1 Comment

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Romeo Ceccato
Romeo Ceccato
Sep 29, 2021

Articolo interessante, un buon punto di partenza per inoltrarsi in un mondo complesso. Per i principianti io direi comunque che anche utilizzando un Raspberry con OpenCV e Python, si possono ottenere dei buoni risultati.

Like
PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page