I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de...

15
I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220 I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA ELÉTRICA ENGENHARIA DE CONTROLE E AUTOMAÇÃO UNINORTE LAUREATE- I ETCEECAU Detecção e Reconhecimento De Faces, Objetos E Ações Em Tempo Real Em Vídeo Com Raspberry Pi Através De Uma Rede Neural Convolucional Rafael de Sa 1 Kaio Ribeiro 2 André Aranha 3 RESUMO: Este trabalho propõe a utilização de IA (Inteligência Artificial) como forma de resolver o grave problema de segurança doméstica no Brasil. A violência se dá de forma desenfreada em todo o território nacional, e o que as pessoas estão buscando são formas de ficar segura pelo menos em sua própria casa. De forma natural surge sistemas de segurança para auxiliar como identificação de suspeitos por repetição, gravação de rostos e até identificação de ações suspeitas. Diante desse problema resolvemos propor um sistema de segurança doméstico barato. Utilizou-se um Raspberry Pi junto a uma câmera como protótipo de validação, o dispositivo faz a detecção em tempo real em vídeo usando uma rede neural convolucional e notifica o proprietário caso algo suspeito ocorra. Foram usados três modelos de detecção de objetos open source: TensorFlow, Opencv e YOLO. O processamento foi divido em três focos considerados essenciais para aplicação na área de segurança doméstica: detecção de objetos, detecção de ações e reconhecimento facial. Utilizado o TensorFlow em conjunto com o OpenCV os resultados de detecção razoável na taxa de 1 quadro por segundo, verificou-se depois de vários testes que esse valor pode ser melhorado através de alguns ajustes que serão realizados em futuros trabalhos. Testes com a arquitetura YOLO se mostraram bastante promissoras com uma detecção apurada na taxa de ~45 quadros por segundo podendo alcançar a 90 quadros por segundo no PC. A arquitetura OpenCV se sobressaiu nos testes de reconhecimento facial enquanto que devido a limitações de poder computacional a detecção de ações foi inviável devido ao tempo de treinamento (2 meses) necessário calculado para se detectar ações suspeitas. Palavras Chave: raspberry pi; detecção de objetos; reconhecimento facial; detecção de ações. ABSTRACT: This paper proposes the use of AI (Artificial Intelligence) as a way of solving the serious domestic security problem in Brazil. Violence occurs rampant throughout the national territory, and what people are seeking are ways to stay safe at least in their own home. In a natural way arises security systems to assist as identification of suspects by repetition, recording of faces and even identification of suspicious actions. Faced with this problem we decided to propose a cheap home security system. A Raspberry Pi was used along with a camera as a prototype of validation, the device makes real-time video detection using a convolutional neural network and notifies the owner of the house if something suspicious occurs. Three models of object detection open source were used: TensorFlow, Opencv and YOLO. The processing was divided in three parts considered essential for the application in the area of home security: detection of objects, detection of actions and facial recognition. Using TensorFlow in conjunction with OpenCV resulted in reasonable detection at a rate of 1 frame per second, it has been found after several tests that this value can be improved through some adjustments that will be made in future work. 1 Este trabalho foi desenvolvido no âmbito do Programa de Engenharia Elétrica e Engenharia de Controle e Automação da UNINORTE e constará nos anais do I Encontro De Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate- I ETCEECAU 2018 Kaio Ribeiro - UNINORTE [email protected]: 2 Rafael Luiz Leite de Sa- UNINORTE [email protected]: 3 André Aranha - Instituição [email protected]:

Transcript of I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de...

Page 1: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA

ELÉTRICA ENGENHARIA DE CONTROLE E AUTOMAÇÃO

UNINORTE LAUREATE- I ETCEECAU Detecção e Reconhecimento De Faces, Objetos E Ações Em Tempo Real Em Vídeo

Com Raspberry Pi Através De Uma Rede Neural Convolucional

Rafael de Sa1

Kaio Ribeiro2

André Aranha3

