• Nenhum resultado encontrado

Estimativa da resposta glicêmica em refeições para diabéticos utilizando visão computacional

N/A
N/A
Protected

Academic year: 2021

Share "Estimativa da resposta glicêmica em refeições para diabéticos utilizando visão computacional"

Copied!
20
0
0

Texto

(1)

Estimativa da Resposta Glicêmica em Refeições para 

Diabéticos Utilizando Visão Computacional 

Julio Henrique Bitencourt, Marcus Hert da Corégio 

Departamento de Ciência da Computação - Universidade do Sul de Santa Catarina  (UNISUL) 

Caixa Postal 370 – 88.704-900 – Tubarão – SC – Brasil  {julio.bitencourt, marcus.coregio}@unisul.br

Abstract. This paper describes a computational model to estimate nutrients                    present in meals to diabetic people, through digital images. Techniques of                      digital image processing along with computational vision will be applied to                      treatment and standardization of acquired images, associated with machine                  learning techniques to recognition and classification of meal foods. The results                      taken by the model will be confronted against data present in nutritional                        tables, defining its inference. After the results validation we got 81,49%                      precision in food recognizing and a relative mean error of 12,56% on volume                          estimation. 

Resumo. Este artigo descreve um modelo computacional para realizar                  estimativa de nutrientes presentes em refeições para pessoas diabéticas                  através de imagens digitais. Foram aplicadas técnicas de processamento                  digital de imagens juntamente com visão computacional para tratamento e                    padronização das imagens adquiridas, associadas a técnicas de aprendizado                  de máquina para reconhecimento e classificação dos alimentos da refeição.                    Os resultados obtidos pelo modelo foram confrontados com dados presentes                    em tabelas nutricionais, definindo sua inferência. Após a validação dos                    resultados foi obtido 81,49% de acerto no reconhecimento dos alimentos e                      erro médio relativo de 12,56% na estimativa de volume. 

1. Introdução 

A diabetes mellitus, ou apenas diabetes, é uma doença crônica metabólica caracterizada        pelo aumento da glicose no sangue (ou glicemia). Ocorre por consequência de o        pâncreas não conseguir produzir insulina suficiente ou o corpo não aproveitar        eficientemente o nível de insulina produzido. A insulina por sua vez, é um hormônio        que permite a entrada nas células, do açúcar que está no sangue para ser utilizado como        fonte de energia [Sociedade Brasileira de Diabetes, 2015]. 

Em pesquisa realizada pela Organização Mundial de Saúde (2016), a prevalência        de diabetes mundialmente para a população adulta saltou de 4,7% para 8,5% no período        entre 1980 e 2014, chegando a atingir 422 milhões de pessoas. No Brasil, a incidência        de diabéticos no último relatório realizado pelo Ministério da Saúde em parceria com o        IBGE de 2015 era de 9 milhões de brasileiros [Portal Brasil, 2015], correspondendo a        6,2% da população adulta. 

(2)

A diabetes pode ser caracterizada no geral entre dois tipos, o tipo 1 (um), onde o        paciente necessita de injeções de insulina para a sobrevivência pois o corpo não produz,        ou o tipo 2 (dois), quando é necessário ter o controle, uma vez que o corpo embora        produza, não consiga fazer uso próprio da insulina, sendo o último tipo o mais comum        [Sociedade Brasileira de Diabetes, 2016].  

O tratamento geralmente é realizado em conjunto, através de uma combinação        de medicações orais e injeções de insulina (obrigatório para casos do tipo 1), atividades        físicas e o planejamento alimentar [Sociedade Brasileira de Diabetes, 2016]. No geral o        tratamento adotado tem foco no controle da alimentação, tendo em vista que isso        permite ao paciente uma nova reeducação e estilo de vida, afinal, a maioria dos        pacientes com tipo 2 apresentam sobrepeso ou obesidade, comprovando que uma dieta        equilibrada influencia diretamente no controle da diabetes ou até mesmo evita a        obtenção da mesma [Sociedade Brasileira de Diabetes, 2015]. 

Segundo a Associação Brasileira de Diabetes 100% dos carboidratos ingeridos        são transformados em glicose, sendo esse o nutriente com maior impacto no aumento da        diabetes, seguido pelas proteínas com um valor entre 30 e 60%, e por final a gordura        com somente 10% [Sociedade Brasileira de Diabetes, 2016]. A resposta glicêmica de        um alimento no organismo está ligada a dois fatores. O primeiro é conhecido como        índice glicêmico, que é uma medida que quantifica o tempo de absorção da glicose no        sangue comparando com um alimento de referência (glicose ou pão branco), refletindo a        qualidade do carboidrato. O segundo é denominado carga glicêmica, sendo uma medida        para a quantidade e qualidade do carboidrato, é gerada através do produto do índice        glicêmico pela quantidade de carboidrato e o resultado dividido por 100 (cem)        [Cândido; Pereira; Alfenas, 2013]. 

Esse controle alimentar e identificação dos nutrientes que são ingeridos é muito        moroso, forçando a pessoa a saber a quantidade dos alimentos e comparar com tabelas        nutricionais, onde muita das vezes a mesma não possui acesso ou conhecimento desse        tipo de recurso.  

Para contribuir com a solução deste problema é proposto neste trabalho uma        abordagem de reconhecimento automático dos alimentos através de imagens, estimando        seus componentes nutricionais através de técnicas de Visão Computacional e        Aprendizado de Máquina.  

Desta forma, será obtido a resposta da pergunta que origina o desenvolvimento        deste trabalho, sendo ela, como facilitar a identificação dos nutrientes de uma refeição,        através de Visão Computacional, para o controle da quantidade necessária de ingestão,        mantendo a diabetes equilibrada. 

