Detector de barba em fotografias

Slides:



Advertisements
Apresentações semelhantes
Reconhecimento de Captcha usando Redes Neurais Artificiais
Advertisements

REDES NEURAIS ARTIFICIAIS: uma aplicação do tipo perceptron multilayer na identificação de impressões digitais Acadêmico: José Mário Pereira Dantas Orientador:
Processamento de Imagens Biométricas
Agenda Introdução Justificativa Objetivo Detecção de Spam
João Luiz Fernandes e Aura Conci Universidade Federal Fluminense
NFIS NFSEG Four Finger Plain Segmentation. NFSEG Os conjuntos físicos de dados são cartões de impressão dos 10 dedos rolados e os 4 dedos planos mais.
Paulo Sérgio Rodrigues PEL205
Redes Neurais Artificiais (RNA): Estudo de Caso
Redes Neurais Artificiais (RNA): Aprendizado
RECONHECIMENTO DE CARACTERES MANUSCRITOS APLICANDO REDES NEURAIS
Backpropagation Through Time
Segmentação de imagens
Perceptron Simples Algoritmo do Bolso com catraca
Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim.
Segmentação de imagens
O COEFICIENTE DE HURST E O COEFICIENTE DE VARIAÇÃO ESPACIAL NA SEGMENTAÇÃO DE TEXTURAS MULTIESPECTRAIS Dra Aura Conci Éldman Oliveira Nunes.
Reconhecimento de Padrões Classificadores Lineares
Reconhecimento de Padrões Segmentação
Reconhecimento de Padrões Dissimilaridade
Iana Alexandra Alves Rufino
Leonardo de Paula Batista Benevides
Ismael Andrade Pimentel Departamento da Eng. Mec
Cérebro Artificial Intelligence, a modern approach
Inteligência Artificial
Inteligência Artificial
Visão Computacional – 2010 Aula 0: Introdução
Paulo Sérgio Rodrigues PEL205
Processamento de Imagens
Introdução ao Processamento Digital de Imagens
Sistema de Recuperação de Imagens Baseada em Conteúdo
INF 1771 – Inteligência Artificial
RN Seleção Temas Projetos Formação de equipes e procedimentos Equipes de 1 a 3 componentes Equipe precisa deixar clara a participação/responsabilidades.
Prof. Raul Sidnei Wazlawick UFSC-CTC-INE 2012
Nome: Rafael Baeta Orientador: Dr. David Menotti
Reconhecimento de códigos QR
Segmentação de Imagens
Redes Neurais Prof. Alex F. V. Machado.
Passo 4: Definição do número de classes
Fernando Carvalho, João Manuel R. S. Tavares
3. Segmentação de Imagens
Animando Humanos Virtuais
DSC/CCT/UFCG Projeto de Redes Neurais Apresentação Parcial do Projeto Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação.
Redes Neuronais/Neurais/ Conexionistas Introdução
Redes Neurais Artificiais
Ademir Rafael Marques Guedes
Revisão Geral Técnicas de Realce Histogramas
Capítulo III – Processamento de Imagem
Aula 8. Classificação Não Supervisonada por Regiões
Projeto Final MCI 2004 Filtragem de s Agente de Classificação de SPAM.
(OU) Hardware da Rede Implementacao da rede
Best Combination of Binarization Methods for License Plate Character Segmentation (2013) - Resumo Vinicius Queiroz e Vinicius M. de Almeida.
Redes Neurais Artificiais. Introdução RNA são modelos matemáticos que se assemelham às estruturas neurais biológicas Capacidade computacional adquirida.
Segmentação de Fundo Marcelo Gonella
Imagens: De intensidade e de Profundidade Prof a Dr a Mercedes Gonzales Márquez Prof a Dr a Mercedes Gonzales Márquez Universidade Estadual de Mato Grosso.
Uma Introdução a SVM Support Vector Machines
Prof. Anne Magály de Paula Canuto
Universidade Federal de Lavras Departamento de Ciência da Computação
Biometria Reconhecimento de Assinaturas
Reconhecimento de Faces
FERRAMENTA PARA AUXÍLIO AO DIAGNÓSTICO DE IMAGENS PULMONARES DE TOMOGRAFIA COMPUTADORIZADA Filipe Vernetti Giusti Orientador: Prof. Dr. Lucas Ferrari Oliveira.
Seminário Introdução à Visão Computacional - The Cyclops Project - CPGCC - INE -UFSC.
Aprendizado da rede O aprendizado, na maioria das vezes, constitui no ajuste do conjunto de pesos de modo que a rede consiga executar uma tarefa específica.
Luana Bezerra Batista Redes Neurais Luana Bezerra Batista
Reconhecimento Facial usando SVM
O Que São as Redes Neurais Artificiais
Segmentação de imagens segmentação Pré-processamento descrição / análise Não existe uma única e definitiva abordagem ao problema da segmentação A descrição.
Detecção de tráfego Skype na Web através de Redes Neurais Artigo Original: Freire, P. E., Ziviani, A., and Salles, R. M. (2008). Detecting skype flows.
Objetivo Este projeto destina-se ao estudo e à elaboração de modelos neurais artificiais, com o auxílio do programa Matlab. O objetivo principal deste.
Transcrição da apresentação:

Detector de barba em fotografias Redes Neurais/Inteligência Artificial Gean Paulo Barros Kláudio Henrique M. Medeiros Laura Dutra de Menezes

Definição do problema Em bancos de dados com muitas imagens, é importante nos apoiarmos em algumas características para separar os dados. Se a quantidade de dados for muito grande, fica inviável para um humano separar manualmente.

Descrição do projeto O projeto consiste na construção e treinamento de uma rede neural que classifique as pessoas em imagens passadas para ela como barbadas ou não.

Estratégias para resolução Para resolver o problema, usamos técnicas de Visão Computacional, Inteligência Artificial e Redes Neurais. Visão Computacional: detecção de faces, segmentação de imagens e extração de características. Redes Neurais: uso da abordagem Multi-Layer Perceptron, backpropagation.

Estratégias para resolução Durante este projeto, duas estratégias foram utilizadas. Usamos um limiar para binarização da imagem, uma máscara de pesos e treinamos a rede. Uma pessoa seria classificada como barbada se a taxa de pixels pretos após a binarização fosse alto o suficiente. Usamos a técnica de Local Binary Patterns (LBP) para calcular o valor de nível de cinza de um pixel em função de seus vizinhos, construímos um histograma de nível de cinza e treinamos a rede. Uma pessoa seria considerada barbada se houvesse uma quantidade suficiente de descontinuidades nas cores.

Estratégia da binarização

Elementos de Visão Computacional Binarização da imagem, segmentação da barba, cálculo de pontos pretos em cada segmento da imagem.

Elementos de Redes Neurais A rede neural Multi-Layer Perceptron usa backpropagation e minimização de erro no treinamento. A quantidade de épocas é critério de parada do treinamento (foi usado 3000). Usamos fotos de pessoas barbadas e não-barbadas para treinamento e fotos de pessoas barbadas, não-barbadas e fotos “confusas” no teste.

Elementos de Redes Neurais Rede neural usada para classificação.

