DEPARTAMENTO ACADÊMICO DE ELETRÔNICA
PAULO VITOR LUDEWIG
SISTEMA DE DETECÇÃO DE QUEDAS DE IDOSOS
BASEADO EM DEEP LEARNING
TRABALHO DE CONCLUSÃO DE CURSO DE GRADUAÇÃO
CURITIBA 2018
SISTEMA DE DETECÇÃO DE QUEDAS DE IDOSOS
BASEADO EM DEEP LEARNING
Trabalho de conclusão de curso de graduação apresentado ao Departamento Acadêmico de Ele-trônica da Universidade Tecnológica Federal do Paraná como requisito parcial para obtenção do grau de Bacharel em Engenharia Eletrônica Orientador: Prof. Dr. André E. Lazzaretti
CURITIBA 2018
PAULO VITOR LUDEWIG VARELA
SISTEMA DE DETECÇÃO DE QUEDAS DE IDOSOS BASEADO EM
APRENDIZADO PROFUNDO.
Este Trabalho de Conclusão de Curso de Graduação foi apresentado como requisito parcial para obtenção do título de Engenheiro Eletrônico, do curso de Engenharia Eletrônica do Departamento Acadêmico de Eletrônica (DAELN) outorgado pela Universidade Tecnológica Federal do Paraná (UTFPR). O aluno foi arguido pela Banca Examinadora composta pelos professores abaixo assinados. Após deliberação, a Banca Examinadora considerou o trabalho aprovado.
Curitiba, 08 de agosto de 2018.
____________________________________ Prof. Dr. Robinson Vida Noronha
Coordenador de Curso Engenharia Eletrônica
____________________________________ Profª. Drª. Carmen Caroline Rasera
Responsável pelos Trabalhos de Conclusão de Curso de Engenharia Eletrônica do DAELN
BANCA EXAMINADORA
______________________________________ Prof. Dr. André Eugênio Lazzaretti
Universidade Tecnológica Federal do Paraná Orientador
_____________________________________ Prof. Dr. Daniel Rodrigues Pipa
Universidade Tecnológica Federal do Paraná
_____________________________________ Prof. Dr. Gustavo Benvenutti Borba
Universidade Tecnológica Federal do Paraná
Agradeço a todas as pessoas que possibilitaram a realização deste trabalho. André E. Lazzaretti pela orientação e pela mentoria ao longo de grande parte da graduação.
Verônica Ricken Marques, minha noiva, por todo o suporte, motivação e compre-ensão.
Minha família: minha mãe Tânia Regina Ludewig, minha avó Isolde Marli Lu-dewig, minha tia Katiane Paula Ludewig e meu avô José Haroldo Ludewig por fazerem tudo ao alcance para que eu possa alcançar meus objetivos.
Meus amigos: Eric Hideo Yoshitome, Gabriel Caron Bastos, João Vitor Rodrigues da Cruz, Lilian Caroline Cava, Luciana Gonçalves de Mello e Patrícia Paula da Luz Victor por tornarem os dias melhores.
Gustavo B. Borba pela disponibilização de espaço em seu laboratório para reali-zação de atividades deste trabalho.
Universidade Tecnológica Federal do Paraná por toda a estrutura para o curso de graduação.
LUDEWIG, Paulo Vitor. SISTEMA DE DETECÇÃO DE QUEDAS DE IDOSOS BA-SEADO EM DEEP LEARNING. 67 f. Trabalho de conclusão de curso de graduação – Departamento acadêmico de eletrônica, Universidade Tecnológica Federal do Paraná. Curitiba, 2018.
Quedas em idosos são um problema de saúde pública, devido ao envelhecimento da popu-lação aliado às graves consequências que podem trazer. Nesta situação surge a necessidade de evitar estes problemas e mitigar suas consequências. Um sistema de detecção de que-das se encaixa na segunda categoria, permitindo a redução do tempo de atendimento a idosos que sofrem quedas. O trabalho realizado consiste no desenvolvimento de um sis-tema de detecção de quedas de baixo custo baseado em deep learning para processamento de imagens passando pelas etapas de obtenção de base de dados de imagens classificadas, treinamento de quatro arquiteturas convencionais de redes neurais (AlexNet, VGG-19, GoogleNet e ResNet) utilizando o processo de transfer learning para comparação de de-sempenho e implementação em sistema embarcado. O melhor dede-sempenho obtido entre as redes neurais utilizadas foi com a rede AlexNet. Quando é detectada uma queda, uma mensagem SMS é enviada para um usuário monitor. O sistema é tecnicamente viável, visto que atingiu índices de precisão e revocação maiores que 96% mesmo em situações adversas. O sistema deve passar por aprimoramentos antes de se tornar um produto. Palavras-chave: Detecção de quedas, deep learning, NVIDIA Jetson
LUDEWIG, Paulo Vitor. FALL DETECTION SYSTEM FOR THE ELDERLY BASED ON DEEP LEARNING. 67 f. Trabalho de conclusão de curso de graduação – Departa-mento acadêmico de eletrônica, Universidade Tecnológica Federal do Paraná. Curitiba, 2018.
Falls in the elderly are a public health problem, due to the aging of the population combined with the serious consequences they can bring. In this situation the need to avoid these problems and mitigate their consequences arises. A fall detection system fits into the second category, allowing the reduction of the time to attendance for the elderly who suffer falls. The work developed consists of the development of a low cost fall detection system based on deep learning for image processing through the steps of obtaining a database of classified images, training of four conventional architectures of neural networks (AlexNet, VGG- 19, GoogleNet and ResNet) using the transfer learning process to compare performance and implementation in embedded systems. The best performance obtained among the used neural networks is with the AlexNet network. When a fall is detected, an SMS message is sent to a monitor user. The system is technically feasible, as it achieved accuracy and recall rates of over 96 % even in adverse situations. The system must go through improvements before becoming a product. Keywords: Fall detection, Deep Learning, NVIDIA Jetson
–
FIGURA 2.1 Esquema de classificação . . . 17 –
FIGURA 2.2 Rede Neural . . . 20 –
FIGURA 2.3 Rede Neural Convolucional . . . 21 –
FIGURA 2.4 Camadas de ativação . . . 22 –
FIGURA 2.5 Pooling . . . 23 –
FIGURA 2.6 Transfer learning . . . 26 –
FIGURA 2.7 Melhorias transfer learning . . . 26 –
FIGURA 2.8 Processo prático de transfer learning . . . 27 –
FIGURA 2.9 Módulo inception . . . 28 –
FIGURA 2.10 Bloco residual . . . 28 –
FIGURA 3.1 Kit de desenvolvedor NVIDIA Jetson TX1 . . . 30 –
FIGURA 3.2 NVIDIA Jetson TX1 . . . 31 –
FIGURA 3.3 Imagem com iluminação versus sem iluminação . . . 32 –
FIGURA 3.4 Cenas normais . . . 33 –
FIGURA 3.5 Cenas de queda . . . 34 –
FIGURA 3.6 Outra posição da câmera . . . 34 –
FIGURA 3.7 Diagrama de comparação . . . 36 –
FIGURA 3.8 Matriz de confusão . . . 37 –
FIGURA 3.9 Fluxograma do projeto . . . 39 –
FIGURA 3.10 Fluxograma do produto . . . 39 –
FIGURA 4.1 Curva de treinamento alexnet com dataset 1 . . . 46 –
FIGURA 4.2 Matriz de confusão da rede Alexnet com o dataset 1 . . . 46 –
FIGURA 4.3 Curva de treinamento VGG-19 com dataset 1 . . . 47 –
FIGURA 4.4 Matriz de confusão da rede VGG-19 com o dataset 1 . . . 47 –
FIGURA 4.5 Curva de treinamento GoogleNet com dataset 1 . . . 48 –
FIGURA 4.6 Matriz de confusão da rede GoogleNet com o dataset 1 . . . 48 –
FIGURA 4.7 Curva de treinamento ResNet com dataset 1 . . . 49 –
FIGURA 4.8 Matriz de confusão da rede ResNet com o dataset 1 . . . 49 –
FIGURA 4.9 Curva de treinamento AlexNet com dataset 2 . . . 50 –
FIGURA 4.10 Matriz de confusão da rede AlexNet com o dataset 2 . . . 50 –
FIGURA 4.11 Curva de treinamento VGG-19 com dataset 2 . . . 51 –
FIGURA 4.12 Matriz de confusão da rede VGG-19 com o dataset 2 . . . 51 –
FIGURA 4.13 Curva de treinamento GoogleNet com dataset 2 . . . 52 –
FIGURA 4.14 Matriz de confusão da rede GoogleNet com o dataset 2 . . . 52 –
FIGURA 4.15 Curva de treinamento ResNet com dataset 2 . . . 53 –
FIGURA 4.16 Matriz de confusão da rede ResNet com o dataset 2 . . . 53 –
FIGURA 4.17 Curva de treinamento AlexNet com dataset 3 . . . 54 –
FIGURA 4.18 Matriz de confusão da rede AlexNet com o dataset 3 . . . 54 –
FIGURA 4.19 Curva de treinamento VGG-19 com dataset 3 . . . 55 –
FIGURA 4.20 Matriz de confusão da rede VGG-19 com o dataset 3 . . . 55 –
FIGURA 4.21 Curva de treinamento GoogleNet com dataset 3 . . . 56 –
–
FIGURA 4.25 Curva de treinamento AlexNet com dataset 4 . . . 58 –
FIGURA 4.26 Matriz de confusão da rede AlexNet com o dataset 4 . . . 58 –
FIGURA 4.27 Curva de treinamento VGG-19 com dataset 4 . . . 59 –
FIGURA 4.28 Matriz de confusão da rede VGG-19 com o dataset 4 . . . 59 –
FIGURA 4.29 Curva de treinamento GoogleNet com dataset 4 . . . 60 –
FIGURA 4.30 Matriz de confusão da rede GoogleNet com o dataset 4 . . . 60 –
FIGURA 4.31 Curva de treinamento ResNet com dataset 4 . . . 61 –
FIGURA 4.32 Matriz de confusão da rede ResNet com o dataset 4 . . . 61 –
FIGURA 4.33 Imagem normal . . . 62 –
–
TABELA 2.1 Arquiteturas de redes neurais . . . 29 –
TABELA 3.1 Datasets gerados . . . 40 –
CNN Convolutional Neural Network SOM System-on-module
IR Infrared (Infravermelho) BSD Berkeley Software Distribution LMDB Lightning Memory-Mapped Database MATLAB Matrix Laboratory
SMS Short Message Service PoE Power Over Ethernet
1 INTRODUÇÃO . . . 13 1.1 JUSTIFICATIVA . . . 13 1.2 OBJETIVOS . . . 14 1.2.1 Objetivos gerais . . . 14 1.2.2 Objetivos específicos . . . 14 2 REFERENCIAL TEÓRICO . . . 16 2.1 DETECÇÃO DE QUEDAS . . . 16 2.1.1 Quedas em idosos . . . 16 2.1.2 Estado da Arte . . . 16 2.2 REDES NEURAIS . . . 19 2.2.1 Tipos de camadas . . . 21 2.2.1.1 Camada de convolução . . . 21 2.2.1.2 Ativação . . . 22 2.2.1.3 Pooling . . . 22 2.2.1.4 Fully Connected . . . 23 2.2.1.5 Classificação . . . 23 2.2.2 Treinamento . . . 24 2.2.3 Transfer Learning . . . 25
2.2.4 Arquiteturas convencionais de redes neurais . . . 27
3 MATERIAIS E MÉTODOS . . . 30 3.1 NVIDIA JETSON TX1 . . . 30 3.2 CÂMERA . . . 31 3.3 BASE DE DADOS . . . 32 3.4 AMBIENTE DE DESENVOLVIMENTO . . . 34 3.4.1 Caffe . . . 35 3.4.2 MATLAB R . . . 35 3.4.3 Metodologia de comparação . . . 36 3.4.4 Arquitetura do sistema . . . 38 3.4.5 Visão do usuário . . . 38 4 RESULTADOS E DISCUSSÃO . . . 41
4.1 COMPARAÇÃO DE REDES NEURAIS . . . 41
4.1.1 Dataset 1 . . . 41 4.1.2 Dataset 2 . . . 42 4.1.3 Dataset 3 . . . 42 4.1.4 Dataset 4 . . . 43 4.2 IMPLEMENTAÇÃO . . . 44 4.3 DISCUSSÃO . . . 45 5 CONSIDERAÇÕES FINAIS . . . 63 REFERÊNCIAS . . . 65
1 INTRODUÇÃO
Este trabalho apresenta o desenvolvimento de um sistema de detecção de quedas baseado em aprendizado profundo. O problema de quedas é comum em idosos e traz grandes prejuízos em vários âmbitos: para a pessoa, prejuízos psicológicos, redução da independência, medo de futuras quedas; para a família, preocupação com o ente querido, prejuízo financeiro para pagar alguma companhia ou deixar suas atividades para isto e para o governo, prejuízo financeiro para o tratamento das consequências das quedas (PERRACINI; RAMOS, 2002). Um sistema de detecção de quedas tem como objetivo reduzir o tempo de atendimento à pessoa que sofreu o acidente (TINETTI et al., 1988).
A proposta do trabalho é o desenvolvimento de um sistema de detecção de quedas por processamento de imagens adquiridas por uma câmera, passando pelas etapas de obtenção de uma base de dados para treinamento do sistema de aprendizado de máquina, treinamento de arquiteturas convencionais de redes neurais (AlexNet, VGG-19, GoogleNet e Resnet) utilizando processo de transfer learning e implementação em sistema embarcado. Quando ocorre uma queda, um usuário “monitor” recebe uma notificação por mensagem de texto (SMS). O desempenho das arquiteturas será comparado a fim de determinar a melhor rede para o problema. Será feito um estudo sobre a escalabilidade do sistema para processamento de imagens de várias câmeras utilizando o mesmo hardware.
1.1 JUSTIFICATIVA
Além dos problemas médicos, as quedas apresentam custo social, econômico e psicológico enormes, aumentando a dependência e a institucionalização. Estima-se que há uma queda para um em cada três indivíduos com mais de 65 anos e, que um em vinte daqueles que sofreram uma queda sofram uma fratura ou necessitem de internação. Dentre os mais idosos, com 80 anos ou mais, 40% caem a cada ano. Dos que moram em asilos e casas de repouso, a frequência de quedas é de 50% (MS, 2009).
sofreram uma queda, dois sofreriam novamente uma queda nos próximos seis meses. Os autores também verificaram que as consequências das quedas aumentam com o tempo para atendimento.
Perracini e Ramos (2002) realizaram um estudo consistindo em dois questionários sobre quedas feitos em anos seguidos para 1667 idosos. 31% dos entrevistados tiveram queda no ano anterior ao primeiro questionário, sendo 11% com duas ou mais. No estudo completo, 32,7% dos idosos alegaram queda, sendo 13,9% duas ou mais quedas.
Desta forma, são necessárias ações para a prevenção de quedas e para reduzir os danos quando ocorrem. O sistema proposto se encaixa na segunda categoria, e visa melhorar a qualidade de vida de idosos, permitindo que realizem atividades cotidianas sem medo de sofrerem quedas e ficarem sem atendimento.
1.2 OBJETIVOS
1.2.1 OBJETIVOS GERAIS
O trabalho realizado tem dois objetivos principais: desenvolvimento de um sis-tema de detecção de quedas e comparação do desempenho de arquiteturas convencionais de redes neurais treinadas pelo processo de transfer learning para a aplicação.
O sistema de detecção de quedas tem como objetivo reduzir o tempo de atendi-mento a um idoso que sofreu uma queda e não conseguiu se recuperar. Com isso, a ideia é que o idoso acidentado não se sinta com medo de realizar suas atividades regulares, já que saberá que alguém foi avisado caso ocorra uma queda. Devido aos altos índices de quedas em idosos, a instalação do sistema é indicada a quaisquer ambientes. Como a reincidência das quedas é consideravelmente alta, o sistema se torna ainda mais interessante, visto que após uma primeira queda a tendência é que ocorram outras.
Já o objetivo da comparação de desempenho das arquiteturas convencionais de redes neurais é utilizar as ferramentas para avaliação de sistemas de aprendizado de má-quina, no caso, curvas de treinamento e matriz de confusão, para verificar a aplicabilidade das redes neurais consolidadas na solução do problema, além de verificar se o processo de transfer learning é adequado para a aplicação.
1.2.2 OBJETIVOS ESPECÍFICOS
• Obtenção de base de dados de quedas;
• Comparação do desempenho de arquiteturas convencionais de redes neurais treina-das pelo processo de transfer learning para o problema;
• Verificação da capacidade de generalização do sistema; • Implementação em sistema embarcado;
2 REFERENCIAL TEÓRICO
2.1 DETECÇÃO DE QUEDAS
Nesta seção são apresentados dados sobre quedas de idosos, a fim de ressaltar a importância do trabalho e é feita uma revisão da literatura.
2.1.1 QUEDAS EM IDOSOS
Quedas podem ser definidas como eventos que levam indivíduos a ficarem no chão involuntariamente, com exceção de mudanças intencionais de posição (WHO, 2008). As quedas em idosos tem como consequências, além de possíveis fraturas e risco de morte, o medo de cair, a restrição de atividades, o declínio na saúde e o aumento no risco de institucionalização (PERRACINI; RAMOS, 2002). Estima-se que há uma queda para um em cada três indivíduos com mais de 65 anos e, que um em vinte daqueles que sofreram uma queda sofram uma fratura ou necessitem de internação. Dentre os mais idosos, com 80 anos e mais, 40% caem a cada ano. Dos que moram em asilos e casas de repouso, a freqüência de quedas é de 50% (MS, 2009). Desta forma, quedas em idosos são um problema de saúde pública.
Quando ocorre uma queda, o principal objetivo é reduzir o tempo de ajuda. Pes-quisas mostraram que o risco de sequelas está relacionado ao tempo em que a vítima espera por assistência (TINETTI et al., 1988 apud QUADROS, 2017). A principal utilidade dos sistemas de detecção de quedas é reduzir este tempo de espera.
2.1.2 ESTADO DA ARTE
Chaccour et al. (2017) analisaram quatro artigos de revisão sobre sistemas rela-cionados a quedas, sendo (NOURY et al., 2007), (MUBASHIR et al., 2013), (PERRY et al., 2009) e (IGUAL et al., 2013), e propôs um método de classificação baseado nas ideias desses autores. As categorias propostas são:
• Wearable based systems(WS), em que é utilizado algum dispositivo no corpo do usuário, por exemplo, uma pulseira;
• Non-wearable based systems(NWS), em que não são utilizados dispositivos no corpo do usuário, por exemplo, um sistema baseado em imagens ou em sensores acoplados ao chão do ambiente;
• Fusion or hybrid based systems(FS), que misturam técnicas das outras categorias. Além disso, os autores classificaram os sistemas em detecção de quedas (fall detec-tion - FD) e prevenção de quedas (fall prevendetec-tion - FP). Considerando isso, a figura 2.1 apresenta o esquema de classificação proposto por Chaccour et al. (2017), listando as principais tecnologias utilizadas em cada categoria.
Figura 2.1: Esquema de classificação de sistemas relacionados a quedas por Chaccour et al. (2017)
Fonte: (CHACCOUR et al., 2017)
A solução proposta neste trabalho se classifica na categoria de FD - fall detec-tion, subcategoria NWS - non-wearable system, tipo VIS - vision, utilizando a tecnologia camera. Outros trabalhos atuais na mesma linha são elencados na sequência.
Kong et al. (2017) utilizaram somente técnicas de processamento de imagens aplicadas em imagens de profundidade para realizar a detecção de quedas. Foi utilizada
a detecção de humanos fornecida pelo Microsoft Kinect SDK 2.0, filtro mediana para redução de ruídos, detecção de envoltória por filtro Canny, cálculo dos vetores tangentes aos pontos de envoltória e agrupamento destes vetores em conjuntos de intervalos. As situações de queda tem uma quantidade maior de vetores tangentes em inclinação baixa. Quando a porcentagem de vetores tangentes com inclinação baixa ultrapassa um limiar, a queda é detectada. O algoritmo atingiu acurácia de 97,1%.
Foi proposto por Daga et al. (2017) um sistema baseado em câmeras de profun-didade. É realizada uma extração de silhueta e são obtidos atributos de espaço de escala de curvatura. É utilizada a técnica de bag of words para manter informações temporais. Por fim, é realizada a classificação por um algoritmo misto de ELM (extreme machine learning) e SRC (sparse representation classification). A acurácia atingida pelos autores foi de 99,6%.
Utilizando uma estratégia bastante semelhante com a deste trabalho, Li et al. (2017) abordaram o tema utilizando redes neurais convolucionais, sendo, Alexnet. A rede foi treinada utilizando um dataset público. As imagens são pré-processadas com subtração do frame médio e normalização de contraste. Foi atingida uma acurácia de 99,98%, sensibilidade de 100% e especificidade de 99,98%.
Miguel et al. (2017) desenvolveram um sistema de baixo custo para ser utilizado em casas. O hardware utilizado foi uma placa Rasperry Pi 2 juntamente com uma câ-mera própria para esta plataforma. O processamento feito foi remoção de fundo seguido de aplicação de fitro Kalman, determinação do fluxo óptico e detecção de oclusão. A clas-sificação foi feita utilizando um algoritmo de K-Nearest Neighbours. O sistema de alerta envia mensagens por e-mail ou pelo mensageiro Telegram. Em seus testes, foi atingida uma taxa de detecção de mais de 96%.
Já Iazzi et al. (2018) desenvolveram um algoritmo com as etapas de: extração de silhuetas humanas seguida de determinação da postura (em pé, sentado, deitado ou agachado) por meio de comparação entre partições horizontais e verticais da silhueta e classificação utilizando SVM (Support Vector Machine). Classificações como “deitado” passam por uma máquina de estados para determinar se é intencional ou uma queda. A performance do sistema foi de 93,7%.
Similarmente, Sehairi et al. (2018) propuseram um método baseado em remoção de fundo seguida de filtro morfológico e classificação de componentes, para utilização so-mente de silhuetas humanas. São extraídos os seguintes atributos: velocidade vertical da cabeça, área, razão altura/largura, diâmetro de Feret, orientação e distância de
Procrus-tes. A classificação é feita utilizando os atributos numa BPNN (backpropagation neural network ). Foi atingida uma acurácia de 99,6%.
A estratégia utilizada por Kim et al. (2018) foi baseada em obtenção de informa-ções 3D a partir de imagens RGB. As etapas do algoritmo são filtragem para remoção de ruído (filtro de mediana), geração da imagem 3D a partir da RGB, detecção de humanos e rastreamento de cabeça por filtragem Kalman extendida. A detecção da queda é feita verificando a orientação da inclinação do corpo. O sistema atingiu até 100% de sucesso, dependendo da condição, porém os testes foram realizados em somente quatro cenas.
De maneira diferente dos anteriores, mas mais similar ao presente trabalho, Shojaei-Hashemi et al. (2018) apresentaram um método baseado em aprendizado pro-fundo. Foram utilizadas imagens de profundidade numa RNN (recurrent neural network ), que, devido a sua realimentação, utiliza informações de frames anteriores para fazer a clas-sificação atual. Foi atingida precisão de 93% e revocação de 96%.
Percebe-se que os trabalhos seguem duas principais linhas: utilização de técnicas de aprendizado profundo ou obtenção de atributos com variadas técnicas de processamento de imagens e classificação utilizando técnicas de aprendizado de máquina. As imagens utilizadas podem ser classificadas em duas categorias: imagens de cor ou imagens de pro-fundidade. A grande maioria dos trabalhos realizados se preocupa com o desenvolvimento do algoritmo, e não o implementa em um sistema real, somente são feitos testes em data-sets públicos ou obtidos pelos autores. Neste contexto, o presente trabalho utiliza técnicas de aprendizado profundo juntamente com imagens de cor e implementa o algoritmo em um sistema real.
É muito complicado comparar adequadamente o desempenho entre sistemas dis-tintos, visto que não ha critério comum de avaliação e não há procedimento padrão para a realização dos testes (NOURY et al., 2007). É possível verificar com clareza a primeira declaração nos exemplos citados neste texto, já que cada autor divulga um índice sobre seu trabalho: precisão, acurácia, revocação, taxa de detecção, performance etc.
2.2 REDES NEURAIS
As redes neurais diferem do paradigma convencional de programação pois este quebra grandes problemas em menores, que consistem em pequenas tarefas que podem ser resolvidas por computadores, enquanto naquele o problema é resolvido por dados observacionais, sem dizer ao computador como resolvê-lo (NIELSEN, 2015). Ou seja,
em vez de dizer à máquina como resolver problemas por meio de passos bem definidos, utilizando algoritmos, apresentam-se entradas com suas saídas esperadas e aproxima-se um modelo a estes parâmetros.
Redes neurais podem ser entendidas como um conjunto de unidades básicas de processamento, altamente interconectadas, que operam sobre determinadas entradas pro-cessando a informação e gerando a saída desejada (KHAN et al., 2018). Na figura 2.2 há uma representação de uma rede neural.
Figura 2.2: Exemplo de uma rede neural.
Fonte: (KHAN et al., 2018)
Cada camada é composta por uma série de unidades básicas, chamadas de neurô-nios que realizam operações sobre suas entradas, com base em seus parâmetros, denomina-dos pesos. Os dadenomina-dos são inseridenomina-dos na camada de entrada e os resultadenomina-dos ficam disponíveis na camada de saída.
Caso a rede realize operações do tipo convolução, ela é denominada rede neural convolucional (CNN). São utilizadas em aplicações de imagem e vídeo, pois os filtros con-volucionais incorporam informações sobre o contexto espacial, além de reduzir o número de parâmetros a serem determinados (KHAN et al., 2018), visto que um filtro convoluci-onal tem dimensão menor que a entrada.
As arquiteturas das CNN tem diversas variações, mas, em geral, elas consistem em camadas de convolução, com uma ou mais camadas completamente conectadas entre elas (RAWAT; WANG, 2017). Uma arquitetura típica de CNN pode ser vista na figura 2.3. A camada de convolução mencionada anteriormente tem um contexto amplo. Ela
é composta por três estágios, sendo: a convolução propriamente dita, que gera uma série de ativações lineares, uma camada de ativação, em que as ativações lineares passam por funções não lineares e uma camada de pooling que substitui a saída em determinado ponto por alguma estatística da sua vizinhança (GOODFELLOW et al., 2016).
Figura 2.3: Exemplo de uma rede neural convolucional.
Fonte: (RAWAT; WANG, 2017)
2.2.1 TIPOS DE CAMADAS
Os tipos mais usuais de camadas são convolução, ativação, pooling, fully connected e classificação.
2.2.1.1 CAMADA DE CONVOLUÇÃO
Um filtro bi-dimensional é uma operação em que a saída consiste em uma com-binação linear de pixels da entrada, ponderados por um kernel ou máscara. Matematica-mente, a saída de um filtro convolucional é dada pela Equação 2.1 (SZELISKI, 2011).
g(i, j) = X k,l
f (i + k, j + l)h(k, l) (2.1)
Em que g(i, j) é a posição (i, j) da saída, f (x, y) é a imagem de entrada e h(k, l) é o filtro em si. Ou seja, cada pixel de saída consiste numa combinação linear do pixel de entrada com seus vizinhos. Esta operação é denominada convolução bi-dimensional.
Uma camada de convolução é formada por um kernel com pesos a serem determi-nados durante o processo de treinamento. A camada é definida pelas dimensões do filtro,
usualmente 3x3, 5x5 ou 7x7 (RAWAT; WANG, 2017) e pelo stride, que é o passo com que o filtro é aplicado na imagem.
2.2.1.2 ATIVAÇÃO
As camadas de convolução geralmente são seguidas pelas camadas de ativação, também denominadas camadas de não-linearidade. A camada de ativação recebe um valor real e o “comprime” para o intervalo [0, 1] ou [−1, 1]. O uso das camadas de ativação é importante pois permite à rede aprender fenômenos lineares por parte. Um neurônio de ativação pode ser entendido como “ativo” ou “inativo” dependendo da entrada. As funções de ativação mais comuns são apresentadas na figura 2.4 (RAWAT; WANG, 2017).
Figura 2.4: Camadas de ativação mais usuais.
Fonte: (RAWAT; WANG, 2017)
2.2.1.3 POOLING
A saída de uma camada de pooling é uma estatística de um pixel e sua vizinhança. As estatísticas mais comuns são: valor máximo, média, norma `2 e média ponderada baseada na distância do pixel central. O uso de pooling deixa o modelo aproximadamente invariante com relação a pequenas translações na entrada (GOODFELLOW et al., 2016). A figura 2.5 mostra uma comparação entre max pooling e average pooling aplica-dos a uma matriz 4x4 sem sobreposição.
Figura 2.5: Comparação entre max pooling e average pooling.
Fonte: (RAWAT; WANG, 2017)
2.2.1.4 FULLY CONNECTED
As camadas fully connected tem como função realizar abstrações de mais alto nível (RAWAT; WANG, 2017). Estas camadas estão densamente conectadas com a anterior. Elas podem ser interpretadas como uma camada de convolução 1x1. (KHAN et al., 2018).
2.2.1.5 CLASSIFICAÇÃO
As camadas de classificação são as camadas de saída numa rede neural. Uma camada de classificação é fully-connected com a camada anterior. Este tipo de camada indica a probabilidade de cada entrada pertencer a determinada classe utilizando uma função custo para determinar a qualidade das previsões durante o processo de treinamento (KHAN et al., 2018). Funções custo usuais são cross-entropy, norma euclideana, norma `1, entre outras.
2.2.2 TREINAMENTO
O processo de treinamento de uma rede neural consiste em minimizar a função custo, variando os pesos das camadas, para dado conjunto em que são conhecidas as saídas esperadas para cada entrada.
Dado o problema de otimização: minimizar f (x) sujeito a x ∈ Ω, tem-se o coro-lário: dado x∗ ∈ Ω, tal que x∗ é um minimizador local de f (x), se f (x) é diferenciável, então ∇f (x∗) = 0 (MARTINEZ; SANTOS, 1995).
Este método analítico é de complicada implementação devido ao grande número de não linearidades e variáveis em um problema de treinamento de redes neurais (NIEL-SEN, 2015) e também devido à dificuldade de isolar x em ∇f (x) = 0. Uma forma geral de definir um algoritmo consiste em escolher, a partir de cada ponto obtido, uma direção para dar o próximo passo. Uma possibilidade razoável é determinar uma direção em que f (x) decresce (RIBEIRO; KARAS, 2011).
Dado um ponto x ∈ Rn com ∇f (x) 6= 0, sabe-se que x não é um minimizador da função, portanto na vizinhança de x existem pontos z tais que f (z) < f (x). Uma direção de descida é definida como uma direção em que se encontrem estes pontos. Uma direção em que a condição sempre se satisfaz é que a direção d = −∇f (x) (FRIEDLANDER, 1994).
Ainda assim é necessário calcular o gradiente da função, o que é difícil, principal-mente em camadas internas da rede neural. Desta forma, utilizam-se métodos numéricos para a estimação do gradiente, sendo o método mais utilizado em redes neurais o de backpropagation (NIELSEN, 2015).
Pode-se interpretar o algoritmo de backpropagation intuitivamente da seguinte maneira: visto que cada camada tem como entrada a saída da camada interior, a rede neural completa pode ser interpretada como uma composição de funções. Por exem-plo, numa rede de três camadas, tem-se y = f (g(h(x))). Pela regra da cadeia, y0 = f0(g(h(x))).g0(h(x)).h0(x). Como as funções f, g e h são conhecidas (são os neurônios), avalia-se o valor de y para dado x e retorna-se determinando o gradiente numericamente neste ponto, primeiramente f0(g(h(x))) e assim por diante. A determinação do gradi-ente numericamgradi-ente pode ser feita pela regra das diferenças finitas f0(x) = f (x+δx)−f (x)∆x . Em aplicações reais, são utilizados métodos mais sofisticados, com maior estabilidade numérica.
ficar “preso”, o que não é interessante para o problema. Para isto foi criada a técnica do momento, que inclui informações sobre o gradiente em instantes anteriores de tempo para realizar uma composição na hora de gerar a direção de descida. Uma interpretação da técnica do momento é que em regiões em que os gradientes são similares não há perdas em utilizar informações do gradiente anterior e em regiões próximas de mínimos locais, em que os gradientes têm direções variadas e módulo reduzido, continua-se na direção que estava sendo seguida e evita-se perder iterações em oscilações ao redor de mínimos locais. Há algoritmos mais sofisticados, como o de Nesterov, que utiliza informações do próximo ponto previsto para evitar o aumento da função custo (KHAN et al., 2018).
Na prática raramente há como carregar todo o conjunto de dados para realizar o treinamento da rede de uma vez na memória de um dispositivo, pois, muitas vezes, o conjunto de dados (dataset ) é composto por milhares ou milhões de imagens. Para isso, os algoritmos de otimização para treinamento de redes neurais atualizam os parâmetros baseados numa estimativa da função custo estimada utilizando somente um subconjunto dos termos da função completa (GOODFELLOW et al., 2016). Esta técnica é deno-minada minibatch. O conjunto de dados a ser usado em cada iteração é determinado estocasticamente.
Os métodos descritos partem de um ponto estimado atual. O ponto inicial deve ser determinado de alguma maneira. Inicialização inadequada de parâmetros em parâme-tros de CNNs, que tipicamente estão na ordem de milhões, podem dificultar consideravel-mente o processo de treinamento da rede, devido a problemas como gradientes explodindo ou zerando e regiões de convergência dos algoritmos (RAWAT; WANG, 2017).
Há diversas técnicas de inicialização, como distribuição uniforme, distribuição normal, inicialização aleatória ortogonal, inicialização de Xavier, entre outros (KHAN et al., 2018). Uma alternativa ao treinamento de uma rede neural do início, é utilizar o processo chamado de transfer learning.
2.2.3 TRANSFER LEARNING
Este processo é o aprendizado de uma nova tarefa por meio da transferência de conhecimento de uma tarefa similar que já foi aprendida (OLIVAS et al., 2009). A figura 2.6 ilustra a diferença entre o processo de aprendizado de máquina tradicional, em que cada problema é resolvido independentemente e o processo de transfer learning, em que são aproveitadas características de problemas já resolvidos para a solução de problemas atuais.
Figura 2.6: Comparação de processo de aprendizado de máquina tradicional e transfer learning.
Fonte: (PAN; YANG, 2010)
Para o uso de transfer learning, assume-se que o domínio do problema original esteja relacionado com o domínio do problema objetivo (PAN; YANG, 2010). De acordo com Olivas et al. (2009), o processo de transfer learning pode trazer melhorias em três aspectos no processo de treinamento do sistema: maior performance inicial, maior taxa de aprendizado e assíntota mais alta, conforme ilustrado na figura 2.7.
Figura 2.7: Melhorias trazidas pelo transfer learning.
Fonte: (OLIVAS et al., 2009)
Na prática, utiliza-se uma rede neural pré treinada e adapta-se para a tarefa desejada, por exemplo, alterando as camadas de saída (KHAN et al., 2018). Um fluxo-grama apresentando o processo de transfer learning proposto pela MathWorks (2018b) é mostrado na figura 2.8. Ele consiste em carregar uma rede neural pré-treinada, editar as
camadas de saída para o problema desejado, treinar a rede com o novo dataset e imple-mentar os resultados. Após isso, verificam-se os resultados do sistema e, caso necessário, realizam-se alterações no dataset ou nas opções de treinamento para melhorar a rede. Este foi o processo utilizado no presente trabalho.
Figura 2.8: Processo prático de transfer learning.
Fonte: (MATHWORKS, 2018b)
2.2.4 ARQUITETURAS CONVENCIONAIS DE REDES NEURAIS
O objetivo da rede AlexNet foi consolidar o uso de redes neurais profundas, visto que foi a primeira a obter resultados excelentes na competição ILSVRC1 (KRIZHEVSKY et al., 2012).
A rede VGG-19 teve como objetivo estudar a influência da profundidade das redes neurais na sua performance. Foram testadas várias arquiteturas com camadas simples e grande profundidade (SIMONYAN; ZISSERMAN, 2014).
Por sua vez, a rede GoogleNet inseriu os módulos inception, ilustrados na fi-gura 2.9, com o objetivo de aumentar a área de influência de cada neurônio sem aumentar excessivamente o número de parâmetros (SZEGEDY et al., 2015).
Já a rede ResNet inseriu o conceito de Residual Learning, na forma de blocos residuais, ilustrados na figura 2.10, para que a rede aprenda não o atributo em si, mas sim a diferença entre o atributo e o valor original, objetivando reduzir erros de treinamento (HE et al., 2015).
Um resumo das características de cada rede neural utilizada é apresentado na na tabela 2.1.
1ILSVRC - ImageNet Large Scale Visual Recognition Challenge é uma competição que avalia
al-goritmos para detecção de objetos e classificação de imagens em larga escala - http://www.image-net.org/challenges/LSVRC/.
Figura 2.9: Módulo inception.
Fonte: (SZEGEDY et al., 2015)
Figura 2.10: Bloco residual.
T ab ela 2 .1 : Arquiteturas con v encionais de redes neurais. Nome Estratégia Número de parâmet ros Referência Alexnet Largura e profundidade da rede 60 milhõ es (KRIZHEVSKY et al., 2012) V GG-19 Simplicidade e profundidade da rede 144 milhõ es (SIMONY AN; ZISSERMAN , 2014) Go oglenet Mó dulos inception figura 2.9 7 milhõ es (SZEGED Y et al., 2015) Resnet Blo co Residual 850 mil (HE et al., 2015) F on te: Autoria própria.
3 MATERIAIS E MÉTODOS
Este capítulo descreve as ferramentas utilizadas para o desenvolvimento do pro-jeto, além de breve justificativa para o uso de cada uma delas.
3.1 NVIDIA JETSON TX1
NVIDIA Jetson TX1 é um sistema embarcado do tipo system-on-module (SOM) equipado com o processador de 4 núcleos ARM Cortex-A57, 4 GB LPDDR4 e GPU de 256 núcleos com arquitetura Maxwell. Otimizada para desenvolvimento de sistema de visão computacional e aprendizado profundo, a plataforma utiliza 10W de potência (NVIDIA, 2016). O kit conta com diversas interfaces, incluindo USB e ethernet. O trabalho foi realizado no kit de desenvolvedor do NVIDIA Jetson TX1, que pode ser visto na figura 3.1. Entretanto, para a implementação em sistema final não é necessário embarcar o kit de desenvolvedor, pode ser utilizada somente a placa NVIDIA Jetson TX1, que tem dimensões similares às de um cartão de crédito, conforme pode ser visto na figura 3.2.
Figura 3.1: Kit de desenvolvedor NVIDIA Jetson TX1
Figura 3.2: Comparação entre dimensões da placa NVIDIA Jetson TX1 com as de um cartão de crédito
Fonte: (NVIDIA, 2016)
O kit foi utilizado pelo seguinte elenco de motivos:
• Baixo consumo: o consumo de 10W é extremamente baixo quando comparado com o de ferramentas com potência computacional similar, como notebooks, com consumo de várias dezenas de watts e computadores desktop munidos com placas de vídeos, com consumo de várias centenas de watts;
• Ambiente Linux: a placa executa, por padrão, o sistema operacional Ubuntu, o que permite o uso de ferramentas para este ambiente, como a biblioteca Caffe;
• Interfaces ethernet e wi-fi: a presença de interfaces ethernet e wi-fi permite o uso de câmeras IP para a aquisição de imagens, que não precisam estar conectadas diretamente à placa, mas sim a um roteador, ou, até mesmo, sem fio, via wi-fi.
De qualquer maneira, o kit ainda é um produto novo e está em constante desen-volvimento, o que acarreta em instabilidade em algumas de suas ferramentas.
3.2 CÂMERA
Foi utilizada uma câmera Intelbras VIP 1120D. Possui resolução 720p (1 mega-pixel), infravermelho ativo de até 20m e utiliza protocolo IP para transmissão de dados. Ademais, vem acompanhada de fixação mecânica (INTELBRAS, 2018). As seguintes características foram importantes para a escolha:
• Tecnologia IP: pensando na escalabilidade do projeto, a tecnologia IP é vantajosa, pois podem ser utilizadas câmeras em diversos ambientes a serem monitorados uti-lizando somente cabos de rede para comunicação;
• Resolução da imagem: a câmera fornece imagens com resolução 1280x720 e o tra-balho utiliza resolução 227x227, desta forma não há perdas devido a upscaling; • Stream de qualidade inferior: pensando na escalabilidade do sistema, a câmera
ofe-rece opção de um stream de qualidade inferior, para evitar congestionamento na rede. Esta qualidade inferior não é problema, visto que é feito um redimensiona-mento da imagem.
• Iluminação IR: a presença de iluminador infravermelho na câmera permite o uso do sistema tanto com iluminação ambiente quanto sem. Na figura 3.3 está apresentada uma comparação entre uma imagem obtida sem iluminação ambiente e uma com.
Figura 3.3: Comparação entre imagens obtidas sem iluminação (esquerda) e com iluminação (direita)
Fonte: Autoria própria
3.3 BASE DE DADOS
A obtenção da base de dados ocorreu em várias seções. Foram gravadas seis cenas, com quedas e não-quedas, por quatro pessoas diferentes. Os vídeos foram então amostrados com período de um segundo, totalizando 212 imagens que foram classificadas em queda e não-queda. Foram utilizadas imagens em preto e branco, para que o sistema também funcionasse com imagens obtidas no modo noite da câmera. Além disso, foram
obtidas imagens com a câmera em posição diferente, para verificar a capacidade de ge-neralização do sistema. Foi optado por obter cenas bastante variadas, com quedas e não quedas em ampla gama de posições e ângulos. As cenas incluíram entrada e saída pela porta, caminhada pelos locais comuns, sentar-se em frente à escrivaninha e abertura de portas para as cenas normais e quedas em variados ângulos e locais. Cada cena de cada pessoa recebeu um nome, de acordo com o nome da pessoa presente, sendo: Derick, Derick 2, Luciana, Paulo, Paulo 2 e Thiago.
Na figura 3.4 estão apresentados exemplos de imagens da base de dados classifica-das como normais. As pessoas nas borclassifica-das não influenciam no resultado, pois as imagens são recortadas na etapa de processamento. Na figura 3.5 há imagens da base de dados classificadas como queda. Já a figura 3.6 contém imagens obtidas com a câmera em outra posição, sendo classificadas como normais as imagens da primeira linha e queda as da segunda linha, objetivando verificar a capacidade de generalização do sistema.
Figura 3.4: Imagens da base de dados classificadas como normais
Fonte: Autoria própria
Foram gerados vários datasets, cada um com um intuito, conforme apresentado na tabela 3.1.
Figura 3.5: Imagens da base de dados classificadas como queda
Fonte: Autoria própria
Figura 3.6: Imagens da base de dados obtidas com a câmera em outra posição
Fonte: Autoria própria
3.4 AMBIENTE DE DESENVOLVIMENTO
Para o desenvolvimento da parte de software do trabalho foram utilizadas duas ferramentas principais: Caffe e MATLAB .R
3.4.1 CAFFE
Caffe é um framework para aprendizado profundo criado com velocidade e mo-dularidade em mente. Foi desenvolvida pela Berkeley AI Research e contribuidores da comunidade. O projeto foi criado por Yangqing Jia no seu PhD em UC Berkeley. É distribuído sob a licença BSD de duas cláusulas (JIA et al., 2014). Desta maneira, Caffe é um software gratuito.
A biblioteca Caffe pode ser utilizada em um ambiente Python. Ela abrange ex-clusivamente a parte de aprendizado profundo, sendo necessário o uso de ferramentas complementares para o processamento de imagens, como OpenCV e NumPY, e para a apresentação de dados, como matplotlib. Além disso, é recomendado o uso do formato LMDB para a entrada de dados, desta forma, a cada alteração da base de dados é ne-cessário gerar este arquivo novamente 1. Por fim, atualmente o uso da biblioteca Caffe em ambiente Windows está em fase experimental, portanto optou-se por utilizar esta ferramenta em Linux.
3.4.2 MATLAB R
MATLAB é uma plataforma de programação desenvolvida especificamenteR para cientistas e engenheiros. Sua essência é a linguagem MATLAB, baseada em mani-pulação de matrizes (MATHWORKS, 2018a). É um software pago.
O MATLAB é uma suíte de desenvolvimento completa, dispensando ferra-R mentas auxiliares. Diferentes partes do desenvolvimento são feitas utilizando toolboxes diferentes, compatíveis entre si. As toolboxes relacionadas ao projeto são as seguintes:
• Image Processing Toolbox : Para processamento de imagens;
• Neural Network Toolbox : Para criação, treinamento e aplicação de redes neurais; • Computer Vision System Toolbox : Para aplicação de visão computacional.
No âmbito dos objetivos do trabalho, foram utilizadas ambas ferramentas, sendo Caffe para a implementação em sistema embarcado e MATLAB para análises de de-R sempenho.
1LMDB é um formato de banco de dados do tipo Chave-Valor que armazena diretamente os endereços
dos valores armazenados. No contexto do trabalho, a cada alteração da base de dados é necessário realizar este mapeamento entre as chaves e posições de memória
3.4.3 METODOLOGIA DE COMPARAÇÃO
Cada uma das redes neurais convencionais utilizadas foi treinada utilizando todos os datasets. A figura 3.7 apresenta a metodologia de comparação entre redes neurais. Para cada combinação de arquitetura de rede neural e dataset foram realizadas duas etapas, sendo a primeira o treinamento da rede neural com o dataset utilizando o processo de transfer learning e a segunda a obtenção das curvas de treinamento, da matriz de confu-são, e dos índices de precisão e revocação. Esta implementação é realizada no software MATLAB .R
Figura 3.7: Diagrama da metodologia de comparação entre redes neurais.
Fonte: Autoria própria
A curva de treinamento contém informações referentes à acurácia da rede e à função custo na aplicação da rede aos conjuntos de treinamento e teste ao longo do processo de treinamento.
Uma matriz de confusão resume o desempenho de classificação de um classificador com relação a alguns dados de teste (SAMMUT, 2011). Na figura 3.8 está apresentada uma matriz de confusão genérica. Na matriz de confusão os objetos são classificados em quatro categorias:
• TP - true positive - verdadeiro positivo: objetos em que a classe verdadeira é “po-sitivo” e foram classificados como “po“po-sitivo”
• FP - false positive - falso positivo: objetos em que a classe verdadeira é “negativo” e foram classificados como “positivo”
• FN - false negative - falso negativo: objetos em que a classe verdadeira é “positivo” e foram classificados como “negativo”
• TN - true negative - verdadeiro negativo: objetos em que a classe verdadeira é “negativo” e foram classificados como “negativo”
Podem ser obtidas diversas medidas de desempenho de classificação a partir de uma matriz de confusão, sendo as principais:
• Especificidade - taxa de verdadeiros negativos: T N T N +F P
• Revocação (sensibilidade) - taxa de verdadeiros positivos: T P T P +F N
• Precisão - taxa de acerto de valor positivo: T P T P +F P
• Taxa de acerto de valor negativo: T N T N +F N
Figura 3.8: Exemplo de matriz de confusão.
Fonte: (SAMMUT, 2011)
No presente trabalho, a classe “queda” foi considerada como “positivo” e “normal” foi considerada “negativo”. Para cada situação, foram analisadas as métricas de precisão e revocação.
3.4.4 ARQUITETURA DO SISTEMA
Na figura 3.9 está apresentado o fluxograma do sistema de detecção de quedas desenvolvido, que consiste em uma câmera, com possibilidade de expansão para mais câmeras em trabalhos futuros, conectada a um roteador via interface ethernet. A placa NVIDIA Jetson TX1 é conectada à mesma rede. Cada imagem passa por uma etapa de pré processamento, para se adequar às características da rede neural treinada, e pela etapa de classificação. O pré processamento consiste em corte de região quadrada da imagem, redimensionamento e subtração de imagem média do dataset de treinamento, já a classificação é realizada utilizando a rede neural treinada anteriormente. Quando é detectada uma queda, o monitor é alertado via SMS.
3.4.5 VISÃO DO USUÁRIO
Como versão produto, o sistema é entregue como um serviço de detecção de quedas. O usuário pode abstrair toda a parte de instalação, montagem e configuração. Há um agente no sistema: o monitor, que é a pessoa que recebe a notificação via mensagem SMS quando é detectada uma queda no ambiente monitorado e deve tentar atender a esta situação no menor tempo possível. A figura 3.10 mostra a visão do usuário final (monitor) sobre o sistema.
Figura 3.9: Fluxograma do sistema de detecção de quedas
Fonte: Autoria própria
Figura 3.10: Fluxograma do sistema de detecção de quedas como prduto
T ab ela 3.1 : Datasets gerados. Nome T reinamen to V alidação Ob jetiv o Dataset 1 Deric k, Luciana e Thiago P aulo V erificar a capacidade de detectar quedas em uma p es-soa que não estev e presen te no treinamen to Dataset 2 P aulo Deric k, L u ciana e Thiago V erificar a capacidade de detectar quedas quando so-men te uma p essoa realizou o treinamen to Dataset 3 Deric k, Luciana, P aulo e Thiago Outro ângulo V erificar a capacidade de detectar quedas com a câmera instalada em p osição diferen te da de treinamen to Dataset 4 Aleatório Aleatório V erificar a p erformance do sistema em u m am bien te p ouco con trolado F on te: Autoria própria.
4 RESULTADOS E DISCUSSÃO
Este capítulo apresenta os resultados obtidos em ambas partes do projeto: a de comparação das redes neurais e a de implementação, além de uma breve discussão sobre eles.
4.1 COMPARAÇÃO DE REDES NEURAIS
Os resultados da parte de comparação de redes neurais estão separados de acordo com o dataset utilizado.
4.1.1 DATASET 1
Nesta seção serão apresentados os resultados obtidos com o Dataset 1, que consiste em treinamento com as imagens de Derick, Luciana e Thiago, validação com as Paulo 1 e teste com Paulo 2. O intuito é verificar a capacidade da rede de reconhecer quedas em imagens de pessoas que não estiveram presentes no processo de treinamento.
A curva de treinamento da rede AlexNet com o Dataset 1 está apresentada na figura 4.1 e a matriz de confusão no dataset de teste está apresentada na figura 4.2. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação também é de 100%.
A curva de treinamento da rede VGG-19 com o Dataset 1 está apresentada na figura 4.3 e a matriz de confusão no dataset de teste está apresentada na figura 4.4. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação é de 83,3%.
A curva de treinamento da rede GoogleNet com o Dataset 1 está apresentada na figura 4.5 e a matriz de confusão no dataset de teste está apresentada na figura 4.6. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação também é de 100%.
A curva de treinamento da rede ResNet com o Dataset 1 está apresentada na figura 4.7 e a matriz de confusão no dataset de teste está apresentada na figura 4.8. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação é de 83.3%.
4.1.2 DATASET 2
Nesta seção serão apresentados os resultados obtidos com o Dataset 2, que consiste em treinamento com as imagens de Paulo, validação e teste com todas as outras. O intuito é verificar a capacidade de generalização do sistema treinado com imagens de somente uma pessoa.
A curva de treinamento da rede AlexNet com o Dataset 2 está apresentada na figura 4.9 e a matriz de confusão no dataset de teste está apresentada na figura 4.10. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação é de 96.4%.
A curva de treinamento da rede VGG-19 com o Dataset 2 está apresentada na figura 4.11 e a matriz de confusão no dataset de teste está apresentada na figura 4.12. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 91.5% e a revocação é de 96.4%.
A curva de treinamento da rede GoogleNet com o Dataset 2 está apresentada na figura 4.13 e a matriz de confusão no dataset de teste está apresentada na figura 4.14. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 64% e a revocação é de 98.2%.
A curva de treinamento da rede ResNet com o Dataset 2 está apresentada na figura 4.15 e a matriz de confusão no dataset de teste está apresentada na figura 4.16. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 85.7% e a revocação é de 96%.
4.1.3 DATASET 3
Nesta seção serão apresentados os resultados obtidos com o Dataset 3, que consiste em treinamento com todas as imagens obtidas com a câmera posicionada no local principal e validação e teste as imagens obtidas com a câmera posicionada em outro lugar. O intuito é verificar a imunidade do sistema com relação a deslocamentos da câmera.
A curva de treinamento da rede AlexNet com o Dataset 3 está apresentada na figura 4.17 e a matriz de confusão no dataset de teste está apresentada na figura 4.18. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 97.4% e a revocação é de 100%.
A curva de treinamento da rede VGG-19 com o Dataset 3 está apresentada na figura 4.19 e a matriz de confusão no dataset de teste está apresentada na figura 4.20. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação é de 35.1%.
A curva de treinamento da rede GoogleNet com o Dataset 3 está apresentada na figura 4.21 e a matriz de confusão no dataset de teste está apresentada na figura 4.22. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação é de 73%.
A curva de treinamento da rede ResNet com o Dataset 3 está apresentada na figura 4.23 e a matriz de confusão no dataset de teste está apresentada na figura 4.24. Não é possível analisar a matriz de confusão corretamente, visto que nenhuma das imagens foi classificada como queda.
4.1.4 DATASET 4
Nesta seção serão apresentados os resultados obtidos com o Dataset 4, que consiste em treinamento e teste com as imagens divididas de maneira aleatória. O intuito é verificar o desempenho geral do sistema em uma situação favorável.
A curva de treinamento da rede AlexNet com o Dataset 4 está apresentada na figura 4.25 e a matriz de confusão no dataset de teste está apresentada na figura 4.26. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação é de 100%.
A curva de treinamento da rede VGG-19 com o Dataset 4 está apresentada na figura 4.27 e a matriz de confusão no dataset de teste está apresentada na figura 4.28. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação é de 100%.
A curva de treinamento da rede GoogleNet com o Dataset 4 está apresentada na figura 4.29 e a matriz de confusão no dataset de teste está apresentada na figura 4.30. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação é de 100%.
A curva de treinamento da rede ResNet com o Dataset 4 está apresentada na figura 4.31 e a matriz de confusão no dataset de teste está apresentada na figura 4.32. Pela análise da matriz de confusão, verifica-se que a precisão do sistema na detecção de quedas é 100% e a revocação é de 100%.
Na Tabela 4.1 estão apresentados os resultados de precisão e revocação de todas as situações testadas.
Tabela 4.1: Resultados de precisão e revocação de todos os casos analisados. Dataset 1 Dataset 2 Dataset 3 Dataset 4
Alexnet P: 100.0% R: 100.0% P: 100.0% R: 96.4% P: 97.4% R: 100% P: 100.0% R: 100.0% VGG-19 P: 100.0% R: 83.3% P: 91.5% R: 96.4% P: 100.0% R: 35.4% P: 100.0% R: 100.0% GoogleNet P: 100.0% R: 100.0% P: 64.0% R: 98.2% P: 100.0% R: 73.0% P: 100.0% R: 100.0% ResNet P:100.0% R: 83.3% P: 85.7% R: 96.0% -P: 100.0% R: 100.0%
Fonte: Autoria Própria
4.2 IMPLEMENTAÇÃO
A etapa de implementação é composta pelo treinamento da rede neural AlexNet com o dataset 1 utilizando a biblioteca Caffe, e execução do programa na placa NVIDIA Jetson TX1. Quando ocorre a detecção de um evento de queda, é utilizado o serviço PagueVeloz para envio de SMS para um tutor indicando a ocorrência. Para evitar even-tuais falsos-positivos, antes do envio do SMS aguarda-se a passagem de uma quantidade configurável de frames seguidos indicando queda.
Para fins de comparação, foi medido o tempo de classificação de imagens com e sem utilização de GPU. Com a classificação de imagens feita somente por CPU, o tempo médio foi de cerca de 1,21 segundos por imagem, já utilizando a GPU, o tempo médio foi de 0,05 segundos. Desta forma, considerando um requisito de tempo de 2,5 segundos entre o processamento de imagens da mesma câmera, pode-se multiplexar duas câmeras num sistema processado por CPU e 50 câmeras num sistema processado por GPU.
Nas figuras 4.33 e 4.34 são apresentadas as etapas de classificação de uma imagem, sendo: imagem adquirida, imagem pré processada e imagem classificada, em que verde representa normal e vermelho representa queda.
4.3 DISCUSSÃO
Analisando-se as curvas de treinamento, verifica-se que a rede Alexnet é treinada no menor tempo em todas as situações, enquanto a VGG-19 é a mais demorada. Isto é esperado, visto que Alexnet é a rede com o menor número de parâmetros a serem aprendidos e VGG-19 a com o maior número.
A rede Alexnet é a que obteve melhores resultados em todas as situações, com o menor parâmetro de precisão ou revocação sendo 96.4%. A rede VGG-19 teve resultados insatisfatórios de revocação, o que significa que pode não detectar todas as quedas que forem registradas. A rede GoogleNet se mostrou bastante eficiente em situações favoráveis, mas não apresentou grande poder de generalização, conforme percebe-se nos resultados do dataset 2, em que só há informações de treinamento de uma pessoa, e no dataset 3, em que as imagens de teste são capturadas em um ângulo distinto das de treinamento. A rede ResNet teve os piores resultados entre todas, visto que, no dataset 3, a rede sequer conseguiu classificar imagens.
O dataset 4 foi o que teve melhores resultados. Isto ocorreu pois as imagens de teste e de treinamento são bastante similares, sendo imagens distintas mas obtidas das mesmas sequências de vídeo. O dataset 3 teve os piores resultados. A imagem de teste ser obtida de um ângulo diferente do da imagem de treinamento atrapalha as redes no processo de classificação. A rede ResNet sequer foi capaz de classificar imagens nesta situação. O dataset 1 é o que mais se aproxima de uma situação real do sistema como produto: conjunto de treinamento obtido por diversas pessoas e teste com imagens de uma pessoa distina. Os resultados foram bastante satisfatórios para as redes AlexNet e GoogleNet. O dataset 2 tinha intenção de verificar se em um produto, o treinamento poderia ser realizado por somente uma pessoa. Os índices apresentados não foram bons o suficiente para esta ser uma situação factível.
Figura 4.1: Curva de treinamento da rede neural Alexnet treinada com o dataset 1
Fonte: Autoria própria
Figura 4.2: Matriz de confusão da rede neural Alexnet treinada com o dataset 1
Figura 4.3: Curva de treinamento da rede neural VGG-19 treinada com o dataset 1
Fonte: Autoria própria
Figura 4.4: Matriz de confusão da rede neural VGG-19 treinada com o dataset 1
Figura 4.5: Curva de treinamento da rede neural GoogleNet treinada com o dataset 1
Fonte: Autoria própria
Figura 4.6: Matriz de confusão da rede neural GoogleNet treinada com o dataset 1
Figura 4.7: Curva de treinamento da rede neural ResNet treinada com o dataset 1
Fonte: Autoria própria
Figura 4.8: Matriz de confusão da rede neural ResNet treinada com o dataset 1
Figura 4.9: Curva de treinamento da rede neural Alexnet treinada com o dataset 2
Fonte: Autoria própria
Figura 4.10: Matriz de confusão da rede neural Alexnet treinada com o dataset 2
Figura 4.11: Curva de treinamento da rede neural VGG-19 treinada com o dataset 2
Fonte: Autoria própria
Figura 4.12: Matriz de confusão da rede neural VGG-19 treinada com o dataset 2
Figura 4.13: Curva de treinamento da rede neural GoogleNet treinada com o dataset 2
Fonte: Autoria própria
Figura 4.14: Matriz de confusão da rede neural GoogleNet treinada com o dataset 2
Figura 4.15: Curva de treinamento da rede neural ResNet treinada com o dataset 2
Fonte: Autoria própria
Figura 4.16: Matriz de confusão da rede neural ResNet treinada com o dataset 2
Figura 4.17: Curva de treinamento da rede neural Alexnet treinada com o dataset 3
Fonte: Autoria própria
Figura 4.18: Matriz de confusão da rede neural Alexnet treinada com o dataset 3
Figura 4.19: Curva de treinamento da rede neural VGG-19 treinada com o dataset 3
Fonte: Autoria própria
Figura 4.20: Matriz de confusão da rede neural VGG-19 treinada com o dataset 3
Figura 4.21: Curva de treinamento da rede neural GoogleNet treinada com o dataset 3
Fonte: Autoria própria
Figura 4.22: Matriz de confusão da rede neural GoogleNet treinada com o dataset 3
Figura 4.23: Curva de treinamento da rede neural ResNet treinada com o dataset 3
Fonte: Autoria própria
Figura 4.24: Matriz de confusão da rede neural ResNet treinada com o dataset 3
Figura 4.25: Curva de treinamento da rede neural Alexnet treinada com o dataset 4
Fonte: Autoria própria
Figura 4.26: Matriz de confusão da rede neural Alexnet treinada com o dataset 4
Figura 4.27: Curva de treinamento da rede neural VGG-19 treinada com o dataset 4
Fonte: Autoria própria
Figura 4.28: Matriz de confusão da rede neural VGG-19 treinada com o dataset 4
Figura 4.29: Curva de treinamento da rede neural GoogleNet treinada com o dataset 4
Fonte: Autoria própria
Figura 4.30: Matriz de confusão da rede neural GoogleNet treinada com o dataset 4
Figura 4.31: Curva de treinamento da rede neural ResNet treinada com o dataset 4
Fonte: Autoria própria
Figura 4.32: Matriz de confusão da rede neural ResNet treinada com o dataset 4
Figura 4.33: Etapas da classificação de uma imagem normal.
Fonte: Autoria Própria
Figura 4.34: Etapas da classificação de uma imagem de queda.
5 CONSIDERAÇÕES FINAIS
O objetivo do trabalho foi comparar o desempenho de diversas redes neurais numa aplicação de detecção de quedas por processamento de imagens, além de obtenção de base de dados de detecção de quedas e implementação em sistema embarcado.
O dataset foi obtido com imagens de quatro pessoas e é composto por 239 imagens, sendo 82 de queda e 157 de normal. Estes dados podem ser disponibilizados por meio de requisição ao autor.
Verificou-se que a rede neural AlexNet é a mais adequada para o uso em um produto, pois tem o menor tempo de treinamento e os melhores resultados de precisão e revocação. Entretanto, é possível que com ajuste fino de parâmetros, as outras redes possam ter seu desempenho otimizado. Além disto, não é necessário um equipamento muito sofisticado para o processo de treinamento, visto que não é realizado um treinamento desde a inicialização de parâmetros, mas sim transfer learning.
O sistema de melhor desempenho, utilizando AlexNet, apresentou precisão e re-vocação maiores que 95% mesmo em situações desfavoráveis, mostrando que o produto é tecnicamente viável, já que podem ser utilizados artifícios para evitar falsos positivos, como o uso de timers para garantir que o estado realmente foi alterado para queda, como um debounce.
As ferramentas MATLAB e Caffe se mostraram complementares no desenvol-R vimento de um trabalho de aprendizado profundo, sendo a primeira para rápida e direta implementação e obtenção de resultados e a segunda para implementação em sistemas embarcados ou outros sistemas.
O trabalho desenvolvido, ao ser instalado em um ambiente real para monitora-mento de idoso, pode aumentar a qualidade de vida da pessoa monitorada, que saberá que será atendida caso sofra uma queda, além de reduzir os riscos caso a queda ocorra. Com o envelhecimento da população, cada vez mais haverá demanda para produtos desta linha.
O uso da placa NVIDIA Jeston TX1 faz com que o sistema como produto te-nha um preço muito reduzido com relação a um sistema equivalente implementado em um computador. Entretanto, ainda há problemas com esta ferramenta. Como ela é bas-tante nova ainda há pouca documentação, comunidade de usuários restrita, sendo poucos experientes, problemas com bibliotecas ausentes ou incompatíveis, além de eventuais ins-tabilidades. Com o tempo esta situação tende a ser melhorada, visto que é um produto em expansão e com uma comunidade de usuários em crescimento disposta a tentar resolver os problemas.
Para trabalhos futuros, pode-se otimizar a detecção de quedas por ajuste fino de parâmetros ou o uso de transfer learning na rede já treinada para o problema, não na original. Também é possível realizar análises para transferir o processamento para a nuvem ou montar um servidor, visto que cada placa consegue processar imagens de várias câmeras com taxas aceitáveis. Além disso pode-se alterar a forma de notificar o monitor a respeito da queda, por exemplo, criando-se um aplicativo para smartphones. Outra possibilidade de melhoria é o uso de câmeras wi-fi ou munidas de alimentação PoE, reduzindo a quantidade necessária de cabos.
REFERÊNCIAS
CHACCOUR, K. et al. From fall detection to fall prevention: A generic classification of fall-related systems. IEEE Sensors Journal, v. 17, n. 3, p. 812–822, Feb 2017. ISSN 1530-437X.
DAGA, B. S.; GHATOL, A. A.; THAKARE, V. M. Silhouette based human fall detection using multimodal classifiers for content based video retrieval systems. In: 2017 Inter-national Conference on Intelligent Computing, Instrumentation and Control Technologies (ICICICT). [S.l.: s.n.], 2017. p. 1409–1416.
FRIEDLANDER, A. Elementos de Programação Não Linear. [S.l.: s.n.], 1994. GOODFELLOW, I.; BENGIO, Y.; COURVILLE, A. Deep Learning. [S.l.]: MIT Press, 2016.
HE, K. et al. Deep residual learning for image recognition. CoRR, abs/1512.03385, 2015. IAZZI, A.; RZIZA, M.; THAMI, R. O. H. Fall detection based on posture analysis and support vector machine. In: 2018 4th International Conference on Advanced Te-chnologies for Signal and Image Processing (ATSIP). [S.l.: s.n.], 2018. p. 1–6. IGUAL, R.; MEDRANO, C.; PLAZA, I. Challenges, issues and trends in fall detection systems. BioMedical Engineering OnLine, v. 12, n. 1, p. 66, Jul 2013. ISSN 1475-925X.
INTELBRAS. Vip 1120. http://www.intelbras.com.br/empresarial/seguranca-eletronica/cameras/cameras-ip/vip-1120-d, jan. 2018.
JIA, Y. et al. Caffe: Convolutional architecture for fast feature embedding. arXiv pre-print arXiv:1408.5093, 2014.
KHAN, S. et al. A Guide to Convolutional Neural Networks for Computer Vi-sion. [S.l.]: Morgan & Claypool, 2018. (Synthesis Lectures on Computer Vision). ISBN 9781681730226.
KIM, S. et al. 3d fall detection for single camera surveillance systems on the street. In: 2018 IEEE Sensors Applications Symposium (SAS). [S.l.: s.n.], 2018. p. 1–6. KONG, X.; MENG, L.; TOMIYAMA, H. Fall detection for elderly persons using a depth camera. In: 2017 International Conference on Advanced Mechatronic Systems (ICAMechS). [S.l.: s.n.], 2017. p. 269–273.
KRIZHEVSKY, A.; SUTSKEVER, I.; HINTON, G. E. Imagenet classification with deep convolutional neural networks. In: PEREIRA, F. et al. (Ed.). Advances in Neural Information Processing Systems 25. [S.l.]: Curran Associates, Inc., 2012. p. 1097– 1105.
LI, X. et al. Fall detection for elderly person care using convolutional neural networks. In: 2017 10th International Congress on Image and Signal Processing, BioMedical Engineering and Informatics (CISP-BMEI). [S.l.: s.n.], 2017. p. 1–6.
MARTINEZ, J.; SANTOS, S. Métodos Computacionais De Otimização. [S.l.]: IMPA, 1995. (Colóquio Brasileiro de Matemática - Apostilas).
MATHWORKS. MATLAB Release R2018a. 2018. Natick, Massachusetts, United Sta-tes.
MATHWORKS. Transfer Learning Using AlexNet. [S.l.]: The Mathworks Inc., 2018. MIGUEL, K. de et al. Home camera-based fall detection system for the elderly. Sensors (Basel, Switzerland), 2017.
MS. Quedas de idosos. Biblioteca virtual em saúde, 2009.
MUBASHIR, M.; SHAO, L.; SEED, L. A survey on fall detection: Principles and appro-aches. Neurocomputing, 2013.
NIELSEN, M. A. Neural Networks and Deep Learning. [S.l.]: Determination Press, 2015.
NOURY, N. et al. Fall detection - principles and methods. In: 2007 29th Annual International Conference of the IEEE Engineering in Medicine and Biology Society. [S.l.: s.n.], 2007. p. 1663–1666. ISSN 1094-687X.
NVIDIA. Jetson TX1 Module Data Sheet. [S.l.], nov. 2016.
OLIVAS, E. S. et al. Handbook of Research on Machine Learning Applications and Trends: Algorithms, Methods, and Techniques. 1. ed. [S.l.]: Information Science Reference, 2009. ISBN 1605667668,9781605667669.
PAGUEVELOZ.
PAN, S. J.; YANG, Q. A survey on transfer learning. IEEE Transactions on Kno-wledge and Data Engineering, v. 22, n. 10, p. 1345–1359, Oct 2010. ISSN 1041-4347. PERRACINI, M. R.; RAMOS, L. R. Fatores associados a quedas em uma corte de idosos residentes na comunidade. Revista Saúde Pública, 2002.
PERRY, J. T. et al. Survey and evaluation of real-time fall detection approaches. In: 2009 6th International Symposium on High Capacity Optical Networks and Enabling Technologies (HONET). [S.l.: s.n.], 2009. p. 158–164. ISSN 1949-4092. QUADROS, T. de. Development and Evaluation of an Elderly Fall Detection System Based on a Wearable Device Located at Wrist. Dissertação (Mestrado) — UTFPR, 2017.
RAWAT, W.; WANG, Z. Deep convolutional neural networks for image classification: A comprehensive review. Neural Computation, v. 29, n. 9, p. 2352–2449, 2017. PMID: 28599112.