• Nenhum resultado encontrado

Para realizar o treinamento de uma CNN que identificasse entre um humano caído ou não, foi utilizada a arquitetura proposta Inception V3, juntamente a uma transferência de aprendizado. O modelo foi retreinado de acordo com o tutorial3 disponível no site oficial da biblioteca Tensorflow, de modo que o resultado pudesse atingir uma maior acurácia e validação e, consequentemente, uma maior taxa de acerto na predição final.

Com referência aos hiperparâmetros, respeitou-se os valores considerados ótimos pela literatura já citada. Desta forma, na utilização da função AdaM, o tamanho do passo de aprendizagem utilizado foi de 0,001 e os fatores de decaimento γ1 e γ2 iguais a 0,9 e 0,999

respectivamente. Manteve-se a função de erro cross-entropy. 3https://www.tensorflow.org/hub/tutorials/image_retraining

O dataset final para o desenvolvimento da rede foi composto por 230 imagens por classe, totalizando assim 460 imagens. Destas imagens, é comum que 20 % sejam reservadas para a validação e o restante para o treinamento.

A quantidade de épocas (epochs) variou em cada treinamento. Toda vez que se executa um novo processo, muito embora possua os mesmos hiperparâmetros, o resultado final pode apresentar valores diferentes. Isto ocorre devido ao fato da rede iniciar seu processo de otimização para encontrar o mínimo global de forma aleatória. No entanto, espera-se que após um número suficiente de iterações o sistema entre em convergência, e assim obtenha resultados finais similares. A análise para se determinar o ponto de parada do treinamento foi feita juntamente com a análise de overfitting através da plataforma gráfica tensorboard, sendo melhor discutida no capítulo 4.

A respeito dos pré-processamentos das imagens para o treinamento, foi necessário dividir os valores de pixel por 255 como forma de normalizá-los dentro de uma escala que varia de zero a um, tento em vista que o Tensorflow trabalha nesta escala de operação. Foi também relevante manter uma padronização dos formatos de compressão utilizados no dataset, uma vez que haviam variadas compressões utilizadas, como por exemplo, imagens obtidas da Google, do aplicativo Whatsapp, banco de dados com compressão desconhecida ou mesmo imagens cruas, sem compressão alguma. Desta forma, optou-se por redimensionar e comprimir todas as imagens para um mesmo padrão, utilizando para isto a biblioteca PIL presente na linguagem Python, para o tamanho 256x256 pixels no formato de compressão PNG. Optou-se por manter uso dos 3 canais de cores padrão R, G e B, ao invés de transformar a imagem em um único canal em tons de cinza.

Como já citado anteriormente, para que a aprendizagem profunda funcione de forma eficiente, são necessárias uma grande quantidade de dados de entrada. Apesar de se utilizar transfer learning, a quantidade de imagens obtidas para a criação do dataset era insuficiente. Para contornar este problema, utilizou-se data augmentation. Nesta técnica, foram utilizados espelhamentos horizontais, ruídos gaussianos com valores aleatórios, alterações no brilho da imagem (valores inteiros randômicos que multiplicam os valores das densidades de pixel), redimensionamento de escala e rotações, sendo estas limitadas a 30 graus. Foram ainda utilizados janelamentos (crop) com valores também aleatórios, dado em porcentagem. Um janelamento de 50% indica metade do tamanho e largura da imagem de entrada.

4 RESULTADOS

A fim de obter uma resposta conclusiva sobre a efetividade dos hiperparâmetros empregados capítulo 3, seção 3, foram treinadas diversas redes com valores diferentes desses. No entanto, bem como a literatura sugere, tais mudanças causam uma menor eficiência no treinamento da rede. Desta forma, as alterações implicaram em uma necessidade maior de épocas, resultando assim em mais tempo de processamento e energia para alcançar a mesma acurácia que os hiperparâmetros propostos inicialmente. Existiram ainda casos demonstrando divergência.

À vista disso, as Figuras 20 à 25 foram obtidas através do tensorboard com base nos hiperparâmetros escolhidos. Cada imagem possui 4 curvas com tonalidades diferentes. As tonalidades azul e laranja escuros representam o gráfico com um smoothing de 0,6. Já as curvas com tonalidades azul e laranja claros representam o caso sem smoothing, o que designa o valor real de determinada época. Smoothing é um filtro linear que suaviza uma curva e indica se esta possui tendência de subida ou descida, facilitando portanto o processo de análise gráfica. Ele pode variar numa escala de 0 a 1, a qual controla o tamanho do janelamento. Utilizar o valor 1 significa empregar-se de 50 porcento de todos os pontos da curva durante o janelamento.

