Meetup AI BRASIL com foco em IOT + IA, realizado na FC Nuvem, onde demonstrei uma aplicação de reconhecimento facial usando Raspberry Pi, com algoritmo embarcado no equipamento.
2. • Corredor de media e longa distância
• Diabético
• Programa desde os 11 anos
• “Tocador” de violão e guitarra
• 29 anos de carreira
• Cientista-chefe da Foursys (RD&I)
• Tecnológo em Proc. Dados
• Pós-Graduado em Solution Architect
• Pós-Graduado em Estatística Aplicada
linkedin.com/in/fulviomascara
@fulviomascara
… E CRACHÁ!
CARA…
4. Fundamentos
Visão computacional é uma aplicação de inteligência artificial destinada a replicar o comportamento da
visão humana, com o uso de hardware e software, com o objetivo de extrair informações úteis através da
captura e tratamento de imagens, sejam elas estáticas ou em movimento.
RECONHECER IDENTIFICAR DETECTAR CLASSIFICAR
7. Reconhecimento Facial
Pipeline Funcional
Encontrar nome
a partir da
codificação
FACIAL
RECOGNITION
Identificar faces
Rotular face Armazenar face
DATA
GATHERING
Capturar
imagem
Encontrar as
faces em uma
imagem
Posicionar e
projetar cada
face
Codificar face
DEFAULT
PATH
9. Reconhecimento Facial
Encontrar faces numa imagem
Algoritmo de Viola-Jones
• Criado em 2001
• Identifica padrões que existem no rosto humano
• Classifica objetos baseado no valor de características
Haar-like para cada subseção de uma imagem
• Utiliza Adaboost para selecionar as melhores
características e formar um classificador robusto
• O objetivo é trabalhar com as melhores características
para que seja mais rápido que operar com pixels
#haar #haar-cascade #viola-jones #lienhart-maydt
10. Reconhecimento Facial
Encontrar faces numa imagem
HOG – Histograma de Gradientes Orientados
• Criado em 2005 pot Dalal e Triggs
• Histogramas normalizados dos gradientes orientados
presentes em uma janela de detecção
• Corta a imagem original em células de tamanho padrão
• O objetivo é descobrir o quão escuro o pixel atual é,
comparado aos seus vizinhos diretos, desenhando uma
seta mostrando a direção onde a imagem fica mais
escura
• Para detecção da face em si, temos que encontrar cada
parte da nossa imagem que se pareça com um padrão
HOG conhecido que tenha sido extraído de uma base de
faces de treinamento
#hog #histogramoforientedgradients
11. Reconhecimento Facial
Posicionar e projetar cada face
Face Landmark Detection
• Criado em 2014 por Kazemi e Sullivan
• Identifica 68 pontos específicos em todo rosto
(landmarks)
• Lidar com o problema de quando um rosto pode parecer
totalmente diferente para um computador quando muda
a direção
• Com base nos pontos detectados, podemos rotacionar,
escalar, cisalhar para que os olhos e a boca fiquem o
mais centralizado possível
#face-landmark-detection #kazemi-sullivan
12. Reconhecimento Facial
Codificar face
Convolutional Neural Network (CNN)
• Invariância de translação
• Convolução é inspirada parcialmente pela ciência
da computação e biologia
• Dividir uma imagem em recortes sobrepostos,
através de uma janela deslizante
• Passe cada recorte para uma rede neural menor
• Se o objeto de interesse aparecer no recorte,
marcar como interessante
• Salvar os resultados de cada recorte em um novo
vetor
• Redução por amostragem (downsampling)
• Realizar uma predição em outra rede neural (fully-
connected)
#cnn #convolution
13. Reconhecimento Facial
Codificar face
Embedding
• Criada por pesquisadores do Google em 2015
• Treinar uma Deep CNN para gerar 128 medidas
para cada rosto
• Ajusta a rede para que as medidas de imagens
diferentes de uma mesma pessoa sejam similares
• Ajusta a rede para que a medida de uma imagem
de uma pessoa X seja diferente da medida de uma
imagem de uma pessoa Y
• A ideia é que com 10 fotos diferentes da mesma
pessoa, a rede vai gerar aproximadamente as
mesmas medidas
• OpenFace já realizou o treinamento e publicou rede
prontas pra serem utilizadas
#enbedding #openface #facenet
16. Reconhecimento Facial
Encontrar nome a partir da codificação
IMAGES
Thaissa
Fulvio
Pedro
Poliana
LABELSPICKLE FILEEMBEDDINGS
Treinar
Classificador
Confrontar com
Base
TASKS
19. Raspberry Pi
Raspberry Pi
• Criada no Reino Unido em 2012
• Mais de 19 Milhões de unidades vendidas até
Março/2018
• Foco em ensino básico de ciência da computação
em escolas e países em desenvolvimento
• Possui um conjunto integrado para integração com
periféricos através de USB, Bluetooth e HDMI
• Permite a utilização de sensores de IoT para
projetos Maker através de uma interface GPIO
• Permite o uso de SO Linux (com ou sem ambiente
gráfico), além de SO Windows (10 IoT Core)