Visualização de Objetos A partir de um Dispositivo de Aquisição de Imagens Tridimensionais

 
Daniel Câmara
 
UFMG- Universidade Federal de Minas Gerais
DCC - Departamento de Ciência da Computação
Av. Antônio Carlos 6627, Campus Pampulha, Prédio do Icex
31270-010, Belo Horizonte, MG, Brasil
 
danielc@dcc.ufmg.br
 
 
Abstract The main goal of this paper is describes a method of description images with VRML, with a dispose for acquisition tridimentional images. The capture informations of each object face, are organized and is make a description of scanned object in VRML format.
We present here a study of the minimum number of capture are necessary to get the complete description of object, the problems we has with the faces coherence, superpose points, faces with the 3D scanner can't catch the description. And finally our solution for this problems.

Keywords: Face, Point, Deep Map, Image.

 

1. Introdução
Com a construção de um dispositivo de aquisição de imagens tridimensionais no Laboratório de Robótica e Percepção Ativa da Universidade Federal de Minas Gerais, surgiu a necessidade de visualização e manipulação dos objetos digitalizados (Figura 1). São varias as aplicações que exigem a obtenção e visualização de imagens de forma tridimensional, as aplicações vão desde uma linha de montagem, onde tenta-se melhorar a qualidade das peças fabricadas, até projetos de produtos a serem ainda fabricados. Estas foram as motivações, entre outras, que levaram a construção do dispositivo de aquisição de imagens com baixo custo.
Figura 1- Visão de um objeto digitalizado pelo dispositivo
 

Simplificadamente, o dispositivo trabalha capturando, através de uma câmera CCD (Charged Couple Device), os planos gerados por um emissor de luz lazer. A câmera e o emissor lazer são deslocados linearmente ao longo do objeto a ser digitalizado. A determinação da profundidade de cada ponto sobre o plano, é calculado pelo modelo geométrico, que calcula a profundidade por meio de triangulação simples assumindo a projeção perspectiva, ou pelo modelo de invariância de razão-dupla (cross-ratio) [Duda (1973)]. O dispositivo fornece um mapa de profundidades (Figura 2) do objeto. Uma descrição mais aprofundada dos métodos e problemas do dispositivo é encontrada em [Souza-Campos (1998)].

Tendo em mãos o mapa de profundidade precisamos agora tornar disponível, ao usuário do dispositivo, a manipulação do objeto no espaço tridimensional. Escolhemos para isto a linguagem VRML (Virtual Reality Modeling Language), não só por entendermos que esta, está se tornando um padrão de fato, mas também por possuir interpretadores nas mais variadas plataformas. Sendo esta uma das características mais importantes ao nosso ver, o usuário não precisa ficara amarrado a uma plataforma, pode trabalhar com o objeto capturado em qualquer uma, sem necessidade de nenhuma mudança ou adaptação. A flexibilidade da linguagem também foi um fator decisivo na sua escolha.

Abordaremos a seguir as características fundamentais do problema, oclusão coerência das imagens e sobreposição dos mapas de profundidade. Posteriormente falaremos dos problemas com aquisição dos mapas de profundidade, no item 3 discutiremos o problema de coerência e sobreposição da imagem, em 4 exporemos como foi feito a escala da imagem . Em 5 falaremos do ponto de andamento do projeto.

Figura 2 - Mapa de profundidade gerado pelo dispositivo
2. Características do problema O dispositivo de aquisição de imagens retorna um mapa de profundidades da face visível do objeto. Como a câmera e o emissor laser são deslocados linearmente, ficando o objeto parado, tudo que conseguimos com uma varredura do dispositivo é a descrição de uma das faces do objeto (Figura 3). A partir de agora, a menos que seja explicitamente dito o contrario, chamaremos cada uma destas capturas de face.

Faz-se então necessário mais de uma captura para digitalizar o objeto completamente, o problema agora é descobrir qual o menor número de capturas necessário à visualização de todo objeto.

Figura 3 - Descrição do dispositivo de captura de imagens: câmera (1), emissor laser (2), suporte rígido (3), sistema de translação horizontal (4), placa digitalizadora (5), micro computador (6), B é o plano de varredura, que está sendo digitalizado A e C são os limites do volume de visualização.

