UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS ESCÂNER 3D ANTROPOMÉTRICO DE BAIXO CUSTO PARA ANÁLISE DE GORDURA CORPORAL FERNANDO LUIZ COLA São Carlos 2013 FERNANDO LUIZ COLA ESCÂNER 3D ANTROPOMÉTRICO DE BAIXO CUSTO PARA ANÁLISE DE GORDURA CORPORAL Trabalho de Conclusão de Curso apresentado à Escola de Engenharia de São Carlos, da Universidade de São Paulo Curso de Engenharia Elétrica com Ênfase em Eletrônica Orientador: Prof. Dr. Alexandre Cláudio Botazzo Delbem São Carlos 2013 AUTORIZO A REPRODUÇÃO TOTAL OU PARCIAL DESTE TRABALHO, POR QUALQUER MEIO CONVENCIONAL OU ELETRÔNICO, PARA FINS DE ESTUDO E PESQUISA, DESDE QUE CITADA A FONTE. Cola, Fernando Luiz L683e Escâner 3D antropométrico de baixo custo para análise de gordura corporal / Fernando Luiz Cola; orientador Alexandre Cláudio Botazzo Delbem; coorientador Mario Alexandre Gazziro. São Carlos, 2014. Monografia (Graduação em Engenharia Elétrica com ênfase em Eletrônica) – Escola de Engenharia de São Carlos da Universidade de São Paulo, 2014. 1. Escâner 3D. 2. Antropometria. 3. Gordura Corporal. 4. Computação Gráfica. 4. Visão Computacional. AGRADECIMENTOS Agradeço em especial aos meus pais pelo carinho, apoio e educação. Pelos ensinamentos que me ajudaram a moldar a minha personalidade. Pela confiança e esperança em me prover um futuro digno. Agradeço a minhas irmãs que sempre estiveram do meu lado independentemente da situação. Agradeço a toda minha família pelas pessoas maravilhosas que sempre estiveram presentes em minha vida me apoiando e ensinando o sentido de união, carinho e compaixão. Agradeço meus amigos de São Carlos que se tornaram minha segunda família ao decorrer da minha graduação. Os dias seriam escuros e solitários sem a camaradagem, amizade e humor de todos meus amigos. Agradeço ao Prof. Dr. Mario Alexandre Gazziro pelo conhecimento, dedicação e a oportunidade de trabalhar com um assunto muito interessante. Agradeço ao Prof. Dr. Alexandre Cláudio Botazzo Delbem por ser meu orientador neste trabalho e por me prover suporte em meu trabalho. Agradeço a modelo Carine Felizardo por gentilmente ceder seu modelo 3D digital para o estudo nessa monografia. “If you're not prepared to be wrong, you'll never come up with anything original.” Sir Ken Robinson SUMÁRIO 1 2 3 Introdução ........................................................................................................................................ 1 1.1 Motivação ............................................................................................................................... 1 1.2 Objetivos ................................................................................................................................. 1 1.3 Organização do Trabalho ........................................................................................................ 2 Revisão Bibliográfica ...................................................................................................................... 3 2.1 Escâner 3D .............................................................................................................................. 3 2.1 Triangulação 3D e Luz Estruturada ........................................................................................ 4 2.2 Escâneres a laser no mercado.................................................................................................. 5 2.3 Características e Funcionamento do Kinect ............................................................................ 5 2.4 Frameworks para Aquisição e processamento de Nuvens de Pontos ..................................... 8 2.4.1 OpenNI ................................................................................................................................ 8 2.4.2 Microsoft Kinect SDK ......................................................................................................... 9 2.4.3 ReconstructME .................................................................................................................... 9 2.5 Tratamento de modelos 3D ................................................................................................... 10 2.6 Composição Corporal e métodos para avaliação da gordura corporal .................................. 10 2.6.1 Composição Corporal ....................................................................................................... 10 2.6.2 Métodos para avaliação do índice de gordura ................................................................... 11 2.7 Equação de Siri ..................................................................................................................... 14 2.8 Escâner 3D antropométrico ................................................................................................... 17 2.9 Protótipo AllBodyScan 3D .................................................................................................... 17 2.9.1 Descrição do sistema ......................................................................................................... 18 2.9.2 Controladores .................................................................................................................... 19 2.9.3 HUB .................................................................................................................................. 19 2.9.4 Motores de Passo .............................................................................................................. 20 2.9.5 Microsoft Kinect................................................................................................................ 20 2.9.6 Ferramentas Computacionais ............................................................................................ 20 Abordagem Antropométrica Baseada no AllBodyScan 3D ........................................................... 22 4 3.1 Aspectos de Hardware .......................................................................................................... 22 3.2 Aspecto de Software para Tratamento dos modelos 3D ....................................................... 25 3.2.1 Reconstrução de superfícies via Poisson........................................................................... 26 3.2.2 Cálculo do volume de um modelo 3D............................................................................... 27 Experimentos Realizados............................................................................................................... 28 4.1 Ajuste dos controladores e trajetórias do sensor ................................................................... 28 4.2 Reconstrução e cálculo do volume de um modelo 3D .......................................................... 30 4.3 Estudo de caso....................................................................................................................... 32 5 Conclusões ..................................................................................................................................... 37 6 Bibliografia .................................................................................................................................... 38 ÍNDICE DE FIGURAS Figura 1 - Escaneamento da estátua de David, The Digital Michelangelo Project (1) e seu modelo Digital (2)................................................................................................................................................ 3 Figura 2 - Ilustração do processo de triangulação de um padrão de luz estruturada [7]. .................... 4 Figura 3 - Tipos de sensores de profundidade presentes no mercado: (1) Asus Xtion Pro (2) Microsoft Kinect. ..................................................................................................................................................... 5 Figura 4 - Padrão de luz estruturada emitida pelo Kinect [13]. ............................................................ 6 Figura 5 - Exemplo de nuvem de pontos representado por objeto 3D. .................................................. 7 Figura 6 - Modelo 3D representado por polígonos. ............................................................................... 7 Figura 7 - Abstração da plataforma OpenNI, ilustrando a arquitetura do sistema [10]. ...................... 8 Figura 8 - Reconhecimento de gestos faciais por aplicativo [15] que usa o Microsoft Kinect SDK...... 9 Figura 9 - Diversos tipos de modelos compartimentais do corpo humano [19]................................... 10 Figura 10 – Comparativo da porcentagem de gordura corporal entre homens e mulheres [20]. ....... 11 Figura 11 - Pesagem hidrostática [23] . ............................................................................................... 12 Figura 12 – DEXA [23] ........................................................................................................................ 12 Figura 13 - Dobras subcutâneas [23]. .................................................................................................. 13 Figura 14 - Bioimpedância elétrica [23]. ............................................................................................. 14 Figura 15 - Escâner 3D da empresa utilizado para verificação do método de aquisição antropométrica do índice de gordura [25]. .......................................................................................... 15 Figura 16 - Relação entre o volume adquirido pelo método de pesagem hidrostática e a aquisição a laser. O gráfico mostra uma forte relação entre os dois métodos R² = 0,99 [24]. ............................... 16 Figura 17 – Protótipo desenvolvido por Gazziro [19], mostrando alguns de seus componentes. ...... 17 Figura 18 - Protótipo do escâner 3D antropométrico (AllBodyScan 3D) utilizado nesse trabalho. ... 18 Figura 19 - Controlador para motores de passo da Applied Motion. .................................................. 19 Figura 20 - HUB para comunicação entre vários controladores da Applied Motion. ......................... 20 Figura 21 – Mapeamento dos comandos SCL para motores de passos. .............................................. 22 Figura 22 - Diagrama para o envio de comandos de controle para os motores de passo. .................. 23 Figura 23 - Software para envio de comandos SCL para os motores de passo. .................................. 23 Figura 24 - Trajetória circular. ............................................................................................................ 24 Figura 25 - Trajetória helicoidal. ......................................................................................................... 25 Figura 26 - Ajuste dos parâmetros da reconstrução de superfícies de Poisson. .................................. 26 Figura 27 – Seleção do método de cálculo do volume de um modelo 3D no software MeshLab......... 28 Figura 28 – Exemplo de saída do MeshLab contendo o valor do volume do modelo 3D. ................... 28 Figura 29 - Comparação dos modelos 3D para diferentes trajetórias. ............................................... 30 Figura 30 - Malha bruta obtida pelo escâner; indicando a presença de pontos indesejados e erros na aquisição. .............................................................................................................................................. 31 Figura 31 – Modelos sem os pontos indesejados mas com lacunas. .................................................... 32 Figura 32 - Modelo final após a aplicação da reconstrução de Poisson. Preenchimento de lacunas e suavização do modelo. .......................................................................................................................... 32 Figura 33 - Modelo bruto obtido pelo escâner contendo pontos indesejados. ..................................... 33 Figura 34 - Modelo já sem pontos indesejados, mas ainda contendo lacunas. .................................... 34 Figura 35 - Modelo final, após a reconstrução de Poisson. ................................................................. 34 Figura 36 - Resultado do programa MeshLab para a modelo. ............................................................ 35 Figura 37 – Interface gráfica do programa gerenciador do AllBodyScan 3D mostrando o laudo...... 35 Figura 38 - Comparação do modelo digital e a miniatura impressa da modelo Carine Felizardo. .... 36 ÍNDICE DE TABELAS TABELA 1 - parâmetros dos motores de passo da Digitech, destacando o modelo utilizado no AllBodyScan 3D. ................................................................................................................................... 20 TABELA 2 - Variação dos parâmetros de Poisson para os modelos da figura 26. .............................. 27 TABELA 3 - Valores dos parâmetros do método de Poisson ajustados para o Allbodyscan 3D. ........ 31 TABELA 4 - Dados da modelo. ............................................................................................................. 33 LISTA DE SIGLAS SDK – Software Development Kit OMS – Organização Mundial de Saúde DEXA – Dual-Energy X-ray Absorptiometry CAD – Computer Aided Design VCD – Visual Computer Graphics library RESUMO COLA, F. L. Escâner 3D antropométrico de baixo custo para análise de gordura corporal, 2013. Monografia (Graduação) – Escola de Engenharia de São Carlos, Universidade de São Paulo, São Carlos, 2013. Este trabalho propõe aprimoramentos tanto no hardware quanto no software do escâner 3D antropométrico AllBodyScan 3D. Para isso foi feito uma avaliação de trajetórias de rotação do equipamento buscando obter modelos digitais com alta qualidade. Além disso, foi investigado o uso do método de Poisson de reconstrução de superfícies nos modelos digitalizados por este escâner buscando aumentar a qualidade do modelo por meio de correções de alto nível de software. Compõe também este trabalho o entendimento das técnicas, a descrição delas, a escolha das técnicas mais adequadas para certas finalidades e o ajuste de parâmetros correspondente. Todos esses aspectos investigados buscam tornar possível a concepção de um escâner 3D para aquisição de dados antropométricos. Resultados experimentais mostram que é possível gerar modelos digitalizados com qualidade adequada, isto é, que possibilitam o cálculo de volumes corporais precisos e suficientes para se obter estimativa coerente do índice de gordura corporal. Palavras-chave: Escâneres 3D, Antropometria, Índice de gordura corporal, Computação Gráfica, Visão Computacional. ABSTRACT COLA, F. L. Low cost anthropometric 3D scanner for body fat analysis, 2013. Thesis (Undergraduate) – Escola de Engenharia de São Carlos, Universidade de São Carlos, São Paulo, 2013. This thesis proposes improvements both in hardware and in software of the anthropometric 3D scanner AllBodyScan 3D. In this sense, a review of the rotational trajectories of the equipment was done seeking to obtain high quality models. Furthermore, the use of the Poisson method for surfaces reconstruction was investigated in order to increase the quality of the models through a high-level corrections. The scope of this work also includes the understanding, description and choices of the suited techniques. All these aspects seek to improve de viability of 3D scanner for anthropometrics purposes. Experimental results show that it is possible to generate digital models with appropriate quality that enable the calculation, of its volume for estimating body fat index. Keywords: 3D Scanner, Anthropometry, Body Fat, Computer Graphics, Computer Vision. 1 INTRODUÇÃO O escâner antropométrico All BodyScan 3D [1], utilizado nesse trabalho, é um equipamento que gera representações digitais 3D da superfície de pessoas para analisar medidas e índices corporais. Neste trabalho é feito o aprimoramento do hardware e software desse equipamento para a obtenção de malhas de pontos gerados. Além disso, foi desenvolvido o pós-processamento desses dados para utilização em aplicativos que estimam o índice de gordura corporal. A motivação para tal desenvolvimento baseia-se na relevância social que o mesmo produz possibilitando o controle da obesidade na sociedade em virtude dos aspectos negativos dessa doença, conforme sintetiza a Seção 1.1. 1.1 MOTIVAÇÃO A obesidade é uma preocupação da OMS (Organização Mundial de Saúde) [2], isso se deve basicamente aos seguintes fatores: A obesidade mundial quase dobrou desde 1980; Em 2008, mais que 1,4 bilhões de adultos com 20 anos ou mais foram identificados com sobrepeso. Destes, 200 milhões de homens e quase 300 milhões de mulheres são obesos; Mais de 40 milhões de crianças abaixo de cinco anos estavam com sobrepeso em 2011; Em 2009, uma em cada três crianças brasileiras de 5 a 9 anos estavam acima do peso recomendado pela OMS [3]; É possível prevenir a obesidade. Atualmente é utilizado para a obtenção do índice de gordura corporal métodos como pesagem hidrostática[23], Dual-Energy X-Ray Absorptiometry (DEXA) [23], dobras subcutâneas[23], e bioimpedância elétrica[23]. O método da pesagem hidrostática é um método de referência e tem sido utilizado como padrão ouro para obter o índice de gordura corporal. O escâner 3D apresentado nesse trabalho assemelha-se em aspecto ao método de pesagem hidrostática, pois utiliza o mesmo princípio para calcular o índice de gordura corporal. Dessa forma, o escâner 3D tem o potencial de trazer resultados compatíveis com um método que é aceito e bem estabelecido no meio acadêmico. 1.2 OBJETIVOS 1 Neste trabalho foi feito o aprimoramento do hardware e software do escâner antropométrico AllBodyScan 3D desenvolvido com a colaboração de pesquisadores do Instituto de Ciências Matemáticas e Computação – ICMC do campus de São Carlos da Universidade de São Paulo. Esse trabalho busca resolver aspectos desse equipamento para viabilização desse escâner para estimativa de índice de gordura corporal. Dois aspectos foram o foco deste trabalho: 1)No aspecto de hardware, foi feito o controle dos motores de passo do escâner utilizando controladores de motores de passo e também foram testadas trajetórias de deslocamento do sensor de profundidade com a finalidade com finalidade de obter melhores amostras de malhas 3D digitalizadas; 2) No aspecto de software, foi elaborado um protocolo para corrigir lacunas na superfície de modelos 3D obtidos pelo escâner; 3)Faz parte desse trabalho também a definição, a implementação e a descrição do procedimento para calcular o volume de um modelo e estimar o índice de gordura corporal com base no volume. 1.3 ORGANIZAÇÃO DO TRABALHO Esse trabalho é divido da seguinte forma: Capitulo 1 – Introdução “ contextualização do problema e abordagem do trabalho”; Capitulo 2 – Revisão Bibliográfica “descrição das tecnologias utilizadas nesse trabalho e dos fundamentos de composição corporal e os atuais métodos utilizados na sua avaliação”; Capitulo 3 – Abordagem Antropométrica Baseada no AllBodyScan 3D; Capitulo 4 – Experimentos Realizados; Capitulo 5 – Conclusões. 2 2 REVISÃO BIBLIOGRÁFICA 2.1 ESCÂNER 3D Há vários dispositivos que podem ser chamados de escâneres 3D. Qualquer dispositivo capaz medir o mundo físico utilizando lasers, luzes, raio-x ou até mesmo contato físico e que seja capaz de produzir uma nuvem de pontos ou uma malha poligonal pode ser considerado um escâner 3D. O elemento comum entre esses dispositivos é que todos são capazes de capturar a geometria de objetos físicos com certa qualidade. Algumas das possibilidades de aplicação de escâneres 3D são: Criar desenhos CAD (Computer Aided Design) de peças e produtos existentes – Engenharia Reversa; Criar modelos digitais precisos de objetos reais para sua utilização na indústria cinematográfica e na indústria de jogos digitais; Avaliação de estruturas; Construção de modelos digitais de obras de arte como a Figura 1 [4]; Estimativa de índices antropométricos para aplicações médicas; (1) (2) Figura 1 - Escaneamento da estátua de David, The Digital Michelangelo Project (1) e seu modelo Digital (2). 3 Existe atualmente uma variedade de sensores que podem ser usados para construir um escâner 3D como câmeras time-of-flight ou sensores de contato como os coordinate measuring machines [5]. As diversas abordagens basicamente diferenciam-se segundo os princípios de aquisição de imagens. Também deve ser considerada a qualidade dos modelos necessária para cada aplicação. 2.1 TRIANGULAÇÃO 3D E LUZ ESTRUTURADA Escâneres a laser utilizam o conceito de triangulação 3D para amostrar cada ponto de luz projetado no objeto a ser medido. Quando a luz é emitida em um objeto, um sensor recebe a luz do laser refletida do objeto e utiliza o princípio de triangulação para calcular a distância do objeto ao escâner. A distância entre a origem do laser e o sensor é conhecida precisamente, assim como o ângulo entre o sensor e o laser. Pela reflexão da luz do laser no objeto o sistema consegue discernir em qual ângulo o objeto está do sensor e, como consequência, a distância entre a origem do sensor e a superfície do objeto. A luz emitida pelo sistema geralmente não é apenas um ponto de luz, mas sim um padrão. Esse padrão se caracteriza por uma espécie de código representado por vários pontos de luz. Isso é importante para que o sensor do escâner possa discernir qual luz é realmente aquela projetada pelo escâner [6]. A Figura 2 ilustra um sistema de um escâner 3D, o objeto representado em amarelo é emissor de laser e o sensor é o objeto em cinza. O emissor projeta um padrão de luz estruturada codificada em três diferentes cores: vermelho, verde e azul. Para calcular a distância R entre o ponto P e o sensor, o sistema precisa utilizar a relação trigonométrica descrita na Equação 1. Figura 2 - Ilustração do processo de triangulação de um padrão de luz estruturada [7]. , (1) em que a distância B entre o sensor e emissor de luz, o ângulo do emissor θ e o ângulo do sensor α. O valor da distância B é precisamente conhecido pelo sistema assim como os ângulos θ e α. 4 2.2 ESCÂNERES A LASER NO MERCADO O sensor Kinect e Xtion Pro são escâneres a laser que implementam os processos descritos na Seção 1. O sensor Kinect foi introduzido no mercado pela Microsoft Corporation em novembro de 2010 como um dispositivo de entrada para o console XBOX 360. O dispositivo obteve o recorde mundial do Guinness de “dispositivo eletrônico de consumo com maior quantidade de vendas em um período de tempo”, vendendo oito milhões de unidades nos primeiros 60 dias de mercado [8]. Esse fato pode ser explicado por sua relação custo-benefício interessante, promovida pela alta demanda da utilização em jogos eletrônicos. A sociedade de visão computacional logo percebeu que a tecnologia do sensor de profundidade do Kinect poderia ser uma solução barata para aplicações que envolvessem as tradicionais câmeras 3D (como as câmeras time-of-flight). Em junho de 2011, a Microsoft publicou o seu primeiro SDK (Software Development Kit) para o Kinect, possibilitando o seu uso para o desenvolvimento de aplicativos não comerciais que utilizem as funcionalidades do dispositivo [9]. A tecnologia por traz do sensor Kinect foi originalmente desenvolvida pela companhia PrimeSense que publicou seu próprio SDK para Kinect como parte do projeto opensource OpenNI [10]. Este projeto buscou desenvolver um SDK que, além de suportar o Kinect, pudesse trabalhar com sensores concorrentes com o Kinect, como o Xtion Pro da ASUS [11]. A Figura 3 mostra uma imagem do Xtion Pro e do Microsoft Kinect. (1) (2) Figura 3 - Tipos de sensores de profundidade presentes no mercado: (1) Asus Xtion Pro (2) Microsoft Kinect. 2.3 CARACTERÍSTICAS E FUNCIONAMENTO DO KINECT 5 O princípio básico de funcionamento do sensor de profundidade do Kinect é baseado na emissão infravermelho de um padrão (Figura 4) e a simultânea captura do infravermelho refletido pelo objeto por um sensor CMOS tradicional que está sintonizado por filtro passa banda na faixa de infravermelho [12]. O Kinect possui o circuito integrado S1080 SoC da PrimeSense. A entrada do processador é um conjunto de posições (capturadas pelo sensor) relativas a um padrão emitido pelo Kinect. Com base nessas informações, o processador calcula a profundidade cada posição de pixels da imagem (Figura 5). O valor de profundidade é à distância do objeto até o plano em que o sistema câmera-laser ao invés da distância até o próprio sensor. Na prática, um sensor de profundidade pode ser visto como um dispositivo que retorna a posição (x,y,z) de um objeto 3D [13]. Figura 4 - Padrão de luz estruturada emitida pelo Kinect [13]. O conjunto dessas posições é à saída do Kinect, que é chamada de nuvem de pontos. Escâneres 3D produzem em geral uma grande quantidade de pontos. Uma nuvem de pontos pode ser vista na Figura 5. Cada ponto em um espaço 3D também é chamado de vértice. Aos vértices, em geral, são atribuídos conexões, ligando cada vértice de tal forma que diversos polígonos são gerados [14]. Com isso, forma-se uma rede de larga-escala, também chamada de malha, uma vez que esta representa superfícies do objeto 3D. 6 Figura 5 - Exemplo de nuvem de pontos representado por objeto 3D. Em malhas de objetos 3D em geral são somente consideradas as conexões locais. Para isso, em geral é utilizada uma representação por polígonos. É utilizada uma representação por uma malha poligonal é um conjunto de polígonos interligados (Figura 6). Em geral, triângulos são usados por simplicidade e generalidade. Cada polígono é descrito pelas coordenadas 3D dos seus vértices. Uma característica dessa representação são superfícies com aspectos poliédricos com aparência não orgânica. Para resolver essa limitação, têm sido utilizadas técnicas de alisamento (smoothing) ou interpolação [14]. É importante observar que tanto a representação em malha poligonal quanto a sua suavização são processos realizados por programas independentes do equipamento de aquisição de nuvem de pontos, no caso o Kinect. Figura 6 - Modelo 3D representado por polígonos. 7 2.4 FRAMEWORKS PARA AQUISIÇÃO E PROCESSAMENTO DE NUVENS DE PONTOS Existem vários softwares e frameworks que controlam a aquisição, processam e dispõem a os dados adquiridos. Todas as ferramentas apresentadas nesta Seção possibilitam lidar com o Kinect, embora não estejam a princípio restritas ao uso com esse equipamento. A Seção 2.6.1 apresenta o OpenNI, a Seção 2.6.2 o Microsoft Kinect SDK e a Seção 2.6.3 o RecontructMe. 2.4.1 OPENNI O OpenNI (Open Natural Interface) é um projeto opensource que busca desenvolver uma plataforma abrangente que consegue lidar com vários tipos de sensores de profundidades, dentre eles o Kinect ou Xtion Pro. Essa plataforma contêm ferramentas e algoritmos de visão computacional que são úteis para o desenvolvimento de aplicações. Figura 7 - Abstração da plataforma OpenNI, ilustrando a arquitetura do sistema [10]. O OpenNI realiza o papel de um intermediário ente a linguagem de baixo nível do dispositivo físico e as aplicações de alto nível que o usuário deseja desenvolver. Por meio de abstrações de hardware e um conjunto de instruções de alto nível (Figura 7), é possível obter os dados do sensor. Dessa forma, não é necessário que o programador conheça os requisitos de baixo nível do sensor, possibilitando que o desenvolvedor ganhe maior liberdade para produzir softwares de alta complexidade. O OpenNI tem sido utilizada com um sensor de profundidade seja utilizado em aplicativos que reconhecem gestos naturais dos usuários, como a movimentação das mãos ou dos dedos[10]. 8 2.4.2 MICROSOFT KINECT SDK Esse SDK é exclusivo para Microsoft Kinect, suportando tanto para o Kinect do Xbox quanto do Kinect para Windows. Suas ferramentas estão mais focadas no desenvolvimento de aplicativos de reconhecimento de gestos, movimentos ou de fala (Figura 8). Esta framework tem sido usado principalmente para o desenvolvimento de aplicações educacionais [15] apesar de existir aplicativos comercias[15]. Figura 8 - Reconhecimento de gestos faciais por aplicativo [15] que usa o Microsoft Kinect SDK. 2.4.3 RECONSTRUCTME O software comercial ReconstructMe foi desenvolvido pela empresa Austríaca PROFACTOR GmbH. Ele tem sido mais utilizado com o Kinect, mas é possível utilizá-lo com o sensor Xtion Pro . O software transforma uma nuvem de pontos em informações sobre o ambiente. A reconstrução do modelo ocorre em tempo real [16]. Assim como o OpenNI, o RecontructMe é uma API que encapsula comandos de mais baixo nível do Kinect. Além disso, essa API contém conjuntos de métodos e algoritmos especiais para transformar as informações obtidas pelo sensor em informações espaciais. O ReconstructMe suporta outros dispositivos além do Kinect. Este programa suporta também a função denominada Multiscan, que possibilita seu uso com vários sensores sobre um mesmo volume, aumentando assim a velocidade de digitalização e a aumentando também a área coberta pelo escâner. No projeto aqui apresentado, o processo de Multiscan foi investigado, mas foi encontrado dificuldades em relação a sincronismo e interferências entre os dispositivos. Foi escolhido o ReconstructMe para o uso nesse projeto, pois este apresenta mais recursos voltados para reconstrução de um volume 3D. O OpenNI e o Microsoft Kinect SDK são ferramentas que, como é explicado na Seção 2.4.2 e Seção 2.4.1, são ajustadas para o desenvolvimento de 9 aplicativos de reconhecimento de gestão e processamento visual. O RecontructMe foi o identificado como o mais fácil de ser ajustado para o processo de reconstrução 3D. 2.5 TRATAMENTO DE MODELOS 3D O Meshlab é um software de código livre que é portável e pode ser estendido para outros programas. Seu funcionamento foca na manipulação, edição e tratamento de malhas triangulares 3D [17]. O sistema se baseia na biblioteca VCG (Visualization and Computer Graphics) Library que é conhecido por oferecer várias funcionalidades do estado da arte para o processamento de malhas tridimensionais [18]. É com essa biblioteca que possível aplicar complexos métodos de tratamento 3D para os modelos gerados no sistema estudado neste trabalho, pois os modelos 3D gerados pelo hardware digitalizador possuem ruídos do processo de captura. Além disso, é necessário suavizar e realizar operação de cálculo do volume sobre os modelos 3D. 2.6 COMPOSIÇÃO CORPORAL E MÉTODOS PARA AVALIAÇÃO DA GORDURA CORPORAL Apresenta-se nessa secção uma breve explicação sobre os modelos de composição corporal. Além disso, se analisam os diversos métodos existentes para avaliação do índice de gordura corporal. 2.6.1 COMPOSIÇÃO CORPORAL É possível extrair vários dados antropométricos de uma pessoa tais como as circunferências e comprimento de várias partes do corpo. Esses valores são obtidos nos diferentes modelos de composição corporal. O modelo que é utilizado nesse trabalho é o básico de dois compartimentos, que é mostrado na Figura 9. Este divide o corpo humano em duas estruturas: Massa de gorda e Massa magra. Pode-se dizer que a massa de gorda representa a quantidade de gordura corporal e a massa magra o tecido não adiposo. Figura 9 - Diversos tipos de modelos compartimentais do corpo humano [19]. 10 Para determinar o índice de corporal de um indivíduo é necessário considerar vários fatores como o biótipo, sexo e idade. A Figura 10 apresenta uma aproximação das diferenças entre os índices de gordura corporal entre homens e mulheres. Segundo [21], o índice considerado saudável para homens abaixo de 40 anos varia entre 15% a 20% e para mulheres com menos de 40 anos entre 20% e 25%. Figura 10 – Comparativo da porcentagem de gordura corporal entre homens e mulheres [20]. 2.6.2 MÉTODOS PARA AVALIAÇÃO DO ÍNDICE DE GORDURA Para estimar a quantidade de gordura corporal há dois métodos básicos; os métodos diretos e métodos indiretos. Um método direto é aquele que é possível mesurar diretamente o valor da massa magra e massa gordurosa. Isso somente é possível pela dissecação de cadáveres. Um método indireto é aquele que mesura de maneira indireta o valor da massa magra e gordurosa. No intuito de estimar o a quantidade de gordura corpórea indiretamente, há atualmente diversos métodos como a pesagem hidrostática[23], dual-energy x-ray absorptiometry (DEXA) [23], dobras subcutâneas[23] e a bioimpedância elétrica [23]. Segue abaixo uma breve descrição de cada um desses métodos: Pesagem Hidrostática Neste método o paciente é imerso em tanque de água (Figura 11) e o volume de água deslocado é o valor de seu volume corporal. Com o valor do volume corporal e com o peso da pessoa, é possível calcular o valor da densidade corporal do paciente e, posteriormente, utilizando a equação de Siri [22], calcular o índice de gordura corporal. Este método tem sido considerado o padrão de referência para calcular com precisão o volume corporal. A desvantagem desse método é que o exame deve ser realizado em uma piscina e o paciente deve ser imerso totalmente na água e isso pode ser problemático para pessoas idosas ou com problemas de saúde. 11 Figura 11 - Pesagem hidrostática [23] . Dual-Energy X-Ray Absorptiometry (DEXA) DEXA, Figura 12, é reconhecido principalmente por sua aplicação na avaliação de densitometria óssea. Ele é baseado no modelo de três compartimentos do corpo humano dividindo a composição corporal em massa óssea, massa magra e massa gordurosa. Essa técnica considera que a composição mineral óssea é proporcional a quantidade de energia fotônica absorvida no tecido ósseo avaliado. DEXA é considerado um dos mais precisos métodos de avaliação corporal, pois mostra exatamente onde está localizada a gordura ao mapear todo o corpo. Os resultados desse método são significantemente replicáveis, pois a cada exame obtêm resultados próximos para um mesmo paciente. A desvantagem desse método é a pouca acuidade na medição de pacientes extremamente obesos e o custo total do equipamento ser relativamente alto. Figura 12 – DEXA [23] . 12 Dobras Subcutâneas O método de dobras subcutâneas, Figura 13, utiliza equações de regressão para predição da gordura corporal. São medidas diversas pregas cutâneas em vários pontos do corpo do paciente. A precisão desse método depende se as equações utilizadas são específicas para indivíduos semelhantes de uma determinada população e também da habilidade do avaliador no momento da aquisição das pregas. Figura 13 - Dobras subcutâneas [23]. Bioimpedância Elétrica O princípio do método da bioimpedância, Figura 14, se base na diferença de impedância entre os tecidos biológicos. A massa magra conduz a eletricidade mais facilmente por possuir um conteúdo de água e eletrólitos maior que a massa gorda oferece maior resistência por apresentar um baixo nível de hidratação. Desta forma, a corrente elétrica percorre com maior facilidade a massa magra do que a massa gorda. Um equipamento sensível suficientemente para observar a diferença de resistência entre os tecidos é utilizado para estimar o valor da gordura corporal. A vantagem desse método é facilidade de executar o exame, não havendo a necessidade de um avaliador com alto grau de habilidade para administrar o equipamento. A desvantagem é que vários fatores como hormônios e a concentração de fluidos corporais no momento da avaliação pode levar a diferenças significativas na avaliação do exame. 13 Figura 14 - Bioimpedância elétrica [23]. 2.7 EQUAÇÃO DE SIRI A equação apresentada no trabalho de Siri [22] utiliza o apenas o modelo de dois compartimentos (Seção 2.6.1) para representar a composição corporal. Existem também outras variações desta equação que consideram a idade e o sexo da pessoa. A vantagem de utilizar essa formula é a simplicidade, pois para o cálculo da porcentagem da gordura corporal, utiliza-se apenas o valor da densidade corporal. Esta equação considera que o corpo humano é composto por massa gordurosa e massa magra. No trabalho de Siri, há uma aproximação empírica para a densidade da massa magra e massa gordurosa. Para massa magra, sua densidade é 1.10g/cm³ e para massa gordurosa 0.9g/cm³. Supondo esses dois valore, pode-se deduzir a equação de Siri a partir da definição da formula clássica da densidade (Equação 2): ; (2) Em que m é a massa; v é o volume e D é a densidade corporal total, tem-se que: ; Como e ( ) ( ) ; ; (3) (4) (5) ³, então: 14 ( ) ; (6) Do modelo de dois compartimentos para a composição corporal; ; (7) Então: ( ) ;(8) Manipulando matematicamente, chega-se a seguinte equação: ; Em que (9) , isto é, a porcentagem de gordura corporal. Com o intuito corroborar a exatidão do volume obtido por um método de escaneamento 3D com o método da pesagem hidrostática, Peper, M. Resse et al [24] em seu trabalho realizam uma comparação com o volume obtido por um escâner 3D e o volume obtido pela pesagem hidrostática. O escâner utilizado neste trabalho foi o produzido pela empresa Figura 15 - Escâner 3D da empresa , Figura 15. utilizado para verificação do método de aquisição antropométrica do índice de gordura [25]. 15 A Figura 16 mostra a forte relação entre o volume obtido pelo escâner e pela pesagem hidrostática. Desta forma é justificável utilizar a equação de Siri para calcular a porcentagem de gordura corporal, pois o cálculo da massa gordurosa é o mesmo para os dois métodos. Figura 16 - Relação entre o volume adquirido pelo método de pesagem hidrostática e a aquisição a laser. O gráfico mostra uma forte relação entre os dois métodos R² = 0,99 [24]. 16 2.8 ESCÂNER 3D ANTROPOMÉTRICO O desenvolvimento de um escâner 3D antropométrico para avaliar o índice de gordura corporal e também para outras aplicações médicas é descrito no trabalho de Gazziro [19]. Em seu projeto inicial a aquisição das nuvens de pontos era efetuada por meio de câmeras de vídeo do tipo VGA e um laser como gerador de linha e o sensoriamento era efetuado por módulos de aquisição (Figura 17). Para deslocar o laser na extensão vertical, o sistema utiliza motores de passos controlados por um módulo de controle. Este escâner utiliza a técnica de triangulação para obter as nuvens de pontos. Na base do sistema, está uma balança de precisão que faz a aquisição do peso. Figura 17 – Protótipo desenvolvido por Gazziro [19], mostrando alguns de seus componentes. 2.9 PROTÓTIPO ALLBODYS CAN 3D Com visto anteriormente, a utilização do sensor Kinect como escâner 3D é um solução relativamente simples, viável e capaz de gerar modelos digitais. Além disso, o fato de que este sensor é facilmente encontrado no mercado e o crescente desenvolvimento de frameworks e softwares para a manipulação dos dados do Kinect o tornam um dispositivo interessante para aplicações antropométricas. O sistema de escâner antropométrico AllBodyScan 3D, desenvolvido pelo Instituto de Ciências Matemáticas e Computação – ICMC do campus de São Carlos da Universidade de São Paulo sob a coordenação do prof. Doutor Mario Alexandre Gazziro e cooperação do prof. Alexandre 17 Cláudio Botazzo Delbem. As Seções 2.9.1 apresenta os componentes do sistema e as Seções 2.9.2 a 2.9.7 descrevem cada um dos componentes. 2.9.1 DESCRIÇÃO DO SISTEMA Nesta seção é descrita os componentes e também os softwares utilizados no sistema AllBodyScan 3D. Com os objetivos de reconstrução digital do corpo inteiro de uma pessoa e também de realizar todo o procedimento de forma automática e rápida, o escâner foi projetado conforme sintetiza a Figura 18. A parte circular contém um trilho pelo qual percorre uma haste vertical (chamada de totem). O totem possui um trilho no qual corre o sensor Kinect. No centro do trilho circular fica a pessoa de quem será feito o escaneamento. Figura 18 - Protótipo do escâner 3D antropométrico (AllBodyScan 3D) utilizado nesse trabalho. Um trilho permite que um poste, que contém o sensor Kinect gire em torno da pessoa. O deslocamento do poste no trilho é efetuado por um motor de passo e os extremos do trilho são monitorados por sensores capacitivos. Também está presente nos extremos uma chave mecânica de segurança que é acionada fisicamente caso o sensor capacitivo falhe. O acionamento da chave desliga forçadamente a alimentação de energia do sistema. No poste está presente o sensor Kinect, este sensor está ligado ao sistema que possibilita seu movimento vertical. O deslocamento é executado por um motor de passo. Nos extremos do poste há sensores capacitivos para restringir o movimento do motor de passo. 18 Tanto o motor de passo da trilha quanto o do poste são controlados por um módulo de potência. Este módulo é conectado a um computador que envia comandos para o controlador presente no módulo. O mesmo computador que controla os motores de passo é encarregado de receber os dados do sensor Kinect. 2.9.2 CONTROLADORES Para gerenciar o funcionamento dos motores de passo, a utilização de controladores ST10-Plus da Applied Motion (Figura 19) é uma solução que facilita o acesso do usuário com os motores. Estes controladores são úteis tanto para usuário com pouco conhecimento de hardware quanto para usuário avançados, pois os seus comandos são simples, mas possuem a opção de acesso total aos motores. Não é necessário controlar, por exemplo, a aceleração dos motores. Isso é executado internamente no controlador e é somente requisitado do usuário qual é a velocidade final desejada. Figura 19 - Controlador para motores de passo da Applied Motion. O controlador se comunica diretamente a um computador ou via um HUB da própria empresa. É enviado ao controlador um código na linguagem Serial Command Language (SCL). Essa linguagem consiste em códigos compostos por caracteres ASCII. O envio do código do controlador pode ser feito por um programa escrito em qualquer linguagem que conhece o código SCL ou através do software do próprio controlador. 2.9.3 HUB A comunicação com computador e os controladores de cada motor é realizada no AllBodyScan 3D pelo Hub444 da Applied Motion (Figura 20). Ele é responsável em decodificar a informação provinda da porta serial e endereçar a informação correta para cada controlador. A utilização desse componente é interessante, pois a comunicação é feita com os dois controladores com apenas uma porta serial. 19 Figura 20 - HUB para comunicação entre vários controladores da Applied Motion. 2.9.4 MOTORES DE PASSO Tanto o motor de passo para rotação do poste quanto o motor para o deslocamento do Kinect são do modelo KTC-HT23-400 da Digitech Automação Industrial. Porém, o motor de passo para a rotação tem a capacidade de 2,0A e o para o descolamento vertical é de 1,0A. Na Tabela 1 são indicadas as características desses motores. TABELA 1 - parâmetros dos motores de passo da Digitech, destacando o modelo utilizado no AllBodyScan 3D. 2.9.5 MICROSOFT KINECT O Microsoft Kinect (Seção 2.3) o componente utilizado como câmera de profundidade para a aquisição de dados no sistema AllBodyScan. É utilizado o software ReconstructME para coletar e armazenar as nuvens de pontos geradas pelo escâner conforme apresentado na Seção 2.4.3. 2.9.6 FERRAMENTAS COMPUTACIONAIS Para construção do modelo 3D utiliza-se software ReconstructME com instruções customizadas para atender a aplicação em questão. 20 O Applied Motion Si Programmer é a interface de programação utilizada para enviar comandos codificados no padrão SCL aos controladores dos motores de passo. Essa interface é fornecida gratuitamente no site da Applied Motion. Para o tratamento e também manipulação do modelo digital produzido pelo ReconstructMe utiliza-se o software MeshLab. Neste software é possível aplicar métodos para aprimorar a malha bruta e também para calcular dimensões do modelo digital. Para calcular o índice de gordura de um modelo antropométrico obtido pelo escâner, há um software elaborado pelo sistema AllBodyScan 3D que recebe as informações de volume e peso de um paciente e calcula, automaticamente, o índice de gordura [1]. Este software foi desenvolvido na linguagem Python durante a realização deste trabalho de conclusão de curso. 21 3 ABORDAGEM ANTROPOMÉTRICA BASEADA NO ALLBODYSCAN 3D Essa Seção está dividida em aspectos de hardware e de software. Na Seção sobre hardware aborda-se como foi feito o desenvolvimento do trabalho para controlar os motores de passo do sistema e também como estipular uma trajetória que possibilitasse conseguir modelos digitais no sistema AllBodyScan 3D adequados para se fazer estimativas antropométricas. Na Seção sobre software descreve-se como tratar os modelos digitais produzidos pelo escâner a fim de favorecer a obtenção dos melhores resultados possíveis em cálculos posteriores. Também se apresenta um protocolo para calcular o volume de um modelo 3D por meio do software MeshLab. 3.1 ASPECTOS DE HARDWARE Como foi na Seção 2.9.4, o sistema do escâner AllBodyScan 3D é constituído por dois motores de passos que deslocam o totem na horizontal e sensor na vertical. Para controlar a velocidade, aceleração e corrente elétrica de cada motor é utilizado controladores da controladores ST10-Plus da Applied Motion. Para isso é preciso enviar via uma porta serial comandos codificados no padrão SCL. Os comandos de código podem ser vistos na Figura 21. Por simplicidade, o software ST Configurator também da Applied Motion (Figura 23) foi utilizado para facilmente configurar os valores de velocidade, aceleração, torque e corrente no motor. Dessa forma, não é necessário que o operador do sistema conheça os comandos específicos do em SCL. Outra vantagem do uso do ST Configurator é seu suporte ao endereçamento requerido pelo HUB, pois nesse software é possível escolher para qual dos controladores serão enviadas as configurações. Figura 21 – Mapeamento dos comandos SCL para motores de passos. 22 A rotina de envio de comandos para os motores de passo é a exemplificada na figura 22. Figura 22 - Diagrama para o envio de comandos de controle para os motores de passo. Figura 23 - Software para envio de comandos SCL para os motores de passo. 23 Outro aspecto importante do AllBodyScan 3D que depende de seu hardware é o ajuste das trajetórias dos sensores buscando o melhor mapeamento possível do corpo a ser digitalizado. Neste escâner não é possível ajustar a distância entre o paciente e o sensor, assim somente é possível variar a trajetória do sensor Kinect por meio das posições relativas do totem e do Kinect controlado pelos dois motores de passo (Seção 2.9.4). Busca-se o ajuste de uma trajetória que possibilite digitalizar o corpo da pessoal por inteiro e com a menor quantidade de erros possíveis. Para isso, deve se considerar a velocidade a qual o sensor Kinect se desloca na vertical e a velocidade de deslocamento do totem bem como a trajetória do movimento do sensor ao redor a paciente. Duas trajetórias possíveis foram avaliadas neste trabalho: a trajetória circular e a trajetória helicoidal. A trajetória circular indicada na figura 24 é a mais simples, pois não é necessário que os dois motores de passo atuem ao mesmo tempo. Tomando a Figura 24 como base, pode-se descrever essa trajetória de seguinte forma: 1 2: Apenas o motor de passo do totem é acionado até o fim do trilho; 2 3: Apenas o motor de passo do Kinect é acionado até a posição final vertical; 34: Apenas o motor de passo do totem é acionado até o início do trilho; 4 1: Apenas o motor de passo do Kinect é acionado até a posição inicial vertical. Figura 24 - Trajetória circular. Por outro lado a trajetória helicoidal da figura 25 faz com que os dois motores funcionem ao mesmo tempo. Tomando a Figura 25, pode-se descrever essa trajetória da seguinte forma: 1 2: O motor de passo do sensor desloca o Kinect até a posição final vertical enquanto o motor de passo do totem o desloca até o fim do trilho; 24 2 3: Apenas o motor de passo do Kinect é acionado até a posição inicial vertical; 34: O motor de passo do Kinect vai até a posição final vertical enquanto o motor de passo do totem se desloca até o inicio do trilho; 4 1: Apenas o motor de passo do Kinect é acionado até a posição inicial vertical. Figura 25 - Trajetória helicoidal. 3.2 ASPECTO DE SOFTWARE PARA TRATAMENTO DOS MODELOS 3D Após o processo de escaneamento do individuo é obtido um modelo 3D. Este modelo bruto possui ruídos e distorções e suas origens dependem de diversos fatores. Por exemplo, podem haver defeitos gerados no modelo 3D devido ao movimento do paciente durante a digitalização, a oscilações no movimento do totem e do sensor, à precisão do sensor utilizado, à luz ambiente e dentre outros. Dessa forma é necessário aplicar métodos computacionais que corrijam, preencham e suavizam o modelo. Para tal objetivo é utilizado o método de reconstrução de superfícies Poisson, implementado no software MeshLab. Nesse método, há quatro parâmetros (Octree Depth, Solver Divide, Samples per node e Surface Offsetting) que devem ser ajustados dependendo da origem do modelo 3D. O ajuste desses parâmetros foram feitos por um processo empírico. 25 3.2.1 RECONSTRUÇÃO DE SUPERFÍCIES VIA POISSON O método de Poisson [26] permite fechar a superfície um objeto 3D obtida pelo AllBodyScan 3D. Esse método realiza aproximações de distribuições normais próximas das lacunas que devem ser preenchidas [26]. A reconstrução via Poisson possui os seguintes parâmetros: Octree Depth, Solver Divide, Samples per Node e Surface Offsetting. Para verificar qual o melhor conjunto de valores para esses parâmetros para tratar os dados gerados pelo AllBodyScan 3D foi necessário realizar diversos testes até se chegar a valores que aproximam adequadamente a superfície. Na Figura 26 algumas variações dos parâmetros buscam ilustrar como afetam a qualidade da malha final obtida. A tabela 2 indica os valores dos parâmetros utilizados para cada modelo da Figura 26. Figura 26 - Ajuste dos parâmetros da reconstrução de superfícies de Poisson. 26 TABELA 2 - Variação dos parâmetros de Poisson para os modelos da figura 26. Modelo 3D (A) (B) (C) (D) (E) Octree Depth 6 7 6 6 6 Solver Divide 6 6 5 6 6 Samples per node 1 1 1 2 1 Surface Offsetting 1 1 1 1 2 Pela Figura 26 observa-se que os parâmetros influenciam no resultado final de uma maneira significativa. O modelo (A) possui atributos que não alteram significativamente a malha e a deixa semelhante a malha bruta original. No modelo (C) e (D) é possível notar que foram adicionados grandes malhas que não condizem com o modelo real. Já no modelo (E) é notável que o volume do modelo 3D foi reduzido significativamente. Em todos os modelos em que se aplicou a reconstrução via Poisson observa-se que a quantidade de nuvem de pontos e a quantidade de malhas poligonais foram reduzidas. Porém no modelo (B) essa redução não afeta significativamente o volume original e resulta no fechamento de lacunas na superfície do modelo original. Assim, os parâmetros utilizados para esse modelo são mais adequados que os demais. A Seção 4.2 apresenta os parâmetros que se mostram os mais apropriados segundo testes realizados nesse trabalho. 3.2.2 CÁLCULO DO VOLUME DE UM MODELO 3D Para calcular o volume de um objeto 3D primeiro é necessário que este seja um volume fechado. Para isso é coerente aplicar reconstruções de superfícies como o método de Poisson para tratar malhas 3D obtidas por digitalização, pois é bem provável que alguma lacuna esteja presente na malha gerada pelo escâner, conforme mostrado na Seção 3.2.1. O programa MeshLab traz implementado em seu sistema um algoritmo descrito no trabalho de B. Mirtich [27] que permite o cálculo do volume de um modelo 3D fechado. Foi utilizado então esse algoritmo para calcular o volume dos modelos digitalizados pelo escâner. Na Figura 27 é exemplificada a escolha do algoritmo para o cálculo de volume. Na Figura 28 é mostrado o volume resultante para este modelo. O MeshLab apresenta o valor do volume em . 27 Figura 27 – Seleção do método de cálculo do volume de um modelo 3D no software MeshLab. Figura 28 – Exemplo de saída do MeshLab contendo o valor do volume do modelo 3D. 4 EXPERIMENTOS REALIZADOS Os experimentos são primeiramente apresentados separando as etapas de hardware (Seção 4.1) e de software (Seção 4.2). Em seguida, é apresentado um estudo de caso buscando mostrar que o AllBodyScan 3D pode ser utilizado para estimar o índice de gordura corporal, que corresponde a aplicação avaliada neste trabalho. 4.1 AJUSTE DOS CONTROLADORES E TRAJETÓRIAS DO SENSOR Para ajustar os controladores de aceleração e de a velocidade dos motores, foi considerado o resultado final de cada aquisição. Para o resultado ótimo, a velocidade de rotação do totem não pode ser alta, pois se o deslocamento do totem for muito rápido alguns pontos podem ser perdidos no processo de digitalização. A aceleração que o motor fornece ao sistema até atingir a velocidade desejada não deve ser muito elevada, mas deve ser o suficiente para vencer a inercia inicial do totem quando parado. Para os valores de velocidade, encontrado empiricamente, o valor ideal foi em torno 28 de 10 cm/s e o valor da aceleração foi ajustado em 2cm/s². Para o motor de passo do Kinect, o mesmo resultado foi obtido: o sensor deve se locomover em uma velocidade baixa e sua aceleração deve ser suficiente para vencer a inercia do sistema. A velocidade o motor que desloca o sensor é de aproximadamente 5 cm/s e sua aceleração de 1 cm/s². Quanto à trajetória do sensor ao redor do paciente a melhor foi à trajetória circular. Essa trajetória se mostrou a melhor para a distância que o sensor foi colocado do paciente. Como o AllBodyScann 3D possui uma distância já pré-determinada entre o sensor e o paciente, a trajetória helicoidal não apresentou resultados satisfatórios. A trajetória helicoidal se mostra uma trajetória viável se fosse possível ajustar a distância entre o sensor e o paciente. Na Figura 29, o modelo (A) foi digitalizado utilizando uma trajetória circular e no modelo (B) foi utilizado à trajetória helicoidal. Note que os dois modelos possuem lacunas significativas. Ocorre que a modelo (B) há lacunas que se encontram na região abdominal do modelo, isso se dá pelo fato de que esta trajetória não se adapta muito bem a distância entre o sensor e o paciente. No modelo (A) há lacunas na região lateral do modelo, pois para este modelo não foi ajustado à velocidade que escâner se deslocou. O modelo (C) utiliza uma trajetória circular com velocidade dos motores já ajustadas. Nota-se que há uma grande diminuição nas lacunas desse modelo em comparação ao (A) e (B). Em todos os modelos é possível observar que há lacuna na extremidade da cabeça dos modelos. Isso é consequência da altura máxima que o sensor consegue alcançar nesse sistema. 29 Figura 29 - Comparação dos modelos 3D para diferentes trajetórias. 4.2 RECONSTRUÇÃO E CÁLCULO DO VOLUME DE UM MODELO 3D Após a reconstrução de superfícies via método de Poisson (Secão 3.2.1) devem-se considerar cautelosamente quais os valores dos parâmetros do método devem ser utilizados. Esses valores são obtidos empiricamente, pois há uma dependência entre o formato do modelo 3D e os parâmetros de Poisson. Para modelos antropométricos obtidos pelo sistema AllBodyScan 3D os parâmetros ótimos obtidos foram os da Tabela 3. 30 TABELA 3 - Valores dos parâmetros do método de Poisson ajustados para o Allbodyscan 3D. Octree Depth 6 Solver Divide 6 Samples per Node 1 Surface offsetting 1 As figuras 30, 31 e 32 mostram, respectivamente, a malha bruta adquirida pelo escâner, o modelo 3D sem pontos indesejados mas com lacunas e, por último, o modelo 3D após a aplicação da reconstrução via Poisson com os parâmetros da Tabela 3 . Figura 30 - Malha bruta obtida pelo escâner; indicando a presença de pontos indesejados e erros na aquisição. 31 Figura 31 – Modelos sem os pontos indesejados mas com lacunas. Figura 32 - Modelo final após a aplicação da reconstrução de Poisson. Preenchimento de lacunas e suavização do modelo. 4.3 ESTUDO DE CASO Com base nos teste apresentados na Seção 4.1 para ajustar os parâmetros do AllBodyScan 3D, foi realizado um estudo de caso para o cálculo de gordura corporal. Para isso, contou-se com a colaboração da modelo Carine Felizardo que permitiu ter seu corpo digitalizado pelo escâner. A tabela 4 apresenta a altura, peso e idade da modelo. 32 TABELA 4 - Dados da modelo. Dados da Modelo Altura 1,62m Peso 58,3kg Idade 25 Para conseguir resultados mais precisos, a modelo foi digitalizada com roupas apropriadas visando à redução do incremento de volume possibilitando atingir dessa forma um valor mais próximo ao valor do volume corporal real. O modelo obtido diretamente pelo escâner 3D é representado na figura 33. Na figura 34 apresenta o mesmo modelo coma a remoção dos pontos indesejados. Na figura 35 mostra-se o modelo obtido após aplicação da reconstrução de superfície Poisson para suavizar e preencher possíveis lacunas da malha 3D. Figura 33 - Modelo bruto obtido pelo escâner contendo pontos indesejados. 33 Figura 34 - Modelo já sem pontos indesejados, mas ainda contendo lacunas. Figura 35 - Modelo final, após a reconstrução de Poisson. 34 Por fim, a Figura 36 mostra o resultado do software MeshLab apresentando o volume de 55400 para este modelo 3D. Figura 36 - Resultado do programa MeshLab para a modelo. Com o volume do modelo digital calculado e o peso, é possível calcular a densidade da pessoa. Com esses dados estima-se o índice de gordura pela equação de Siri (Seção 2.7). A Figura 37, mostrase a interface do software que controla o AllBodyScan 3D e executa os demais programas utilizados por esse sistema. Conforme mostrado na Figura 37, a própria interface do AllBodyScan 3D apresenta o resultado final, isto é, o índice de gordura corporal estimado. Figura 37 – Interface gráfica do programa gerenciador do AllBodyScan 3D mostrando o laudo. Segundo a Figura 37 o valor do índice corporal da modelo é de 20,07%. A Figura 38 mostra uma miniatura impressa do busto da modelo produzido a partir de seu modelo 3D digitalizado pelo 35 escâner, como forma de ilustrar a qualidade que o AllBodyScan 3D possui de reproduzir a forma original da superfície e volume da pessoa digitalizada; Figura 38 - Comparação do modelo digital e a miniatura impressa da modelo Carine Felizardo. Com base na análise de composição de gordura corporal descrita na Seção 2.6, pode-se concluir que a estimativa é coerente. Por exemplo, utilizando as imagens da Figura 10, a modelo Carine Felizardo realmente poderia ser classificada na faixa entre 20-22% de gordura. Observe que uma inspeção visual das silhuetas do abdômen da imagem corresponde a essa faixa de porcentagem na Figura 10 e na imagem modelo Carine Felizardo indica semelhança. Naturalmente os resultados apresentados neste trabalho precisam de pesquisas complementares para se ter certeza da capacidade de estimar o índice de gordura corporal para diferentes tipos de pessoas, isto é, com diferentes níveis de porcentagem de gordura. Esse tipo de pesquisa requer a colaboração de especialistas da área, bem com a colaboração de um conjunto significativo de pessoas (ou pacientes) a serem avaliados pelo AllBodyScan 3D e outras técnicas de estimação do índice. Recentemente pesquisadores de outras instituições têm colaborado neste sentido, com resultados preliminares que se mostram motivadores. 36 5 CONCLUSÕES A digitalização correta de um modelo 3D e seu posterior tratamento são essenciais para conseguir estimativas antropométricas adequadas. O trabalho aqui realizado aprimora tanto o hardware quanto o software do sistema AllBodyScan 3D. Um das dificuldades desse trabalho foi o fato de vários fatores externos afetarem o processo de digitalização. Dentre esses fatores, foram mais impactantes a presença luz intensa no ambiente, movimento da pessoa durante a aquisição e a ocorrência de falhas mecânicas. Esses problemas foram contornados por meio de experimentos realizados para ajustar tanto aspectos de hardware quanto de software do sistema. Por fim, o sistema AllBodyScan 3D com parâmetros de hardware e software ajustados foi utilizado para estimar o índice de gordura corporal de uma pessoa que é modelo. A utilização de um modelo é um aspecto interessante, uma vez que a porcentagem de gordura corporal do modelo pode ser estimada visualmente, com base na classificação por meio de imagens do abdômen de mulheres (Figura 10). Em suma, verificou-se que a estimativa obtida pelo AllBodyScan 3D mostrou-se coerente com a estimativa visual. Apesar de ser uma estimativa visual e possibilitar certa imprecisão, esse procedimento não depende de equipamentos e profissionais especializados. É muito importante observar que a cooperação com tais profissionais não foi possível durante o trabalho do aluno. Outras instituições iniciarem cooperação buscando validar os resultados do sistema completado por meio das investigações realizadas neste trabalho. O sistema tem sido comparado com os resultados obtidos por outras técnicas de estimativa de índice de gordura corporal considerando um número estatisticamente significativo de pessoas, além da avaliação de pesos com características bem distintas, como por exemplo, obesos mórbidos e halterofilistas. 37 6 BIBLIOGRAFIA [1] M. A. Gazziro, P. Scotton, H. Bittencourt, A. Osti, “Calibration-less Anthropometric Scanner Using GPU ’ s,” 3D Body Scanning Technol., vol. 3, pp. 307–315, 2012. [2] “WHO | Obesity and overweight.” [Online]. Disponível: http://www.who.int/mediacentre/factsheets/fs311/en/index.html. [Acessado: 17-Feb2013]. [3] “Obesidade no Brasil.” [Online]. Disponível: http://obesidadenobrasil.com.br/estatisticas/. [Acessado: 17-Feb-2013]. [4] “The Digital Michelangelo Project.” [Online]. Disponível: https://graphics.stanford.edu/projects/mich/. [Acessado: 04-Mar-2013]. [5] F. Bernardini e H. Rushmeier, “The 3D Model Acquisition Pipeline,” Comput. Graph. Forum, vol. 21, no. 2, pp. 149–172, Jun. 2002. [6] M. Reiss e A. Tommaselli, “Reconstrução 3D por Luz Estruturada: Calibração dos Vetores Diretores dos Feixes de Padrões Projetados,” XXI Congr. Bras. Process. imagem, pp. 1–5, 2003. [7] J. Geng, “Structured-light 3D surface imaging: a tutorial,” Adv. Opt. Photonics, vol. 3, no. 2, p. 128, Mar. 2011. [8] “Kinect - Wikipedia, the free encyclopedia.” [Online]. Disponível: http://en.wikipedia.org/wiki/Kinect. [Acessado: 13-Mar-2013]. [9] “Microsoft Brasil | Dispositivos e Serviços.” [Online]. Disponível: http://www.microsoft.com/pt-br/default.aspx. [Acessado: 13-Mar-2013]. [10] “OpenNI | The standard framework for 3D sensing.” [Online]. Disponível: http://www.openni.org/. [Acessado: 13-Mar-2013]. [11] “ASUS - Xtion PRO.” [Online]. Disponível: http://www.asus.com/Multimedia/Xtion_PRO/. [Acessado: 13-Mar-2013]. [12] “Razor Vision - How Kinect and Kinect Fusion (Kinfu) Work.” [Online]. Disponível: http://razorvision.tumblr.com/post/15039827747/how-kinect-and-kinect-fusion-kinfuwork. [Acessado: 17-Feb-2013]. [13] K. D. Sensor, E. F. O. R. Computer, and V. Applications, “Kinect Depth Sensor Evaluation for Computer Vision Application,” Tech. Rep. ECE-TR-6, p. 37, 2012. [14] P. Gois, “Reconstrução de superfícies a partir de nuvens de pontos,” 2004. [15] “Kinect for Windows | Voice, Movement & Gesture Recognition Technology.” [Online]. Available: http://www.microsoft.com/en-us/kinectforwindows/. [Accessed: 13-Mar-2013]. 38 [16] “Reconstruct your world with ReconstructMe.” [Online]. Disponível: http://reconstructme.net/. [Acessado: 13-Mar-2013]. [17] “MeshLab.” [Online]. Disponível: http://meshlab.sourceforge.net/. [Acessado: 19-Mar2013]. [18] “VCG Library: The VCG Library.” [Online]. Disponível: http://vcg.isti.cnr.it/~cignoni/newvcglib/html/. [Acessado: 19-Mar-2013]. [19] M. A. Gazziro, “Projeto e Construção de um Scanner Antropométrico Baseado no Método de Triangulação a Laser,” 2005. [20] “Body fat porcentage pictures of man and women.” [Online]. Disponível: http://www.builtlean.com/2012/09/24/body-fat-percentage-men-women/. [Acessado: 17-Mar-2013] [21] “SOSFisio.” [Online]. Disponível: http://sosfisio.blogspot.com.br/2012/05/monitordigital-degordura- corporal.html. [Acessado: 17-Mar-2013] [22] W. E. Siri, “Siri, W.E. (1956). The gross composition of the body, In: Advances in Biological na Medical Physics, pages 239-240. C. A. Tobias and J.H. Lawrence, New York.,” Adv. Biol. Med. Phys., pp. 239–240, 1956. [23] F. Salgueirosa, “Composição Corporal.” [Online]. Disponível: http://www.edf.ufpr.br/Graduacao/programadisciplinas/AtFisicaSaude/composicao corporal.pdf. [Acessado: 17-Mar-2013] [24] B. X. M.Reese Pepper, Jeanne H. Freeland-Graves, Wurong Yu, Philip R Stanforth, “Evaluation of rotary laser body scanner for body volume and fat assessment,” NIH Pulic Acess, vol. 39, no. 1, pp. 1–6, 2011. [25] “[TC]2 - 3D Body Scanning.” [Online]. Disponível: http://www.tc2.com/index_3dbodyscan.html. [Acessado: 17-Mar-2013]. [26] M. Kazhdan, M. Bolitho, and H. Hoppe, “Poisson Surface Reconstruction,” Eurographics Sysmposium Geom. Process., 2006. [27] B. Mirtich, “Fast and Accurate Computation of Polyhedral Mass Properties,” J. Graph. Tools, vol. Volume 1, 2000. 39