Introdução à Visão Computacional com Deep Learning
1. Como o e o .
reconhecem nas fotos?
#computer-vision
#deep-learning
#data-science
https://www.linkedin.com/in/rafaelleonhardt
rafaelleonhardt@gmail.com
38. Métricas
• False Acceptance Rate (FAR): proporção de vezes que autoriza alguém não autorizado (erro);
• False Rejection Rate (FRR): proporção de vezes que não autoriza alguém autorizado (erro);
• Equal Error Rate (EER): proporção igual para FAR e FRR
SEGURANÇA X CONFORTO
INTRODUÇÃO CV E DL
PERGUNTAS: CV, DL . (quanto já fizeram algo?)
CONTATOS
FUNCIONALIDADE DE RECONHECIMENTO DE FACE E PESSOA
PERMITE: tag, busca, relacionar, albuns
LINKED => MAS antes, vamos entender um pouco onde esta sendo aplicado CV
https://www.youtube.com/watch?v=aE1kA0Jy0Xg
AREAS DE GRANDE CIRCULAÇÃO, POLICIA, FAIXA DE PEDESTRES
PROTESTOS, MANIFESTANTES USANDO LASER PARA EVITAR O RECONHECIMENTO
LINK => Mas não apenas reconhcer alguem, mas tambem entender o que está acontecendo…
CARRO AUTONOMO, PESSOAS, PLACAS, SACOLAS, SEMAFARO
LINK => PARA ENTAO chegarmos a soluções que nos ajudem em nosso dia a dia como é o caso de uma proposta de carro autonomo focado no ser humano.
MIT, CAPACIDADE AUMENTADA
LINK => E PODERIAMOS ficar horas dando exemplos bem sucedidos de aplicação de IA e Visão computacional nos dias de hojes…
Esse é um modelo de IA que eu considerado que nos trará resultados mais rápidos no momento, onde aumentamos a capacidade humana e ajudamos o ser humano em atividades do dia a dia, sem substituir totalmente as decisões e sem tilar a liberdade do ser humano.
Source: https://www.youtube.com/watch?v=OoC8oH0CLGc
Monitora se esta olhando apra a Estrada, tempo de uso do cellular, risco de seguranca.
Chega num ponto que o carro pede para assumir o controle e dirigir sozinho.
Impacto para seguradoras.
ENTENDER E INTERPRETAR AS IMAGENS
LINK => IMITAR ----- E TENTA de certa forma, imitar a forma que nós enxergamos e interpretamos o mundo atraves da visão…
Um dos grandes responsaveis é a visão computacional….
Conceito: area que tenta fazer os computadores terem um alto entendimento a partir de informacoes visuais como imagens e videos.
Area que utiliza inteligencia artificial, matematica e processamento de imagens.
Morfologia – estudo da forma (formato e estrutura)
LINK => E TEMOS algumas atividades que são muito comuns quando trabalhamos com CV.
LINK - IMAGEM
Todas estas atividades são realizadas analisando imagens…..
LINK => MAS o que é uma imagem para o computador?
LINK => IMG MAIORES COMPLEXA
MAS temos imagens muito maiores e mais complexas…
LINK - COMO RECONHECE OBJETOS EM MATRIZES
FONTE
RGB - https://mylearningsinaiml.wordpress.com/deep-learning/dl4cv/image-fundamentals/
3D - https://www.researchgate.net/figure/A-three-dimensional-RGB-matrix-Each-layer-of-the-matrix-is-a-two-dimensional-matrix_fig6_267210444
LINK -> BASEOU as tecnicas de cv
Cerebro detecta formas mais simples e vai juntando tudo para detector e entender formas mais complexas.
1981 – ganharam premio nobel de medicina
LINK => ENTAO isso deu base para que programasse uma forma de explicar pro computador o que ele deveria fazer.
DESCARTAR, DESTACAR, EXTRAIR, INSTAGRAM
DEMO: LOGO, NOTA, ROSTO
LINK -> CENARIOS COMUNS
Tentou-se simular o funcionamento do cerebro humano, identificando primeiro formas mais simples como bordas horizontas e verticias, para depois formar formas mais complexas.
Citar quando aplicamos Filtros no Instagram, o que estamos fazendo é multiplicando a imagem original por um filtro/matriz pré-definida.
Assim extraimos caracteristicas da imagem, eliminando coisas que não agregam informação.
Canny, Sobel, Prewitt, Edge Detector. --- PERCORRRE A IMAGEM MULTIPLICANDO
Kernels / Mask / Filters / Convolução
Percorre a matriz original multiplicando pelo kernel e dando origem a uma nova matriz (imagem)
Objetivo: remover informação não essencial e destacar informações uteis.
DEMO: LOGO DA SENIOR, minha MAO, ROSTO e um CUPOM FISCAL
FILTRO DO INSTAGRAM é a mesma coisa!!!
Na demo usar diferentes tectnicas de borda => https://handmap.github.io/gradients-and-edge-detection/
Fonte GIF: https://www.analyticsindiamag.com/computer-vision-primer-how-ai-sees-an-image/
A feature descriptor is a representation of an image or an image patch that simplifies the image by extracting useful information and throwing away extraneous information.
LINK => ISSO funcionou bem em cenarios comuns
https://handmap.github.io/gradients-and-edge-detection/
CABECA PARA BAIXO
LINK -> NOVA ABORDAGEM
Tentava-se programar o raciocinio logico que fazemos, mas no mundo real nem sempre isso é facil.
Funcionava bem, mas nao era muito bom e dependendia de varias situacoes para dar certo.
Precisavam de uma nova abordagem, que é onde entra o Deep Learning.
A variedade de imagem de um mesmo objeto é muito grande, pode estar de cabeca pra baixo, ocluso, etc. Ficando quase impossivel programar algo realmente preciso e generico.
LINK => ENTAO precisávamos de uma nova abordagem para avancar…
GRANDE EVOLUCAO, SUPERAR CAPACIDADE HUMANA, OBVIO
http://healthland.time.com/2012/07/09/study-why-dogs-and-cats-make-babies-healthier/
http://theconversation.com/babies-and-pets-a-guide-for-new-parents-96494
DAD+CAT https://www.freepik.com/free-photo/daughter-dad-looking-cat-autumn-park_2816544.htm
IMPORTANTE: Aprendizagem supervisionada já se usava com Machine Learning, a diferenca com Deep Learning é o volume de dados e a feature selection.
LINK -> NAO BASTA BIGDATA CRU, SUPERVISAO (PAI)
LEFT https://www.argility.com/argility-ecosystem-solutions/iot/machine-learning-deep-learning/
Vantagem da Deep Learning:
Quanto mais dados melhor ela fica, enquanto que em ML a performace se estabiliza mesmo com mais dados.
Em DL, o trabalho do cientista não está mais na escolha das caracteristicas, mas na montage da arquitetura da rede neural. Daqui a pouco vamos entender como funciona uma rede neural.
LINK => MAS, não basta pegar um monte de imagens e jogar para a rede neural…
FAZER PARA SENTADO, CORRENDO,
CADA CASO DE USO
AWS, REDUZIR
Trabalho manual absurdo. Pessoas andando, correndo, sentadas, deitadas, cabeca pra baixo, etc
Já tem algumas tecnicas para reduzir o esforco, mas ainda hoje dá muito trabalho.
Amazon Mechanical Turkey.
ImageNet – 50 mil pessoas em 167 paises anotando imagens e usando Amazon Mechanical Turkey, é o maior case de anotação até hoje – 5 bilhoes de imagens em 22 mil categorias.
LINK => E PARA CADA tipo de problema, você precisa anotar um volume muito grande de imagens,…
NUMERO DE CASA, TRECHO DE LIVRO, ETC
MANUAL, AUTOMATIZAR, AWS TURKEY, SNAPCHAT,
ASSINATURA DIGITAL DO ROSTO,
DATASETS PUBLICOS ANOTADOS
LINK - > ENTAO ...IA
Trabalho manual absurdo.
Já tem algumas tecnicas para reduzir o esforco, mas ainda hoje dá muito trabalho.
Amazon Mechanical Turkey.
Snapchat que coloca acessorios nos locais certos do rosto e manipula a imagem. Precisa da colicalizaçao da boca, olhos, etc nao só do rosto como um todo
LINK => ENTAO digamos que fizemos todo esse trabalho de anotação….
BORDAS, PARTES DOS OBJETOS, OBJETOS
O trabalho do cientista está em definer a arquitetura da rede, fazer ajustes finos (hyper-parametros), etc.
LEARN FEAT: https://medium.com/intro-to-artificial-intelligence/simple-image-classification-using-deep-learning-deep-learning-series-2-5e5b89e97926
EXPLICAR
TRABALHO DO CIENTISTA (ARQ)
(COM RELU ou TANH, AO INVES DE TERMOS UMA MUDANCA SUAVE DE COR (LINEAR), ELA FORCA UMA MUDANCA MAIS BRUCAS (NAO LINEAR).
As funções de ativação permitem que pequenas mudanças nos pesos e bias causem apenas uma pequena alteração no output. Esse é o fato crucial que permitirá que uma rede de neurônios artificiais aprenda. Elas basicamente decidem se um neurônio deve ser ativado ou não. Ou seja, se a informação que o neurônio está recebendo é relevante para a informação fornecida ou deve ser ignorada.
(POOLING reduz a dimensionalidade e melhora a generalização usando por exemplos valores médios, e evitando o overfitting para algumas imagens (mesmo tamanho e angulao))
DEPTH é a quantidade de camadas, profyndidade
NORMALIZACAO (técnica de regualizaçao, ajuste para evitar uma dificuldade na convergencia do aprendizado e melhorando a generalizacao)
https://devblogs.nvidia.com/accelerate-machine-learning-cudnn-deep-neural-network-library/
https://www.rsipvision.com/exploring-deep-learning/
https://www.michaelchimenti.com/tag/cnn/
Pesos aleatorios nos filtros.
The Rectified Linear Unit, or ReLU, is not a separate component of the convolutional neural networks' process. It's a supplementary step to the convolution operation.
The purpose of applying the rectifier function is to increase the non-linearity in our images. (COM RELU, AO INVES DE TERMOS UMA MUDANCA SUAVE DE COR (LINEAR), ELA FORCA UMA MUDANCA MAIS BRUCAS (NAO LINEAR).
The reason we want to do that is that images are naturally non-linear.
When you look at any image, you'll find it contains a lot of non-linear features (e.g. the transition between pixels, the borders, the colors, etc.).
The rectifier serves to break up the linearity even further in order to make up for the linearity that we might impose an image when we put it through the convolution operation.
https://www.superdatascience.com/blogs/the-ultimate-guide-to-convolutional-neural-networks-cnn
Batch normalization is used to address the issues related to internal covariance shift within feature maps. The internal covariance shift is a change in the distribution of hidden units’ values, which slow down the convergence (by forcing learning rate to small value) and requires careful initialization of parameters. Furthermore, it smoothen the flow of gradient and acts as a regulating factor, which improves generalization of the network without relying on dropout. (https://arxiv.org/pdf/1901.06032.pdf)
https://devblogs.nvidia.com/accelerate-machine-learning-cudnn-deep-neural-network-library/
https://www.rsipvision.com/exploring-deep-learning/
https://www.michaelchimenti.com/tag/cnn/
Pesos aleatorios nos filtros.
Para cada imagem, calcula 5 a 23 milhoes de parametros.
Para cada imagem, calcula 25 milhoes de parametros.
Evolucao: https://towardsdatascience.com/illustrated-10-cnn-architectures-95d78ace614d
Ranking: https://paperswithcode.com/sota/image-classification-on-imagenet
The number of paths inside the ResNeXt block is defined as cardinality.
Simular o trainmento com a brincadeira de quente ou frio (sala escura e precisa encontrar a porta)
Mostrar entao os assuntos do slide com imagens (gradiente, back, formulas, etc)
No final, temos um conjunto de PESOS que é o resultado do aprendizado de máquina.
O desafio é chegar nesses pesos, pois precisa de muitas imagens, de muita CPU e GPU para processor todos os calculos.
Felizmente, emprersas como Google, Microsoft, Facebook, fizeram esse trabalho e distribuiram para a comunidade arquivos já com esses pesos e as arquiteturas de redes neurias que eles usaram
Funcoes de ativacao: Relu, Sigmoid, Tanh
https://missinglink.ai/guides/neural-network-concepts/complete-guide-artificial-neural-networks/
DEMO: carregar rede neural, resize 300, foward, shapes
demo usa SSD para Object Detection
Sliding Window – roda uma rede para cada window
YOLO : roda uma rede para a imagem toda (usa Anchors)
SSD?????? : : roda uma rede para a imagem toda
https://towardsdatascience.com/yolo-you-only-look-once-real-time-object-detection-explained-492dc9230006
https://heartbeat.fritz.ai/gentle-guide-on-how-yolo-object-localization-works-with-keras-part-2-65fe59ac12d
FACE EMBEDDING -> CLASSIFICACAO
Resultado é um hash (assinatura digital do meu rosto baseado na posicao dos 64 pontos do rosto (landmarks).
Mesma pessoa tem uma distancia pequena, enquanto pessoas diferentes tem uma grande distancia.
Triple Loss – minimiza a distancia da mesma pessoa e maximiza a distancia de pessoas distintas.
http://www.pinchofintelligence.com/simple-introduction-to-tensorboard-embedding-visualisation/
DEMO - URL DA PHILIPS
Chamar duas pessoas para tirar foto e treinar o reconhecimento….no final da palestra, ver se reconheceu eles.
Face Alignment pode usar alguns pontos (olhos, nariz)
ARQUITETURA + PESOS
PESOS INICIAIS NAO ALEATORIOS
DEMO = LINK (tamanho dos arquivos, codigo, etc) - Mostrar o arquivo que esta sendo carregado. TensorFlow
Ao inves de comecar de pesos aleatorios, nosso treinamento já comeca com os pesos finais do Google e Facebook. Ou seja, é como se tivessemos todas aquelas imagens e CPU e mais as nossas imagens.
Demo com foto do cellular reconhecendo uma pessoa.
Demo com uma imagem no Celular (blink liveness)
Algumas técnicas: textura, infrared, etc.
FaceId da Apple, problema com gemeos.
RealSence Camera
https://github.com/rishikksh20/Liveness-Detection/blob/master/opencv_video.py