• Nenhum resultado encontrado

Proposta de implementação de análise de vídeo com séries temporais

N/A
N/A
Protected

Academic year: 2022

Share "Proposta de implementação de análise de vídeo com séries temporais"

Copied!
48
0
0

Texto

(1)

UNIVERSIDADEFEDERALDO RIO GRANDE DO NORTE

UNIVERSIDADEFEDERAL DORIOGRANDE DO NORTE

CENTRO DETECNOLOGIA

DEPARTAMENTO DEENGENHARIA DECOMPUTAÇÃO E

AUTOMAÇÃO

Proposta de implementação de análise de vídeo com séries temporais

Jhonat Heberson Avelino de Souza

Orientador: Prof. Dr. Agostinho De Medeiros Brito

Trabalho de conclusão de curso de Enge- nharia de Computação da Universidade Fe- deral do Rio Grande do Norte, apresentado como requisito parcial para a obtenção do grau de Bacharel em Engenharia de Compu- tação.

Natal, RN, junho de 2022

(2)
(3)

Proposta de implementação de Analise de vídeo com séries temporais

Jhonat Heberson Avelino de Souza

Trabalho de Conclusão de Curso aprovado em 24 de junho de 2022 pela banca examina- dora composta pelos seguintes membros:

Prof. Dr. Agostinho De Medeiros Brito (orientador) . . . DCA/UFRN

Prof. Dr. Diogo Pinheiro Fernandes Pedrosa . . . DCA/UFRN

Prof. Dr. Elton José Figueiredo De Carvalho . . . ECT/UFRN

Aos meus pais. Por todo amor,

suporte e confiança que me

entregaram até aqui.

(4)

Agradecimentos

A Deus, pelo dom da vida e por me capacitar para enfrentar todos os desafios em minha trajetória acadêmica.

Aos meus pais, irmãos, por sempre acreditarem em mim e por todo apoio e confiança depositados ao longo desses anos.

Ao meu orientador Agostinho, pela orientações e ajuda neste trabalho.

Ao professor Elton Carvalho, pelas orientações durante toda a iniciação científica.

Aos demais colegas de graduação, por todos os bons momentos compartilhados, nos la- boratórios ou corredores da universidade. Obrigado pelo companheirismo.

A todos aqueles que, de alguma forma, contribuíram e fizeram parte desta jornada, o meu muito obrigado!

À ECT (IC), pelo apoio financeiro.

(5)

Resumo

Este trabalho propõe uma implementação de arquitetura capaz de classificar vídeos oriundos de sistemas de vigilância embarcados em tempo hábil. Foram avaliadas duas arquiteturas possíveis, verificando sua viabilidade com o sistema, avaliando taxa de acu- rácia de treinamento e validação, matriz de confusão e tempo de execução das predições.

Foi criado ainda um conjunto de dados para treinamento de rede neural, para classificação de atividades suspeitas e não suspeitas. Dessa forma, foi possível concluir que a arquite- tura escolhida para aplicação final teve o desempenho satisfatório atingindo cerca de 90%

de acurácia em dados de validação e, tempo de execução, embarcado emRaspberry Pi 4, médio de 25 segundos, qualificando a arquitetura para essa possível aplicação.

Palavras-chave: Deep Learning, Aprendizagem de Máquina, Análise de vídeo, Siste- mas Embarcados.

(6)

Abstract

This work proposes an architecture implementation capable of classifying video seg- ments in embedded security systems in a timely manner. Two possible architectures were evaluated, verifying their viability with the system, evaluating the training and validation accuracy rate, confusion matrix and prediction execution time. A dataset was also created for training the neural network, for classifying suspicious and non-suspicious activities.

Thus, it was possible to conclude that the architecture chosen for the final application had a satisfactory performance, reaching about 90% of accuracy in validation data and, execu- tion time, embedded inRaspberry Pi 4, average of 25 seconds, qualifying the architecture for this possible application

Keywords: Deep Learning, Machine Learning, Video Analytics, Embedded Systems.

(7)

Sumário

Sumário . . . . 7

Sumário . . . . 7

Lista de Figuras . . . . 10

Lista de ilustrações . . . . 10

1 INTRODUÇÃO . . . . 13

1.1 Estrutura do Trabalho . . . 14

Lista de Símbolos e Abreviaturas . . . . 13

2 FUNDAMENTAÇÃO TEÓRICA . . . . 16

2.1 Deep Learning de Séries temporais . . . 16

2.1.1 Convolutional Neural Networks (CNN) . . . 16

2.1.2 Recurrent Neural Networks (RNN) . . . 17

2.1.3 Recurrent Neural Networks e Convolutional Neural Networks (RNN-CNN) 19 2.1.4 Transformers . . . 19

2.1.5 Aprendizagem por transferência . . . 21

2.2 Otimização do modelo para sistema embarcados . . . 22

3 O SISTEMA PROPOSTO . . . . 24

3.1 Arquitetura CNN-RNN . . . 24

3.2 Arquitetura Transformers . . . 25

3.3 Arquitetura implementada . . . 26

3.4 Conjunto de dados para análise suspeita. . . 28

3.5 Conversão de Modelo Modelo TensorFlow para TensorFlow Lite . . 29

4 RESULTADOS . . . . 31

4.1 Resultados da validação . . . 32

4.1.1 Resultados da Arquitetura CNN-RNN . . . 32

4.1.2 Resultados da Arquitetura Transformers . . . 32

4.2 Resultados da aplicação . . . 33

(8)

4.3 Tempo de inferência para cada seguimento de vídeo . . . 35

5 CONCLUSÃO . . . . 46

Referências bibliográficas . . . . 47

REFERÊNCIAS . . . . 47

(9)

LISTA DE SÍMBOLOS

x Amostra de aprendizado particular

P(x) Distribuição de probabilidade no limite V P Verdadeiro Positivo

V N Verdadeiro Negativo

FP Falso Positivo

FN Falso Negativo

M número de classes (Normal, Malicious) y indicador binário (0 ou 1)

p observação de probabilidade prevista da classe c

c classe

(10)

Lista de ilustrações

Figura 1 – Arquitetura ConvNet, onde para cada camada é realizado Pooling de 2x2 ou seja a informação da convolução é reduzida pela metade e que cada numero a baixo da imagem representa a dimensão da mesma na- quela etapa da convolução. Fonte: Autoria própria. . . 17 Figura 2 – Estrategias dePolling, onde tem como principal objetivo reduzir a re-

presentação da imagem, seja pela estrategia de valor máximo ao média. 18 Figura 3 – Arquitetura RNN. onde cada quadrado representa uma celular da ar-

quitetura RNN, com objetivo de conseguir persistir a informação den- tro da rede . . . 19 Figura 4 – Arquitetura Transformers. onde é essencialmente formado por dois

blocos, do lado esquerdo é chamado de blocoEncoder, e do lado di- reito é chamado deDecoder . . . 20 Figura 5 – Arquitetura TensorFlow Lite. Onde é composta essencialmente por

quatro blocos, Conversor, Interpretador, Kernels operacionais, e Inter- face de acelerador de Hardware . . . 23 Figura 6 – Arquitetura implementada CNN-RNN. Onde a entrada é vídeo, a par-

tir desse vídeo capturamos 20 frames, esses frames em sequencia é passado pela camada de aprendizado por transferência com objetivo de extração de características,seguida pela camada de aprendizado que nesse casoCNN-RNN, e por fim as ultimas camadas é para classifica- ção da imagem . . . 25 Figura 7 – Arquitetura implementada Transformers. Onde a entrada é vídeo, a

partir desse vídeo capturamos 20frames, esses frames em sequencia é passado pela camada de aprendizado por transferência com objetivo de extração de características,seguida pela camada de aprendizado que nesse casoTranformers, e por fim as ultimas camadas é para classifi- cação da imagem . . . 26

