176
RECONSTRUÇÃO DIGITAL DE OBJETOS EM 3D POR NUVEM DE
PONTOS UTILIZANDO O KINECT
Vitor Alexandre dos Reis - Acadêmico do Curso de Ciência da Computação – Centro Universitário
UNISEB. email: [email protected]
Lúcio André de Castro Jorge - Doutor em Engenharia Elétrica pela Universidade de São Paulo;
Docente do Centro Universitário UNISEB. email: [email protected]
Resumo
Neste trabalho é apresentado um sistema que está em fase de desenvolvimento que permita a
reconstrução digital de objetos em 3D, proposto para aplicação em estudos de frutas em póscolheita. O sistema proposto utiliza três componentes principais, sendo o primeiro
componente um sensor Kinect que obtém imagens de profundidade e imagens no padrão
RGB, tornando possível a execução do algoritmo de reconstrução tridimensional. O segundo
componente é uma plataforma giratória que é controlada por um micro-controlador. E o
terceiro componente é o software que reconstrói o objeto em 3D através das imagens obtidas
com o sensor Kinect. Apresenta-se aqui os primeiros resultados e as primeiras avaliações.
Palavras-chave: Reconstrução 3D; Segmentação; Imagens de profundidade.
Abstract
We present a system that is being developed for the reconstruction of digital 3D objects
proposed for application in studies of fruit postharvest. The proposed system uses three main
components, the first component being a sensor Kinect obtain depth images and images in
RGB pattern, making it possible to execute three-dimensional reconstruction algorithm. The
second component is a turntable that is controlled by a micro-controller. And the third
component is the software that reconstructs the 3D object through the images obtained with
the Kinect sensor. Here we present the first results and initial assessments.
Keywords: 3D Reconstruction; Image Segmentation; Depth Images.
1. Introdução
De acordo com Jorge e Ferreira (2011) produtos agrícolas geralmente podem ser
distinguidos pela cor, forma e textura. De forma geral, pessoas treinadas possuem percepção
visual capaz de determinar a qualidade dos frutos, grãos e hortaliças. Apesar do avanço
tecnológico, a classificação de frutos de forma visual e manual ainda é amplamente praticada.
Por outro lado, a crescente demanda pela qualidade dos alimentos por parte dos
consumidores, bem como a exigência de instituições de proteção ao consumidor quanto à
qualidade de produtos alimentícios, seja ele processado ou in natura, tem levado ao aumento
do desenvolvimento de máquinas seletoras automáticas para identificar e remover todos os
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
177
contaminantes: vidro, pedras, insetos, produtos estragados, matéria vegetal, etc. Além disso, a
seleção ótica permite maior padronização do produto, com remoção de itens disformes.
A reconstrução 3D de frutas e hortaliças tem um papel fundamental para o avanço no
desenvolvimento de ferramentas de automatização de classificação de frutas e hortaliças, pois
isso possibilita a criação de produtos que tenham como base a execução de algoritmos de
inteligência artificial e de processamento digital de imagens que analisem os modelos 3D para
obter uma resposta com maior grau de acertividade.
Figura 1 - Frutas e hortaliças classificadas
Fonte: foto de Geovani B. Amaro.
Como pode-se visualizar na figura 1, a classificação uniformiza tamanho e o estado de
maturação das frutas e facilita a comercialização dos produtos hortícolas.
1.1. Trabalhos relacionados
Motivados pela necessidade de prover melhorias na metodologia de trabalho de
diversos profissionais e impulsionados pelo desenvolvimento computacional, que permitiu
ampliar as possibilidades de acesso a soluções de análise de imagens a baixo custo, diversos
trabalhos tem sido desenvolvidos nos últimos anos com a temática centrada na reconstrução
tridimensional de objetos.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
178
O projeto RGBdemo (MANCTL COMPANY, 2013) utiliza uma abordagem de
reconstrução baseada nas técnicas SLAM (Simultaneous Localizantion And Mapping) e
RANSAC (RANdom SAmple Consensus). Segundo Melgar e Diez (2012, p. 310)
… essas são técnicas avançadas de computação que permitem reconstruir um
cenário a partir de diferentes imagens obtidas por um scanner-3D sem ter qualquer
informação da posição atual da câmera. O software analisa diferentes nuvens de
pontos e as combina a partir pedaços em comum.
Burrus (2013) adaptou o projeto RGBdemo e criou um scanner com plataforma
giratória, o resultado obtido pode ser visualizado na Figura 2.
Figura 2 - Imagem produzida pelo scanner com plataforma giratória de referência.
FONTE: BURRUS, 2013.
Algumas companhias de soluções em scanner 3D comercializam plataformas
giratórias para serem utilizadas com suas câmeras 3D, como Mephisto 1 sistema de
digitalização 3D altamente flexível e intuitivo, alcance rápido, imagens com qualidade, alta
precisão e varredura de resultados com um mínimo de tempo de processamento e de interação
com o utilizador (4DD DYNAMICS, 2012). Existem também outras soluções como o
SpinScan apresentado na Figura 3, que é uma plataforma giratória desenvolvida e
comercializada para a finalidade de scaneamento de objetos.
1
Disponível em: <http://www.4ddynamics.com/3d-scanners/>. Acesso em: 24 mar. 2012.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
179
Figura 3 - Estrutura do SpinScan
FONTE: MELGAR e DIEZ, 2012.
Pesquisadores do Instituto de Ciências Matemáticas e de Computação (ICMC), da
USP de São Carlos, desenvolveram um equipamento de avaliação corporal que mede o
percentual de gordura nas pessoas de forma mais rápida, precisa e confortável do que outros
métodos existentes no mercado. O All Body Scan 3D escaneia o corpo inteiro em 30
segundos, e gera um modelo tridimensional do paciente. O equipamento tem aplicação tanto
em clínicas de fisioterapia como em academias de ginástica (VILELLA, 2012).
Figura 4 - Imagens geradas pelo All Body Scan 3D
FONTE: VILELLA, 2012.
De acordo com Vilella (2012)
Para fazer o escaneamento completo do corpo, o equipamento utiliza a tecnologia do
Kinect, sensor presente em videogames, que por meio de um trilho circular dá uma
volta de 270 graus em torno do paciente, moldando o corpo em 3D e transferindo os
dados volumétricos para o software no computador. Segundo Gazziro (USP
Destaque, 2012) o dispositivo funciona da seguinte maneira
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
180
São trinta segundos para escanear o corpo inteiro, mais dois minutos para
processamento no computador. O tórax, porém, é escaneado nos primeiros sete
segundos, tornando o equipamento confortável para uso, pois é necessário prender a
respiração. Após este processo, o equipamento realiza o escaneamento da pélvis e
pernas.
Abaixo podemos conferir o dispositivo All Body Scan 3D.
Figura 5 - Dispositivo All Body Scan 3D.
FONTE: VILELLA, 2012.
O D3D traz uma abordagem diferente do All Body Scan 3D, mas possuí uma ideia
similar quanto ao método, já que propõe fazer o objeto a ser escaneado girar na frente do
campo de captura do sensor. O D3D é uma solução de baixo custo comparado ao All Body
Scan 3D, porém limita-se a objetos menores e destaca-se por sua portabilidade já que trata-se
de um conjunto de equipamentos bem menores e mais leves.
2. Metodologia
O D3D propõe o desenvolvimento de uma ferramenta para efetuar a reconstrução 3D
de objetos e auxiliar na análise de volume do objeto, com o objetivo de automatizar esta
tarefa.
Para o desenvolvimento foram utilizados um sensor Kinect que obtém imagens de
profundidade e imagens no padrão RGB. Também foi desenvolvida uma plataforma giratória
que é controlada por um micro-controlador, com isso é possível visualizar o objeto em
diversos ângulos. E o software que reconstrói o objeto em 3D através das imagens obtidas
com o sensor Kinect. Todos são mais bem descritos a seguir.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
181
2.1. Kinect
O sensor Kinect, lançado em novembro de 2010 e originalmente conhecido como
Projeto Natal, é um dispositivo com sensor de movimento desenvolvido pela Microsoft para o
console de videogame Xbox 360 que visa permitir aos jogadores uma interação com os jogos
sem a necessidade de um controle cabeado através de uma interface natural do usuário Natural User Interface (NUI), inovando assim no campo da jogabilidade, competindo com o
Wii Remote Plus da Nintendo e o PlayStation Move da Sony (MATSUMURA;SONNINO,
2011).
2.1.1. Sensor Kinect
O Kinect é baseado em uma tecnologia de software desenvolvida internamente pela
Microsoft Research e em uma tecnologia de detecção e reconhecimento 3D desenvolvida pela
PrimeSense (MICROSOFT NEWS CENTER, 2010), que interpreta a informação de uma
cena 3D através de uma projeção contínua de luz infravermelha, o chamado LightCoding.
O sensor de profundidade consiste em um projetor de laser infravermelho combinado
com um sensor monocromático CMOS que captura vídeo infravermelho sob qualquer
condição de iluminação do ambiente e o transforma em dados de profundidade, como
ilustrado na figura 6 (PRIMESENSE NATURAL INTERACTION, 2010). A faixa de
detecção do sensor de profundidade é ajustável e o software é capaz de calibrar
automaticamente o sensor baseando na jogabilidade e no ambiente físico do jogador.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
182
Figura 6 - Diagrama do sensor de profundidade do Kinect
FONTE: PRIMESENSE NATURAL INTERACTION, 2011.
2.1.1. Kinect SDK
Em 16 de junho de 2011 foi lançado oficialmente o Kit de Desenvolvimento de
Software - Software Development Kit (SDK) do Kinect para o sistema operacional Windows
7, em versão beta, gratuita e de uso permitido apenas para fins não comerciais (MICROSOFT,
2011). Desta forma, entusiastas, desenvolvedores e pesquisadores acadêmicos obtiveram a
possibilidade de criar novas funções com maior profundidade de detecção, qualidade no
rastreamento de movimentos e reconhecimento de voz e objetos se comparado a outras
soluções existentes anteriormente (ex.: OpenNI (HINCHMAN, 2011)).
O SDK fornece acesso às APIs, permitindo as seguintes funcionalidades
(MICROSOFT, 2011):
○ Controle direto do sensor;
○ Acesso a imagens diretas do sensor de profundidade, e câmera colorida;
○ Acesso ao microfone multimatriz;
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
183
○ Detecção do esqueleto de uma ou duas pessoas dentro do campo de visão do
Kinect para aplicações orientadas a gestos;
○ Capacidade de processamento de áudio, incluindo supressão de ruídos e
cancelamento de eco;
○ Capacidade de identicação da fonte emissora do som atual;
○ Integração com a API de reconhecimento de fala do Windows; e
○ Construção de aplicações em C++, C# ou Visual Basic.
No dia 18 de março de 2013, foi lançada a versão 1.7 do Kinect SDK. As melhorias
mais significativas foram relacionadas as linhas gerais de interface humana, com recursos que
permitem o desenvolvimento de aplicações intuitivas e suaves. Além de estar mais preciso, a
latência diminuiu. De acordo com a documentação, a detecção está 20% mais rápida. A nova
versão, além de oferecer suporte a multi-threading podendo aproveitar melhor os
processadores de múltiplos núcleos, também oferece ferramentas para criar renderizações 3D
precisas (DUNCAN, 2013).
2.2. Plataforma giratória
Quando um objeto é escaneado com o sensor Kinect, sempre há um lado visível, que o
sensor Kinect pode “ver”, e um lado oculto que o sensor não pode capturar com uma única
imagem. Isso pode ser visualizado na figura 7 abaixo.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
184
Figura 7 - Lado visível x Lado Oculto
FONTE: MELGAR e DIEZ, 2012.
Colocando-se um objeto em uma base giratória, é possível rotacionar o objeto de
modo que o ponto P fique no lado visível. Pode-se girar a plataforma em qualquer ângulo e
isso habilita a visualização do objeto em diversos pontos de vista.
Figura 8 - Plataforma Giratória
FONTE: MELGAR e DIEZ, 2012.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
185
De acordo com Melgar e Diez (2013) é possível reconstruir um objeto a partir de
diferentes imagens, para isso é necessário que todos os pontos que definem a imagem do
objeto estejam no mesmo sistema de coordenadas. Na primeira imagem o ponto P é definido
pelas coordenadas P(x,y,z); quando a plataforma é rotacionada para visualizar o ponto, as
coordenadas de P mudam, agora são P(x’,y’,z’). Sabendo o ângulo original e o ângulo para o
qual a plataforma girou, pode-se facilmente obter as coordenadas originais de P(x,y,z) a partir
das coordenadas transformadas de P(x’,y’,z’) utilizando trigonometria básica. Seja o ângulo α;
a plataforma está sendo rotacionada no eixo y, então a transformação seria a seguinte:
x = x’ * cos(α) -z’ * sin(α);
y = y’
z= z’ * sin(α) + z’ * cos(α);
Aplicando estas simples transformações. é possível escanear o objeto de diferentes
pontos de vista e reconstruir ele com seu volume em um sistema de coordenadas consistente.
A figura 9 mostra como seria a reconstrução da imagem a partir de 3 pontos de vista.
Figura 9 - Reconstrução de imagem a partir de três pontos de vista.
FONTE: MELGAR e DIEZ, 2012.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
186
2.3. Diferença de profundidade
Através de imagens obtidas por sensores e câmeras com infravermelho é possível
discriminar computacionalmente objetos de uma maneira mais fácil do que os métodos
regulares, pois esses dispositivos permitem recuperar a profundidade dos pixels (PAL, N. R.;
PAL, S. K., 1993). De acordo com Odemir e Neto (2012) a segmentação de objetos em
imagens de profundidade pode ser realizada por diversos métodos, como: limiarização,
crescimento de região, divisão e fusão, watershed, ou abertura por morfologia matemática.
Para a aplicação proposta por este trabalho é essêncial que o método escolhido tenha o melhor
desempenho possível.
Figura 9 - Imagem RGB e imagem em profundidade
FONTE: Elaboração Própria, 2013
A figura 9 mostra uma comparação de uma imagem no padrão RBG e sua
correspondente no padrão de profundidades após um tratamento de segmentação já aplicado.
O sensor de profundidade consiste em um projetor de laser infravermelho combinado com um
sensor monocromático CMOS que captura vídeo infravermelho sob qualquer condição de
iluminação do ambiente e o transforma em dados de profundidade (PRIMESENSE NATURAL
INTERACTION, 2010).
A seguir é exibido um trecho do algoritmo que é capaz de identificar objetos em una
imagem de profundidade obtida com o sensor Kinect com base na distância de cada pixel2 o.
2
“pixel” é o menor elemento num dispositivo de exibição ao qual é possível atribuir-se uma cor.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
187
Quadro 1 - Algoritmo para segmentação por distância
algoritmo SegmentacaoPorDistanciaKinect
constante IndiceAzul = 0
constante IndiceVerde= 3
constante IndiceVermelho = 2
var dadosDeProfundidade: vetor[DadosCamera.TamanhoDados] inteiro
DadosCamera.CopiarDadosDosPixelsPara(dadosDeProfundidade)
var pixels : vetor[DadosCamera.Altura * DadosCamera.Largura * 4] inteiro
var indiceProfundidade : inteiro
var indiceCor : inteiro
para (inicio: indiceProfundidade = 0, indiceCor = 0
fim: indiceProfundidade < dadosDeProfundidade.Tamanho, indiceCor < pixels.Tamanho
passo: indiceProfundidade +1, indiceCor +4)
var profundidade : inteiro
profundidade = dadosDeProfundidade[indiceProfundidade]
se profundidade < 0,9Metros então
pixels[indiceCor + indiceAzul] = 255
pixels[indiceCor + indiceVerde] = 0
pixels[indiceCor + indiceVermelho] = 0
fim se
se profundidade > 0,9Metros, profundidade < 2Metros então
pixels[indiceCor + indiceAzul] = 0
pixels[indiceCor + indiceVerde] = 255
pixels[indiceCor + indiceVermelho] = 0
senão
pixels[indiceCor + indiceAzul] = 0
pixels[indiceCor + indiceVerde] = 0
pixels[indiceCor + indiceVermelho] = 255
fim se
fim para
fim algoritmo
FONTE: Elaboração Própria, 2013.
2.4. Segmentação por limiarização tridimensional
De acordo com Verma, Kumar e Hsu (2006) com a imagem de profundidade podemos
obter uma imagem no padrão RGB segmentada através da distância. Convertendo as
coordenadas da imagem de profundidade fornecida pela câmera do sensor Kinect para uma
nuvem de pontos, utilizaremos a posição tridimensional do objeto para obter uma imagem
com somente o objeto que é de interesse.
Isso foi feito definindo por referência três intervalos correspondentes a cada um dos
eixos ortogonais, o que equivaleria a uma área em formato de caixa conforme a figura 11,
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
188
com dimensões configuráveis, ou seja: largura ix, altura iy e profundidade iz. Criamos assim
uma nova imagem contendo todos os pixels existentes nos intervalos descritos pela equação:
Figura 11 - Limiariazação por coordenadas tridimensionais
FONTE: Elaboração Própria, 2013.
2.5. Detecção dos pontos de finalização
Um modo simples de executar a detecção dos pontos de finalização é percorrendo por
toda a imagem e sempre que encontrar um pixel da cor do objeto analisar quantos pixels desta
mesma cor a uma vizinhança de 8 ele tem. Caso este pixel tenha menos que dois pixels de sua
mesma cor em sua vizinhança de 8, ele deverá ser adicionado como um ponto de finalização
do objeto.
A figura 12 exemplifica um pixel com vizinhança 8.
Figura 12 - Pixels com vizinhança 8
FONTE: Elaboração Própria, 2013.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
189
3. Resultados Preliminares
Constatou-se que o método proposto funcionou bem com objetos de forma regular,
porém, a reconstrução e determinação do volume de frutas ainda apresentam limitações,
principalmente por causa das formas irregulares e de difícil reconstrução computacional por
modelos convencionais. A figura 13 exibe uma imagem obtida em uma análise de
profundidade x padrão RGB.
Figura 13 - Padrão de profundidade e padrão RGB respectivamente.
FONTE: Elaboração Própria, 2013.
Apesar das falhas, de modo geral o algoritmo de reconhecimento de objetos mostrouse eficiente. As imagens foram capturadas numa distância de 110 cm. A API de
desenvolvimento apresentou uma taxa de precisão na profundidade de cerca de 80% fato que
indica a necessidade de aplicar um tratamento especial no algoritmo para cobrir os 20% de
dados sujeitos uma precisão inferior, se estes dados forem recuperados com alguma falha na
região das bordas isso pode gerar um impacto grande no resultado do processamento do
algoritmo.
4. Conclusões
Este trabalho mostra o potencial de aplicação na área de pós-colheita, fundamental
para estudo de frutas. Por ser uma ferramenta que em sua fase final pode apresentar de
maneira simples e de rápido processamento, a identificação de formas 3D e determinação de
volumes, itens que são uma limitação muito grande hoje em estudos de pós-colheita de
frutas.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
190
Referências
4DD DYNAMICS. Mephisto 3D scanners. Disponível em: <http://www.4ddynamics.com/3dscanners/>. Acesso em: 24 mar. 2012.
BURRUS, Nicolas. disponível em: <http://nicolas.burrus.name/>. Acesso em: 04 mar. 2013.
DUNCAN, G. Kinect for Windows SDK v1.7 coming out today!. Disponível em:
<http://channel9.msdn.com/coding4fun/kinect/Kinect-for-Windows-SDK-v17-coming-outtoday>. Acesso em: 22 ago. 2013.
HINCHMAN, W. Kinect for Windows SDK beta vs. Open NI. jun. 2011. Disponível em:
<http://labs.vectorform.com/2011/06/windows-kinect-sdk-vs-openni-2/>. Acesso em: 01 jul.
2011.
JORGE, Lúcio; FERREIRA, Marcos; GONÇALVES, Danilo; OYAMA, Pedro. Uso de
sistemas de imagem para classificação de frutas e hortaliças. Artigo (Tecnologia de PósColheitas em Frutas e Hortaliças) Empresa Brasileira de Pesquisa Agropecuária, São Paulo,
2011.
MATSUMURA, Keila; SONNINO, Roberto. Fusion 4D - Interface Narutral e Imersiva Para
Manipulação de Objetos 3D. Monografia (Engenharia de Computação) Escola Politécnica da
Universidade de São Paulo, Universidade de São Paulo, São Paulo, 2011.
MANCTL COMPANY, RGB Demo, 2013. Disponível em:
<http://labs.manctl.com/rgbdemo/>. Acesso em: 24 mar. 2013.
MELGAR, E. R.; DIEZ, C. C. Kinect and Arduino Projects: Design, Build, Blow Their
Minds. New York: Apress, 2012.
MICROSOFT. Kinect SDK features. Disponível em: <http://kinectforwindows.org/features/>.
Acesso em: 01 jul. 2011.
MICROSOFT NEWS CENTER. PrimeSense supplies 3-D-sensing technology to project
Natal for Xbox 360. Disponível em:
<http://www.microsoft.com/Presspass/press/2010/mar10/0331PrimeSensePR.mspx?rss_fdn=Press%20Releases>. Acesso em: 01 jul. 2011.
NETO, Elias; BRUNO, Odemir. Reconhecimento de gestos em imagens de profundidade
utilizando kinect. In: WORKSHOP DE VISÃO COMPUTACIONAL, 8, 2012, Goiânia,
Anais eletrônicos... Goiânia: UFG, 2012. p. 1-6. Disponível em:
<http://iris.sel.eesc.usp.br/wvc/Anais_WVC2012/default.htm>. Acesso em: 16 mar. 2013.
PAL, N. R.; PAL, S. K. A Review On Image Segmentation Techniques. Pattern
Recognition, Calcutta, v. 26, n. 9, p. 1277 – 1294, 1993.
PRIMESENSE NATURAL INTERACTION. Our full 3D sensing solution. Janeiro de 2010,
disponível em: <http://www.primesense.com/en/component/content/article/9-solutions/115the-primesense-3d-sensing-solution>. Acesso em: 10 dez. 2011.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
191
VERMA, V.; KUMAR, R.; HSU, S. 3D Building Detection and Modeling From Aerial Lidar
Data. In: Proceedings of the 2006 IEEE Computer Society Conference on Computer
Vision and Pattern Recognition, v. 2, p. 2213-2220, Washington, 2006.
VILELLA, Fernando. Scanner 3D mede percentual de gordura em 30 segundos, USP
Destaque, São Paulo, 22 nov. 2012. Disponível em: <http://www.usp.br/agen/?p=121367>.
Acesso em: 16 mar. 2013.
Rev. Científica Eletrônica UNISEB, Ribeirão Preto, v.1, n.2, p. 176-191, ag/dez.2013
Download

RECONSTRUÇÃO DIGITAL DE OBJETOS EM 3D POR