Figura 20: Comportamento da acurácia do treinamento e da validação ao avançar das épocas. Treinamento com 500 épocas.

Figura 21: Comportamento da função de erro cross-entropy do treinamento e da validação ao avançar das épocas. Treinamento com 500 épocas.

Fonte: Autoria própria.

As Figuras 20 e 21 apresentadas foram treinadas com 500 épocas. Nestas imagens, é possível observar a presença de overfitting iniciando a partir da época 150, sendo este melhor visualizado por meio das Figuras 22 e 23. Pode-se chegar a esta conclusão pois, nesta época, a acurácia do treinamento mantém-se constante, enquanto a acurácia da validação não aumenta (Figura 22). O erro da validação também passa a aumentar na mesma época (Figura 23), indicando, portanto, um claro sinal de um treinamento excessivo.

Figura 22: Figura 20 com ajuste de escala para melhor visualização de overfitting.

Figura 23: Figura 21 com ajuste de escala para melhor visualização de overfitting.

Fonte: Autoria própria.

Para evitar este overfitting, optou-se por fazer um novo treinamento com os mesmos hiperparâmetros, porém agora limitado a 150 épocas. Este novo treinamento é representado pelas Figuras 24 e 25.

Figura 24: Comportamento da acurácia do treinamento e da validação ao avançar das épocas. Treinamento com 150 épocas.

Figura 25: Comportamento da função de erro cross-entropy do treinamento e da validação ao avançar das épocas. Treinamento com 150 épocas.

Fonte: Autoria própria.

Ao final das 150 épocas, o sistema apresentou na validação uma acurácia de 89% com um erro (cross-entropy) de 0,286. Já o treinamento obteve uma acurácia de 100% e um erro de 0,0181.

A taxa de acerto preditivo é verificada realizando-se a seguinte operação Taxa de acerto= 1 −Total de imagens classificadas erradas

Total de imagens processadas . (26)

Antes de iniciar a avaliação, foi necessário coletar uma quantidade de imagens tal que esta fosse maior que 20% da quantidade de imagens utilizadas durante o treinamento. Reforça-se que estas imagens para a validação devem ser imagens inéditas, nunca vistas antes pela rede. Desta forma, foram obtidas ao menos 49 imagens para cada classe em dado ambiente. Após a coleta, foi necessário ainda separá-las manualmente e classificá-las por diretórios (pastas). As Figuras 26 e 27 constatam a forma como os resultados da predição de cada classe foi armazenado em um arquivo de texto.

Figura 26: Cabeçalho e predições errôneas salvas no arquivo de texto.

Fonte: Autoria própria.

Na Figura 26 é demonstrado que para cada ciclo de processo se cria um novo cabeçalho neste arquivo de texto, contendo a informação sobre o tipo de análise feita. Para cada imagem desta classe analisada, quando processada de forma errônea, armazena-se uma informação abaixo do cabeçalho noticiando qual o nome da imagem que obteve a resposta inesperada, bem como o resultado aguardado e a confiabilidade do sistema ao emitir a dada resposta.

Ao final do ciclo, determina-se e armazena-se um epílogo no arquivo de texto contendo a taxa de acerto encontrada (em porcentagem) com base na equação (26). A Figura 27 representa a armazenagem desta taxa.

Figura 27: Resultado da predição obtido após o processamento de todas as imagens de um mesmo diretório (classe).

Fonte: Autoria própria.

As Tabelas 1 e 2 contém os resultados preditivos encontrados em dois ambientes distintos, sendo tais ambientes não presentes no conjunto de imagens que compõe o dataset. Ambos os ambientes são visualizados através da Figura 28.

Figura 28: O ambiente 1 é representado pela letra (a), enquanto o ambiente 2 é representado pela letra (b)

Fonte: Autoria própria.

Tabela 1: Taxa de acerto preditivo da CNN desenvolvida.

Resultados (em %) Ambiente 1 Imagens não comprimidas Ambiente 1 Imagens comprimidas (png) Ambiente 2 Imagens não comprimidas Ambiente 2 Imagens comprimidas (png) Taxa de acerto da

