O Kinect Fusion como técnica de reconstrução tridimensional de objetos em tempo real

O Kinect Fusion como técnica de reconstrução tridimensional de objetos em tempo real

(Parte 1 de 2)

João Lucas de S. Silva1, Rafael S. dos Santos1, Michelle M. Cavalcante1 e Fabiano A. Vaz2

1Graduando(a) do Curso de Engenharia Elétrica (IFBA) e Bolsistas de Iniciação Científica. 2Professor Mestre em Ciência da Computação (IFBA), Campus Paulo Afonso.

Resumo. A reconstrução automática de modelos tridimensionais (3D) a partir de imagens consiste na criação de uma superfície ou malha poligonal, obtida através da interpolação de pontos amostrados, procurando captar as informações de profundidade contidas nas imagens de forma que a composição fique o mais fiel possível à realidade. O presente trabalho tem como propósito experimentar uma técnica de reconstrução tridimensional denominada Kinect Fusion avaliando sua eficácia quando submetida à análise dos seguintes fatores: confiabilidade; viabilidade, de acordo com a técnica de implementação ou de custos; desempenho, quanto à necessidade de hardware apropriado para o processamento e qualidade geral do resultado final observado. Para tanto, foi realizado experimentos utilizando-se de um Kinect, um computador que cumpre os pré-requisitos mínimos para o experimento e o software Kinect SDK. Com tal estudo, foi perceptível a praticidade dessa reconstrução, aliada ao baixo custo do procedimento. O modelo gerado ficou coerente com a realidade, sendo perceptíveis os mínimos detalhes da reconstrução. Contudo, é válido destacar a necessidade de um computador adequado para obtenção de resultados melhores.

Introdução

Na busca de melhoria na comunicação e com o advento da comunicação usuáriocomputador, ocorreu o avanço no campo da Interação Homem-Máquina (IHM) com interfaces que podem oferecer a possibilidade de representação da informação de um modo realista. Neste ensejo, a Realidade Aumentada (RA) mostra-se como um ramo de pesquisa destaque na Ciência da Computação devido suas amplas possibilidades de uso (HALLER, 2007).

Engenharia, Arte, Arquitetura, Medicina, História, Geografia, entre outros são só algumas das áreas em que a Realidade Aumentada vem sendo utilizada. Com o conhecimento de áreas como Computação Gráfica, Processamento de Imagens e Visão Computacional, a Realidade Aumentada se propõe a realizar a inserção de elementos virtuais em cenas reais em tempo real, como forma de expandir as possibilidades e experiências dos usuários (ZHOU, 2008).

Em cenários que ocorre a aplicação de RA, a modelagem baseada em imagens é mandatória ou desejável, principalmente quando o objetivo é a reconstrução automática do modelo 3D. Um exemplo de aplicação de um sistema de RA é a de representação para artefatos arqueológicos (VAZ, 2011). Percebe-se que usar técnicas de modelagem tradicionais apresenta alguns problemas: Uma das limitações da abordagem atual é a dificuldade de lidar com concavidades profundas para ser representada na reconstrução gráfica (NISTÉR, 2001).

A reconstrução do modelo pode falhar devido a obstruções parciais e também o método é vulnerável a erros cometidos na etapa de identificação (VAZ, 2011). É de destaque a questão da forma em que ocorre a aquisição 3D a partir de imagens bidimensionais (2D). A dificuldade nesta transformação consiste em que as imagem 2D capturadas são projeções de uma cena 3D e a transformação geométrica 2D→3D é algo indeterminado, devido informações insuficientes. Logo, algumas estruturas tridimensionais são perdidas na aquisição dos dados e estas podem ser parcialmente ou totalmente desprezadas no processo de reconstrução (VAZ, 2013).

Assim é importante a escolha de novas ferramentas, e estas devem ser capazes de facilitar a interação com o usuário final, possibilitando navegação dentro da cena, permitindo a simulação de situações reais. Neste contexto, o trabalho proposto neste artigo pretende apresentar uma técnica de reconstrução 3D baseada no Kinect, que possibilita a interação com o usuário final e que seja de fácil acesso e baixo custo.