Figura 4 - Furos no objeto não podem ser descritos por este tipo de dispositivo
2.2. Oclusão Para descobrirmos o numero mínimo de capturas, precisamos entender um fenômeno que ocorre neste tipo de sistema, o problema da oclusão. Ele ocorre quando, em uma cena, um objeto pode ser ocultado por outro, ou tem extremidades côncavas, ou convexas, e estas, ocultam outras partes do mesmo objeto [Marshall-Martin,(1992)]. Quando isto ocorre fica impossível determinar com certeza a forma do que está na região de sombra. O dispositivo de aquisição de imagens tem algumas limitações quanto a captura de uma face. Como podemos observar na Figura 3, a câmera não está na mesma linha do emissor laser, portanto é possível que em objetos com faces côncavas ou convexas haja oclusão. O dispositivo também não é capaz de capturar, por exemplo, furos no objeto (Figura 4). O scanner, como veremos a seguir, tem serias restrições para com objetos côncavos, mas conseguimos capturar a informação oculta por objetos convexos com relativa precisão.

Segundo (Maver, 1990) para conseguirmos um ponto pi ( x, y ) no plano de varredura nos precisamos de encontrar todas as direções em que pi ( x, y ) é visível. Para determinarmos se o ponto pi ( x, y ) é visível a partir da direção  j precisamos verificar se todos os pontos pk( x, y ) na cena, ao longo desta direção, ocultam o ponto pi ( x, y ). Considera-se a relação entre a distancia l entre os dois pontos do plano de varredura e o tamanho da oclusão l' produzido por pk ( x, y ) na direção  j é definido por :

l' = h(pk) - h(pi) ,

tan( (h(pk)))

onde h(pk) e h(pk) representam o tamanho da cena até os pontos pi ( x, y ) e pk ( x, y ) respectivamente.

Se a distancia entre pi ( x, y ) e cada pk ( x, y ) é maior que l' então o ponto pi ( x, y ) é visível na direção (Figura 5)  j. Cada ponto pi ( x, y ) é visível por diversas direções diferentes.

Figura 5 - Descrição de uma região de sombra

Caracterizado agora o que é oclusão podemos partir para um caso específico. Um dos piores caso de captura, de objetos convexos, para o sistema é a esfera. Cerca de apenas 2/3 da face visível da esfera aparece no mapa de profundidade (Figura 6 (a)), as cores mais claras indicam maiores profundidades e as mais escuras menores, o preto são pontos não capturados. Metade da esfera não é captada, pois e a câmera e o laser movem-se linearmente ao longo do objeto, não captando a face oposta. A parte que não aparece da esfera na foi auto oclusa, ou seja a parte mas próxima da esfera, ocultou da câmera o feixe do laser.

 
(a) (b)
Figura 6 - Mapas de profundidade de uma esfera, (a) como é pelo problema de oclusão e (b) como deveria ser
2.3. Sobreposição Com este tipo de dispositivo não é possível visualizar mais que isto (Figura 3(a)), entretanto se repetirmos a captura rotacionando o objeto podemos fazer a correlação entre as faces e descobrir regiões duplamente digitalizadas. Através destas regiões podemos minimizar o problema de oclusão. Chen em (Chen, 1991) apresenta um método de correlação de imagens 3D, encontrando curvas coincidentes entre duas imagens capturadas. A rotação que impõe ao objeto entre as capturas sucessivas varia de 15o a 20o. O método consegue bons resultados mas sua complexidade, o número e a precisão exigida entre as capturas faz com que ele não seja adequado as nossas necessidades.

Com rotações de 90o conseguimos, em quatro capturas, uma descrição de todo o objeto (Figura 7 (a)). No pior caso, de objetos convexos esfera, com quatro capturas também conseguimos uma descrição de todo o objeto. Nenhum ponto é perdido pois há uma sobreposição de pontos de uma face capturada para outra, e esta sobreposição é complementar a outras capturas com relação aos pontos oclusos. Conseguimos com isto uma descrição completa da esfera (Figura 7 (b)).

    (a) Mapas de profundidade de uma esfera rotacionada de 90o
 
(b) Após a intercessão das áreas comuns das quatro capturas
Figura 7 - Mapas de profundidade de uma esfera

Através da informação contida nas capturas das faces, conseguimos informação suficiente para recuperar várias áreas oclusas do objeto. Uma região que é oclusa em uma captura, se estiver na região de sobreposição, pode não estar oclusa na captura da próxima face, sendo assim, possível sua recuperação.

