Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python IoT – Detecção e Reconhecimento de Faces, aplicações na sociedade

Erlon Júnior
October 21, 2018

Python IoT – Detecção e Reconhecimento de Faces, aplicações na sociedade

Apresentação para a Python Brasil 14, dia 21 de Outubro de 2018

Erlon Júnior

October 21, 2018
Tweet

More Decks by Erlon Júnior

Other Decks in Research

Transcript

  1. Python IoT – Detecção e Reconhecimento de Faces, aplicações na

    sociedade ERLON DANTAS DA NÓBREGA JÚNIOR CIÊNCIA DA COMPUTAÇÃO – FAFIC
  2. [~]$ whoami • Desenvolvedor • Python e Kivy • Pesquisador

    • Segurança da Informação, Visão Computacional e IoT • Fsociety Brasil • CTF Fsociety - WIMF • Cursando Bacharel em Ciência da Computação • FAFIC , Cajazeiras, PB Erlon Dantas da Nóbrega Júnior 19 Anos || São João do Rio do Peixe, PB
  3. [~]$ lecture • Slide • bit.ly/ejrgeek-pybr14-talk • Link extenso: •

    https://speakerdeck.com/ejrgeek/python-iot-deteccao-e- reconhecimento-de-faces-aplicacoes-na-sociedade • Arquivos • bit.ly/ejrgeek-pybr14-arq • Link extenso: • https://github.com/ejrgeek/dec-rec-python-opencv
  4. [~]$ networks • GitHub • https://www.github.com/ejrgeek • Redes Sociais •

    https://www.facebook.com/erlondnjr • https://www.instagram.com/ejr_geek/ • https://twitter.com/GeekEjr • @ejrgeek (Telegram) • Blog • https://erlonbcc.wordpress.com/
  5. [~]$ OpenCV • Popular • OpenCV: Open source Computer Vision

    • Crianda: • Intel • 1999 • C/C++ • Processamento de imagem • Python e Java
  6. • Padrão Facial Haar Cascade • Captura com Webcam Detecção

    Reconhecimento • Padrão Facial identificado • Verificação da Face Aplicação [~]$ OpenCV
  7. [~]$ OpenCV Treinamento feito com AdaBoost e Seleção de características

    (HAAR) aplicando na imagem em forma de cascata (Cascade). Depois do treinamento é gerado um arquivo .xml que chamamos de Haar Cascade, que é o nosso classificador. O processo de treinamento é muito demorado. O objetivo do algoritmo é diferenciar os valores obtidos no treinamento e usar os melhores valores.
  8. [~]$ OpenCV O AdaBoost tira as características que não são

    necessarias (os quadradinhos) e combinar os classificadores fracos em um forte.
  9. [~]$ OpenCV O Cascade computa (calcula) a media dos pixels

    na imagem (área branca e preta) se a diferença entre essas áreas forem abaixo de um limite, as características coincidem.
  10. [~]$ OpenCV Para o reconhecimento, precisamos • Detecção para coleta

    das imagens para o treinamento • Treinar o arquivo de reconhecimento (eiginfaces, fisherfaces, LBPH) • Detectar o objeto usando o classificador .xml • Reconhecer usando o arquivo treinado .yml
  11. [~]$ OpenCV Imagens: • Poses diferentes (posições e expressões) •

    Possuir um tamanho padrão • Ser mais de 25 imagens (descrito na documentação) • Boa iluminação (ambiente e no rosto)
  12. [~]$ OpenCV O algoritmo usa varias imagens de determinada pessoa,

    analisa cada uma das principais características e tenta reconstruir o rosto da pessoa, porém não foca nas características que podem diferenciar 2 ou mais pessoas e a iluminação é muito importante.
  13. [~]$ OpenCV “Melhoria” do eigenfaces A maior variação não importa,

    e sim em procurar características importantes entre classes das imagens (pessoas) A iluminação não importa, pois é feito extração de características de forma separada, ou seja, a iluminação existente em uma imagem e que pode não existir em outra, é ignorada
  14. [~]$ OpenCV A iluminação não tem nenhuma importância, é robusto

    em relação a variação a iluminação. Porém, depende de como a imagem de treinamento e captura no reconhecimento. É gerado um histograma para cada face e é comparado a base de dados e nos retorna a que é mais semelhante, na teoria, a imagem correta
  15. [~]$ OpenCV As características importam, nos mínimos detalhes! • Por

    que preto e branco? • Também funciona colorida, mas é recomendado usar em preto e branco (escala cinza) • Como treinar? • Classificador: AdaBoost, maquina dedicada para treinamento • Reconhecedor: Algoritmos Eigenfaces, Fisherfaces e LBPH • Qual o melhor? • Só testando para saber (Mas Fisherfaces e LBPH são os melhores)
  16. [~]$ Aplicação na Sociedade • Alarme (Sistemas de segurança) •

    Controle de Entrada (Bares, Festas, Auditórios) • Contagem de Pessoas • Validações (Presença, Cadastro) • Controle de Tráfego • Identificação de mal feitores • E muitos outros
  17. Desenvolvedor: AndersonValentin Projeto com JAVA + OpenCV Sistema para deficientes,

    usando a mão como mouse, em breve o olho. [~]$ Aplicação na Sociedade
  18. [~]$ Impacto na Sociedade • Segurança Física • Segurança Digital

    • Busca por Emprego • Julgamento da Sociedade • Privacidade • Acessibilidade
  19. • GITHUB • https://www.github.com/ejrgeek • REDES SOCIAIS • https://www.facebook.com/erlondnjr •

    https://www.instagram.com/ejr_geek/ • https://twitter.com/GeekEjr • @ejrgeek (Telegram) • BLOG • https://erlonbcc.wordpress.com/ PERGUNTAS?