Resultados obtidos Épocas = 2000 Output: 0.9861940648297871 Expected: 1.0 Output: 0.8499247580569687 Expected: 1.0 Output: 0.4974562224208351 Expected: 1.0 Output: 0.9655933631094192 Expected: 1.0 Output: 0.9055234623791313 Expected: 1.0 Output: 0.6433688735570527 Expected: 1.0 Output: 0.08323963777354385 Expected: 1.0 Output: 0.9690658663292349 Expected: 1.0 Output: 0.9814613448314898 Expected: 1.0 Output: 0.9766023027282116 Expected: 1.0 Output: 0.7412806201628845 Expected: 1.0 Output: 0.9884775881275171 Expected: 1.0 Output: 0.6863341054133643 Expected: 1.0 Output: 0.1307606382428527 Expected: 1.0 Output: 0.5671966845275148 Expected: 1.0 Output: 0.9889073758230608 Expected: 1.0 Output: 0.5451663257364684 Expected: 1.0 Output: 0.07119817749191974 Expected: 1.0 Output: 0.98766946748858 Expected: 1.0 Output: 0.057927497883103404 Expected: 0.0 Output: 0.9843062543500479 Expected: 0.0 Output: 0.47601732132310626 Expected: 0.0 Output: 0.05902913101226488 Expected: 0.0 Output: 0.06978186363516721 Expected: 0.0 Output: 0.8505239279329824 Expected: 0.0 Output: 0.2149094373597048 Expected: 0.0 Output: 0.3531585424936426 Expected: 0.0 Output: 0.12615414563207858 Expected: 0.0 Output: 0.05913727882027054 Expected: 0.0 Output: 0.1227239715194805 Expected: 0.0 Output: 0.0755282671741752 Expected: 0.0 Output: 0.48149579464021913 Expected: 0.0 Output: 0.12240226503302304 Expected: 0.0 Output: 0.11497987503729333 Expected: 0.0 Output: 0.3338233316324114 Expected: 0.0 Output: 0.11477105761239936 Expected: 0.0 Output: 0.4346140797043658 Expected: 0.0 Output: 0.13429158160800791 Expected: 0.0 Taxa de acerto = 32/38 (84%)

Resultados obtidos Épocas = 1000000 Output: 0.9990560600298203 Expected: 1.0 Output: 0.9999995112464399 Expected: 1.0 Output: 0.9603911266474611 Expected: 1.0 Output: 0.9967099816803642 Expected: 1.0 Output: 0.9998438550050472 Expected: 1.0 Output: 0.9999996554133375 Expected: 1.0 Output: 1.8320158219234922E-6 Expected: 1.0 Output: 0.9999990802136012 Expected: Output: 0.999999599121801 Expected: 1.0 Output: 0.030907532128465892 Expected: 1.0 Output: 1.3332350512144617E-5 Expected: 1.0 Output: 0.5039459426070423 Expected: 1.0 Output: 2.3433824405011217E-9 Expected: 1.0 Output: 3.4269322122683765E-5 Expected: 1.0 Output: 0.9999996259705186 Expected: 1.0 Output: 0.9999987574404331 Expected: 1.0 Output: 0.9960728802392983 Expected: 1.0 Output: 2.106918322554876E-4 Expected: 1.0 Output: 0.9999992423825035 Expected: 1.0 Output: 4.332590588857187E-4 Expected: 0.0 Output: 0.9999995956172157 Expected: 0.0 Output: 5.11768947992957E-7 Expected: 0.0 Output: 9.158039471360628E-6 Expected: 0.0 Output: 4.46242065990349E-5 Expected: 0.0 Output: 0.8373958844934365 Expected: 0.0 Output: 0.08437344221589521 Expected: 0.0 Output: 2.6802413067578826E-6 Expected: 0.0 Output: 3.6490155089645226E-5 Expected: 0.0 Output: 4.247963336188048E-6 Expected: 0.0 Output: 5.849972942174981E-4 Expected: 0.0 Output: 3.1890247213250536E-5 Expected: 0.0 Output: 0.9711538974359608 Expected: 0.0 Output: 4.392869102630845E-6 Expected: 0.0 Output: 2.103780130897108E-6 Expected: 0.0 Output: 2.553857494999205E-5 Expected: 0.0 Output: 0.0032539739902122853 Expected: 0.0 Output: 0.025578791156717247 Expected: 0.0 Output: 0.002110720342746829 Expected: 0.0 Taxa de acerto = 29/38 (76%)

Casos positivos (binarização) Ótimo para classificar pessoas com barba escura. Bom para classificar pessoas com barba densa.

Casos negativos (binarização) Péssimo para classificar pessoas com pele escura ou barba clara. Não muito bom para pessoas de barba rala. Não muito bom com pessoas que usam roupas escuras (podem eventualmente aparecer na segmentação).