RESUMO: Este trabalho propõe a utilização de IA (Inteligência Artificial) como forma de

resolver o grave problema de segurança doméstica no Brasil. A violência se dá de forma

desenfreada em todo o território nacional, e o que as pessoas estão buscando são formas de

ficar segura pelo menos em sua própria casa. De forma natural surge sistemas de segurança

para auxiliar como identificação de suspeitos por repetição, gravação de rostos e até

identificação de ações suspeitas. Diante desse problema resolvemos propor um sistema de

segurança doméstico barato. Utilizou-se um Raspberry Pi junto a uma câmera como

protótipo de validação, o dispositivo faz a detecção em tempo real em vídeo usando uma

rede neural convolucional e notifica o proprietário caso algo suspeito ocorra. Foram usados

três modelos de detecção de objetos open source: TensorFlow, Opencv e YOLO. O

processamento foi divido em três focos considerados essenciais para aplicação na área de

segurança doméstica: detecção de objetos, detecção de ações e reconhecimento facial.

Utilizado o TensorFlow em conjunto com o OpenCV os resultados de detecção razoável na

taxa de 1 quadro por segundo, verificou-se depois de vários testes que esse valor pode ser

melhorado através de alguns ajustes que serão realizados em futuros trabalhos. Testes com

a arquitetura YOLO se mostraram bastante promissoras com uma detecção apurada na taxa

de ~45 quadros por segundo podendo alcançar a 90 quadros por segundo no PC. A

arquitetura OpenCV se sobressaiu nos testes de reconhecimento facial enquanto que devido

a limitações de poder computacional a detecção de ações foi inviável devido ao tempo de

treinamento (2 meses) necessário calculado para se detectar ações suspeitas.

Palavras Chave: raspberry pi; detecção de objetos; reconhecimento facial; detecção de ações.

ABSTRACT: This paper proposes the use of AI (Artificial Intelligence) as a way of solving the

serious domestic security problem in Brazil. Violence occurs rampant throughout the national

territory, and what people are seeking are ways to stay safe at least in their own home. In a natural

way arises security systems to assist as identification of suspects by repetition, recording of faces

and even identification of suspicious actions. Faced with this problem we decided to propose a

cheap home security system. A Raspberry Pi was used along with a camera as a prototype of

validation, the device makes real-time video detection using a convolutional neural network and

notifies the owner of the house if something suspicious occurs. Three models of object detection

open source were used: TensorFlow, Opencv and YOLO. The processing was divided in three

parts considered essential for the application in the area of home security: detection of objects,

detection of actions and facial recognition. Using TensorFlow in conjunction with OpenCV

resulted in reasonable detection at a rate of 1 frame per second, it has been found after several

tests that this value can be improved through some adjustments that will be made in future work.

1 Este trabalho foi desenvolvido no âmbito do Programa de Engenharia Elétrica e Engenharia de Controle e Automação da UNINORTE e constará nos anais do I Encontro De Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e

Automação Uninorte Laureate- I ETCEECAU 2018 Kaio Ribeiro - UNINORTE – [email protected]: 2 Rafael Luiz Leite de Sa- UNINORTE – [email protected]: 3 André Aranha - Instituição – [email protected]:

Page 2: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

Testing with the YOLO architecture proved to be very promising with accurate detection at a rate

of ~ 45 frames per second and up to 90 frames per second on the PC. The OpenCV architecture

excelled in facial recognition tests whereas due to limitations of computational power, the

detection of actions was impracticable due to the necessary training time (2 months) calculated to

detect suspicious actions.

Keywords: raspberry pi, object detection, facial recognition, action detection;

1 - INTRODUÇÃO

30% dos neurônios do cérebro humano trabalham com o processamento de imagens,

em comparação, o toque consome 8% dos nossos neurônios e a escuta 3%. Seres humanos

tem 2 vantagens sobre máquinas na área de processamento de imagens. Uma é a visão

estereoscópica e a outra é a capacidade quase infinita de fornecer dados de processamento

