Devido aos problemas e custos associados às abordagens manuais de avaliação alimentar, soluções automatizadas são necessárias para facilitar e acelerar o trabalho e aumentar sua qualidade. Hoje, soluções automatizadas são capazes de registrar a ingestão dietética de uma pessoa de uma forma muito mais simples, como tirar uma imagem com uma câmera de smartphone. Neste artigo, focaremos em tais abordagens baseadas em imagens para a avaliação alimentar usando redes neurais profundas, que representam o estado da arte no campo.
Em particular, apresentaremos três soluções, uma para reconhecimento de imagem alimentar, uma para segmentação de imagens de réplicas de alimentos, ou alimentos falsos, e uma para segmentação de imagem de alimentos reais. Reúna uma lista de diferentes alimentos e bebidas que serão as saídas do modelo de reconhecimento de imagem alimentar. Salve a lista de alimentos e bebidas em um arquivo de texto, como TXT ou CSV.
Observe que o arquivo de texto usado pelos autores deste artigo pode ser encontrado nos arquivos suplementares sob itens alimentares ponto TXT e inclui uma lista de 520 alimentos eslovenos. Escreva ou baixe um script Python que usa a API de pesquisa personalizada do Google para baixar imagens de cada item de comida da lista e salva-as em uma pasta separada para cada item de comida. Observe que o script Python usado pelos autores deste artigo pode ser encontrado nos arquivos suplementares em imagens de download ponto pi.
Se este script for usado, a linha de chave do desenvolvedor variável desenvolvedor de desenvolvedores oito no código de script Python e na variável CX 28 do mecanismo de busca personalizada na linha 28 do script Python precisam ser substituídas por valores específicos da conta do Google que está sendo usada. Execute o script Python a partir do passo 1.1.3. Crie uma nova versão de cada imagem a partir do conjunto de dados de imagem alimentar girando-a em 90 graus, usando a biblioteca CLoDSA.
Observe que o script Python contendo todos os comandos CLoDSA usados pelos autores deste artigo pode ser encontrado em um arquivo incluído nos arquivos suplementares sob NutriNet sublinhar o aumento dot pi. Crie uma nova versão de cada imagem a partir do conjunto de dados de imagem alimentar girando-a em 180 graus, usando a biblioteca CLoDSA. Crie uma nova versão de cada imagem a partir do conjunto de dados de imagem alimentar girando-a em 270 graus, usando a biblioteca CLoDSA.
Crie uma nova versão de cada imagem a partir do conjunto de dados de imagem alimentar, invertendo-a horizontalmente, usando a biblioteca CLoDSA. Crie uma nova versão de cada imagem a partir do conjunto de dados de imagem alimentar adicionando ruído de cor aleatório a ela, usando a biblioteca CLoDSA. Crie uma nova versão de cada imagem a partir do conjunto de dados de imagem alimentar, ampliando-a em 25% usando a biblioteca CLoDSA.
Salve imagens das etapas 1.3.1 a 1.3.6, juntamente com as imagens originais em um novo conjunto de dados de imagem de alimentos. No total, sete variantes por imagem alimentar. Importar os dados de imagem alimentar definidos da etapa 1.3.7 para o ambiente de dígitos NVIDI, dividindo os dados definidos em subconjuntos de treinamento, validação e teste.
Copie e cole o texto de definição da arquitetura NutriNet em dígitos NVIDIA. Observe que a definição de arquitetura NutriNet pode ser encontrada nos arquivos suplementares sob NutriNet dot proto TXT. Opcionalmente, defina os hiper parâmetros de treinamento em dígitos NVIDIA ou use os valores padrão.
Os hiper parâmetros utilizados pelos autores deste artigo podem ser encontrados em um arquivo incluído nos arquivos suplementares sob NutriNet sublinham hiper-parâmetros ponto proto TXT. Executar o treinamento do modelo NutriNet. Após o treinamento ser concluído, pegue a iteração do modelo NutriNet com melhor desempenho.
Este modelo é então usado para testar o desempenho desta abordagem. Observe que existem várias maneiras de determinar a melhor iteração do modelo de desempenho. Consulte os textos do artigo para obter mais detalhes.
Obtenha um conjunto de dados de imagens falsas de alimentos. Note-se que os autores deste artigo receberam imagens de alimentos falsos que foram coletados em um ambiente de laboratório. Anotar manualmente todas as imagens de alimentos no nível do pixel.
Cada pixel na imagem deve conter informações sobre a classe alimentar a que pertence. Observe que existem muitas ferramentas para conseguir isso. Os autores deste artigo usaram um anotador do segmento JavaScript.
O resultado desta etapa é uma imagem de anotação para cada imagem do conjunto de dados de imagem alimentar, onde cada pixel representa uma das classes alimentares. Execute as mesmas etapas da seção 1.3, mas apenas em imagens do subconjunto de treinamento do conjunto de dados de imagem alimentar. Observe que, com exceção da etapa 1.3.5, todas as etapas de aumento de dados também precisam ser executadas em imagens de anotação correspondentes.
Execute as mesmas etapas da seção 1.4, com exceção da etapa 1.4.2. No lugar dessa etapa, realize as etapas 2.3.2 e 2.3.3. Observe que os hiper parâmetros de treinamento utilizados pelos autores deste artigo podem ser encontrados no arquivo incluído nos arquivos suplementares sob FCN-8S ressaltam hiper-parâmetros ponto proto TXT.
Copie e cole o texto de definição da arquitetura FCN-8S em dígitos NVIDIA. Digite os pesos do modelo FCN-8S pré-treinados em dígitos NVIDIA. Observe que esses pesos do modelo foram pré-treinados no conjunto de dados de classes de objetos visuais Pascal e podem ser encontrados na internet.
Baixe o conjunto de dados de imagem alimentar do site do Food Recognition Challenge. Realizar etapas 1.3.1 a 1.3.4. Observe que o script Python contendo todos os comandos CLoDSA usados pelos autores deste artigo pode ser encontrado no arquivo incluído nos arquivos suplementares sob FRC sublinhar o ponto de aumento.
Crie uma nova versão de cada imagem a partir do conjunto de dados de imagem alimentar adicionando desfoque gaussiano a ela, usando a biblioteca CLoDSA. Crie uma nova versão de cada imagem a partir do conjunto de dados de imagem alimentar, afiando-a, usando a biblioteca CLoDSA. Crie uma nova versão de cada imagem a partir do conjunto de dados de imagem alimentar, aplicando correção gama a ela, usando a biblioteca CLoDSA.
Salve imagens das etapas 3.2.1 a 3.2.4, juntamente com as imagens originais em um novo conjunto de dados de imagem de alimentos. No total, oito variantes por imagem alimentar. Salve imagens das etapas 3.2.2 a 3.2.4, juntamente com as imagens originais em um novo conjunto de dados de imagem de alimentos.
No total, quatro variantes por imagem alimentar. Modifique a definição de arquitetura HTC ResNet 101 existente da biblioteca DE Detecção MM para que ele aceite os conjuntos de dados de imagem de alimentos das etapas 3.1.1, 3.2.5 e 3.2.6. Opcionalmente, modifique a definição de arquitetura HTC ResNet 101 a partir da etapa 3.3.1 para definir os hiper parâmetros de treinamento ou usar os valores padrão.
Observe que a definição modificada da arquitetura HTC ResNet 101 pode ser encontrada nos arquivos suplementares sob HTC sublinhar ResNet 101 ponto pi. Execute o treinamento do modelo HTC ResNet 101 nos conjuntos de dados de imagem alimentar a partir da etapa 3.1.1 usando a biblioteca de detecção mm. Após o treinamento da etapa 3.3.3 estar completo, pegue a iteração do modelo HTC ResNet 101 de melhor desempenho e ajuste-a melhor executando-a executando a próxima fase de treinamento sobre o conjunto de dados de imagem alimentar a partir da etapa 3.2.5.
Observe que existem várias maneiras de determinar a melhor iteração do modelo de desempenho. Consulte os textos do artigo para obter mais detalhes. Isso também é relevante para os próximos passos.
Após o treinamento da etapa 3.3.4 estar completo, pegue a iteração do modelo HTC ResNet 101 de melhor desempenho e ajuste-a melhor executando-a executando a próxima fase de treinamento sobre o conjunto de dados de imagem alimentar a partir da etapa 3.2.6. Após o treinamento da etapa 3.3.5 estar completo, pegue a iteração modelo HTC ResNet 101 de melhor desempenho e ajuste-a novamente executando a próxima fase de treinamento sobre o conjunto de dados de imagem alimentar a partir da etapa 3.2.5. Após o treinamento da etapa 3.3.6 estiver completo, pegue a iteração modelo HTC ResNet 101 de melhor desempenho.
Este modelo é então usado para testar o desempenho desta abordagem. Note-se que as etapas 3.3.3 a 3.3.7 renderam os melhores resultados para os propósitos definidos pelos autores deste artigo. A experimentação é necessária para cada conjunto de dados para encontrar a sequência ideal de etapas de treinamento e aumento de dados.
Depois de testar o modelo de tendência, a NutriNet alcançou uma precisão de classificação de 86,72% no conjunto de dados de reconhecimento, que era cerca de 2% maior que o AlexNet e ligeiramente maior que o GoogLeNet, que eram arquiteturas populares de rede neural profunda da época. Para medir a precisão do modelo de segmentação de imagem alimentar falsa FCN-8S, utilizou-se a medida de precisão de pixels. A precisão do modelo FCN-8S treinado foi de 92,18% A solução baseada em ResNet para segmentação de imagem alimentar foi avaliada utilizando a medida de precisão definida no Desafio de Reconhecimento Alimentar.
Com essa medida, o modelo de trem alcançou uma precisão média de 59,2%, que ficou em segundo lugar no Desafio de Reconhecimento Alimentar. Nos últimos anos, redes neurais profundas foram validadas várias vezes como uma solução adequada para o reconhecimento de imagens alimentares. Nosso trabalho apresentado neste artigo serve para provar isso.
A abordagem de reconhecimento de imagem alimentar de saída única é simples e pode ser usada para aplicações simples. Considerando que a abordagem de segmentação de imagens alimentares requer mais trabalho na preparação de imagens anotadas, mas é muito mais aplicável às imagens do mundo real. No futuro, nosso objetivo será avaliar ainda mais os procedimentos desenvolvidos em imagens do mundo real.
O primeiro passo para a validação do mundo real foi fornecido pelo Desafio de Reconhecimento alimentar, que incluiu um conjunto de dados de imagens de alimentos do mundo real. Mas, mais trabalho precisa ser feito para validar essa abordagem sobre imagens de alimentos de todo o mundo e em cooperação com nutricionistas.