(11)

Figura 8 – Arquitetura Implementada. Onde a entrada é vídeo, a partir desse ví- deo capturamos 20frames, essesframesem sequencia é passado pela camada de aprendizado por transferência com objetivo de extração de características, seguida pela camada de aprendizado que nesse caso Tranformers, e por fim as ultimas camadas é para classificação da ima- gem . . . 28 Figura 9 – Amostra de conjunto de dados criada a partir de vídeos da internet,

usando a plataformaYoutube . . . 29 Figura 10 – Processo de conversão de modeloTFLite. Onde o processo realizado

nesse trabalho foi partindoTF.keras, seguida salvamos no formatosa- vedModel, convertemos paraTFLite Converter . . . 30 Figura 11 – Resultados treinamento por quantidade de passos da arquiteturaCNN-

RNN. . . 33 Figura 12 – Acurácia e perda por época da arquiteturaCNN-RNN. Onde pode per-

ceber que figuraCross Entropya linha de validação não aparece devido ela estar um nível maior que dois na escala . . . 34 Figura 13 – Matriz de Confusão da arquiteturaCNN-RNN. Onde é uma tabela que

mostra as frequências de classificação para cada classe do modelo . . . 35 Figura 14 – Resultados treinamento por quantidade de passos da arquiteturaTrans-

formers. . . 36 Figura 15 – Acurácia e perda por épocas da arquitetura Transformers. Onde se

percebe que as curvas de aprendizado e validação tem comportamento semelhante e próximas logo caracterizando como rede generalista . . . 37 Figura 16 – Resultado do treinamento da arquitetura Transformers. Onde essa é

saída do treinamento utilizando oTensorFlowe atingimos uma acurá- cia de 90.18% para dados de validação . . . 37 Figura 17 – Matriz de Confusão da arquiteturaTransformers. . . 38 Figura 18 – Resultados treinamento por quantidade de passos da arquitetura da

aplicação. . . 38 Figura 19 – Acurácia e perda por épocas da arquitetura da aplicação. Onde atingi-

mos acima de 90% de acurácia para dados de validação e 100% para dados de treinamento. Além doCross Entropytender a zero em ambos os casos . . . 39 Figura 20 – Matriz de confusão da arquitetura da aplicação. Onde temos apenas

um caso de Falso Negativo a qual não é desejado . . . 40

(12)

Figura 21 – Tempo de execução serial. Onde o tempo de Clock é tempo que pro- cesso realmente está em execução no núcleo do processador, descon- siderando tempo de espera e entrada e saída, e tempo relógio, é tempo real de quando iniciar a predição até terminar . . . 41 Figura 22 – Uso dos núcleos para predição usando threads. Onde utilizamos o

SoftwareHtop, que verifica a utilização dos recursos do processos no CPU, é importante notar que o sistema está utilizando acima de 90%

de todos os núcleos disponíveis, como também cada processo de pre- dição está sendo alocado em todos os núcleos de forma paralela . . . . 42 Figura 23 – Uso dos núcleos para predição usando programação serial. Onde o

processo é todo alocado em apenas um núcleo, logo não utilizando todo recurso computacional disponível . . . 43 Figura 24 – Tempo de execução programação distribuída. Onde o tempo deClock

está em média de 15 segundos, e tempo de relógio está em média 37 segundos . . . 44 Figura 25 – Pipeline em Processadores. Onde sem utilização da paralelização o

tempo para executar quatro inferências de 20 segundos, usando para- lelização, as mesmas quatro inferências o tempo é de 15 segundos . . 45

(13)

Capítulo 1 Introdução

Muitas vezes o monitoramento de vídeo permite identificar ações suspeitas, de sorte que é necessário ter um ou mais agentes monitorando esses vídeos em uma central para identificar se existe alguma atitude ou ação fora do padrão. Essa ação pode ser das mais diversas naturezas, como agressões, furtos e roubos, ou infrações de trânsito. Em se tra- tando de aplicações de pequeno porte, como residências ou pequenos estabelecimentos comerciais, não é comum manter um funcionário monitorando, dados os custos envolvi- dos. Devido a isso, muitos crimes ou ações nem sequer são solucionados ou comunicados e, geralmente, quando as vítimas se dão conta do ocorrido, a ação danosa já foi realizada há muito tempo, dificultando assim encontrar o culpado.

Para solucionar esse problema empresas de grande porte e centrais de monitoramento governamentais têm comumente utilizado técnicas de classificação de imagem, seja para reconhecimento facial ou de placas de automóveis. Porém, em muitos desses sistemas adquiridos (GóIS, 2021), para realizar a classificação do vídeo, é analisada apenas uma imagem dele, e não uma sequência de imagens, de forma que não é possível classificar uma ação corretamente. Outro ponto que vale ressaltar, é que o processamento é realizado no núcleo da rede, a qual necessita de grande capacidade computacional para processar todas as imagens, como também um grande consumo de banda, para envio de todas as imagens para central de monitoramento e assim classificá-las (NETO, 2021).

Um dos maiores problemas na atualidade é o uso eficaz de dados, porque cada vez mais é necessário manipular adequadamente grandes volumes de dados usando técnicas de Big Data, e suas profissões, como Data Science que tem como principal atividade extrair de grandes dados informações importantes de forma eficiente, e realizar inferências sobre elas. Com as tecnologias atuais temos um gargalo que é banda de rede disponível para transferências de dados na internet. Por isso, cada vez mais estão sendo pesquisadas e adotadas técnicas e arquiteturas que exploram melhor os recursos das máquinas, como o processamento paralelo e computação quântica.

(14)

Capítulo 1. Introdução 14

A ideia é fazer o processamento em sua maioria na borda da rede, não sendo neces- sário enviar todo o vídeo pela internet, de forma a não congestionar o trafego da rede, e evitar perdas de pacotes. Além disso, com o processamento distribuído nas bordas, não seria necessário um grande poder computacional centralizado, viabilizando essa im- plementação para consumidores residenciais. Com o processamento realizado em sua maioria na borda da rede, utilizando um sistema embarcado para fazer a classificação, em caso positivo de reconhecimento de ação suspeita, será somente necessário enviar um segmento do vídeo para que um agente possa tomar as devidas providências, no caso do modelo acertar a predição. Mas para isso ser viável, é necessário que os modelos propos- tos tenham uma alta probabilidade de acerto, e possibilidade de otimização de forma que o sistema embarcado consiga realizar essa tarefa em tempo real.

Com base nisso, este trabalho propõe implementar algumas arquiteturas deDeep Le- arningcom séries temporais capazes de classificar uma ação em um vídeo, levando em consideração a ordem dos acontecimentos. Em seguida essa arquitetura será treinada para ser capaz de classificar ações suspeitas e não suspeitas, além de usar técnicas de otimiza- ção de modelos já difundidas, e técnicas de melhorias de acurácia, assim sendo viável a classificação na borda da rede, ou seja, embarcar o sistema emraspberry pi 4, e conseguir classificar eventos suspeitos em tempo hábil.

1.1 Estrutura do Trabalho

O presente trabalho encontra-se organizado em cinco capítulos. No capítulo 1 será apresentada uma contextualização introdutória sobre o tema abordado. Além disso, fo- ram apresentados os objetivos almejados com a realização deste trabalho. No capítulo 2 é exposta a teoria necessária para o entendimento do trabalho. Inicialmente são apre- sentados conceitos básicos sobreDeep Learning e em seguida uma explicação sobre os tipos de arquiteturas pretendidas a serem implementadas como técnicas de melhorias de desempenho das redes, e também arquiteturas para otimizar modelos e embarca-los.