(Uma criança de 5 anos já possui um banco de dados de 2.7 bilhões de imagens

armazenadas a 30fps). Um dos maiores desafios na área da IA (Inteligência Artificial)

atualmente é alcançar essa capacidade que o cérebro humano tem de processar imagens e

entender quase que instantaneamente o que é visto.

O propósito desse artigo é usar técnicas de IA para detecção de objetos e ações em

tempo real em vídeo através de uma rede neural convolucional. Os sistemas de detecção

usados foram TENSORFLOW, OPENCV e YOLO, cada um proporcionou uma série de

dados como tempo de treinamento, acuracidade, tempo de detecção, taxa de quadros por

segundo entre outros parâmetros que serão discutidos nos próximos tópicos.

A área de implementação escolhida foi segurança doméstica, tendo em vista a alta

taxa de crimes que ocorre no país anualmente. Foi criado um mini sistema de segurança

utilizando um Raspberry Pi, um microcontrolador de baixo custo e considerável

capacidade de processamento e uma câmera acoplada a este dispositivo.

Sendo um assunto que tenta adequar o que vemos na natureza para que o computador

possa interpretar de forma a utilizar como dados. Outro tema necessário é a Inteligência

Artificial que é “o estudo de agentes que recebem percepções do ambiente e executam

ações” (Russell, Norvig).

2 – DETECÇÃO DE OBJETOS

Imagine a situação na qual um desconhecido aproxima-se de uma residência

portando algum tipo de objeto suspeito, como uma arma ou uma faca, é de estrema

importância que as câmeras que fazem o monitoramento possuam um sistema capaz

Page 3: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

de detectar esses objetos e entender que as chances de um crime possa ser cometido

sejam maiores e notifiquem imediatamente o proprietário ou até a polícia. A detecção

de objetos compreende uma das quatro categorias relacionada a percepção visual na

área de processamento de imagens (Figura 1) e é adequada para uma série de

aplicações práticas, e vem sendo usada em várias industrias (Figura 2).

Figura 1. Categorias Detecção de objetos.

]

Fonte: Acessado em 12/11/2018. https://medium.com/nanonets/how-to-easily-detect-objects-with-

deep-learning-on-raspberrypi-225f29635c74

Figura 2. Aplicações Detecção de Objetos.

Fonte: Acessado em 12/11/2018. https://medium.com/nanonets/how-to-easily-detect-objects-with-

deep-learning-on-raspberrypi-225f29635c74

Em resumo, a detecção de objetos é feita através de uma rede que utiliza um

modelo de Deep Learning (Figura 3), o fluxo de trabalho desse método começa na

coleta de dados de treinamento na qual uma série de imagens sobre determinado objeto

precisa ser coletado e descrito, a segunda parte consiste no treinamento onde essas

Page 4: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

imagens são processadas utilizando GPU, e por último vem a parte de predição onde

determinada imagem for capturada e classificada de acordo com os dados treinados.

Como o Raspberry Pi possui pouca memória e capacidade computacional

limitado, foi necessário utilizar um método chamado Quantização (Figura 4). Esse

método encolhe o tamanho dos arquivos armazenando o valor mínimo e máximo de

cada camada e, em seguida compacta cada valor flutuante em um inteiro de 8 bits.

Com isso o tamanho dos arquivos é reduzido em 75%.

Existe uma variedade de modelos/arquiteturas que são usadas para detecção de

objetos. Cada método possui suas vantagens e desvantagens em relação ao tempo,

tamanho e acuracidade. Para estudo e resolução do problema da segurança em

especifico foram utilizados os seguintes modelos open source: TENSORFLOW,

OPENCV e YOLO.

Figura 3. Modelo de Deep Learning utilizado Figura 4. Método de Quantização

Fonte: Acessado em 12/11/2018. https://medium.com/nanonets/how-to-easily-detect-objects-with-