Reconstrução Tridimensional Automática

A reconstrução automática de modelos tridimensionais (3D), a partir de imagens bidimensionais (modelagem baseada em imagens) consiste na criação de uma superfície, representada por uma malha poligonal obtida através da interpolação de pontos amostrados, procurando capturar de forma mais fiel possível às informações contidas nas imagens.

Na Computação Gráfica, os modelos sintéticos de reconstrução tridimensional ainda são construídos utilizando técnicas complexas (VAZ, 2013). Observando ainda que a criação desses modelos tridimensionais constitui uma atividade relativamente custosa, e também o processo de modelagem de um simples objeto pode levar horas ou até mesmo dias.

O tema reconstrução automática de superfície é dividido em dois enfoques dependendo dos dados iniciais e sua aplicação final. O primeiro consiste na criação de um modelo geométrico representando pelas propriedades geométricas intrínsecas da superfície amostrada em imagens bidimensionais, tais como orientação, profundidade e curvatura, obtendo assim o que é conhecido como a forma da superfície, ou simplesmente a forma 3D. (LIMA, 2008). O segundo enfoque concentra-se na construção de um modelo 3D, convertendo informações extraídas de imagens tridimensionais em uma malha poligonal, estabelecendo uma estrutura combinatória consistente com o objeto amostrado nas imagens iniciais (TEICHRIEB, 2010).

Kinect Fusion

O Kinect Fusion é a aposta da Microsoft para se tornar competitivo no mercado da

Realidade Aumentada e Virtual, isto é, um modelo onde o usuário possa manipular ou interagir com o virtual (interação virtual). O dispositivo utilizado é o Kinect, um acessório lançado para o console de jogos eletrônicos XBOX 360, que tinha por objetivo aumentar a interação dos usuários com os jogos.

O hardware do acessório é composto por um emissor infravermelho (Emissor IR), uma câmera RGB (Sensor RGB), câmera de infravermelho (Sensor IR) e microfones. A câmera e o sensor funcionam na frequência de 30 Hz, ambas com resolução de 640 x 480pontos (VGA). São mapeados os pontos cuja distância está entre aproximadamente 70 centímetros até 6 metros. Pontos fora dessa faixa não são reconhecidos, isto sendo uma limitação relativa ao próprio sensor. A Figura 1 mostra o acessório.

Figura 1: Hardware do Kinect (CARDOSO, 2013).

O sistema permite aos usuários reconstruir uma cena em 3D com alta fidelidade e em tempo real com o uso de um acessório Kinect comum. O Fusion também inclui um engine de física realista que permite que se possa interagir com objetos digitalizados. Desde 2011, quando foram publicados os primeiros resultados, a comunidade de desenvolvedores vem dedicando-se a pesquisar e produzir trabalhos explorando a potencialidade proporcionada por este. Esta funcionalidade permite digitalizar objetos reais e recriá-los, automaticamente, como modelos virtuais 3D de alta qualidade.

O trabalho fundamenta-se na fusão de técnicas de reconstrução 3D automática de superfície baseada imagens bidimensionais e mapas de profundidade. Isto é, o Fusion permite a digitalização 3D de objetos reais, utilizando um sensor de captura de profundidade. A cena é reconstruída, integrando os dados de profundidade obtidos a partir de vários pontos de vista. É possível ainda renderizar em tempo real e, simultaneamente, o usuário pode interagir com o modelo 3D da cena.

O algoritmo utilizado para o alinhamento dos pontos desses mapas de profundidade é o Iterative Closest Point (ICP), que toma por entrada duas ou mais nuvens que representam dois pontos de vista distintos de um mesmo objeto (VAZ, 2013). Para cada ponto em uma das nuvens, localiza-se o ponto mais próximo equivalente nas outras e os adiciona em um novo conjunto. Esta etapa é onde que há uma busca pontos próximos e realiza uma “costura” entre estes. Uma vez interpolados os pontos de tais nuvens nesse novo conjunto, o modelo tridimensional é então criado e apresentado. Vale ressaltar que para obter tais nuvens é desejável um dos seguintes cenários: Sensor parado com objeto em movimento, ou cena parada com sensor em movimento.