O artigo está estruturado da seguinte forma: a segunda seção apresenta os        trabalhos existentes similares ao modelo proposto. A terceira seção refere-se à        contextualização teórica sobre descritores de imagem, Bag of Features, Máquina de        Vetores de Suporte (SVM), Transformada de Hough e segmentação Mean-Shift. A        quarta seção descreve as ferramentas utilizadas no desenvolvimento da solução e o        método computacional. A quinta seção apresenta os resultados obtidos com o sistema        desenvolvido, bem como as discussões relacionadas à estes resultados. Por fim a sexta        seção apresenta as conclusões relacionadas ao desenvolvimento do sistema e ideias para       

(3)

trabalhos futuros. 

2. Trabalhos correlatos 

Zhang et al. (2015), apresentaram o desenvolvimento de um sistema para dispositivos        móveis capaz de reconhecer alimentos e estimar os conteúdos calóricos e nutricionais        dos mesmos sem intervenção do usuário, necessitando somente que seja tirada uma foto        do prato. Através da imagem obtida o sistema detecta as regiões salientes, recorta as        imagens e remove o fundo. Utilizando técnicas de segmentação hierárquica para separar        a imagem em regiões, são extraídas as áreas de interesse de diferentes locais e escalas,        classificando em diferentes tipos de alimentos usando um classificador baseado em        Máquina de Vetores de Suporte (SVM). 

Para estimar os nutrientes, o sistema identifica o tamanho da porção através da        contagem dos pixels em cada segmento de alimento. Uma vez que o tamanho da porção        seja determinado, o sistema pode obter os dados nutricionais através de alguma tabela        nutricional existente. 

Os autores avaliaram a performance do modelo com um conjunto de dados        contendo 2000 imagens de 15 classes de alimentos pré-definidas, tendo de 100 a 400        exemplares de cada alimento no seu conjunto de dados e atingindo, em média, 85% de        acurácia nos testes realizados. 

Myers et al. (2015), utilizaram técnicas de geolocalização provenientes do        smartphone do usuário para propor o sistema de reconhecimento e estimativa de        nutrientes, baseado em restaurantes previamente cadastrados, onde existe o        conhecimento do cardápio. 

Para este trabalho, na etapa de reconhecimento dos alimentos, foi utilizado uma        rede neural convolucional já treinada, retreinando apenas a última camada da rede de        acordo com as novas imagens obtidas. Já para segmentar os diferentes tipos de        alimentos de uma refeição, utilizou-se o auxílio do trabalho de Chen et al. (2017), onde        foi apresentado o DeepLab, que realiza uma segmentação semântica através de        Aprendizagem Profunda. Com a obtenção da máscara de segmentação, utilizou-se da        mesma para realizar uma reconstrução 3D baseada na representação de Voxel, obtendo        assim, a estimativa de volume de cada alimento. 

Além desses, Kawano e Yanai (2013) desenvolveram um sistema para        estimativa de nutrientes em tempo real, com a ajuda do próprio usuário desenhando        quadrados na tela para a identificação e auxílio na segmentação dos alimentos. Após        efetuar o desenho, a segmentação é realizada utilizando GrabCut [Rother; Kolmogorov;        Blake, 2012], extraído o histograma de cores e a bag-of-features [Ohara; Draper, 2011]        baseada em Speeded Up Robust Features (SURF) [Bay; Tuytelaars; Van Gool, 2006],        finalmente culminando na classificação entre uma das 50 categorias com uma Máquina        de Suporte de Vetores (SVM). 

Nos experimentos, foi obtido 81,55% de taxa de acerto para as 5 principais        categorias de alimentos quando as delimitações foram feitas corretamente. 

Pode-se citar ainda o trabalho de Alves (2017), onde foi realizado um        levantamento e análise dos trabalhos já existentes sobre o tema e técnicas utilizadas.   

(4)

3. Contextualização 

3.1. Descritores de Imagem 

A percepção visual dos objetos é muito subjetiva, dessa maneira não há uma única e        melhor representação de uma determinada característica visual. 

Descritores de imagem [Guyon; Elisseef, 2017] são representações numéricas de        características (ou pontos chaves) de uma imagem, extraídos através de um algoritmo de        extração de características, podendo ser divididas como sendo de domínio geral ou        domínio específico. O primeiro inclui características de cor, textura e forma, e o último        é dependente da aplicação, podendo ser utilizado para descobrir objetos já conhecidos        em uma imagem. 

O algoritmo SIFT (Scale-Invariant Feature Transform), proposto por Lowe        (2004) realiza extração de pontos chaves (Figura 1), tendo como principal característica        a invariância à transformações na imagem, como a escala, rotação e iluminação. Outro        algoritmo muito utilizado para esta finalidade proposto por Bay, H., Tuytelaars, T. e        Van Gool, L., (2006) é chamado de SURF (Speeded-up Robust Features). Sendo uma        versão descrita como mais rápida que o SIFT, pois altera alguns métodos utilizados por        versões de aproximação com pouca perda na precisão. 

 

Figura 1. Exemplo de extração e comparação de características de duas imagens. Cada ponto  representa uma característica. 

Fonte: Autores.  3.2. Bag of Features 

Bag of Features (BoF) é um método utilizado para categorização de objetos inspirado na        Bag of Words (BoW) [Zhang; Jin; Zhou, 2010], que é muito utilizado para classificação        de textos. O primeiro passo da BoW é transformar os textos de uma base de dados em        palavras, para dividir os documentos em componentes menores. Da mesma maneira        acontece com as imagens, onde também podem ser divididas em regiões menores.        Porém isso já é feito pelo algoritmo de extração de características, então podemos        apenas inserir essas regiões de interesse na BoF. 