deep-learning-on-raspberrypi-225f29635c74 - (Figura 3) Fonte: Acessado em 12/11/2018. https://medium.com/nanonets/how-to-easily-detect-objects-with-

deep-learning-on-raspberrypi-225f29635c74 - (Figura 4)

2.1 – TENSORFLOW

O TensorFlow é uma biblioteca de software de código aberto para computação

numérica que usa gráficos de fluxo de dados. Os nodes no gráfico representam

operações matemáticas, e as arestas representam as matrizes ou tensores de dados

multidimensionais que se comunicam com os nodes. A arquitetura flexível permite

que você implante aplicações de computação a uma ou mais CPUs ou GPUs em um

Page 5: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

computador, servidor ou dispositivo móvel usando uma única API. O TensorFlow foi

desenvolvido por pesquisadores e engenheiros da Google Brain Team no departamento

de pesquisas de inteligência de máquina do Google com a finalidade de realizar

pesquisas sobre redes neurais profundas e aprendizado de máquina. No entanto, devido

à característica abrangente do sistema, ele também pode ser aplicado a vários outros

domínios.

2.2 – OPENCV

OpenCV (Open Source ComputerVision) criada pela Intel, para manipulação e

processamento de imagens e vídeos, visão computacional, rica em funções que

trabalham com álgebra linear, estrutura de dados e muitos algoritmos, por exemplo:

filtros, reconhecimentos de faces, objetos e até movimentos, realidade virtual e

realidade aumentada e outros. Será a base do projeto já possuindo algumas funções

extremamente ágeis no ponto de vista de desenvolvimento e tem processamento em

tempo real que vamos utilizar.

2.3 – YOLO

YOLO (You Only Look Once) é uma nova abordagem para a detecção de objetos.

Outros métodos de detecção de objetos reaproveitam classificadores para detecção por

formulário. Em vez disso, esse método enquadra a detecção de objetos como um

problema de regressão para caixas delimitadoras espacialmente separadas e de

probabilidades de classe associadas. Uma única rede neural prediz caixas

delimitadoras e probabilidades de classe diretamente de imagens completas em uma

avaliação. Como toda a linha de detecção é uma única rede, ela pode ser otimizada de

ponta a ponta diretamente no desempenho da detecção.

3 – DETECÇÃO DE AÇÕES

A detecção de ações por meio de vídeo em tempo real é algo extremamente

importante para um sistema de segurança, à medida que um algoritmo utilizando

machine learning pode verificar uma ampla gama de vídeos de furtos em um banco de

dados e detectar similaridades nessas ocasiões, assim quando uma dessas ações

suspeitas fosse detectada em vídeo, por exemplo alguém pulando um muro, esse

algoritmo poderia entender essa ação como algo perigoso e alertar o proprietário da

casa.

Page 6: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

Esse método exige a captura do contexto da ação realizada em um intervalo de

tempo, em vez apenas de capturar informações quadro a quadro.

Figura 5. Exemplo detecção quadro a quadro

Fonte: Acessado em 12/11/2018. http://blog.qure.ai/notes/deep-learning-for-videos-action-

recognition-review

Devido a detecção de ações ser uma área da IA que exige muito poder de

processamento até mesmo para computadores da geração atual, a utilização dessa

técnica no Raspberry Pi se torna inviável. Nas próximas linhas será feito um resumo

dessa técnica.

3.1 – DIFICULDADES

A tarefa de detectar ações através de vídeos envolve analisar uma sequência de

quadros 2D, em que a ação pode ou não ser executada durante toda a duração do vídeo.

Esta técnica é parecida com a da classificação de imagens para múltiplos quadros que

agrega tudo e depois faz a predição para cada quadro. Apesar do sucesso de

arquiteturas de aprendizagem profunda na classificação de imagens (ImageNet), o

progresso nas arquiteturas para a aprendizagem de classificação e representação de

vídeo tem sido mais lento.

O que faz essa tarefa de detectar ações através de vídeos algo tão difícil?

