Reconstrução de Objectos 3D Usando Kinect

Tamanho: px
Começar a partir da página:

Download "Reconstrução de Objectos 3D Usando Kinect"

Transcrição

1 Reconstrução de Objectos 3D Usando Kinect Daniela Alexandra Esteves Gil Borges Dissertação para a obtenção de Grau de Mestre em Engenharia Informática e de Computadores Júri Presidente: Prof. Doutor Miguel Nuno Dias Alves Pupo Correia Orientador: Prof. Doutor Alfredo Manuel dos Santos Ferreira Júnior Vogal: Prof. Doutora Ana Paula Boler Cláudio Outubro 2013

2 ii

3 iii Para a minha mãe

4 iv

5 Agradecimentos Esta dissertação é o culminar de uma fase importante na minha vida. Sem dúvida que a motivação e interesse de algumas pessoas foram factores determinantes no decorrer deste processo. Em primeiro lugar, aos meus pais Maria Borges e António Borges sem os quais a minha entrada e frequência no Instituto Superior Técnico não seria possível. A eles e à minha irmã Ana Borges agradeço a paciência. Aos meus queridos vizinhos (e amigos), São e Júlio, cuja presença foi incansável. À Catarina Santos, amiga de longa data, que sempre acreditou em mim. Ao Movimento Encontros de Jovens Shalom, que em muito tem contribuído para a formação da minha personalidade. Ao Nuno C., Mário, Magda, Nuno M., Susana, André, Tina, Diogo, Joelene e Viriato que me ouviram e apoiaram. Ao Calmão, Sérgio e João sempre dispostos a animar-me. Em particular, à Cláudia Queiroga que se fez presente em todas as iterações para corrigir erros profissionais e pessoais. Ao meu melhor amigo, Pedro Matos de Carvalho, não apenas pelas correcções perfeccionistas, mas principalmente pelo entusiasmo, motivação e apoio incansável em situações simples e complexas. Aos amigos criados na universidade e, em particular, ao Ricardo e ao André, pela motivação e convívio. Ao Ivo, pelas boleias, ideias e discussões trocadas. Ao Diogo e ao João, pelas observações, convívio e partilhas diversas. Por fim, ao Instituto Superior Técnico que proporcionou inúmeras aprendizagens, não apenas educacionais. Quero também agradecer à Fundação para a Ciência e Tecnologia (FCT) que, através dos fundos PIDDAC (PEst-OE/EEI/LA0021/2013) e do projecto 3DORuS (PTDC/EIA-EIA/102930/2008), cedeu suporte financeiro para a deslocação e participação numa conferência internacional. De modo particular, agradeço ao meu orientador, Prof. Doutor Alfredo Ferreira, que orientou esta dissertação e demonstrou empenho e dedicação ao longo de todo o processo. v

6 vi

7 Resumo Actualmente, é possível digitalizar objectos tridimensionais recorrendo a dispositivos de baixo custo. Se por um lado a captura 3D está a tornar-se comum, decompor um objecto nos seus componentes não é trivial. A segmentação pode auxiliar a resolução deste problema, fornecendo dados suficientes para proceder à separação dos vários componentes. No entanto, esta segmentação pode não conseguir ceder informação completa e precisa sobre os mesmos. Num contexto em que está disponível um repositório digital com todos os componentes que podem pertencer a um objecto, os algoritmos de recuperação podem ser utilizados para permitir uma reconstrução mais robusta de um modelo 3D. Neste trabalho propomos uma solução de quatro fases para a reconstrução de objectos 3D digitalizados, compostos por componentes previamente registados num repositório. Utilizamos o Microsoft Kinect para capturar objectos e um algoritmo de segmentação baseado na cor que consegue decompor um objecto digitalizado num conjunto de sub-partes. Através da utilização de um algoritmo de recuperação baseado na forma, é possível realizar uma interrogação ao repositório para cada componente. Deste modo, conseguimos identificar que sub-parte corresponde a que componente virtual. Em seguida, um modelo 3D do objecto é reconstruído de acordo com os vários componentes recuperados. Esta abordagem tem diversas aplicações, deste entretenimento até indústrias como saúde ou mecânica. Para validar a nossa solução, implementámos e avaliámos um toy-problem. Utilizámos blocos LEGO, que possuem desafios semelhantes a aplicações reais de outros domínios. Os resultados obtidos permitem acreditar que a abordagem é promissora para trabalhos futuros. Palavras-chave: Reconstrução, Captura, Segmentação, Recuperação. vii

8 viii

9 Abstract Nowadays, a few low-cost devices support 3D acquisition. While 3D capture becomes a commonplace, decompose the object into its components is not an easy task. Segmentation can help address this problem by supplying data which may be used to identify object components. However, it might not give complete and accurate information about components. In a context where a digital repository with every component that can belong to physical objects is available, retrieval algorithms can allow robust reconstruction of a 3D model. Our work proposes a four phase solution to reconstruct 3D digitized objects, composed by previously registered components in a repository. We use Microsoft Kinect to acquire 3D physical objects. A segmentation algorithm based on color information decomposes the object into a set of sub-parts. The component repository is queried using a shape-based retrieval algorithm, in order to identify which subpart corresponds to each virtual component. Then, a 3D model of the physical object is reconstructed by assembling the retrieved components. Our approach has a wide application domain, ranging from entertainment to health or mechanical industry. To validate our proposal, we implemented and evaluated a toy-problem. We used LEGO blocks, which can provide challenges similar to real-world applications. The results were encouraging and we believe that our approach is a very promising avenue for further work. Keywords: Reconstruction, Acquisition, Segmentation, Retrieval. ix

10 x

11 Conteúdo Agradecimentos v Resumo vii Abstract ix Lista de Tabelas xv Lista de Figuras xix Lista de Algoritmos xxi Lista de Abreviaturas Introdução Motivação Descrição do Problema e Desafios Contribuições Publicações Estrutura do Documento Trabalho Relacionado Captura de Objectos 3D Segmentação de Objectos pela Forma Estado da Arte Património Cultural Uso genérico Sumário e Discussão crítica Contexto Teórico Registo de vistas Extracção de Características Cálculo da transformação Recuperação de Objectos pela Forma Descritores de forma Medidas de similaridade Indexação e Recuperação Arquitectura típica dos processos de indexação e recuperação xi

12 3.3 Sumário e Discussão Crítica Solução Proposta Visão Global Captura Hardware utilizado e setup proposto Software utilizado Filtragem Segmentação Recuperação Reconstrução Visualização e exploração Sumário Avaliação Metodologia de avaliação Métricas Objectivas Métricas Subjectivas Objectos digitalizados Peças reais Peças virtuais Objectos físicos Discussão de resultados Avaliação inicial Avaliação intermédia Avaliação final Sumário e Discussão crítica Conclusões e Trabalho Futuro Aprendizagens Conclusões Trabalho Futuro Bibliografia 74 A Tipos de peças 75 B Objectos físicos 77 C Questionário realizado na avaliação intermédia 79 D Resultados da avaliação intermédia 85 xii

13 E Questionário realizado na avaliação final 89 F Resultados da avaliação final 93 G Comparação entre descritores 99 xiii

14 xiv

15 Lista de Tabelas 2.1 Comparação entre digitalizadores considerando precisão, frame rate e preço Valores de Tom (H), Saturação (S) e Intensidade (I) definidos para cada cor, dado um ambiente controlado Comparação entre as várias avaliações em termos de métricas objectivas A.1 Tipos de componentes G.1 Comparação entre as várias avaliações em termos de métricas objectivas: taxa de sucesso e tempo demorado durante as fases de indexação e recuperação xv

16 xvi

17 Lista de Figuras 2.1 Digitalizadores 3D Estátua de David Diferentes objectos utilizados no projecto (Schwartz and Weinmann, 2011) Reconstrução do templo de Athena Setup do sistema 3D Puppetry Setups dos sistemas apresentados em Miller et al. (2012) e Gupta et al. (2012) Passos necessários para registar vários pontos de vista recorrendo a um algoritmo Extracção de características Várias iterações do algoritmo RANSAC Indexação e recuperação numa NB-Tree Arquitectura típica dos processos de indexação e recuperação Visão global do projecto: do objecto físico ao modelo reconstruído Captura de objectos 3D Setup da solução proposta Representação dos vários objectos presentes sobre a mesa durante a captura Segmentação de objectos Cálculo do vector de distâncias Processo de Recuperação de um objecto Processo de reconstrução de um modelo 3D Protótipo LTouchIt adaptado à solução apresentada Exemplo de um componente identificado (à esquerda, S0) e respectiva lista de sugestões (à direita) com as sugestões S1, S2, S3 e S Exemplo de reconstrução de um objecto em que nem todas as componentes foram correctamente reconstruídas Testes objectivos: taxa de sucesso na avaliação inicial Alguns erros comuns encontrados em componentes semelhantes Testes objectivos: taxa de sucesso na avaliação intermédia Testes subjectivos: resultados dos testes online efectuados na avaliação intermédia Testes subjectivos: média de apreciações considerando as dez interrogações xvii

18 5.7 Problema de arredondamento Testes subjectivos: construções realizadas na avaliação final Testes subjectivos: captura efectuada por parte dos utilizadores Testes subjectivos: tempo de captura obtido para as duas interrogações Testes subjectivos: tempo demorado para corrigir o objecto reconstruído Nível de experiência do grupo de utilizadores Testes objectivos: taxa de sucesso na avaliação final Visualização com o protótipo LTouchIt Exemplos de dois resultados propostos pelo Skanect B.1 Construções utilizadas na avaliação inicial B.2 Construções utilizadas na avaliação intermédia B.3 Construções utilizadas na avaliação final C.1 Objecto Físico e Modelo Reconstruído C.2 Objecto Físico e Modelo Reconstruído C.3 Objecto Físico e Modelo Reconstruído C.4 Objecto Físico e Modelo Reconstruído C.5 Objecto Físico e Modelo Reconstruído C.6 Objecto Físico e Modelo Reconstruído C.7 Objecto Físico e Modelo Reconstruído C.8 Objecto Físico e Modelo Reconstruído C.9 Objecto Físico e Modelo Reconstruído C.10 Objecto Físico e Modelo Reconstruído D.1 Query 1 - Resultados da reconstrução efectuada D.2 Query 2 - Resultados da reconstrução efectuada D.3 Query 3 - Resultados da reconstrução efectuada D.4 Query 4 - Resultados da reconstrução efectuada D.5 Query 5 - Resultados da reconstrução efectuada D.6 Query 6 - Resultados da reconstrução efectuada D.7 Query 7 - Resultados da reconstrução efectuada D.8 Query 8 - Resultados da reconstrução efectuada D.9 Query 9 - Resultados da reconstrução efectuada D.10 Query 10 - Resultados da reconstrução efectuada E.1 Questão 8. Na sua opinião, o que pode ser mais importante para a aceitação dos resultados? E.2 Questão 10. Em relação às reconstruções efectuadas, qual a sua opinião sobre o modelo reconstruído? xviii

19 E.3 Questão 14. Qual a utilidade da apresentação das cinco primeiras sugestões para cada peça? F.1 Questão 1 - Qual é a sua idade? F.2 Questão 2 - Qual é a sua formação académica? F.3 Questão 3 - Relativamente à experiência que acabou de realizar, recorrendo a uma câmera de baixo custo, qual é a sua opinião em relação à utilização deste dispositivo? F.4 Questão 4 - Já tinha tido alguma experiência com uma câmera com estas características? 94 F.5 Questão 5 - Este seria um dispositivo que gosta/gostaria de utilizar no dia-a-dia? F.6 Questão 6 - Existiram problemas durante a captura com o software fornecido (Skanect)? 95 F.7 Questão 7 - Qual a aceitação em termos de qualidade relativamente ao resultado obtido pelo software fornecido (Skanect)? F.8 Questão 8 - Na sua opinião, o que pode ser mais importante para a aceitação dos resultados? F.9 Questão 10 - Em relação às reconstruções efectuadas, qual a sua opinião sobre o modelo reconstruído? F.10 Questão 12 - A utilização de uma mesa multi-toque para visualização foi ou não relevante? F.11 Questão 13 - Se respondeu Sim ou Talvez à questão anterior, quais são os principais pontos fortes na utilização de uma mesa multi-toque nesta abordagem? F.12 Questão 14 - Qual a utilidade da apresentação das cinco primeiras sugestões para cada peça? [1 = pouco importante; 5 = muito importante] F.13 Questão 15 - Consegue imaginar este trabalho aplicado a outros domínios? F.14 Questão 16 - Se respondeu Sim ou Talvez à questão anterior, em que domínios vê a sua aplicação? G.1 Taxa de sucesso obtida pelo algoritmo LFD, para as dez interrogações propostas xix

20 xx

21 Lista de Algoritmos 1 Fase de segmentação - Comparação HSI e aplicação do Statistical Outlier Removal Filter Fase de segmentação - Cálculo de orientações xxi

22 xxii

23 Lista de Abreviaturas 3D - Three-dimensional AR - Augmented Reality BeKi - Benchmark Kinect BTF - Bidirectional Texture Functions CAD - Computer-Aided Design CAM - Computer-Aided Manufacturing CBR - Content-Based Retrieval DOF - Degrees Of Freedom GPU - Graphics Processing Unit HDR - High Dynamic Range HSI - Hue, Saturation, Intensity ICP - Iterative Closest Point INESC-ID - Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento em Lisboa LDraw - LEGO Library LFD - Light-Field Descriptor MDS - Multidimensional Scaling nd - Espaço multidimensional de dimensão N OFF - Object File Format PCA - Principal Component Analisys PCL - Point Cloud Library RANSAC - RANdom SAmple Consensus RGB - Red, Green, Blue RGBD - Red, Green, Blue, Depth SHA - Spherical Harmonics SD - Shape Distributions SHA - Spherical Harmonics SIFT - Scale-invariant feature transform STL - STereoLithography ToF - Time-of-Flight xxiii

24 VTK - The Visualization ToolKit xxiv

25 Capítulo 1 Introdução Com os progressos tecnológicos alguns bens que considerávamos tangíveis (como áudio, imagem e vídeo) passaram a ser arquivados em dispositivos pessoais. Estes bens, classificados como Digital Media, são agora mais facilmente capturados, armazenados, transportados e partilhados com recurso à tecnologia. Os sistemas de aquisição de imagem tridimensional (ou digitalizadores 3D) tornaram-se comercialmente mais acessíveis perto do fim do milénio (Varady et al., 1996; Bernardini and Rushmeier, 2002), permitindo a captura de informação de profundidade presente no ângulo de visão do dispositivo. Para criar um modelo 3D recorrendo a um digitalizador é necessário alinhar e unir as diversas imagens (scans) provenientes de vários ângulos (viewports). É aqui que a reconstrução de objectos 3D ganha forma e, com ela, novos e interessantes desafios com um conjunto de potencialidades a explorar, tanto ao nível da captura como ao nível da visualização e interacção. Técnicas de reconstrução de objectos 3D permitem capturar objectos físicos com o objectivo de obter um modelo 3D virtual. No entanto, se o objecto for composto por diversos componentes, uma simples reconstrução não permite identificar fidedignamente todos os componentes que constituem o modelo e que são reconstruídos. Além disso, condições como a iluminação que incide na cena ou o ruído resultante da captura representam, só por si, desafios adicionais. Nesta dissertação procurámos endereçar os problemas referidos, fornecendo uma solução que identifica componentes físicos, existentes no mundo real, e estabelece uma correspondência com os respectivos componentes virtuais. Para provar o conceito e validar a abordagem são utilizadas peças LEGO (toy-problem). No entanto, este trabalho procura realizar um proof-of-concept que se estenda a outros domínios como, por exemplo, as áreas da saúde ou a indústria automóvel. 1

26 1.1 Motivação O recente aparecimento de novos dispositivos que captura de baixo custo, como o Microsoft Kinect, tem vindo a ganhar popularidade não apenas no âmbito da investigação mas também entre utilizadores comuns. Este factor deve-se principalmente a novas aplicações de entretenimento. Como resultado, acreditamos que no futuro este tipo de dispositivos esteja cada vez mais acessível. Através de aplicações comerciais, como o MeshLab 1 ou o Autodesk 3Ds Max 2, é permitido manipular modelos 3D provenientes das capturas realizadas. No entanto, nenhuma das existentes soluções permite obter de forma intuitiva a separação e identificação dos vários componentes presentes no modelo 3D. Por estas razões, concluímos que a reconstrução de objectos digitalizados não é um desafio trivial porque a captura de objectos 3D per se não permite identificar a que objectos conhecidos à partida correspondem os objectos capturados. Mais, é necessário reconhecer também que componentes pertencem a cada um dos objectos capturados. Aplicações como Life of George 3 ou Autodesk 123D 4 têm salientado estas capacidades tanto ao nível 2D como 3D (respectivamente) e são motivação para esta dissertação. 1.2 Descrição do Problema e Desafios Este trabalho procura reconstruir modelos 3D passando pelas fases de captura de um objecto físico, segmentação e recuperação dos vários componentes que constituem o modelo digitalizado. A solução apresentada procura responder à questão: Será possível realizar uma reconstrução segmentada de um objecto 3D digitalizado com um digitalizador de baixo custo, usando informação de cor e de forma? Os principais desafios que a hipótese apresenta são a segmentação do objecto digitalizado recorrendo a informação de cor e a identificação dos vários componentes (recuperação) que pertencem aos objectos 3D que queremos reconstruir. Para conseguir efectuar a reconstrução, este trabalho assume que componentes adjacentes têm que possuir cores diferentes e que todos os componentes susceptíveis a captura são conhecidos à partida. Tendo estas restrições em consideração procurámos reconstruir componentes físicos que correspondem a modelos 3D (componentes virtuais) previamente existentes na nossa base de dados (repositório). 1 MeshLab, visitado em Maio de Autodesk 3Ds Max, visitado em Maio de Life of George, visitado em Novembro de Autodesk 123D, visitado em Novembro de

27 A abordagem seguida apresenta um mecanismo para realizar a segmentação de objectos 3D digitalizados com câmaras de profundidade de baixo custo. Este trabalho pretende conseguir uma apresentação de resultados próxima de tempo real, com uma taxa de sucesso aceitável para a reconstrução dos modelos. Deste modo, foram utilizados algoritmos que satisfazem uma relação qualidade-tempo eficaz, cumprindo as métricas referidas e fomentando a reconstrução. Para verificar a hipótese mencionada utilizámos peças LEGO (componentes) e validámos a solução recorrendo a avaliações objectivas e subjectivas. 1.3 Contribuições O principal objectivo da solução proposta por este trabalho é a criação de um mecanismo para realizar a segmentação de objectos 3D digitalizados recorrendo a câmaras de profundidade de baixo custo. As principais contribuições deste trabalho são: Proposta de uma solução que permite a reconstrução de objectos físicos em modelos 3D As soluções existentes focam-se apenas em conseguir reconstruir um objecto 3D sem identificar os vários componentes que o constituem. Através da utilização de um digitalizador de profundidade de baixo custo propomos uma nova abordagem para reconstruir objectos 3D. Após capturar um dado objecto físico, os vários componentes que pertencem ao objecto são segmentados e identificados com a utilização de um descritor. Considerando os resultados obtidos, é criado um modelo digital 3D. Criação de um conversor do formato The Visualization ToolKit (VTK) para Object File Format (OFF) e vice-versa No decorrer deste trabalho recorremos à utilização da biblioteca Point Cloud Library (PCL) (Rusu and Cousins, 2011). Esta biblioteca utiliza permite a exportação de modelos para o formato VTK, garantindo deste modo a criação de modelos tridimensionais a partir das nuvens de pontos. No entanto, esta solução é insuficiente para o nosso trabalho dado que estávamos a utilizar o formato OFF. Deste modo, foi desenvolvido um conversor de VTK para OFF que é utilizado no processo de segmentação. Integração da solução produzida pelo algoritmo de reconstrução com o protótipo LTouchIt (Mendes, 2011) Em 2011, foi desenvolvida uma ferramenta interactiva para manipular modelos LEGO pelo aluno Daniel Mendes. Este protótipo foi adaptado e utilizado pela nossa solução, garantindo a interacção com os modelos reconstruídos através de uma mesa multi-toque. Deste modo, é permitida a visualização e manipulação dos modelos criados. 3

28 Validação da solução proposta Os testes objectivos e subjectivos analisados permitiram avaliar o algoritmo de reconstrução proposto. Em particular, os testes subjectivos permitiram averiguar a facilidade de utilização da solução. Esta validação permitiu avaliar a facilidade de utilização e acessibilidade de uma solução que recorre à utilização de um digitalizador de profundidade de baixo custo. 1.4 Publicações No âmbito desta dissertação foram submetidos e aceites um artigo e um poster. O artigo foi publicado numa conferência internacional, "21st International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision"(WSCG 2013) e o poster numa conferência nacional (Interacção 2013). As referências para as publicações são as seguintes: 1. Daniela Borges e Alfredo Ferreira, Part-based Construction of digitized 3D objects, WSCG st International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision, Plzen, Czech Republic, Junho Daniela Borges e Alfredo Ferreira, Reconstrução interactiva de objectos, Actas da Oitava Conferência Nacional em Interacção Pessoa-Máquina (Interacção 2013), Portugal, Novembro 2013 O artigo foca-se em apresentar a solução proposta e referida neste documento para a reconstrução de objectos 3D, referindo também resultados preliminares do algoritmo desenvolvido. A segunda publicação revela resultados dos testes intermédios e finais, que além de análises objectivas conta também com a intervenção de utilizadores (análises subjectivas). 1.5 Estrutura do Documento Neste documento são apresentadas várias abordagens state-of-the-art para resolver os problemas de reconstrução. Deste modo, no Capítulo 2 são apresentadas técnicas de captura e segmentação, sendo referidos alguns projectos relevantes e realizada uma análise e comparação das várias soluções existentes. No capítulo seguinte referimos algum contexto teórico e mencionamos a sua importância no contexto global do projecto. No Capítulo 4 apresentamos uma solução para o problema da reconstrução de modelos 3D, tendo em consideração as abordagens mencionadas no trabalho relacionado. Para finalizar, no Capítulo 5 referimos a metodologia de avaliação utilizada e discutimos os resultados obtidos durante várias iterações. No Capítulo 6 apresentamos a conclusão e referimos algum trabalho futuro. 4

29 Capítulo 2 Trabalho Relacionado Com a entrada de novas tecnologias de baixo custo surgem desafios pertinentes na área 3D. A aquisição de objectos físicos, manipuláveis através de aplicações comerciais, tem possibilitado o surgimento de aplicações em áreas tão distintas como desenho assistido por computador (CAD), manufactura assistida por computador (CAM), engenharia reversa, património cultural, indústria automóvel, entretenimento ou até saúde. 2.1 Captura de Objectos 3D A captura de objectos 3D, além de garantir a visualização em altura e largura (2D), permite também obter a informação de profundidade. A adição desta terceira coordenada garante uma simulação mais próxima da realidade. Em (Bernardini and Rushmeier, 2002) são apresentados range scanners que permitem a aquisição de objectos, dos quais destacamos sistemas de triangulação e sistemas time-offlight (ToF). Enquanto os primeiros são constituídos por um projector laser e uma câmara, e devolvem um conjunto de valores de profundidade que podem ser convertidos para posições 3D, os sistemas ToF enviam um impulso de luz e estimam a distância baseada no tempo que a reflexão demora. Esta abordagem requer alta precisão de medições temporais. Em relação aos sistemas de triangulação a principal limitação é não conseguir ter uma vista adequada tanto para a origem como para o sensor de forma que observa o ponto da superfície que está a ser digitalizado. As características que definem os digitalizadores são a resolução e precisão. Além disso, range scanners também indicam informação adicional como, por exemplo, qual a normal a cada ponto. Um exemplo de um dispositivo topo de gama é o Comet L3d 1 (Figura 2.1(a)), um digitalizador eficiente que usa tecnologia de iluminação LED e possui um sensor compacto e de alto desempenho. A aquisi- 1 Comet L3d, visitado em Dezembro de