Figura 8 - Esfera digitalizada
3. Normalização do Referencial O que deve ser feito em primeiro lugar com a face capturada é a normalização de seu referencial, em relação as outras faces do objeto. Por questão de padronização apenas, a face 1, a primeira face capturada, tem o referencial correto, todas as outras terão seus referenciais corrigidos relativo a ela. A face 2 será a face a esquerda do objeto, sua profundidade (Z), está relativo a largura (X) da face 1, quanto maior a profundidade (Z  0), menor a largura relativa a face 1 (X  0), quanto maior o valor de X da face2 quer dizer que é um maior valor de Z relativo a face1(Tabela 1 - ). Quando normalizamos a face 3 fazemos exatamente o inverso da captura, o maior Z (Zmax) vira o menor Z (Zmin), e o mesmo ocorre com X.

 

Face
X na Captura
Z na Captura
1
X
Z
2
Z
X
3
1/X 
1/Z
4
1/Z
1/X
Tabela 1 - Relações entre os eixos das faces entre a captura e depois de normalizados
Tendo todas as capturas no mesmo referencial ( Figura 9 ), o que temos que fazer é a correlação destas faces.
 
 
Figura 9 - Faces da esfera dispostas no mesmo referencial

3.1. Correlação das Faces

Agora precisamos descobrir se as faces tem pontos em comum, e quais são estes pontos caso hajam. É importante principalmente tentarmos, com estas sobreposições, encontrar pontos, em outras capturas, que mascarem as regiões de oclusão. O que fazemos, já que estamos com todas as faces no mesmo referencial, é mapear as faces capturadas tentando achar um mesmo ponto X,Y,Z em faces adjacentes. Este ponto não precisa ser precisamente o mesmo mas sim estar dentro de uma faixa de erro aceitável, para que não comprometa os pontos vizinhos.

Outro problema que temos capacidade de solucionar com as faces no mesmo referencial, é o das partes superiores e inferiores do objeto. Por limitação do dispositivo de captura de imagens, não temos informação sobre a parte superior, nem a inferior do objeto digitalizado. Tendo a informação das quatro faces laterais do objeto podemos determinar a provável formação das duas faces não captadas pelo dispositivo.

Vamos analisar o caso do "topo" do objeto, partiremos do princípio que as faces opostas tem a mesma altura Y para os pontos correspondentes das faces, não sendo assim, assumimos que ocorreu algum problema na captura do objeto e não podemos garantir mais a correspondência. Tendo os pontos opostos a mesma altura, verificamos quais faces tem menor altura. Traçamos assim planos entre estas duas faces criando o "topo" do objeto (Figura 10 (b)). O mesmo pode ser feito para a face de baixo do objeto sem maiores problemas. Este processo simples, soluciona grande parte dos casos. Mas infelizmente não todos, desta forma não somos capazes de determinar faces côncavas, como as mostradas na Figura 11.

Figura 10 - Faces capturadas e montagem do Objeto

Uma solução possível seria realizarmos duas novas capturas, uma para a parte superior e outra para a inferior do objeto, tentando assim garantir a fidelidade na representação do objeto, mas sendo a face em questão côncava, podemos ter oclusão. Surge também um problema de referencial, convém lembrar neste dispositivo quando queremos a captura de uma nova face, devemos rotacionar o objeto, e precisamos ter todas as faces exatamente no mesmo referencial, para assim fazermos a correlação das imagens. Se adicionarmos estas duas novas capturas, teremos uma grande dificuldade em relacionar os pontos com as faces já capturadas do objeto. Quando fazemos a captura das faces do objeto, uma das maiores preocupações que devemos ter é a de fazemos uma rotação de 90o perfeita e o inicio da captura (x0) exatamente no inicio do objeto, ou todas as capturas tem que iniciar a mesma distancia do objeto. Só assim podemos garantir que conseguiremos colocar todas as faces no mesmo referencial, dependendo da forma do objeto, pode ser difícil conseguirmos uma rotação perfeita de 90o em relação ao eixo X do objeto.

Sendo assim vamos restringir nosso universo de ao dos objetos que não tem face côncava na parte superior nem inferior. Tomando cuidado com a forma de posicionar o objeto para a captura, isto pode até não ser uma forte restrição. Quais quer outros, objetos em forma de cunha, piramidais, cones, conseguimos uma leitura perfeita, pois as diferentes profundidades são capturadas pelo dispositivo.

Figura 11 - Exemplo de objeto que não conseguimos descrever.
4. Visualização Com os dados das faces criamos o arquivo de descrição em VRML. Cada face do objeto é decomposta em vários planos menores, podemos assim, aumentar ou diminuir a resolução da imagem digitalizada (Figura 12). Podem haver casos em que não necessitamos de uma descrição detalhada do objeto, em outro isto pode ser essencial. O arquivo de descrição do objeto em VRML, quando muito detalhado, pode ser grande da ordem de alguns megabytes, dependendo do tamanho do objeto, por este motivo as vezes é desejável que diminuamos um pouco a resolução do objeto para diminuir o tamanho do arquivo de descrição da cena.