3.1.1 – ALTA CAPACIDADE COMPUTACIONAL

Uma rede convulocional 2D simples para classificar 101 classes diferentes

precisa de aproximadamente 5M de parâmetros, esses valores tornam-se ainda

maiores para uma estrutura 3D. É necessário de 3 a 4 dias para treinar uma rede

3DConvNet usando o dataset UFC101 e cerca de 2 meses com o dataset Sports-

1M, dificultando a pesquisa extensiva de dados. Devem ser utilizadas as

unidades do Sistema Internacional (SI). Este sistema de medidas é baseado em

metro, quilograma, segundo e Ampère (MKSA).

Page 7: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

3.1.2 – CAPTURAR O CONTEXTO DA AÇÃO

O reconhecimento de ação envolve capturar o contexto espaço-temporal

entre os quadros. Além disso, a informação espacial capturada deve ser

compensada pelo movimento da câmera. Mesmo com um robusto sistema de

detecção de objetos espaciais não é suficiente, pois as informações de

movimento também contêm detalhes mais precisos. Há um contexto local e

global w.r.t. informações de movimento que precisam ser capturadas para

previsões robustas. Por exemplo, considere as representações de vídeo mostradas

na Figura 2. Um classificador de imagem forte pode identificar o corpo hídrico

humano em ambos os vídeos, mas a natureza da ação periódica temporal

diferencia o rastejamento frontal do nado de peito.

3.1.3 – DESENHAR ARQUITETURAS DE CLASSIFICAÇÃO

Desenhar arquiteturas capazes de capturar informações espaço-temporais

envolvem múltiplas opções complexas de serem classificadas. Existem

estratégias, como dividir a rede em duas, uma para capturar informações no

espaço e a outra no tempo, além de fazer a predição por meio de uma fusão dos

vários clipes e o treinamento do começo ao fim do clipe.

3.1.4 – FALTA DE DATASETS PADRÕES

Os datasets mais populares e de referência são o UCF101 e o Sports1M há

muito tempo. Procurar por arquitetura razoável no Sports1M pode ser

extremamente caro. Para o UCF101, embora o número de quadros seja

comparável ao ImageNet, a alta correlação espacial entre os vídeos torna a

diversidade real no treinamento muito menor. Além disso, dado o tema similar

(esportes) em ambos os conjuntos de dados, a generalização de arquiteturas

comparadas com outras tarefas permaneceu um problema. Isso foi resolvido

ultimamente com a introdução do conjunto de dados Kinetics.

3.2 – VISÃO GERAL DAS ABORDAGENS

3.2.1 – ABORDAGEM 1: REDE DE FLUXO ÚNICO

Neste trabalho “Large-scale Video Classification with Convolutional

Neural Networks”, os autores - Karpathy et al. - exploraram várias maneiras de

Page 8: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

fundir informações temporais a partir de quadros consecutivos usando

convoluções 2D pré-treinadas.

Figura 6. Qudros Consecutivos

Fonte: Acessado em 12/11/2018. http://blog.qure.ai/notes/deep-learning-for-videos-action-

recognition-review

Como pode ser visto na figura 6, os quadros consecutivos do vídeo são

apresentados como entrada em todas as configurações. O quadro único usa

arquitetura única que mescla informações de todos os quadros no último

estágio. A fusão tardia usa duas redes com parâmetros compartilhados,

espaçadas de 15 quadros, e também combina predições no final. A fusão inicial

combina na primeira camada, convolvendo mais de 10 quadros. A fusão lenta

envolve a fusão em múltiplos estágios, um equilíbrio entre a fusão inicial e a

fusão tardia. Para as previsões finais, vários clipes foram amostrados de vídeos

inteiros e as pontuações de previsão deles foram calculadas para a previsão

final.

3.2.2 – ABORDAGEM 2: REDE DE FLUXO DUPLO

Neste trabalho pioneiro “Two-Stream Convolutional Networks for Action