classe não queda 70,58 % 76,47 % 75,82 % 80,22 %

Taxa de acerto da

classe queda 89,79 % 89,79 % 82,28 % 82,28 %

Fonte: Autoria própria.

O sistema de compressão utilizado para as imagens comprimidas na Tabela 1 foi o mesmo detalhado na seção 3 do capítulo 3, produzindo assim o mesmo formato das imagens utilizadas durante o treinamento da rede. É possível verificar que as imagens, quando comprimidas, obtêm uma maior taxa de acerto. Este processo comprova, portanto, a efetividade de um sistema de compressão padrão, seja ele tanto para o treinamento quanto para a validação. Isto ocorre porque os parâmetros que a rede aprende a analisar durante o treinamento, caso estejam em padrões diferentes no momento a validação, não serão totalmente adequados, e assim obterão potenciais resultados inferiores. Talvez seja possível alcançar resultados melhores caso outros sistemas de compressão sejam utilizados, como o formato BMP, por exemplo.

Tabela 2: Quantidade de erros e imagens processadas por ambiente. Imagens comprimidas. Resultados Quantidade de imagens processadas Quantidade de erros Taxa de acerto (em %) Ambiente 1 Não queda 85 20 76,47 % Ambiente 1 Queda 49 5 89,79 % Ambiente 2 Não queda 91 18 80,22 % Ambiente 2 Queda 79 14 82,28 %

Fonte: Autoria própria.

A Tabela 2 exemplifica a extração das informações geradas no arquivo de texto representado pelas Figuras 26 e 27 para a criação da Tabela 1. Nela, é expresso apenas o resultado que apresentou o melhor desempenho, isto é, os resultados das imagens com compressão.

Para se determinar uma taxa de acerto final, fez-se uma média aritmética com a taxa de acerto das classes queda e não queda do dos ambientes 1 e 2 da Tabela 1, e concluiu-se que a rede possui uma perícia de 82,19 %.

É ainda possível refinar a rede generalizada para um ambiente de trabalho específico. Para o processo de refinamento, basta acrescentar imagens, sendo tais imagens de ambas as classes (queda e não queda) do local em que o sistema deverá operar ao antigo dataset da rede generalizada, e realizar um novo treinamento da rede. É válido ressaltar que neste processo, a rede diminui sua taxa de acerto para ambientes gerais, porém obtém um ganho na taxa de acerto para o local onde foi refinado.

Como exemplificação deste processo, refinou-se a rede geral para operar no ambiente 2. Assim, foram adicionados ao dataset inicial 89 novas imagens para cada classe, sendo todas estas exclusivamente do ambiente 2. Atenta-se que as imagens agora foram obtidas de um ângulo fixo, sendo este o mesmo de onde a câmera irá estar posicionada para trabalhar. Nesta etapa, nota-se ser possível ultrapassar a quantidade limite dos 10 % de imagens de um único ambiente, visto que este será efetivamente o ambiente de sua operação. Retreinou-se portanto a rede seguindo os hiperparâmetros já descritos. Os resultados deste refinamento são visualizados na Tabela 3.

Tabela 3: Taxa de acerto preditivo da CNN refinada. Resultados (em %) Ambiente 1 Imagens comprimidas (png) Ambiente 2 Imagens comprimidas (png) Taxa de acerto da

classe não queda 69,41 % 94,00 %

Taxa de acerto da

classe queda 79,59 % 90,00 %

Fonte: Autoria própria.

Com base na tabela acima, prova-se, portanto, uma melhoria na taxa preditiva do ambiente para o qual a rede foi refinada ao custo de uma perda preditiva para ambientes generalizados. Ressalta-se que este processo é muito comum e importante em operações reais.

A Figura 29 exemplifica algumas imagens que foram classificadas erroneamente durante a validação da rede refinada para o ambiente 2.

Figura 29: Imagens classificadas erroneamente.

Fonte: Autoria própria.

Experimentou-se, como forma de expandir as imagens disponíveis tanto para o treinamento quanto para a validação, a utilização de uma plataforma gráfica denominada Unreal Engine4. No entanto, a rede não foi capaz de identificar um padrão que combinasse as imagens de humanos simulados com as imagens de humanos reais. Portanto, não é possível aplicar

esta identificação desenvolvida dentro de simuladores ou treinar uma aplicação dentro de um simulador a fim de obter resultados baseados no mundo real.

Documentos relacionados