30 ção de dados é realizada com alta precisão (cerca de 18 µm) e de forma bastante mais rápida do que os sistemas convencionais (sendo possível capturar até 2 milhões de pontos em 1,5 segundos). Embora estes factores sejam relevantes e determinantes em vários projectos (por exemplo, na reconstrução de objectos arqueológicos ou projectos de ambientes industriais), esta tecnologia não está disponível para todos devido ao seu custo elevado (a partir de C). EXAscan 2 (Figura 2.1(b)) é um digitalizador de pequenas dimensões que utiliza três câmaras de alta resolução em conjunto com um sistema de auto-posicionamento, que permite não ter que recorrer a dispositivos externos de controlo de coordenadas durante a digitalização. Este tipo de digitalizadores possuem alta precisão ( mm), são leves e portáveis, bem como permitem a digitalização de modelos de desenho assistido por computador (CAD) ou controlo de qualidade (por exemplo, inspecção de veículos). Artec Eva 3 é um digitalizador 3D para quem precisa de realizar verificações rápidas e com precisão de cerca de 0.1 mm. Este digitalizador consegue capturar 16 frames por segundo que são alinhados em tempo real e é aplicado em indústrias como a computação gráfica, animação e medicina. Nos parágrafos acima apresentámos digitalizadores de gama alta e cujo preço é elevado quando comparado com os digitalizadores de baixo custo. Os digitalizadores de baixo custo apareceram recentemente e normalmente são utilizados em aplicações com poucos requisitos de precisão e resolução. Um exemplo da utilização de digitalizadores de baixo custo são os videojogos que têm vindo a disseminar cada vez mais a sua procura. Um digitalizador alternativo e de baixo custo é o Leopard Imaging Dual Camara 4 que possui duas câmaras e é utilizado, por exemplo, nas indústrias de fiscalização e de computação gráfica. Concretamente, é ideal para registar locais por onde um carro passou, sendo que uma câmara aponta para a frente do veículo e outra está direccionada para o condutor. Este dispositivo possui uma precisão que ronda os 3.75 µm, garante a captura a 30 frames por segundo e está disponível por cerca de 600C. O DAVID laser scanner 5 é um digitalizador que consiste num computador, uma câmara de vídeo, num laser (ou projector) e num background (composto por duas placas que formam um ângulo de 90º) que contém os pontos de controlo. Estes pontos de controlo servem para estabelecer a relação entre a imagem e as coordenadas do objecto. Quando um laser é enviado intersecta tanto o objecto como os pontos de controlo, conseguindo calcular a pose do objecto através destes pontos. A precisão deste digitalizador e o tempo de digitalização dependem do objecto a capturar. A solução mais barata está disponível por 450C (o preço depende da utilização de um laser ou de um projector). 2 EXAscan, visitado em Dezembro de Artec Eva, visitado em Dezembro de Leopard Imaging Dual Camera, visitado em Dezembro de DAVID laser scanner, visitado em Dezembro de

31 O Microsoft Kinect 6 e o Primesense sensor 7 (Figura 2.1(c)) têm a vantagem de estar cada vez mais acessíveis ao público em geral, dado o preço não dispendioso do dispositivo quando comparado com todos os dispositivos mencionados anteriormente ( 115C e 150C, respectivamente). Estes dispositivos garantem uma resolução de apenas 640 x 480 pixeis a 30 frames por segundo. Embora outros dispositivos produzam melhores resultados em comparação com o Microsoft Kinect ou o Primesense Sensor, já estão a ser realizados progressos no sentido de recuperar a informação de profundidade perdida 8. No entanto, é importante referir que estes dispositivos foram originalmente desenvolvidos para interacção e não para captura 3D. (a) Comet L3D. (b) EXAscan. (c) PrimeSense Sensor. Figura 2.1: Alguns dos digitalizadores 3D apresentados. Na Tabela 4.1 estão resumidas as características dos digitalizadores referidos tendo em conta a precisão, frame rate e preço. Deste modo, pretendemos comparar digitalizadores de alta, média e baixa gama. De realçar que a precisão depende da distância a que o digitalizador se encontra. Como apre- Nome Precisão Frame Rate (segundos) Preço ( C) Comet L3d 18 µm 1,5 segundos (tempo mais >50k C rápido de digitalização) EXAscan mm 25,000 medidas/segundo >40k C Artec Eva 0.1 mm 0,0625 segundos 15k C Leopard Imaging Dual Camera 3.75 µm 0,03(3) segundos 600C DAVID laser scan 0.5% do tamanho 40 segundos digitalização 450C do objecto PrimeSense Sensor 1.8 mm 0,03(3) segundos 150C Microsoft Kinect 1 mm 0,03(3) segundos 115C Tabela 2.1: Comparação entre digitalizadores considerando precisão, frame rate e preço. sentado na tabela, existe uma discrepância elevada entre o preço de cada um dos digitalizadores e esta é a principal razão pela qual decidimos utilizar o Microsoft Kinect para digitalizar objectos 3D. Nesta escolha também foi considerado que a massificação deste dispositivo de baixo preço o tornou acessível para muitos utilizadores que passaram a utilizá-lo como um aparelho multimédia comum para uma grande variedade de aplicações. Microsoft Kinect usa uma luz estruturada e projecta um padrão infravermelho (IR) nos objectos da cena para obter informação de profundidade e de cor (RGBD). Algumas limitações do Microsoft Kinect 6 Microsoft Kinect, visitado em Dezembro de Primesense sensor, visitado em Dezembro de Recovering Missing Depth from Microsoft Kinect, visitado em Dezembro de

32 são o facto de apenas poder ser utilizado em ambientes fechados, sem acção solar e a captura deve ser realizada sobre uma superfície plana. Mais, apresenta alguns problemas para objectos brilhantes e transparentes (Lysenkov et al., 2012). Utilizando um dispositivo de baixo custo semelhante aos referidos anteriormente podemos capturar objectos 3D, obtendo uma nuvem de pontos ou uma malha poligonal. Tanto as nuvens de pontos como as malhas poligonais possuem informação de profundidade do objecto adquirido. Também a cor ou o cálculo das normais podem ser adquiridas durante o processo de captura. Além disso, as malhas poligonais representam os objectos capturados como sólidos, um conjunto de elementos da superfície ligados entre si. As nuvens de pontos ou as malhas poligonais provenientes de uma simples reconstrução são insuficientes para resolver o nosso problema, dado que não permitem proceder à identificação de cada uma das componentes do objecto. Uma abordagem para resolver este problema é a segmentação da nuvem de pontos ou da malha poligonal capturadas. 2.2 Segmentação de Objectos pela Forma A segmentação é útil para localização, classificação e extracção de características de formas 3D e é uma operação facilmente efectuada por humanos. No entanto, para que um computador realize esta tarefa são necessários algoritmos automáticos mais complexos. Quando o input é uma nuvem de pontos o objectivo é decompor o objecto em patches. Os algoritmos reconstroem a malha e fazem segmentação ou fazem a segmentação directamente na nuvem de pontos. A chave da segmentação a partir de nuvens de pontos prende-se com a extracção de primitivas geométricas, detectadas através de pistas como as normais ou a curvatura. Em (Golovinskiy and Funkhouser, 2009), é descrito um algoritmo recente onde foi explorada a construção de um grafo de vizinhos para extrair objectos a partir de nuvens de pontos. Quando o objectivo é decompor um objecto (malha poligonal) em partes ou regiões significativas, normalmente os métodos mais conhecidos constroem um grafo a partir da malha de input e agrupam-no para produzir a segmentação. Estes algoritmos também usam pistas como a concavidade ao longo dos limites. Quando o objectivo é decompor uma imagem em regiões usam-se, por exemplo, algoritmos como o Region Growing ou o Normalized Cuts. Um dos principais desafios desta abordagem é conseguir segmentar o primeiro plano (foreground) do fundo (background). Region Growing (Adams and Bischof, 1994) encontra similaridades dividindo uma imagem em várias regiões. Inicialmente é feita uma escolha dos pontos iniciais (escolhidos manualmente ou através de algoritmos de processamento de imagens) e, em seguida, ocorrem iterações sucessivas que determinam se os pixeis adjacentes devem ser adicionados à região considerando um ou vários critérios 8

33 (intensidade do pixel, forma, cor, etc). Duas regiões são agrupadas se a diferença entre o(s) critério(s) for menor que um dado limiar (threshold). O algoritmo termina quando duas iterações sucessivas não alteram as regiões. K-means (Shlafman et al., 2002) procura obter clusters das características locais extraídas do objecto, decompondo-o em segmentos de áreas semelhantes. Este algoritmo procura escolher aleatoriamente K segmentos e o passo seguinte concentra-se em atribuir cada uma das faces ao conjunto mais próximo. No final é encontrado o ponto médio de cada segmento. De notar que o número de segmentos K é definido no início do algoritmo e que existem várias variações ao K-means. Random Walks (kun Lai et al., 2008) é um algoritmo composto por duas fases. Primeiro é realizada uma over-segmentation, através da atribuição de cada face F ao segmento que tem a face com a maior probabilidade de encontrar F através de um random walk no grafo do modelo. Em segundo lugar, juntam-se os segmentos hierarquicamente de acordo com os comprimentos relativos das intersecções e os perímetros totais dos segmentos adjacentes, terminando quando o número de segmentos definido pelo utilizador for alcançado. Fitting Primitives (Attene et al., 2006) começa com um segmento por face e a cada iteração é associada uma primitiva geométrica (planos, cilindros, esferas, etc.) a cada umas das faces (para cada conjunto de segmentos adjacentes), sendo escolhida a que é aproximadamente melhor para definir este segmento. Posteriormente, o algoritmo junta segmentos numa abordagem bottom-up até atingir número de segmentos definido pelo utilizador. Normalized Cuts (Golovinskiy and Funkhouser, 2008) começa com um segmento por cada face, juntando os segmentos hierarquicamente pelo custo de corte de área normalizada: a soma do perímetro de cada segmento dividido pela área. Termina quando o número de segmentos definido pelo utilizador for alcançado. Randomized Cuts (Golovinskiy and Funkhouser, 2008) propõe uma decomposição hierárquica que usa um conjunto aleatório de cortes para definir os segmentos. É utilizada uma abordagem top-down que começa com todas as faces num único segmento e vai fazendo divisões (splits). Para cada divisão, é realizado um conjunto de cortes aleatórios para cada segmento e posteriormente identificado cada segmento qual é o custo mais consistente (em relação aos outros do conjunto aleatório). Tendo um conjunto de candidatos, é escolhido o que possui o custo mínimo de corte normalizado. Termina quando o número de segmentos definido pelo utilizador for alcançado. Core Extraction (Katz et al., 2005) é baseado numa decomposição hierárquica realizada em quatro fases. Em primeiro lugar, são transformados os vértices do modelo numa posição que não é sensível à representação, usando Multidimensional Scaling (MDS). Em seguida é realizada a extracção de pontos de interesse bem como a extracção dos principais componentes. Para finalizar, são ajustados os limites do modelo terminando automaticamente quando o segmento actual não tem mais pontos de interesse ou quando a fracção de vértices pertencentes ao convex hull está acima de um dado valor (threshold). 9

34 Shape Diameter Function (SDF) (Shapira et al., 2008) exprime a medida do diâmetro do volume do objecto na vizinhança de cada um dos pontos sobre a superfície. O algoritmo consiste em calcular a SDF a partir do centro de cada uma das faces e utilizar o Gaussian Mixture Model para ajustar K Gaussians ao histograma de todos os valores de SDF, com o objectivo de produzir um vector de comprimento K para cada face (que indica a probabilidade de cada face ser associada a um dos conjuntos SDF). Posteriormente, é ajustada a segmentação, minimizado o valor da função de energia, através de cortes em grafos (Alfa-expansion Graph Cut Algorithm). O algoritmo continua hierarquicamente para um dado número de candidatos, que determina o valor final de segmentos. Chen et al. (Chen et al., 2009) efectuam uma comparação entre alguns dos algoritmos de segmentação referidos e concluem que os algoritmos Core Extraction, Shape Diameter Function, Randomized Cuts e Normalized Cuts devem ser usados offline enquanto Random Walks, Fitting Primitives e K-means são mais rápidos e consequentemente melhores para aplicações interactivas. É referido que algoritmos baseados em características de forma não locais (como o Randomized Cuts) efectuam segmentação mais parecida com a forma humana (as mesmas formas, os mesmos pontos de inflexão, etc.). Grande parte dos algoritmos precisam de ter o número de segmentos como input enquanto outros determinam este valor automaticamente (Core Extraction e Shape Diameter Function). Este factor pode ceder vantagem em relação aos outros algoritmos, dependendo do número de segmentos escolhido inicialmente. Concluiu-se ainda que nenhum dos algoritmos apresentados se comporta melhor que todos os outros para todos os tipos de objectos. Recentemente, Wekel and Hellwich (2013) apresentaram um trabalho que procura construir um esqueleto para cada forma com vista a decompor a forma em diversos componentes. O esqueleto é uma representação 1D que é extraída recorrendo a diagramas de Voronoi nos vértices de limite da forma. Os diagramas de Voronoi, que permitem encontrar pontos equidistantes, seleccionam um subconjunto das arestas que permitem achar o esqueleto utilizando as curvaturas existentes. Deste modo, é encontrada a estrutura topológica da forma. É referido que esta solução constrói esqueletos que apenas contêm as características mais importantes mediante as curvas que delimitam os objectos, acabando por ignorar alguns detalhes. Concluiu-se que esta abordagem consegue dividir partes de um objecto em diversas regiões e pode ser utilizada para reconstrução de modelos CAD. Na sua maioria, os algoritmos apresentados recorrem à informação de forma para efectuar a segmentação. No entanto, com as novas tecnologias que fornecem informação RGBD, é cada vez mais comum obter informação de cor e realizar a segmentação recorrendo à combinação de informação de profundidade e de informação cor. No trabalho desenvolvido foi utilizada a combinação de informação de profundidade e cor, garantindo a separação do objecto físico em sub-partes. 10

35 2.3 Estado da Arte Em seguida expomos alguns trabalhos de reconstrução que dão relevância às fases de captura e segmentação de objectos, sendo referências para esta dissertação por apresentarem soluções que utilizam abordagens semelhantes às pretendidas, embora tenham requisitos diferentes Património Cultural Um dos trabalhos pioneiros da área da reconstrução e que utiliza captura de objectos é The Digital Michelangelo Project (Levoy et al., 2000) onde o principal requisito é criar modelos de alta resolução. Para garantir a digitalização de património cultural desta dimensão foi necessário recorrer tanto a software como hardware para digitalizar forma e cor de objectos frágeis em condições não laboratoriais. O objectivo foi criar um arquivo 3D de estátuas, sendo um dos principais desafios a estátua de David (Figura 2.2(a)) que possui 5 metros. Capturar marcas de cinzel menores que um milímetro era outro dos desafios para garantir que os modelos tivessem aparência realística e com condições de luz arbitrárias, sendo possível segmentar a estátua de acordo com as marcas de cinzel detectadas e usadas em cada região. Para auxiliar a compreender as condições em que os objectos se encontravam e que tipo de restauros precisavam alguns modelos foram digitalizados separadamente com luz branca e com luz ultravioleta. Além da forma, o objectivo também era capturar a cor do objecto (mais propriamente a reflexão da superfície de cada ponto das estátuas digitalizadas). Para conseguir cumprir estes requisitos, o hardware utilizado para aquisição de profundidade consistiu num sistema de triangulação e um pórtico (gantry) monitorizado. O sistema de triangulação permitiu chegar a locais mais complicados e o pórtico facilitou rotações e translacções e fazer digitalizações independentemente da orientação. Além disso, tiveram que ser adicionadas extensões para conseguir (a) Estátua e hardware utilizado. (b) Modelo 3D da estátua digitalizada. Figura 2.2: Estátua de David. 11

36 Figura 2.3: Diferentes objectos utilizados no projecto (Schwartz and Weinmann, 2011). chegar ao topo dos objectos. Aquisição de cor foi feita através de um sensor separado e o pipeline de processamento de cor usa normais da superfície da malha fundida para converter em reflexão. A informação de cor foi adquirida com a mesma resolução da informação de profundidade, sendo guardada apenas uma cor por vértice. No final, a digitalização da estátua de David (Figura 2.2(b)) contem um bilião de polígonos e, naturalmente, não é possível de manipular através de aplicações comerciais. Também surgiram problemas relacionados com a segurança das estátuas e sua possível degradação, possíveis danos causados por colisões acidentais entre a estátua e o digitalizador, além de acordos de propriedade intelectual. A abordagem apresentada nesta dissertação é diferente da referida neste trabalho porque recorremos à utilização de modelos de resolução inferior e com requisitos diferentes. Além disso, tanto as condições de captura como os objectos adquiridos não são comparáveis. Continuando no âmbito de património cultural, surgiu recentemente o projecto 3D-COFORM 9. Em (Schwartz and Weinmann, 2011), ter aquisição da geometria 3D não é suficiente, é necessário obter também informações de propriedades ópticas da superfície do objecto como as propriedades de reflexão (nomeadamente especulares). Usando uma abordagem baseada em luz estruturada (Bidirectional Texture Functions (BTF)) consegue-se uma boa precisão geométrica e aquisição de detalhes presentes nas peças, de modo a conseguir um resultado foto-realista. Para garantir a captura de geometria e aparência automática para a criação de réplicas digitais (Figura 2.3) é necessária alta precisão na calibração do dispositivo de aquisição. Neste trabalho a calibração foi conseguida automaticamente. Para lidar com objectos complicados foi necessário explorar dados High dynamic range (HDR). Idealmente seria necessário observar o objecto em todas as vistas e iluminações possíveis para capturar a reflexão. Neste projecto foram usadas 151 câmaras de 12 megapixéis uniformemente distribuídas e que capturam sequências HDR. Além disso, foram utilizados 8 projectores Acer C20 Pico 9 3D-COFORM, visitado em Dezembro de

37 LED-Projector, com resolução de 848x480 pixeis. Com esta instalação é possível ter uma aquisição de dados extremamente grande, sendo possível tirar 151 fotografias em simultâneo e conseguir alta precisão geométrica. A reamostragem e compressão são onde existem os maiores problemas, demorando demasiado tempo a criar a representação BTF. No entanto, compressão e reamostragem podem ser feitas em diferentes máquinas. É necessária alta capacidade de armazenamento para guardar os dados, existindo limitações de hardware se quisermos reconstruir cenas com muitos objectos. Todavia, os resultados de elevada qualidade apresentados neste trabalho vêm com o custo de se basear em uma configuração bastante complexa e cara (no que diz respeito à captura), o que dificulta a utilização generalizada deste sistema. Em (Mathias et al., 2011) encontramos outro trabalho desenvolvido no âmbito do projecto 3D-COFORM que utiliza uma nova abordagem guiada por uma gramática para reconstruir edifícios e marcos históricos (Figura 2.4(a)). Esta abordagem, modelação procedimental, produz eficientemente modelos 3D de edifícios e oferece uma representação semântica leve e significativa em vez de vários ficheiros de malhas. (a) Imagem verídica do templo. (b) Resultados da reconstrução do templo. Figura 2.4: Reconstrução do templo de Athena. É realizada a combinação de uma abordagem top-down guiada por uma gramática com a flexibilidade bottom-up baseada em imagem, sendo a gramática a decidir o que fazer e quando fazer. Por exemplo, é a gramática que decide quais os detectores disponíveis para emparelhamento. O sistema é composto por quatro componentes: o interpretador gramatical, o módulo de reconstrução, os asset detectors e o módulo de visão. O interpretador gramatical analisa a gramática de input, extrai informação semântica e controla o processo de reconstrução. O módulo de reconstrução gera uma nuvem de pontos das imagens de input através de structure-from-motion (SfM) não calibrado. Os asset detectors extraem as caixas envolventes (bounding boxes) dos vários assets (subestruturas dos edifícios, por exemplo janelas, portas, pilares, entre outros) presentes nas imagens. O módulo de visão 13

38 melhora os detectors pela utilização de 3D e informação semântica proveniente da gramática. Em suma, este projecto permitiu reconstruir três templos Gregos: o templo de Parthenon, o templo de Athena (Figura 2.4(b)) e o templo de Poseidon através da reconstrução utilizando gramáticas que se baseiam na forma dos objectos Uso genérico Os trabalhos que apresentámos até agora utilizam hardware de alta gama e com preços elevados. Tendo em conta este factor têm sido investigados projectos que consideram cenários mais controlados e que adoptam outras abordagens (nomeadamente, a utilização conjunta de software e digitalização de baixo custo). Cui et al. (2013) apresenta um trabalho que pretende criar modelos 3D de alta resolução recorrendo a uma câmara time-of-flight. Procurou-se encontrar uma solução que fosse fácil de utilizar por qualquer pessoa e de baixo custo. Inicialmente é movida uma câmara ao longo de 360 graus e um objecto, previamente colocado no centro do campo de visão, é adquirido. Em seguida as imagens de profundidade são divididas em regiões (consoante a profundidade), criando mapas de profundidade com resolução superior. Posteriormente é realizado o alinhamento e registo dos mapas produzidos e criado um modelo 3D de alta resolução. A solução foi avaliada utilizando seis objectos com alturas entre 18 e 59 centímetros. Concluiu-se que a qualidade é razoável tendo em consideração um sensor de baixa qualidade. No entanto, é referido que o ruído criado pelo sensor cria desvios sistemáticos na fase de alinhamento global (recorrendo ao algoritmo Iterative Closest Point) e que são criados buracos nas malhas poligonais devido a oclusões. É mencionado que podem ser acrescentadas texturas aos modelos caso seja adicionada uma nova câmara para capturar informação de cor. Os autores decidiram realizar a mesma experiência com um Microsoft Kinect. Concluiu-se que a reconstrução de modelos 3D de alta qualidade também é possível com uma câmara com características diferentes, além de ter a vantagem de poder adicionar informação RGB sem ter que recorrer a outro dispositivo. No futuro, os autores planeiam investigar abordagens que consigam criar formas de alta resolução em tempo real. Immersive Group-to-Group Telepresence (Beck et al., 2013) permite a realização de conferências em telepresença dentro de um ambiente virtual partilhado. Neste trabalho foi utilizada uma cidade virtual no qual dois grupos de pessoas fisicamente distantes conseguem comunicar e ver-se mutuamente através de uma representação 3D simples. Recorrem a dois clusters de Microsoft Kinect s para adquirir as duas cenas, sendo que em cada local é capturado um volume aproximado de 4 por 3 metros. Cada nuvem de pontos adquirida é transferida para a posição física a comunicar e posteriormente é efectuada a reconstrução, criando uma malha que representa os avatares os utilizadores em comunicação. É estritamente necessária a calibração dos vários Kinect s envolvidos e um registo exacto das nuvens de pontos, garantido através de um único sistema de coordenadas do mundo. O chão de cada local físico é utilizado para auxiliar o registo, sendo utilizado como plano de referência. O ajuste, filtro e 14

39 transferência das nuvens de pontos, contendo informação de cor e profundidade, é processado em tempo real e permite a reconstrução. Os resultados são apresentados a cada utilizador através de imagens estereoscópicas. Em relação à captura de transmissão de áudio, é utilizado um microfone e um altifalante em cada um dos locais físicos. Os utilizadores interagem num ambiente virtual através de gestos que permitem explorar e modificar o ambiente. Zhang et al. (2013) também refere uma solução para realizar encontros virtuais. Ao contrário da abordagem anterior, apenas permite um único utilizador em cada local físico durante uma conferência. São reconstruídos modelos de alta-qualidade em tempo real, utilizando padrões infravermelhos. Os modelos são apresentados num ambiente virtual comum e o objectivo é simular que todos os utilizadores estão numa sala, a partilhar uma mesa. Além disso, quando duas pessoas A e B estão a olhar uma para a outra, é garantido que uma pessoa C se apercebe e apenas consegue ver vistas laterais de A e B. Além disso, o áudio é transmitido em locais estratégicos para aumentar o realismo do ambiente imersivo e a experiência do utilizador. São utilizadas três câmaras infravermelhas, três câmaras para adquirir informação de cor e dois projectores infravermelhos, semelhantes aos existentes no Microsoft Kinect. Não foram utilizadas câmaras Microsoft Kinect para adquirir informação de cor por ser insuficiente para os requisitos definidos. No entanto, é usado um Microsoft Kinect para adquirir áudio e detectar a cabeça do utilizador. Após adquirir a nuvem de pontos a informação é comprimida e os dados enviados pela rede. Do lado dos receptores a informação é descomprimida e as nuvens de pontos interpoladas. São removidas as regiões de pontos cuja área é pequena. Posteriormente, as nuvens de pontos são transformadas em malhas poligonais. As nuvens de pontos são enviadas para o receptor (em vez de realizar a reconstrução e enviar uma malha poligonal) porque garantem maior rapidez de envio e processamento. A calibração dos sensores é referida como um ponto vital da aplicação para produzir resultados de alta qualidade. No entanto, após renderização os resultados contêm alguns buracos devido à baixa resolução da nuvem de pontos. Os autores esperam que a adição de imagens de cor proporcione a diminuição dos buracos criados nas malhas. Software para auxiliar a captura O KinectFusion (Izadi et al., 2011; Newcombe and Davison, 2011) é um software que permite a um utilizador movimentar uma câmara Microsoft Kinect ao longo de uma cena e capturar essa cena em tempo real e ao longo de vários ângulos, reconstruindo uma cena física e juntando diferentes pontos de vista numa única representação. Além disto, recorrendo ao novo pipeline baseado na unidade de processamento gráfica (GPU) é permitido que objectos do mundo físico interajam com partículas virtuais em tempo real e surjam novos paradigmas para o mundo dos videojogos (e não só), que contemplem melhorias em aplicações de realidade aumentada (AR). Neste momento, já está disponível uma implementação open source através da Point Cloud Library (PCL) (Rusu and Cousins, 2011). No entanto, antes de este software ter sido disponibilizado foram lançadas versões de software gratuitas, como o 15