Recognition in Videos” de Simmoyan e Zisserman, os autores construíram sobre

os fracassos do trabalho anterior de Karpathy et al. Dada a tenacidade de

arquiteturas profundas para aprender recursos de movimento, os autores

modelaram explicitamente os recursos de movimento na forma de vetores de

fluxo óptico empilhados. Então, ao contrário de uma única rede para o contexto

espacial, essa arquitetura tem duas redes separadas - uma para o contexto

espacial (pré-treinada), uma para o contexto de movimento. A entrada para a

rede espacial é um único quadro do vídeo. Os autores experimentaram a entrada

para a rede temporal e descobriram que o fluxo óptico bidirecional acumulado

durante 10 quadros sucessivos apresentava o melhor desempenho. Os dois fluxos

Page 9: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

foram treinados separadamente e combinados usando o SVM. A previsão final

foi igual à do artigo anterior, ou seja, a média dos quadros amostrados.

Figura 6. Método espaço-temporal

Fonte: Acessado em 12/11/2018. http://blog.qure.ai/notes/deep-learning-for-videos-action-

recognition-review

Embora esse método tenha melhorado o desempenho do método de fluxo

único ao capturar explicitamente o movimento temporal local, ainda há

algumas desvantagens já que o método envolveu o pré-cálculo dos vetores de

fluxo óptico e o armazenamento dos mesmos separadamente. Além disso, o

treinamento para ambos os fluxos foi separado, implicando que o treinamento

de ponta a ponta em movimento ainda é um longo caminho.

4 – RECONHECIMENTO FACIAL

Para saber o que é reconhecimento facial também é preciso entender o Processamento

Digital de Imagens (PDI), de acordo com Baltista os “sistemas digitais voltados ao

tratamento de informação pictórica com o propósito de torná-la mais adequada à

interpretação por seres humanos ou máquinas ou para obter maior eficiência de

armazenamento e transmissão” (Baltista. L, 2005).

4.1 - EIGENFACE

É um algoritmo que tem um bom aproveitamento e bastante usado para estudos e

com certos filtros usado de forma profissional. Necessita de um grande banco de dados,

ou seja, se for fazer seu próprio treinamento de classificadores terá que tirar muitas

fotos com luminosidade relativamente alta.

De forma bruta o Eigenfaces [8] faz um somatório da face de uma pessoa,

reconstruindo um rosto, sendo possível reconhecer a pessoa de perfil ou de frente, e

Page 10: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

fará com o somatório uma “imagem média” que se multiplicada pelo Eigenvector

(vetor próprio) resulta na imagem original. “É usado o PCA (Principal Component

Analysis) para projetar de forma linear o espaço da imagem em outro espaço

(subespaço) de baixa dimensão”.

4.2 – FISHERFACE

FisherFace é uma melhoria do método de Eigenfaces (PCA), ele busca amplificar

as diferenças entre as faces usando combinações lineares assim obtendo a variação. Já

no Fisherface considera classes, portanto, aumenta a discriminação evidenciando os

componentes, “as mesmas classes devem se agrupar-se juntas, enquanto classes

diferentes ficam o mais longe possível uma das outras na representação de menor

dimensão” [10].

Figura 7. Detecção utilizando Eigenfaces

Fonte: https://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html

4.3 – PCA E LDA MÉTODOS DE APRENDIZADO DE MÁQUINA

O PCA (Principal Component Analysis) é um importante método para redução

da dimensionalidade. Para Jason Brownlee, “é um método que usa operações de

matrizes simples da álgebra linear e estatística para calcular uma projeção dos dados

Page 11: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

originais no mesmo número ou menos de dimensões”. No caso do reconhecimento

facial ele criará espectros ou projeções no sentido de distâncias, quanto menor for a

distância dessa projeção para o rosto a ser identificado mais chances ele tem de ser o

rosto correto ou parecido. Para uma explicação mais visível, “é um método de resumir

dados. Imagine algumas garrafas de vinho em uma mesa de jantar. Cada vinho é

