Deep learning is a technology that can find application in a vast maw of areas of use, including computer vision, automatic voice recognition, chatbots and service robots, facial recognition and the recognition of objects or people contained in images. The application of deep learning to the areas mentioned just now is necessarily linked to a common evaluation process called "inference". This dissertation aims to carry out an experimental evaluation regarding object recognition applications, with particular reference to embedded devices of variable computational capacity: for this purpose, a code has been developed that classifies the images captured in real time using the PyTorch framework, supported by Python. The improvement of computational performance and timing have been the subject of detailed analysis: the research activity has made it possible to ascertain that a model on which structured pruning has been applied shows significantly faster inference times than a model equipped with all the neurons and all the connections present in the first place. Conversely, the application of unstructured pruning appears to be slightly more efficient than the original model but, due to some, it appears comparatively slower than the same model on which structured pruning was instead applied. The restrictions mentioned above relate mainly to the embedded devices in terms of memory and computational resources: this is shown specifically through the comparison of results obtained on Raspberry Pi and on laptops. The experimentation results confirm what was previously mentioned: the structured pruning technique, with the removal of entire neurons or convolutional filters, makes the network smaller, speeding up inference times and making it accessible also to devices with computational capabilities low level.

Il deep learning è una tecnologia che può trovare applicazione in un vasto novero di settori, tra i quali figurano la computer vision, il riconoscimento automatico della voce, i chatbot e i robot di servizio, il riconoscimento facciale ed il riconoscimento di oggetti o persone nelle immagini. Questa tesi si propone l’obbiettivo di operare una valutazione sperimentale riguardante le applicazioni di riconoscimento di oggetti, con particolare riferimento ai dispositivi embedded di capacità computazionale variabile: a tal fine, è stato sviluppato un codice che classifica le immagini catturate in real time utilizzando il framework PyTorch, supportato da Python. Per la valutazione da effettuare sui vari modelli è opportuno partire dal concetto di pruning: una tecnica di sparsificazione con la quale si eliminano alcuni parametri, considerati di minor rilievo, dal modello di rete neurale. Distinguiamo da una parte il pruning structured, con l’eliminazione di interi filtri convoluzionali e l’aumento dei benefici in termini di velocità; dall’altra il pruning unstructured, che comporta l’eliminazione di più parametri rispetto al precedente ma con miglioramenti della rete limitati. Sono stati oggetto di analisi il miglioramento delle prestazioni computazionali e delle tempistiche: l’attività di ricerca ha permesso di acclarare che un modello sul quale è stato applicato il pruning structured riporta dei tempi di inferenza nettamente più rapidi rispetto ad un modello provvisto di tutti i neuroni e di tutte le connessioni presenti in origine. Di converso, l’applicazione del pruning unstructured risulta essere leggermente più performante rispetto al modello originale ma, a causa di alcune limitazioni, appare comparativamente più lenta rispetto allo stesso modello su cui è invece stato applicato il pruning structured. Le predette limitazioni riguardano molto spesso anche i dispositivi embedded a livello di memoria e di risorse computazionali: ciò emerge in particolar modo tramite un confronto dei risultati ottenuti su Raspberry Pi e su laptop. Gli esiti dell’attività di sperimentazione svolta confermano quanto accennato precedentemente: la tecnica del pruning structured, con la rimozione di interi neuroni o filtri convoluzionali, rende la rete più piccola, accelerando notevolmente i tempi di inferenza e rendendola accessibile anche a dispositivi con capacità computazionali di basso livello.

Deep learning su dispositivi embedded: valutazione dei tempi di inferenza nelle applicazioni di riconoscimento degli oggetti

FURCINITI, ANNA
2019/2020

Abstract

Il deep learning è una tecnologia che può trovare applicazione in un vasto novero di settori, tra i quali figurano la computer vision, il riconoscimento automatico della voce, i chatbot e i robot di servizio, il riconoscimento facciale ed il riconoscimento di oggetti o persone nelle immagini. Questa tesi si propone l’obbiettivo di operare una valutazione sperimentale riguardante le applicazioni di riconoscimento di oggetti, con particolare riferimento ai dispositivi embedded di capacità computazionale variabile: a tal fine, è stato sviluppato un codice che classifica le immagini catturate in real time utilizzando il framework PyTorch, supportato da Python. Per la valutazione da effettuare sui vari modelli è opportuno partire dal concetto di pruning: una tecnica di sparsificazione con la quale si eliminano alcuni parametri, considerati di minor rilievo, dal modello di rete neurale. Distinguiamo da una parte il pruning structured, con l’eliminazione di interi filtri convoluzionali e l’aumento dei benefici in termini di velocità; dall’altra il pruning unstructured, che comporta l’eliminazione di più parametri rispetto al precedente ma con miglioramenti della rete limitati. Sono stati oggetto di analisi il miglioramento delle prestazioni computazionali e delle tempistiche: l’attività di ricerca ha permesso di acclarare che un modello sul quale è stato applicato il pruning structured riporta dei tempi di inferenza nettamente più rapidi rispetto ad un modello provvisto di tutti i neuroni e di tutte le connessioni presenti in origine. Di converso, l’applicazione del pruning unstructured risulta essere leggermente più performante rispetto al modello originale ma, a causa di alcune limitazioni, appare comparativamente più lenta rispetto allo stesso modello su cui è invece stato applicato il pruning structured. Le predette limitazioni riguardano molto spesso anche i dispositivi embedded a livello di memoria e di risorse computazionali: ciò emerge in particolar modo tramite un confronto dei risultati ottenuti su Raspberry Pi e su laptop. Gli esiti dell’attività di sperimentazione svolta confermano quanto accennato precedentemente: la tecnica del pruning structured, con la rimozione di interi neuroni o filtri convoluzionali, rende la rete più piccola, accelerando notevolmente i tempi di inferenza e rendendola accessibile anche a dispositivi con capacità computazionali di basso livello.
ITA
Deep learning is a technology that can find application in a vast maw of areas of use, including computer vision, automatic voice recognition, chatbots and service robots, facial recognition and the recognition of objects or people contained in images. The application of deep learning to the areas mentioned just now is necessarily linked to a common evaluation process called "inference". This dissertation aims to carry out an experimental evaluation regarding object recognition applications, with particular reference to embedded devices of variable computational capacity: for this purpose, a code has been developed that classifies the images captured in real time using the PyTorch framework, supported by Python. The improvement of computational performance and timing have been the subject of detailed analysis: the research activity has made it possible to ascertain that a model on which structured pruning has been applied shows significantly faster inference times than a model equipped with all the neurons and all the connections present in the first place. Conversely, the application of unstructured pruning appears to be slightly more efficient than the original model but, due to some, it appears comparatively slower than the same model on which structured pruning was instead applied. The restrictions mentioned above relate mainly to the embedded devices in terms of memory and computational resources: this is shown specifically through the comparison of results obtained on Raspberry Pi and on laptops. The experimentation results confirm what was previously mentioned: the structured pruning technique, with the removal of entire neurons or convolutional filters, makes the network smaller, speeding up inference times and making it accessible also to devices with computational capabilities low level.
IMPORT DA TESIONLINE
File in questo prodotto:
File Dimensione Formato  
863227_tesi.pdf

non disponibili

Tipologia: Altro materiale allegato
Dimensione 2.17 MB
Formato Adobe PDF
2.17 MB Adobe PDF

I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14240/33718