MPVUE - plataforma multiprocessador em chip para visão computacional - Ilha, Gustavo (2019)
O processamento de imagens e a visão computacional evoluíram significativamente nos últimos anos com o progresso da microeletrônica e dos sensores de imagem. A visão é muito útil para os animais se movimentarem e interagirem com o meio ambiente. Para os seres humanos, é ainda mais importante, pois a maioria das atividades depende da capacidade de ver e entender o contexto visual. Imagens estão em toda parte em nossas vidas diárias para comunicação, saúde, transporte e muitos outros aspectos. A visão é uma função muito complexa: além da aquisição de imagens, muitas outras tarefas são necessárias para compor um modelo de cena. Por enquanto, estamos interessados na captura de informações visuais para construir um modelo de cena 3D e reconhecer sinais e formas, tentando imitar a capacidade natural de ver. O sistema pode ser embarcado em objetos móveis ou pontos de observação, como veículos autônomos, sistemas de assistência ao motorista (DAS), monitoramento de tráfego e vigilância. Esta tese apresenta a plataforma MPVue, um Sistema MultiProcessador Heterogêneo de Memória Distribuída em Chip (DM-HMPSoC) estruturado sobre uma rede em chip (NoC) em malha 2-D, adaptada para realizar eficientemente o paralelismo de comunicação e execução em sistemas embarcados, visando aplicações de visão computacional. A arquitetura é descrita em uma RTL sintetizável e validada em FPGA. A comparação de desempenho foi feita usando algoritmos tipicamente usados no Processamento de Imagens: um Filtro Passa Baixas e a FFT. Uma implementação de arquitetura de software flexível baseada na Arquitetura Orientada a Serviços (SOA) facilita o encadeamento de funções para diferentes aplicativos. A arquitetura MPVue é adequada para os processos de visão de alto nível e trabalhos futuros avaliarão, por exemplo, seu desempenho para executar uma CNN treinada para capturar imagens de placas de veículos em vídeos de tráfego. Estudos em andamento definirão e portarão um sistema operacional para aumentar o desempenho do agendamento de tarefas e para executar vários aplicativos simultaneamente. Além disso, a API deve ser padronizada para facilitar o desenvolvimento de novos aplicativos.