descrito por seus atributos como cor, força, idade, etc. Mas a redundância surgirá

porque muitos deles medirão as propriedades relacionadas. Então, o que o PCA fará

nesse caso é resumir cada vinho no estoque com menos características” (tutorial PCA).

O LDA (Linear Discriminant Analysis) também reduz dimensões, porém em vez

de estar interessado nas maiores variações igual ao PCA o LDA está em aumentar as

distancias entre as múltiplas classes, porém, na abordagem geral é bem semelhante.

Esse método tem muitos pontos positivos como reduzir custos computacionais e evitar

superajustes.

5 – RESULTADOS

O protótipo construído para teste fez uso de um Raspberry Pi e de uma câmera

para a detecção das imagens em tempo real, a escolha do Raspberry Pi foi em razão de

ser um microcontrolador amplamente utilizado e de custo relativamente baixo

comparado com seus concorrentes.

A proposta é desenvolver um sistema capaz de detectar se uma pessoa ou objeto

suspeito se encontra no campo de visão da câmera, caso o sistema reconheça um desses

parâmetros o proprietário da casa é notificado de duas formas, através de uma

mensagem por meio de GSM e Wifi.

Essa mensagem é enviada para um aplicativo, desenvolvido pelos escritores

desse artigo [9] e contém a foto capturada no momento em que algo estranho foi

detectado, assim o usuário pode detectar se a imagem é de algum conhecido e ignorar,

e caso for um desconhecido suspeito, pode alertar as autoridades para que tomem as

devidas providências. Além da foto o usuário pode acompanhar em tempo real a

câmera acessando o ambiente do Raspberry Pi remotamente através de uma conexão

VNC (Virtual Network Computing).

Page 12: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

Figura 8. Protótipo com Raspberry Pi

Fonte: Autor

Para fazer a detecção foi desenvolvido um script [10] utilizando a linguagem

de programação Python que carrega um modelo de detecção de objetos no TensorFlow

para detectar objetos com uma WebCam acoplada ao Raspberry Pi.

A detecção de objetos via TensorFlow tipicamente usa Matplotlib para exibir

imagens, no entanto decidiu-se usar OPENCV por ser mais fácil de trabalhar e menos

propenso a erros. A utilização desses dois modelos em conjunto propiciou uma

detecção satisfatória.

Figura 9. Teste 1

Fonte: Autor.

Page 13: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

Figura 10. Teste 2

Fonte: Autor.

A taxa média de quadros por segundo obtida com esses experimentos foi de 1fps

o que é um valor relativamente satisfatório para uma placa de U$ 35,00. Para se

alcançar performance de detecção em tempo real verificou-se que precisam ser feitas

as seguintes alterações que serão executadas em futuros trabalhos:

• Usar streaming de vídeo e compressão ao invés de processamento quadro a

quadro. Com isso a qualidade da imagem será reduzida, mas não tanto a ponto

de ser percebida pelos olhos humanos.

• Transferir os dados para um servidor com maior poder computacional, fazer a

detecção na máquina, e então enviar os dados de volta para o Raspberry Pi caso

necessário, com isso poderá ser implementado o sistema de detecção de ações

descrito no tópico 5 desse artigo.

Com as alterações descritas acima a taxa de quadros poderá chegar a 30 fps

(960*720 pixels) com esse modelo ssh.

5.1 – TESTES COM YOLO PARA PROJETOS FUTUROS

O YOLO é um framework de detecção de objetos relativamente recente e bastante

promissor como descrito no tópico 2.3. Foram alcançados resultados bastante

satisfatório. Essa arquitetura alcançou uma taxa de 30 fps em tempo real no raspberry

pi e 90 fps no PC, sendo que a biblioteca Opencv exigi mais do hardware para chegar

a 30 fps.

Page 14: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

Referências Bibliográficas

Repositorio do projeto Github:

https://github.com/rafadante/RaspberryPiObjectDetection