O processo consiste em pegar cada ponto chave inseridos e agrupá-los em várias        “palavras visuais”, ou seja, associar cada ponto chave a algum elemento da imagem.        Para isso, um algoritmo de clusterização (K-means [Alsabti; Ranka; Singh, 1997], por        exemplo) é utilizado para gerar as palavras visuais. 

Dessa forma conseguimos ter um agrupamento de características que        representam o mesmo elemento na imagem. Uma vez que é feito isso para todas as        imagens, temos as regiões que representam o mesmo local da imagem separadas de        outras regiões diferentes, facilitando assim a comparação de imagens. 

(5)

3.3. Máquina de Vetores de Suporte (SVM) 

Proposto por Boser, Guyon e Vapnik (1992) as máquinas de vetores de suporte (SVM)        são sistemas de aprendizagem de máquina que usam espaços de hipóteses de funções        lineares na alta dimensionalidade característica do espaço. Sua aprendizagem é        supervisionada e pode ser utilizado tanto para classificação quanto para regressão. Neste        algoritmo, cada dado é inserido em um plano n-dimensional (onde n é o número de        características) com o valor de cada característica sendo o valor da coordenada no        plano. Então é encontrado o hiperplano que consegue separar as duas classes (Figura 2). 

 

Figura 2. Duas classes separadas por um hiperplano no SVM.  Fonte: Autores. 

O hiperplano pode ser considerado como uma linha que separa e classifica os        dados. Quanto mais longe um ponto está do hiperplano maior a confiança de que ele        pertence a determinada classe.  

3.4. Transformada de Hough 

A Transformada de Hough, proposta em sua forma original por Hough (1962) e        aprimorada posteriormente por Duda e Hart (1972), trata-se de um procedimento        computacional para a detecção de formas geométricas em uma imagem digital, desde        que a mesma possa ser representada matematicamente. 

Para utilização da técnica, é necessário previamente que a imagem a ser        processada tenha sido tratada através de um algoritmo de detecção de bordas, como o        algoritmo Canny (1986). 

Podemos ter como exemplo a detecção de um círculo, sabemos que o mesmo        pode ser representado matematicamente de forma polar: 

cosθ x0 = x − r   sinθ y0 = y − r   Onde:  ● x e = Coordenadas x e y quaisquery   ● x0 = O valor no eixo x do centro  ● y0 = O valor no eixo y do centro 

(6)

r = O raio do círculo  ● θ = O ângulo do raio 

Como a representação de um círculo se dá por três variáveis (        x0,  y0    r    e ) o parâmetro espacial a ser construído é tridimensional. A partir dessa representação        matemática polar, em que é incluso o ângulo na fórmula para representação de um        ponto do círculo, para cada pixel pertencente as bordas detectadas na imagem, o        algoritmo irá criar um círculo no parâmetro espacial (Figura 3), onde cada valor desse        círculo irá votar no seu espaço determinado. Com o parâmetro espacial construído, será        encontrado a máxima, valor com maior votos dentro do espaço. Essa coordenada        indicará o centro de um possível círculo na imagem. 

 

Figura 3. Em (a) uma imagem contendo um círculo com o filtro de Canny aplicado, já em (b) uma  representação do parâmetro espacial da imagem, formando a máxima no centro do círculo 

detectado.  Fonte: Autores. 

  3.5. Segmentação Mean-Shift 

Segundo Gonzalez e Woods (2007), segmentação é um processo de divisão da imagem        em diferentes regiões de interesse, baseado em alguma característica por similaridade,        sendo esse nível de detalhe da região dependente do tipo de problema a ser resolvido. A        mesma pode ser dividida em categorias como, baseada em threshold, baseada em        bordas, baseada em região, através de técnicas de clusterização ou matching. 

O mean shift [Comaniciu; Meer, 2002] é um algoritmo não-paramétrico de        clusterização, que possui como uma das aplicações a segmentação de imagens digitais.        Diferentemente do K-means [Alsabti; Ranka; Singh, 1997], que também é um algoritmo        de clusterização, possui como vantagens a não necessidade de determinar um valor 'k'        (número de clusters) para o agrupamento dos clusters e a facilidade de possuir apenas        um parâmetro para ser definido em sua execução, a largura de banda, porém, no geral        acaba sendo mais lento. 

O algoritmo funciona alterando interativamente os pontos no espaço em direção        do centróide do cluster mais próximo, sendo essa direção definida pela coordenada em        que há maior concentração de pontos (densidade). Portanto, a cada iteração, os pontos        são atraídos para os centróides, até que haja uma convergência, definindo os clusters        existentes. A determinação da quantidade de clusters é realizada automaticamente e        totalmente dependente dos dados a serem trabalhados. 

(7)

Para a definição da densidade dos pontos é utilizado um kernel, geralmente o        kernel gaussiano, junto com uma largura de banda definida parametricamente para o        mesmo. 

4. Materiais e Métodos  4.1 Ferramentas 

Para realizar o desenvolvimento do modelo foi utilizada como linguagem de        programação Python, versão 3.5.4, com o auxílio da IDE PyCharm. Assim como para a        manipulação das imagens foi utilizado o OpenCV, em sua versão 3.2.0. Além disso,        para a aplicação de aprendizagem de máquina foi feito uso da biblioteca scikit-learn,        que contém a implementação de diversos algoritmos sendo open-source e livre para uso        acadêmico e comercial. 