40 Figura 2.5: Setup do sistema 3D Puppetry. ReconstuctMe 10 ou o Skanect 11 que são semelhantes ao KinectFusion. Ambos permitem capturar objectos 3D em tempo real e também utilizar o Microsoft Kinect (ou o Primesense sensor), estando disponíveis gratuitamente para fins não comerciais. Os objectos também podem ser capturados utilizando uma mesa giratória desde que se certifique que todos os objectos estão a rodar para o mesmo lado. Através deste tipo de software é possível modelar objectos realisticamente e gerar um ficheiro STereo- Lithography (STL) que é possível alterar recorrendo a ferramentas como o MeshLab 12 ou Blender 13. As alterações realizadas servem normalmente para eliminar pontos que foram capturados e que estão a mais (filtragem) e/ou para tornar a malha watertight. Estes ficheiros podem também ser impressos recorrendo a impressoras 3D. As principais limitações do ReconstructMe e do Skanect são estarem disponíveis apenas para o sistema operativo Windows e requererem a utilização de uma placa gráfica potente para realizar cálculos. Além disso, a utilização do Microsoft Kinect para a digitalização apresenta alguns problemas aquando a captura de objectos de pequenas dimensões. De realçar que, embora o ReconstructMe permita mapear texturas e consequentemente obter informação de cor, o Skanect cede informação de cor e profundidade de forma bastante mais intuitiva. Toy-problems Têm sido utilizados toy-problems que consideram cenários mais controlados como é o caso do 3D Puppetry (R. T. Held and Agrawala, 2012) (Figura 2.5) que recorre ao software ReconstructMe para reconstruir objectos (vários tipos de brinquedos) que interagem com ambientes virtuais. O sistema do 3D Puppetry apresenta informação em tempo real proveniente de uma câmara Microsoft Kinect e usa o ReconstructMe para converter a nuvem de pontos numa malha (que não possui textura). Para adici- 10 ReconstructMe, visitado em Dezembro de Skanect, visitado em Janeiro de MeshLab, visitado em Dezembro de Blender, visitado em Dezembro de

41 onar cor à malha é realizado outro passo (Painting Mode) em que é colocado um objecto de cada vez à frente do sensor e cada ponto da nuvem de pontos é alinhado com o respectivo ponto na malha sem textura, sendo adicionadas as cores aos vértices do modelo 3D. São utilizados dois passos distintos para permitir que o sistema não fique dependente da utilização do Microsoft Kinect (por exemplo, esta implementação também é possível para laser scanners). É desta forma que é construída a base de dados com todos os objectos que podem interagir com o ambiente virtual. Para identificar os objectos que estão a ser manipulados e que interagem com o ambiente virtual são comparadas as características Scale-invariant feature transform (SIFT) existentes nos dados capturados com as características dos modelos que existem na base de dados. A segmentação realizada serve apenas para inibir a informação do background e das mãos do utilizador. Também já existem alguns exemplos de toy-problems relacionados com a construção de objectos LEGO como os trabalhos LSketchIt (Santos et al., 2008), Lattice-First (Miller et al., 2012) (Figura 2.6(a)) ou DuploTrack (Gupta et al., 2012) (Figura 2.6(b)). Os LEGO são particularmente apreciados por crianças e possibilitam a montagem e desmontagem de vários componentes, permitindo educar e desenvolver habilidades espaciais úteis ao longo da vida. LSketchIt (Santos et al., 2008) refere uma abordagem baseada em esboços para realizar a construção de modelos LEGO. Este trabalho apresenta uma alternativa aos mecanismos de manipulação utilizados por aplicações como o LeoCAD 14 ou o LEGO Digital Designer. Recorrendo à biblioteca LDraw 15, são adicionadas peças ao modelo através da especificação das respectivas dimensões, utilizando esboços. O resultado mais semelhante é adicionado ao modelo, garantindo que as relações com as outras peças são mantidas. A nova peça é ajustada à grelha, dado que está presente o conceito de gravidade para garantir realismo. Além disto, não são esquecidas as colisões entre as várias peças do modelo. Caso a peça adicionada não esteja correcta, são apresentadas sugestões para alterar a mesma. Em vez de apresentar uma lista exaustiva com os todos os modelos, ordenados segundo o grau de similaridade, são apenas exibidos os três modelos mais semelhantes. Concluiu-se que este tipo de abordagem utilizando esboços é mais fácil e rápida de utilizar do que a abordagem presente em aplicações convencionais. Lattice-First (Miller et al., 2012) é uma solução que utiliza o Microsoft Kinect para obter informação de profundidade com vista a adquirir o objecto 3D. Esta solução pressupõe que o objecto não sai de cima da mesa, utilizando apenas três graus de liberdade (3-DOF). Os resultados são armazenados numa grelha de voxeis, em que cada voxel representa um volume que pode contem informação como, por exemplo, a cor e/ou opacidade. O sistema apresenta resultados em tempo real (a 25 frames por segundo) e permite que um utilizador interaja com o sistema e manipule o objecto físico. Este era um dos principais objectivos do projecto e, para a sua concretização, são segmentados os pixeis das mãos do utilizador aquando o momento de 14 LeoCAD, visitado em Julho de LDraw, visitado em Junho de

42 captura. No final da fase de renderização são adicionadas cores aos blocos (a cada voxel) de acordo com os dados RGB capturados com o Microsoft Kinect. A solução apresenta algumas restrições como o facto de limitar as peças LEGO (DUPLO, com o mínimo de 16mm x 19.2mm x 16mm) a blocos de construção ortogonais. Este factor é justificado afirmando que peças de pequenas dimensões não são utilizadas devido a limitações na resolução do sensor Kinect. Para além disto, assumindo que a estrutura de blocos está sempre sobre a mesa (apenas podendo ser rodada e deslocada), não são permitidas alterações em altura. Surgiram ainda problemas relacionados com a reconstrução de peças ocultas, sendo por vezes necessário remover e voltar a colocar uma peça para revelar estruturas, bem como com o registo de algumas peças, consoante as várias vistas da câmara. DuploBrick (Gupta et al., 2012) tem como objectivo propor um modelo que auxilie a construção de um objecto 3D predefinido através de instruções, à semelhança do que é realizado com a ferramenta virtual LEGO Digital Designer 16. Pretendeu-se tornar cada etapa mais dinâmica e interactiva permitindo ao utilizador a manipulação do objecto físico e reconstrução, apresentando o resultado em tempo real. Foram produzidos dois sistemas, Authoring e Guidance, que utilizam a combinação de informação de profundidade e informação visual (cor), proveniente da captura através de Microsoft Kinect. No modo de Authoring o utilizador constrói um objecto que vai sendo representado num ecrã enquanto que no modo Guidance procura-se reconstruir um objecto já existente consoante as instruções de construção apresentadas no ecrã. A abordagem seguida neste trabalho utiliza uma grelha de voxeis e são permitidas as cores vermelho, verde, azul e amarelo. A informação de cor e de profundidade é utilizada para segmentação do background e das mãos do utilizador. A imagem é passada como uma nuvem de pontos para o tracker que 16 LEGO Digital Designer, visitado em Julho de 2013 (a) Lattice-First. (b) DuploTrack. Figura 2.6: Setups dos sistemas apresentados em Miller et al. (2012) e Gupta et al. (2012). Em ambos os sistemas é utilizado o Microsoft Kinect e são reconstruídas peças LEGO DUPLO. 18

43 faz o alinhamento. O componente de segmentação também detecta qual a operação que o utilizador pretende realizar (adicionar ou remover) bem como a cor e tipo de bloco que será utilizado. Em seguida é actualizada a informação no ecrã. 2.4 Sumário e Discussão crítica Neste capítulo estudámos os principais algoritmos e abordagens que permitem a reconstrução 3D de objectos. Os principais desafios encontrados estão relacionados com a escolha do hardware de captura a utilizar, bem como o processamento do resultado produzido através de algoritmos de segmentação de formas 3D. O trabalho The Digital Michelangelo Project (Levoy et al., 2000) e as abordagens (Schwartz and Weinmann, 2011; Mathias et al., 2011) incluídas no projecto 3D-COFORM 17 utilizam dispositivos de captura que valorizam a resolução e precisão e são justificados tanto pela dimensão como pela qualidade que é necessário atingir em trabalhos de reconstrução de património cultural. Abordagens que requerem menos precisão quando comparados com estes trabalhos podem recorrer a dispositivos de captura com custos inferiores. Cui et al. (2013) reconstroem objectos físicos recorrendo a uma câmara time-of-flight. Embora esta abordagem seja promissora, os objectos presentes na avaliação são de dimensão média e os resultados não são apresentados em tempo real. Beck et al. (2013) e Zhang et al. (2013) apresentam soluções para realizar telepresença, que recorrem à captura e registo de informação de cor e profundidade proveniente de diversos dispositivos de baixo custo. Software como o KinectFusion, ReconstructMe ou Skanect permite a movimentação de um sensor Microsoft Kinect ao longo de um cenário e a captura desse cenário ao longo de vários ângulos. Projectos como o 3D Puppetry que utilizam estas implementações assumem que os objectos são rígidos e não deformáveis. Embora este projecto permita 6-DOF, outra limitação é a facilidade com que o rastreamento é perdido quando os objectos se movimentam rapidamente e/ou para longas distâncias. É evidenciada a utilização de hardware de captura de baixo custo e de um setup simples para justificar a utilização de um sistema acessível a muitos utilizadores. Ainda no domínio de toy-problems, LSketchIt, DuploTrack e Lattice-First mencionam abordagens que recorrem ao uso de LEGO para construir e reconstruir modelos. LSketchIt apresenta uma abordagem que recorre a esboços para efectuar a construção. À semelhança deste trabalho, também utilizámos uma lista de sugestões para apresentar os resultados mais semelhantes. Por outro lado, o conceito de gravidade não foi considerado na nossa solução. No que diz respeito à reconstrução, a solução DuploTrack resolve alguns dos desafios do trabalho Lattice-First, nomeadamente a limitação de altura (passando a interagir com 6-DOF). No entanto, as limitações do sensor continuam a impedir a utilização de blocos que não sejam DUPLO e a utilização 17 3D-COFORM, visitado em Dezembro de

44 de peças ortogonais. Surgiram problemas no decorrer da reconstrução de modelos com poucas peças devido ao ruído do sensor Microsoft Kinect, porque para pequenas nuvens de pontos o ruído é significativo quando comparado com o total de dados obtidos. Para além disso, quando o modelo é de pequena dimensão a adição de um bloco pode ser facilmente confundida como um outlier, enquanto não é feita a actualização. Para diminuir estes problemas foi adicionada a restrição que apenas se pode mover o modelo em altura quando existe um número mínimo de cinco blocos. Como trabalho futuro é referida a reconstrução de blocos com formas curvas e peças articuladas sendo provavelmente necessária outra abordagem de representação em vez da grelha de voxeis. Tendo em conta as principais referências apresentadas e a análise efectuada, compreendemos que não existe uma solução que procure resolver o problema apresentado nesta dissertação. Por outras palavras, embora algumas abordagens referidas utilizem câmaras de baixo custo, os principais requisitos não incitam à realização de uma reconstrução segmentada de objectos 3D digitalizados. Embora os trabalhos DuploTrack e Lattice-First se aproximem da solução procurada, ambas as abordagens são limitadas dado nenhuma apresentar uma solução que procure reconstruir um objecto 3D que possua componentes físicos não-ortogonais. A nossa abordagem recorre a um ambiente controlado para capturar objectos 3D. Procuramos reconhecer formas 3D que sejam mais complexas que as mencionadas no trabalho relacionado, permitindo a reconstrução de modelos ortogonais e não ortogonais. Recorremos à utilização de uma câmara de baixo custo para realizar a captura, com o objectivo de disseminar a nossa solução. Além disso, utilizámos blocos DUPLO pela facilidade de utilização e acessibilidade. Um aspecto importante para esta escolha foi também a facilidade de aceder a uma base de dados de modelos LEGO (LDraw 18 ), que nos permitiu criar um repositório de componentes virtuais. Para representar e interagir com os modelos reconstruídos utilizámos uma mesa multi-toque, partindo de uma implementação do protótipo LTouchIt. 18 LDraw, visitado em Junho de

45 Capítulo 3 Contexto Teórico Este capítulo apresenta teoria que suporta a captura e recuperação de objectos 3D, apresentando alguns paradigmas existentes. No âmbito deste trabalho pretendeu-se saber como são alinhados os vários pontos de vista adquiridos utilizando um dispositivo de captura. Também foi necessário explorar a área do processamento e recuperação de objectos 3D. Procurou-se um descritor que cumprisse os requisitos desta dissertação, bem como analisar como comparar objectos de forma eficiente. 3.1 Registo de vistas Um modelo 3D não é mais do que a representação numérica de um objecto, organizado através de um formato (por exemplo, OFF ou STL). Os formatos permitem organizar e identificar os vértices e faces que constituem o modelo. Os modelos 3D podem ser criados de duas formas: ou recorrendo a uma ferramenta gráfica (por exemplo, o Blender) ou através de um digitalizador (dependendo da disponibilidade dos objectos a capturar). No último caso é necessário renderizar e unir (registar) frames de diversos pontos de vista e com condições de iluminação arbitrárias. Tanto a geometria como a aparência do modelos podem ser posteriormente editáveis. O registo dos diversos pontos de vista pode ser realizado recorrendo a um algoritmo ou de forma interactiva (realizado por um humano). Para conseguir aplicar um algoritmo que una as várias vistas é necessário descobrir características semelhantes entre vistas consecutivas. Características semelhantes permitem identificar pontos de interesse, que são pontos através dos quais podemos estimar correspondências entre dois frames sucessivos. Provavelmente nem todos os pontos de interesse ob- Figura 3.1: Passos necessários para registar vários pontos de vista recorrendo a um algoritmo. 21