Materiais e Métodos

Para realização do experimento foi utilizado um computador com as configurações conforme a Tabela 1 e um sensor Kinect para Xbox 360 com um adaptador. Como software, foi utilizado o framework Microsoft Kinect SDK da própria Microsoft.

Tabela 1: Configuração do Computador usado para testes.

Processador E5200, Dual Core, 2.0 @3.5Ghz Memória DDR2 2GB Dual Channel Kingston

Placa de Vídeo GTX550TI EVGA, 1gb GDDR5, 192 Processor Cores Disco Local (HD) 320Gb

É válido destacar que o Kinect originalmente precisa de um adaptador para ser conectado ao computador, tal adaptador foi criado pela Microsoft e é mostrado na Figura 2. Em 2013 começou a ser vendido o sensor Kinect exclusivo para computador no Brasil.

Figura 2: Adaptador do Kinect para computador (Cardoso, 2013).

O experimento foi realizado com a digitalização de cenas. Posicionando o objeto ou a cena em uma área boa para captura, sem obstáculos em frente ao objeto. E foi colocado o algoritmo ICP para realizar a reconstrução tridimensional à medida que o Kinect capturava as cenas.

Quanto à metodologia foi uma pesquisa aplicada, abordagem de problemas, objetivos a ser atingido e desenvolvimento técnico. A pesquisa fundamentou-se em solucionar problemas específicos da reconstrução automática de modelos tridimensionais e ainda o estudo de fenômenos resultantes nos ambientes multisensoriais para propor novas soluções (pesquisa quantitativa).

Para estabelecer os objetivos foi proposto o método descritivo e explicativo, observando assim tudo que foi feito quanto ao modelo e colhendo causas e razões sobre o comportamento do sistema, a fim de definir um parecer técnico.

A pesquisa ainda teve o caráter experimental. Assim foi projetado todo ambiente e definido variáveis que influenciam nos resultados e coletado os efeitos que estas produziram no experimento em busca de melhorias.

Resultados e Discussão

Foi obtido evidências que indicam que a reconstrução do modelo (apenas a geometria, sem informações de textura) é satisfatória, desde que o hardware do computador utilizado seja adequado, evitando assim lentidões e falhas na reconstrução final, tais lentidões e pausas durante a captura e cálculo causa perdas de precisão no modelo (distorção quanto ao modelo real).

Primeiramente, ao iniciar o programa e utilizar uma função Kinect Fusion Basics, obteve-se a seguinte captura de cena: um quarto que possuía diversos objetos diferentes posicionados. O local estava com as luzes apagadas, visto que, usa-se o sensor infravermelho do Kinect, assim ele gera uma matriz com as distancias obtidas com a ajuda do emissor de infravermelho. Com a Figura 3 percebe-se uma mesa à esquerda com objetos em cima, e uma cadeira à direita, além de um Notebook ao centro. Vale ressaltar também, que logo acima do Notebook existe a maçaneta da porta que foi capturada e está pouco visível.

Figura 3: Imagem capturada com a função Kinect Fusion Basics.

Como forma de experimentar o algoritmo ICP para reconstrução, resolveu-se criar um modelo virtual 3D de um ser humano, por ser algo com características conhecidas. O Kinect funcionou com a atuação do “canhão” de infravermelho (Emissor IR) na cena, que emite raios que serve de referência para obter as distâncias para criação da matriz. Após ocorre a leitura dos raios pela Câmera de infravermelho (Sensor IR). Todos os dados obtidos formam uma matriz, sendo que cada elemento é a distancia de um raio formado pelo emissor infravermelho, conforme a Figura 4. A matriz processada de acordo com o Algoritmo formou a Figuras 5 e depois a Figura 6, ambas capturadas em tempo real.