As imagens utilizadas para o treinamento do modelo foram extraídas de 2 fontes        diferentes, do dataset Food-101 [Bossard; Guillaumin; Van Gool, 2014] que contém 101        categorias de alimentos com 1000 imagens cada e do UECFOOD100 [Matsuda; Hoashi;        Yanai, 2012] que é um dataset focado em comidas asiáticas, com 100 categorias de        quantidades variadas, possuindo no total aproximadamente 14000 imagens. 

Por fim, como fonte de dados dos nutrientes de cada alimento foi utilizada a        tabela TACO [TACO, 2011] em sua quarta versão, para extração da quantidade de        carboidratos por grama dos alimentos, e por não existir uma base de dados nacional com        informações de índice glicêmico, foi utilizado a tabela internacional de composição de        alimentos [Foster-powell; Holt; Brand-miller, 2002]. 

4.2 Método computacional 

4.2.1 Base de dados 

Tendo em vista que não há uma base de dados pública com alimentos brasileiros, e que        as internacionais existentes possuem muitos alimentos diferentes de nossa cultura, além        de conter imagens aleatórias que não condizem com a classificação, foi selecionado 5        classes de alimentos como categorias, para compor uma nova base de imagens a ser        utilizada, através da realização de uma mineração entre as imagens das fontes citadas,        incluindo o uso de recorte e redimensionamento caso necessário, para dar ênfase a área        do alimento (Figura 4). 

 

Figura 4. Em (a) uma imagem de refeição originada do dataset UECFOOD100. Em (b) a extração  da parte utilizada no treinamento do classificador para o arroz. 

(8)

Fonte: Autores. 

Os alimentos selecionados para o presente trabalho são: o arroz, o macarrão, a        carne, a asa de galinha e a batata frita (Figura 5). Cada alimento possui 400 imagens,        compondo uma base de 2000 imagens distintas. 

 

Figura 5. Exemplos de imagens do dataset construído. Em (a) o arroz, em (b) o macarrão, em (c) a  asa de galinha, em (d) a carne e em (e) a batata frita. 

Fonte: Autores. 

4.2.2 Treinamento do classificador 

Para que o SVM possa realizar as classificações dos alimentos, é necessário que o        mesmo seja treinado, formando assim o hiperplano que separa cada classe de outra. O        treinamento é o processo de obter conteúdo que é conhecido por pertencer a classes        específicas e criar um classificador com base nesse conteúdo. 

Para o treinamento, como as imagens do dataset possuem os mais diversos        formatos, não havendo um padrão na representação dos alimentos, não foi realizado        uma segmentação prévia dos mesmos. Foi utilizado 70% da quantidade de imagens de        cada alimento, totalizando 1400 imagens de treino. Cada imagem passou por um        pré-processamento para que todas estejam padronizadas: 

1. Redimensionamento para 200 pixels de largura por 200 pixels de altura;  2. Conversão da imagem para tons de cinza 

3. Extração das características; 

4. Adição das características na Bag of Features. 

O passo 1 é necessário para que seja reduzido o tempo de processamento        computacional, pois os algoritmos trabalham pixel a pixel, dessa maneira reduzimos a        quantidade deles, perdendo pouco da qualidade das informações na imagem. 

Como a cor das imagens aumenta a complexidade do modelo, pois elas são        divididas em 3 canais: vermelho, verde e azul (RGB), se faz necessário o passo 2. Nele        a imagem é convertida para tons de cinza, tornando-se uma imagem também        denominada 8 bit ou monocromática, pois guarda a intensidade do branco ao preto em        um único canal [Gonzalez; Woods, 2007]. As cores também podem ser desconsideradas        pois há alimentos que se parecem muito na cor, como a batata frita e o macarrão, dessa        forma levar em conta apenas essa característica pode acarretar em erros não desejados. 

(9)

No passo 3 é feita a extração das características, foi utilizado dois algoritmos,        SIFT e SURF, para efeito de comparação da performance. 

Por fim, no passo 4, todas as características extraídas da imagem são adicionadas        à Bag of Features para que, posteriormente, sejam processadas e agrupadas de acordo        com sua similaridade. 

Após os passos anteriores, é feita a clusterização da Bag of Features utilizando        K-means [Alsabti; Ranka; Singh, 1997] para separar as características em 500 palavras        visuais (clusters), e em seguida acrescentadas no SVM juntamente com a informação da        classe correspondente para que o algoritmo possa realizar a aprendizagem. 

O SVM utiliza uma função linear para separar as classes contidas no seu plano,        isto é, todo hiperplano é uma “reta” (Figura 6a). Tendo em vista que as características        extraídas dos alimentos na maioria das vezes não são linearmente separáveis, foi        utilizada uma função de base radial [Schaback, 2007] para criação do hiperplano        (Figura 6b). 

 

Figura 6. Em (a) representação dos hiperplanos com funções lineares. Em (b) representação dos  hiperplanos utilizando função de base radial. 

Fonte: Autores. 

As classes são mais facilmente identificáveis com a função de base radial, pois        ela permite um formato mais apropriado do hiperplano com relação aos vetores de        suporte de determinada classe. 

4.2.3 Identificação do prato 

Uma vez que a primeira parte, do classificador, está finalizada, é necessário que para        cada imagem de entrada a ser classificada, sejam eliminados o máximo de informações        que não auxiliam o processo de identificação dos alimentos, mantendo apenas o        necessário para posterior classificação e estimativa de volume. Com isso, a primeira        etapa baseada nas imagens para validação deste modelo, é a identificação do prato ao        qual os alimentos estão presentes. 

Sabemos que nas imagens de validação deste trabalho o formato dos pratos são        circulares, portanto, foi aplicado a técnica de Transformada de Hough para identificação        da circunferência que representa a área do prato na imagem. 