46 Figura 3.2: Extracção de características. Imagem do trabalho (Rusu, 2009), onde é possível ver duas capturas e os respectivos pontos de interesse entre as duas digitalizações (neste caso particular, através do cálculo de histogramas. tidos são relevantes e/ou possuem ruído, pelo que alguns devem ser eliminados. No final, é calculada uma transformação que permite estabelecer correspondências entre frames, tendo em consideração as características identificadas e as posições dos pontos no espaço. Este processo está representado na Figura Extracção de Características As características identificam pontos de interesse entre as várias vistas capturadas utilizando um digitalizador (Figura 3.2). Aspectos como a invariância a transformações (de escala, translação ou rotação) ou a quantidade de ruído capturada em digitalizações consecutivas são determinantes para a selecção de uma técnica de extracção de catacterísticas (Rusu, 2009). A extracção de características pode ser realizada recorrendo a algoritmos como os apresentados em seguida. Harris Corner (Harris and Stephens, 1988) permite identificar cantos, arestas e pontos de interesse, obtidos através das variações de intensidade numa dada digitalização. No entanto, na sua versão original, não permite realizar transformações de escala sem voltar a recalcular a matriz de intensidades. Scalar Invariant Feature Transform (SIFT) (Lowe, 2004) resolve o problema da escala apresentado pelo algoritmo Harris Corner, permitindo que um ponto de interesse possa ser detectado em diferentes escalas. O SIFT utiliza Difference of Gaussian (DoG) para detectar arestas e é baseado no cálculo (local) de histogramas à volta do ponto de interesse. Uma das particularidades do SIFT é realizar acções computacionalmente pesadas apenas para os mais prováveis candidatos a pontos de interesse. Speeded-Up Rubust Feature (SURF) (Bay et al., 2008) é um descritor semelhante ao SIFT mas mais eficiente. O SURF também calcula histogramas locais ao ponto de interesse. A diferença é que utiliza as digitalizações de forma mais eficiente, através da realização de aproximações nos cálculos da derivada Gaussiana de segunda ordem. 22

47 Figura 3.3: Várias iterações do algoritmo RANSAC. À direita é visível uma iteração onde o algoritmo consegue identificar grande parte dos pontos. Normal Aligned Radial Feature (NARF) (Steder and Rusu, 2010) procura áreas em que existem grandes variações de vizinhança. É realizado o cálculo de normais para as áreas onde existem pontos de interesse e, deste modo, determinada a orientação com base nos pixeis vizinhos. O NARF está disponível na PCL Cálculo da transformação Após ter os candidatos a pontos de interesse identificados é necessário estabelecer uma correspondência entre pontos provenientes de duas digitalizações sucessivas, associando características e posições entre frames. Escalando esta abordagem para as várias digitalizações adquiridas à volta do objecto 3D, é possível obter um modelo 3D caso consigamos realizar uma transformação exacta entre pontos de interesse. Entre os algoritmos mais conhecidos para efectuar transformações estão o RANdom SAmple Consensus (RANSAC) e o Iterated Closest Point (ICP). RANdom SAmple Consensus (RANSAC) (Fischler and Bolles, 1981) é um algoritmo que tenta adquirir uma transformação através da procura de parâmetros que sejam válidos para a maioria dos pontos (Figura 3.3). A cada iteração é seleccionado aleatoriamente um conjunto de pontos. Após ter os pontos é definido um modelo, sendo criada uma linha entre vários pontos contidos numa dada área. Deste modo são identificados os pontos que estão dentro da área (inliers) e os que estão fora (outliers). No entanto, como este algoritmo procura pontos de forma aleatória, a maior dificuldade prende-se com o facto de não se saber exactamente quanto parar de realizar iterações. Iterative Closest Point (ICP) (Zhang, 1994) procura saber qual a transformação necessária para minimizar a distância entre dois conjuntos de pontos gerados através de digitalizações sucessivas. Isto é realizado através da iteração entre as várias correspondências de pontos de interesse, minimizando a distância entre cada ponto de uma digitalização e a tangente mais próxima a essa digitalização (feita a todas as digitalizações). Esta abordagem tem o problema de ser computacionalmente pesada porque recorre a todos os pares de pontos. No entanto o ICP é aplicável quando temos uma boa estimativa inicial. Uma abordagem (Henry et al., 2010) passa por usar inicialmente RANSAC e posteriormente 23

48 ICP. Podem existir alguns problemas durante a fase de união das várias digitalizações, principalmente devido a ruído. Este ruído faz com que os descritores calculados e as consequentes características extraídas possam não ser as mesmas ao longo do tempo. O ruído pode ser proveniente tanto do movimento do digitalizador que está a realizar a captura como das condições de luminosidade da cena. Além disto, podem existir problemas no decorrer da junção das várias digitalizações, por exemplo, devido a erros nas aproximações consecutivas. A resolução do dispositivo de captura utilizado também é um factor determinante para uma extracção de características que permita obter a transformação correcta. Por estas razões, alguns pontos de ruído têm que ser eliminados antes de obter a transformação final. Com o restante conjunto de correspondências entre pontos é criada a transformação final que permite obter o objecto digitalizado, através da união de todas as vistas. Até agora explicámos como é possível registar diversas vistas adquiridas durante a captura e obter um objecto digitalizado. Este objecto poderá ser dividido em sub-partes através da segmentação. Utilizando um algoritmo de recuperação de objectos pela forma podemos identificar correspondências entre os componentes físicos (pertencentes a um objecto físico) e os componentes virtuais (existentes num repositório). Deste modo, é possível estabelecer correspondências e criar um modelo 3D fiel ao objecto físico capturado. 3.2 Recuperação de Objectos pela Forma Uma abordagem possível para realizar a reconstrução de um objecto 3D é recuperar cada um dos componentes que fazem parte do objecto. É esta a abordagem proposta no nosso trabalho e, nesta secção, enunciamos como pode ser efectuada a recuperação de objectos 3D segundo esta via. Por outras palavras, como é que partindo de uma interrogação (que considera os dados da fase de segmentação) podemos estabelecer correspondências e identificar quais os resultados semelhantes a essa interrogação, considerando os modelos existentes no nosso repositório. A recuperação é um tópico cada vez mais relevante nos dias de hoje, dado o aglomerado de dados que cada pessoa possui nos seus dispositivos pessoais. A recuperação de informação pode ser baseada em anotações (manualmente, utilizando tags) ou recuperação de informação baseada no conteúdo (CBR). A primeira possui problemas relacionados com o facto de ser realizada por humanos e, consequentemente, susceptível a erros. Por exemplo, pessoas diferentes caracterizam objectos de forma diferente. Relativamente à segunda, existem vários algoritmos que procuram resolver este problema de forma automática utilizando conteúdo visual como cor, textura e/ou forma do objecto. A recuperação baseada em anotações não cumpre os requisitos impostos pela solução proposta e, por esta razão, vamos recorrer à informação de forma existente na sub-parte segmentada. O método mais vulgar é utilizar representações numéricas (descritores de forma) que permitem a comparação eficiente 24

49 de objectos Descritores de forma Um objecto 3D pode ser representado na forma de um ponto (representação numérica) num espaço multidimensional. Este ponto corresponde a um vector de características (feature vector) ou descritor. As principais características utilizadas do processo de extracção são a textura, a cor e a forma, recomendadas quando queremos descrever por conteúdo. Em seguida são apresentados alguns descritores de forma, que foram estudados com o objectivo de seleccionar um que cumprisse requisitos de eficiência apropriados para demonstrar a arquitectura proposta por esta dissertação. Shape Distributions (SD) (Osada et al., 2001) é um descritor de forma 3D que representa modelos poligonais através de uma função de forma que mede as propriedades geométricas de um dado objecto. Um dos principais objectivos deste descritor é ser rápido e eficiente no cálculo das funções de distribuição. Estas funções podem ser, por exemplo, a distância entre dois pontos da superfície do objecto escolhidos aleatoriamente ou o volume criado entre um tetraedro contido na superfície. Após escolher a função, são recolhidas N amostras e construído um histograma. Quantas mais amostras existirem mais precisa é a função, com a desvantagem de aumentar custos de armazenamento e comparação entre objectos. Para comparar dois objectos podem ser utilizadas as distâncias de Minkowski, avaliando os respectivos histogramas. A invariância a transformações depende da função de distribuição seleccionada. Spherical Harmonics (SHA) (Funkhouser et al., 2003) é um descritor de forma que tem como ideia base a decomposição de um modelo 3D numa colecção de funções definidas por esferas concêntricas, sendo utilizadas harmónicas esféricas para descartar informações de orientação (fase). Combinando todas as assinaturas ao longo dos diferentes raios, é obtido um descritor de duas dimensões invariante à rotação para o modelo 3D. É utilizada a distância Euclidiana para encontrar similaridades entre dois descritores. Uma das principais vantagens deste descritor é ser invariante à orientação do modelo dado que a fase de indexação é realizada sem existir registo do modelo 3D num sistema de coordenadas canónico (garantida pela eliminação da fase). Light-Field Descriptor (LFD) (Chen et al., 2003) é um descritor que contempla a utilização de características visuais para comparar similaridades entre modelos 3D, recorrendo à extracção de light fields (que representam a intensidade luminosa de um dado ponto 3D numa dada direcção). LFD usa o princípio de que se dois modelos 3D são semelhantes então vão parecer semelhantes em todos os ângulos de visão e, para garantir tal propriedade, são utilizados os 20 vértices de um dodecaedro para criar cada uma das vistas (reduzindo o tempo de recuperação e o tamanho das características). Para medir similaridades entre dois objectos são analisadas as vistas, realizando rotações, que permitem fazer correspondências entre os descritores calculados para as imagens. Este cálculo de descritores é adquirido recorrendo a abordagens region-based shape descriptor (momento de Zernike) e contour- 25

50 based shape descriptor (descritor de Fourier), que garantem robustez a transformações de escala, rotação e translação. LSF (Wahl, 2003), localized statistical features, é um descritor de forma que calcula um conjunto de N statistical features que são combinadas num vector de características por modelo 3D. Este descritor é caracterizado por ser robusto para diferentes representações de forma, ruído geométrico, articulação e não precisa de normalizações de pose. Resumidamente o algoritmo consiste em escolher os pontos de amostragem e posteriormente calcular Surflet-Pairs para construir o Surflet-Pair Relation Histogram (SPRH). Para cada ponto é encontrada uma esfera (criada a partir do centro desse ponto) e para cada raio da esfera que intersecta o polígono são definidos pontos de amostragem (sendo utilizados vários raios). Os pontos que intersectam o polígono criam pares (Surflet-Pairs) com os vértices e para cada par criado calculam-se as statistical features que permitem construir o histograma (SPRH). As statistical features resultantes das Surflet-Pair Relations definem um máximo para descobrir, de 1 a 5, qual o valor quantizado de uma determinada statistical feature, permitindo preencher o histograma com N bins. MDS-CM-BOF (Lian et al., 2010) usa a abordagem Bag-of-Features (BoF) que integra várias características locais num vector de características. Inicialmente o algoritmo procura construir a forma canónica do objecto através da utilização de Multidimensional Scaling (MDS) e de Principal Component Analisys (PCA), permitindo 24 posições possíveis para a forma canónica respectiva. Em seguida é realizada a extracção de características e são calculadas 66 vistas de profundidade com tamanho 256 x 256, capturadas em cada um dos vértices de uma esfera geodésica. Para cada uma das imagens criadas são extraídos os descritores Scale Invariante Feature Transform (SIFT) (Lowe, 2004) e obtidas as características visuais (visual words), a partir das quais é gerado o dicionário. É aplicado o K-means para criar clusters cujo centro é seleccionado como o vector de características das visual words no dicionário. No final, são calculadas as diferenças entre um modelo dado (query model) e o(s) modelo(s) existente(s), considerando as distâncias entre dois histogramas calculados a partir dos descritores obtidos. BOW-LSD (Laga et al., 2011), bag of words with local spectral descriptors, é baseado no paradigma Bag-of-Words (BoW) em que o texto é representado como uma colecção de palavras e a ocorrência de cada palavra é usada como uma feature. De forma a obter uma colecção de pontos característicos locais são inicialmente detectados aleatoriamente 200 vértices do objecto e é construído um diagrama de Voronoi em que os centróides passam a ser os pontos referência das células. Cada ponto de referência é associado a um patch local no qual é calculado o descritor. De acordo com o descritor, cada patch é associado com a palavra visual mais próxima do dicionário (codebook) através da aplicação do K-means ao conjunto dos descritores, sendo obtidos os centros dos clusters que representam as codewords do dicionário. Cada objecto é descrito através da distribuição de codewords, sendo o dicionário previamente preenchido por um conjunto de descritores realizado numa vasta colecção de objectos 3D. PatchBOF (Tabia et al., 2011), bag-of densely-sampled local visual features, é um algoritmo invariante 26

51 a transformações que começa por detectar quais os vértices que estão mais longe entre si para o modelo dado, considerando a distância geodésica. Deste modo obtém conjuntos de extremos locais para cada vértice e o conjunto dos pontos de características é a intersecção entre todos os conjuntos de extremos locais para todos os vértices. Para a construção do vocabulário é necessária a aplicação do K-means ao cálculo de descritores feito para cada um dos objectos, obtendo keyshapes. O histograma é construído com o conjunto de todas as keyshapes. Comparar objectos 3D consiste em encontrar as diferenças entre dois histogramas, recorrendo à distância Euclidiana. Este é um algoritmo que obtém resultados aceitáveis para formas complexas mas resultados fracos para formas semelhantes a primitivas geométricas conhecidas (facilmente perceptível pelo cálculo das distâncias geodésicas). Na nossa abordagem utilizámos descritores de forma para comparar os diversos objectos, tendo como requisitos garantir aproximadamente tempo real nas diversas comparações e taxa de sucesso (hit rate) aceitável. Para atingir estes objectivos, foi escolhido o descritor mais adaptado de um dos descritores de forma mencionados, o Spherical Harmonics (SHA), por ser extremamente eficiente, robusto a transformações, invariante à orientação e amplamente utilizado. Após realizar o cálculo de descritores, são necessárias medidas de similaridade para comparar objectos Medidas de similaridade Medidas de similaridade servem para calcular correspondências entre dois objectos, a partir da comparação entre pontos no espaço multidimensional (nd), calculados pelos descritores. O espaço multidimensional nd significa que o espaço é de alta dimensão, i.e, pode ter centenas de dimensões onde existem pontos que caracterizam objectos e quanto maior a dimensionalidade mais difícil é identificar o registo de poses, a correspondência entre características e os parâmetros de cada modelo. As distâncias de Minkowski (equação 3.1) são uma das medidas utilizadas para recuperação de informação multimédia e são dadas pela seguinte fórmula: ( n ) 1/p L p = x i y i p, p = 1, 2,..., (3.1) i=1 Esta fórmula permite calcular a distância entre os pontos (x 1, x 2,..., x n ) e (y 1, y 2,..., y n ). Note que a distância Euclidiana (equação 3.2) é um caso particular das distâncias de Minkowski, onde p = 2, que determina a distância entre dois pontos presentes num dado segmento de recta. Esta distância é uma das mais utilizadas devido à sua simplicidade e precisão nos resultados. ( n ) 1/2 L 2 = x i y i 2 i=1 (3.2) Os objectos estão representados na forma de pontos no espaço multidimensional através de um vector 27

52 de características (feature vector) ou descritor e objectos semelhantes encontram-se perto uns dos outros no espaço da assinatura. As distâncias calculadas entre descritores representam as similaridades entre dois objectos no espaço multidimensional. São calculadas as distâncias entre o descritor da interrogação e os descritores de objectos existentes na base de dados, ou seja, é feita uma comparação de pontos no espaço nd. D L1 (f 1, f 2 ) = + f 1 f 2 (3.3) Dois histogramas de distribuição podem ser comparados recorrendo à distância de Minkowski para as duas funções f 1 e f 2 (equação 3.3). Antes de calcular a distância de Minkowski, os dois histogramas a que os descritores correspondem devem ser interpolados para um número fixo de segmentos lineares utilizando o método dos mínimos quadrados, permitindo contornar problemas de quantização e ruído. Em seguida, é então calculada a distância recorrendo à equação 3.3 e é devolvido um número real como resultado. Quanto menor for o valor obtido mais semelhante é o objecto interrogado ao objecto que está a ser comparado no momento. Esta solução é pouco prática porque não é escalável, i.e, se tivermos muitos objectos é totalmente ineficiente compará-los a todos. Os mecanismos de indexação existentes podem auxiliar a resolver este problema, permitindo organizar um conjunto de objectos de forma eficiente. Consequentemente, podem ser efectuadas comparações rapidamente e o tempo demorado durante a pesquisa (recuperação) diminui Indexação e Recuperação Na fase de indexação são extraídas as características dos objectos e é calculado um descritor de forma para cada um deles (por exemplo, um dos apresentados na Secção 3.2.1). A combinação de informação de forma e cor no cálculo do descritor têm vindo a ser cada vez mais estudada, em vez de utilizar apenas a forma. Após serem calculados, os descritores são inseridos numa base de dados (repositório) e é criado um índice. Este processo normalmente é realizado offline por ser demorado. Embora a indexação possa ser realizada offline, a pesquisa (recuperação) deve ser um processo rápido para permitir aplicações em tempo real. As estruturas de indexação permitem estas pesquisas rápidas, dado evitarem a demorada comparação objecto a objecto, para cada um dos objectos existentes no repositório. Neste caso o número de elementos comparados é reduzido. Existem inúmeras estruturas de indexação multi-dimensionais como NB-Tree, R-Tree, KD-Tree ou X-Tree. Neste trabalho utilizámos a NB-Tree (Fonseca and Jorge, 2003) que é eficiente para conjuntos de dados elevados. Esta abordagem reduz a dimensão recorrendo ao cálculo da distância Euclidiana, através do mapeamento de pontos multidimensionais para uma linha 1D (Figura 3.4(a)). 28

53 (a) Mapeamento. (b) Range querys. Figura 3.4: Indexação e recuperação numa NB-Tree (Fonseca and Jorge, 2003). A recuperação deve ser um processo rápido e eficiente e que pressupõe que foi feita a indexação, permitindo a pesquisa de modelos 3D através de uma interrogação efectuada à base de dados. Para cada interrogação realizada é calculada a semelhança entre modelos (com base das medidas apresentadas na Secção 3.2.2) e devolvido um conjunto de resultados que melhor correspondem à interrogação, através da avaliação das semelhanças entre as várias assinaturas. No caso da NB-Tree, após serem indexados os descritores dos objectos podem ser realizadas interrogações range querys (procurar resultados num dado raio, Figura 3.4(b)) ou k-nearest neighbors (procurar os k objectos mais semelhantes à interrogação). Estas interrogações têm em consideração o mapeamento realizado durante a indexação, ou seja, pesquisar numa NB-Tree cede resultados cuja normal está na vizinhança da norma Euclidiana do ponto calculado Arquitectura típica dos processos de indexação e recuperação A arquitectura típica (Figura 3.5) pressupõe as fases de indexação e recuperação. Inicialmente é realizado o pré-processamento onde ocorre, por exemplo, a simplificação do número de vértices. Posteriormente são extraídas as características relevantes do objecto e é calculado o descritor respectivo para cada modelo que se pretende inserir na base de dados. Em seguida é preenchido o índice e, após processar todos os objectos, estamos preparados para a fase de recuperação. A fase de recuperação é idêntica à fase anterior dado que também são necessários os passos de pré-processamento, extracção de características e cálculo do descritor. A diferença é que, neste caso, queremos efectuar uma pesquisa ao índice utilizando o descritor calculado, acelerando a procura. Após cálculo do descritor é realizada uma comparação com os descritores existentes no índice. São devolvidos os resultados das medidas de similaridade entre o descritor do objecto interrogado e os descritores existentes no índice. Estas medidas permitem encontrar quais os objectos mais semelhantes, i.e., os que têm menor distância ao objecto interrogado. 29

54 Figura 3.5: Arquitectura típica dos processos de indexação e recuperação. 3.3 Sumário e Discussão Crítica Neste capítulo foram apresentadas técnicas para efectuar o registo das várias frames provenientes da captura utilizando um digitalizador, bem como a recuperação de objectos 3D utilizando a forma. Após capturar um objecto com um digitalizador é necessário registar as várias vistas adquiridas. Para tal, é imperativo extrair caracteríscas comuns entre as vistas, encontrando pontos de interesse que permitam estabelecer correspondências. Utilizando estes pontos, é calculada a transformação que permite alinhar as vistas de forma exacta. Em particular, estudámos os algoritmos RANSAC e ICP, bem como alguns problemas inerentes ao registo. No nosso trabalho utilizámos o software Skanect para efectuar o registo, dado que este nos permite obter uma malha poligonal com informação de profundidade e cor, em tempo real. Para tal, este software utiliza uma versão adaptada do algoritmo ICP combinada com uma implementação GPU. A indexação de objectos recorrendo a um mecanismo de indexação permite a rápida comparação de objectos e, consequentemente, pesquisas bastante eficientes. Para permitir estas comparações é necessário proceder ao cálculo de descritores para cada um dos objectos. Os descritores calculados são comparados segundo medidas de similaridade. Neste trabalho recorremos às técnicas de recuperação descritas para proceder à identificação dos vários componentes existentes no objecto físico. Inicialmente construímos um repositório com os componentes virtuais (em particular, modelos LEGO ), que possui uma representação digital para cada um dos componentes físicos que podem ser adquiridos. Após conhecer os componentes e realizar a indexação dos mesmos, podemos realizar pesquisas 30

55 sucessivas (recuperação) com as diferentes sub-partes que pertencem ao objecto e que tinham sido anteriormente capturadas. Deste modo, a nossa solução propõe resolver o problema da reconstrução e associa as fases de captura, segmentação e recuperação. 31

56 32

57 Capítulo 4 Solução Proposta Esta secção apresenta o desenho e desenvolvimento da nossa solução. Com este trabalho pretendemos realizar a reconstrução de objectos 3D aproximadamente em tempo real, com uma taxa de sucesso aceitável em relação ao número de componentes reconhecidos. Os principais desafios desta abordagem são: (1) Captura, utilizando um dispositivo de baixo custo (Microsoft Kinect ); (2) Segmentação do objecto 3D capturado e das componentes que o constituem; (3) Identificação dos diversos segmentos (recuperação); (4) Reconstrução do modelo digital, usando as componentes virtuais recuperadas. Procurámos uma abordagem que solucione o problema da reconstrução, apresentando um algoritmo capaz de identificar quais os componentes físicos que compõem um dado objecto (Figura 4.1). Em particular, este projecto pretende ir mais além do que os projectos apresentados por Miller et al. (2012) e Gupta et al. (2012), reconstruindo também peças LEGO (componentes) não-ortogonais. 4.1 Visão Global Inicialmente é feita a captura utilizando o Skanect e é obtida uma malha poligonal. Para tal, é necessário que um utilizador movimente um Microsoft Kinect à volta do objecto a ser capturado. Utilizando a informação de cor e de profundidade, conseguimos segmentar um objecto em diversas sub-partes. Como resultado, cada um dos componentes físicos é separado e pode ser identificado. Para proceder à identificação, cada sub-parte é comparada com os componentes virtuais que existem no repositório de componentes, previamente preenchido durante a indexação. Deste modo é possível realizar a recuperação dos componentes mais semelhantes para cada uma das sub-partes interrogadas. É utilizado um descritor de forma (Secção 3.2) para proceder à indexação e recuperação de cada um dos componentes. Este processo permite identificar os componentes físicos e possibilita a construção de modelos 3D digitais, compostos por componentes virtuais. 33

58 Figura 4.1: Visão global do projecto: do objecto físico ao modelo reconstruído. Para representar visualmente os modelos LEGO reconstruídos, este projecto utiliza uma versão adaptada do protótipo LTouchIt (Mendes, 2011), existente no INESC-ID 1. Este protótipo permite a manipulação de modelos LEGO através de interacção com uma superfície multi-toque. De referir que hoje em dia esta é uma forma natural de interacção que cada vez mais faz parte do quotidiano do utilizador comum. 4.2 Captura A fase de captura procura obter um objecto digitalizado a partir de um objecto físico. O objecto digitalizado é uma representação poligonal do objecto físico capturado. Assim, foi necessário recorrer a hardware (Microsoft Kinect ) e software (Skanect) específico. Adicionalmente, foi realizada uma filtragem que permitiu isolar o objecto de outliers presentes na cena capturada Hardware utilizado e setup proposto Foi implementada uma aplicação que utiliza o Microsoft Kinect para capturar os objectos LEGO físicos. A utilização deste dispositivo de captura é justificada pelo baixo custo e por ser um dispositivo de futuro que brevemente estará disponível em casa de qualquer pessoa. O setup utilizado está representado na Figura 4.3, onde é possível ver um Microsoft Kinect, várias 1 INESC-ID, visitado em Dezembro de

59 Figura 4.2: Captura de objectos 3D. Figura 4.3: Setup: O objecto 3D é construído e posteriormente colocado no centro da mesa, onde é capturado pelo Microsoft Kinect. peças DUPLO e uma mesa giratória. Embora uma abordagem promissora fosse capturar objectos através da rotação de uma mesa, obtivémos melhores resultados quando é o Kinect a mover-se à volta do objecto (contido numa bounding box). Foram tidas em consideração as condições de iluminação do local onde foram capturados os objectos físicos, já que a captura num ambiente não controlado proporcionaria limitações ao algoritmo (principalmente na fase de segmentação) Software utilizado Foi ponderada a utilização do projecto Benchmark Kinect (BeKi) 2. No entanto, concluiu-se que este trabalho não seria útil para realizar a captura de componentes físicos para a fase de recuperação (nomeadamente, na indexação), devido ao tamanho reduzido dos componentes utilizados e à tendência do algoritmo para arredondar todos os componentes capturados. Foi ainda desenvolvida uma implementação para realizar o registo através da captura de diferentes pontos de vista. Contudo, esta aplicação não teve sucesso devido ao tamanho dos componentes adquiridos ser reduzido. Foi nesta altura que a hipótese Skanect foi considerada, tendo sido descartadas as opções ReconstructMe e KinectFusion (implementação PCL) por apenas adquirirem informação de profundidade em tempo real. 2 BeKi, visitado em Dezembro de

60 A solução proposta utiliza o software Skanect, que possibilita a captura de informação de cor e de forma, além de permitir capturar o objecto 3D em tempo real. A principal razão para a utilização deste software é o facto de possibilitar o registo das várias vistas adquiridas com o Microsoft Kinect de forma eficiente e permitindo-nos definir uma bounding box que exclui alguns outliers (como o chão ou as paredes). No entanto, o Skanect possui algumas limitações: (1) apenas permite exportar o objecto 3D capturado na representação de malha; (2) a malha resultante contêm vários outliers, tendo em conta que o Skanect precisa de ter mais objectos na cena para não perder a trajetória do objecto que está a ser capturado. Deste modo, é necessário assegurar que no final da captura a malha do objecto não possui holes e que a trajectória não foi perdida Filtragem Para processar a malha poligonal resultante e ultrapassar as limitações impostas pelo Skanect foi utilizada a Point Cloud Library (Rusu and Cousins, 2011). Esta biblioteca de software aberto cede diversos algoritmos úteis que proporcionam a manipulação de nuvens de pontos, além de permitir importar e exportar em diferentes formatos. Utilizámos a PCL para importar a malha resultante e converter a mesma numa nuvem de pontos, tornando deste modo mais fácil e eficiente o processo de filtragem, capaz de remover grande parte dos outliers. A filtragem é um processo que é normalmente usado por grande parte dos algoritmos após a captura para eliminar outliers provenientes de ruído da captura efectuada, falta de exactidão na calibração do sensor ou imprecisão no registo. Além disso, a nossa nuvem de pontos possui ainda restrições relativas às dimensões das peças DUPLO e da resolução do Kinect. Tal como é possível ver na Figura 4.3, utilizámos folhas de alumínio e várias caixas transparentes para tentar remover o máximo de outliers, conseguindo desta forma acelerar o processo de captura. Isto é possível porque o Microsoft Kinect ignora objectos brilhantes e transparentes. A Figura 4.4 permite compreender melhor como funciona o processo de filtragem implementado na solução proposta. Para que o rastreamento não seja facilmente perdido foram adicionados objectos à cena ("objectos diversos"). Além disso, o objecto a reconstruir é colocado em cima de uma caixa transparente para ser facilmente isolado, dado que esta é ignorada pelo dispositivo de captura. A abordagem proposta utiliza a filtragem para remover os objectos extra adicionados durante a fase de captura. Este processo é realizado através da conversão da malha poligonal obtida com o Skanect numa nuvem de pontos. Utilizando Principal Component Analysis (PCA) (Murase and Nayar, 1995), a nossa nuvem de pontos é representada por uma matriz de covariâncias (Alexa and Adamson, 2004). Deste modo, é possível realizar uma projecção à nuvem de pontos adquirida e garantir que fica alinhada com o centro do referencial. O plano horizontal ("mesa") garantiu que esta projecção é efectuada de forma correcta, sendo que o nosso algoritmo procura inicialmente por um plano e, em seguida, efectua a projecção tendo em consideração a matriz de covariâncias que define o plano. Posteriormente 36

61 Figura 4.4: Representação dos vários objectos presentes sobre a mesa durante a captura. Inicialmente é encontrado o plano horizontal e posteriormente são realizadas filtragens em altura, largura e comprimento que permitem ficar com o objecto físico preparado para a fase de segmentação. realizámos uma translação em Y (ver eixos na Figura 4.4) para actualizar a altura do objecto (esta altura é um input do algoritmo, determinado manualmente consoante a altura da "caixa transparente"). Para terminar são realizadas filtragens em comprimento e largura caso ainda existam outliers na nuvem de pontos. Para concluir, foi eliminado grande parte do ruído provocado pelo registo das vistas, removendo pontos que se encontrem a longas distâncias do objecto. Estes pontos são considerados ruído caso não tenham um dado número de vizinhos num determinado raio. Estes valores foram calculados empiricamente e são soluções particulares para o nosso toy-problem, dadas as dimensões dos objectos capturados. Com esta metodologia reduzimos uma nuvem de pontos de 116 mil vértices para 2 mil vértices (redução superior a 98%) e obtivémos o objecto filtrado para a fase de segmentação. Estes valores foram calculados com base na média obtida durante a avaliação das construções presentes no Apêndice B, Figura B.2. É necessário ter em consideração que os eixos calculados nesta fase são determinantes para o sucesso no final da reconstrução, isto é, tanto a orientação como a posição dos componentes estão dependentes da exactidão este cálculo. 4.3 Segmentação Utilizando o Microsoft Kinect e do Skanect conseguimos obter uma representação por fronteira e, posteriormente, uma nuvem de pontos com as componentes de cor e profundidade do objecto capturado. No entanto, nenhuma destas representações contêm informação sobre cada uma das componentes 37

62 Figura 4.5: Segmentação de objectos. que constituem o objecto físico, mas do objecto como um todo. Recorremos à utilização da informação de cor fornecida pela captura em conjunto com a informação de profundidade para separar cada uma das componentes em sub-partes. A fase de segmentação é, na verdade, composta por diversas fases (ver Figura 4.5) que permitem que a partir de uma nuvem de pontos filtrada se obtenha, para cada uma das componentes, a sub-parte correspondente. A sub-parte resultante estará pronta para ser comparada com componentes virtuais existentes no nosso repositório. A Point Cloud Library (PCL) (Rusu and Cousins, 2011) auxiliou a separação de cada componente através de uma comparação de cor Hue, Saturation and Intensity (HSI) (Rusu and Cousins, 2011), criando conjuntos de filtros que reconhecem cada cor individualmente. Tal como referido na secção anterior, consideramos um ambiente controlado para a captura, proporcionando que na fase de comparação HSI as condições de luminosidade não diferissem de captura para captura. Esta diferença poderia influenciar brutalmente os resultados obtidos, porque embora possamos ter a mesma cor num dado componente, diferentes saturações e intensidades podem não ser adquiridas pelas comparações HSI definidas por omissão. Na Tabela 4.1 podem ser visualizados os filtros de cor HSI criados nesta implementação, de acordo com as condições do nosso ambiente controlado. Os valores referidos nesta Nome Tom (H mínimo) Tom (H máximo) Saturação (S mínimo) Saturação (S máximo) Intensidade (I mínimo) Intensidade (I máximo) Vermelho Azul Claro Azul escuro Verde Amarelo Laranja Bege Tabela 4.1: Valores de Tom (H), Saturação (S) e Intensidade (I) definidos para cada cor, dado um ambiente controlado. 38

63 tabela são os utilizados durante as capturas no Laboratório Lourenço Fernandes, uma sala equipada para o desenvolvimento de projectos multimédia em que a iluminação é exclusivamente artificial. De realçar que os valores de tom estão considerados entre -128 e 127 e os valores de saturação e intensidade entre 0 e 255. O resultado final desta fase é a criação de uma forma para cada componente, que permite enviar informação importante para a fase de recuperação. Esta forma é construida segundo quatro etapas: (1) identificação das cores presentes e filtragem por comparação HSI; (2) remoção de outliers, utilizando um Statistical Outlier Removal Filter (Rusu et al., 2008); (3) criação de um concave hull; (4) reconstrução da forma, utilizando o concave hull (Rusu and Cousins, 2011) resultante. A primeira etapa utiliza a nuvem de pontos proveniente da segmentação e filtra cada cor, criando nuvens individuais para cada uma das cores identificadas. Posteriormente são removidos os outliers, isto é, pontos que têm aproximadamente a mesma cor, mas são vizinhos distantes (para cada nuvem individual). Utilizámos o Statistical Outlier Removal Filter que utiliza técnicas de análise estatística para remover volumes de pontos que sejam considerados como ruído. Este filtro é relevante porque o resultado proveniente da captura pode possuir pontos que são outliers devido a erros de rastreamento. O primeiro e segundo pontos estão representados no Algoritmo 1, onde é analisado que uma dada nuvem apenas é considerada armazenada se existir um número mínimo de pontos nessa nuvem. Foi criado um caso particular devido à semelhança entre a cor bege e o ruído capturado, que aumenta o número mínimo de pontos necessário para segmentar uma dada nuvem. O número mínimo foi determinado empiricamente e é uma solução particular para o nosso toy-problem, dadas as dimensões dos componentes capturados. Algorithm 1 Fase de segmentação - Comparação HSI e aplicação do Statistical Outlier Removal Filter. Data: nuvem de pontos, MIN_P OINT S_T O_SEGMENT necessário para limitar o número mínimo de pontos a segmentar para cada cor Result: nuvem de pontos segmentada for cada cor do identifica cluster HSI na nuvem, de acordo com a informação de cor actual; remove vizinhos distantes; if nuvem.numero_pontos() maior que MIN_P OINT S_T O_SEGMENT then calcula vector de distâncias; armazena informação sobre a nuvem (id, cor, centro, vector de distâncias, nuvem); end end Caso seja exista um número mínimo de pontos então é possível calcular um vector que representa uma dada nuvem, o vector de distâncias (Figura 4.6). Este vector tem como objectivo representar a orientação da nuvem e é calculado em duas fases: primeiro todos os pontos da nuvem são projectados com altura zero. Posteriormente são encontrados os pontos extremos da nuvem e é calculado o rácio entre distâncias de pontos extremos para determinar qual o maior vector que pode identificar a nuvem. Por fim, é guardada informação (meta-dados) sobre cada uma das sub-partes, nomeadamente a cor, o centro (posição no espaço) e o vector de distâncias de cada sub-parte. Esta informação será necessária 39

64 Figura 4.6: Cálculo do vector de distâncias. para a fase de reconstrução. De notar que a posição e a cor são guardadas facilmente no momento da comparação HSI, sendo que após a comparação se regista a cor encontrada e o centro do componente. Tendo a nuvem de pontos segmentada e sem ruído é possível criar um concave hull que representa a nuvem e que tem em consideração o preenchimento do espaço criado por componentes que não são totalmente adquiridos (por exemplo, devido a sobreposições). Finalmente, é construída uma forma que representa o componente, utilizando o concave hull. Para finalizar, além do output referido também é necessário guardar meta-dados relativos ao cálculo da orientação para cada sub-parte. A orientação é um processo não trivial que considera o vector de distâncias calculado anteriormente (Algoritmo 2). Algorithm 2 Fase de segmentação - Cálculo de orientações. procura uma nuvem que não seja quadrangular for cada nuvem do if quadrangular(nuvem) then calcula ângulos entre vector de distâncias actual e os outros; verifica a que eixo a nuvem é paralela; for cada nuvem do armazena informação sobre a nuvem (orientação), tendo em conta os ângulos e o eixo paralelo; end resultadoencontrado = true; end end Todos o componentes são quadrados, ângulo e orientação irrelevantes if resultadoencontrado then for cada nuvem do armazena informação sobre a nuvem (orientação); end end Para calcular a orientação dos vários componentes é necessário ter em consideração que um componente é quadrangular se o rácio entre a sua largura e comprimento for igual a um. No entanto, no âmbito deste trabalho é adicionado um limiar sob o qual este rácio pode ou não ser considerado. Este rácio foi determinado empiricamente e é uma solução particular para o nosso toy-problem, dadas as dimensões dos objectos capturados. É relevante considerar um limiar porque estamos a utilizar componentes capturados com um dispositivo de baixo custo e no qual existem ligeiros erros provocados pela fraca resolução e existência de ruído. Em primeiro lugar, é necessário escolher um componente não quadrangular através do qual os ou- 40

65 tros componentes existentes referenciem para calcular a sua orientação. Este componente é calculado considerando apenas dois eixos (a altura é descartada) e é aceite caso o rácio entre largura e comprimento seja aproximadamente igual. Após encontrar um componente não quadrangular, são calculados os ângulos entre este componente e os outros através da comparação dos vectores de distância. Em seguida procuramos saber a que eixo o componente seleccionado é paralelo, aplicando posteriormente a orientação correcta para cada estrutura com base nesta informação. Caso apenas existam componentes quadrangulares então os ângulos e orientação entre estes elementos é irrelevante. O processo é semelhante ao caso anterior, mas não é necessário realizar o cálculo entre ângulos. O leitor deve ter em consideração que a fase de segmentação poderia utilizar um dos algoritmos mencionados na Secção 2.2, de forma a auxiliar a identificação do conjunto de componentes que constituem o modelo 3D. Deste modo, seria possível detectar mais do que um componente da mesma cor existente no objecto físico. Em particular, podia ser utilizado o algoritmo Region Growing, já implementado na Point Cloud Library (PCL). No entanto, é necessário ter em consideração que a utilização deste algoritmo pode aumentar o tempo demorado pela solução. A segmentação produzida permite detectar cada uma das componentes pela cor, assumindo que componentes adjacentes têm que possuir cores distintas entre si. Utilizando a informação contida em cada uma das sub-partes conseguiremos proceder à identificação de cada componente individualmente. 4.4 Recuperação Após ter concluído a segmentação de cada um dos componentes (criando sub-partes) é necessário realizar a recuperação de cada um deles (Figura 4.7), permitindo a reconstrução do modelo. As fases de indexação e recuperação pressupõem a utilização de um dos algoritmos apresentados na Secção para o cálculo de descritores para cada uma das sub-partes. O descritor utilizado cumpre requisitos de rapidez e eficiência, permitindo a apresentação de resultados aproximadamente em tempo real. Inicialmente é criada uma interrogação com a sub-parte que pretendemos recuperar e é calculado o respectivo descritor (Secção 3.2.1), que representa um vector com a informação relativa ao modelo. Após este cálculo, é realizada uma interrogação ao repositório de componentes com este vector que o compara com os descritores dos componentes virtuais existentes no repositório, inseridos numa NB- Tree na fase de indexação (Secção 3.2.3). Os componentes virtuais utilizados são provenientes de modelos existentes na biblioteca LDraw. Ao serem retornados os resultados, estes podem ser apresentados de duas formas: ou é devolvido o componente virtual mais semelhante ou é devolvida uma lista de sugestões (k-nearest neighbors) que contém vários componentes virtuais e as respectivas similaridades à sub-parte interrogada (Secção 3.2.2). A última é utilizada para desambiguar, i.e, caso o algoritmo não tenha a certeza se um dado componente está correcto, é possível encontrar informação adicional nesta lista. Em particular, esta informação foi utilizada para criar uma lista de sugestões que 41

66 Figura 4.7: Processo de Recuperação de um objecto. permite auxiliar a correcção do modelo final, caso seja necessário. Existem vários algoritmos que permitem calcular descritores para os passos de indexação e recuperação de objectos 3D. O nosso trabalho precisou de um algoritmo eficiente para cumprir estes requisitos. O algoritmo seleccionado foi o Spherical harmonics (SHA) (Funkhouser et al., 2003), que decompõe um modelo 3D numa colecção de funções definidas por esferas concêntricas. Além deste algoritmo ser eficiente, os critérios de selecção basearam-se também na invariância à rotação e ao facto de ser amplamente utilizado. Os componentes virtuais foram indexados com recurso a um mecanismo de indexação, com o objectivo de reduzir o tempo de pesquisa de elementos e cumprir o requisito de garantir aproximadamente tempo real. Utilizámos uma NB-Tree (Fonseca and Jorge, 2003), que é uma estrutura multi-dimensional eficaz para armazenar grandes volumes de dados. Esta abordagem mapeia os pontos em 1D, utilizando a norma Euclidiana. Esta factor proporciona que o custo de pesquisa de elementos seja significativamente reduzido. Deste modo, a utilização de uma NB-Tree permitiu acelerar os processos de indexação e recuperação. 4.5 Reconstrução Para reconstruir um objecto físico e criar um modelo 3D digital são utilizados os resultados da fase de recuperação (Figura 4.8) e das fases antecedentes. Durante a captura, após obter a malha poligonal fornecida pelo Skanect são segmentadas as várias componentes recorrendo a informações de forma e de cor, obtendo uma sub-parte correspondente. Tal como referido na Secção 4.3, foi assumido como 42

67 Figura 4.8: Processo de reconstrução de um modelo 3D. pré-condição da solução proposta que componentes adjacentes existentes no objecto físico têm que possuir informação de cor distinta. Em seguida, para cada sub-parte identificada durante a segmentação é calculado um descritor com vista a identificar o componente encontrado. Após recuperar o resultado mais semelhante (best match selection) para todas as sub-partes do objecto físico é criado um modelo 3D. O modelo criado pressupõe relações entre componentes como a posição no espaço ou a orientação (provenientes da fase de segmentação). No entanto, temos que ter em consideração que as relações entre os componentes possuem erros devido ao ruído e ao facto do nosso algoritmo não lidar com colisões. Além da posição e orientação, também é aplicada a cor a cada uma das componentes virtuais recuperadas. Para o nosso toy-problem particular, o modelo 3D criado é armazenado num ficheiro (.dat) que respeita os formatos standard da biblioteca LDraw. Deste modo, é possível visualizar este modelo 3D através de ferramentas como o LDView 3 ou o protótipo LTouchIt. De notar que a criação do ficheiro em formato LDraw para cada modelo implicou uma mudança de coordenadas, além da imposição de um limiar que reestabelece as relações de aspecto. O valor definido para o limiar foi determinado experimentalmente. 4.6 Visualização e exploração Após realizar a reconstrução é relevante apresentar os resultados de forma interactiva. Em particular, consideramos o protótipo LTouchIt (Mendes, 2011) (Figura 4.9) que efectua a modelação de LEGO numa mesa multi-toque. Esta modelação é realizada através de interação pessoa-máquina consoante a manipulação de modelos 3D. Embora a interacção não seja o foco desta dissertação, foi interessante utilizar este trabalho para visualizar e explorar os modelos 3D reconstruídos. Por exemplo, é possível 3 LDView, visitado em Dezembro de

68 Figura 4.9: Protótipo LTouchIt adaptado à solução apresentada. visualizar os modelos através de várias vistas de forma a analisar a qualidade da reconstrução realizada. Esta interacção foi útil principalmente para testes com utilizadores. No entanto, este protótipo não cumpria alguns requisitos da nossa solução e tiveram que ser realizadas adaptações. Algumas das adaptações efectuadas dizem respeito à dimensão das peças utilizadas. Em primeiro lugar, este protótipo usa uma grelha de menores dimensões devido à utilização de peças LEGO em vez das DUPLO utilizadas na nossa solução. Pelas mesmas razões a base de dados utilizada neste trabalho não era a adequada às necessidades e foi necessário adaptá-la à nossa solução, contanto com um total de 70 peças DUPLO. No decorrer da dissertação e após uma avaliação cuidada concluiu-se que seria pertinente adicionar Figura 4.10: Exemplo de um componente identificado (à esquerda, S0) e respectiva lista de sugestões (à direita) com as sugestões S1, S2, S3 e S4. 44

69 uma lista de sugestões a este protótipo. A lista de sugestões possui resultados para cada componente virtual, dados os k-nearest neighbors obtidos durante a recuperação, sendo apresentados os quatro resultados mais semelhantes para substituir um componente caso este seja incorrectamente reconstruído (Figura 4.10). Na integração da lista de sugestões com o protótipo LTouchIT foram utilizados thumbnails para a representação visual de cada componente virtual. O gesto utilizado para fomentar a interacção na superfície multi-toque e poder aceder à lista de sugestões foi o toque no componente (pertencente ao modelo) que se pretende alterar. Utilizando este gesto a lista global de peças é substituída pela lista de sugestões. Ao tocar numa dada sugestão, a componente é substituída pela sugestão. Deste modo, é possível auxiliar a correcção do modelo caso nem todos os componentes estejam correctos. Em particular, para o toy-problem utilizado, esta funcionalidade foi útil dado que os componentes possuem reduzidas dimensões e são bastante semelhantes entre si. 4.7 Sumário Neste capítulo referimos as decisões tomadas para resolver os principais desafios da abordagem proposta, dado o problema que esta dissertação procura resolver. Foram explicadas as várias fases da arquitectura da solução, desde a captura recorrendo a um dispositivo de baixo custo até à visualização, integrada no projecto LTouchIt. A captura recorreu à utilização do software Skanect em conjunto com um Microsoft Kinect. Para que o rastreamento não fosse perdido foram adicionados objectos extra à cena de captura. Estes objectos foram filtrados com o objectivo de obter uma malha poligonal com o objecto digitalizado. A fase de segmentação permitiu separar o objecto digitalizado em sub-partes de acordo com a informação de cor. Em seguida, são procuradas correspondências entre as sub-partes identificadas e os componentes virtuais, existentes num repositório previamente criado com todas as possíveis componentes físicas a serem capturadas. As correspondências são identificadas com recurso ao cálculo de descritores, permitindo que os componentes virtuais sejam recuperados. Finalmente, é reconstruído o objecto físico através da criação de um modelo 3D. Embora a interacção não seja o foco deste trabalho, a visualização e exploração do modelo construído é realizada através da aplicação LTouchIt, que foi adaptada a esta solução. Foi adicionada uma funcionalidade ao protótipo, a lista de sugestões, que permite auxiliar a correcção de componentes do modelo no caso de nem todas terem sido reconstruídas com sucesso. Durante a fase de implementação desta solução foram sempre tidos em consideração os requisitos definidos inicialmente, principalmente conseguir apresentar uma solução com qualidade (hit rate) que estivesse disponível aproximadamente em tempo real. A abordagem aqui apresentada foi realizada durante várias iterações, tendo sido sujeita a avaliações ao longo do tempo que tornaram esta implementação possível. 45

70 46

71 Capítulo 5 Avaliação Este capítulo apresenta as avaliações efectuadas e os resultados obtidos pelo nosso algoritmo. Em particular, na Secção 5.2 são referidos em maior detalhe os tipos de componentes físicos utilizados no nosso toy-problem, bem como alguns exemplos de construções. A solução proposta nesta dissertação foi avaliada através três avaliações distintas: inicial, intermédia e final, referidas e discutidas na Secção 5.3, de acordo com as metodologia referida na Secção 5.1. Foram envolvidos utilizadores no processo de avaliação de forma a validar a solução proposta. A avaliação inicial analisou a dissertação até à fase de recuperação, sendo meramente objectiva e procurando atingir os requisitos definidos. A avaliação intermédia, além de estudar métricas objectivas, envolveu utilizadores para analisar os resultados. Tendo em conta os resultados obtidos na avaliação intermédia foram realizadas adaptações que permitiram propor uma solução final, validada através de uma avaliação final. 5.1 Metodologia de avaliação As avaliações propostas procuraram avaliar e validar a abordagem através de métricas objectivas e subjectivas, garantindo uma correspondência entre os requisitos definidos e os resultados obtidos. As métricas objectivas estiveram presentes em todo o processo, enquanto que as métricas subjectivas solicitaram a intervenção de utilizadores e foram relevantes nas avaliações intermédia e final Métricas Objectivas Relativamente às métricas objectivas, a abordagem foi avaliada de acordo com a taxa de sucesso, a verificação de cores, a exactidão da orientação e a eficiência do sistema. A taxa de sucesso ana- 47

72 lisa a qualidade (hit rate) dos modelos reconstruídos, a verificação de cores procura saber quantos componentes foram realmente reconstruídos e se estão de acordo com o objecto físico, a exactidão da orientação avalia se os componentes estão orientados correctamente e a eficiência mede quanto tempo demora a reconstrução de cada modelo. As várias construções de teste foram submetidas a avaliações objectivas que procuraram avaliar a solução, satisfazendo os principais desafios desta dissertação. Taxa de sucesso = número de componentes correctos número total de componentes (5.1) Os testes relativos à taxa de sucesso da reconstrução produzida foram avaliados com base na métrica apresentada em (5.1), que procura comparar de forma objectiva o número de componentes correctamente reconstruídos pelo número total de componentes. Esta métrica permite medir a qualidade do modelo reconstruído. Verificação de cores = número de componentes físicos número de componentes virtuais (5.2) A verificação de cores é uma métrica (5.2) que procura averiguar se as componentes foram ou não correctamente identificadas, ou seja, não interessa apenas o número de componentes correctos mas também se a cor identificada produziu um resultado que era o expectável, dado um objecto físico. Note que esta métrica pode ser inferior ou superior a 1.00, dependendo do número de componentes identificadas é inferior ou superior ao número de componentes físicos. Esta métrica é relevante tanto para compreender se todas as cores foram identificadas como se foram identificadas mais cores do que o espectável. Uma aplicação prática é compreender se o ruído existente na cena adquirida teve impacto no modelo final. Exactidão da Orientação = orientação do componente físico orientação do componente virtual (5.3) Além da taxa de sucesso e da verificação de cores dos vários componentes também a orientação dos mesmos é relevante para o resultado final. A métrica (5.3) representa a exactidão relativa à orientação de cada componente no modelo 3D, i.e, a percentagem de componentes que estão correctamente orientados em cada interrogação. Para a orientação estar correcta o componente físico que pertence ao objecto têm que ter a mesma orientação que o componente virtual no modelo 3D. Para terminar as métricas objectivas, consideramos o tempo necessário para efectuar a reconstrução de um objecto físico, avaliando a sua eficiência. Uma parte relevante para diminuir o tempo total de reconstrução é a recuperação de cada uma das componentes, pelo que foi crucial a selecção e avaliação de um descritor capaz de garantir uma razão qualidade-tempo aceitável e que permitiu reconstruir um objecto aproximadamente em tempo real. Deste modo, as métricas objectivas tiveram principal impacto tanto nas avaliações inicial e intermédia, como na comparação entre algoritmos de indexação e recuperação de forma a avaliar qual o descritor mais adequado. 48

73 5.1.2 Métricas Subjectivas Foram realizadas análises com utilizadores segundo métricas subjectivas, presentes nas avaliações intermédia e final. Estas análises procuraram saber qual a aceitação deste paradigma por parte dos inquiridos em termos de qualidade. Estas avaliações utilizaram uma escala de Likert e, dada a apresentação de alguns modelos reconstruídos, foi solicitada a avaliação correspondente entre muito bom e muito insuficiente. Esta avaliação merece ser considerada dado que, embora a recuperação das várias peças que constituem o modelo possam não estar totalmente correctas, a sugestão apresentada pelo algoritmo pode estar próxima do que seria expectável. Em particular, uma situação em que nem todas as peças foram reconstruídas correctamente está representada na Figura 5.1. Neste caso, uma abordagem objectiva encontraria um objecto composto por quatro componentes em que duas estão incorrectas e, portanto, uma taxa de sucesso de 50%. No entanto, numa abordagem subjectiva realizada por utilizadores procurámos avaliar até que ponto este resultado pode ser considerado aceitável ou inaceitável, podendo ou não ser considerado válido. Durante a avaliação final procurámos também compreender e avaliar a interacção do utilizador com um dispositivo com características e dimensões do Microsoft Kinect (ou semelhante). Por outras palavras, pretendeu-se avaliar se seria ou não fácil manipular e deslocar este dispositivo. Consideramos esta avaliação necessária dado que o utilizador comum está habituado a utilizar este digitalizador para funções que não são capturar objectos 3D. Procurámos também saber qual a aceitação no seu dia-a-dia deste dispositivo (ou semelhante). Ainda no decorrer da captura, procurámos compreender qual o impacto dos erros de tracking apresentados pelo software Skanect. Também foi relevante perceber quais os factores que, no entender do utilizador, podiam influenciar mais a validação de um dado resultado. Por exemplo, se seria mais importante ter taxa de sucesso mais elevada ou um menor tempo de apresentação de resultados. Solicitou-se ainda que o utilizador classificasse desde influência reduzida a influência elevada (ou não se aplica ), alguns factores que podem influenciar os resultados (por exemplo, taxa de sucesso, orientação, etc). O objectivo deste teste foi compreender e confirmar quais os principais factores que influenciam o resultado. (a) Objecto físico. (b) Modelo reconstruído. Figura 5.1: Exemplo de reconstrução de um objecto em que nem todas as componentes foram correctamente reconstruídas. 49

74 Combinámos os resultados obtidos pelas abordagens objectivas e subjectivas com o objectivo de avaliar a utilidade da solução. Caso esta solução seja validada para o caso particular da reconstrução de modelos LEGO (toy-problem), estamos aptos para sugerir a sua aplicação a outros domínios. 5.2 Objectos digitalizados Como referido anteriormente, esta dissertação teve como contexto de demonstração um toy-problem. A utilização de blocos LEGO prendeu-se com o facto destes proporcionarem desafios próximos de aplicações reais. Uma das principais vantagens da utilização destes objectos é ser mais fácil aceder tanto a componentes físicos (peças reais DUPLO ) como a componentes virtuais (modelos existentes na biblioteca LDraw, peças virtuais). Os objectos físicos a serem digitalizados foram construídos a partir de peças reais e os modelos 3D foram construídos através de peças virtuais Peças reais Nas nossas demonstrações recorremos a vários tipos de peças DUPLO e procurámos categorizar as mesmas por diversos tipos: blocos standard, blocos adicionais, peças curvas e peças complexas, conforme apresentado detalhadamente no Apêndice A. As dimensões das peças consideradas variaram entre 1.5 a 14.5 centímetros no que diz respeito à altura e 3 a 27 centímetros no que diz respeito ao comprimento e largura. Foi tido em consideração que grande parte dos objectos capturados possuem componentes físicos de pequenas dimensões e que este factor poderia ter impacto na solução final, dadas as características de resolução do dispositivo de captura Peças virtuais O facto da biblioteca LDraw possuir modelos de peças criados por utilizadores entusiastas por LEGO fez com que tivéssemos suspeitado tanto da qualidade de cada modelo como da quantidade de modelos existentes e passíveis de serem utilizados neste trabalho. Para resolver estes problemas realizámos uma correcção de erros nos vários modelos (nomeadamente, das normais). Foram também construídos mais 37 modelos de acordo com o formato standard da biblioteca. Foi desenvolvido um conversor de peças com o formato LDraw para Object File Format (OFF), dado que formato aberto LDraw não é suficiente para estabelecer uma correspondência entre componentes e modelos existentes no repositório. Os componentes foram adicionados ao repositório após serem convertidos, contando com um total de 70 componentes virtuais. De notar que cada um destes componentes é passível de ser capturado para posterior identificação. 50

75 5.2.3 Objectos físicos Foram criados diversos objectos físicos utilizando este toy-problem, detalhados no Apêndice B. Cada construção de objecto físico foi composto por duas ou mais componentes físicas DUPLO, cujo componente virtual tem obrigatoriamente que existir no repositório. No decorrer da criação dos vários objectos físicos a reconstruir segundo a nossa abordagem, considerámos importante possuir exemplos das seguintes construções: (1) construções que utilizam exclusivamente blocos standard; (2) construções com diferentes tipos de peças que possuem diferentes cores. No primeiro caso a reconstrução recorre apenas à utilização de blocos standard, tal como os utilizados nos projectos (Miller et al., 2012; Gupta et al., 2012). Nestes projectos foi utilizada uma abordagem de representação diferente da utilizada na nossa solução, pelo que a sua avaliação e consequente comparação com estes projectos é relevante. No segundo caso recorremos a diferentes tipos de peças que possuem cores distintas entre si. O objectivo principal foi avaliar a qualidade da segmentação baseada na informação de cor que é capturada com o Microsoft Kinect. De realçar que também seria interessante em trabalho futuro realizar construções que não só têm diferentes tipos de peças como também existem algumas peças da mesma cor, para peças não adjacentes. Para avaliar a arquitectura de solução realizámos três avaliações: inicial, intermédia e final. Para as avaliações inicial e intermédia foram construídos dez objectos físicos (Apêndice B, Figuras B.1 e B.2) passíveis de ser avaliados (queries), com base nas categorias e exemplos de construções referidos. Nestas construções o número de componentes por interrogação variou entre os dois e os cinco blocos DUPLO. Para a avaliação final foram construídos dois objectos físicos (Apêndice B, Figura B.3), cada um com quatro componentes diferentes. É importante referir que foram tidos em consideração dois aspectos: (1) a cor de cada bloco, garantindo que dois componentes adjacentes não podem ter a mesma cor; (2) exclusão de componentes transparentes ou brilhantes, devido às limitações impostas pelo dispositivo de captura. 5.3 Discussão de resultados Para obter uma reconstrução fidedigna é necessário que todas as fases sejam o mais eficientes possível, com o objectivo de validar a abordagem proposta. Em particular, os componentes virtuais recuperados têm que corresponder aos componentes físicos, adquiridos durante a fase de captura. As três situações de avaliação procuraram analisar métricas objectivas e subjectivas, garantindo uma solução final que procura cumprir os requisitos mencionados. No entanto, os resultados obtidos nem sempre garantem uma reconstrução fiel do objecto adquirido. A avaliação inicial contou apenas com métricas objectivas, dado que nem toda a solução estava implementada. A avaliação intermédia procurou avaliar mediante métricas objectivas e subjectivas. A avaliação final garantiu a implementação total da solução e teve como principal foco as métricas 51

76 subjectivas Avaliação inicial A avaliação inicial procurou avaliar as fases de captura, segmentação e recuperação numa fase inicial da solução. De realçar que nesta avaliação ainda não estava implementada a filtragem realizada após a captura do objecto físico. Como resultado, os objectos foram filtrados recorrendo à utilização da ferramenta MeshLab. O mecanismo de indexação e recuperação de modelos através NB-Tree já estava implementado, proporcionando uma avaliação em termos de eficiência. Esta avaliação utilizou apenas métricas objectivas de taxa de sucesso e eficiência, com o objectivo de validar dez interrogações (queries). Foi realizada apenas uma interrogação para cada um dos objectos físicos adquiridos. Foram utilizados blocos standard, blocos adicionais e peças curvas conforme definido no Apêndice A. Concluímos que em 22% (em média) das vezes (Figura 5.2, a vermelho) esta abordagem sugeriu o componente virtual correcto na primeira sugestão apresentada. Em particular, observámos que na maior parte das vezes peças do tipo plate eram confundidas com peças do tipo brick, que possuem ligeiras diferenças de altura (Figura 5.3(a)). Além disso, a resolução do dispositivo de captura e as dimensões das componentes físicas limitaram o sucesso dos resultados recuperados. Tendo em conta estes factores, considerámos relevante avaliar também os primeiros cinco resultados retornados da fase de recuperação e concluímos que a resposta correcta estava presente 75% (em média) das vezes (Figura 5.2, a azul). Este facto permitiu chegar à conclusão importante de considerar estes resultados numa fase posterior, sugerindo os outros quatro resultados mais semelhantes caso o componente virtual obtido não estivesse correcto na primeira reconstrução. Concluímos que os resultados obtidos dependem em grande parte do repositório utilizado (no nosso caso particular, um repositório com 70 peças). Em primeiro lugar, as abordagens referidas no trabalho relacionado consideram muito menos peças (1 a 3), que claramente facilita o processo de recuperação de componentes de forma eficiente. Em segundo lugar, os modelos existentes no nosso repositório são bastante semelhantes entre si, não sendo trivial o mapeamento entre os componentes físicos capturados e os componentes virtuais existentes no repositório. Na Figura 5.3 estão representados dois exemplos onde é possível perceber o impacto das semelhanças entre modelos. Por um lado existiram erros relacionados com altura, i.e, duas peças onde a única diferença entre elas é a altura. Estes erros estão directamente relacionados com a baixa resolução do dispositivo de captura, acabando por confundir componentes com alturas ligeiramente diferentes. Por outro lado, erros devido a duas peças possuírem um rácio comprimento/largura com valor aproximadamente igual. Este último deve-se ao facto do descritor SHA ser invariante a transformações (nomeadamente, de escala). Na segmentação de objectos pela cor existiram alguns problemas na determinação dos intervalos HSI para cada cor. No entanto, foi claro que a câmara RGB existente no dispositivo de captura é suficiente para ceder informação de cor relevante e passível de ser processada. Os principais factores que limitam 52

77 Figura 5.2: Testes objectivos: taxa de sucesso obtida para cada interrogação, considerando tanto o primeiro resultado (a vermelho) como os cinco primeiros resultados (a azul) para cada sub-parte. (a) Componentes semelhantes em altura. (b) Componentes semelhantes no rácio comprimento/largura. Figura 5.3: Alguns erros comuns encontrados em componentes semelhantes. 53

78 a segmentação são as condições de iluminação da cena e o ruído, pelo que as diversas capturas devem ser realizadas em ambientes controlados. Além dos factores referidos anteriormente, o toy-problem utilizado possui a dificuldade adicional de permitir que vários componentes possam estar a impedir a visualização de outros componentes. Deste modo, os componentes segmentados vão possuir erros consideráveis. Para tentar providenciar uma solução o mais fiável possível, procurámos ultrapassar este problema através da criação de um concave hull que preenche o espaço vazio e procura determinar de forma precisa a área de cada sub-parte. No que diz respeito à eficiência da abordagem, foi considerado o tempo total de indexação e o tempo total de recuperação de cada componente. Embora o tempo de indexação seja realizado offline, foi relevante compreender que o tempo total de indexação dos modelos no repositório é relativamente insignificante (menos de dois minutos). Este resultado apenas foi possível pela utilizações do descritor SHA. Relativamente ao tempo médio para realizar a recuperação de um componente, concluímos que só se tornaria limitativo para a nossa solução caso existisse um número muito elevado de componentes na cena adquirida. No entanto, nas interrogações realizadas o tempo de recuperação não compromete os nossos requisitos iniciais (cerca de sete segundos para recuperar três componentes segmentados). Nesta avaliação utilizámos um computador equipado com um processador de 2.20 Ghz, 4GB de RAM e com um sistema operativo Windows 7. Esta avaliação permitiu compreender que seria possível obter um resultado final que garantisse os requisitos qualidade-tempo pretendidos. No entanto, tendo em consideração os problemas identificados, foi perceptível que a validade da reconstrução depende da qualidade da captura, da correcta segmentação por cor e do repositório de componentes utilizado Avaliação intermédia Esta avaliação foi realizada após correcção de alguns problemas identificados na avaliação inicial. Nomeadamente, ao nível da segmentação foram corrigidos os intervalos HSI para cada cor. Nesta avaliação já foi possível ter toda a solução implementada, desde a fase de captura até à visualização com o protótipo LTouchIt. Na avaliação intermédia foram considerados testes segundo métricas objectivas e subjectivas. Nos testes objectivos procurámos avaliar a taxa de sucesso, a verificação de cores, a exactidão da orientação e o tempo. Por outro lado, testes subjectivos permitiram ter feedback por parte de utilizadores sobre a solução apresentada. Para estes testes voltaram a ser utilizadas dez construções no âmbito do mesmo toy-problem mas foram parcialmente alteradas em comparação com a avaliação inicial, tendo sido alterados alguns componentes físicos. Esta alteração deveu-se não apenas à complexidade dos modelos mas também ao facto da segmentação HSI ainda não contemplar mais de cinco cores distintas. Foram utilizados blocos standard, blocos adicionais e peças curvas conforme definido no Apêndice A. Para o 54

79 Figura 5.4: Testes objectivos: taxa de sucesso obtida para cada interrogação, considerando tanto o primeiro resultado (a vermelho) como os cinco primeiros resultados (a azul) para cada sub-parte. repositório de componentes virtuais voltámos a utilizar 70 peças distintas entre si. Relativamente aos resultados dos testes objectivos o componente virtual foi identificado 33% (em média) das vezes na primeira sugestão e 72% (em média) das vezes nas primeiras cinco sugestões. Os resultados detalhados referentes à taxa de sucesso estão apresentados na Figura 5.4. De salientar que é realizada apenas uma interrogação para cada um dos objectos físicos adquiridos. Embora a primeira sugestão tenha identificado correctamente o componente mais vezes (em média) em comparação com a avaliação inicial, este resultado deve-se principalmente à filtragem que foi integrada no algoritmo. Além disso, a remoção de ruído proveniente das reflexões existentes na cena também contribuiu para uma solução mais precisa. Em relação às cinco primeiras sugestões, a diferença na taxa de sucesso alcançada é pouco relevante quando comparada com a avaliação anterior, devendo-se apenas à facilidade ou dificuldade da solução proposta em identificar as novas componentes adicionadas à cena. Erros relativos a semelhanças entre a altura de duas peças e erros relativos a peças semelhantes no rácio comprimento/largura voltaram a ser visíveis. A verificação de cores permitiu compreender que existiram alguns componentes virtuais que foram adicionados aos vários modelos. As dez interrogações possuíram um total de 32 componentes físicas e foram detectadas 35 componentes físicas, 3 das quais identificadas com a cor bege. Pela métrica 5.2, o valor obtido foi de 0,92. Este resultado deve-se ao facto dos valores HSI entre a cor bege e o ruído serem muito semelhantes e o bege ter sido confundindo como ruído adquirido durante a fase de captura. Relativamente à exactidão da orientação, em 93% dos casos a orientação calculada para os componentes virtuais estava de acordo com os componentes físicos. Os casos em que a orientação não foi bem calculada devem-se a situações em que existiram sobreposições de componentes. 55

80 As métricas temporais permitiram analisar a solução num estado global, dado que já todas as fases estavam implementadas. Neste caso, os resultados de uma construção completa contemplam o tempo de captura do objecto e o tempo de processamento do algoritmo. Em primeiro lugar, a captura de um objecto 3D consiste em movimentar um dispositivo de baixa resolução (no nosso caso, uma câmara Microsoft Kinect ) à volta de uma cena composta por componentes físicos (no nosso caso peças DUPLO ) e por um conjunto de objectos extra. O tempo demorado por esta abordagem foi aproximadamente 25 segundos. Registaram-se alguns erros durante a aquisição com o software Skanect principalmente devido a problemas de registo de vistas. Estes problemas devem-se ao facto de ser complicado não perder o rastreamento com objectos de reduzidas dimensões (a peça mais pequena que foi capturada tinha 1.5 centímetros de altura e 3 centímetros de comprimento e largura). De realçar também a fraca resolução do dispositivo de captura (640 x 480 pixeis a 30 frames por segundo). Durante as capturas a distância ao objecto físico foi variando entre os 60 centímetros e os 1.2 metros. A captura foi reiniciada sempre que ocorreram problemas. Relativamente ao tempo de processamento do algoritmo, que implica as diversas fases desde a captura do objecto até à visualização com o protótipo LTouchIt, garantimos aproximadamente 11 segundos (em média). Nesta avaliação utilizámos um computador equipado com um processador de 4 núcleos a 2.80 Ghz, 4GB de RAM e com um sistema operativo Windows 7. Este resultado deve-se principalmente ao facto de utilizarmos um descritor extremamente eficiente. O tempo alcançado permite afirmar que esta solução é apresentada aproximadamente em tempo real, cumprindo um dos principais requisitos da abordagem proposta por esta dissertação. Os testes subjectivos foram realizados através de um formulário online, que adaptou e integrou a plataforma Google Forms para avaliar resultados de forma eficiente. Foram apresentados dez objectos físícos (Apêndice B, Figura B.2) e os correspondentes modelos reconstruídos para cada uma das interrogações propostas, sendo utilizados os mesmos resultados da solução dos testes objectivos. Para cada um dos objectos procurámos que os utilizadores avaliassem segundo uma escala de Likert, de muito insuficiente a muito bom. Também procurámos saber qual a aceitação deste paradigma por parte dos utilizadores, bem como averiguar se seria importante ter uma lista de sugestões (com outros componentes virtuais) caso um dado componente esteja incorrecto. Esta metodologia permitiu obter 80 respostas, representando mais do que conseguiríamos fazer através de uma avaliação presencial. O questionário realizado para a avaliação intermédia pode ser visualizado no Apêndice C. Os resultados obtidos no questionário estão sintetizados no Apêndice D. Decidimos apresentar o modelo reconstituído em vez dos resultados individuais para os vários componentes para garantir que as relações entre os componentes eram consideradas durante a avaliação. No domínio do nosso toy-problem, existiu a preocupação de utilizar peças de diferentes tipos e dimensões. Os resultados das interrogações estão representados na Figura 5.5. Em média, 58,25% dos modelos reconstruídos tiveram apreciação igual ou superior a Suficiente por parte dos inquiridos (Figura 5.6). Dadas as restrições de resolução do dispositivo de captura e a dimensão e número de componentes que podem ser adquiridos, este é um resultado extremamente aceitável, principalmente quando 56

81 Percentagem de pessoas Número de pessoas Figura 5.5: Testes subjectivos: resultados dos testes online realizados para dez interrogações distintas e respondidos por 80 pessoas. comparado com os testes objectivos. Os utilizadores apontaram como principal problema desta abordagem o alinhamento dos vários componentes virtuais, afirmando que "o alinhamento [entre os componentes] ficou quase sempre defeituoso, (...) o que afecta bastante o modelo construído (talvez até mais do que a falsa identificação das peças)." Por exemplo, na primeira interrogação, embora todos os componentes tenham sido identificados correctamente (taxa de sucesso de 100% nos testes objectivos, para três componentes), apenas 50% considerou este resultado Bom ou Muito Bom, justificando o alinhamento dos componentes virtuais somo principal razão. Também foi referido que "alguns encaixes são fisicamente impossíveis", existindo 100% 90% 80% 70% 60% % 40% 30% 20% 10% 00% 11% Muito Insuficiente 30 31% 34% 20 20% % Q1 Insuficiente Suficiente Bom Muito Bom Q2 Figura 5.6: Testes subjectivos: média de apreciações considerando as dez interrogações. 57

82 sobreposições entre componentes virtuais. No entanto, o problema de existirem colisões está fora do âmbito desta dissertação. Quanto à taxa de sucesso alcançada, é referido que "alguns dos resultados estão bastante próximos da realidade, falhando apenas o tamanho das peças", são referidos os problemas de escala mas também que "com melhor reconhecimento de peças o resultado obtido seria melhor". A maior parte das pessoas refere que os resultados da reconstrução são, em geral, bons ou aceitáveis, falhando "apenas nalguns casos mais ambíguos". No entanto alguns afirmam que "não foram muito coerentes ou fieis à realidade" ou pouco "fidedigna para a maioria das utilizações práticas da tecnologia". Alguns utilizadores mencionam a baixa resolução da câmara como um aspecto a considerar e que seria interessante testar esta abordagem com uma câmara de alta resolução. Referiu-se também que a solução "parece forçar o teste à peça arredondada" embora algumas peças complicadas tenham sido reconhecidas com facilidade. O problema do arredondamento (Figura 5.7) de componentes é decorrente da resolução da câmara, sendo visível esta limitação através da malha poligonal produzida após a captura. Os pinos existentes nas peças DUPLO também não são perceptíveis. Embora alguns componentes não tivessem a orientação bem calculada devido a oclusões ou erros de cálculo por existirem poucos pontos na nuvem de pontos adquirida, a orientação muito raramente foi mencionada como um problema. Problemas relacionados com a identificação das cores foram apenas mencionados na interrogação 7 em que foi detectado um componente a mais, criado devido ao ruído e reflexões existentes na cena. Uma pista de superação para este problema passa por aumentar o limiar definido para identificação de peças de cor bege, de forma a não serem confundidas com ruído. A possibilidade de ter uma lista de sugestões com resultados sugeridos pela recuperação, caso um dado componente tivesse sido mal reconstruído, foi referida como muito importante dado que contribuiria para melhorar a taxa de sucesso e alinhamento de componentes virtuais do modelo, permitindo "a correcção imediata de alguns erros". Também foi sugerido que o sistema pudesse aprender com base nas sugestões escolhidas. Foi mencionado que seria importante também garantir a interacção com o modelo dado que proporcionaria mais feedback para o utilizador. Figura 5.7: Problema de arredondamento: algumas peças são arredondadas durante a fase de captura e a peça identificada no final é incorrecta. 58

83 5.3.3 Avaliação final A avaliação final contemplou a correcção de problemas referidos na avaliação intermédia que estivessem de acordo com o âmbito desta dissertação. Em primeiro lugar, foram corrigidos alguns problemas ao nível do alinhamento entre componentes virtuais. Em segundo lugar, a verificação de cores foi melhorada, tendo sido aumentado o limiar para distinguir ruído da cor bege e adaptados os intervalos HSI para a condições de luminosidade do laboratório Lourenço Fernandes, situado nas instalações IST-Taguspark. De salientar que o laboratório em questão não possui qualquer iluminação natural e que a captura dos objectos físicos foi efectuada por baixo de um foco de luz artificial. Por fim, foi implementada uma solução que integra no protótipo LTouchIt as cinco primeiras sugestões para cada sub-parte, no caso de o resultado encontrado não estar correcto. Embora tenham sido avaliadas métricas objectivas, estes testes tiveram como principal foco a interacção com utilizadores. As métricas subjectivas procuraram verificar qual a aceitação por parte do utilizador comum de um paradigma que utiliza um digitalizador de baixo custo para capturar objectos 3D. Para cada objecto capturado foram realizadas reconstruções segmentadas, de acordo com a abordagem proposta. Por fim, procurámos avaliar a facilidade de apresentação e manipulação dos resultados obtidos através de uma mesa multi-toque. Para tal, encontrámos um grupo de acompanhamento composto por 20 utilizadores com idades compreendidas entre os 18 e os 35 anos. Identificámos 7 pessoas do sexo feminino e 13 do sexo masculino, onde 70% dos inquiridos tinha completado a licenciatura. Antes de iniciar a experiência foi solicitado o cumprimento de um termo de consentimento relativo aos registos de áudio e vídeo. No caso do utilizador aceitar as condições propostas, foi pedido que no início do teste construísse um objecto (Figura F.1) de dois que iriam ser reconstuídos, utilizando peças DUPLO. À semelhança das avaliações inicial e intermédia não foram utilizadas peças complexas (Apêndice A) devido às limitações de captura identificadas. Foram explicadas sucintamente as três fases do teste: (1) construção do objecto, (2) captura, (3) visualização e manipulação utilizando o protótipo LTouchIt. Cada utilizador realizou duas capturas (Figura 5.8), mediante dois objectos físicos distintos. Foi utilizado um Microsoft Kinect como dispositivo de captura e o software Skanect para registar as vistas e definir uma bounding box. Foram consideradas medidas temporais que procuraram saber quanto tempo um utilizador demora a capturar um objecto 3D. (a) Construção 1. (b) Construção 2. Figura 5.8: Testes subjectivos: construções realizadas na avaliação final. 59

84 Tempo (segundos) Figura 5.9: Testes subjectivos: captura efectuada por parte dos utilizadores. Após concluir uma dada captura foi apresentado o resultado produzido pelo Skanect e o utilizador decidiu se aceitava ou não esse resultado. Caso o resultado fosse aceite, procedemos à computação da solução de reconstrução. Caso contrário, o utilizador pôde repetir a experiência. Situações em que a experiência foi repetida estão relacionadas com capturas mal efectuadas (nomeadamente, buracos existentes na malha ou demasiadas reflexões na cena adquirida) ou situações em que o rastreamento foi perdido, por exemplo, pela movimentação rápida do dispositivo de captura. Concluiu-se que, em média, foram demorados 39,5 segundos para realizar uma captura. Este valor representa o tempo médio que as pessoas demoraram a movimentar o digitalizador à volta do objecto físico (Figura 5.9). Os resultados para as duas interrogações efectuadas estão representados em detalhe na Figura 5.10, onde é possível visualizar a dispersão de resultados. Dado este resultado, concluímos que a nossa estimativa de 25 segundos está ligeiramente abaixo do valor real demorado por utilizadores comuns. No entanto, é relevante mencionar que o tempo demorado na segunda captura diminuiu ligeiramente Captura 1 Captura 2 Figura 5.10: Testes subjectivos: tempo de captura obtido para as duas interrogações. Estão representados, para cada uma das capturas, os mínimos e máximos, a mediana e a dispersão dos resultados. 60

85 Tempo (minutos) Após ter sido capturado o primeiro objecto, o utilizador foi introduzido ao ambiente LTouchIt com o objectivo de aprender os principais gestos e acções a realizar. Após ter sido dado algum tempo para treino (aproximadamente dois minutos) foi apresentada a solução produzida pela reconstrução proposta neste documento. A reconstrução, para cada objecto, demorou em média 5 segundos. Nesta avaliação utilizámos um computador equipado com um processador de 8 núcleos a 3.50 Ghz, 8GB de RAM e com um sistema operativo Windows 7. No caso de nem todos estarem correctos, foi averiguado quanto tempo um utilizador demora para corrigir um ou mais componentes de um dado modelo 3D. Foi fornecida uma lista de sugestões com os quatro resultados mais semelhantes cedidos na fase de recuperação (para cada componente). Foi solicitado que o modelo fosse alterado apenas com base na lista de sugestões e, no caso do componente pretendido não existir nessa lista, se utilizasse o que fosse mais próximo (dentro dos fornecidos na lista ou mantendo o best match selection). Estes resultados estão relatados na Figura 5.11 e concluímos que, em média, um utilizador demora aproximadamente 5 minutos a modificar um objecto. O tempo demorado é justificado pelo facto de todas as pessoas envolvidas terem procurado corrigir o modelo de forma perfeccionista. No entanto, devemos ter em consideração que esta foi a primeira vez que estas pessoas interagiram com o sistema e que existiram alguns problemas relacionados com a calibração dos sensores de captura do toque na superfície. Concluímos ainda que talvez os dois minutos cedidos para treino não tenham sido suficientes. Foi avaliado o nível de experiência dos utilizadores ao utilizar a mesa multi-toque. É relevante referir que apenas um dos intervenientes teve contacto com este sistema anteriormente, mas ainda na versão original LTouchIt. Três pessoas já tinham tido alguma experiência em mesas multi-toque, mas apenas no decorrer de testes para outras dissertações. Avaliámos o nível da experiência para cada utilizador de acordo com cinco níveis: (1) impossível realizar a tarefa; (2) possível realizar a tarefa mas ocorreram bastantes erros e problemas com a detecção de toque e manipulação de componentes virtuais; Correcção 1 Correcção 2 Figura 5.11: Testes subjectivos: tempo demorado para corrigir o objecto, para as duas interrogações. Estão representados, para cada uma das reconstruções, os mínimos e máximos, a mediana e a dispersão dos resultados. 61

86 Número de pessoas Nível 1 Nível 2 Nível 3 Nível 4 Nível 5 Reconstrução 1 Reconstrução 2 Figura 5.12: Nível de experiência do grupo de utilizadores. Foram avaliados cinco níveis em que 1 significa que a tarefa não foi concluída e 5 significa que a tarefa foi concluída com sucesso e sem quaisquer problemas. (3) tarefa completada mas ocorreram alguns problemas com a detecção de toque e manipulação de componentes virtuais; (4) tarefa concluída com sucesso e praticamente não existiram problemas; e (5) tarefa concluída com sucesso. Os resultados desta avaliação estão sintetizados na Figura Notese que, como expectável, existiu alguma evolução da primeira (média 3,6) reconstrução para a segunda (média 3,9). Além dos problemas relacionados com a calibração dos sensores, é relevante mencionar que pessoas com as mãos mais pequenas tiveram mais dificuldades em manipular componentes virtuais. Este problema decorreu essencialmente devido à palma da mão tocar em locais não desejados do cenário virtual. Os resultados relativos à taxa de sucesso obtida estão relatados na Figura 5.13, onde são comparadas as taxas de sucesso antes (média 20%) e depois da correcção utilizando a lista de sugestões (média 65%). É importante referir que embora tenha existido um aumento circunstancial, nem sempre os utilizadores seleccionaram a opção correcta na lista de sugestões (Figura 5.14, número 3). Este problema deve-se tanto ao facto de alguns componentes não estarem à escala, como a acidentes relativos ao facto do gesto utilizado poder não ser o mais apropriado. O gesto considerado implicava que para corrigir um dado componente o utilizador seleccionasse o componente (Figura 5.14, número 1) em causa e surgisse uma lista de sugestões com os quatro componentes mais semelhantes. No entanto, quando essa lista surge, apenas é necessário um toque para seleccionar a peça correcta. Algumas vezes, enquanto realizavam a acção de navegar na lista de sugestões seleccionaram por acidente o componente errado. Uma das sugestões apresentadas passa por aumentar a largura da barra de navegação (Figura 5.14, número 2). Alguns utilizadores salientaram que não apresentar a descrição dos componentes na lista de sugestões fez com que perdessem mais tempo a procurar o componente desejado. Outra solução passa por em vez de apresentar thumbnails para cada modelo na lista de sugestões, apresentar os modelos a girar em torno de si próprios (transformações de rotação). Ainda no âmbito 62

87 Taxa de sucesso 1 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0 Sem lista de sugestões Com lista de sugestões Reconstrução 1 Reconstrução 2 Figura 5.13: Testes objectivos: taxa de sucesso relativa às duas reconstruções, antes e após a utilização da lista de sugestões. Estes resultados são baseados nas capturas e correcções efectuadas pelos utilizadores. da interacção com a mesa multi-toque e da utilização da barra de navegação, assim que o utilizador seleccionava uma área fora da lista ou dos componentes existentes, era apresentada a lista de peças global (com os 70 modelos). Ocorreram situações em que as pessoas se sentiram perdidas por não perceber que tinham saído da lista de sugestões. Mais uma vez o aumento do espaço destinado à barra de navegação ajudaria a diminuir este problema. Figura 5.14: Visualização com o protótipo LTouchIt: (1) Componente seleccionado; (2) Barra de navegação; (3) Lista de sugestões para o componente indicado em 1. 63

88 No fim da experiência foi solicitado o preenchimento de um questionário que procurou averiguar se o utilizador já tinha tido alguma experiência com este tipo de dispositivos e qual a facilidade de interacção com o mesmo. Procurámos compreender qual a aceitação da abordagem após as capturas efectuadas e quais os factores mais importantes para a validação de resultados. Também foi inquirido se a utilização de uma mesa multi-toque facilitava ou não a manipulação do resultado obtido, bem como a utilidade de apresentar a lista de sugestões. No Apêndice E pode ser visualizado o questionário efectuado durante a avaliação final. Os resultados relativos a este questionário são apresentados no Apêndice F. Relativamente à experiência realizada, apenas duas pessoas consideram que a utilização do dispositivo de captura desconfortável e que é difícil deslocar o mesmo. 80% dos inquiridos nunca tinha utilizado o Microsoft Kinect para captura de objectos e 70% afirmou que gostaria de utilizar este dispositivo para este efeito. Em 60% das experiências o utilizador referiu que existiram problemas durante a aquisição com o software Skanect (por exemplo, o objecto adquirido conter buracos ou o rastreamento ser perdido). No entanto, 65% considerou que no resultado produzido pelo Skanect os componentes não estavam completamente explicítos ou o resultado não era fiel (Figura 5.15). A taxa de sucesso (95% considerou importante ou muito importante) e o alinhamento (75% considerou importante ou muito importante) voltaram a ser considerados como os factores mais importantes. Quando inquiridos sobre a qualidade dos dois modelos capturados, após poderem ser corrigidos, 85% considerou o primeiro modelo Bom ou Muito Bom. Para o segundo modelo os resultados foram de 60% nas categorias Bom ou Muito Bom. Estes resultados provam que a presença de uma lista de sugestões auxilia a correcção. 75% dos inquiridos considerou esta lista importante ou muito importante. 60% afirma que a utilização de uma mesa multi-toque foi relevante. No entanto, 30% afirma preferir outras formas de interacção (como interacção por rato ou smartphone). A visualização e exploração de objectos, correcção de alinhamentos e correcção de componentes (através da lista de sugestões) foram considerados como os principais pontos fortes da integração com o protótipo LTouchIt. Por fim, Figura 5.15: Exemplos de dois resultados propostos pelo Skanect, após captura. À esquerda uma captura em que não existiram problemas, e à direita, um captura em que surgiram alguns problemas (nomeadamente, buracos e reflexões). Note que em ambas as imagens foram removidos os objectos extra para facilitar a percepção. 64

89 90% afirma conseguir imaginar o trabalho desenvolvido aplicado a outros domínios como a indústria mecânica, eléctrica, saúde, arquitectura, construção civil e jogos educativos. 5.4 Sumário e Discussão crítica Neste capítulo foi explicado o processo de avaliação da solução proposta, de acordo com três protótipos: inicial, intermédio e final. Foram definidos os principais objectivos de cada protótipo de acordo com métricas objectivas e subjectivas. As avaliações efectuadas permitiram resolver problemas relacionados com a taxa de sucesso, verificação de cores, exatidão da orientação e tempo. Inicial Intermédia Final Final c/ lista sugestões Taxa de sucesso (%) 22% 33% 20% 65% Verificação de cores (%) N/A 92% 99% N/A Exatidão da orientação (%) N/A 93% 95% 100% Tempo total (segundos) N/A 11 segundos 5 segundos N/A Tabela 5.1: Comparação entre as várias avaliações em termos de métricas objectivas: taxa de sucesso, verificação de cores, exatidão da orientação e tempo demorado. Os resultados apresentados representam a média para cada uma das métricas. Através da análise da Tabela 5.1 podemos concluir que existiram melhorias ao longo dos vários protótipos, onde diversas condições foram testadas. A verificação de cores e a exactidão da orientação apenas tiveram impacto nas avaliações intermédia e final, dado que na avaliação inicial ainda não estava implementada a solução completa. Estas métricas apenas obtiveram sucesso máximo quando não existiram pontos suficientes (provenientes da nuvem de pontos). Embora a taxa de sucesso tenha diminuído na avaliação final, este resultado é compreensível dado terem sido utilizadas duas construções não triviais. Além disso, concluímos que embora os utilizadores pudessem repetir a experiência caso não estivesse satisfeitos com o resultado proposto pelo Skanect, nem sempre o fizeram. As condições de iluminação e consequentes reflexões também limitaram a taxa de sucesso atingida. De realçar também que o objectivo principal da avaliação final foi a análise de métricas subjectivas. Foi relevante realizar testes subjectivos porque, tanto na avaliação intermédia como na avaliação final, permitiu concluir quais os factores determinantes para a validação de resultados. Compreendeu-se que ainda é necessário realizar algum trabalho para melhorar as capturas de objectos de reduzidas dimensões e que, embora tenha sido utilizado um software extremamente optimizado, surgiram dificuldades que levaram à repetição de algumas experiências. Relativamente à integração com o protótipo LTouchIt, foi perceptível que a utilização de uma lista de sugestões permite remover ambiguidades sugeridas pelo algoritmo (em particular, problemas decorrentes da invariância à escala). O Apêndice G apresenta uma comparação simples entre três descritores (SHA, SD e LFD) e procurou averiguar se o SHA seria o descritor mais indicado para efectuar a recuperação de componentes, segundo as condições da avaliação intermédia. Concluiu-se que, para o toy-problem utilizado, o SHA foi a escolha correcta. No entanto, consideramos que noutros domínios pode existir outro descritor mais apropriado ao tipo de 65

90 componentes envolvidos. Consideramos que a utilização de um repositório com componentes menos semelhantes entre si e de maiores dimensões (físicas) contribui para acreditar que a resolução do dispositivo de captura é suficiente para a grande maioria das aplicações do mundo real. Por outras palavras, concluímos que a abordagem descrita pode ser aplicada a outros domínios. 66

91 Capítulo 6 Conclusões e Trabalho Futuro Existiram diversas aprendizagens e conclusões a retirar no decorrer desta dissertação. Neste documento foi apresentada uma solução que utiliza um toy-problem para demonstrar um algoritmo de reconstrução capaz de decompor um objecto físico. Acreditamos que uma abordagem semelhante pode ser demonstrada e avaliada noutros domínios. Além disso, existe trabalho futuro a ser realizado que pode dar origem a melhorias e novos desafios que ficaram fora do âmbito desta dissertação. 6.1 Aprendizagens Esta dissertação proporcionou diversas aprendizagens teóricas e práticas, em que todas as fases do processo foram importantes para o resultado final. Desde a investigação inicial ao desenho da solução, a implementação do algoritmo, bem como a avaliação da abordagem. Foi relevante ter iterações sucessivas que avaliassem e garantissem a contínua progressão do trabalho descrito neste documento. A investigação realizada garantiu que se identificassem os principais trabalhos relacionados existentes na área da reconstrução. A análise destes trabalhos permitiu assimilar alguns conceitos chave sobre captura, segmentação e reconstrução. Também foram importantes os conhecimentos adquiridos na disciplina de Processamento de Objectos 3D, principalmente ao nível da recuperação de objectos pela forma. Estes factores foram determinantes para formular o problema que esta dissertação procura resolver. Com o problema identificado e bem definido, desenhámos e implementámos uma solução que com principal foco nas áreas de captura, segmentação, recuperação e reconstrução de objectos 3D. Procurámos uma solução adaptável ao utilizador comum, através da utilização de um dispositivo de baixo custo e da apresentação de resultados aproximadamente em tempo-real. A integração das fases descritas com o protótipo LTouchIt contribuiu para para apresentar e manipular resultados de forma interactiva. 67

92 A solução proposta proporcionou a escrita de um artigo científico que garantiu a participação numa conferência internacional. A avaliação, descrita na Secção 5, permitiu obter feedback sobre a arquitectura proposta segundo métricas objectivas e subjectivas. As principais limitações da abordagem foram detectadas e analisadas. No que diz respeito a métricas objectivas, compreendeu-se que a utilização de uma câmara de baixo custo para adquirir e identificar objectos de pequenas dimensões pode não ser suficiente para aplicações do mundo real. Em relação à avaliação subjectiva, constatámos que ao contrário de outros dispositivos como smartphones, a utilização de um dispositivo de captura com estas dimensões ainda não faz parte do dia-a-dia do utilizador comum. No entanto, após a experiência quase 3/4 das pessoas afirma que gostaria de experimentar este tipo de tecnologia para capturar objectos. A avaliação intermédia e final permitiram a elaboração de um poster a ser apresentado numa conferência nacional. 6.2 Conclusões A pesquisa procurou encontrar mecanismos para identificar os vários componentes que constituem um objecto 3D físico, com o objectivo de conseguir efectuar uma reconstrução fiável e criar um modelo digital. A abordagem seguida considerou (1) tecnologias de baixo custo, que estão cada vez mais acessíveis ao público em geral e permitem novos paradigmas em áreas como a visualização interactiva ou o reconhecimento de gestos, além de desafios de segmentação e reconhecimento de objectos; e (2) o aumento do poder de computação, que permite armazenar, processar e recuperar objectos 3D eficientemente. Este aumento de computação proporcionou a criação de vários algoritmos de recuperação, dos quais procurámos utilizar um que cumprisse requisitos propostos. Como resultado, a solução apresentada decompõe um modelo 3D e identifica os componentes que pertencem a um objecto físico capturado. Em comparação com abordagens semelhantes, a nossa solução tem a vantagem de possuir um grande número de componentes que podem ser identificados e que existem num repositório. Em particular, o nosso repositório possui que 70 componentes físicos distintos podem ser capturados e detectáveis com esta solução. No entanto, o toy-problem utilizado e o facto de dos vários componentes serem bastante semelhantes entre si dificultou o processo de recuperação. Além disso, a natural sobreposição de vários componentes proporcionou que outros acabassem por não ser totalmente visíveis e, consequentemente, a taxa de sucesso alcançada foi reduzida. Os resultados indicaram que objectos de reduzidas dimensões são complexos de analisar mediante uma captura com o Microsoft Kinect, dada a sua baixa resolução. Como resultado, as nuvens de pontos produzidas nem sempre são suficientes para identificar todos os componentes correctamente. Ainda assim, os resultados permitiram concluir que a utilização de uma lista de sugestões para auxiliar a correcção do modelo é importante e garante a aceitação dos modelos produzidos. Tendo em conside- 68

93 ração os resultados obtidos, acreditamos que a abordagem seguida pode ser generalizada para outras áreas. Em particular, consideramos que a nossa solução pode ser aplicada a alguns domínios onde os componentes a capturar possuem dimensões superiores quando comparados com as dimensões dos componentes que adquirimos. Além disso, se considerarmos um repositório com modelos menos semelhantes entre si atingiremos resultados com hit rate superior. Além do Microsoft Kinect, têm surgido recentemente projectos como o Structure Sensor 1 que recorre a um sensor para capturar modelos 3D, desde simples objectos até salas inteiras. Uma das principais vantagens deste sensor é possui dimensões reduzidas (119.2 milímetros de comprimento, 27.9 milímetros de largura e 29 milímetros de altura), podendo ser facilmente incorporado em dispositivos móveis. Os resultados até agora apresentados são promissores e justificam que a captura 3D pode estar cada vez mais presente no dia-a-dia do utilizador comum. 6.3 Trabalho Futuro O Kinect 2.0 está a ser desenvolvido neste momento pela Microsoft. Quando comparado com a versão actual, este dispositivo possui maior resolução, uma câmara RGB actualizada de 16-bit YUV (em vez dos 34-bit RGB) e foi adicionado um novo sensor de infravermelhos. Tendo em consideração esta nova configuração, acreditamos que a captura de objectos mediante a nossa solução poderá ser realizada de forma mais eficiente e proporcione resultados com hit rate superior. No que diz respeito à segmentação, o nosso algoritmo poderá vir a adquirir pelo menos dois componentes da mesma cor, para componentes não adjacentes. Para alcançar este resultado bastará utilizar um algoritmo de segmentação como o Region Growing. No entanto, devemos ter em consideração que a segmentação de duas componentes físicas da mesma cor poderá levantar problemas, nomeadamente desvantagens como a divisão de componentes bem definidos em múltiplos segmentos. Esta divisão acabará por produzir resultados inesperados como a recuperação de vários segmentos diferentes que inicialmente podiam fazer parte apenas de um único componente (esta situação poderá ocorrer bastando que existam componentes parcialmente ocultos). 1 Structure Sensor, visitado em Setembro de

94 70

95 Bibliografia R. Adams and L. Bischof. Seeded region growing. IEEE Transactions on Pattern Analysis and Machine Intelligence, 16(6): , M. Alexa and A. Adamson. On normals and projection operators for surfaces defined by point sets. In in Eurographics symp. on point-based graphics, pages , M. Attene, B. Falcidieno, and M. Spagnuolo. Hierarchical mesh segmentation based on fitting primitives. The Visual Computer, H. Bay, A. Ess, T. Tuytelaars, and L. Van Gool. Speeded-up robust features (surf). Computer Vision and Image Understanding, 110(3): , S. Beck, A. Kunert, A. Kulik, and B. Froehlich. Immersive group-to-group telepresence. IEEE Transactions on Visualization and Computer Graphics, 19(4): , F. Bernardini and H. Rushmeier. The 3d model acquisition pipeline. Comput. Graph. Forum, 21(2): , D. Chen, X. Tian, Y. Shen, and M. Ouhyoung. On visual similarity based 3d model retrieval. Computer Graphics Forum, 22(3): , X. Chen, A. Golovinskiy, and T. Funkhouser. A benchmark for 3d mesh segmentation. ACM Transactions on Graphics, 28(3):1, Yan Cui, S. Schuon, S. Thrun, D. Stricker, and C. Theobalt. Algorithms for 3d shape scanning with a depth camera. IEEE Transactions on Pattern Analysis and Machine Intelligence, 35(5): , M. A. Fischler and R. C. Bolles. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography. Commun. ACM, 24(6): , MJ. Fonseca and JA. Jorge. NB-Tree: An indexing structure for content-based retrieval in large databases. pages 1 25, T. Funkhouser, P. Min, M. Kazhdan, J. Chen, A. Halderman, D. Dobkin, and D. Jacobs. A search engine for 3d models. ACM Transactions on Graphics, 22(1):83 105,

96 A. Golovinskiy and T. Funkhouser. Randomized cuts for 3d mesh analysis. ACM Transactions on Graphics (Proc. SIGGRAPH ASIA), A. Golovinskiy and T. Funkhouser. Min-cut based segmentation of point clouds. In IEEE Workshop on Search in 3D and Video (S3DV) at ICCV, A. Gupta, D. Fox, B. Curless, and M. Cohen. Duplotrack: a real-time system for authoring and guiding duplo block assembly. In Proceedings of 25th ACM Symposium on User Interface Software and Technology (UIST), pages , C. Harris and M. Stephens. A combined corner and edge detector. Procedings of the Alvey Vision Conference 1988, pages , P. Henry, M. Krainin, E. Herbst, X. Ren, and D. Fox. Rgb-d mapping: Using depth cameras for dense 3d modeling of indoor environments. In Proc. of the International Symposium on Experimental Robotics (ISER), S. Izadi, D. Kim, O. Hilliges, D. Molyneaux, R. A. Newcombe, P. Kohli, J. Shotton, S. Hodges, D. Freeman, A. J. Davison, and A. W. Fitzgibbon. Kinectfusion: real-time 3d reconstruction and interaction using a moving depth camera. pages ACM, S. Katz, G. Leifman, and A. Tal. Mesh segmentation using feature point and core extraction. The Visual Computer, 21(8-10): , Yu kun Lai, Shi min Hu, R. R. Martin, and P. L. Rosin. Fast mesh segmentation using random walks. In In ACM Symposium on Solid and Physical Modeling, H. Laga, T. Schreck, A. Ferreira, and A. Godil. Bag of words and local spectral descriptor for 3d partial shape retrieval. Proceedings of the Eurographics Workshop on 3D Object Retrieval (3DOR 11), pages 41 48, M. Levoy, S. Rusinkiewicz, M. Ginzton, J. Ginsberg, K. Pulli, D. Koller, S. Anderson, J. Shade, B. Curless, L. Pereira, J. Davis, and D. Fulk. The digital michelangelo project : 3d scanning of large statues. SIGGRAPH, pages , Z. Lian, A. Godil, X. Sun, and H. Zhang. Non-rigid 3d shape retrieval using multidimensional scaling and bag-of-features. International Conference on Image Processing (ICIP2010), 1: , DG. Lowe. Distinctive image features from scale-invariant keypoints. International journal of computer vision, 60(2):91 110, I. Lysenkov, V. Eruhimov, and G. Bradski. Recognition and pose estimation of rigid transparent objects with a kinect sensor. Robotics Science and Systems, M. Mathias, A. Martinovic, J. Weissenberg, and L. V. Gool. Procedural 3d building reconstruction using shape grammars and detectors. International Conference on 3D Imaging, Modeling, Processing, Visualization and Transmission, pages ,

97 D. Mendes. LTouchIT: LEGO Modeling on Multi-Touch Surfaces. Master s thesis, Instituto Superior Técnico, A. Miller, B. White, E. Charbonneau, Z. Kanzler, and J. J. LaViola. Interactive 3d model acquisition and tracking of building block structures. IEEE transactions on visualization and computer graphics, 18(4): 651 9, H. Murase and S. K. Nayar. Visual learning and recognition of 3-d objects from appearance. International Journal of Computer Vision, 14(1):5 24, RA. Newcombe and AJ. Davison. Kinectfusion: Real-time dense surface mapping and tracking. (IS- MAR), pages , R. Osada, T. Funkhouser, B. Chazelle, and D. Dobkin. Matching 3d models with shape distributions. In Proceedings of the International Conference on Shape Modeling & Applications, SMI 01, pages 154, Washington, DC, USA, IEEE Computer Society. B. Curless R. T. Held, A. Gupta and M. Agrawala. 3d puppetry: A kinect-based interface for 3d animation. Proceedings of the 25th annual ACM symposium adjunct on User interface software and technology, R. B. Rusu. Semantic 3D Object Maps for Everyday Manipulation in Human Living Environments. PhD thesis, Computer Science department, Technische Universität München, Germany, Advisor: Univ.-Prof. Michael Beetz (TUM) Ph.D.; Committee: Univ.-Prof. Dr. Nassir Navab (TUM), Univ.-Prof. Michael Beetz (TUM) Ph.D., Prof. Kurt Konolige (Stanford) Ph.D., Prof. Gary Bradski (Stanford) Ph.D.; summa cum laude. R. B. Rusu and S. Cousins. 3d is here: Point cloud library (pcl). IEEE International Conference on Robotics and Automation, pages 1 4, R. B. Rusu, Z. C. Marton, N. Blodow, M. Dolha, and M. Beetz. Towards 3d point cloud based object maps for household environments. Robotics and Autonomous Systems, T. Santos, A. Ferreira, F. Dias, and M. J. Fonseca. Using sketches and retrieval to create lego models. pages Eurographics Association, C. Schwartz and M. Weinmann. Integrated high-quality acquisition of geometry and appearance for cultural heritage. In proceedings of The 12th International Symposium on Virtual Reality, Archeology and Cultural Heritage, L. Shapira, A. Shamir, and D. Cohen-Or. Consistent mesh partitioning and skeletonisation using the shape diameter function. The Visual Computer, 24(4): , S. Shlafman, A. Tal, and S. Katz. Metamorphosis of polyhedral surfaces using decomposition. Computer Graphics Forum, 21(3): ,

98 B. Steder and RB. Rusu. Narf: 3d range image features for object recognition. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), workshop on Defining and Solving Realistic Perception Problems in Personal Robotics, H. Tabia, M. Daoudi, J. Vandeborre, and O. Colot. Deformable shape retrieval using bag-of-feature techniques. Proceedings of the 3D Image Processing (3DIP 11), T. Varady, RR Martin, and J. Cox. Reverse engineering of geometric models an introduction. Computer-Aided Design, pages 1 28, E. Wahl. Surflet-pair-relation histograms: a statistical 3d-shape representation for rapid classification. 3-D Digital Imaging and Modeling, pages , T. Wekel and O. Hellwich. Simultaneous skeletonization and topologic decomposition for digital shape reconstruction, C. Zhang, Q. Cai, P. A. Chou, Z. Zhang, and R. Martin-Brualla. Viewport: A distributed, immersive teleconferencing system with infrared dot pattern. IEEE Multimedia, 20(1):17 27, Zhengyou Zhang. Iterative point matching for registration of free-form curves and surfaces. International Journal of Computer Vision, 13(2): ,

