WERTON PONTES DE ARAUJO LOCALIZAÇÃO DOS CENTROS DOS OLHOS USANDO REDES NEURAIS CONVOLUTIVAS E GRADIENTES DE IMAGEM

Tamanho: px
Começar a partir da página:

Download "WERTON PONTES DE ARAUJO LOCALIZAÇÃO DOS CENTROS DOS OLHOS USANDO REDES NEURAIS CONVOLUTIVAS E GRADIENTES DE IMAGEM"

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 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 mais

Redes Neurais Convolucionais

Redes 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 mais

Redes Neurais Convolucionais

Redes 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 mais

JAI 6 - Deep Learning Teoria e Prática

JAI 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 mais

3 Redes Neurais Artificiais

3 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 mais

TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais

TÓ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 mais

Redes Neurais Artificiais

Redes 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 mais

Redes Neurais Artificiais

Redes 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 mais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

UNIVERSIDADE 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 mais

Introdução às Redes Neurais Artificiais

Introduçã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 mais

Redes Neurais e Sistemas Fuzzy

Redes 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 mais

Redes Neurais: MLP. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Redes 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 mais

Processamento digital de imagens

Processamento 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 mais

VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION - VGG

VERY 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 mais

Tópicos Especiais: Inteligência Artificial REDES NEURAIS

Tó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 mais

Processamento Digital de Imagens

Processamento 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 mais

Redes Neurais Artificial. Prática. Inteligência Artificial

Redes 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 mais

SEMINÁRIO DOS ARTIGOS:

SEMINÁ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 mais

Redes Neurais Artificial. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Redes 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 mais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

UNIVERSIDADE 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 mais

3 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 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 mais

Rede RBF (Radial Basis Function)

Rede 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 mais

Classificação Linear. André Tavares da Silva.

Classificaçã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 mais

3 Técnica Baseada em Treinamento e Cascata de Classificadores

3 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 mais

INF 1771 Inteligência Artificial

INF 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 mais

serotonina (humor) dopamina (Parkinson) serotonina (humor) dopamina (Parkinson) Prozac inibe a recaptação da serotonina