Para aplicar o Hough, a imagem foi primeiramente transformada para tons de        cinza, e após isso, aplicado o operador Canny para a detecção das bordas na imagem.       

(10)

Ao analisar os resultados, foi identificado que as mesmas possuíam pontos muito nítidos        de reflexo da luz, que causavam a má detecção de bordas, que posteriormente        dificultavam a boa performance do Hough, portanto, antes de transformar a imagem em        8 bit, foi aplicado o filtro de mediana [Gonzalez; Woods, 2007], para suavização e        remoção desses ruídos (Figuras 7 e 8). 

 

Figura 7. Em (a) a imagem original e sua representação após aplicar o Canny. Já em (b) a imagem  com o filtro de mediana aplicado e a melhora no resultado do Canny. 

Fonte: Autores. 

O algoritmo de Hough, tem por suas características ser muito dependente dos        parâmetros a serem usados na detecção do círculo, e por sua vez, esses parâmetros são        muito variáveis de imagem para imagem, o que acaba dificultando a otimização do        resultado. Portanto, como se tem um tamanho do raio do círculo conhecido, e o mesmo        se parece em todas as imagens, foi executado um algoritmo de força bruta para detectar        quais parâmetros se comportam de melhor forma. Obtendo como resultados: 

● Valor mínimo raio: 100  ● Valor máximo raio: 110 

● Número de votos necessários dentro do espaço para definir que é um círculo: 50  ● Razão inversa do array acumulador: 2 

● Distância mínima entre o centro dos círculos detectados: 100 

 

Figura 8. Em (a) a imagem original, em (b) o filtro de mediana aplicado, em (c) a imagem em 8 bit,  em (d) o algoritmo de Canny, em (e) o círculo encontrado. 

Fonte: Autores. 

Com o círculo detectado, é então realizado a remoção da área exterior e recorte        apenas da área de interesse (Figura 9). 

(11)

 

Figura 9. Em (a) o círculo detectado, em (b) a área externa da imagem removida.  Fonte: Autores. 

4.2.4 Identificação dos alimentos  Segmentação 

Uma vez que apenas a área do prato está identificada, é possível dar início a        segmentação, para isso, foi utilizado o algoritmo mean shift com o kernel gaussiano e a        distância de banda de 30, identificada através de testes na performance do mesmo        (Figura 10). 

 

Figura 10. Em (a) a segmentação dos alimentos, em (b) os alimentos extraídos individualmente.  Fonte: Autores. 

Identificação SVM 

O reconhecimento dos alimentos por parte do SVM é relativamente simples. Como os        hiperplanos que separam as classes já estão formados, basta inserir um novo vetor de        suporte e calcular a margem dele em relação aos hiperplanos que o separa das outras        classes (Figura 11). 

 

Figura 11. Em (a) previsão dos novos vetores de suporte (círculos roxos). As flechas representam as  margens. Em (b) os novos vetores já associados a classe dos círculos vermelhos. 

(12)

4.2.5 Estimativa do volume 

Para a estimativa do volume, é necessário que a imagem possua um objeto conhecido        previamente pelo modelo. Na implementação do presente trabalho foi escolhido o dedo        indicador para ser este objeto, assim como adotada uma medida padrão para o dedo,        sendo 6 centímetros de comprimento por 1,7 centímetros de largura. 

Com isso, podemos identificar esse objeto na imagem através de extração de        características e a homografia [Dubrofsky, 2007] do mesmo, obtendo as dimensões dele        (Figura 12). 

 

Figura 12. Objeto conhecido encontrado na imagem com suas dimensões.  Fonte: Autores. 

Uma vez que a imagem é segmentada, ou seja, os alimentos são separados em        imagens diferentes, conseguimos obter a quantidade de pixels que cada um ocupa        (Figura 13). 

 

Figura 13. Alimento extraído do prato.  Fonte: Autores. 

Consideramos todos os alimentos como sendo dispostos em um formato circular        para o cálculo, então realizamos uma operação algébrica para calcular a altura e largura        em pixels do mesmo: 

, w

h =

(√P/2)² *  π Onde: 

h = altura em pixels do segmento  ● w = largura em pixels do segmento 

(13)

● π = 3,14 

A altura e largura estão em pixels, então é necessário que elas sejam convertidas        para centímetros utilizando a seguinte fórmula, que é uma regra de três básica: 

x =

d

d

D dd*

 

Onde: 

dd = dimensão em pixels do objeto conhecido  ● Dd = dimensão em centímetros do objeto conhecido  ● d = dimensão em pixels do segmento 

x = dimensão em centímetros do segmento 

O resultado é a transformação das dimensões dos pixels para centímetros, assim,        o próximo passo é o cálculo do volume, para isso foi utilizado como profundidade do        prato um valor padrão de 2 centímetros e a fórmula de cálculo de volume de um        paralelepípedo: 

V = h * w * a   Onde: 

h = comprimento em centímetros  ● w = largura em centímetros 

a = altura em centímetros (valor padrão 2)  ● V = volume 

4.2.6 Estimativa da massa 

As tabelas de informações nutricionais de alimentos fornecem os dados de acordo com a        porção em gramas, portanto se faz necessário saber a massa dos alimentos em cada        prato, a qual se dá pela seguinte fórmula. 

assa densidade olume

m = * v  

O valor da densidade utilizado para cada alimento foi:  ● arroz = 1,13 g/cm³ 

● batata frita = 0,5 g/cm³  ● macarrão = 1,15 g/cm³  ● carne = 0,75 g/cm³ 

● asa de galinha = 1,74 g/cm³ 

