Tesis
Implementação de um classificador de imagens baseado em redes neurais em sistemas embarcados
Fecha
2017-01-11Registro en:
SIQUEIRA, Thiago Marques. Implementação de um classificador de imagens baseado em redes neurais em sistemas embarcados. 2016. vi, 76 f., il. Dissertação (Mestrado em Sistemas Mecatrônicos) — Universidade de Brasília, Brasília, 2016.
Autor
Siqueira, Thiago Marques
Institución
Resumen
Durante décadas, classificadores baseados em rede neural feedforward (FNN, do inglês, feedforward neural network) têm sido amplamente utilizados em muitos problemas de classificação, como imagem [1] e reconhecimento de fala [2]. Porém essa descoberta veio com algumas desvantagens, o grande número de multiplicações em ponto flutuante necessário em tempo de teste e a quantidade de memória necessária para armazenar os parâmetros treinados. Isso ocorre porque a maioria dos seus cálculos são produto de matrizes por vetores, onde as imagens de entrada dispostas como vetores são multiplicados por uma matriz de parâmetros aprendida para um conjunto específico de imagens. Quando implementados em hardware dedicado, a principal vantagem de um classificador FNN sobre os outros classificadores é a sua natureza inerente de paralelizar as operações de multiplicação. No entanto, quando o número de parâmetros de um classificador FNN é grande, surge o desafio na alta quantidade de recursos necessários para implementar operações de multiplicação seguida de acumulação (MAC, do inglês multiply-accumulate operations) e a dificuldade de transferir os dados da memória para a unidade de processamento com uma baixa latência. Houve uma extensa pesquisa na literatura sobre estratégias de quantização para resolver esses problemas. Entre essas estratégias de quantização, o xQuant [3] quantiza os parâmetros do classificador FNN primeiramente reescalonando para valores inteiros e, em seguida, aproximando-os a potência de 2 mais próximo. Quando um classificador quantizado com xQuant é utilizado para classificar imagens, cada multiplicação de ponto flutuante é substituída por uma única operação de deslocamento de bits. No entanto, xQuant ainda não foi implementado em um hardware dedicado. Portanto, nessa dissertação de mestrado é apresentado uma análise da implementação do xQuant em FPGA. Usando o algoritmo de aprendizagem classificador FNN LAST (Learning Algorithm for Soft-Thresholding), o classificador foi treinado para um problema de classificação de textura e utilizado este classificador como estudo de caso. Esse foi implementado como um co-processador (Hardware / Software), uma arquitetura usando o ponto flutuante de precisão simples (Fp) e uma versão quantizada do classificador usando xQuant (xQ). Ambos os projetos foram implementados em um Xilinx Zynq-7020 SoC, utilizando a ferramenta Xilinx Vivado HLS. Os resultados mostram que xQ executa 3 vezes mais rápida do que Fp e o uso de recursos da FPGA como se segue: FF de 52% para 7%; LUTs de 63% para 15%; LUTRAMs de 10% para 1%; dispositivo de DSP de 29% para 0. Com essa redução de recursos é uma alternativa bem vista, para sistemas embarcados críticos, onde a quantidade de recursos e de energia disponíveis são limitados.