No capítulo 3 são apresentadas as arquiteturas de redes propostas para implementação e validação, conjunto de dados criado para classificação e ações suspeitas, e estratégia de conversão de modelo padrão para modelo otimizado para embarcar o sistema. No capítulo 4 é apresentada a metodologia de validação das arquiteturas descritas no capítulo anterior.

Inicialmente são apresentados os detalhes sobre odatasetescolhido para a validação e os parâmetros definidos para a análise da arquitetura. Em seguida, são mostrados os resul- tados obtidos para a verificação da corretude do treinamento e inferência nas arquiteturas

(15)

Capítulo 1. Introdução 15

desenvolvidas. Mais adiante são apresentados os resultados de tempo de execução do sistema embarcado noraspberry pi 4.

Finalmente, o capítulo 5 realizada as considerações finais sobre a arquitetura desen- volvida, síntese e conclusões sobre os resultados obtidos.

(16)

Capítulo 2

Fundamentação Teórica

2.1 Deep Learning de Séries temporais

Redes de aprendizado profundo são modelos de redes neurais com mais camadas de neurônios que consiguem aprender representações de dados com mais níveis de abstra- ção. Assim, melhor fica a eficiência do modelo, permitindo aplicações complexas como reconhecimento de fala e reconhecimento de objetos. ODeep Learning, a partir do algo- ritmo de retropropagação (ouBackpropagation), mostra como deve alterar os parâmetros de cada camada da rede interna, com base na camada anterior (LECUN Y., 2015).

O Backpropagation calcula o gradiente de uma função, a qual desejamos otimizar, em relação aos parâmetros das multicamadas, ou seja, aplicação da regra da cadeia que aplicamos em derivada. Essa técnica pode ser aplicada inúmeras vezes com intuito de propagar esse gradiente entre as camadas, inclusive na camada saída, onde é realizada a previsão (LECUN Y., 2015).

Nestes tempos, é muito comum ouvir falar do uso de inteligência artificial, para re- conhecimento facial e de placas de automóveis. O objetivo deste trabalho é conseguir classificar ações a partir de uma sequência de imagens, assim fornecendo um contexto para rede neural (VINíCIUS, 2018).

2.1.1 Convolutional Neural Networks (CNN)

As redes convolucionais são um tipo particular de rede de aprendizado profundo, que tem como entrada vários vetores, tem quatro fundamentos importantes que a caracterizam, são elas: conexões locais, pesos compartilhados,poolinge uso de múltiplas camadas.

As ConvNet como são chamadas as CNN mostradas na Figura 1, a arquitetura na forma padrão, é feita em várias etapas. A primeira etapa é composta por duas cama- das, uma camada convolucional, que faz a convolução dos dados, com objetivo de extrair

(17)

Capítulo 2. Fundamentação Teórica 17

características (LECUN Y., 2015), e a segunda é uma camada depool, ou agrupamento, mostrada na Figura 2 que tem como objetivo simplificar as informações da saída da convo- lução. Essa segunda camada tem como ideia principal que cada unidade noMax Pooling 2(a), possa representar uma região de vários neurônios da convolução. Também existem outras técnicas de agrupamento, como Average Pooling mostrada na Figura 2(b), que é implementada com a média das ativações na região (RYU; YANG; LIM, 2018).

Como a maioria das modelagens de neurônios são inspiradas em neurônios reais, a camada de convolução e agrupamento, também é inspirada em células simples e células complexas na neurociência visual (LECUN Y., 2015).

Desde a década de 1990, as CNN têm sido implementadas em inúmeras aplicações, como reconhecimento de fala e processamento de documentos, detecção de objetos em imagens naturais, como rostos e mãos (DRUCKER et al., 1997), e para reconhecimento facial (LAWRENCE et al., 1997). Isso é normalmente devido ao surgimento de novos dispositivos e técnicas que melhoram a eficiência de ConvNets, como uso adequado de graphics processing unit (GPU), e técnicas de regularização comoDropoutque tem como objetivo principal excluir diferentes conjuntos de neurônios problemáticos. Assim, esse procedimento consegue simular a média de efeitos de números de redes diferentes, com intuito de reduzir OverFitting (SRIVASTAVA et al., 2014) e geração fictícia de novas amostras a partir das existentes, deformando-as.

Figura 1 – Arquitetura ConvNet, onde para cada camada é realizado Pooling de 2x2 ou seja a informação da convolução é reduzida pela metade e que cada numero a baixo da imagem representa a dimensão da mesma naquela etapa da convolu- ção. Fonte: Autoria própria.

2.1.2 Recurrent Neural Networks (RNN)

Redes Neurais Recorrentes (Recurrent Neural Networks - RNN), por sua vez, procu- ram resolver tarefas cujas entradas seguem uma ordem, como processamento de lingua- gem natural. Na arquitetura da RNN, como mostra a Figura 3, a entrada é um elemento em sequência, mantendo a ordem e as características, ou seja, o vetor de estados que guarda informações sobre histórico de entrada (LECUN Y., 2015). AsRecurrent Neural

(18)

Capítulo 2. Fundamentação Teórica 18

(a)Max Pooling. (b) Average Pooling.

Figura 2 – Estrategias dePolling, onde tem como principal objetivo reduzir a representa- ção da imagem, seja pela estrategia de valor máximo ao média.

Fonte: Autoria própria.

Networks são modelos dinâmicos e poderosos. Porém, existe dificuldade em treiná-las adequadamente, devido ao gradiente retro propagado que varia tanto para mais quanto para menos a cada sequência, de forma que em muitos passos de treinamento o histórico do modelo ou aumenta demais, ou quase não existe (BENGIO; SIMARD; FRASCONI, 1994).

A arquitetura da RNN teve significativas melhorias (GOODFELLOW et al., 2014) desde sua versão inicial e o surgimento de técnicas diferentes de treino para essa rede (PASCANU; MIKOLOV; BENGIO, 2013) conseguiu de forma geral que as redes recor- rentes tivessem um bom desempenho em prever próximos passos de uma sequência. Com isso, aplicações como prever caracteres de um texto, ou palavra, e também avaliar sequên-

(19)

Capítulo 2. Fundamentação Teórica 19

cias de ações tarefas possíveis, como é o caso da aplicação proposta neste trabalho.

Figura 3 – Arquitetura RNN. onde cada quadrado representa uma celular da arquitetura RNN, com objetivo de conseguir persistir a informação dentro da rede

Fonte: Autoria própria.

2.1.3 Recurrent Neural Networks e Convolutional Neural Networks (RNN- CNN)

Esta abordagem foi proposta para realizar tarefas mais complexas, como tradução de significado de texto (SUTSKEVER; VINYALS; LE, 2014). Por exemplo, a entrada será uma imagem, montando um codificador usando umaConvNet, os pixels da imagem serão um vetor de atividade da última camada oculta, e criando um decodificadorRNN, com essa combinação de arquiteturas, podemos resolver problemas, mais complexos, como o proposto neste trabalho de forma mais eficiente, do que somente utilizando umaRNN padrão (SIMONYAN et al., 2015).

Quando utilizamos Redes Recorrentes considerando o tempo, as camadas da rede compartilham entre si os neurônios. Dessa forma, consegue ter uma noção de longo prazo.

2.1.4 Transformers

Embora as redes RNN tenham se tornado eficientes para várias aplicações, elas tam- bém têm seus pontos negativos. Um deles é adependência de longo prazo, quando nosso objetivo é aprender palavras muito grandes, pois essas redes têm tendência de esquecer o que foi aprendido. Um outro problema é a variação brusca do gradiente, assim tornando instável a rede, ao ponto de parar a otimização da função de custo. Com isso, foi proposta a arquitetura Transformersmostrada na Figura 4, que tem com ideia base a inclusão de duas camadas, das quais a primeira é chamada de mecanismo de atenção ela pegará a entrada após o processo de incorporação de palavras e codificação posicional e calculará

(20)

Capítulo 2. Fundamentação Teórica 20