99 Apêndice A Tipos de peças Tipos de peças: nome, descrição e exemplos de objectos existentes nas várias construções. Note que esta descrição é apenas aplicada ao toy-problem estudado. Tipos de peças Descrição Exemplos Blocos standard Componentes semelhantes às utilizadas nos projectos Miller et al. (2012); Gupta et al. (2012). Blocos adicionais Peças curvas Peças complexas Componentes que possuem características ortogonais e não estão contempladas no conjunto anterior. Componentes com características arredondadas ou semi-arredondadas e que cedem novos desafios ao processo de recuperação. Componentes com formas diversas que vão além das peças curvas. Estas peças devem manter a restrição de possuir apenas uma cor. Tabela A.1: Tipos de componentes. 75

100 76

101 Apêndice B Objectos físicos Objectos físicos presentes nas construções das avaliações inicial, intermédia e final. Figura B.1: Construções utilizadas na avaliação inicial. Figura B.2: Construções utilizadas na avaliação intermédia. 77

102 Figura B.3: Construções utilizadas na avaliação final. 78

103 Apêndice C Questionário realizado na avaliação intermédia O questionário seguinte pretende avaliar a qualidade da solução implementada até à data de , cujo fim é exclusivamente educativo. Este trabalho procura reconstruir objectos 3D, utilizando como caso de estudo LEGO, através da utilização de uma camara de baixo custo (Microsoft Kinect). Em seguida são apresentados os objectos capturados e os respectivos resultados obtidos. O seu objectivo passa por avaliar a validade deste resultado numa escala de Muito insuficiente a Muito bom, considerando tanto a taxa de sucesso (hit rate) como as relações entre as peças. Avalie os resultados de acordo com a seguinte escala: Muito bom todas as peças foram reconstruídas com sucesso. Bom nem todas as peças foram reconstruídas com sucesso mas o resultado é bastante aceitável. Suficiente se considera que o resultado reconstruído é razoável. Insuficiente as peças reconstruídas apresentam um resultado bastante diferente do espectável, não devendo ser consideradas. Muito insuficiente as peças reconstruídas não têm qualquer semelhança com o modelo original capturado e este resultado não deve ser aceite. (*) = Campos obrigatórios Este questionário demora cerca de 5 minutos. Os objectos e modelos representados podem ser manipulados com a ajuda do rato. Reconstrução nº 1 - Avalie a reconstrução efectuada Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom 79