Estratégia do LBP

Local Binary Patterns LBP é uma técnica usada em reconhecimento de faces e detecção de texturas. O valor de um pixel será substituído pelo código gerado.

Local Binary Patterns

Local Binary Patterns Na implementação mais usual de LBP, são feitas comparações na forma: if (valor do pixel < centro) then ligue o bit correspondente no código Conseguimos um resultado melhor adaptando estes trechos para: if (Math.abs(valor do pixel – centro) > 20) then

Histograma de Local Binary Pattern Feito este processo, foi construído um histograma com 256 entradas. Para cada entrada, foi calculado a porcentagem de pixels na imagem naquela classe.

Elementos de Redes Neurais A rede neural Multi-Layer Perceptron usa backpropagation e minimização de erro no treinamento. A quantidade de épocas é critério de parada do treinamento (foi usado 150000). A quantidade de entradas na rede agora é 256 (uma para cada nível de cinza após o LBP), portanto foi necessário uma quantidade (bem) maior de épocas.

Resultados obtidos Output: 0.9114529741515617 Expected: 1.0 Output: 0.3982417911106177 Expected: 1.0 Output: 0.9124925910136579 Expected: 1.0 Output: 0.9598221406647397 Expected: 1.0 Output: 0.843119351791984 Expected: 1.0 Output: 0.9617807778391703 Expected: 1.0 Output: 0.9857677544485014 Expected: 1.0 Output: 0.6274472184253603 Expected: 1.0 Output: 0.5626601414147145 Expected: 1.0 Output: 0.9986364404854209 Expected: 1.0 Output: 0.6603521564570772 Expected: 1.0 Output: 0.9878773636889654 Expected: 1.0 Output: 0.9954454342329163 Expected: 1.0 Output: 0.9998156875574431 Expected: 1.0 Output: 0.7333281845245864 Expected: 1.0 Output: 0.4615983938519976 Expected: 1.0 Output: 3.022780226149874E-4 Expected: 1.0 Output: 0.8848915379119332 Expected: 1.0 Output: 0.9745685120388294 Expected: 1.0 Output: 0.5785584152548727 Expected: 0.0 Output: 0.43966680152573373 Expected: 0.0 Output: 0.1844652063782568 Expected: 0.0 Output: 0.23474918162530425 Expected: 0.0 Output: 0.18706911968938753 Expected: 0.0 Output: 0.35334640686704694 Expected: 0.0 Output: 0.4609657301114388 Expected: 0.0 Output: 0.26353455900305706 Expected: 0.0 Output: 0.13096397214102945 Expected: 0.0 Output: 0.02503435144239927 Expected: 0.0 Output: 0.5860238742037481 Expected: 0.0 Output: 0.5317327222567582 Expected: 0.0 Output: 0.18513086771119108 Expected: 0.0 Output: 0.4634602274177311 Expected: 0.0 Output: 0.28937650200895765 Expected: 0.0 Output: 0.19816276935828137 Expected: 0.0 Output: 0.03936934463117415 Expected: 0.0 Output: 0.9626539972310897 Expected: 0.0 Output: 0.9749989526056474 Expected: 0.0 Taxa de acerto: 30/38 (78%)

Casos positivos (LBP) Muito bom para detectar barba rala ou curta. Bom com pessoas de barba mais clara (pois o LBP irá tratar barbas claras e escuras da mesma forma).

Casos negativos (LBP) Mau quando a barba é densa a ponto de não haver textura. Se a pele for porosa ou os pelos de barba forem muito curtos, a rede pode confundir com textura de barba.

Binarização vs LBP Binarização funciona bem em alguns casos, mas é uma implementação que funciona mal com barbas claras (não serão barbadas) e pessoas negras (serão barbadas). Local Binary Patterns trata textura e não cor, e possui resultados mais coerentes em uma diversidade maior de situações. Porém é bastante sensível a barbas curtas demais (o indivíduo será barbado mesmo que tenha pouca barba). Concluímos então que LBP é a técnica mais apropriada para esta situação.

Demonstração prática