a relação de cada palavra com outras palavras. Após o produto escalar, é gerado um vetor que representa o peso da relação entre cada palavra. E a segundaPositional Encodingque calcula a relação de cada palavra com outras palavras. Após o produto escalar, é gerado um vetor que representa o peso da relação entre cada palavra..

Figura 4 – ArquiteturaTransformers. onde é essencialmente formado por dois blocos, do lado esquerdo é chamado de bloco Encoder, e do lado direito é chamado de Decoder

Fonte: Autoria própria.

NaTransformers, também existem dois grandes blocos, chamados de EncodereDe- coder. NoEncoderé onde a informação será extraída ou entendida, e noDecoderé onde o modelo irá aprender a relacionar as entradas de alguma forma com a saída desejada (CHOLLET, 2021).

OEncoder é formado por quatro camadas: a primeira é aMulti-Head Self-Attention Mechanism; a segunda é simplesmente umaFeed Forward Neural NetworkouMultilayer Perceptrons (MLP); somado a isso, existem uma camada de normalização e uma camada de resíduos. Também, é muito comum aplicar mais vezes o bloco deEncoderpara obter melhores resultados na predição. E, antes da informação entrar no bloco de Encoder, é usual a entrada passar pelaInput Embedding, onde a informação será convertida emWord Embedding, e em seguida na camadaPositional Encoding, parte essa que garante que o algoritmo compreenda a noção de posição, ou sequência das entradas (VASWANI et al.,

(21)

Capítulo 2. Fundamentação Teórica 21

2017).

ODecoder, tem as mesmas quatro camadas doEncoder, a única diferença é que adi- cionamos uma nova sub-camada chamada de Multi-Head Attention, que faz múltiplas Attetion por query com pesos diferentes e de forma paralela, seguidas de uma conca- tenação dos resultados dos Attetions, e uma camada de Normalização e outra resíduos.

Percebeu-se também que temos uma camada denominadaMasked Multi-Head Attention, que é apenas uma variação da descrita anteriormente, com o intuito principal de fazer a camada Attention não olhar para a sequência longa, e depender de valores passados (CHOLLET, 2021).

2.1.5 Aprendizagem por transferência

O Aprendizado por transferência vem sendo muito divulgado na literatura recente, sendo fundamentada na metodologia dos dados de treinamento e teste, para saber se tem domínio comum entre a rede de transferência e a rede de treinamento final (WEISS K., 2016). Porém, em alguns casos essa suposição em aprendizado de máquina não é válida.

Além disso, em outros casos, os dados de treinamento e testes, são difíceis de coletar e de alto custo financeiro. Portanto, é necessário criar modelos de redes neurais, que sejam treinados com diferentes domínios, generalizando a rede.

A técnica de transfer learning é usada para melhorar o desempenho de uma rede neural em domínio especifico, transferindo as informações para um domínio relacionado, e geralmente os dados de treinamento e os de destino tem uma diferença de subdomínios, porém para um mesmo domínio. Essa observação é importante para que ao realizar a transferência os dados não degradem a rede.

Essa técnica é de grande importância para este trabalho devido à dificuldade de co- letar grande volume de amostra de dados a qual pertence ao subdomínio de atividades suspeitas. Dessa forma, podemos utilizar desse artifício para melhorar nosso resultado como um todo. O aprendizado por transferência é utilizado em inúmeras aplicações atu- almente, desde classificação de sentimento, imagem, e até mesmo de atividades humanas (GAL-ON; MANNOR, 2010), entre outros.

Trabalhos recentes na literatura (WITTEN; FRANK, 2002) afirmam que uma rede treinada para um determinado domínio de origem sempre terá perdas de desempenho para um domínio de destino que as distribuições no limite dos domínios têm entradas diferentes. Quando ocorre uma transferência heterogênea, ou sejaP(xs)̸=P(xt), há uma degradação dos pesos modelo, devido aos dados de treinamento rotulado do domínio de origem serem diferentes dos dados retreinados do domínio de destino. É importante

(22)

Capítulo 2. Fundamentação Teórica 22

ressaltar que existem vários tipos de aprendizado de transferência, como por exemplo Homogeneous transfer learning, ondexs=xt.

Atualmente grandes empresas de tecnologias, como Google, Microsoft e IBM, criam arquiteturas ou melhorias e as disponibilizam as comunidades, e esses modelos disponi- bilizados são treinados com milhões de dados, que precisam de alto poder computacional para treinar e meses de treinamento. Porém com aprendizado de transferência, pode- mos reaproveitar esse treinamento mais genérico e de grande escala, e transferir esse aprendizado para aplicação. Dentre as arquiteturas disponibilizadas por essas empre- sas estão: densenet, efficientnet, efficientnet_v2, imagenet_utils, inception_resnet_v2, in- ception_v3, mobilenet, mobilenet_v2, mobilenet_v3, nasnet, resnet, resnet50, resnet_v2, vgg16, vgg19, xception.

2.2 Otimização do modelo para sistema embarcados

Com dispositivos móveis, o aumento significativo da Internet das Coisas (Internet of Things - IoT), e chips de alto desempenho com baixo consumo de energia, a transmissão de dados de dispositivos que estão na borda da rede para a nuvem, antes de seu processa- mento, em sua maioria não é a maneira mais econômica de processar esses dados. Além disso, há outros aspectos como atrasos na transmissão, confiabilidade da rede, complexi- dade privacidade. Neste trabalho foi proposto implementar um modelo deDeep Learning capaz de executar em dispositivos de borda, ou como chamamos On-Device Machine Learning (ODML).

Devido às limitações, foram propostas várias bibliotecas capazes de otimizar modelos de aprendizado de máquina, com o objetivo de tornar viável embarcar esses modelos em equipamentos na borda da rede. Entre eles temos o TensorFlow Lite, que é uma estru- tura para executar inferência de modelos doTensorFlowem diversas plataformas, como Android, iOS e Linux. Percebe-se que oTensorFlow é uma biblioteca para dispositivos grandes e de alta potência, como também para ambiente de desenvolvimento de modelos aqui apresentados (DAVID et al., 2021).

Na arquitetura do TFLite, mostrada na Figura 5, existem quatro componentes prin- cipais, o primeiro deles é Conversor que executa operações em modelosTensorFlow no formato padrão SaveModel, otimizando o modelo, comprimindo e melhorando seu de- sempenho. O Interpretador que executa a inferência de modelos, conseguindo compi- lar em multiplataforma e fornecendo umaApplication programming interface (API)para execução. Além disso, temos os Kernels operacionais, que tem aproximadamente 130 operadores otimizados para dispositivos móveis. E por fim a interface de acelerador de

(23)

Capítulo 2. Fundamentação Teórica 23

hardware, que delega parte ou todo o modelo para execuções em paralelo comgraphics processing unit (GPU)eNetwork Processor unit (NPU)(DAVID et al., 2021).

Figura 5 – ArquiteturaTensorFlow Lite. Onde é composta essencialmente por quatro blo- cos, Conversor, Interpretador, Kernels operacionais, e Interface de acelerador de Hardware

Fonte: Autoria própria.

(24)

Capítulo 3

O sistema proposto

Neste capítulo serão apresentadas duas arquiteturas principais, utilizando as técnicas e arquiteturas mencionadas no capítulo 2, realizando variações das técnicas e avaliando seu desempenho utilizando o conjunto de dados de reconhecimento de ação de vídeos disponibilizados na Internet e criados peloCenter For Research in Computer Vision, os quais foram chamados deUCF101(VISION, 2013). Esse conjunto de dados contém 101 categorias de ações humanas e os vídeos estão divididos em 25 grupos, que possuem cerca de 4 a 7 vídeos cada.

