i encontro de trabalhos cientÍficos de engenharia … · i encontro de trabalhos científicos de...
TRANSCRIPT
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]:
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
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
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
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.
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).
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
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
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
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
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).
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.
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.
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.
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