104 Figura C.1: Objecto Físico e Modelo Reconstruído. Bom Suficiente Insuficiente Muito insuficiente Reconstrução nº 2 - Avalie a reconstrução efectuada Figura C.2: Objecto Físico e Modelo Reconstruído. Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom Bom Suficiente Insuficiente Muito insuficiente Reconstrução nº 3 - Avalie a reconstrução efectuada Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom Bom Suficiente Insuficiente 80

105 Figura C.3: Objecto Físico e Modelo Reconstruído. Muito insuficiente Reconstrução nº 4 - Avalie a reconstrução efectuada Figura C.4: Objecto Físico e Modelo Reconstruído. Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom Bom Suficiente Insuficiente Muito insuficiente Reconstrução nº 5 - Avalie a reconstrução efectuada Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom Bom Suficiente Insuficiente Muito insuficiente Reconstrução nº 6 - Avalie a reconstrução efectuada 81

106 Figura C.5: Objecto Físico e Modelo Reconstruído. Figura C.6: Objecto Físico e Modelo Reconstruído. Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom Bom Suficiente Insuficiente Muito insuficiente Reconstrução nº 7 - Avalie a reconstrução efectuada Figura C.7: Objecto Físico e Modelo Reconstruído. Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom 82

107 Bom Suficiente Insuficiente Muito insuficiente Reconstrução nº 8 - Avalie a reconstrução efectuada Figura C.8: Objecto Físico e Modelo Reconstruído. Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom Bom Suficiente Insuficiente Muito insuficiente Reconstrução nº 9 - Avalie a reconstrução efectuada Figura C.9: Objecto Físico e Modelo Reconstruído. Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom Bom Suficiente Insuficiente 83