Tais valores foram obtidos de acordo com a área que ocupavam no prato e a        massa de cada um que foi pesada em uma balança de precisão no momento da captura.        Tendo isso basta calcularmos o volume dos mesmos e utilizar a fórmula para descobrir a        densidade (Figura 14). 

(14)

 

Figura 14. Imagens utilizadas para cálculo da densidade de cada alimento.  Fonte: Autores. 

5. Resultados e discussões 

Os resultados do reconhecimento dos alimentos foram obtidos realizando a validação        com 30% do tamanho da base de dados, 120 imagens de cada alimento. Para cada um        dos algoritmos de extração das características, SIFT e SURF. Com essa quantidade foi        possível obter 75,6% de precisão geral para o SURF e 76,83% para o SIFT. 

Como a base de dados é relativamente pequena, e os algoritmos que extraem        características são invariantes a rotação, foram geradas cópias das 2000 imagens        originais, com 90º e 180º de rotação (Figura 15), formando assim uma maior quantidade        de dados (1200 imagens por alimento). Como consequência, houve um aumento da        precisão (após novo treinamento/teste - 70%/30%) de 5,45% para o SURF e 4,66% para        o SIFT (Tabela 1), sendo este último o resultado de maior precisão. Embora em todos os        testes realizados o SURF apresentou uma velocidade muito superior na extração das        características. No gráfico 1 podemos comparar a quantidade de acertos entre o SIFT e        SURF para cada classe de alimento. 

 

Figura 15. Exemplo das imagens geradas por rotação. Em (a) imagem original. Em (b) cópia da  imagem original rotacionada 90º para esquerda. Em (c) cópia da imagem original rotacionada 180º 

para esquerda.  Fonte: Autores. 

(15)

 

Gráfico 1. Comparação de previsões corretas entre SIFT e SURF para cada classe.  Fonte: Autores. 

  Tabela 1. Matriz de confusão com a maior precisão de cada classe na base de dados com 1200 

imagens por classe, sendo 360 para testes, utilizando o algoritmo SIFT.  Fonte: Autores. 

Podemos notar que as classes com menor porcentagem são a galinha que houve        58 casos classificados como carne, e também a carne que teve 61 casos classificados        como galinha. Em análise as imagens, foi possível deduzir que isso ocorre devido a        semelhança de formato e intensidade de cor entre os mesmos, ocasionando o erro na        hora da classificação. Por outro lado o arroz e batata frita, por serem bem distintivos        visualmente, apresentaram a maior porcentagem de acerto em todos os testes. 

Para a validação do cálculo de estimativa de volume e massa foram obtidas 19        imagens dos alimentos dispostos em um prato, sendo que cada alimento foi identificado        o seu peso em gramas através da medição em uma balança de alta precisão. Os        resultados obtidos se aproximaram do cálculo real (Tabela 2). Nos exemplos onde o        resultado deu uma diferença maior, foi analisada a imagem e notado que as mesmas        possuem ruídos que atrapalham na segmentação, considerando a área do alimento maior        ou menor, como é o caso do arroz nas imagens 7 e 8 da tabela 2. 

(16)

 

Tabela 2. Resultado das estimativas de volume para as imagens utilizadas na validação do cálculo  de volume. 

Fonte: Autores. 

Através de uma média aritmética simples geral, a diferença do valor médio        estimado 53,17g para o real 50,25g foi pequena, de apenas 2,92g. Para entender melhor        a aproximação entre os resultados estimados e reais das massas dos alimentos, também        foi extraído o chamado Erro Relativo (ER) [Campos, 2003] para cada resultado,        obtendo assim o Erro Relativo Médio (ERM) para cada alimento, e finalmente como        resultado final o ERM geral de 12,56%, significando que como um todo o cálculo de        estimativa dos alimentos possui 87,44% de sucesso. 

Nos gráficos 2 e 3 podemos ver a diferença entre os valores de massa estimados        e reais representados em um gráfico de linha para as duas classes que tiveram a maior        (17,43%) e menor (7,16%) taxa de erro relativo, que são a galinha e a carne,        respectivamente. 

 

(17)

Fonte: Autores. 

 

Gráfico 3. Diferença entre os valores de massa estimados e reais da carne.  Fonte: Autores. 

Por fim, a figura 19 representa duas refeições com o processo de extração dos        dados de nutrientes concluídos, sendo eles a massa em gramas, o Índice Glicêmico (IG),        a Carga Glicêmica (CG) e a quantidade de carboidratos (CHO). 

 

Figura 16. Imagens com os seus dados nutricionais extraídos.  Fonte: Autores. 

6. Conclusões 

Neste trabalho foi apresentado um modelo capaz de reconhecer alimentos e estimar os        nutrientes dos mesmos. Ele se mostrou bastante preciso mesmo com uma base de dados        relativamente pequena, obtendo em torno de 81,49% de precisão em suas previsões. 

Em relação a estimativa de volume as imagens dos alimentos capturadas em        laboratório continham alterações de luz, o que causou um pouco de ruído nas imagens        dificultando assim a segmentação dos alimentos. Contudo, para os pratos onde a        segmentação ocorreu corretamente, o cálculo foi relativamente preciso, tendo como um        todo o erro médio relativo de 12,56%. 

O modelo em comparação com os trabalhos correlatos trás uma nova proposta        de segmentação, através do algoritmo mean-shift, com o objetivo de não necessitar a        definição prévia da quantidade de alimentos existentes (clusters) na imagem da refeição,       

(18)

onde os resultados foram bons, porém suscetíveis à ruídos proveniente da iluminação,        como os reflexos da luz, que acabam alterando as características da imagem.  

