Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

[~]$ 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

Slide 3

Slide 3 text

[~]$ whoami/developer

Slide 4

Slide 4 text

[~]$ whoami/researcher

Slide 5

Slide 5 text

[~]$ whoami/researcher

Slide 6

Slide 6 text

[~]$ whoami/team-ctf

Slide 7

Slide 7 text

[~]$ whoami/college

Slide 8

Slide 8 text

[~]$ 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

Slide 9

Slide 9 text

[~]$ 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/

Slide 10

Slide 10 text

[~]$ IoT & Raspberry

Slide 11

Slide 11 text

Não identificado (2) Detecção + Reconhecimento (1) Sistema embarcado (3) Status [~]$ IoT & Raspberry

Slide 12

Slide 12 text

[~]$ Software

Slide 13

Slide 13 text

[~]$ Detecção VS Reconhecimento

Slide 14

Slide 14 text

[~]$ Detecção VS Reconhecimento

Slide 15

Slide 15 text

[~]$ OpenCV • Popular • OpenCV: Open source Computer Vision • Crianda: • Intel • 1999 • C/C++ • Processamento de imagem • Python e Java

Slide 16

Slide 16 text

• Padrão Facial Haar Cascade • Captura com Webcam Detecção Reconhecimento • Padrão Facial identificado • Verificação da Face Aplicação [~]$ OpenCV

Slide 17

Slide 17 text

• Padrão Facial Haar Cascade [~]$ OpenCV Imagens Positivas

Slide 18

Slide 18 text

[~]$ OpenCV Imagens Negativas • Padrão Facial Haar Cascade

Slide 19

Slide 19 text

[~]$ 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.

Slide 20

Slide 20 text

[~]$ OpenCV O AdaBoost tira as características que não são necessarias (os quadradinhos) e combinar os classificadores fracos em um forte.

Slide 21

Slide 21 text

[~]$ 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.

Slide 22

Slide 22 text

[~]$ OpenCV

Slide 23

Slide 23 text

• Captura com Webcam Detecção Reconhecimento Eigenfaces Fisherfaces LBPH (Local Binary Patterns Histograms) Algoritmos [~]$ OpenCV

Slide 24

Slide 24 text

[~]$ 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

Slide 25

Slide 25 text

[~]$ 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)

Slide 26

Slide 26 text

[~]$ 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.

Slide 27

Slide 27 text

[~]$ 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

Slide 28

Slide 28 text

[~]$ OpenCV

Slide 29

Slide 29 text

[~]$ 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

Slide 30

Slide 30 text

[~]$ 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)

Slide 31

Slide 31 text

• Padrão Facial Identificado • Identificação Facial Aplicação Algoritmo de Reconhecimento Executar Funcionalidade [~]$ OpenCV

Slide 32

Slide 32 text

[~]$ 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

Slide 33

Slide 33 text

[~]$ Aplicação na Sociedade

Slide 34

Slide 34 text

[~]$ Aplicação na Sociedade

Slide 35

Slide 35 text

[~]$ Aplicação na Sociedade

Slide 36

Slide 36 text

[~]$ Aplicação na Sociedade

Slide 37

Slide 37 text

[~]$ Aplicação na Sociedade

Slide 38

Slide 38 text

Desenvolvedor: AndersonValentin Projeto com JAVA + OpenCV Sistema para deficientes, usando a mão como mouse, em breve o olho. [~]$ Aplicação na Sociedade

Slide 39

Slide 39 text

[~]$ Impacto na Sociedade Lado Bom VS Lado Ruim

Slide 40

Slide 40 text

[~]$ Impacto na Sociedade • Segurança Física • Segurança Digital • Busca por Emprego • Julgamento da Sociedade • Privacidade • Acessibilidade

Slide 41

Slide 41 text

Obrigado!

Slide 42

Slide 42 text

• 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?