108 Muito insuficiente Reconstrução nº 10 - Avalie a reconstrução efectuada Figura C.10: Objecto Físico e Modelo Reconstruído. Classifique o Modelo Reconstruído de acordo com as métricas acima definidas. Muito bom Bom Suficiente Insuficiente Muito insuficiente Questões de resposta aberta 1. Em geral, qual a sua opinião sobre os resultados obtidos na reconstrução? 2. Imagine que na fase final do projecto pode interagir com o modelo e verificar se as peças estão correctas. Considera importante ter uma lista de sugestões (com outras peças) que o auxilie caso uma dada peça esteja errada? 3. Observações/Sugestões: 4. Deseja saber mais sobre este trabalho? Deixe aqui o seu . Obrigado pela sua colaboração. 84

Faculdade de Ciências da Universidade de Lisboa CURSO DE GPS. Módulo x. (Aula Prática) Reliance - Ashtech. Suas Aplicações Em SIG.

Faculdade de Ciências da Universidade de Lisboa CURSO DE GPS. Módulo x. (Aula Prática) Reliance - Ashtech. Suas Aplicações Em SIG. Faculdade de Ciências da Universidade de Lisboa CURSO DE GPS Módulo x (Aula Prática) Reliance - Ashtech e Suas Aplicações Em SIG (Carlos Antunes) INTODUÇÃO O Sistema Reliance baseia-se na utilização do

Leia mais

Optimização de um Mundo Virtual

Optimização de um Mundo Virtual secção 3.2 Optimização de um Mundo Virtual Dadas as limitações impostas pela actual tecnologia, um mundo virtual que não seja cuidadosamente optimizado torna-se necessariamente demasiado lento para captar

Leia mais

WORKING PAPERS AVATAR EXPRESS: CREATE, EDIT, ANIMATE

WORKING PAPERS AVATAR EXPRESS: CREATE, EDIT, ANIMATE WORKING PAPERS AVATAR EXPRESS: CREATE, EDIT, ANIMATE Resumo Nos dias de hoje a forma como comunicamos e interagimos com o mundo passa, muitas vezes, por ecrãs. Televisão, computadores, telemóveis e tablets

Leia mais

Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008

Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008 PROJECTOS DE INVESTIGAÇÃO CIENTÍFICA E DESENVOLVIMENTO TECNOLÓGICO Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008 Deliverable: D1 - Clip-art Simplification Tool Task: T1 - Clip-art Simplification

Leia mais

PROJECTOS DE INVESTIGAÇÃO CIENTÍFICA E DESENVOLVIMENTO TECNOLÓGICO

PROJECTOS DE INVESTIGAÇÃO CIENTÍFICA E DESENVOLVIMENTO TECNOLÓGICO PROJECTOS DE INVESTIGAÇÃO CIENTÍFICA E DESENVOLVIMENTO TECNOLÓGICO Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008 Deliverable: D3 Feature Extraction Library (Vectors) Task: T3 Feature Extraction

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS VINICIUS DA SILVEIRA SEGALIN FLORIANÓPOLIS OUTUBRO/2013 Sumário

Leia mais

7.Conclusão e Trabalhos Futuros

7.Conclusão e Trabalhos Futuros 7.Conclusão e Trabalhos Futuros 158 7.Conclusão e Trabalhos Futuros 7.1 Conclusões Finais Neste trabalho, foram apresentados novos métodos para aceleração, otimização e gerenciamento do processo de renderização

Leia mais

Cálculo de volume de objetos utilizando câmeras RGB-D

