DESENVOLVIMENTO DE PLATAFORMA NÃO-HOLONÔMICA PARA PESQUISA E EXPERIMENTOS COM SISTEMAS OPERACIONAIS EMBARCADOS E ALGORITMOS PARTE 2: PROCESSAMENTO DE IMAGENS
Aluno de Iniciação Científica: Giancarlo Klemm Camilo (PET)
Curso: Ciência da Computação - Bacharelado
Orientador: Eduardo Todt
Co-Orientador: Luis Allan Kunzle
Colaborador: Thiago Roscia Cordeiro de Lima, Guilherme Henrique Bolognesi, Alexandre Augusto Müller
Departamento: Informática
Setor: Ciências Exatas
Palavras-chave: processamento de imagens em FPGA , sistemas embarcados , sensor Kinect
Área de Conhecimento: 10303006 - METODOLOGIA E TÉCNICAS DA COMPUTAÇÃO
Este projeto visa complementar um projeto maior, que trata da construção de um robô integrado com o sensor Kinect, câmera estéreo desenvolvida pela Microsoft. O objetivo do projeto de processamento de imagens é capturar as imagens por meio da câmera do Kinect, fazer o processamento usando o hardware reconfigurável FPGA (Field Programmable Gate Array) e enviar os sinais de controle apropriados para os motores do robô. Como a libfreenect – biblioteca com as funções básicas para o funcionamento do Kinect – já contém um empacotador (wrapper) para a biblioteca OpenCV, esta foi escolhida para lidar com os algoritmos de processamento de imagem, uma vez que ela é específica para este tipo de processamento em tempo real, amplamente utilizada na comunidade de robótica e é aberta, com o código fonte disponível. Depois de uma etapa de familiarização com a biblioteca, o primeiro passo foi testar a OpenCV com uma câmera RGB convencional, com a qual foram obtidos ótimos resultados com um algoritmo de reconhecimento facial por Haar cascade, processo que envolve a obtenção de um conjunto de imagens de um objeto e seu uso para identificar objetos semelhantes. Também foi verificada a eficácia da execução da biblioteca em tempo real na plataforma disponível para o robô. O próximo passo é a aquisição da imagem do sensor Kinect com o uso da libfreenect e a sua conversão para um tipo de imagem específica suportado pela OpenCV (ilpImage). Feito isto, é possível fornecer dados de entrada para que o robô reaja da forma programada. É importante lembrar que a interação deste projeto com robô depende do projeto de interface, que visa implementar o Linux no FPGA, de modo que as bibliotecas mencionadas anteriormente possam ser instaladas. No estado atual este projeto apresenta as bibliotecas testadas em plataforma distinta da plataforma de execução (cross execution) e está em fase de implementação para a plataforma do robô, em Linux em execução em FPGA.