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

Python IoT – Detecção e Reconhecimento de Faces...

Avatar for Erlon Júnior 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

Avatar for Erlon Júnior

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?