Também foi proposto uma rotação das imagens pertencentes ao dataset, uma vez        que os detectores de características são invariáveis a rotação, ocasionando o aumento de        dados e consequente melhora na acurácia do reconhecimento. Já o cálculo de volumes,        se comparado com o trabalho de Myers et al. (2015), foi proposto uma solução mais        simples através da estimativa baseada em um objeto conhecido, sem a necessidade de        reconstrução em 3D dos alimentos ou a obtenção de fotos em diversos ângulos para        extração de maiores informações, e embora limitado, os resultados foram significativos. 

Para trabalhos futuros pretende-se criar uma base de dados de alimentos locais,        que façam parte da cultura brasileira, bem como uma quantidade maior de imagens.        Além disso, trabalhar na melhora da segmentação da imagem, como aplicação de filtros        para remoção de focos de luz e outros agentes, para que possa ser trabalhado com todos        tipos de imagens, conseguindo a identificação dos alimentos em quaisquer recipientes        ou ambientes, não apenas de laboratório. Para o cálculo de volume, aprimorar as        técnicas deixando o resultado mais preciso, levando em consideração os diferentes        formatos dos alimentos. 

Referências 

ALSABTI, Khaled; RANKA, Sanjay; SINGH, Vineet.      ​An Efficient K-Means     

Clustering  Algorithm​.  1997.  Disponível  em: 

<https://www.cs.utexas.edu/~kuipers/readings/Alsabti-hpdm-98.pdf>. Acesso em: 08        nov. 2017. 

ALVES, Maria Carolina Magalhães.       ​Modelo de estimativa de valores nutricionais,            calóricos e glicêmicos por meio de reconhecimento de alimentos em imagens                     

digitais​.  2017.  Disponível  em: 

<http://www.fumec.br/revistas/sigc/article/view/5040/2697>. Acesso em: 01 nov. 2017.  BAY, Herbert; TUYTELAARS, Tinne; VAN GOOL, Luc.       ​SURF: Speeded Up Robust        Features​. 2006. Disponível em: <http://www.vision.ee.ethz.ch/~surf/eccv06.pdf>.          Acesso em: 03 jul. 2017. 

BOSER, Bernhard e; GUYON, Isabelle M; VAPNIK, Vladimir N.      ​A Training    Algorithm  for  Optimal  Margin  Classifiers​.  1992.  Disponível  em:  <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.1189&rep=rep1&type= pdf>. Acesso em: 07 nov. 2017. 

BOSSARD, Lukas; GUILLAUMIN, Matthieu; VAN GOOL, Luc. ​Food-101 – Mining  Discriminative Components with Random Forests​. 2014. Disponível em: 

<http://www.vision.ee.ethz.ch/~lbossard/bossard_eccv14_food-101.pdf>. Acesso  em: 03 jul. 2017. 

CAMPOS, Nuno Ayres de.        ​INTRODUÇÃO À ANÁLISE DE DADOS NAS            MEDIDAS  DE  GRANDEZAS  FÍSICAS​.  2003.  Disponível  em:  <http://www.fis.uc.pt/data/20032004/apontamentos/apnt_115_11.pdf>. Acesso em: 14        nov. 2017. 

(19)

Gonçalves. 2013.   ​Uso do índice glicêmico na educação nutricional​. Revista de                  Nutrição,  Viçosa,  v.  1,  n.  26,  p.89-96,  fev.  2013.  Disponível  em:  <http://www.scielo.br/pdf/rn/v26n1/09.pdf>. Acesso em: 29 mar. 2017. 

CANNY, John. ​A Computational Approach to Edge Detection​. 1986. Disponível em:  <​http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.420.3300&rep=rep1&type= pdf​>. Acesso em: 08 nov. 2017. 

CHEN, Liang-chieh et al.        ​DeepLab: Semantic Image Segmentation with Deep            Convolutional Nets, Atrous Convolution, and Fully Connected CRFs              ​. 2017.    Disponível em: <https://arxiv.org/pdf/1606.00915.pdf>. Acesso em: 01 nov. 2017.  COMANICIU, Dorin; MEER, Peter.        ​Mean Shift: A Robust Approach toward            Feature Space Analysis​. 2002. Disponível em: 

<​http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.76.8968&rep=rep1&type=p df​>. Acesso em: 08 nov. 2017. 

DUBROFSKY,  Elan.  ​Homography  Estimation​.  2007.  Disponível  em:  <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.186.5926&rep=rep1&type= pdf>. Acesso em: 11 nov. 2017. 

DUDA, Richard O.; HART, Peter E..       ​USE OF THE HOUGH TRANSFORMATION          TO DETECT LINES AND CURVES IN PICTURES            ​. 1972. Disponível em:        <http://www.dtic.mil/dtic/tr/fulltext/u2/a457992.pdf>. Acesso em: 08 nov. 2017. 

FOSTER-POWELL, Kaye; HOLT, Susanna Ha; BRAND-MILLER, Janette C.        International table of glycemic index and glycemic load values: 2002                  ​. 2002.   

Disponível  em: 

<http://abran.org.br/wp/wp-content/uploads/2012/10/Am-J-Clin-Nutr-2002-Foster-Pow ell-5-56.pdf>. Acesso em: 12 nov. 2017. 

GONZALEZ, Rafael C.; WOODS, Richard E..       ​Digital Image Processing​. 3. ed.          Tennessee: Pearson, 2007. 954 p. 

GUYON, Isabelle; ELISSEEF, André.        ​An Introduction to Feature Extraction​.         

Disponível  em: 

<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.85.1752&rep=rep1&type=p df>. Acesso em: 26 out. 2017. 