Figura 4: Exemplo de uma Matriz formada com o Emissor IR e Sensor IR. Fonte: Pointclouds.

Figura 5: Reconstrução tridimensional da Figura Humana I.

Figura 6: Reconstrução tridimensional da Figura Humana I.

Por fim, destacou-se que esta reconstrução pode ser ainda melhorada com aprimoramento do algoritmo e com um processador e uma placa de vídeo com melhor desempenho, devido os cálculos e processos gráficos serem executados mais rápidos e com maior qualidade.

Conclusão e Trabalhos Futuros

Com a devida análise empírica e prática percebeu-se que a reconstrução tridimensional é um tema que possui diversos desafios. Esses desafios surgem a cada dia e pesquisadores tentam solucionar tais problemas. Isso devido a Realidade Aumentada e Virtual ser uma das formas mais avançadas de garantir a interface do usuário com o computador (KIRNER, 2000; MARTINS, 2012).

Com tal estudo, foi perceptível a praticidade de reconstrução, aliado ao baixo custo do procedimento. O modelo gerado ficou coerente com a realidade, sendo perceptíveis os mínimos detalhes da reconstrução. Contudo, é válido destacar que é necessário um computador adequado para a obtenção de melhores resultados, visto que o método exige bastante poder de processamento gráfico, como foi confirmado no experimento.

O trabalho atingiu assim o principal objetivo que era experimentar essa técnica específica de reconstrução tridimensional com o Kinect e analisar seus aspectos e sua viabilidade. Para projetos futuros espera-se:

Aprimoramento das técnicas de reconstrução 3D baseadas em imagens.

Desenvolver novos protótipos do método de reconstrução automática de modelos tridimensionais.

Descobrir novas ferramentas e cálculos para a reconstrução 3D de forma a aperfeiçoar o uso do Kinect para este fim.

Agradecimentos

Os autores agradecem ao Conselho Nacional de Desenvolvimento Científico e

Tecnológico (CNPq) e à Pró-Reitoria de Pesquisa, Pós-Graduação e Inovação (PRPGI) do Instituto Federal de Educação, Ciência e Tecnologia da Bahia (IFBA) pelas bolsas de Iniciação em Desenvolvimento Tecnológico e Inovação (PIBITI), concedidas aos estudantes que realizaram este trabalho. Além destes, também ao grupo de pesquisa Meio Ambiente e Energia do IFBA e a todos aqueles que tornaram este trabalho possível.

Referências

Cardoso, Gabriel Schade. Microsoft Kinect: Crie aplicações interativas. Edição 1ª. Local de publicação: Editora Casa do Código,p. 167, 2013.

Haller, M.; Billinghurst, M. e Thomas, B. Emerging Technologies of Augmented Reality:

Interfaces and Design, 1. ed., Hershey: Idea Group Publishing, 2007. 399 p.

Kirner, T. G. and Martins, V. F. (2000). Development of an Information Visualization Tool

Using Virtual Reality, ACM Symposium on Applied Computing – SAC 2000, Vila Olmo, Como, Itália.

Lima, J.; Neto, S. G.; Bueno, M.; Teichrieb, V.; Kelner, J. e Santos, I. Applications in

Engineering using Augmented Reality Technology, CILAMCE, 2008.

Martins, Valéria F.; Guimarães, Marcelo de P.; Desafios para o uso de Realidade Virtual e

Aumentada de maneira efetiva no ensino, DEsafIE! - I Workshop de Desafios da Computação Aplicada à Educação, 2012. Microsoft Corporation, “Kinect Manual”, 2010.

Nistér, D. Automatic dense reconstruction from uncalibrated video sequences, PhD

Thesis, Royal Institute of Technology KTH, Computational Vision and Active Perception Laboratory CVAP, ISBN 91-7283-053-0, Estocolmo, Suiça, 2001. Teichrieb, V.; Lima, J.; Apolinário, E.; Farias, T.; Bueno, M.; Kelner, J. e Santos, I. A

(Parte 1 de 2)

Comentários