É importante mencionar que foi utilizado balanceamento das amostras de maneira que cada categoria tivesse a mesma quantidade de vídeos, de modo que a distribuição dos dados fosse realizada da seguinte forma: 80% para treinamento e 20% para testes, dessa maneira, seguindo os padrões de treinamento e avaliação de redes difundidas pela comunidade de aprendizado de máquina, com objetivo de tornar a rede generalista ou seja, não ocorrendoUnderfittingeOverfitting.

3.1 Arquitetura CNN-RNN

A primeira rede implementada é baseada na arquitetura padrão proposta na seção 3.3 deste trabalho e inspirada no trabalho de (PAUL, 2021a), porém com pequenas variações, visando melhorar sua acurácia. Dessa forma, a arquitetura final é mostrada na Figura 6.

Perceba que as principais diferenças estão em definir qual a rede de transferência de aprendizado e seu domínio de treinamento, que pode ser oimagenet, um conjunto de da- dos de imagens, organizado por hierarquiaWordNet, que pode fornecer, em média, 1.000 imagens por classe também chamado desynset, onde o imagenet tem mais de 100.000 synset. Somado a isso tem 3 camadas densamente conectadas, além de mais regulariza- ção, se comparado a arquitetura padrão na Figura 8.

(25)

Capítulo 3. O sistema proposto 25

Essa arquitetura foi definida empiricamente, fixando a rede de série temporal (GRU), variando as redes de aprendizado de transferência ou domínio dessa rede, como também as funções de ativações e quantidade de neurônios em cada camadaFully Connected.

Figura 6 – Arquitetura implementada CNN-RNN. Onde a entrada é vídeo, a partir desse vídeo capturamos 20 frames, esses frames em sequencia é passado pela ca- mada de aprendizado por transferência com objetivo de extração de caracterís- ticas,seguida pela camada de aprendizado que nesse casoCNN-RNN, e por fim as ultimas camadas é para classificação da imagem

Fonte: Autoria própria.

3.2 Arquitetura Transformers

A segunda arquitetura implementada é baseada na arquitetura proposta por (PAUL, 2021b), realizando algumas modificações como mostrado na Figura 7. Primeiramente, percebe-se que a camada de aprendizado por transferência é aDenseNet121, com mesmo domínio de treinamento, e adicionamos uma camada de Flatten, que antes não existia, devido a arquiteturaGRU já realizar a operação equivalente aoFlatteninternamente em sua camada.

(26)

Capítulo 3. O sistema proposto 26

Também é importante ressaltar que a regularização tem 30% na operação doDropout, e apenas uma camada densamente conectada, aparentemente observando a Figura 7, per- ceba que a quantidade de neurônios das camadas doTransformersé muito maior que a da arquiteturaGRU, dessa forma essa tem mais parâmetros a serem treinados, portanto mais complexa.

Figura 7 – Arquitetura implementadaTransformers. Onde a entrada é vídeo, a partir desse vídeo capturamos 20 frames, esses frames em sequencia é passado pela ca- mada de aprendizado por transferência com objetivo de extração de caracterís- ticas,seguida pela camada de aprendizado que nesse caso Tranformers, e por fim as ultimas camadas é para classificação da imagem

Fonte: Autoria própria.

Durante a implementação dessas arquiteturas, com base nos resultados mostrados no Capítulo 4, conseguiu-se eleger a arquitetura com maior eficiência e assim, treinar essa rede para ser capaz de classificar ações suspeitas. Porém, para isso ser possível foi neces- sário criar um conjunto de dados, com segmentos de vídeos de atividades suspeitas e não suspeitas.

3.3 Arquitetura implementada

Com base nos fundamentos demostrados anteriormente, como aprendizado de trans- ferência, e arquiteturas de Deep Learning, a exemplo de RNN, CNN e Transformers, o objetivo desse trabalho é implementar arquiteturas capazes de analisar segmentos de ví- deos e classificá-los, em seguida otimizar essas arquiteturas, sendo assim viável embarcar o modelo de rede em um sistema embarcado como o oferecido por umRaspberry pi 4.

(27)

Capítulo 3. O sistema proposto 27

O modelo implementado tem uma arquitetura como mostra a Figura 8, onde a en- trada é uma sequência de 20framesde um segmento de um vídeo. Esse vídeo é passado por um pré-processamento que toma umframea cada 0.2s. Cada segmento do vídeo é equivalente a 4s do vídeo em tempo real, tempo normalmente suficiente para classificar uma ação em vídeo. Em seguida, os 20framessão usados como entradas de uma camada de aprendizado por transferência, onde todas a variações de arquiteturas já disponibili- zadas podem ser empregadas para aproveitar o seu aprendizado, utilizando os pesos dos neurônios já treinados. Essa camada de aprendizado tem como principal objetivo a ex- tração de características dos dados de entrada, de forma que não é utilizada a camada de classificação dessas redes já treinadas. Após a extração de características realizada pela camada de aprendizado por transferência, a saída será usada como entrada da camada de arquitetura deDeep Learningque é responsável pelo aprendizado. As redes que podem ser implementadas precisam ser capazes de classificar dados em série temporal, como a Gated Recurrent Unit (GRU), que é composta essencialmente porRNN-CNN, ou qualquer arquitetura que seja capaz de classificar dados em sequência.

Em seguida, com os dados de saída da rede deDeep Learning, é realizado um trata- mento para poder entrar na última camada chamada deFully Connected, tratamento esse que, pela camada deFlatten, realiza o redimensionamento para um array linearde uma única dimensão. Isso é necessário, pois a última camada precisa ter como entrada um vetor unidimensional.

Além disso, foi realizada uma etapa de regularização para poder ter uma maior eficiên- cia, comprovada em testes empíricos, com duas etapas ao todo. A primeira é chamada de Dropoutque realizada uma modificação na rede, retirando do treinamento neurônios ocul- tos aleatórios, de forma temporária, com objetivo de reduzir oOverfitting, que é quando a rede está sobre ajustada, de forma que o modelo aprendeu muito sobre os dados de trei- namento, eUnderfitting, que diferente da anterior, a rede está sub ajustada, logo ela não conseguiu aprender de forma adequada os dados de treinamento.

A ideia principal do Dropout é simular o uso de várias redes neurais diferentes, de modo que a função de ativação irá calcular a média dos efeitos de redes distintas. Somado a isso, a Camada deRegularização L2ou comumente chamadaRegularização Ridgetem o mesmo intuito, porém com implementação diferente. É aplicada uma penalização ao valor ao quadrado da magnitude dos pesos dos neurônios, ou seja, aplica uma pena para pesos com valores muito grandes, levando esses pesos a tender a zero, porém não elimi- nando do modelo.

A camada densamente conectada ouFully Connectedé composta essencialmente por uma rede não supervisionada, podendo serMulti-Layer Perceptron (MLP),Support vector

(28)

Capítulo 3. O sistema proposto 28

machine (SVM), entre outras, seguida de uma função de ativação, comoReLU,Softmax, Sigmóide. Essas funções fazem com que a rede implementada seja não linear, ou seja, poderá aprender a solucionar problemas não lineares, e terá como saída um vetor com dimensão igual a quantidade de classes que queremos classificar.

Figura 8 – Arquitetura Implementada. Onde a entrada é vídeo, a partir desse vídeo captu- ramos 20frames, essesframesem sequencia é passado pela camada de apren- dizado por transferência com objetivo de extração de características, seguida pela camada de aprendizado que nesse casoTranformers, e por fim as ultimas camadas é para classificação da imagem

Fonte: Autoria própria.

3.4 Conjunto de dados para análise suspeita

Criar esse conjunto de amostras como mostrado na Figura 9, de forma organizada e balanceada é a parte que necessita de maior atenção, uma vez que esses dados são de ex- trema importância para o bom desempenho da rede, e quanto maior o número de amostras, mais a rede é generalizada. Para isso, foram usados vídeos de ações suspeitas disponíveis na Internet da plataformaYoutube, separando apenas os trechos com atividades suspeitas.