KAWANO, Yoshiyuki; YANAI, Keiji.       ​Real-time Mobile Food Recognition System​.         

2013.  Disponível  em: 

<https://pdfs.semanticscholar.org/92f4/2503f0e6cf98bf8b97a139002e66f4476849.pdf>.  Acesso em: 02 nov. 2017. 

LOWE, David G..     ​Object Recognition from Local Scale-Invariant Features​. 1999.              Disponível em: <http://www.cs.ubc.ca/~lowe/papers/iccv99.pdf>. Acesso em: 10 out.        2017. 

MATSUDA, Yuji; HOASHI, Hajime; YANAI, Keiji.      ​RECOGNITION OF    MULTIPLE-FOOD IMAGES BY DETECTING CANDIDATE REGIONS          ​. 2012.    Disponível em: <http://foodcam.mobi/dataset100.html>. Acesso em: 01 ago. 2017.  MYERS, Austin et al.       ​Im2Calories: towards an automated mobile vision food diary​.               

(20)

2015.  Disponível  em:  <https://www.cs.ubc.ca/~murphyk/Papers/im2calories_iccv15.pdf>. 

O'HARA, Stephen; DRAPER, Bruce A..         ​INTRODUCTION TO THE BAG OF          FEATURES PARADIGM FOR IMAGE CLASSIFICATION AND RETRIEVAL​.              2011. Disponível em: <https://arxiv.org/pdf/1101.3354.pdf>. Acesso em: 03 jul. 2017.  OMS, Organização Mundial da Saúde (2016).       ​GLOBAL REPORT ON DIABETES​.        Disponível 

em:<http://apps.who.int/iris/bitstream/10665/204871/1/9789241565257_eng.pdf?ua=1> . Acesso em: 25 mar. 2017. 

Paul V. C. Hough.       ​Method and means for recognizing complex patterns​. US nº                  3069654  A,  25  mar.  1960,  18  dez.  1962.  Disponível  em:  <https://www.google.com/patents/US3069654?hl=pt-BR>. Acesso em: 12 nov. 2017.  Portal Brasil (2015).      ​Diabetes atinge 9 milhões de brasileiros​. Disponível em                <http://www.brasil.gov.br/saude/2015/07/diabetes-atinge-9-milhoes-de-brasileiros>.  Acesso em: 26 mar. 2017. 

ROTHER, Carsten; KOLMOGOROV, Vladimir; BLAKE, Andrew.       ​“GrabCut” —    Interactive Foreground Extraction using Iterated Graph Cuts​. 2012. Disponível                  em: <https://cvg.ethz.ch/teaching/cvl/2012/grabcut-siggraph04.pdf>. Acesso em: 03 jul.        2017. 

SCHABACK, R.. ​A Practical Guide to Radial Basis Functions​. 2007. Disponível em:  <http://num.math.uni-goettingen.de/schaback/teaching/sc.pdf>. Acesso em: 10 nov.          2017. 

Sociedade Brasileira de Diabetes (2015).      ​Diretrizes da Sociedade Brasileira de          Diabetes​. Rio de Janeiro: Ac Farmacêutica, 2016. 327 p. Disponível em:        <​http://www.diabetes.org.br/profissionais/images/pdf/DIRETRIZES-SBD-2015-2016.p df​>. Acesso em: 27 mar. 2017. 

Sociedade Brasileira de Diabetes (2016).         ​Manual de Contagem de Carboidratos para           

Pessoas  com  Diabetes​.  Disponível 

em:<​http://www.diabetes.org.br/publico/images/manual-de-contagem-de-carboidrato20 16.pdf​>. Acesso em: 25 mar. 2017. 

UNIVERSIDADE ESTADUAL DE CAMPINAS.       ​Tabela Brasileira de Composição       

de  Alimentos​.  TACO  2011.  Disponível  em: 

<​http://www.cfn.org.br/wp-content/uploads/2017/03/taco_4_edicao_ampliada_e_revisa da.pdf​>. Acesso em: 02 nov. 2017. 

ZHANG, Weiyu et al.       ​Snap-n-Eat: Food Recognition and Nutrition Estimation on a               

Smartphone​.  2015.  Disponível  em: 

<https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4604540/>. Acesso em: 20 jun. 2017.  ZHANG, Yin; JIN, Rong; ZHOU, Zhi-hua.       ​Understanding Bag-of-Words Model: A        Statistical Framework​. 2010. Disponível em: 

<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.453.5924&rep=rep1&type= pdf>. Acesso em: 06 nov. 2017. 

Referências

Documentos relacionados

Distribuições das deformações ao longo da sobreposição de uma junta com t = 5 mm e L = 12.5 mm, obtidas por modelos de EF com análises elasto-plásticas para a carga de

Este artigo está dividido em três partes: na primeira parte descrevo de forma sumária sobre a importância do museu como instrumento para construção do conhecimento, destaco

Este estágio de 8 semanas foi dividido numa primeira semana de aulas teóricas e teórico-práticas sobre temas cirúrgicos relevantes, do qual fez parte o curso

As pontas de contato retas e retificadas em paralelo ajustam o micrômetro mais rápida e precisamente do que as pontas de contato esféricas encontradas em micrômetros disponíveis

Código Descrição Atributo Saldo Anterior D/C Débito Crédito Saldo Final D/C. Este demonstrativo apresenta os dados consolidados da(s)

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

For additional support to design options the structural analysis of the Vila Fria bridge was carried out using a 3D structural numerical model using the finite element method by

Para cavernas da Serra do Ramalho, região localizada no sudoeste da Bahia e parte da Bacia do Médio São Francisco (Figura 6 - localização), foram registrados