serotonina (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 mais

Redes neurais artificiais

Redes 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 mais

Descritores de Imagens

Descritores 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 mais

O 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. 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 mais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

UNIVERSIDADE 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 mais

Fundamentos de Inteligência Artificial [5COP099]

Fundamentos 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 mais

Multi-Layer. Perceptrons. Algoritmos de Aprendizado. Perceptrons. Perceptrons

Multi-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 mais

Multi-Layer. Perceptrons. Algoritmos de Aprendizado. Perceptrons. Perceptrons

Multi-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 mais

2. Redes Neurais Artificiais

2. 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 mais

Inteligência Artificial Redes Neurais

Inteligê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 mais

Aprendizagem de Máquina

Aprendizagem 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 mais

Inteligência Artificial. IA Conexionista: Perceptron de Múltiplas Camadas Mapas Auto-Organizáveis. Renan Rosado de Almeida

Inteligê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 mais

Aprendizado de Máquinas. Multi-Layer Perceptron (MLP)

Aprendizado 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 mais

2. Redes Neurais Artificiais

2. 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 mais

2. Redes Neurais Artificiais

2. 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 mais

Reconhecimento de Padrões/Objetos

Reconhecimento 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 mais

4 Redes Neurais Artificiais

4 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 mais

2. Redes Neurais Artificiais

2. 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 mais

Redes 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 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 mais

Redes Perceptron e Multilayer Perceptron aplicadas a base de dados IRIS

Redes 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 mais

Considerações de Desempenho

Consideraçõ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 mais

Paradigmas de Aprendizagem

Paradigmas 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 mais

Regra de Hebb Perceptron Delta Rule (Least Mean Square) Multi-Layer Perceptrons (Back Propagation) Hopfield Competitive Learning Radial Basis Function

Regra 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 é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 mais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

UNIVERSIDADE 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 mais

Redes Neurais MLP: Exemplos e Características

Redes 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 mais

Unidade 08 MATLAB Neural Network Toolkit

Unidade 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 mais

Back Propagation. Dicas para o BP

Back 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 mais

PMR2560 Visão Computacional Detecção de bordas. Prof. Eduardo L. L. Cabral

PMR2560 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 mais

Aprendizado de Máquina (Machine Learning)

Aprendizado 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 mais

2 Reconhecimento Facial

2 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 mais

Aprendizagem de Máquina

Aprendizagem 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 mais

p TPP = (6.1) e a rajada de perda de pacote é medida pela Comprimento Médio da Rajada (CMR ) que é dada por

p 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 mais

Universidade Federal do Rio de Janeiro - IM/DCC & NCE

Universidade 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 mais

Aprendizado de Máquina

Aprendizado 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 mais

GoogLeNet - Going Deeper with Convolutions

GoogLeNet - 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 mais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

UNIVERSIDADE 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 mais

Regra de Oja. Para taxa de aprendizagem pequena, Oja aproximou. pesos para criar uma forma útil da aprendizagem

Regra 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 mais

Aprendizagem de Máquina. Redes Neurais Artificiais (RNAs)

Aprendizagem 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 mais

3 Aprendizado por reforço

3 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 mais

5 Estudo de Caso e Resultados

5 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 mais

Seleção de Atributos 1

Seleçã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 mais

Redes Convolucionais Aplicadas em Visão Computacional

Redes 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 mais

Reconhecimento de Faces Utilizando Redes Neurais MLP

Reconhecimento 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 mais

Filtros espaciais. Processamento e Recuperação de Imagens Médicas. Prof. Luiz Otavio Murta Jr. Depto. De Computação e Matemática (FFCLRP/USP)

Filtros 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 mais

Processamento de Imagem. Filtragem no Domínio Espacial Professora Sheila Cáceres

Processamento 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 mais

Introduçã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. 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 mais

Classificadores Lineares

Classificadores 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 mais

3 Estimação e Compensação de movimento na codificação de vídeo

3 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 mais

SUPPORT VECTOR MACHINE - SVM

SUPPORT 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 mais

Determinação de vícios refrativos oculares utilizando Support Vector Machines

Determinaçã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 mais

REDES NEURAIS ARTIFICIAIS

REDES 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 mais

3 REDES CLÁSSICAS PERCEPTRON E ADALINE

3 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 mais

Roberto Lotufo Big Data Brasil São Paulo, 23 de junho de 2018

Roberto 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 mais

Multiple Layer Perceptron

Multiple 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 mais

Universidade 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. 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 mais

Redes Neurais: RBF. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Redes 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 mais

5 RNA para Diagnóstico de Falhas em Turbinas a Gás

5 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 mais

MouseCam: aplicação de controle do mouse via câmera

MouseCam: 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 mais

Reconhecimento de Gestos

Reconhecimento 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 mais

Redes 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 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 mais

2 SIFT (Scale Invariant Feature Transform)

2 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 mais

Introdução às Redes Neurais Artificiais

Introduçã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 mais

Análise Multivariada Aplicada à Contabilidade

Aná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 mais

Algoritmos de Aprendizado. Formas de Aprendizado. Aprendizado Batch x Incremental. Aprendizado Batch x Incremental

Algoritmos 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 mais

Diego Martin Mancini Orientador: Prof. Paulo A. V. de Miranda Instituto de Matemática e Estatística Universidade de São Paulo

Diego 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 mais

Minicurso: Inteligência Artificial Aplicada a Sistemas Elétricos

Minicurso: 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 mais

Reconhecimento de Modelos de Veículos

Reconhecimento 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 mais

Rede Perceptron. Capítulo 3

Rede 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 mais

RECONHECIMENTO DE GÊNERO ATRAVÉS DA VOZ

RECONHECIMENTO 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 mais

6 Aplicação da Metodologia Proposta

6 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 mais

JAI 6 - Deep Learning Teoria e Prática

JAI 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 mais

Análise Quantitativa de Tecidos em Úlceras de Perna

Aná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