WERTON PONTES DE ARAUJO LOCALIZAÇÃO DOS CENTROS DOS OLHOS USANDO REDES NEURAIS CONVOLUTIVAS E GRADIENTES DE IMAGEM
|
|
- Pietra Philippi
- 5 Há anos
- Visualizações:
Transcrição
1 UNIVERSIDADE ESTADUAL DO CEARÁ CENTRO DE CIÊNCIAS E TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MESTRADO ACADÊMICO EM CIÊNCIA DA COMPUTAÇÃO WERTON PONTES DE ARAUJO LOCALIZAÇÃO DOS CENTROS DOS OLHOS USANDO REDES NEURAIS CONVOLUTIVAS E GRADIENTES DE IMAGEM FORTALEZA CEARÁ 2018
2 WERTON PONTES DE ARAUJO LOCALIZAÇÃO DOS CENTROS DOS OLHOS USANDO REDES NEURAIS CONVOLUTIVAS E GRADIENTES DE IMAGEM Dissertação apresentada ao Curso de Mestrado Acadêmico em Ciência da Computação do Programa de Pós-Graduação em Ciência da Computação do Centro de Ciências e Tecnologia da Universidade Estadual do Ceará, como requisito parcial à obtenção do título de mestre em Ciência da Computação. Área de Concentração: Ciência da Computação Orientador: Prof. Dr. Gustavo Augusto Lima de Campos FORTALEZA CEARÁ 2018
3 Dados Internacionais de Catalogação na Publicação Universidade Estadual do Ceará Sistema de Bibliotecas Araujo, Werton Pontes de. Localização dos centros dos olhos usando redes neurais convolutivas e gradientes de imagem [recurso eletrônico] / Werton Pontes de Araujo CD-ROM: il.; 4 ¾ pol. CD-ROM contendo o arquivo no formato PDF do trabalho acadêmico com 57 folhas, acondicionado em caixa de DVD Slim (19 x 14 cm x 7 mm). Dissertação (mestrado acadêmico) - Universidade Estadual do Ceará, Centro de Ciências e Tecnologia, Mestrado Acadêmico em Ciência da Computação, Fortaleza, Área de concentração: Ciência da Computação. Orientação: Prof. Dr. Gustavo Augusto Lima de Campos. 1. Localização dos centros dos olhos. 2. Reconhecimento facial. 3. Rede neural convolutiva. 4. Gradientes de imagem. I. Título.
4
5 AGRADECIMENTOS Aos meus familiares, por seu constante incentivo e apoio incondicional. Aos professores do Mestrado Acadêmico, por terem compartilhado sua sabedoria, seu conhecimento e sua capacidade de transmiti-los. Ao corpo administrativo do MACC, sempre prestativo e eficiente. À Fundação Cearense de Apoio ao Desenvolvimento Científico e Tecnológico FUNCAP, pela concessão da bolsa de estudos. Finalmente, a todos aqueles que, de maneira direta ou indireta, contribuíram para o sucesso desta empreitada.
6 RESUMO Este trabalho propõe uma solução para o problema da localização dos centros dos olhos, que é uma das etapas iniciais do problema mais geral do reconhecimento facial. O método proposto utiliza uma rede neural convolutiva combinada com algoritmos baseados em gradientes de imagem. São descritos o projeto da arquitetura dessa rede e os passos seguidos para seu treinamento, validação e teste, usando um banco de imagens de sujeitos humanos como fonte de dados. Também são descritos em detalhe os algoritmos de cálculo preciso dos centros dos olhos. Além disso, é feita uma análise comparativa dos resultados obtidos, bem como algumas considerações a respeito de futuras melhorias. Palavras-chave: Localização dos centros dos olhos. Reconhecimento facial. Rede neural convolutiva. Gradientes de imagem.
7 ABSTRACT This work proposes a solution to the problem of eye center localization, which is one of the initial steps of the more general problem of face recognition. The proposed method uses a convolutional neural network combined with algorithms based on image gradients. The design of the architecture of the network and the steps taken to perform its training, validation and testing are described in detail. The algorithms for precise estimation of the eye centers are also described. Furthermore, a comparative analysis of the results is presented, as well as some considerations on future enhancements to the method. Keywords: Eye center localization. Face recognition. Convolutional neural network. Image gradients.
8 LISTA DE ILUSTRAÇÕES Figura 1 Fluxo principal do método do autor Figura 2 Propagação de sinais em um perceptron Figura 3 Propagação de sinais em uma MLP com duas camadas Figura 4 Algumas iterações do método do gradiente Figura 5 Primeiro passo de uma operação de convolução Figura 6 Último passo de uma operação de convolução Figura 7 Operação de pooling Figura 8 Gradientes em uma imagem de um olho Figura 9 Caixas acumuladoras para dois gradientes arbitrários Figura 10 Gradientes e vetores de deslocamento Figura 11 Algumas imagens do banco BioID Figura 12 Algumas imagens do banco BioID modificado Figura 13 Arquitetura da CNN Figura 14 Variação do erro quadrático médio para os 4 primeiros folds do treinamento e validação da CNN Figura 15 Distâncias usadas no cálculo do erro normalizado Figura 16 Faixas do erro normalizado Figura 17 Regiões de interesse retangulares calculadas usando as predições da CNN. 43 Figura 18 Acurácia em função do erro normalizado para as predições da CNN.. 46 Figura 19 Regiões de interesse preditas pela CNN com o banco BioID Figura 20 Acurácia em função do erro normalizado para o algoritmo das caixas acumuladoras Figura 21 Centros dos olhos detectados pelo algoritmo das caixas acumuladoras.. 48 Figura 22 Acurácia em função do erro normalizado para o algoritmo das somas de produtos escalares Figura 23 Centros dos olhos detectados pelo algoritmo das somas de produtos escalares Figura 24 Acurácia em função do erro normalizado para a CNN e os algoritmos. 50
9 LISTA DE TABELAS Tabela 1 Hiperparâmetros da CNN Tabela 2 Dimensões das camadas de neurônios da CNN Tabela 3 Número de parâmetros nas conexões da CNN Tabela 4 Erros de treinamento e validação (em pixels) para os 10 folds Tabela 5 Acurácia das predições da CNN para as cinco faixas do erro normalizado. 46 Tabela 6 Acurácia do algoritmo das caixas acumuladoras para as cinco faixas do erro normalizado Tabela 7 Acurácia do algoritmo das somas de produtos escalares para as cinco faixas do erro normalizado Tabela 8 Acurácia do método de Timm e Barth para as cinco faixas do erro normalizado Tabela 9 Acurácia do método do autor para as cinco faixas do erro normalizado. 51
10 LISTA DE ALGORITMOS Algoritmo 1 Algoritmo das Caixas Acumuladoras Algoritmo 2 Algoritmo das Somas de Produtos Escalares
11 SUMÁRIO 1 INTRODUÇÃO MOTIVAÇÃO OBJETIVOS Objetivo Geral Objetivos Específicos VISÃO GERAL FUNDAMENTAÇÃO TEÓRICA PERCEPTRON Definição Aprendizado PERCEPTRON MULTICAMADAS Neurônios Camadas Alimentação direta Treinamento Erros de classificação Método do gradiente Retropropagação REDE NEURAL CONVOLUTIVA Camada de entrada Camada convolutiva Camada ReLU Camada de pooling Camada completamente conectada Dropout Treinamento VALIDAÇÃO CRUZADA GRADIENTES DE IMAGEM ALGORITMO DAS CAIXAS ACUMULADORAS Preenchimento das caixas acumuladoras Pseudocódigo
12 2.6.3 Eliminação de padrões indesejáveis ALGORITMO DAS SOMAS DE PRODUTOS ESCALARES Cálculo da soma dos produtos escalares Pseudocódigo Minimização de estimativas incorretas TRABALHOS RELACIONADOS DETECÇÃO DE FACES REDES NEURAIS CONVOLUTIVAS LOCALIZAÇÃO DOS CENTROS DOS OLHOS RECONHECIMENTO FACIAL METODOLOGIA SELEÇÃO DO BANCO DE IMAGENS DEFINIÇÃO DA ARQUITETURA DA CNN TREINAMENTO E VALIDAÇÃO DA CNN AJUSTE DOS PARÂMETROS DOS ALGORITMOS MODELO DE ANÁLISE QUANTITATIVA APLICAÇÃO DA CNN AO BANCO DE IMAGENS APLICAÇÃO DOS ALGORITMOS ÀS PREDIÇÕES DA CNN COMPARAÇÃO COM O ESTADO DA ARTE RECURSOS COMPUTACIONAIS Componentes de hardware Componentes de software Software desenvolvido pelo autor RESULTADOS APLICAÇÃO DA CNN AO BANCO DE IMAGENS APLICAÇÃO DO ALGORITMO DAS CAIXAS ACUMULADORAS APLICAÇÃO DO ALGORITMO DAS SOMAS DE PRODUTOS ESCALA- RES COMPARAÇÃO ENTRE OS ALGORITMOS COMPARAÇÃO COM O ESTADO DA ARTE CONCLUSÕES E TRABALHOS FUTUROS CONTRIBUIÇÕES DO TRABALHO LIMITAÇÕES
13 6.3 TRABALHOS FUTUROS REFERÊNCIAS
14 13 1 INTRODUÇÃO Os sistemas biométricos vêm há muito sendo utilizados para a identificação de pessoas. A possibilidade de identificar unicamente um indivíduo em meio a um conjunto de dados previamente cadastrados tem inúmeras aplicações práticas, dentre as quais pode-se citar o controle de acesso e a identificação criminal. Exemplos clássicos desses sistemas são o reconhecimento facial por fotografias, o reconhecimento da assinatura manual e a análise das impressões digitais. Mais recentemente, com o advento dos computadores digitais, alguns desses sistemas foram significativamente aperfeiçoados, e outros puderam ser viabilizados, como a identificação pela íris, o reconhecimento de voz e a análise de DNA. As vantagens e desvantagens de cada sistema dependem de parâmetros tais como nível de confiabilidade, velocidade de processamento e custo de implementação. Nos dias atuais, o reconhecimento facial alcançou um patamar de utilização muito elevado, principalmente por sua aplicação nas chamadas redes sociais. Além disso, com os recentes aprimoramentos introduzidos nas redes neurais (e no hardware por elas usado), a acurácia desse sistema de identificação atingiu a impressionante marca de 97,35%, obtida com o algoritmo DeepFace (TAIGMAN et al., 2014). O presente trabalho se concentra na localização dos centros dos olhos, uma etapa crucial em um sistema de reconhecimento facial. Essa etapa possibilita a determinação de outras características importantes para o processo de reconhecimento, como a orientação da face e a distância entre os olhos. Por esse motivo, é desejável que os resultados dessa etapa sejam bastante precisos. 1.1 MOTIVAÇÃO O problema da localização de características faciais tem sido tradicionalmente abordado pela aplicação dos classificadores em cascata, dos quais o algoritmo proposto por Viola e Jones (2004) é considerado o estado da arte. No entanto, essa abordagem tem uma limitação importante: as faces têm de estar previamente alinhadas em relação aos eixos horizontal e vertical da imagem, dentro de uma pequena faixa de tolerância. Este trabalho faz uso das redes neurais, em particular as redes neurais convolutivas, juntamente com algoritmos baseados em gradientes de imagem, visando tornar a localização das características faciais (especialmente os centros dos olhos) independente da rotação da face em torno do eixo sagital.
15 OBJETIVOS Objetivo Geral Desenvolver um método robusto para a localização precisa dos centros dos olhos em uma imagem digital de uma face humana, utilizando redes neurais convolutivas e algoritmos baseados em gradientes de imagens Objetivos Específicos a) Projetar, validar e treinar uma rede neural convolutiva empregando um banco de imagens de faces humanas. b) Utilizar a rede validada e treinada para estimar as posições dos centros dos olhos. c) Gerar duas regiões de interesse, uma para cada olho, a partir dessas estimativas. d) Submeter as regiões de interesse a algoritmos baseados em gradientes de imagens, para localização precisa dos centros dos olhos. e) Comparar a acurácia dos resultados com o estado da arte. A aplicação da rede neural convolutiva a uma imagem para gerar resultados intermediários e a subsequente aplicação dos algoritmos a esses resultados estão esquematizadas na Figura 1. À esquerda dessa figura tem-se a imagem original. No centro, as duas regiões de interesse centradas nas coordenadas estimadas pela rede neural. À direita da figura, as coordenadas dos centros dos olhos precisamente calculadas. Figura 1 Fluxo principal do método do autor.
16 VISÃO GERAL Além deste capítulo introdutório, este trabalho está estruturado da seguinte maneira: O Capítulo 2 descreve em linhas gerais a fundamentação teórica das redes neurais (com maior ênfase nas redes neurais convolutivas) e dos algoritmos baseados em gradientes de imagem. O Capítulo 3 relaciona os trabalhos de outros autores que, de maneira direta ou indireta, contribuíram para a realização deste trabalho. O Capítulo 4 detalha as etapas metodológicas seguidas para a obtenção dos resultados deste trabalho, com ênfase na seleção do banco de imagens, na definição da arquitetura da rede neural convolutiva e no modelo de análise quantitativa. O Capítulo 5 apresenta os resultados obtidos pela aplicação da rede neural convolutiva ao banco de imagens e, em seguida, pela aplicação dos algoritmos baseados em gradientes de imagem às predições dessa rede, além de uma análise comparativa desses resultados. Por fim, o Capítulo 6 resume as conclusões a respeito dos resultados obtidos e as contribuições e limitações deste trabalho, fazendo também uma breve alusão a possíveis melhorias futuras.
17 16 2 FUNDAMENTAÇÃO TEÓRICA Para facilitar o entendimento da teoria, primeiramente são descritos três tipos de redes neurais, em ordem crescente de complexidade: o perceptron, a perceptron multicamadas e a rede neural convolutiva. Para cada tipo são detalhados sua arquitetura, seu mecanismo de propagação de sinais e seu processo de aprendizado (ou treinamento). Também é descrita a validação cruzada, um método para validar uma dada arquitetura, e assim garantir que os resultados gerados pela rede são estatisticamente consistentes. Em seguida, é descrito o processo de cálculo e seleção dos gradientes de imagem, que são utilizados como ponto de partida para os algoritmos de cálculo das coordenadas dos centros dos olhos. Por fim, são descritos os algoritmos utilizados para o cálculo preciso do centro de cada olho, tomando por base as regiões de interesse geradas pela rede neural. O primeiro algoritmo foi desenvolvido por Kothari e Mitchell (1996), e faz uso do conceito de caixas acumuladoras. O segundo algoritmo foi proposto por Timm e Barth (2011), e se baseia em somas de produtos escalares. 2.1 PERCEPTRON O perceptron é um classificador linear, ou seja, um algoritmo de classificação que faz predições baseadas em uma função preditora linear, combinando um conjunto de pesos com um vetor de características. Ele foi uma das primeiras redes neurais artificiais a serem criadas (ROJAS, 1996). Por se tratar de um modelo muito simples, o perceptron é bastante limitado, tendo sido suplantado por outros tipos de redes neurais mais complexas e mais eficientes. Uma de suas principais limitações se deve ao fato de que ele só se aplica a dados linearmente separáveis (BISHOP, 2007) Definição No sentido moderno, o perceptron é um algoritmo para aprendizado de um classificador binário: uma função que mapeia um vetor de entrada x para um valor binário (0 ou 1). Essa função é composta por uma função de integração g(x) = w x + w 0
18 17 e uma função de ativação 1 se a 0 f (a) = 0 caso contrário, onde w é um vetor de pesos (weights), w x é o produto escalar m w i x i (onde m é o número de entradas do perceptron) e w 0 é o viés (bias). O viés altera a posição (mas não a orientação) da fronteira de decisão em relação à origem, e não depende dos valores de entrada. O valor y = f (g(x)) é então usado para classificar a instância de entrada como positiva ou negativa. A Figura 2 mostra uma representação esquemática do perceptron. i=1 Figura 2 Propagação de sinais em um perceptron. x 1... w 1 w n + f y x n 1 w Aprendizado Primeiramente, define-se algumas variáveis: y = f (w x) é a saída do perceptron para um vetor de entrada x. D = {(x 1,d 1 ),...,(x s,d s )} é o conjunto de treinamento com s amostras, onde x j é um vetor de entrada com n dimensões e d j é o valor de saída desejado para essa entrada. Para os valores das características, tem-se: x j,i é o valor da i-ésima característica do j-ésimo vetor de entrada. x j,0 = 1. Para representar os pesos: w i é o i-ésimo valor no vetor de pesos, a ser multiplicado pelo valor da i-ésima característica de entrada. Como x j,0 = 1, w 0 é, para todos os efeitos, um viés treinado.
19 18 Para mostrar a dependência temporal de w: w i (t) é o peso i no tempo t. O algoritmo de aprendizado do perceptron pode ser resumido nas seguintes etapas: 1. Inicializar os pesos. Os pesos podem ser inicializados com zero ou com um valor aleatório pequeno. 2. Para cada exemplo j no conjunto de treinamento D, executar os seguintes passos com a entrada x j e a saída desejada d j : 1. Calcular o valor de saída: y j (t) = f [w(t) x j ] 2. Atualizar os pesos: 3. Repetir a etapa 2 até que o erro = f [w 0 (t)x j,0 + w 1 (t)x j,1 + w 2 (t)x j,2 + + w n (t)x j,n ] w i (t + 1) = w i (t) + (d j y j (t))x j,i, para 0 i n. 1 s s d j y j (t) j=1 em uma iteração seja menor que um limiar especificado γ, ou um número predeterminado de iterações tenha sido executado. O algoritmo atualiza os pesos após os passos 2.1 e 2.2. Esses pesos são imediatamente aplicados a um par do conjunto de treinamento, e em seguida atualizados, ao invés de serem atualizados somente quando todos os pares tiverem sido processados. 2.2 PERCEPTRON MULTICAMADAS A rede perceptron multicamadas (multilayer perceptron), ou MLP, é um modelo de rede neural artificial com alimentação direta (feedforward artificial neural network) que mapeia conjuntos de dados de entrada para um conjunto de dados de saída. Ela consiste em múltiplas camadas de nós em um grafo orientado, onde cada camada é completamente conectada à camada seguinte. À exceção dos nós de entrada, cada nó é um neurônio com uma função de ativação não-linear. A MLP utiliza uma técnica de aprendizado supervisionado chamada retropropagação (backpropagation) para o treinamento da rede. Ela é uma modificação do perceptron descrito acima, e pode classificar dados que não são linearmente separáveis. Por uma questão de simplicidade e facilidade de explanação, é descrita uma MLP formada por apenas duas camadas de neurônios, uma de saída e uma oculta.
20 Neurônios O neurônio é a unidade básica de uma MLP, e seu funcionamento é bem simples: a soma ponderada dos sinais que entram no neurônio é submetida a uma função de ativação nãolinear, gerando assim o sinal de saída. Várias funções de ativação podem ser usadas (KUBAT, 2015), sendo preferida para esta descrição a função logística padrão, que é uma função sigmóide dada pela equação f (Σ) = e Σ, onde Σ é a soma ponderada dos sinais de entrada. Vale ressaltar que essa função fica confinada ao intervalo (0,1), e que f (0) = 0,5. Por simplicidade, assume-se que todos os neurônios de uma rede têm a mesma função de ativação Camadas Os neurônios de uma MLP são dispostos em camadas: uma camada de saída (output layer) e uma ou mais camadas ocultas (hidden layers). Não há comunicação entre neurônios de uma mesma camada, mas camadas adjacentes são completamente conectadas, e cada conexão é associada a um peso (weight). O peso de uma conexão do j-ésimo neurônio oculto ao i-ésimo neurônio de saída é denotado por w (1) ji, e o peso de uma conexão do k-ésimo atributo de entrada ao j-ésimo neurônio oculto é dado por w (2) k j. O sobrescrito (entre parênteses) indica a camada que recebe o sinal (1 corresponde à camada de saída), e o par de subscritos representa os índices dos neurônios na camada de origem e de destino do sinal, respectivamente. Essa estrutura está esquematizada na Figura Alimentação direta Quando se alimenta a MLP com um exemplo, x = (x 1,...,x n ), os valores x k de seus atributos são passados para os neurônios da camada oculta. Assim sendo, o j-ésimo neurônio oculto recebe um sinal de entrada com valor k w (2) k j x k que, submetido à função de ativação, resulta em um valor de saída f ( k w (2) k j x k). O i-ésimo neurônio de saída recebe então os sinais de saída dos neurônios ocultos e, da mesma forma, os submete à sua função de ativação. Esse processo de propagação dos sinais de entrada até a saída da rede é chamado de alimentação direta (feedforward). Em essência, os valores dos sinais de saída dos neurônios da camada de
21 20 Figura 3 Propagação de sinais em uma MLP com duas camadas. y 1 y m sinais de saída f... f neurônios de saída w (1) ji f f f... f neurônios ocultos w (2) k j... x 1 x 2 x n sinais de entrada saída são dados pela equação y i = f ( w (1) j ji f ( k w (2) k j x k)) Treinamento Em uma MLP, os parâmetros que determinam o comportamento da rede são os conjuntos de pesos w (1) ji e w (2). O treinamento da rede consiste em encontrar valores para esses k j pesos que otimizem o desempenho de classificação da rede. Os pesos são inicializados com valores aleatórios pequenos, tipicamente no intervalo ( 0,1;0,1). Em seguida, os exemplos de treinamento são apresentados um por um, sendo propagados até a saída da rede. As discrepâncias na classificação de cada exemplo indicam como os pesos devem ser modificados. Quando o último exemplo é apresentado, completa-se uma época. O processo é então reiniciado, até que resultados satisfatórios sejam obtidos (tipicamente após muitos milhares de épocas) Erros de classificação No treinamento da MLP, o ajuste dos pesos é definido diretamente pelos erros de classificação de cada exemplo submetido à rede. Para mensurar esses erros, usa-se o erro quadrático médio (mean squared error), ou MSE, dado pela equação MSE = 1 m m i=1 (t i y i ) 2, (2.1)
22 21 onde t i é o resultado esperado para o i-ésimo neurônio de saída, y i é o sinal de saída desse neurônio e m é o número de neurônios na camada de saída Método do gradiente O método do gradiente, ou método do máximo declive (gradient descent), é um método numérico usado em otimização. Para encontrar um mínimo local de uma função usase um esquema iterativo, onde em cada passo toma-se a direção negativa do gradiente, que corresponde à direção de declive máximo (RUSSELL; NORVIG, 2010). A Figura 4 ilustra esse processo. No caso da MLP, utiliza-se esse método para determinar o ajuste que cada um dos pesos deve sofrer, de modo a minimizar a função de erro definida pela equação (2.1). Idealmente, o método deveria encontrar um mínimo global. Figura 4 Algumas iterações do método do gradiente. Fonte: < Retropropagação Define-se responsabilidade de um neurônio como sua contribuição para o erro total. Para calculá-la, no caso da função logística padrão, usa-se para o i-ésimo neurônio de saída, e δ (1) i = y i (1 y i )(t i y i ), δ (2) j = h j (1 h j ) i δ (1) i w ji,
23 22 para o j-ésimo neurônio oculto, onde h j representa o valor do sinal de saída desse neurônio. A retropropagação consiste em calcular primeiramente as responsabilidades dos neurônios de saída e, em seguida, utilizar esses valores no cálculo das responsabilidades dos neurônios ocultos (daí o termo retro ). Usa-se então uma regra aditiva para o cálculo dos ajustes: w (1) ji w (1) ji + ηδ (1) i h j, para a conexão entre o j-ésimo neurônio oculto e o i-ésimo neurônio de saída, e w (2) k j w (2) k j + ηδ (2) j x k, para a conexão entre o k-ésimo atributo de entrada e o j-ésimo neurônio oculto, onde η é a taxa de aprendizado (learning rate). O valor de η, teoricamente, deve estar no intervalo (0, 1). No entanto, na prática utilizam-se valores bem menores, tipicamente menores que 0, REDE NEURAL CONVOLUTIVA A rede neural convolutiva (convolutional neural network), ou CNN, é uma variação da perceptron multicamadas (MLP). Elas diferem principalmente quanto à arquitetura pois, enquanto a MLP é formada inteiramente por camadas completamente conectadas, a CNN se compõe de três grupos de camadas: a camada de entrada, as camadas de extração de características e as camadas de classificação (PATTERSON; GIBSON, 2017). As camadas principais do segundo grupo (chamadas camadas convolutivas) se conectam a apenas uma pequena região da camada anterior. Além disso, as camadas desse grupo são tridimensionais. Essa diferença de arquiteturas se deve ao fato de que a camada de entrada da CNN geralmente representa uma imagem. As camadas tridimensionais (ou volumes) da CNN podem ser dispostas de diferentes maneiras, de acordo com os objetivos desejados. Além disso, uma mesma sequência de camadas pode ser repetida várias vezes. As camadas do terceiro grupo se comportam de maneira idêntica às camadas de uma MLP. Cada tipo de camada pode ser associado a dois conjuntos de valores. O primeiro deles são os chamados hiperparâmetros, que definem as características do volume que forma a camada. O segundo conjunto são os parâmetros propriamente ditos, ou seja, pesos e vieses. A seguir, dá-se uma descrição detalhada de cada tipo.
24 Camada de entrada A camada de entrada (INPUT layer) contém os pixels da imagem, dispostos em um volume de dimensões W H D, onde W é a largura da imagem, H sua altura e D o número de canais de cor (3 para uma imagem colorida). Para um melhor entendimento de suas conexões com a camada seguinte, pode-se considerar que cada pixel corresponde a um neurônio. Esta camada não possui parâmetros nem hiperparâmetros Camada convolutiva A camada convolutiva (convolutional layer, ou CONV layer) é a principal camada de extração de características de uma CNN. O sinal de saída de cada um de seus neurônios é gerado através de uma operação de convolução (daí o nome da camada), usando um filtro (ou kernel) de pequenas dimensões, que é aplicado à camada anterior, e cujos elementos correspondem aos pesos. Uma convolução completa gera um mapa de características (feature map), e o conjunto dos mapas gerados por todos os filtros de uma mesma camada constitui um volume de saída. Os hiperparâmetros são: O número de filtros K, correspondendo à profundidade do volume de saída. O tamanho dos filtros F. Geralmente são usados filtros quadrados, com dimensões não maiores que 10 pixels. Todos os filtros de uma camada convolutiva têm o mesmo tamanho. O stride S, representando o passo de deslocamento (em pixels) do filtro sobre o volume de entrada, a cada vez que o filtro é aplicado. O zero-padding P. Esse hiperparâmetro é o tamanho em pixels da borda que é adicionada ao volume de entrada, com a finalidade de controlar as dimensões espaciais do volume de saída. Para um volume de entrada com dimensões W 1 H 1 D 1, obtém-se um volume de saída com dimensões dadas por W 2 = (W 1 F + 2P)/S + 1, H 2 = (H 1 F + 2P)/S + 1, D 2 = K. Usando o esquema do compartilhamento de parâmetros, tem-se um total de (F F D 1 ) K pesos e K vieses.
25 24 Para um exemplo numérico, aplicando-se os hiperparâmetros K = 2, F = 3, S = 2 e P = 1 a um volume de entrada com W 1 = 5, H 1 = 5 e D 1 = 3 obtém-se um volume de saída com W 2 = H 2 = ( )/2 + 1 = 3 e D 2 = 2, e os parâmetros são (3 3 3) 2 = 54 pesos e 2 vieses. As Figuras 5 e 6 ilustram, respectivamente, o primeiro e o último passo de uma operação de convolução completa, utilizando os valores relacionados acima. A sequência detalha a propagação dos sinais de uma camada qualquer para uma camada convolutiva. Figura 5 Primeiro passo de uma operação de convolução Camada ReLU O acrônimo ReLU significa Rectified Linear Units. Esta camada aplica a função de ativação f (x) = max(0, x), de maneira a aumentar as propriedades não-lineares da rede, sem modificar as dimensões do volume de entrada. Por ser bastante rápida, essa função é preferida em relação a outras funções de ativação, como a tangente hiperbólica e a função logística padrão. A rigor, esta não é propriamente uma camada, mas apenas uma função de ativação que é aplicada ao volume de saída de uma camada convolutiva. Por esse motivo, os conceitos de parâmetros e hiperparâmetros não se aplicam.
26 25 Figura 6 Último passo de uma operação de convolução Camada de pooling A camada de pooling (pooling layer, ou POOL layer), também do grupo de camadas de extração de características, tem por finalidade diminuir as dimensões espaciais (largura e altura) de um volume de entrada, de modo a reduzir a quantidade de parâmetros e o esforço computacional da rede. Como essa camada computa uma função fixa do volume de entrada (normalmente usando a operação max), ela não possui parâmetros associados. Seus hiperparâmetros são: O tamanho dos filtros F, idêntico ao das camadas convolutivas. O stride S, também idêntico ao das camadas convolutivas. Para um volume de entrada com dimensões W 1 H 1 D 1, obtém-se um volume de saída com dimensões dadas por W 2 = (W 1 F)/S + 1, H 2 = (H 1 F)/S + 1, D 2 = D 1. Vale notar que os conjuntos de hiperparâmetros mais comumente usados são F = 2 e S = 2, e F = 3 e S = 2.
27 26 Para um exemplo numérico, aplicando-se os hiperparâmetros F = 2 e S = 2 a um volume de entrada com W 1 = 4, H 1 = 4 e D 1 = 3 obtém-se um volume de saída com W 2 = H 2 = (4 2)/2 + 1 = 2 e D 2 = 3. A Figura 7 esquematiza essa operação. Figura 7 Operação de pooling max pool com filtros 2 2 e stride Camada completamente conectada A camada completamente conectada (fully connected layer, ou FC layer) é a responsável pelo processamento de alto nível da rede, após uma sequência de várias camadas de convolução, ReLU e pooling. Seus neurônios são completamente conectados aos neurônios da camada anterior, da mesma maneira que na MLP. Assim sendo, o volume de ativação pode ser calculado por uma multiplicação de matrizes mais um viés. Vale ressaltar que é comum termos uma CNN com mais de uma camada FC Dropout Dropout é um método de regularização utilizado para diminuir o sobre-ajuste (overfitting) das camadas completamente conectadas de uma CNN. Em uma iteração, nós individuais são excluídos da rede com probabilidade p (ou mantidos com probablidade 1 p), resultando numa redução da rede. Essa rede reduzida é então treinada nessa iteração. Em seguida, os nós excluídos são recolocados na rede com seus pesos originais. Normalmente usa-se 50% para a probabilidade de dropout dos nós de camadas ocultas.
28 Treinamento Devido à diversidade de tipos de camadas que compõem uma CNN, seu treinamento é mais complexo que o de uma MLP. Para cada tipo de camada o processo de retropropagação é diferente (KARPATHY, 2016), a saber: Nas camadas convolutivas a retropropagação é também uma operação de convolução, mas os filtros são espacialmente invertidos (flipped). Nas camadas ReLU o gradiente é colocado em zero somente para as entradas com valor menor ou igual a zero. Nas camadas de pooling o gradiente é direcionado para a entrada que possuía o maior valor na fase de propagação direta. Para tanto, é necessário que nessa fase o índice desse valor seja armazenado para uso posterior. Nas camadas completamente conectadas a retropropagação se processa de maneira análoga às camadas de uma MLP. 2.4 VALIDAÇÃO CRUZADA A validação cruzada (cross-validation) é uma técnica de validação de modelos para determinar como os resultados de uma análise estatística são generalizados para um conjunto independente de dados. É usada principalmente para estimar o desempenho de um modelo preditivo. Para avaliar a eficiência da rede neural convolutiva, este trabalho utiliza a validação cruzada k-fold, onde o conjunto inicial de amostras é particionado em k sub-amostras de mesmo tamanho. O processo é executado k vezes, onde cada uma dessas k sub-amostras é utilizada para teste da rede, enquanto as k 1 sub-amostras restantes são usadas para treinamento da rede. Ao final, toma-se a média e o desvio padrão dos k resultados. 2.5 GRADIENTES DE IMAGEM Uma área circular escura, como a íris do olho, em meio a uma área clara, como a esclera (o branco do olho), aparece em uma plotagem dos gradientes da imagem como um campo de vetores irradiando de dentro para fora, como mostra a Figura 8. Pode-se utilizar esses vetores para estimar com bastante precisão o centro da íris, empregando métodos específicos que são detalhados mais adiante.
29 28 Figura 8 Gradientes em uma imagem de um olho. Os gradientes de uma imagem I são dados pela equação ( I(xi,y i ) g i =, I(x ) i,y i ) T, i {1,...,N}, x i y i onde N é o número de pixels da imagem. Para calculá-los é aplicado o filtro Scharr à imagem original, nas direções dos eixos x e y. Esse filtro é um operador de diferenciação discreta, que computa uma aproximação do gradiente da função de intensidade da imagem. Ele se compõe de dois kernels de tamanho 3 3, a saber: para a direção x e para a direção y Além do cálculo dos gradientes da imagem, também faz-se necessário determinar a magnitude dos mesmos, de maneira a serem considerados apenas os gradientes cuja magnitude seja maior que um certo valor, correspondendo aos pontos de maior contraste. Para tanto, utiliza-se a norma euclidiana, dada por g i = g i 2 x + g i 2 y. Vale ressaltar que o filtro Scharr em geral apresenta resultados mais precisos que um filtro Sobel de mesmo tamanho (OpenCV Dev Team, 2014).
30 ALGORITMO DAS CAIXAS ACUMULADORAS O algoritmo proposto por Kothari e Mitchell (1996) utiliza uma matriz bidimensional de caixas (bins), inicializadas com o valor zero, como acumuladores. Cada vez que o prolongamento de um gradiente cruza uma dessa caixas, acrescenta-se uma unidade a seu valor. Ao final do processo, as caixas que estão nas interseções desses prolongamentos têm um valor bem maior que as demais, e devem corresponder aos centros dos olhos. Se mais de duas caixas apresentam valores comparavelmente altos, usa-se métodos heurísticos para selecionar os melhores candidatos. A Figura 9 esquematiza esse processo. Nessa figura, as caixas mais claras indicam maiores valores acumulados. Figura 9 Caixas acumuladoras para dois gradientes arbitrários Preenchimento das caixas acumuladoras Para o preenchimento das caixas, executam-se os seguintes passos: Criação de uma matriz bidimensional inicializada com zeros, cujas dimensões são a altura e a largura da imagem original divididas por um valor ajustável, que corresponde ao tamanho de cada caixa. Os autores do algoritmo recomendam 5 pixels para esse tamanho. Para cada gradiente significativo, traça-se uma reta partindo da posição desse vetor e se prolongando na direção oposta. Para cada caixa cruzada por essa reta, incrementa-se seu valor de uma unidade. Ao final do processo, as caixas com maior número de cruzamentos têm valor acumulado maior.
31 Pseudocódigo Algoritmo 1: Algoritmo das Caixas Acumuladoras Entrada: Região de interesse Saída: Posição do centro do olho início fim Calcule os gradientes da região de interesse; Calcule as magnitudes dos gradientes; Calcule a magnitude mínima dos gradientes; Inicialize a matriz de caixas com zeros; para cada ponto da região de interesse faça fim se magnitude do gradiente no ponto magnitude mínima então fim para cada ponto do prolongamento na direção oposta ao gradiente faça fim Some 1 ao valor da caixa correspondente ao ponto; Retorne a posição da caixa com maior valor acumulado; Eliminação de padrões indesejáveis Os autores do algoritmo sugerem dois métodos heurísticos para a seleção das caixas com maior valor acumulado, caso mais de duas dessas caixas tenham valores próximos. Descrevese apenas o primeiro deles, baseado em informações espaciais, e obedecendo aos critérios: (i) os valores acumulados das caixas correspondentes aos olhos devem ser próximos e (ii) suas coordenadas y devem ser próximas. Pesquisa das duas caixas que minimizam a função J = (b i j b i j )2 + λ( j j ) 2, onde (i, j) e (i, j ) representam as posições das duas caixas, b i j representa o valor acumulado da caixa na posição (i, j) e λ controla o peso relativo dos dois critérios acima.
32 31 Limitação da pesquisa a poucas caixas com os maiores valores, para impedir um crescimento exponencial. 2.7 ALGORITMO DAS SOMAS DE PRODUTOS ESCALARES Ao invés de caixas acumuladoras, o algoritmo proposto por Timm e Barth (2011) utiliza uma função objetivo formada apenas por produtos escalares para determinar as interseções dos vetores gradiente. O algoritmo descreve matematicamente a relação entre um possível centro e as orientações de todos os gradientes da imagem. Sejam c um possível centro e g i o gradiente na posição x i. Para que c seja um centro, o vetor de deslocamento normalizado d i deve ter a mesma direção que o gradiente g i, como mostra a Figura 10. Nesse caso, o valor acumulado dos quadrados dos produtos escalares entre os vetores d i para esse ponto e os vetores g i é máximo. O centro ótimo c de um objeto circular em uma imagem com posições x i, i {1,...,N}, é então dado por c = argmax c d i = { 1 N N i=1 (d T i g i ) 2 }, com x i c x i c 2, i : g i 2 = 1. Os vetores de deslocamento d i são normalizados de modo a obter um peso igual para todos os pixels da imagem. Para melhorar a robustez a mudanças lineares de iluminação e contraste, os gradientes g i também são normalizados. Figura 10 Gradientes e vetores de deslocamento. c d i x i gi c d i x i gi Cálculo da soma dos produtos escalares Para o cálculo da soma dos produtos escalares, executam-se os seguintes passos:
33 32 Criação de uma matriz bidimensional inicializada com zeros, cujas dimensões são a altura e a largura da imagem original. Cada elemento dessa matriz é usado para acumular a soma dos quadrados dos produtos escalares entre os gradientes e os vetores de deslocamento. Para cada gradiente g i significativo, calcula-se o vetor de deslocamento d i para cada pixel da imagem. Calcula-se o produto escalar entre esses dois vetores (ambos normalizados) e, caso esse produto seja positivo, acumula-se o quadrado desse valor no elemento correspondente da matriz definida acima. Ao final das iterações, o elemento com maior valor acumulado corresponde ao centro do olho Pseudocódigo Algoritmo 2: Algoritmo das Somas de Produtos Escalares Entrada: Região de interesse Saída: Posição do centro do olho início fim Calcule os gradientes da região de interesse; Calcule as magnitudes dos gradientes; Calcule a magnitude mínima dos gradientes; Inicialize a matriz de somas com zeros; para cada ponto da região de interesse faça fim se magnitude do gradiente no ponto magnitude mínima então fim para cada ponto da região de interesse faça fim Calcule o vetor de deslocamento para o ponto; Calcule o produto escalar entre o vetor de deslocamento e o gradiente; se produto escalar > 0 então Some o quadrado do produto escalar ao elemento da matriz fim correspondente ao ponto; Retorne a posição do elemento da matriz com maior valor acumulado;
34 Minimização de estimativas incorretas Os autores do algoritmo sugerem dois métodos para minimizar os erros de estimativa da posição dos centros dos olhos: Aplicação de um peso w c para cada possível centro c, refletindo a maior probabilidade de ocorrência de um centro em uma área escura. Esse peso w c = I (c x,c y ) é a intensidade do pixel na posição (c x,c y ) da imagem I, obtida pela aplicação de um filtro de suavização (por exemplo, gaussiano) e uma operação de inversão à imagem original I. A equação do centro ótimo então se torna { } c N 1 = argmax w c (d T i g i ) 2. c N Aplicação de um limiar à função objetivo, baseado no valor máximo, e remoção i=1 de todos os valores restantes que estejam conectados a uma das bordas da imagem. A seguir, encontra-se o máximo dos valores que não foram removidos, e utiliza-se sua posição como estimativa do centro. Os autores sugerem um limiar de 90% do valor máximo.
35 34 3 TRABALHOS RELACIONADOS 3.1 DETECÇÃO DE FACES Viola e Jones (2004) desenvolveram um algoritmo para a detecção de faces, que é bastante utilizado como um primeiro passo para a localização dos centros dos olhos. Esse algoritmo, entretanto, tem uma séria limitação: as faces têm que estar alinhadas em relação aos eixos horizontal e vertical. Jesorsky, Kirchberg e Frischholz (2001) apresentaram uma abordagem para a detecção de faces usando a distância de Hausdorff. Também introduziram o conceito de erro relativo, ou erro normalizado, para a validação dos resultados. Lopar e Ribaric (2013) examinaram vários métodos e algoritmos para detecção de faces e de olhos, de modo a escolher os mais adequados para um sistema de monitoramento de fadiga em motoristas. 3.2 REDES NEURAIS CONVOLUTIVAS LeCun et al. (1999) desenvolveram as primeiras aplicações bem sucedidas das redes neurais convolutivas. A mais conhecida delas é a arquitetura LeNet, que foi usada para o reconhecimento de caracteres. Krizhevsky, Sutskever e Hinton (2017) desenvolveram o primeiro trabalho que popularizou a aplicação das redes neurais convolutivas à visão computacional: a rede AlexNet. Essa rede foi submetida ao ImageNet ILSVRC challenge em 2012, alcançando uma vantagem significativa sobre o segundo colocado. Sua arquitetura era semelhante à da rede LeNet, mas era maior e mais profunda. A rede neural convolutiva desenvolvida por Szegedy et al. (2014) foi a vencedora do ImageNet ILSVRC challenge, em Sua maior contribuição foi o módulo Inception, que reduziu drasticamente o número de parâmetros da rede. A CNN que obteve o segundo lugar no ImageNet ILSVRC challenge de 2014 foi a rede desenvolvida por Simonyan e Zisserman (2014), que ficou conhecida com VGGNet. Sua principal contribuição foi mostrar que a profundidade da rede é um componente crítico para um bom desempenho. Uma desvantagem dessa rede é que ela possui uma quantidade muito grande de parâmetros. A CNN proposta por Ozhiganov (2016) foi criada para a detecção de placas de
36 35 veículos. Essa rede se destina a resolver um problema de regressão, ao invés de classificação, podendo ser utilizada para uma estimativa das regiões de interesse onde se encontram os olhos. A solução de Nouri (2014) para o Facial Keypoint Detection Kaggle challenge emprega uma CNN para a detecção de 15 pontos-chave faciais. A rede apresentada por esse autor também se aplica a um problema de regressão, e pode ser adaptada sem grandes dificuldades para estimar as posições dos centros dos olhos. 3.3 LOCALIZAÇÃO DOS CENTROS DOS OLHOS Soelistio, Postma e Maes (2015) propuseram um método de localização dos centros dos olhos baseado na transformada de Hough, chamado Circle-based Eye Center Localization (CECL). Esse método utiliza características de cor e forma que distinguem a íris de outras estruturas faciais. Skodras e Fakotakis (2012) desenvolveram um método automático e não intrusivo para a localização precisa dos centros dos olhos em imagens de baixa resolução. O sistema proposto utiliza a transformada de simetria radial, um operador baseado em gradientes que considera a contribuição de cada pixel para a simetria dos pixels à sua volta. A proposta de Kothari e Mitchell (1996) para a localização dos centros dos olhos se baseia na utilização do campo de gradientes que se forma na fronteira entre a íris do olho e a esclera. Sua abordagem faz uso do conceito de caixas acumuladoras, e algumas heurísticas são empregadas para a seleção dos melhores pontos. Embora esse método tenha como objetivo localizar os olhos em uma imagem completa, seu algoritmo pode ser utilizado para o processamento das regiões de interesse obtidas pela aplicação da CNN ao banco de imagens. Da mesma forma que Kothari e Mitchell, Timm e Barth (2011) também baseiam sua proposta nos gradientes de imagem, mas usam somas de produtos escalares como algoritmo de cálculo. Outra diferença é que as regiões de interesse têm que ser previamente extraídas. Esse algoritmo também é adequado para processar as regiões de interesse estimadas pela CNN. 3.4 RECONHECIMENTO FACIAL Taigman et al. (2014) desenvolveram o algoritmo para reconhecimento facial Deep- Face, usando uma rede neural profunda com 9 camadas e mais de 120 milhões de parâmetros. Segundo os autores, foi obtida uma acurácia de 97,35%, valor bem próximo ao obtido por um ser humano.
37 36 4 METODOLOGIA Este capítulo descreve as etapas metodológicas e o modelo de análise quantitativa, bem como os recursos computacionais utilizados neste trabalho. 4.1 SELEÇÃO DO BANCO DE IMAGENS Para a escolha do banco de imagens foram levados em consideração alguns critérios básicos, tais como a quantidade de imagens, a quantidade de sujeitos, a variação de intensidade luminosa das imagens, a variação de escala das imagens, a variação de poses dos sujeitos, a nitidez das imagens e a presença de outros fatores, como o uso de óculos, olhos fechados, etc. Além disso, os bancos considerados estavam obrigatoriamente acompanhados das coordenadas dos centros dos olhos de cada imagem. Após uma pesquisa na literatura especializada, foram analisados três bancos: O banco BioID Face Database (BioID, 2017), de uso genérico; O banco usado no Facial Keypoint Detection Kaggle challenge (Kaggle Inc., 2017), uma competição visando a detecção de pontos-chave faciais usando redes neurais; O banco Yale Face Database (Yale University, 1997), também de uso genérico. O banco de imagens selecionado foi o BioID, por satisfazer ao maior número de critérios. O banco Kaggle, apesar de possuir um conjunto de treinamento bem maior (7033 imagens), não apresenta variações significativas de escala e poses em suas imagens, e a nitidez de muitas delas é bastante ruim. Já o Yale Face Database tem apenas 165 imagens, e portanto não é adequado para o treinamento de uma CNN. O banco BioID é composto de 1521 imagens em tons de cinza de 23 diferentes sujeitos, com dimensões de 384 por 286 pixels, e 1521 arquivos de texto com as coordenadas corretas de cada olho. O BioID é um banco bastante desafiador, pois suas imagens possuem uma grande variação de características. Como pontos negativos, a quantidade total de imagens é pequena em termos de redes neurais, que normalmente requerem um conjunto de treinamento com um mínimo de 1000 elementos, e a quantidade de imagens por sujeito tem uma grande variação. Alguns exemplos de imagens desse banco são mostrados na Figura 11. Foram separadas 71 imagens desse banco para o conjunto de teste, escolhidas de maneira aproximadamente proporcional ao número de ocorrências de cada sujeito. Restaram portanto 1450 ( ) imagens para treinamento e validação.
38 37 Figura 11 Algumas imagens do banco BioID. Para tornar viável o treinamento da CNN com esse banco, foi feita uma redução de escala das imagens para 50% do valor original, seguida de um recorte (crop) centralizado de 96 por 96 pixels. 30 imagens de treinamento e 2 imagens de teste foram descartadas, pois as coordenadas do centro de pelo menos um olho passaram a se localizar fora da imagem resultante das transformações. No final, o conjunto de treinamento foi reduzido a 1420 imagens, e o conjunto de teste passou a ter 69 imagens. Adicionalmente, para compensar o número relativamente pequeno de imagens para treinamento, fez-se um aumento artificial desse número, através de uma operação de inversão (flip) horizontal de cada imagem original. Com esse artifício, o número de imagens no conjunto de treinamento foi duplicado, passando a 2840 imagens. A Figura 12 apresenta algumas amostras desse banco modificado. 4.2 DEFINIÇÃO DA ARQUITETURA DA CNN Patterson e Gibson (2017) sugerem que se tome como ponto de partida uma CNN cuja arquitetura seja reconhecidamente bem sucedida, como a LeNet (LECUN et al., 1999), a AlexNet (KRIZHEVSKY; SUTSKEVER; HINTON, 2017), a VGGNet (SIMONYAN; ZISSERMAN, 2014) ou a Inception (SZEGEDY et al., 2014). A partir daí, pode-se então modificar as sequências de camadas e os hiperparâmetros, para adaptar a rede a um problema específico.
39 38 Figura 12 Algumas imagens do banco BioID modificado. No entanto, essas CNNs foram utilizadas para a classificação de imagens, e este trabalho requer uma CNN que resolva um problema de regressão, pois os dados de saída da rede são coordenadas de pontos. Em vista disso, foi feita uma pesquisa na literatura especializada, direcionada a duas diferentes abordagens: Usar a CNN para estimar as coordenadas das regiões de interesse no interior das quais se encontram os olhos. As saídas da rede seriam então 8 coordenadas (4 para cada região de interesse). A CNN proposta por Ozhiganov (2016), que foi utilizada para a detecção de placas de veículos, pareceu uma solução interessante. Usar a CNN para estimar as coordenadas aproximadas dos centros dos olhos (4 coordenadas no total), e usar essas estimativas para calcular as coordenadas das regiões de interesse. A CNN proposta por Nouri (2014), que a utilizou como uma solução para o Facial Keypoint Detection Kaggle challenge, pareceu adequada à abordagem. A rede proposta por Ozhiganov não apresentou resultados satisfatórios, pois os erros quadráticos médios de treinamento e validação assumiram um valor estável e relativamente alto já no começo do processo, significando que a rede parou de aprender. Já a rede proposta por Nouri mostrou-se adequada aos experimentos mas, devido às limitações de memória do hardware disponível, algumas modificações na arquitetura dessa rede tiveram que ser realizadas. Foram reduzidos o número de camadas, o número de filtros das camadas convolutivas e o número de neurônios das camadas completamente conectadas (à exceção da camada de saída, sempre com 4 neurônios). O resultado final dessas modificações está descrito nas Tabelas 1, 2 e 3, e a Figura 13 mostra uma representação esquemática da
40 39 arquitetura resultante. Nessa figura não são mostradas as camadas ReLU e de dropout, por não serem propriamente camadas. Tabela 1 Hiperparâmetros da CNN. Camada Número de filtros Tamanho dos filtros Stride Zero-padding CONV POOL CONV POOL Tabela 2 Dimensões das camadas de neurônios da CNN. Camada Dimensões INPUT CONV POOL CONV POOL FC3 500 FC4 4 Tabela 3 Número de parâmetros nas conexões da CNN. Conexão Número de parâmetros INPUT CONV1/POOL = 40 POOL1 CONV2/POOL = 80 POOL2 FC3 ( ) = FC3 FC = 2004 Todas Além dessas modificações na arquitetura, foi incluído um dropout de 50% na camada FC3. A estratégia de inicialização dos pesos (GlorotUniform), a função de ativação (ReLU), a função de erro (erro quadrático) e o método de otimização (Nesterov s momentum, com valor de 0,9 e taxa de aprendizado de 0,01) foram mantidos.
41 40 Figura 13 Arquitetura da CNN convolução K = 4 F = 3 S = 1 P = 0 pooling F = 2 S = 1 convolução K = 16 F = 2 S = 1 P = 0 pooling F = 2 S = TREINAMENTO E VALIDAÇÃO DA CNN Utilizando validação cruzada k-fold com k = 10, cada sub-amostra para validação ficou com 284 ( ) imagens, restando 2556 ( ) imagens para o treinamento. O número de épocas foi fixado em 2000, por apresentar um equilíbrio razoável entre precisão dos resultados e tempo de processamento. O tempo total de treinamento e validação com 10 folds foi de aproximadamente 19 horas. Além disso, para cada fold foi gerado um histórico dos erros em cada época. Para a análise qualitativa dos resultados do processo foram criados gráficos mostrando a variação do erro quadrático médio, dado pela Equação (2.1), ao longo das épocas de treinamento, para cada fold. A Figura 14 mostra os gráficos dos 4 primeiros folds do processo. Observa-se que os erros de treinamento decresceram de maneira uniforme e com muito pouca variação entre folds, indicando um treinamento satisfatório. Já os erros de validação não voltaram a crescer, significando que não houve sobre-ajuste. Para a análise quantitativa, a Tabela 4 mostra os erros (em pixels) de treinamento e validação para cada fold ao final das 2000 épocas, e também a média e o desvio padrão desses erros. Esses valores indicam que a arquitetura da CNN foi definida satisfatoriamente. Tabela 4 Erros de treinamento e validação (em pixels) para os 10 folds. Fase Média D.P. Treinamento 2,30 2,24 2,33 2,32 2,32 2,28 2,46 2,22 2,27 2,30 2,30 0,062 Validação 6,99 10,19 5,12 5,47 7,99 7,07 11,35 5,30 5,11 7,63 7,22 2,057
42 41 Figura 14 Variação do erro quadrático médio para os 4 primeiros folds do treinamento e validação da CNN. Finalmente, a CNN validada foi treinada com o conjunto completo de treinamento (1420 imagens), e foi gerado um arquivo de parâmetros para uso posterior. 4.4 AJUSTE DOS PARÂMETROS DOS ALGORITMOS Os pontos de maior contraste em uma imagem correspondem aos gradientes de maior magnitude. Para que apenas esses pontos sejam considerados, e também para obter um melhor desempenho, os gradientes cuja magnitude seja inferior a um determinado valor devem ser descartados. Portanto, o primeiro parâmetro a ser analisado foi o valor mínimo da magnitude dos gradientes. Para esse parâmetro, os autores do algoritmo das caixas acumuladoras sugerem a raiz do valor quadrático médio (ou RMS, do inglês root mean square), dada pela equação x1 2 x rms = + x x2 n, n
43 42 para um conjunto de n valores {x 1,x 2,...,x n }. Como esse parâmetro é calculado por uma equação, ele não é ajustável. Para o algoritmo das somas de produtos escalares, Hume (2012) sugere o limiar 0,3σ + µ, onde σ e µ são, respectivamente, o desvio padrão e a média das magnitudes de todos os gradientes da região de interesse. Novamente, o parâmetro é calculado por uma equação, e portanto não é ajustável. O último parâmetro a ser considerado foi o tamanho das caixas acumuladoras, usado no algoritmo correspondente. Deve-se ter em mente que caixas pequenas produzem resultados com maior acurácia, mas aumentam o custo computacional. Por outro lado, caixas grandes melhoram a performance do método, mas diminuem a acurácia dos resultados. Esse parâmetro é ajustável, e foi usado o valor de 5 pixels, sugerido pelos autores do algoritmo. 4.5 MODELO DE ANÁLISE QUANTITATIVA O modelo de análise quantitativa foi inteiramente baseado no erro normalizado, introduzido por Jesorsky, Kirchberg e Frischholz (2001) e dado pela equação e = 1 d max(e l,e r ), onde e l e e r são as distâncias euclidianas entre os centros estimados e os centros corretos dos olhos esquerdo e direito, respectivamente, e d é a distância euclidiana entre os centros corretos de cada olho, de acordo com a Figura 15. Nessa figura, C l e C r são os centros corretos de cada olho, e Ĉ l e Ĉ r são os centros estimados. Figura 15 Distâncias usadas no cálculo do erro normalizado. Ĉ r e r C r d e l C l Ĉ l olho direito olho esquerdo Numa face humana média a distância entre os cantos internos dos olhos é igual à largura do olho (JESORSKY; KIRCHBERG; FRISCHHOLZ, 2001). Portanto, um erro
44 43 normalizado com valor e 0,25 significa uma estimativa dentro de um raio igual à metade da largura do olho. Já um erro normalizado com valor e 0,10 corresponde a uma estimativa dentro da íris, e um erro com valor e 0,05 corresponde a uma estimativa dentro da pupila. A Figura 16 esquematiza essas faixas do erro normalizado. Figura 16 Faixas do erro normalizado. e 0,25 e 0,05 e 0,10 Para possibilitar a comparação com os resultados de outros artigos publicados que não usam o erro normalizado de forma padronizada, Timm e Barth (2011) sugerem a inclusão dos erros e better = 1 d min(e l,e r ) e e avg = 1 2d (e l + e r ), que correspondem, respectivamente, ao erro normalizado para o melhor olho e à média dos erros para os dois olhos. A acurácia para uma determinada faixa do erro normalizado é então dada pela razão entre o número de imagens para as quais as estimativas dos centros dos olhos estão dentro dessa faixa e o número total de imagens processadas. 4.6 APLICAÇÃO DA CNN AO BANCO DE IMAGENS O conjunto de teste com 69 imagens do banco BioID modificado foi submetido à CNN treinada e validada, gerando as estimativas para as coordenadas dos centros dos dois olhos em cada imagem. Essas coordenadas foram então comparadas com os valores esperados, usando a faixa e 0,25 para o erro normalizado, pois a precisão dessa faixa é suficiente para a localização aproximada dos olhos.
45 44 Em seguida, as coordenadas estimadas pela CNN foram utilizadas para o cálculo de duas regiões de interesse retangulares, que constituem os dados de saída desta etapa. Cada retângulo tem como centroide a posição estimada para cada olho. Para a largura foi usado o valor de 90% da distância euclidiana entre os centros estimados, e para a altura usou-se 70% dessa distância. Esses valores foram obtidos empiricamente, e estão esquematizados na Figura 17. Nessa figura, C l e C r são os centros corretos de cada olho, Ĉ l e Ĉ r são os centros estimados pela CNN (correspondendo aos centroides dos retângulos) e d é a distância entre esses centros estimados. Figura 17 Regiões de interesse retangulares calculadas usando as predições da CNN. 0,9d 0,9d 0,7d Ĉ r d Ĉ l 0,7d C r olho direito C l olho esquerdo 4.7 APLICAÇÃO DOS ALGORITMOS ÀS PREDIÇÕES DA CNN Para cada uma das 69 imagens do conjunto de teste do banco BioID modificado, as duas regiões de interesse calculadas com base nas predições da CNN foram submetidas ao algoritmo das caixas acumuladoras e ao algoritmo das somas de produtos escalares, e as coordenadas computadas foram comparadas com os valores esperados. Desta vez, foi usada a faixa e 0,05 para o erro normalizado, pois a precisão desejada deveria estar necessariamente no nível de detecção da pupila. 4.8 COMPARAÇÃO COM O ESTADO DA ARTE Lopar e Ribaric (2013) consideraram o método de Timm e Barth (2011) como o método de maior acurácia para a detecção dos olhos. Com base nessa referência, esse método
46 45 foi usado para a comparação com os resultados deste trabalho. O método de Timm e Barth pode ser dividido em três fases principais: A detecção da face, usando o algoritmo Viola-Jones; A extração das regiões de interesse aproximadas, usando relações antropométricas; A localização precisa dos centros dos olhos, usando o algoritmo das somas de produtos escalares. Para a implementação de cada uma dessas fases foi seguido à risca o código-fonte desenvolvido por Hume (2012), pois os autores omitiram alguns detalhes importantes. O método foi aplicado a três conjuntos de imagens do banco BioID, a saber: Todas as 1521 imagens do banco. Desse total, 49 imagens não tiveram nenhuma face detectada pelo algoritmo Viola-Jones, 40 tiveram 2 faces detectadas e uma imagem teve 3 faces detectadas. Um conjunto de 1472 imagens, resultante da exclusão das 49 imagens sem faces detectadas. Além disso, as imagens desse conjunto com 2 ou 3 faces detectadas foram submetidas a uma heurística simples, para selecionar a única face correta. O objetivo da criação desse conjunto foi melhorar os resultados do método de Timm e Barth, para que ficassem mais próximos dos resultados publicados por esses autores. As 69 imagens usadas como conjunto de teste para as predições da CNN e para a aplicação dos algoritmos a essas predições. Para a geração dos resultados deste trabalho usados na comparação com o estado da arte, optou-se pelo método que aplica o algoritmo das somas de produtos escalares às predições da CNN, pois os valores de acurácia obtidos por esse método foram muito superiores àqueles obtidos pela aplicação do algoritmo das caixas acumuladoras às mesmas predições (ver Tabelas 6 e 7). Como este método não emprega detecção de faces, ao invés do conjunto de 1472 imagens usado para o estado da arte foi formado um conjunto com as 1489 imagens que não tiveram nenhum olho excluído após a operação de redução e corte utilizada para viabilizar o treinamento da CNN. Apesar de ser um critério de seleção diferente, a quantidade de imagens para ambos os conjuntos foi aproximadamente a mesma. Os conjuntos de 1521 e 69 imagens foram mantidos.
47 RECURSOS COMPUTACIONAIS Componentes de hardware CPU Intel Core 2 Duo de 3 GHz; 4 GB de memória RAM; GPU Nvidia GeForce GTS 450 com 1 GB de memória Componentes de software Linguagem de programação Python, versão 3.6.4; Biblioteca NumPy, versão , para computação numérica; Biblioteca Matplotlib, versão 2.0.0, para geração de gráficos; Biblioteca Theano, versão 0.9.0, para compilação de expressões matemáticas; Biblioteca Lasagne, versão 0.1, para construção e treinamento de redes neurais artificiais profundas; Biblioteca OpenCV, versão 3.2.0, para visão computacional; Linguagem de programação C++, versão 7.2.0; Plataforma CUDA, versão , para processamento acelerado em GPUs Software desenvolvido pelo autor Programa em Python para leitura dos dados dos bancos de imagem; Programa em Python para definição da arquitetura da CNN; Programa em Python para treinamento e validação da CNN; Programa em Python para aplicação da CNN às imagens de teste; Programa em C++ para cálculo das regiões de interesse; Implementação em C++ do algoritmo das caixas acumuladoras; Implementação em C++ do algoritmo das somas de produtos escalares; Programas auxiliares em Python para geração de gráficos.
48 47 5 RESULTADOS 5.1 APLICAÇÃO DA CNN AO BANCO DE IMAGENS A Tabela 5 mostra os resultados quantitativos obtidos pela aplicação da CNN ao banco de imagens BioID. Os valores relevantes são os da coluna correspondente a e 0,25, pois é suficiente que as coordenadas estimadas pela CNN sejam apenas aproximadas, já que o cálculo mais preciso é realizado pelos algoritmos. O valor de 92,8% para o pior olho significa que, das 69 imagens processadas, apenas 5 delas tiveram estimativas a uma distância maior que a metade da largura média de um olho (e portanto fora do maior círculo da Figura 16), indicando uma taxa de acerto razoavelmente boa. A Figura 18 mostra um gráfico da acurácia em função do erro normalizado. Tabela 5 Acurácia das predições da CNN para as cinco faixas do erro normalizado. Olho e 0,05 e 0,10 e 0,15 e 0,20 e 0,25 Pior olho 13,0% 49,3% 76,8% 89,9% 92,8% Média dos olhos 20,3% 63,8% 84,1% 89,9% 94,2% Melhor olho 33,3% 79,7% 87,0% 91,3% 95,7% Figura 18 Acurácia em função do erro normalizado para as predições da CNN.
49 48 A Figura 19 mostra 25 pares de regiões de interesse estimadas pela CNN. As 5 imagens que tiveram estimativas acima da faixa e 0,25 estão marcadas com um retângulo vermelho. Figura 19 Regiões de interesse preditas pela CNN com o banco BioID. 5.2 APLICAÇÃO DO ALGORITMO DAS CAIXAS ACUMULADORAS Os resultados quantitativos obtidos pela aplicação do algoritmo das caixas acumuladoras às predições da CNN são mostrados na Tabela 6. Os valores relevantes são os da coluna correspondente a e 0,05, pois é desejável que as coordenadas calculadas pelo algoritmo tenham grande precisão. O valor dessa coluna para o pior olho foi de 26,1%, significando que apenas 18 imagens de um total de 69 tiveram estimativas dentro da pupila (ver Figura 16). Já o valor de 72,5% para a faixa e 0,10 indica que 50 das 69 imagens tiveram estimativas dentro da íris, que seria aceitável caso não se necessitasse de grande precisão. A Figura 20 mostra um gráfico da acurácia em função do erro normalizado. Tabela 6 Acurácia do algoritmo das caixas acumuladoras para as cinco faixas do erro normalizado. Olho e 0,05 e 0,10 e 0,15 e 0,20 e 0,25 Pior olho 26,1% 72,5% 92,8% 95,7% 95,7% Média dos olhos 50,7% 85,5% 94,2% 95,7% 95,7% Melhor olho 73,9% 92,8% 98,6% 100% 100%
50 49 Figura 20 Acurácia em função do erro normalizado para o algoritmo das caixas acumuladoras. A Figura 21 mostra os resultados qualitativos da aplicação do algoritmo das caixas acumuladoras a algumas imagens do banco BioID. As posições dos centros dos olhos detectadas pelo algoritmo estão marcadas com cruzes vermelhas. Na fileira superior são mostradas cinco das estimativas mais precisas e, na fileira inferior, cinco das menos precisas. Figura 21 Centros dos olhos detectados pelo algoritmo das caixas acumuladoras.
51 APLICAÇÃO DO ALGORITMO DAS SOMAS DE PRODUTOS ESCALARES Os resultados quantitativos obtidos pela aplicação do algoritmo das somas de produtos escalares às predições da CNN são mostrados na Tabela 7. O valor de 72,5% para o pior olho na coluna e 0,05 significa que, das 69 imagens processadas, 19 delas tiveram estimativas fora da pupila (ver Figura 16). A Figura 22 mostra um gráfico da acurácia em função do erro normalizado. Tabela 7 Acurácia do algoritmo das somas de produtos escalares para as cinco faixas do erro normalizado. Olho e 0,05 e 0,10 e 0,15 e 0,20 e 0,25 Pior olho 72,5% 91,3% 91,3% 94,2% 98,6% Média dos olhos 85,5% 92,8% 98,6% 98,6% 98,6% Melhor olho 97,1% 98,6% 98,6% 98,6% 98,6% Figura 22 Acurácia em função do erro normalizado para o algoritmo das somas de produtos escalares. A Figura 23 mostra os resultados qualitativos da aplicação do algoritmo das somas de produtos escalares a algumas imagens do banco BioID. As marcações dos centros dos olhos e o número e a disposição das imagens são os mesmos que os da Figura 21.
52 51 Figura 23 Centros dos olhos detectados pelo algoritmo das somas de produtos escalares. 5.4 COMPARAÇÃO ENTRE OS ALGORITMOS Para uma comparação dos resultados da aplicação dos dois algoritmos às predições da CNN, a Figura 24 mostra um gráfico da acurácia em função do erro normalizado para esses algoritmos, somente para o pior olho. Além disso, para se ter uma ideia de como a aplicação dos algoritmos melhorou as estimativas da CNN, também são mostradas as acurácias por ela obtidas. Figura 24 Acurácia em função do erro normalizado para a CNN e os algoritmos.
Redes Neurais Artificiais - Introdução. Visão Computacional
Redes Neurais Artificiais - Introdução Visão Computacional Inspiração 2 Inspiração 3 Inspiração Atividade seletivanas conexões Soma os impulsos e passa a diante 4 Inspiração As conexões entre os dendritos
Leia maisRedes Neurais Convolucionais
André Gustavo Hochuli Orientador: Prof. Dr. Luiz Eduardo Soares de Oliveira Programa de Pós-Graduação em Informática Departamento de Informática UFPR http://www.inf.ufpr.br/aghochuli/caffe/ Redes Neurais
Leia maisRedes Neurais Convolucionais
André Gustavo Hochuli Orientadores: Dr. Luiz E. S. Oliveira/Dr. Alceu Britto Programa de Pós-Graduação em Informática Departamento de Informática UFPR Neurônio Artificial Redes Neurais - Vetor de Caracteristícas
Leia maisJAI 6 - Deep Learning Teoria e Prática
JAI 6 - Deep Learning Teoria e Prática Esteban Clua e Cristina Nader Vasconcelos Universidade Federal Fluminense Fundamentos Computação baseada em modelos crisnv@ic.uff.br 2 Computação baseada em aprendizado
Leia mais3 Redes Neurais Artificiais
3 Redes Neurais Artificiais 3.1. Introdução A capacidade de implementar computacionalmente versões simplificadas de neurônios biológicos deu origem a uma subespecialidade da inteligência artificial, conhecida
Leia maisTÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais
TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais ricardo.kerschbaumer@ifc.edu.br http://professor.luzerna.ifc.edu.br/ricardo-kerschbaumer/ Introdução O Cérebro humano Mais fascinante processador
Leia maisRedes Neurais Artificiais
Redes Neurais Artificiais Marcelo K. Albertini 24 de Julho de 2014 2/34 Conteúdo Perceptron Gradiente descendente Redes multicamadas Retropropagação de erros 3/34 Modelos conexionistas Humanos Tempo de
Leia maisRedes Neurais Artificiais
Redes Neurais Artificiais Fabrício Olivetti de França Universidade Federal do ABC Tópicos 1. Redes Neurais Biológicas 2. Neurônio Artificial 3. Rede Neural Artificial 4. Keras 1 Redes Neurais Biológicas
Leia maisUNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica
REDES NEURAIS ARTIFICIAIS PERCEPTRON MULTICAMADAS Prof. Dr. André A. P. Biscaro 1º Semestre de 2018 Arquitetura Redes Perceptron de Múltiplas Camadas (PMC), também conhecidas como redes MLP (Multiple Layer
Leia maisIntrodução às Redes Neurais Artificiais
Introdução às Redes Neurais Artificiais Perceptrons de Múltiplas Camadas I Prof. João Marcos Meirelles da Silva www.professores.uff.br/jmarcos Departamento de Engenharia de Telecomunicações Escola de Engenharia
Leia maisRedes Neurais e Sistemas Fuzzy
Redes Neurais e Sistemas Fuzzy O ADALINE e o algoritmo LMS O ADALINE No contexto de classificação, o ADALINE [B. Widrow 1960] pode ser visto como um perceptron com algoritmo de treinamento baseado em minimização
Leia maisRedes Neurais: MLP. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Redes Neurais: MLP DCA0121 Inteligência Artificial Aplicada Heitor Medeiros 1 Tópicos Redes diretas de múltiplas
Leia maisProcessamento digital de imagens
Processamento digital de imagens Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 6 de outubro de 2016 Segmentação de imagens A segmentação
Leia maisVERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION - VGG
Exemplo de Implementação - 16 VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION - VGG Edjalma Queiroz da Silva Programa de pós-graduação em Ciências da Computação Mestrado e Doutorado
Leia maisTópicos Especiais: Inteligência Artificial REDES NEURAIS
Tópicos Especiais: Inteligência Artificial REDES NEURAIS Material baseado e adaptado do Cap. 20 do Livro Inteligência Artificial de Russell & Norvig Bibliografia Inteligência Artificial Russell & Norvig
Leia maisProcessamento Digital de Imagens
Ciência da Computação Processamento Digital de Imagens Tópicos Detecção de Pontos Isolados Detecção de Linhas Prof. Sergio Ribeiro 2 Operações lógicas e aritméticas orientadas a vizinhança utilizam o conceito
Leia maisRedes Neurais Artificial. Prática. Inteligência Artificial
Redes Neurais Artificial Prática Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Introdução a MLP 2. Base de dados e Pré-Processamento 3. Prática MLP - Introdução Redes
Leia maisSEMINÁRIO DOS ARTIGOS:
SEMINÁRIO DOS ARTIGOS: Text Detection and Character Recognition in Scene Images with Unsupervised Feature Learning End-to-End Text Recognition with Convolutional Neural Networks Fernanda Maria Sirlene
Leia maisRedes Neurais Artificial. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto
Redes Neurais Artificial Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Histórico 3. Conceitos Básicos 4. Aprendizado em RNA 5. Exemplo de Aprendizado com
Leia maisUNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica
REDES NEURAIS ARTIFICIAIS REDE ADALINE e REGRA DELTA Prof. Dr. André A. P. Biscaro 2º Semestre de 2017 Aspectos históricos O ADALINE foi idealizado por Widrow & Hoff em 1960. Sua principal aplicação estava
Leia mais3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução
3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução Como já mencionado na seção 1.1, as SVMs geram, da mesma forma que redes neurais (RN), um "modelo caixa preta" de
Leia maisRede RBF (Radial Basis Function)
Rede RBF (Radial Basis Function) André Tavares da Silva andre.silva@udesc.br Roteiro Introdução à rede neural artificial RBF Teorema de Cover da separabilidade de padrões RBF x MLP RBF Função de ativação
Leia maisClassificação Linear. André Tavares da Silva.
Classificação Linear André Tavares da Silva andre.silva@udesc.br Roteiro Introduzir os o conceito de classificação linear. LDA (Linear Discriminant Analysis) Funções Discriminantes Lineares Perceptron
Leia mais3 Técnica Baseada em Treinamento e Cascata de Classificadores
3 Técnica Baseada em Treinamento e Cascata de Classificadores 3.1. Introdução A utilização de algoritmos para a extração de características de objetos e a geração de classificadores em cascata capazes
Leia maisINF 1771 Inteligência Artificial
INF 1771 Inteligência Artificial Aula 22 Redes Neurais Edirlei Soares de Lima Formas de Aprendizado Aprendizado Supervisionado Árvores de decisão. K-Nearest Neighbor (KNN). Support
Leia maisserotonina (humor) dopamina (Parkinson) serotonina (humor) dopamina (Parkinson) Prozac inibe a recaptação da serotonina
Redes Neurais O modelo biológico O cérebro humano possui cerca 100 bilhões de neurônios O neurônio é composto por um corpo celular chamado soma, ramificações chamadas dendritos (que recebem as entradas)
Leia maisRedes neurais artificiais
Redes neurais artificiais Conceitos em redes neuronais Redes neuronais artificiais (RNA): uma metáfora cerebral para processamento de informações Computação neuronal Muitos usos de RNA para Reconhecimento
Leia maisDescritores de Imagens
Descritores de Imagens André Tavares da Silva PPGCA/UDESC Outubro de 2017 André Tavares da Silva (PPGCA/UDESC) Descritores de Imagens Outubro de 2017 1 / 18 Descritores Locais e Frameworks SIFT SURF Viola-Jones
Leia maisO uso de uma Rede Neural Artificial Supervisionada para obtenção do fator de carga de um alimentador.
O uso de uma Rede Neural Artificial Supervisionada para obtenção do fator de carga de um alimentador. Resumo: Lucas da Silva Assis Universidade Federal de Goiás lucasilvassis@gmail.com Esse trabalho apresenta
Leia maisUNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica
REDES DE FUNÇÃO DE BASE RADIAL - RBF Prof. Dr. André A. P. Biscaro 1º Semestre de 2017 Funções de Base Global Funções de Base Global são usadas pelas redes BP. Estas funções são definidas como funções
Leia maisFundamentos de Inteligência Artificial [5COP099]
Fundamentos de Inteligência Artificial [5COP099] Dr. Sylvio Barbon Junior Departamento de Computação - UEL Disciplina Anual Assunto Aula 16 Redes Neurais Artificiais (MLP) 2 de 24 (MLP) Sumário Introdução
Leia maisMulti-Layer. Perceptrons. Algoritmos de Aprendizado. Perceptrons. Perceptrons
Algoritmos de Aprendizado Regra de Hebb Perceptron Delta Rule (Least Mean Square) Back Propagation Multi-Layer Perceptrons Redes de apenas uma camada só representam funções linearmente separáveis Redes
Leia maisMulti-Layer. Perceptrons. Algoritmos de Aprendizado. Perceptrons. Perceptrons
Algoritmos de Aprendizado Regra de Hebb Perceptron Delta Rule (Least Mean Square) Multi-Layer Perceptrons (Back Propagation) Radial Basis Functions (RBFs) Competitive Learning Hopfield Multi-Layer Perceptrons
Leia mais2. Redes Neurais Artificiais
Computação Bioinspirada - 5955010-1 2. Redes Neurais Artificiais Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 2.3. Perceptron Multicamadas - MLP 2.3.1. Introdução ao MLP 2.3.2. Treinamento
Leia maisInteligência Artificial Redes Neurais
Inteligência Artificial Jarley P. Nóbrega, Dr. Faculdade Nova Roma Bacharelado em Ciência da Computação jpn@jarley.com Semestre 2018.2 Jarley P. Nóbrega, Dr. (Nova Roma) Inteligência Artificial Semestre
Leia maisAprendizagem de Máquina
Aprendizagem de Máquina Alessandro L. Koerich Programa de Pós-Graduação em Informática Pontifícia Universidade Católica do Paraná (PUCPR) Redes Neurais Artificiais Plano de Aula Introdução Motivação Biológica
Leia maisInteligência Artificial. IA Conexionista: Perceptron de Múltiplas Camadas Mapas Auto-Organizáveis. Renan Rosado de Almeida
Inteligência Artificial IA Conexionista: Redes Neurais Artificiais Perceptron de Múltiplas Camadas Mapas Auto-Organizáveis Renan Rosado de Almeida rralmeida@inf.ufrgs.br Perceptron de Múltiplas Camadas
Leia maisAprendizado de Máquinas. Multi-Layer Perceptron (MLP)
Universidade Federal do Paraná (UFPR) Departamento de Informática (DInf) Aprendizado de Máquinas Multi-Layer Perceptron (MLP) David Menotti, Ph.D. web.inf.ufpr.br/menotti Redes Neuronais Cérebro humano.
Leia mais2. Redes Neurais Artificiais
Computação Bioinspirada - 5955010-1 2. Redes Neurais Artificiais Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 2.3. Perceptron Multicamadas - MLP 2.3.1. Introdução ao MLP 2.3.2. Treinamento
Leia mais2. Redes Neurais Artificiais
Computação Bioinspirada - 5955010-1 2. Redes Neurais Artificiais Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 2.6. Deep Learning 2.6.1. O Problema da Extração de Características
Leia maisReconhecimento de Padrões/Objetos
Reconhecimento de Padrões/Objetos André Tavares da Silva andre.silva@udesc.br Capítulo 2 de Gonzales Classificação Linear Introdução Para utilizar uma função discriminante linear (Linear Discriminant Function)
Leia mais4 Redes Neurais Artificiais
4 Redes Neurais Artificiais Inteligência computacional pode ser definida como um conjunto de modelos, algoritmos, técnicas, ferramentas e aplicações em sistemas computadorizados que emulem características
Leia mais2. Redes Neurais Artificiais
Computação Bioinspirada - 5955010-1 2. Redes Neurais Artificiais Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 2.4. Outras Redes Neurais Artificiais 2.4.1. Redes RBF 2.4.2. Mapas
Leia maisRedes Neurais. A Rede RBF. Redes RBF: Função de Base Radial. Prof. Paulo Martins Engel. Regressão não paramétrica. Redes RBF: Radial-Basis Functions
Redes RBF: Função de Base Radial Redes Neurais A Rede RBF O LP é baseado em unidades que calculam uma função não-linear do produto escalar do vetor de entrada e um vetor de peso. A rede RBF pertence a
Leia maisRedes Perceptron e Multilayer Perceptron aplicadas a base de dados IRIS
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Redes Perceptron e Multilayer Perceptron aplicadas a base de dados IRIS Aluno: Fabricio Aparecido Breve Prof.: Dr. André Ponce
Leia maisConsiderações de Desempenho
Back Propagation Considerações de Desempenho Dicas para o BP O uso da função de ativação simétrica geralmente acelera o treinamento TANH +1 logistic linear 0 tanh -1-4 +4 1 Dicas para o BP Os pesos devem
Leia maisParadigmas de Aprendizagem
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Paradigmas de Aprendizagem Redes Neurais Artificiais Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com
Leia maisRegra de Hebb Perceptron Delta Rule (Least Mean Square) Multi-Layer Perceptrons (Back Propagation) Hopfield Competitive Learning Radial Basis Function
Algoritmos de Aprendizado Regra de Hebb Perceptron Delta Rule (Least Mean Square) Multi-Layer Perceptrons (Back Propagation) Hopfield Competitive Learning Radial Basis Function Multi-Layer Perceptrons
Leia maisétodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA UNIVERSIDADE DE JOÃO DEL-REI PRÓ-REITORIA DE PESQUISA CENTRO
Leia maisUNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica
PERCEPTRON MULTICAMADAS: TÉCNICAS DE VALIDAÇÃO Prof. Dr. André A. P. Biscaro 2º Semestre de 2016 UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT Aspectos de seleção topológica de redes PMC A especificação
Leia maisRedes Neurais MLP: Exemplos e Características
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Redes Neurais MLP: Exemplos e Características DCA0121 Inteligência Artificial Aplicada Heitor Medeiros 1
Leia maisUnidade 08 MATLAB Neural Network Toolkit
Unidade 08 MATLAB Neural Network Toolkit 1. Introdução Uma rede neural artificial (NN daqui em diante) é um modelo matemático que consiste de neurônios interconectados que imitam, em uma escala menor,
Leia maisBack Propagation. Dicas para o BP
Back Propagation Considerações de Desempenho Dicas para o BP O uso da função de ativação simétrica geralmente acelera o treinamento TANH +1 logistic linear 0 tanh -1-4 +4 11 Dicas para o BP Os pesos devem
Leia maisPMR2560 Visão Computacional Detecção de bordas. Prof. Eduardo L. L. Cabral
PMR56 Visão Computacional Detecção de bordas Prof. Eduardo L. L. Cabral Objetivos Processamento de imagens: Características; Detecção de bordas. Características Tipos de características: Bordas; Cantos;
Leia maisAprendizado de Máquina (Machine Learning)
Ciência da Computação Aprendizado de Máquina (Machine Learning) Aula 03 Aprendizado Supervisionado / : Modelo MCP e Perceptron Max Pereira Neurônio Booleano de McCulloch- Pitts (Modelo MCP) Proposto em
Leia mais2 Reconhecimento Facial
2 Reconhecimento Facial Em termos gerais, o reconhecimento facial é o processo pelo qual se mede o grau de similaridade entre duas imagens faciais com o proposito de identificar a um indivíduo ou de verificar
Leia maisAprendizagem de Máquina
Aprendizagem de Máquina Alessandro L. Koerich Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR) Redes Neurais Artificiais Plano de Aula Introdução Motivação Biológica
Leia maisp TPP = (6.1) e a rajada de perda de pacote é medida pela Comprimento Médio da Rajada (CMR ) que é dada por
6 Perdas de Pacotes O problema de perda de pacotes em rajadas nas redes IP e redes móveis é um dos fatores mais importantes a serem considerados na análise de sistemas de reconhecimento de voz distribuídos.
Leia maisUniversidade Federal do Rio de Janeiro - IM/DCC & NCE
Universidade Federal do Rio de Janeiro - IM/DCC & NCE Processamento de Imagens Segmentação Antonio G. Thomé thome@nce.ufrj.br Sala AEP/133 Conceituação Segmentação é uma tarefa básica no processo de análise
Leia maisAprendizado de Máquina
Aprendizado de Máquina Principais tópicos Aprendizado profundo André C P L F de Carvalho Posdoutorando: Isvani Frias-Blanco ICMC-USP Introdução Redes profundas Aprendizado profundo Redes autodecodificadoras
Leia maisGoogLeNet - Going Deeper with Convolutions
- Going Deeper with Convolutions Heyde Francielle do Carmo França Prof. Dr. Anderson Soares Instituto de Informática Universidade Federal de Goiás 02 de Dezembro de 2016 1 / 35 Sumário I 1 2 3 2 / 35 3
Leia maisUNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica
REDES NEURAIS ARTIFICIAIS MÁQUINA DE VETOR DE SUPORTE (SUPPORT VECTOR MACHINES) Prof. Dr. André A. P. Biscaro 1º Semestre de 2017 Introdução Poderosa metodologia para resolver problemas de aprendizagem
Leia maisRegra de Oja. Para taxa de aprendizagem pequena, Oja aproximou. pesos para criar uma forma útil da aprendizagem
Regra de Oja A regra de Hebb necessita da normalização dos pesos para criar uma forma útil da aprendizagem i i i i i i n x n y n w n x n y n w n w 2 1 JDSS-LAC/INPE Para taxa de aprendizagem pequena, Oja
Leia maisAprendizagem de Máquina. Redes Neurais Artificiais (RNAs)
Aprendizagem de Máquina Redes Neurais Artificiais (RNAs) Plano de Aula Introdução Motivação Biológica Perceptron Superfície de Decisão Descida do Gradiente Redes Multicamadas (Multilayer) Retropropagação
Leia mais3 Aprendizado por reforço
3 Aprendizado por reforço Aprendizado por reforço é um ramo estudado em estatística, psicologia, neurociência e ciência da computação. Atraiu o interesse de pesquisadores ligados a aprendizado de máquina
Leia mais5 Estudo de Caso e Resultados
5 Estudo de Caso e Resultados 5.1. Introdução Finalizado o desenvolvimento da ferramenta, é indispensável testar suas funcionalidades e a eficácia da aplicação conjunta dos seus módulos de geração de experimentos
Leia maisSeleção de Atributos 1
Seleção de Atributos 1 Tópicos Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Seleção de atributos antes do aprendizado Benefícios Abordagens automáticas
Leia maisRedes Convolucionais Aplicadas em Visão Computacional
Redes Convolucionais Aplicadas em Visão Computacional Marcos José Canêjo Estevão de Azevêdo mjcea@cin.ufpe.br Sumário História Evolução Tipos Aplicações Considerações Finais 2 História Surgiram em 1980
Leia maisReconhecimento de Faces Utilizando Redes Neurais MLP
Reconhecimento de Faces Utilizando Redes Neurais MLP Autor: Adilmar Coelho Dantas 1, Orientador: Márcia Aparecida Fernandes 1 1 Programa de Pós-Graduação em Ciência da Computação Universidade Federal do
Leia maisFiltros espaciais. Processamento e Recuperação de Imagens Médicas. Prof. Luiz Otavio Murta Jr. Depto. De Computação e Matemática (FFCLRP/USP)
Processamento e Recuperação de Imagens Médicas Prof. Luiz Otavio Murta Jr. Depto. De Computação e Matemática (FFCLRP/USP) 1 Propriedades Operadores de suavização os elementos da máscara são positivos e
Leia maisProcessamento de Imagem. Filtragem no Domínio Espacial Professora Sheila Cáceres
Processamento de Imagem Filtragem no Domínio Espacial Professora Sheila Cáceres Filtragem A filtragem de imagens pode ser realizada no domínio do espaço e da frequência Operadores de filtragem são classificados
Leia maisIntrodução à Redes Neurais. Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana
Introdução à Redes Neurais Artificiais Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana 2 Introdução Redes Neurais Artificiais (RNAs)
Leia maisClassificadores Lineares
Universidade Federal do Paraná (UFPR) Bacharelado em Informática Biomédica Classificadores Lineares David Menotti www.inf.ufpr.br/menotti/ci171-182 Hoje Funções Discriminantes Lineares Perceptron Support
Leia mais3 Estimação e Compensação de movimento na codificação de vídeo
Estimação e Compensação de movimento na codificação de vídeo 36 3 Estimação e Compensação de movimento na codificação de vídeo O objetivo do modelo temporal (que engloba as fases de estimação e compensação
Leia maisSUPPORT VECTOR MACHINE - SVM
SUPPORT VECTOR MACHINE - SVM Definição 2 Máquinas de Vetores Suporte (Support Vector Machines - SVMs) Proposto em 79 por Vladimir Vapnik Um dos mais importantes acontecimentos na área de reconhecimento
Leia maisDeterminação de vícios refrativos oculares utilizando Support Vector Machines
Determinação de vícios refrativos oculares utilizando Support Vector Machines Giampaolo Luiz Libralão, André Ponce de Leon F. de Carvalho, Antonio Valerio Netto, Maria Cristina Ferreira de Oliveira Instituto
Leia maisREDES NEURAIS ARTIFICIAIS
REDES NEURAIS ARTIFICIAIS REDES NEURAIS ARTIFICIAIS O QUE É UMA REDE NEURAL NEURÔNIOS BIOLÓGICOS CÉREBRO HUMANO E CAPACIDADE DE GENERALIZAÇÃO. Modelo McCulloch e Pitts FUNÇÕES DE ATIVAÇÃO APRENDIZADO APRENDIZADO
Leia mais3 REDES CLÁSSICAS PERCEPTRON E ADALINE
w b Professor José Gomes de Carvalho Jr. 3 REDES CLÁSSICAS PERCEPTRON E ADALINE 3.-Redes com funções de ativação de limiar Uma rede simples de uma camada, consiste em um ou mais neurônios de saída j conectados
Leia maisRoberto Lotufo Big Data Brasil São Paulo, 23 de junho de 2018
Roberto Lotufo roberto@neuralmind.ai Big Data Brasil São Paulo, 23 de junho de 2018 Classificação dedo falso/dedo vivo Desempenho atual: 200ms Intel I5 99% acurácia LivDet 2015 - Fingerprint Liveness Competition
Leia maisMultiple Layer Perceptron
Universidade Federal do Paraná (UFPR) Bacharelado em Informática Biomédica Multiple Layer Perceptron David Menotti www.inf.ufpr.br/menotti/ci171-182 Hoje Multiple Layer Perceptron (MLP) Backpropagation
Leia maisUniversidade Federal do Rio de Janeiro. Flávio Henrique Schuindt da Silva. Estimativa de Fluxo Ótico com o método de Lukas-Kanade
Universidade Federal do Rio de Janeiro Programa de Engenharia de Sistemas e Computação Introdução ao Processamento de Imagens Flávio Henrique Schuindt da Silva Estimativa de Fluxo Ótico com o método de
Leia maisRedes Neurais: RBF. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Redes Neurais: RBF DCA0121 Inteligência Artificial Aplicada Heitor Medeiros 1 Tópicos Redes de Funções de
Leia mais5 RNA para Diagnóstico de Falhas em Turbinas a Gás
5 RNA para Diagnóstico de Falhas em Turbinas a Gás 5.1. Introdução Neste capítulo, a aplicação de RNAs para diagnosticar as falhas no caminho do gás de turbinas a gás foi investigada. As redes neurais
Leia maisMouseCam: aplicação de controle do mouse via câmera
MouseCam: aplicação de controle do mouse via câmera Introdução ao Processamento de Imagens COS756 PESC/COPPE/UFRJ 2013 1 Renan Garrot garrot@cos.ufrj.br 1. Introdução O processo de tracking por vídeo consiste
Leia maisReconhecimento de Gestos
Reconhecimento de Gestos Henrique Augusto Richter Tópicos em Visão Computacional Universidade Federal do Paraná Sumário Introdução Utilização Problemas Trabalhos Artigo 1 Artigo 2 Project Soli Introdução
Leia maisRedes Neurais. Prof. Aurora Pozo. Obs: slides baseados em Prof. Marcílio Souto e Prof. Marley Vellasco
Redes Neurais Prof. Aurora Pozo Obs: slides baseados em Prof. Marcílio Souto e Prof. Marley Vellasco CONTEÚDO Introdução Motivação, Objetivo, Definição, Características Básicas e Histórico Conceitos Básicos
Leia mais2 SIFT (Scale Invariant Feature Transform)
SIFT (Scale Invariant Feature Transform) O SIFT é um algoritmo de visão computacional proposto e publicado pelo pesquisador David Lowe (Lowe, 1999), professor do departamento de Ciência da Computação na
Leia maisIntrodução às Redes Neurais Artificiais
Introdução às Redes Neurais Artificiais Perceptrons de Múltiplas Camadas II Prof. João Marcos Meirelles da Silva www.professores.uff.br/jmarcos Departamento de Engenharia de Telecomunicações Escola de
Leia maisAnálise Multivariada Aplicada à Contabilidade
Mestrado e Doutorado em Controladoria e Contabilidade Análise Multivariada Aplicada à Contabilidade Prof. Dr. Marcelo Botelho da Costa Moraes www.marcelobotelho.com mbotelho@usp.br Turma: 2º / 2016 1 Agenda
Leia maisAlgoritmos de Aprendizado. Formas de Aprendizado. Aprendizado Batch x Incremental. Aprendizado Batch x Incremental
Algoritmos de Aprendizado Regra de Hebb Perceptron Delta Rule (Least Mean Square Multi-Layer Perceptrons (Back Propagation Radial Basis Functions (RBFs Competitive Learning Hopfield Formas de Aprendizado
Leia maisDiego Martin Mancini Orientador: Prof. Paulo A. V. de Miranda Instituto de Matemática e Estatística Universidade de São Paulo
Estudo de comparação do descritor de imagens coloridas BIC empregando diferentes abordagens de classificação de detecção de bordas: Canny e Operador Laplaciano Diego Martin Mancini Orientador: Prof. Paulo
Leia maisMinicurso: Inteligência Artificial Aplicada a Sistemas Elétricos
Minicurso: Inteligência Artificial Aplicada a Sistemas Elétricos Introdução a Machine Learning: Teoria, Aplicações e IA na Arquitetura Intel Vitor Hugo Ferreira, DSc - UFF Flávio Mello, DSc UFRJ e Ai2Biz
Leia maisReconhecimento de Modelos de Veículos
Reconhecimento de Modelos de Veículos Fernando Benedito Veras Magalhães January 15, 2018 1 Introdução Em 2017, 2,1 milhões de automóveis, incluindo picapes e furgões, foram vendidos no Brasil. A variedade
Leia maisRede Perceptron. Capítulo 3
Rede Perceptron Capítulo 3 Rede Perceptron É a forma mais simples de configuração de uma RNA (idealizada por Rosenblatt, 1958) Constituída de apenas uma camada, tendo-se ainda somente um neurônio nesta
Leia maisRECONHECIMENTO DE GÊNERO ATRAVÉS DA VOZ
RECONHECIMENTO DE GÊNERO ATRAVÉS DA VOZ Marcela Ribeiro Carvalho marcela@enecar.com.br IFG/Câmpus Goiânia Hipólito Barbosa Machado Filho hipolito.barbosa@ifg.edu.br IFG/Câmpus Goiânia Programa Institucional
Leia mais6 Aplicação da Metodologia Proposta
6 Aplicação da Metodologia Proposta 6.1 Introdução A utilização da metodologia Box & Jenkins para a identificação da estrutura adequada é tarefa difícil para um usuário sem conhecimento prévio. Por isso,
Leia maisJAI 6 - Deep Learning Teoria e Prática
JAI 6 - Deep Learning Teoria e Prática Cristina Nader Vasconcelos Universidade Federal Fluminense CNNs Câmeras estão por toda parte! crisnv@ic.uff.br Aquisição de imagens digitais crisnv@ic.uff.br 3 Representação
Leia maisAnálise Quantitativa de Tecidos em Úlceras de Perna
49 5 Análise Quantitativa de Tecidos em Úlceras de Perna A avaliação das áreas proporcionais de cada tecido interno das úlceras fornece informações importantes sobre seu estado patológico [BERRISS, 2000],
Leia mais