Utilize este identificador para referenciar este registo:
https://hdl.handle.net/1822/79848
Título: | Deeploy: a neural network computer vision tool (for the NVidia Tegra TX2 Embedded System) |
Autor(es): | Fernandes, João Pedro Alves |
Orientador(es): | Proença, Alberto José Pereira, André Martins Ferreira, André Leite |
Data: | 12-Dez-2018 |
Resumo(s): | Machine Learning (ML) gives a computer system the ability to perform a certain task without being explicitly programmed to do it. Although ML is not a new topic in the field
of computer science, these techniques have been gaining increasing popularity due to advances in hardware (especially GPUs). More powerful hardware supports more efficient
training and a more responsive end-system, once deployed. These algorithms have proven
to be particularly effective in image processing and feature detection, namely with deep
neural networks.
In the context of a vehicle, autonomous or not, perceiving its external and internal environment enables the ability to detect and identify left behind objects, its misuse or other
potentially dangerous situations. This captured data is relevant to trigger vehicle intelligent
responses. Bosch is currently developing a system that has these capabilities and plans to
leverage deep learning approaches to implement it.
This work aimed to test and evaluate the suitability of a given embedded device for
the project. It also determined the best strategy to implement deep learning solutions in
the device. The supplied test bed was a NVidia Software Development Kit (SDK) system
for the embedded NVidia Jetson TX2 device with the System-on-Chip (SOC) Parker, an
heterogeneous computing chip with 2 Denver-cores (a NVidia implementation of ARM-64
architecture), 4 CortexA57-cores (also ARM-64), 256 Pascal GPU-cores and support for up to
6 video cameras. The SDK includes several software library packages, including for image
processing and ML.
With the goal of fully exploiting the embedded device compute capabilities, this work
studied several inference frameworks, going as far as implementing an inference engine
from scratch (named Deeploy) that produces inferences based on two libraries provided
by NVidia: cuDNN and TensorRT. Deeploy was evaluated against well known and established frameworks, namely Tensorflow, PyTorch and Darknet, in terms of efficiency, resource
management and overall ease of use, maintainability and flexibility. This work also exploited key performance related features available on the device, such as power modes,
half-precision floating point computation and the implemented shared memory architecture between the GPU-cores and the CPU-cores. Machine Learning dá a um sistema informático a capacidade de completar uma dada tarefa sem ser explicitamente programado para tal. Apesar de Machine Learning não ser um tópico novo no campo da engenharia informática, estas técnicas têm-se tornado cada vez mais comuns devido a avanços no hardware (especialmente nos GPUs). Hardware mais computa-cionalmente capaz dá origem a treinos mais eficientes e a sistemas em campo mais rápidos. Este tipo de técnicas, em especial redes neuronais, demonstraram-se eficazes no processa-mento de imagens e deteção de objetos. No contexto de um veículo, autónomo ou não, perceber o seu interior e o ambiente no qual este se insere é essencial para detetar objetos esquecidos, o uso indevido do mesmo ou outro tipo de situações perigosas. Esta informação é essencial para desencadear respostas inteligentes por parte do veículo. A Bosch está atualmente a desenvolver um sistema com estas capacidades e para o implementar pretende utilizar soluções baseadas em redes neu-ronais. Com o projeto pretendeu-se testar e avaliar a aptidão de um dado dispositivo embe-bido para este projeto. Serviu também para determinar a melhor estratégia para se fazer a implementação de redes neuronais neste dispositivo. Os testes foram feitos num kit de desenvolvimento da NVidia que consiste num NVidia Jetson TX2 que contém um chip de computação heterogéneo composto por 2 cores Denver (implementação da NVidia da ar-quitetura ARM-64), 4 cores CortexA57 (também ARM-64), 256 cores GPU Pascal e capacidade de se conectar até 6 camaras de vídeo. O kit de desenvolvimento inclui várias bibliotecas de software para processamento de imagem e até para ML. Com o objectivo de tirar total partido das capacidades computacionais do sistema em-bebido, este trabalho explorou várias plataformas de inferência, implementando mesmo um motor de raiz capaz de fazer inferência recorrendo a duas bibliotecas desenvolvi-das pela NVidia: cuDNN e tensorRT. Foi também feita uma comparação entre as duas implementações desenvolvidas e frameworks tradicionais como Tensorflow, PyTorch e Dark-net no que toca a eficiência, facilidade de manutenção e flexibilidade. Este trabalho ex-plorou também as features chave que estão relacionadas com performance disponibilizadas pelo dispositivo embebido, como modos de consumo de energia, computação numérica de virgula flutuante de meia precisão e a arquitetura de memória partilhada implementada entre os múltiplos cores ARM-64 e os CUDA-cores do GPU. |
Tipo: | Dissertação de mestrado |
Descrição: | Dissertação de mestrado em Computer Science |
URI: | https://hdl.handle.net/1822/79848 |
Acesso: | Acesso aberto |
Aparece nas coleções: | BUM - Dissertações de Mestrado DI - Dissertações de Mestrado |
Ficheiros deste registo:
Ficheiro | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Joao Pedro Alves Fernandes.pdf | Dissertação de Mestrado | 6,97 MB | Adobe PDF | Ver/Abrir |