Além disso, limitou-se para que cada amostra retirada, somente produzisse 3 sequências com 20 frames cada, o que representa 4s em tempo real de ação do vídeo. Somado a isso seguimos padrões deDataSet, sendo 80% dos dados para treinamento e 20% para testes.

Porém esse conjunto de dados, ainda é muito pequeno comparado a outros já dispo- nibilizados comoUCF101,UCF-CC-50, Fire Detection in Video Sequences VIRAT (VI- SION, 2013), e outros. Em vista disso, é necessário aumentar a quantidade de segmentos

(29)

Capítulo 3. O sistema proposto 29

(a) Amostra Atividade Normal. (b) Amostra Atividade Suspeitas.

Figura 9 – Amostra de conjunto de dados criada a partir de vídeos da internet, usando a plataformaYoutube

Fonte: Autoria própria.

dessa base dados, para um bom desempenho da rede profunda escolhida. Atualmente a amostra de dados que iremos chamar deWOAI-Criminal-2, contém 63 segmentos de ví- deo, dos quais 51 são para treinamento e 12 para testes, e cada segmento segue o padrão definido na camada de pré-processamento, explicado na seção 3.3.

3.5 Conversão de Modelo Modelo TensorFlow para Tensor- Flow Lite

Inicialmente, criou-se os modelos aqui implementados, treinados e validados utili- zando a bibliotecaTensorFlow e, após realizar o treinamento, salvou-se em um modelo no formatoSavedModel. Mas, para poder embarcá-lo, é necessário converter esse modelo geral e mais pesado em um modelo otimizado e multiplataforma, e para isso fazemos a conversão para um modelo TensorFlow Lite, utilizando o modulo de conversão TFLite Converterpara transformar esse modelo, com os pesos já treinados, em modelo doTen- sorFlow lite, e otimizá-lo. Dessa forma, poder-se-á colocar a camada de interpretação, evidenciada na seção 8, para realizar inferência em dispositivoIoT, como mostrado na Figura 10.

(30)

Capítulo 3. O sistema proposto 30

Fonte: Autoria própria.

Figura 10 – Processo de conversão de modeloTFLite. Onde o processo realizado nesse trabalho foi partindo TF.keras, seguida salvamos no formato savedModel, convertemos paraTFLite Converter

(31)

Capítulo 4 Resultados

Neste capítulo serão apresentados os resultados de validação e inferência, para validar a implementação das arquiteturas propostas e ressaltar seus desempenhos com base no conjunto de dadosUCF101(VISION, 2013).

Foram realizadas três principais análises com base nos resultados. A primeira é acurá- cia do modelo, sendo essa medida a porcentagem de amostras classificadas corretamente mostrado na equação 4.1, esse valor normalmente a ser maximizado. Outra medida ana- lisada é perda, ela quantifica a distância entre o resultado esperado e o resultado real mostrado na equação 4.2, e que geralmente queremos minimizar.

Accuracy= V P+V N

V P+V N+FP+FN (4.1)

CrossEntropy=−

M c=1

yo,c∗log(po,c) (4.2) Avaliamos essas medidas sob dois pontos de visão, um olhando para épocas, com cada época representando o número de vezes que o algoritmo será treinado, por todo conjunto de dados e outro por passo de treinamento, onde cada passo representa uma amostra do conjunto de dados.

A matriz de confusão é outra medida importante, que é uma tabela a qual representa as quantidades de classificações para cada classe do conjunto de dados. Essa tabela mostra as seguintes definições: true positive (TP)é quando o conjunto de dados real, e a classe que estamos tentando classificar foi prevista corretamente,false positive (FP), semelhan- temente é quando conjunto de dados real, e classe que estamos tentando classificar porém teve incorreta,True negative (TN)é quando os dados reais e classe que não estamos ten- tando classificar é prevista corretamente, eFalse negative (FN) ocorre quando os dados reais e classe que não estamos tentando classificar é prevista incorretamente.

(32)

Capítulo 4. Resultados 32

Também após definir a arquitetura com maior desempenho, baseado nos resultados apresentados a seguir, será realizado treinamento da arquitetura com a base de dado WOAI-Criminal-2para aplicação desejada de classificação de ações suspeitas e verificar sua viabilidade para embarcar esse modelo emraspberry pi 4.

4.1 Resultados da validação

Nesta seção iremos validar as arquiteturas implementadas com base nos resultados obtidos, objetivando definir qual arquitetura tem a viabilidade de embarcar, e para isso iremos definir uma porcentagem de 90% de acertos de previsão com o conjunto de dados UCF101(VISION, 2013).

4.1.1 Resultados da Arquitetura CNN-RNN

Com base na Figura 11, há uma constante melhoria da rede a cada passo do treina- mento com a interação do algoritmo. Quando chegamos ao passo 70 atingimos acurácia da rede em treinamento de aproximadamente 95%, e a função perda da rede também di- minui, como observado nas Figuras 11(a) e 11(b), respectivamente. Esse comportamento é esperado, mas não podemos observar somente os resultados de treinamento para inferir se a rede está adequada.

Na Figura 12, ao analisar os resultados de dados de validação, ou seja, aqueles 20%

do conjunto de dados reservados para testar a rede, é possível observar que a rede não está generalizada, uma vez que as linhas de acertos de treinamento e de acertos de validação estão distantes entre si. Tal comportamento confirma que a rede não está conseguindo ter a mesma eficiência de acertos quando tem como entrada dados nunca vistos antes, caracterizando-a como rede não generalizada. Portanto, essa rede não atinge os critérios definidos neste trabalho para poder embarcar em sistemaIoT.

A análise poderia ser finalizada nessa etapa devido a rede não ser generalizada, na Figura 13 que é a matriz de confusão, podemos inferir mais detalhes, como a rede ter inferido erroneamente excessivas vezes que as amostrastennisSwingforam classificadas comoCricketShot, caracterizando um caso deFN.

4.1.2 Resultados da Arquitetura Transformers

Podemos observar na Figura 14, o comportamento descrito na seção 4.1.1, como es- perado e, quando olhamos para a Figura 15, percebe-se que essa rede já tem um compor- tamento mais generalista, ao contrário do que foi observado na Figura 12. Além disso, é

(33)

Capítulo 4. Resultados 33

(a) Acurácia por quantidades de passos. (b) Perda por quantidades de passos.

Figura 11 – Resultados treinamento por quantidade de passos da arquiteturaCNN-RNN.

Fonte: Autoria própria.

importante ressaltar que nessa rede usando arquiteturaTransformers, atingimos acurácia de aproximadamente 70% em relação aos dados de testes, mas quando realizado o teste da rede, como mostrado na Figura 16, conseguimos atingir uma acurácia de 90,18%, ou seja, a cada dez ações suspeitas apenas uma ação não será notificada, o que qualifica essa rede para embarcar noRaspberry Pi 4.

Além disso, ao observar a matriz de confusão na Figura 17, percebe-se que a maior quantidade de dados se concentra na diagonal da matriz, como desejado, e apenas poucos valores foram previstos errado, comparados como todo o conjunto de dados de teste, conseguimos ainda, observar que a matriz entrou em um caso deFN, quando a rede neural realizou a previsão errada apenas onze vezes, classificando as amostrastennisSwingcomo CricketShot.

4.2 Resultados da aplicação

Quando definiu-se qual seria a rede embarcada, com base nos resultados de treina- mento e validação, realizou-se um novo treinamento dessa com o conjunto de dados criado por este trabalho, para classificar ações maliciosas e ações normais, denominadoWOAI- Criminal-2. É importante ressaltar que essa base de dados é muito pequena e, portanto, a quantidade de amostras é insuficiente para criar um sistema robusto, e um Minimum Viable Product (MVP)com essa base.

