Webinar Embarcados – Inteligência Artificial na Borda - Uma introdução ao mic...
Computer Vision com Azure Cognitive Services e Azure ML
1. Aplicações de Computer Vision com Azure Cognitive
Services e Azure ML
Live Talk – 08/11/2018 @ DevelopersBR
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)
• Tecnólogo em Proc. Dados
• Pós-Graduado em Solutions Architect
• Pós-Graduado em Estatística Aplicada
linkedin.com/in/fulviomascara
@fulviomascara
github.com/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
5. Fundamentos
Pipeline Visão Computacional
PERCEPÇÃO OU
AQUISIÇÃO
NORMALIZAÇÃO /
RESTAURAÇÃO
ANÁLISE
BIDIMENSIONAL /
SEGMENTAÇÃO
RECUPERAÇÃO OU
EXTRAÇÃO DE
ATRIBUTOS
AGRUPAMENTO
RECONHECIMENTO
/ CLASSIFICAÇÃO
ENTRADA
SENSORIAL
SEMÂNTICA
6. Fundamentos
Pipeline Visão Computacional
PERCEPÇÃO OU
AQUISIÇÃO
NORMALIZAÇÃO /
RESTAURAÇÃO
ANÁLISE
BIDIMENSIONAL /
SEGMENTAÇÃO
RECUPERAÇÃO OU
EXTRAÇÃO DE
ATRIBUTOS
AGRUPAMENTO
RECONHECIMENTO
/ CLASSIFICAÇÃO
ENTRADA
SENSORIAL
SEMÂNTICA
• REDUZIR A DIMENSIONALIDADE DA CENA, TRANSFORMANDO-A DE
3D PARA 2D
• CAPTURA DE IMAGEM ATRAVÉS DE DISPOSITIVO FÍSICO
• CONVERTE A SAÍDA DESTE DISPOSITIVO (SENSÍVEL À ENERGIA
IRRADIADA PELO OBJETO) EM FORMATO DIGITAL
• LIMITAR NÍVEIS DE CORES, RESOLUÇÃO, TONS DE CINZA
7. Fundamentos
Pipeline Visão Computacional
PERCEPÇÃO OU
AQUISIÇÃO
NORMALIZAÇÃO /
RESTAURAÇÃO
ANÁLISE
BIDIMENSIONAL /
SEGMENTAÇÃO
RECUPERAÇÃO OU
EXTRAÇÃO DE
ATRIBUTOS
AGRUPAMENTO
RECONHECIMENTO
/ CLASSIFICAÇÃO
ENTRADA
SENSORIAL
SEMÂNTICA
• COMPENSA DEFICIÊNCIAS ESPECÍFICAS EM QUALQUER PONTO DO
PROCESSO
• REALCE DE CERTAS CARACTERÍSTICAS (CONTRASTE, NITIDEZ)
• REDUÇÃO DE RUÍDOS
8. Fundamentos
Pipeline Visão Computacional
PERCEPÇÃO OU
AQUISIÇÃO
NORMALIZAÇÃO /
RESTAURAÇÃO
ANÁLISE
BIDIMENSIONAL /
SEGMENTAÇÃO
RECUPERAÇÃO OU
EXTRAÇÃO DE
ATRIBUTOS
AGRUPAMENTO
RECONHECIMENTO
/ CLASSIFICAÇÃO
ENTRADA
SENSORIAL
SEMÂNTICA
• ISOLAR REGIÕES DE PONTOS DA IMAGEM, PRA EXTRAIR ATRIBUTOS
E CALCULO DE PARÂMETROS DESCRITIVOS
• BUSCAR E REALIZAR UM PRIMEIRO AGRUPAMENTO DE
CARACTERÍSTICAS
• A SEGMENTAÇÃO PODE AJUDAR TANTO NA RECUPERAÇÃO DE
ATRIBUTOS QUANTO PRA REFINAR A FASE ANTERIOR DE
RESTAURAÇÃO
9. Fundamentos
Pipeline Visão Computacional
PERCEPÇÃO OU
AQUISIÇÃO
NORMALIZAÇÃO /
RESTAURAÇÃO
ANÁLISE
BIDIMENSIONAL /
SEGMENTAÇÃO
RECUPERAÇÃO OU
EXTRAÇÃO DE
ATRIBUTOS
AGRUPAMENTO
RECONHECIMENTO
/ CLASSIFICAÇÃO
ENTRADA
SENSORIAL
SEMÂNTICA
• OBTER DADOS RELEVANTES OU ATRIBUTOS, DE REGIÕES OU
OBJETOS SEGMENTADOS: DIMENSÕES, GEOMETRIA,
LUMINOSIDADE, TEXTURA
10. Fundamentos
Pipeline Visão Computacional
PERCEPÇÃO OU
AQUISIÇÃO
NORMALIZAÇÃO /
RESTAURAÇÃO
ANÁLISE
BIDIMENSIONAL /
SEGMENTAÇÃO
RECUPERAÇÃO OU
EXTRAÇÃO DE
ATRIBUTOS
AGRUPAMENTO
RECONHECIMENTO
/ CLASSIFICAÇÃO
ENTRADA
SENSORIAL
SEMÂNTICA
• AGREGAR PARTES SIGNIFICATIVAS DOS DADOS
• ASSOCIAÇÃO DE CARACTERÍSTCAS SIMILARES EM FONTES
DIFERENTES DA IMAGEM
REGIÕES COM PIXELS CLAROS
• REGULARES
• IRREGULARES
REGIÕES COM PIXELS ESCUROS
• REGULARES
• IRREGULARES
11. Fundamentos
Pipeline Visão Computacional
PERCEPÇÃO OU
AQUISIÇÃO
NORMALIZAÇÃO /
RESTAURAÇÃO
ANÁLISE
BIDIMENSIONAL /
SEGMENTAÇÃO
RECUPERAÇÃO OU
EXTRAÇÃO DE
ATRIBUTOS
AGRUPAMENTO
RECONHECIMENTO /
CLASSIFICAÇÃO
ENTRADA
SENSORIAL
SEMÂNTICA
• DISTINGUIR A IMAGEM OU PARTES DA MESMA COM A SUA
SIMILARIDADE COMO PERTENCENTE A UM GRUPO OU CLASSE
PREVIAMENTE ROTULADA
• RECONHECIMENTO DE PADRÕES
• USO DE ALGORITMOS
REGIÕES COM PIXELS CLAROS
• REGULARES: CASAS BRANCAS
• IRREGULARES: PEÇAS BRANCAS
REGIÕES COM PIXELS ESCUROS
• REGULARES: CASAS PRETAS
• IRREGULARES: PEÇAS PRETAS
12. Fundamentos
Áreas relacionadas
VISÃO
COMPUTACIONAL
SISTEMA DE
VISÃO
PROCESSAMENTO DE
IMAGENS
INTELIGÊNCIA
ARTIFICIAL
MACHINE
LEARNING
MATEMÁTICA
IMAGIOLOGIA
PROCESSAMENTO
DE SINAIS
ROBÓTICA
NEUROBIOLOGIA
FÍSICA
INTELIGÊNCIA
COMPUTACIONAL
VISÃO COGNITIVA
ESTATÍSTICA
GEOMETRIA
OTIMIZAÇÃO
SMART CAMERAS PS NÃO LINEAR
PS MULTIVARIÁVEL
ÓTICA
VISÃO BIOLÓGICA
VISÃO ROBÓTICA
17. Azure Cognitive Services
COMPUTER
VISION
VIDEO
INDEXER
CUSTOM
VISION
FACE CONTENT
MODERATOR
• Classificação
• Reconhecimento de
Cenas
• Reconhecimento de
Atividades
• Landmarks
• Celebridades
• OCR
• Escrita à mão
• Detecção de Faces
• Detecção de objetos
• Detecção de Cenas
• Detecção de
Atividades
• Extrair e analisar
metadados
• Reconhecimento de
imagem customizado
• Detecção de Face
• Identificação de face
• Reconhecimento de
Emoções
• Busca de imagens
similares
• Agrupamento de
faces por
similaridade
• Moderação de
conteúdo explícito ou
ofensivo
• Customizar listas de
textos ou imagens
para moderação de
conteúdo
• Ferramentas para
incluir feedback
(moderadores)
18.
19. 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
21. 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
22. 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
23. 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
24. 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
25. 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
28. Reconhecimento Facial
Encontrar nome a partir da codificação
IMAGES
Thaissa
Fulvio
Pedro
Poliana
LABELSPICKLE FILEEMBEDDINGS
Treinar
Classificador
Confrontar com
Base
TASKS