Esta diminuição na resolução do objeto é feita através de uma amostragem (Sampling). São considerados como válido os pontos de N em N, por exemplo um objeto com resolução três, significa que nos planos utilizados para compor a face do objeto, são considerados um a cada três pontos do mapa de profundidade. A menor resolução possível, um, nos retorna planos entre todos os pontos do mapa de profundidade.

Figura 12 - Pirâmide Digitalizada

O dispositivo nos retorna um mapa de profundidade, não nos dá nenhuma informação sobre a cor, textura ou brilho do objeto. Podemos inserir todos estes dados no arquivo VRML de descrição do objeto, conseguindo assim uma noção mais realística do objeto, com a alteração de um simples parâmetro, podemos também visualizar apenas as linhas de composição do objeto (wireframe), tendo assim uma melhor noção tridimensional do objeto .

Figura 13 - Face de uma estatua Grega digitalizada
5. Estágio do projeto Todos os algoritmos estão implementados em linguagem C, conseguimos modelar a maior parte dos objetos propostos, temos algumas dificuldades com objetos mais complexos e partes côncavas, mas mesmo assim a visualização é razoavelmente satisfatória (Figura 13)

Implementamos os métodos de visualização em pequenos módulos o que nos permite criar imagem do objeto todo, ou apenas a visualização de uma face, isto pode ser útil quando nos interessa apenas uma captura do scanner (Figura 14).

Estamos, agora, tentando classificar os principais problemas ocorridos nas capturas, e formas de contorná-los. Faltam testes mais apurados e detalhados do algoritmo em diversos mapas de profundidade. O método é ainda muito sensível a qualidade capturas. O dispositivo de aquisição de imagens ainda apresenta alguns pontos onde e também deve ser aperfeiçoado.

Figura 14 - Digitalização do perfil de uma face humana

Estamos agora realizando uma documentação mais detalhada dos módulos que estão prontos e tentando deixa-los mais eficientes. Está sendo planejada também a distribuição de uma biblioteca de modelagem de objetos em VRML, a partir de um arquivo com o mapa de profundidades da cena.

6. Conclusões A proposta inicial do dispositivo de aquisição de imagens era o de captar imagens de resíduos em vagões de trens, ou linhas de montagens, mostramos aqui que é possível a visualização razoável de um grande conjunto de objetos também. É preciso porém tomar cuidado com a forma de capturar as faces do objeto, o dispositivo tem certas restrições que não podem ser ignoradas.

Como proposta de trabalhos futuros pretendemos executar o nossos métodos em diversos mapas de profundidade para determinar, entre outras, quais são os limites de erro aceitáveis, qual é a margem de erro do dispositivo. Lembrando que a motivação deste trabalho foi a construção de um dispositivo de aquisição de imagens tridimensionais no Laboratório de Robótica e Percepção Ativa da Universidade Federal de Minas Gerais, sendo o trabalho útil, além da visualização dos objetos digitalizados, na detecção de algumas falhas e indicar possíveis aperfeiçoamentos do dispositivo de captura.

Outra proposta de trabalho futuro é a criação de um novo dispositivo, só que este voltado para a captura de objetos deixando agora a câmera e o laser fixos, fazendo o objeto girar, em uma plataforma circular, enquanto é digitalizado.

7. Bibliografia (Marchall, 1992) Marchall, A. D., Martin, R. R., "Computer Vision , Models and inspection", World Scientific, 1992. Richard O. Duda and Peter E. Hart. Pattern Classification and Scene Analysis. Wiley-Interscience Publication, 1973.

 

(Souza, 1998) Souza, John Kennedy Schettino, Campos, Mário Fernando Montenegro, "Um Dispositivo Automático para Obtenção da Forma 3D de Objetos", Sibgrapi 98, 1998.

 

(Maver, 1990) Maver, Jasna, Bajcsy, Ruzena, "How To Decide From The First View Where To Look Next", MS-CIS-90-30, GRASP LAB 219, July 1990.

 

(Chen, 1991) Chen, Yang, Medioni, Gérard, "Object Modeling by Registration of Multiple Range images", International Conference on Robotics and Automation, California, April 1991.

 
Apêndice A

Introdução