Perceba que na Figura 18, devido a quantidade pequena de passos do algoritmo, existe uma grande variação se comparada a resultados adquiridos com treinamento utilizando o conjunto de dadosUCF-CC-101(VISION, 2013), demostrado na Figura 14. Isso ocorre devido ao conjunto de dadosWOAI-Criminal-2ter poucas amostras e, consequentemente, menos passos até atingir os critérios de parada estipulados para evitar o Overfitting. A

(34)

Capítulo 4. Resultados 34

Figura 12 – Acurácia e perda por época da arquitetura CNN-RNN. Onde pode perceber que figura Cross Entropy a linha de validação não aparece devido ela estar um nível maior que dois na escala

Fonte: Autoria própria.

rede também conseguiu ter aproximadamente 90% de acertos, como mostrado na Figura 19(a), e a função de perda atingiu o mínimo de 0.15%, comportamentos já observados e esperados para esse tipo de rede neural. Além disso, percebe-se na Figura 19 que, ao atingirmos essa porcentagem de acertos para dados de teste, a função de erro tende a atingir zero.

A Figura 20 mostra a matriz de confusão, que é esperada para essa aplicação, po- rém temos apenas um caso de FN, ou seja, o modelo inferiu que uma cena normal era maliciosa, e tivemos zero casosFP, de forma que a rede com cenas maliciosas realizou a predição informando que era uma cena normal, comportamento esse desejado. O ob- jetivo dessa aplicação é que quando a rede inferir uma cena maliciosa, um supervisor humano possa dispensar atenção e validar esse segmento de vídeo, logo não se deseja que

(35)

Capítulo 4. Resultados 35

Figura 13 – Matriz de Confusão da arquiteturaCNN-RNN. Onde é uma tabela que mostra as frequências de classificação para cada classe do modelo

Fonte: Autoria própria.

esse supervisor seja alertado frequentemente com casos falsos negativos, porque seria um sistema inconveniente. De modo geral, a rede geralmente consegue prever correta- mente o comportamento no vídeo, e esse comportamento pode ser devido a quantidade pequena de amostras, isso pode ser validado com base na matriz de convolução na Fi- gura 16 utilizando o conjunto de dadosUCF-CC-101, que é substancialmente maior que WOAI-Criminal-2. Note que na Figura 20 temos mais casos falsos negativos do que falsos positivos, como desejado para essa aplicação.

4.3 Tempo de inferência para cada seguimento de vídeo

O modelo de predição foi embarcado em um Raspberry Pi 4 com as seguintes con- figurações: 8GB de memória RAM, processador BCM2711B0 da Broadcom, quad-core Cortex-A72 comclockde 1,5GHz, e com sistema operacional Raspberry Pi OS de 64-bit baseado em Debian 11 (Bullseye). Foi realizado ainda um overclocking para 1,8GHz, conseguindo obter tempo médio de 3,99 segundos para cada previsão, como mostra a Fi-

(36)

Capítulo 4. Resultados 36

(a) Acurácia por quantidades de passos. (b) Perda por quantidades de passos.

Figura 14 – Resultados treinamento por quantidade de passos da arquitetura Transfor- mers.

Fonte: Autoria própria.

gura 21. Esses resultados são condizentes com o esperado, ou seja, quando ocorrer uma possível ação suspeita, o sistema conseguira ter um tempo de resposta de 5 segundos, em que muitas vezes a ação criminosa nem é observado. Com esse sistema é possível classificar a ação suspeita e com base no segmento de vídeo de 4 segundos e que se a classificação leva 5 segundos, é possível terminar de analisar um bloco e ter a CPU livre para receber o próximo, assim tomar as devidas providências para conter a ação alertada.

Além disso, criou-se uma versão doscriptde predição que utilizathreads, com intuito de a imagem visualizada não ficar esperando o resultado da predição, melhorando assim a experiência do usuário. Somado a isso, quando utilizamos esta abordagem podemos utilizar todo o poder computacional proporcionado peloRaspberry Pi 4, como pode ser observado na Figura 22, que utiliza os 4 núcleos disponíveis no processador, ao contrário do que é mostrado na Figura 23, em que apenas utiliza um núcleo por vez em execução.

Porém quando utilizamos essa abordagem de realizar a predição usando threads, o tempoclocké aumentado, como mostra Figura 24, atingindo uma média de 14,29 segun- dos. É importante ressaltar que esse tempo éclock, ou seja o tempo real que o processo está em execução no processador. Quando analisamos o tempo de execução real, atingi- mos uma média de 30 segundos, esse aumento de tempo de execução é devido ao consumo geral deCentral Process Unit (CPU), que foi aumentado, devido àsthreadscriadas. Mas, aproximadamente a cada 20 segundos uma nova tarefa é lançada no sistema operacional, e a tarefa lançada a aproximadamente 30 segundos foi finalizada, permitindo comparar esse processo como umpipeline como mostrado na Figura??, ou seja em geral é mais eficiente nessa abordagem, além de utilizar toda capacidade do dispositivo, não deixando poder de processamento ocioso.

(37)

Capítulo 4. Resultados 37

Figura 15 – Acurácia e perda por épocas da arquitetura Transformers. Onde se percebe que as curvas de aprendizado e validação tem comportamento semelhante e próximas logo caracterizando como rede generalista

Fonte: Autoria própria.

Figura 16 – Resultado do treinamento da arquiteturaTransformers. Onde essa é saída do treinamento utilizando o TensorFlow e atingimos uma acurácia de 90.18%

para dados de validação

Fonte: Autoria própria.

(38)

Capítulo 4. Resultados 38

Figura 17 – Matriz de Confusão da arquiteturaTransformers.

Fonte: Autoria própria.

(a) Acurácia por quantidades de passos. (b) Perda por quantidades de passos.

Figura 18 – Resultados treinamento por quantidade de passos da arquitetura da aplicação.

Fonte: Autoria própria.

(39)

Capítulo 4. Resultados 39

Figura 19 – Acurácia e perda por épocas da arquitetura da aplicação. Onde atingimos acima de 90% de acurácia para dados de validação e 100% para dados de treinamento. Além doCross Entropytender a zero em ambos os casos

Fonte: Autoria própria.

(40)

Capítulo 4. Resultados 40

Figura 20 – Matriz de confusão da arquitetura da aplicação. Onde temos apenas um caso de Falso Negativo a qual não é desejado

Fonte: Autoria própria.

(41)

Capítulo 4. Resultados 41

Figura 21 – Tempo de execução serial. Onde o tempo de Clock é tempo que processo re- almente está em execução no núcleo do processador, desconsiderando tempo de espera e entrada e saída, e tempo relógio, é tempo real de quando iniciar a predição até terminar

Fonte: Autoria própria.

(42)

Capítulo 4. Resultados 42

Figura 22 – Uso dos núcleos para predição usandothreads. Onde utilizamos o Software Htop, que verifica a utilização dos recursos do processos no CPU, é impor- tante notar que o sistema está utilizando acima de 90% de todos os núcleos disponíveis, como também cada processo de predição está sendo alocado em todos os núcleos de forma paralela

Fonte: Autoria própria.

(43)

Capítulo 4. Resultados 43

Figura 23 – Uso dos núcleos para predição usando programação serial. Onde o processo é todo alocado em apenas um núcleo, logo não utilizando todo recurso com- putacional disponível

Fonte: Autoria própria.

(44)

Capítulo 4. Resultados 44

Figura 24 – Tempo de execução programação distribuída. Onde o tempo de Clock está em média de 15 segundos, e tempo de relógio está em média 37 segundos

Fonte: Autoria própria.

(45)

Capítulo 4. Resultados 45