Cálculo de volume de objetos utilizando câmeras RGB-D Cálculo de volume de objetos utilizando câmeras RGB-D Servílio Souza de ASSIS 1,3,4 ; Izadora Aparecida RAMOS 1,3,4 ; Bruno Alberto Soares OLIVEIRA 1,3 ; Marlon MARCON 2,3 1 Estudante de Engenharia de

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL Versão: 1.0 Data: 05-06-2009 Índice Acesso e estados dos Formulários... 3 Escolha do Formulário e submissão... 4 Bases para a navegação

Leia mais

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016 PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016 CURSO/CICLO DE FORMAÇÃO Técnico de Eletrotecnia e Técnico de Gestão de Equipamentos Informáticos / 2015/2018 DISCIPLINA: Tecnologias da Informação e Comunicação

Leia mais

Pesquisa e organização de informação

Pesquisa e organização de informação Pesquisa e organização de informação Capítulo 3 A capacidade e a variedade de dispositivos de armazenamento que qualquer computador atual possui, tornam a pesquisa de informação um desafio cada vez maior

Leia mais

Manual do GesFiliais

Manual do GesFiliais Manual do GesFiliais Introdução... 3 Arquitectura e Interligação dos elementos do sistema... 4 Configuração do GesPOS Back-Office... 7 Utilização do GesFiliais... 12 Outros modos de utilização do GesFiliais...

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado Escola Básica e Secundária de Velas Planificação de TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC Curso Profissional de Técnico de Secretariado 10º C MÓDULO 1 FOLHA DE CÁLCULO Microsoft Excel Conteúdos

Leia mais

ARTIGO TÉCNICO. Os objectivos do Projecto passam por:

ARTIGO TÉCNICO. Os objectivos do Projecto passam por: A metodologia do Projecto SMART MED PARKS ARTIGO TÉCNICO O Projecto SMART MED PARKS teve o seu início em Fevereiro de 2013, com o objetivo de facultar uma ferramenta analítica de confiança para apoiar

Leia mais

2 de maio de 2014. Remote Scan

2 de maio de 2014. Remote Scan 2 de maio de 2014 Remote Scan 2014 Electronics For Imaging. As informações nesta publicação estão cobertas pelos termos dos Avisos de caráter legal deste produto. Conteúdo 3 Conteúdo...5 Acesso ao...5

Leia mais

Reabilitação e Reforço de Estruturas

Reabilitação e Reforço de Estruturas Mestrado em Engenharia Civil 2011 / 2012 Reabilitação e Reforço de Estruturas Aula 06: Métodos de inspecção e diagnóstico. 6.2. Aplicação da tecnologia laser scanning à reabilitação do espaço construído.

Leia mais

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2. Pg. 1 Universidade Federal do Espírito Santo - UFES Mestrado em Informática 2004/1 Projetos O Projeto O projeto tem um peso maior na sua nota final pois exigirá de você a utilização de diversas informações

Leia mais

MOLLIOREM: RECONSTRUÇÃO DO TÓRAX FEMININO

MOLLIOREM: RECONSTRUÇÃO DO TÓRAX FEMININO Departamento de Sistemas e Computação FURB Curso de Ciência da Computação Trabalho de Conclusão de Curso 2014/1 MOLLIOREM: RECONSTRUÇÃO DO TÓRAX FEMININO Acadêmico: Marina Uliano Marina.miyu@gmail.com

Leia mais

Aplicações Informáticas B

Aplicações Informáticas B Prova de Exame Nacional de Aplicações Informáticas B Prova 703 2008 12.º Ano de Escolaridade Decreto-Lei n.º 74/2004, de 26 de Março Para: Direcção-Geral de Inovação e de Desenvolvimento Curricular Inspecção-Geral

Leia mais

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS - Grupo 550 INFORMÁTICA Planificação Anual /Critérios de avaliação

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS - Grupo 550 INFORMÁTICA Planificação Anual /Critérios de avaliação DOMÍNIOS (Unidades) UNIDADE 1 INTRODUÇÃO À PROGRAMAÇÃO Introdução Conteúdos Objetivos Estratégias/ recursos Conceitos fundamentais Teste e controlo de erros em algoritmia Estruturas de controlo Arrays

Leia mais

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1 GESTÃO de PROJECTOS Gestor de Projectos Informáticos Luís Manuel Borges Gouveia 1 Iniciar o projecto estabelecer objectivos definir alvos estabelecer a estratégia conceber a estrutura de base do trabalho

Leia mais

Disciplina: Tecnologias de Informação e Comunicação Ano Letivo 2014/2015

Disciplina: Tecnologias de Informação e Comunicação Ano Letivo 2014/2015 A informação, o conhecimento e o mundo das tecnologias. (I7.1) Utilização do computador e/ou dispositivos eletrónicos similares em segurança. (I7.2) 1. Compreender a evolução das tecnologias de informação

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS André Zuconelli 1 ; Manassés Ribeiro 2 1. Aluno do Curso Técnico em Informática, turma 2010, Instituto Federal Catarinense, Câmpus Videira, andre_zuconelli@hotmail.com

Leia mais

Classificação da imagem (ou reconhecimento de padrões): objectivos Métodos de reconhecimento de padrões

Classificação da imagem (ou reconhecimento de padrões): objectivos Métodos de reconhecimento de padrões Classificação de imagens Autor: Gil Gonçalves Disciplinas: Detecção Remota/Detecção Remota Aplicada Cursos: MEG/MTIG Ano Lectivo: 11/12 Sumário Classificação da imagem (ou reconhecimento de padrões): objectivos

Leia mais

Oficina de Multimédia B. ESEQ 12º i 2009/2010

Oficina de Multimédia B. ESEQ 12º i 2009/2010 Oficina de Multimédia B ESEQ 12º i 2009/2010 Conceitos gerais Multimédia Hipertexto Hipermédia Texto Tipografia Vídeo Áudio Animação Interface Interacção Multimédia: É uma tecnologia digital de comunicação,

Leia mais

Interação Humana com Computador

Interação Humana com Computador Interação Humana com Computador Tecnologias de Computadores André Ferraz N.º24881 Jason Costa N.º25231 Ana Pereira N.º25709 IHC Estudo, planeamento e desenho de uma interação entre o utilizador e computadores.

Leia mais

Open Graphics Library OpenGL

Open Graphics Library OpenGL Open Graphics Library OpenGL Filipe Gonçalves Barreto de Oliveira Castilho Nuno Alexandre Simões Aires da Costa Departamento de Engenharia Informática Universidade de Coimbra 3030 Coimbra, Portugal http://student.dei.uc.pt/~fgonc/opengl/

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

Leia mais

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

1.3. Componentes dum sistema informático HARDWARE SOFTWARE 1.3. Componentes dum sistema informático Computador Sistema Informático HARDWARE SOFTWARE + Periféricos Sistema Operativo Aplicações HARDWARE - representa todos os componentes físicos de um sistema informático,

Leia mais

Windows Live Movie Maker

Windows Live Movie Maker Windows Live Movie Maker Passo-a-passo para Professores Criar um filme com o Windows Live Movie Maker Descarregue o programa 1. Visite o site http://explore.live.com/windows-live-movie-maker e descarregue

Leia mais

Configuração do Ambiente de Trabalho

Configuração do Ambiente de Trabalho pag. 1 Configuração do Ambiente de Trabalho 1. Utilização da Área de Trabalho Criação de Atalhos: O Windows NT apresenta um Ambiente de Trabalho flexível, adaptável às necessidades e preferências do utilizador.

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II O seguinte exercício contempla um processo com três estágios. Baseia-se no Inquérito de Satisfação Fase II, sendo, por isso, essencial compreender primeiro o problema antes de começar o tutorial. 1 1.

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS Planificação Anual da Disciplina de TIC Módulos 1,2,3-10.ºD CURSO PROFISSIONAL DE TÉCNICO DE APOIO À GESTÃO DESPORTIVA Ano Letivo 2015-2016 Manual adotado:

Leia mais

... Calendarização: 2 blocos de 90 m Metas/Objetivos Descritores Conceitos/Conteúdos Estratégias/Metodologias Avaliação

... Calendarização: 2 blocos de 90 m Metas/Objetivos Descritores Conceitos/Conteúdos Estratégias/Metodologias Avaliação DEPARTAMENTO DE MATEMÁTICA E INFORMÁTICA DISCIPLINA: TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO PLANIFICAÇÃO DE 7º ANO... 1º Período Domínio INFORMAÇÃO I7 A Informação, o conhecimento e o mundo das tecnologias

Leia mais

Projecto de Programação MEEC - 2010/2011-1ºSemestre. Mestrado Integrado em Engenharia Electrotécnica e de Computadores

Projecto de Programação MEEC - 2010/2011-1ºSemestre. Mestrado Integrado em Engenharia Electrotécnica e de Computadores Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização do estado de

Leia mais

Visão Computacional e Realidade Aumentada. Trabalho 3 Reconstrução 3D. Pedro Sampaio Vieira. Prof. Marcelo Gattass

Visão Computacional e Realidade Aumentada. Trabalho 3 Reconstrução 3D. Pedro Sampaio Vieira. Prof. Marcelo Gattass Visão Computacional e Realidade Aumentada Trabalho 3 Reconstrução 3D Pedro Sampaio Vieira Prof. Marcelo Gattass 1 Introdução Reconstrução tridimensional é um assunto muito estudado na área de visão computacional.

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

Leia mais

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. Conceitos relativos à Informação 1. Informação O que á a informação? Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. 2. Dados Em informática designa-se

Leia mais

Mobilidade na FEUP Deslocamento Vertical

Mobilidade na FEUP Deslocamento Vertical Mobilidade na FEUP Deslocamento Vertical Relatório Grupo 515: Carolina Correia Elder Vintena Francisco Martins Salvador Costa Sara Palhares 2 Índice Introdução...4 Objectivos...5 Método...6 Dados Obtidos...7

Leia mais

MANUAL DO UTILIZADOR

MANUAL DO UTILIZADOR MANUAL DO UTILIZADOR Versão 1.6 PÁGINA DE PESQUISA A página principal do PacWeb permite a realização de um número muito variado de pesquisas, simples, ou pelo contrário extremamente complexas, dependendo

Leia mais

Programa de formaça o de Word Nível 1 (482)

Programa de formaça o de Word Nível 1 (482) Programa de formaça o de Word Nível 1 (482) Conteúdo Denominação do curso de formação:... 1 Objetivo Geral... 1 Destinatários... 1 Requisitos... 1 Critérios de seleção dos formandos... 2 Modalidade e forma

Leia mais

PLANO DE ESTUDOS DE T.I.C. 7.º ANO

PLANO DE ESTUDOS DE T.I.C. 7.º ANO DE T.I.C. 7.º ANO Ano Letivo 2015 2016 PERFIL DO ALUNO O aluno deve ser capaz de: - desenvolver capacidades na utilização das tecnologias de informação e comunicação que permitam uma literacia digital

Leia mais

- relaciona informação de diferentes classes da CDU no tratamento de um tema -utiliza as funcionalidades de pesquisa avançada no catálogo.

- relaciona informação de diferentes classes da CDU no tratamento de um tema -utiliza as funcionalidades de pesquisa avançada no catálogo. ÁREA: Conhecimento e utilização da Biblioteca Cumprir as regras de funcionamento da biblioteca - cumpre as regras de comportamento na BE - cumpre as regras de acesso, manipulação, preservação e arrumação

Leia mais

Direcção Regional de Educação do Algarve

Direcção Regional de Educação do Algarve MÓDULO 1 Folha de Cálculo 1. Introdução à folha de cálculo 1.1. Personalização da folha de cálculo 1.2. Estrutura geral de uma folha de cálculo 1.3. O ambiente de da folha de cálculo 2. Criação de uma

Leia mais

O Manual do ssc. Peter H. Grasch

O Manual do ssc. Peter H. Grasch Peter H. Grasch 2 Conteúdo 1 Introdução 6 2 Usar o ssc 7 2.1 Gerir os utilizadores.................................... 7 2.1.1 Adicionar um utilizador.............................. 8 2.1.1.1 Associar-se

Leia mais

UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS

UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS Obter uma imagem temática a partir de métodos de classificação de imagens multi- espectrais 1. CLASSIFICAÇÃO POR PIXEL é o processo de extração

Leia mais

Imagiologia de raios X planar

Imagiologia de raios X planar Universidade Técnica de Lisboa Instituto Superior Técnico Mestrado em Engenharia Biomédica Imagiologia de raios X planar Técnicas de Imagiologia Nuno Santos n.º 55746, dodgeps@hotmail.com Rúben Pereira

Leia mais

2. Função Produção/Operação/Valor Adicionado

2. Função Produção/Operação/Valor Adicionado 2. Função Produção/Operação/Valor Adicionado Conteúdo 1. Função Produção 3. Administração da Produção 1 Bibliografia Recomenda Livro Texto: Introdução à Administração Eunice Lacava Kwasnicka - Editora

Leia mais

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Microsoft Word Folha

Leia mais

Visão Artificial Para a Indústria. Manual do Utilizador

Visão Artificial Para a Indústria. Manual do Utilizador Visão Artificial Para a Indústria Manual do Utilizador Luis Fonseca Carvalho de Matos ( luis.matos@ua.pt ) Julho de 2007 Índice de conteúdos 1. Apresentação......1 1.Conceito de Funcionamento......1 2.

Leia mais

Passo 3: Posicionando a Câmera na Prova Didática Teórica ou na Prova de Defesa da Produção Intelectual

Passo 3: Posicionando a Câmera na Prova Didática Teórica ou na Prova de Defesa da Produção Intelectual Este manual descreve um procedimento para o registro de Concursos Públicos por meio de áudio e vídeo utilizando-se recursos tecnológicos básicos i. A gravação segue o disposto na Resolução 020/09 da UFSM

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

AGRUPAMENTO DE ESCOLAS DR. FRANCISCO SANCHES PLANIFICAÇÃO DISCIPLINA. TECNOLOGIAS da INFORMAÇÃO e COMUNICAÇÃO (TIC) 7º Ano. Ano letivo 2014-2015

AGRUPAMENTO DE ESCOLAS DR. FRANCISCO SANCHES PLANIFICAÇÃO DISCIPLINA. TECNOLOGIAS da INFORMAÇÃO e COMUNICAÇÃO (TIC) 7º Ano. Ano letivo 2014-2015 AGRUPAMENTO DE ESCOLAS DR. FRANCISCO SANCHES PLANIFICAÇÃO da DISCIPLINA de TECNOLOGIAS da INFORMAÇÃO e COMUNICAÇÃO (TIC) 7º Ano Ano letivo 2014-201 AGRUPAMENTO DE ESCOLAS DR. FRANCISCO SANCHES Desenvolvimento

Leia mais

Ferramentas Web, Web 2.0 e Software Livre em EVT

Ferramentas Web, Web 2.0 e Software Livre em EVT E s t u d o s o b r e a i n t e g r a ç ã o d e f e r r a m e n t a s d i g i t a i s n o c u r r í c u l o d a d i s c i p l i n a d e E d u c a ç ã o V i s u a l e T e c n o l ó g i c a Sketch2Photo

Leia mais

Capítulo II Imagem Digital

Capítulo II Imagem Digital Capítulo II Imagem Digital Proc. Sinal e Imagem Mestrado em Informática Médica Miguel Tavares Coimbra Resumo 1. Formação de uma imagem 2. Representação digital de uma imagem 3. Cor 4. Histogramas 5. Ruído

Leia mais

Reconhecer a estrutura de um sistema operativo. Definir um plano de instalação de um servidor de rede local.

Reconhecer a estrutura de um sistema operativo. Definir um plano de instalação de um servidor de rede local. FICHA TÉCNICA Exercício nº 7 Data de Aplicação 12/02/2009 NOME DO EXERCÍCIO Selecção de Hardware para Rede Local 773 DESTINATÁRIOS Duração Pré Requisitos Recursos / Equipamentos Orientações Pedagógicas

Leia mais

Microsoft Office FrontPage 2003

Microsoft Office FrontPage 2003 Instituto Politécnico de Tomar Escola Superior de Gestão Área Interdepartamental de Tecnologias de Informação e Comunicação Microsoft Office FrontPage 2003 1 Microsoft Office FrontPage 2003 O Microsoft

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

Scale-Invariant Feature Transform

Scale-Invariant Feature Transform Scale-Invariant Feature Transform Renato Madureira de Farias renatomdf@gmail.com Prof. Ricardo Marroquim Relatório para Introdução ao Processamento de Imagens (COS756) Universidade Federal do Rio de Janeiro,

Leia mais

Base de Dados para Administrações de Condomínios

Base de Dados para Administrações de Condomínios Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

INFORMAÇÃO PROVA FINAL DE CICLO A NÍVEL DE ESCOLA. Aplicações Informáticas B 12º Ano - Prova 303 2014/2015

INFORMAÇÃO PROVA FINAL DE CICLO A NÍVEL DE ESCOLA. Aplicações Informáticas B 12º Ano - Prova 303 2014/2015 INFORMAÇÃO PROVA FINAL DE CICLO A NÍVEL DE ESCOLA Aplicações Informáticas B 12º Ano - Prova 303 2014/2015 1. Introdução Este documento dá a conhecer, aos diversos intervenientes no processo de exames,

Leia mais

Relatório de Progresso

Relatório de Progresso Plataforma de apoio à terapia de reabilitação e manutenção de doentes de Parkinson Relatório de Progresso Preparação da Dissertação Filipe Daniel Magalhães Vieira 060503243 Mestrado Integrado em Engenharia

Leia mais

Ambiente de trabalho. Configurações. Acessórios

Ambiente de trabalho. Configurações. Acessórios Ambiente de trabalho Configurações Acessórios O Sistema Operativo (SO) é o conjunto de programas fundamentais que permitem que o computador funcione e comunique com o exterior. Actualmente, o Windows é

Leia mais

Computadores Portáteis. Regulamento de utilização

Computadores Portáteis. Regulamento de utilização Computadores Portáteis Regulamento de utilização 1 Introdução Os computadores portáteis estão disponíveis para: a) a utilização individual e profissional por professores; b) a utilização por professores,

Leia mais

Programa de Parcerias e Submissão de Propostas 2014/15

Programa de Parcerias e Submissão de Propostas 2014/15 DEPARTAMENTO DE INFORMÁTICA Programa de Parcerias e Submissão de Propostas 2014/15 O Departamento de Informática (DI) da Faculdade de Ciências da Universidade de Lisboa (FCUL) procura criar e estreitar

Leia mais

Sua indústria. Seu show. Seu Futuro

Sua indústria. Seu show. Seu Futuro Sua indústria. Seu show. Seu Futuro Usinagem 5-Eixos para Moldes Sandro, Vero Software Vero Software está no topo do relatório de fornecedores de CAM da CIMData 2014 Com maior Market Share, crescimento

Leia mais

WEBSITE DEFIR PRO WWW.DEFIR.NET

WEBSITE DEFIR PRO WWW.DEFIR.NET MANUAL DO UTILIZADOR WEBSITE DEFIR PRO WWW.DEFIR.NET 1. 2. PÁGINA INICIAL... 3 CARACTERÍSTICAS... 3 2.1. 2.2. APRESENTAÇÃO E ESPECIFICAÇÕES... 3 TUTORIAIS... 4 3. DOWNLOADS... 5 3.1. 3.2. ENCOMENDAS (NOVOS

Leia mais

CONTABILIDADE GERAL e GESTÃO PREVISIONAL PARA ESNL Versões 5.220/5.230

CONTABILIDADE GERAL e GESTÃO PREVISIONAL PARA ESNL Versões 5.220/5.230 CONTABILIDADE GERAL e GESTÃO PREVISIONAL PARA ESNL Versões 5.220/5.230 Para as Entidades até agora classificadas como IPSS utilizadoras da Aplicação de Contabilidade PMR, vimos disponibilizar a passagem

Leia mais

Tecnologias da Informação e Comunicação 7.º Ano

Tecnologias da Informação e Comunicação 7.º Ano ESCOLA SECUNDÁRIA/3 DA RAÍNHA SANTA ISABEL, ESTREMOZ Tecnologias da Informação e Comunicação 7.º Ano Planificação Anual Ano letivo 2015/2016 Professora: Maria dos Anjos Pataca Rosado Domínio: Informação

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

FICHEIROS COM EXEMPLOS

FICHEIROS COM EXEMPLOS FICHEIROS COM EXEMPLOS Envie um e-mail* para software@centroatlantico.pt para conhecer os endereços de Internet de onde poderá fazer o download dos fichei Reservados todos os direitos por Centro Atlântico,

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Desenho de Software. Desenho de Software 1

Desenho de Software. Desenho de Software 1 Desenho de Software Desenho de Software 1 Sumário Caracterização Conceitos fundamentais Desenho funcional e desenho OO Qualidades Desenho de Software 2 Bibliografia Pfleeger, Capítulo 6 Design the Modules

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

Reconhecimento de Padrões

Reconhecimento de Padrões Engenharia Informática (ramos de Gestão e Industrial) Departamento de Sistemas e Informação Reconhecimento de Padrões Projecto Final 2004/2005 Realizado por: Prof. João Ascenso. Departamento de Sistemas

Leia mais

O 1º Ciclo do Ensino Básico é um espaço privilegiado onde se proporcionam aos alunos aprendizagens mais ativas e significativas,

O 1º Ciclo do Ensino Básico é um espaço privilegiado onde se proporcionam aos alunos aprendizagens mais ativas e significativas, O 1º Ciclo do Ensino Básico é um espaço privilegiado onde se proporcionam aos alunos aprendizagens mais ativas e significativas, pois este é um dos meios de socialização e da aquisição das primeiras competências

Leia mais

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela Aula 01 - Formatações prontas e Sumário Formatar como Tabela Formatar como Tabela (cont.) Alterando as formatações aplicadas e adicionando novos itens Removendo a formatação de tabela aplicada Formatação

Leia mais

Seu manual do usuário EPSON LQ-630 http://pt.yourpdfguides.com/dref/1120693

Seu manual do usuário EPSON LQ-630 http://pt.yourpdfguides.com/dref/1120693 Você pode ler as recomendações contidas no guia do usuário, no guia de técnico ou no guia de instalação para. Você vai encontrar as respostas a todas suas perguntas sobre a no manual do usuário (informação,

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,

Leia mais

SOLUÇÕES EM METROLOGIA SCANNER CMM 3D PARA APLICAÇÕES INDUSTRIAIS

SOLUÇÕES EM METROLOGIA SCANNER CMM 3D PARA APLICAÇÕES INDUSTRIAIS SOLUÇÕES EM METROLOGIA SCANNER CMM 3D PARA APLICAÇÕES INDUSTRIAIS TRUsimplicity TM MEDIÇÃO MAIS FÁCIL E RÁPIDA PORTÁTIL E SEM SUPORTE. MOVIMENTAÇÃO LIVRE AO REDOR DA PEÇA USO FACILITADO. INSTALAÇÃO EM

Leia mais

Reconhecimento de Padrões. Reconhecimento de Padrões

Reconhecimento de Padrões. Reconhecimento de Padrões Reconhecimento de Padrões 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 Escola Superior de Tecnologia Engenharia Informática Reconhecimento de Padrões Prof. João Ascenso e Prof.

Leia mais

Considerações Finais. Capítulo 8. 8.1- Principais conclusões

Considerações Finais. Capítulo 8. 8.1- Principais conclusões Considerações Finais Capítulo 8 Capítulo 8 Considerações Finais 8.1- Principais conclusões Durante esta tese foram analisados diversos aspectos relativos à implementação, análise e optimização de sistema

Leia mais

INICIAÇÃO Revista Eletrônica de Iniciação Científica, Tecnológica e Artística

INICIAÇÃO Revista Eletrônica de Iniciação Científica, Tecnológica e Artística HOLOFACE Programação de Simulação de Interfaces Interativas Aluno: Leandro Santos Castilho 1 Orientador: Romero Tori 2 Linha de Pesquisa: Ambientes Interativos Projeto: Livro 3D Resumo Os conceitos de

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Espectro da Voz e Conversão A/D

Espectro da Voz e Conversão A/D INSTITUTO SUPERIOR TÉCNICO LICENCIATURA EM ENGENHARIA ELECTROTÉCNICA E DE COMPUTADORES GUIA DO 1º TRABALHO DE LABORATÓRIO DE SISTEMAS DE TELECOMUNICAÇÕES I Espectro da Voz e Conversão A/D Ano Lectivo de

Leia mais

Guia de Estudo Criação de Apresentações Microsoft PowerPoint

Guia de Estudo Criação de Apresentações Microsoft PowerPoint Tecnologias da Informação e Comunicação Guia de Estudo Criação de Apresentações Microsoft PowerPoint Aspectos genéricos sobre o trabalho com imagens computacionais Imagens computacionais e programas que

Leia mais

Deteção do Espaço Navegável para o ATLASCAR usando informação 3D

Deteção do Espaço Navegável para o ATLASCAR usando informação 3D Deteção do Espaço Navegável para o ATLASCAR usando informação 3D Diogo Artur Fonseca Matos Universidade de Aveiro Departamento de Engenharia Mecânica 16 de Julho 2013 Conteúdos 1 Introdução Apresentação

Leia mais