Caracterizaremos aqui os principais problemas com capturas no dispositivo de aquisição de imagens tridimensionais. Discutiremos desde os pontos que devem ser observados na hora de calibrar a câmera até os que devem ser revistos no dispositivo, passando pelos que devem ser observados para fazer uma captura precisa do objeto.

  1. Pontos a se considerar na captura
  2. Deve-se tomar vários cuidados ao se fazer uma captura no dispositivo. O principal deve ser com relação a calibração, o dispositivo é muito sensível a qualquer alteração de posição e angulo da câmera. A se iniciar a calibração deve-se observar:
     

             

    Observando estes pontos temos uma boa chance de fazer uma boa calibração. Terminada a etapa de calibração e tendo a distancia que representa o Z0 para o dispositivo devemos testar esta distancia fazendo uma captura estática da posição considerada 0 para o dispositivo. Colocando então a origem onde esta captura nos orientar melhor temos precisamente o ponto realmente considerado 0 pelo scanner.

    Os pontos que devem ser considerados na hora da capturara propriamente dita são principalmente:
     

             

      Qualquer alteração no scanner ou na câmera requerem nova calibração. Não se deve também salvar imagens com o objetivo de usá-las para calibração, qualquer alteração no scanner ou na câmera alteram tudo então é mais garantido fazer a calibração sempre novamente.

      Se quiser digitalizar o objeto tomar os cuidados correspondentes a captura de objetos para visualização
     
     

  3. Comentários sobre os problemas
    Mapa de profundidade "torto"

    Motivo : Devido ao desnivelamento da câmera com relação ao objeto capturado.

    Sugestão : Colocar a impressora no nível antes de iniciar a captura, ou compensar no suporte da câmera e laser.

    Diferença de tamanho na imagem mais próxima da câmera.

    Motivo : Maior área capturada no CCD da câmera pelo objeto quando este está mais perto da câmera.

    Sugestão : Verificar novamente o algoritmo de projeção perspectiva e ajustá-lo corretamente.

    Imagem "torta"

    Motivo : Laser torto

    Sugestão : Deixar o laser 90o com o plano laser-câmera.

    Captura sempre da direita para esquerda.

    Motivo : Inversão e distorção da imagem na captura da esquerda para a direita. A distorção se deve provavelmente ao motor de passos que ou deve estar com problemas ou a correia do motor está folgada.

    Sugestão : Para a inversão, o scanner considera que o inicio da imagem é onde ele começa a capturar, deve-se alterar no programa que sempre considere a imagem da forma correta. Uma inversão do mapa antes de sua visualização seria suficiente.

    Com relação a distorção, trocar o motor de passos e a correia por novos.

    Captura do aparato

    Motivo : Tem-se que colocar o objeto na altura certa para que a câmera consiga capturar o objeto.

    Sugestão : Construir um aparato especial que tenha uma base bem fina, preferencialmente de vidro para que a câmera não seja capturado pela câmera e sua base fique além do Z0, não sendo assim, a base, capturada pelo dispositivo. A base deve ser móvel para alterar a altura do objeto relativo ao CCD da câmera.

    Parte superior da imagem está mais próxima

    Motivo : Projeção perspectiva.

    Sugestão : Reavaliar as funções de projeção do scanner.

    Carro "agarrando" causando distorções na imagem

    Motivo : Motor de passos pode estar ruim, ou o eixo da impressora está muito próximo, prensando o carro.

    Sugestão : Trocar o motor de passos, e verificar, o distanciamento do eixo ao carro sempre que isto ocorrer.

     

  1. Captura para geração em VRML do objeto
  2. Temos que tomar vários cuidados neste caso. As capturas tem que ser perfeitas, qualquer distorção pode atrapalhar muito o processo de geração da representação do objeto em VRML.

 
Os principais pontos a observar são:

  Rotação exata de 90o do objeto.

  Inicio da captura sempre exatamente no inicio do objeto, ou sempre a mesma distancia, e o objeto sempre a esta mesma distancia do Z0.
 

Os problemas com rotação e o inicio da captura são os mais graves. Podemos resolve-los fixando uma folha quadriculada na base do objeto. A folha nos dará a rotação de 90o e a distancia do objeto ao lazer e ao ponto Z0 , ficando assim mais simples a obtenção coerente das quatro faces. É aconselhável que se de nomes coerentes para as faces capturadas, de forma a lembrar qual sua posição com relação ao objeto, face1 para a parte que será a frente do objeto, face2 para a captura do que será o lado direito, face3 para a parte de trás do objeto e face4 para o lado esquerdo do objeto.