Figura 25 – Pipeline em Processadores. Onde sem utilização da paralelização o tempo para executar quatro inferências de 20 segundos, usando paralelização, as mesmas quatro inferências o tempo é de 15 segundos

Fonte: Autoria própria.

(46)

Capítulo 5 Conclusão

Este trabalho teve como principal objetivo implementar arquiteturas deDeep Learning que conseguissem classificar segmentos de vídeos, tendo desempenho para embarcar a rede neural em sistemasIoT e realizar a predição em tempo hábil.

Foram inicialmente propostas duas arquiteturas e avaliados seus desempenhos para essa aplicação, e também foi criado um conjunto de dados, para classificação de ação suspeitas e não suspeitas, com objetivo de treinar a rede para essa aplicação final.

As etapas de treinamento e inferência foram validadas por meio de uma base de da- dos comum e de mesmo poder computacional para ambas as redes. Em seguida, foram analisados os resultados deacurácia, perda e matriz de confusão, assim como o tempo de execução do sistema embarcado noRaspberry Pi 4, para validar a aplicação em sistema embarcados. Os resultados mostraram que os valores encontrados na função de perda fo- ram consideravelmente baixos, que a taxa de acerto apresentada pelo classificador atingiu 90% de acertos e que o tempo de execução demonstrou sua viabilidade de aplicação.

Com isso, esse sistema pode viabilizar o monitoramento e alertar ações suspeitas, com custo baixo de implementação, sendo viável em microempresas e empresas de pequeno porte, assim evitando custo altos com mão de obra de profissionais de segurança para monitoramento das câmeras.

Deste modo, foi alcançado o objetivo de implementar arquiteturas de análise de vídeo viável para embarcar em sistemas de poder computacional baixo, realizando a classifi- cação do vídeo na borda da rede. Visando o aumento da base de dados construída para classificar ações suspeitas, é possível realizar avanços em trabalhos futuros, considerando a implementação deAPIpara coletar imagens nas nuvens de câmeras de segurança usando Digital Video Recorder (DVR), e notificação de alertas de ações suspeitas em tempo real para construção de produto viável mínimo.

(47)

47

Referências

BENGIO, Y.; SIMARD, P.; FRASCONI, P. Learning long-term dependencies with gradient descent is difficult.IEEE transactions on neural networks, IEEE, v. 5, n. 2, p.

157–166, 1994.

CHOLLET, F.Deep Learning with Python. 2rd. ed. USA: MANNING, 2021. ISBN 9781617296864.

DAVID, R.; DUKE, J.; JAIN, A.; REDDI, V. J.; JEFFRIES, N.; LI, J.; KREEGER, N.;

NAPPIER, I.; NATRAJ, M.; WANG, T. et al. Tensorflow lite micro: Embedded machine learning for tinyml systems.Proceedings of Machine Learning and Systems, v. 3, p.

800–811, 2021.

DRUCKER, H.; BURGES, C.; KAUFMAN, L.; SMOLA, A.; VAPNIK, V. Advances in neural information processing systems.NIPS 1996, v. 155, 1997.

GAL-ON, M.; MANNOR, S. Learning from multiple outlooks.CoRR, abs/1005.0027, 2010. Disponível em: <http://arxiv.org/abs/1005.0027>.

GOODFELLOW, I.; POUGET-ABADIE, J.; MIRZA, M.; XU, B.; WARDE-FARLEY, D.; OZAIR, S.; COURVILLE, A.; BENGIO, Y. Advances in neural information processing systems.Curran Associates, Inc, v. 27, p. 2672–2680, 2014.

GóIS, A. C. Reconhecimento facial ajudou a prender mais de 200 na Bahia. 2021. Disponível em: <https://www.tecmundo.com.br/seguranca/

227023-reconhecimento-facial-ajudou-prender-200-bahia.htm\#:~{}:

text=Um\%20sistema\%20de\%20reconhecimento\%20facial,100\%20c\%C3\

%A2meras\%20distribu\%C3\%ADdas\%20por\%20Salvado>.

LAWRENCE, S.; GILES, C. L.; TSOI, A. C.; BACK, A. D. Face recognition: A convolutional neural-network approach.IEEE transactions on neural networks, IEEE, v. 8, n. 1, p. 98–113, 1997.

LECUN Y., B. Y. . H. G. D. l. Deep learning. In:nature. [S.l.: s.n.], 2015. p. 436–444.

NETO, A. F. d. R. Tese (Doutorado em Ciência da Computação) - Centro de Ciências Exatas e da Terra, Edge-distributed stream processing for video analytics in smart city applications. Natal: [s.n.], 2021. Disponível em:

<https://repositorio.ufrn.br/handle/123456789/32743>.

PASCANU, R.; MIKOLOV, T.; BENGIO, Y. International conference on machine learning. Journal of Machine Learning Research, 2013.

(48)

Referências 48

PAUL, S.Video Classification with a CNN-RNN Architecture. 2021. Disponível em:

<https://keras.io/examples/vision/video_classification/>.

. Video Classification with Transformers. 2021. Disponível em: <https:

//keras.io/examples/vision/video_transformers/#building-the-transformerbased-model>.

RYU, J.; YANG, M.-H.; LIM, J. Dft-based transformation invariant pooling layer for visual classification. In: Proceedings of the European Conference on Computer Vision (ECCV). [S.l.: s.n.], 2018.

SIMONYAN, K.; ZISSERMAN, A.; BENGIO, Y.; LECUN, Y. 3rd international conference on learning representations.ICLR, San Diego, 2015.

SRIVASTAVA, N.; HINTON, G.; KRIZHEVSKY, A.; SUTSKEVER, I.; SALAKHUT- DINOV, R. Dropout: a simple way to prevent neural networks from overfitting.The journal of machine learning research, JMLR. org, v. 15, n. 1, p. 1929–1958, 2014.

SUTSKEVER, I.; VINYALS, O.; LE, Q. Proc. advances in neural information processing systems 27. 2014.

VASWANI, A.; SHAZEER, N.; PARMAR, N.; USZKOREIT, J.; JONES, L.; GOMEZ, A. N.; KAISER, L.; POLOSUKHIN, I.Attention Is All You Need. 2017.

VINíCIUS.Machine learning de séries temporais – LSTM. 2018. Disponível em:

<https://www.monolitonimbus.com.br/machine-learning-de-series-temporais-lstm/>.

VISION, C. F. R. I. C.UCF101 - Action Recognition Data Set. 2013. Disponível em:

<https://www.crcv.ucf.edu/data/UCF101.php#Results_on_UCF101>.

WEISS K., K. T. . W. D. A survey of transfer learning. In: Journal of Big Data. [S.l.:

s.n.], 2016. p. 9.

WITTEN, I. H.; FRANK, E. Data mining: practical machine learning tools and techniques with java implementations.Acm Sigmod Record, ACM New York, NY, USA, v. 31, n. 1, p. 76–77, 2002.

Referências

Documentos relacionados

Mineração de conhecimento interativa em níveis diferentes de abstração: Como é  difícil  prever  o  que  exatamente  pode  ser  descoberto  de  um  banco 

–Enlace compartilhado entre dois ou mais dispositivos –Capacidade do enlace é dividida para as transmissões.. Classificação

–Nível inferior oferece serviços (o que o nível faz) para o nível imediatamente superior. –Uma interface especifica como acessar os serviços de

• Suponha que dois segmentos são transmitidos, e que haja perda apenas do reconhecimento para o primeiro segmento. • Caso 1: o reconhecimento para o segundo segmento chega antes do

• Camada física e de enlace do modelo OSI rede.. OSI x IEEE x TCP/IP: Padrão

• O receptor utiliza os bits enviados e divide pelo gerador para verifica se os bits estão

quando M nós querem transmitir, cada um pode enviar na velocidade média de transmissão R/M.

A bicharada já andava toda admirada, mas muito desconfiada!.