Denise Grady, "The Vison Thing: Mainly in the Brain," acessado em

11/11/2018 .http://discovermagazine.com/1993/jun/thevisionthingma227.

Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi, "You Only Look

Once:Unified, Real-Time Object Detection," acessado em 11/11/2018

https://pjreddie.com/media/files/papers/yolo_1.pdf.

Andrej Karpathy, “Large-scale Video Classification with Convolutional Neural

Networks by Karpathy et al”. acessado em 11/11/2018

https://static.googleusercontent.com/media/research.google.com/en//pubs/arch

ive/42455.pdf.

Karen Simonyan, Andrew Zisserman, "Two-Stream Convolutional Networks

for Action Recognition in Videos," acessado em 11/11/2018

https://arxiv.org/pdf/1406.2199.pdf.

“ConvNet Architecture Search for Spatiotemporal Feature Learning” by Du

Tran et al.

“Behavior recognition via sparse spatio-temporal features” by Dollar et al

“3D Convolutional Neural Networks for Human Action Recognition” by Ji et

al.

“Beyond Short Snippets: Deep Networks for Video Classification” by Ng et al.

“Long-term Temporal Convolutions for Action Recognition” by Varol et al.

“Human Action Recognition using Factorized Spatio-Temporal Convolutional

Networks” by Sun et al.

“Densely Connected Convolutional Networks” by Huang et al.

M. B. Blaschko and C. H. Lampert. Learning to localize objects with structured

output regression. In Computer Vision– ECCV 2008, pages 2–15. Springer,

2008.

L. Bourdev and J. Malik. Poselets: Body part detectors trained using 3d human

pose annotations. In International Conference on Computer Vision (ICCV),

2009.

Page 15: I ENCONTRO DE TRABALHOS CIENTÍFICOS DE ENGENHARIA … · I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

I Encontro de Trabalhos Científicos de Engenharia Elétrica Engenharia de Controle e Automação Uninorte Laureate - I ETCEECAU

Av. Igarapé de Manaus, 211 - Centro, Manaus - AM, 69020-220

H. Cai, Q. Wu, T. Corradi, and P. Hall. The crossdepiction problem: Computer

vision algorithms for recognizing objects in artwork and in photographs. arXiv

preprint arXiv:1505.00110, 2015.

N. Dalal and B. Triggs. Histograms of oriented gradients for human detection.

In Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE

Computer Society Conference on, volume 1, pages 886–893. IEEE, 2005.

T. Dean, M. Ruzon, M. Segal, J. Shlens, S. Vijayanarasimhan, J. Yagnik, et al.

Fast, accurate detection of 100,000 object classes on a single machine. In

Computer Vision and Pattern Recognition (CVPR), 2013 IEEE Conference on,

pages 1814–1821. IEEE, 2013.

J. Donahue, Y. Jia, O. Vinyals, J. Hoffman, N. Zhang, E. Tzeng, and T Darrell.

Decaf: A deep convolutional activation feature for generic visual recognition.

arXiv preprint arXiv:1310.1531, 2013.

Z. Shen and X. Xue. Do more dropouts in pool5 feature maps for better object

detection. arXiv preprint arXiv:1409.6911, 2014.

C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V.

Vanhoucke, and A. Rabinovich. Going deeper with convolutions. CoRR,

abs/1409.4842, 2014.

P. Viola and M. Jones. Robust real-time object detection. International Journal

of Computer Vision, 4:34–47, 2001.

P. Viola and M. J. Jones. Robust real-time face detection. International journal

of computer vision, 57(2):137–154, 2004.

Jason Brownlee - https://machinelearningmastery.com/calculate-principal-

component-analysis-scratch-python/

Tutorial de PCA - https://www.dezyre.com/data-science-in-python-

tutorial/principal-component-analysis-tutorial

Qual é a diferencça entre eigenface e fisherface? -

https://www.quora.com/What-is-difference-between-fisherface-and-eigenface

Opencv-[10]

https://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html