IMPLEMENTAÇÃO DE REDES NEURAIS PROFUNDAS PARA RECONHECIMENTO DE AÇÕES EM VÍDEO. Patrícia de Andrade Kovaleski

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

Download "IMPLEMENTAÇÃO DE REDES NEURAIS PROFUNDAS PARA RECONHECIMENTO DE AÇÕES EM VÍDEO. Patrícia de Andrade Kovaleski"

Transcrição

1 IMPLEMENTAÇÃO DE REDES NEURAIS PROFUNDAS PARA RECONHECIMENTO DE AÇÕES EM VÍDEO Patrícia de Andrade Kovaleski Projeto de Graduação apresentado ao Curso de Engenharia de Computação e Informação da Escola Politécnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Engenheiro. Orientadores: Eduardo Antônio Barros da Silva Leonardo de Oliveira Nunes Rio de Janeiro Fevereiro de 2018

2

3 de Andrade Kovaleski, Patrícia Implementação de redes neurais profundas para reconhecimento de ações em vídeo/patrícia de Andrade Kovaleski. Rio de Janeiro: UFRJ/ Escola Politécnica, XII, 48 p.: il.; 29,7cm. Orientadores: Eduardo Antônio Barros da Silva Leonardo de Oliveira Nunes Projeto de Graduação UFRJ/ Escola Politécnica/ Curso de Engenharia de Computação e Informação, Referências Bibliográficas: p Processamento de imagens. 2. Redes neurais convolucionais. 3. Aprendizado de máquina. 4. Reconhecimento de ação. I. Antônio Barros da Silva, Eduardo et al. II. Universidade Federal do Rio de Janeiro, Escola Politécnica, Curso de Engenharia de Computação e Informação. III. Título. iii

4 Aos meus pais, minha família, meu time e àdeus. iv

5 Agradecimentos Agradeço primeiramente à minha família, por todo apoio e dedicação. Em especial agradeço aos meus pais pela paciência e incentivo durante as horas difíceis. Também sou grata à todos os amigos que acompanharam e colaboraram imensamente nesta jornada. Sem eles, o caminho teria sido muito mais difícil. Já ao meu time do ATL-Brazil, agradeço por me apresentar à área que se tornaria minha motivação pelos últimos anos; e muito provavelmente pelos próximos. A eles, sou grata pelo conhecimento, oportunidade e confiança oferecidos. De modo especial agradeço ao Leonardo Nunes pela orientação e empenho, sempre me incentivando a ir mais longe. Por fim, agradeço ao meu orientador Eduardo da Silva, pela disposição e interesse em pesquisar uma nova área; e aos demais professores e funcionários da universidade pelo trabalho e dedicação. v

6 Resumo do Projeto de Graduação apresentado à Escola Politécnica/ UFRJ como parte dos requisitos necessários para a obtenção do grau de Engenheiro de Computação e Informação. Implementação de redes neurais profundas para reconhecimento de ações em vídeo Patrícia de Andrade Kovaleski Fevereiro/2018 Orientadores: Eduardo Antônio Barros da Silva Leonardo de Oliveira Nunes Curso: Engenharia de Computação e Informação Neste trabalho é apresentada a implementação de redes convolucionais profundas para reconhecimento de ações em vídeos baseando-se na consolidada arquitetura de dois canais; composta por um canal temporal, responsável pelo processamento de fluxo óptico, e um canal espacial, que recebe imagens RGB estáticas. Para isso, um processo de treinamento foi construído utilizando um novo e promissor conjunto de ferramentas, o CNTK. Foram propostas modificações à camada de entrada da rede base por questões de compatibilidade com o formato dos dados utilizado. O desenvolvimento foi feito de modo a replicar, o mais próximo possível, os resultados reportados no artigo original. O melhor resultado obtido para esta nova implementação alcançou 89.1% de precisão média para a base de teste, enquanto o reportado pelo artigo alcança 87.0%. Portanto,oprocessoeasmodificaçõesrealizadasforam validados; bem como o método e resultados reportados pelo trabalho original. Palavras-chave: Processamento de imagens, redes neurais convolucionais, aprendizado de máquina, reconhecimento de ação. vi

7 Abstract of Undergraduate Project presented to POLI/UFRJ as a partial fulfillment of the requirements for the degree of Engineer. IMPLEMENTATION OF DEEP NEURAL NETWORKS FOR ACTION RECOGNITION IN VIDEOS Patrícia de Andrade Kovaleski February/2018 Advisors: Eduardo Antônio Barros da Silva Leonardo de Oliveira Nunes Course: Computer Engineering This work presents the implementation of a deep convolutional networks for action recognition in videos based on the consolidated two-stream architecture; composed of a temporal stream, responsible for the optical flow processing, and a spatial stream, which receives static RGB images. A training process was built using a new and promising toolkit, the CNTK. Modifications were proposed to the input layer of the base network due to compatibility issues to the data format used. The development was done in order to replicate, as close as possible, the results reported in the original paper. The best result of this new implementation reached 89.1% of average precision for the test dataset, while the reported by the paper reaches 87.0%. Therefore, the process and the changes made have been validated; as well as the method and results reported by the original work. Keywords: Image processing, convolutional neural networks, machine learning, action recognition. vii

8 Sumário Lista de Figuras Lista de Tabelas x xii 1 Introdução Visão computacional Reconhecimento de ações Revisão bibliográfica Escopo do trabalho Organização do texto Fundamentação Teórica Redes Neurais Artificiais Introdução Neurônio e suas Conexões Principais Camadas Redes Neurais Convolucionais O Processo de Aprendizagem Algoritmo de Retropropagação Fluxo Óptico Rede Convolucional de Dois Canais Rede Convolucional Espacial Rede Convolucional Temporal Implementação Ferramentas CNTK Cluster de GPU Pré-processamento dos Dados de Entrada Arquitetura Proposta Camada de Pré-Entrada viii

9 4.4 Processo de Treinamento Métodos de Treinamento Processos Individuais de Treinamento Resultados Base de Dados: UCF Critérios de desempenho Rede Espacial Parâmetros e Configurações Resultados Rede Temporal de Fluxo Óptico Parâmetros e Configurações Resultados Rede Temporal de Diferença de RGB Parâmetros e Configurações Resultados Rede de Dois Canais Resultados Conclusão Trabalhos Futuros Referências Bibliográficas 42 ix

10 Lista de Figuras 1.1 Exemplo de um problema de oclusão causado por pessoas atravessando a rua e da diferença causada por pontos de vista distintos de uma cama de hospital Modelo de um neurônio artificial Ilustração de uma rede neural composta por três camadas Ilustração da operação realizada pela camada convolucional. Dois filtros são aplicados à entrada, resultando em seus respectivos mapas de ativação. Apenas o resultado para a convolução na posição (1, 1) está sendo representada Funcionamento dos parâmetros de passo e preenchimento para um filtro de tamanho (3 3). À esquerda temos uma entrada (7 7) resultando em uma saída (5 5) dadoovalordepasso1. Jáàdireita aentrada(7 7) resultaemumasaída(3 3) poisovalordopasso é2.aáreapontilhadacorrespondeaopreenchimentocomzeros Funcionamento de uma camada de agrupamento pelo máximo e pela média para um filtro de tamanho (2 x 2) e passo Ilustração do campo de visão de um neurônio ao longo das camadas Representação do cálculo do gradiente descente pelo algoritmo de retropropagação ao longo das camadas de uma rede neural (a), (b): Par consecutivo de quadros com a região ao redor do movimento da mão em destaque. (c): Fluxo óptico denso para a região em destaque. (d): Componente horizontal d x. (e): Componente vertical d y do vetor de deslocamento. Figura retirada de: [1] Arquitetura Two-Stream para classificação de vídeos Comparação entre os três diferentes tipos de dado de entrada: RGB (esquerda), diferença de RGB (centro) e fluxo óptico (direita). Figura retirada de: [2] Comparação entre as arquiteturas VGG16 (esquerda) e CNN-M-2048 (direita) x

11 4.2 Ilustração da camada de "pré-entrada"para a rede de fluxo óptico. Os n quadros de movimento com tamanho após passarem pela camada de pré-entrada, resultam em um único dado de tamanho n Ilustração da camada de "pré-entrada"para a rede de diferença de RGB. Os n quadros RGB com tamanho após passarem pela camada de pré-entrada, resultam em um único dado de tamanho n Exemplo de um quadro retirado de 5 ações pertencentes a categorias distintas: interação entre humano e objeto ("secando o cabelo"), movimento corporal ("bebê engatinhando"), interação entre humanos ("cortando o cabelo"), tocando instrumentos musicais ("tocando flauta") e praticando esportes ("arco e flecha") Exemplo dos 10 quadros gerados a partir do quadro original xi

12 Lista de Tabelas 5.1 Resumo das características do UCF101. Adaptado de: [3] Número de classes de ação por categoria Parâmetros utilizados durante os treinamentos da rede espacial Resultados para os diferentes treinamentos de ajuste fino da rede espacial Parâmetros utilizados durante os treinamentos da rede temporal de fluxo óptico Resultados para os diferentes treinamentos do zero para a rede temporal de fluxo óptico Parâmetros utilizados durante o treinamento do zero da rede temporal de diferença de RGB Parâmetros utilizados durante os treinamentos de ajuste fino da rede temporal de diferença de RGB Resultados para os diferentes treinamentos da rede temporal de diferença de RGB Comparação entre os resultados obtidos para a arquitetura de dois canais (Two-Stream) xii

13 Capítulo 1 Introdução 1.1 Visão computacional A Visão Computacional é um campo interdisciplinar da ciência que busca interpretar a visão humana aos computadores; dando-lhes a capacidade de compreender vídeos e imagens. Identificar um cachorro em uma foto, por exemplo, pode ser facilmente executado por uma criança, porém, para um computador, é um tarefa extremamente complexa. Os humanos conseguem interpretar as cores e formas presentes na imagem naturalmente, traduzindo-as em informação. Já a máquina recebe apenas um conjunto de pixels, uma sequência de números, cujo significado depende das instruções a serem executadas em seguida. Ahistóriadocampoérecente,iniciando-senadécadade60comouminteresse de pesquisa das universidades dentro da área de Inteligência Artificial. Nos anos 70 houve certo progresso no reconhecimento de determinadas imagens [4, 5] à medida que o entendimento sobre a visão humana crescia. Porém, com a chegada efetiva das redes neurais nos anos 80, uma abordagem geométrica sem conexão com a Inteligência Artificial e com intensa base matemática foi tomada, levando a um grande avanço nas pesquisas. A partir desse ponto a Visão Computacional passou a ser reconhecida como um campo separado da Inteligência Artificial, ganhado cada vez mais destaque. Alguns dos principais desafios que o campo busca resolver são o reconhecimento edetecçãodeobjetosoufaces,detecçãodemovimento,análisetridimensionala partir de imagens bidimensionais, reconstrução de cenas e restauração de imagens. Autilizaçãodetaisrecursospossibilitamumasériedeaplicaçõescujarelevância tem atraído cada vez mais o interesse de pesquisadores e empresas. Algumas dessas aplicações envolvem, por exemplo, controle de qualidade em sistemas de manufatura, detecção de eventos em vídeo para sistemas de segurança, análise de imagens médicas provendo auxílio no diagnóstico de pacientes e navegação de veículos autônomos. 1

14 Com as redes neurais em alta - gerando resultados cada vez mais surpreendentes -, maior poder computacional das máquinas, grandes conjuntos de dados disponíveis ecâmerasdebaixocusto,podemosdizerqueestamosemumaépocapromissorapara a Visão Computacional. Suas aplicações atraem o interesse da academia, da mídia edomercado,levando-nosacrerqueestaseráumaáreaemascensãonospróximos anos. 1.2 Reconhecimento de ações Em Visão Computacional, o reconhecimento de ações consiste, basicamente, no ato de classificar, para um conjunto pré determinado de opções, uma ação presente em um vídeo. Esta tarefa, apesar de ser realizada por um humano de forma simples, é deveras complexa para uma máquina. Entre os diversos desafios enfrentados podemos citar oclusões, variação do ponto de vista, movimento da câmera, iluminação e planos de fundo com excesso de informação. Na figura 1.1 podemos ver as dificuldades ocasionadas por alguns destes casos. Oclusão Variação de ponto de vista Figura 1.1: Exemplo de um problema de oclusão causado por pessoas atravessando aruaedadiferençacausadaporpontosdevistadistintosdeumacamadehospital. Se compararmos com a classificação de imagens estáticas, o componente temporal presente nos vídeos fornece importante informação adicional, ajudando consideravelmente no reconhecimento. Para certas ações, dados como intensidade e duração podem ser determinantes para a correta classificação; colaborando, por exemplo, na diferenciação de uma pessoa andando para uma pessoa correndo. Porém, a identificação de objetos também é fundamental em determinados casos; especialmente em ações mais complexas, como "descascar uma maçã"ou "aplicar maquiagem", nas quais o objeto de interação realiza papel de destaque. Assim, a maioria dos métodos de reconhecimento atuais faz uso da combinação destes dados, utilizando informações espaço-temporais. Executar o reconhecimento de ações de forma automatizada é de interesse para aplicações como vigilância automatizada, indexação de vídeo, monitoramento de idosos, interação homem-computador e recuperação de vídeo baseada em conteúdo. 2

15 Dessa forma, diversos métodos estão sendo desenvolvidos a fim de melhor solucionálo. Nos últimos anos houve considerável esforço e avanço em pesquisas na área, como será visto detalhadamente na próxima seção. 1.3 Revisão bibliográfica Apesquisaemreconhecimentodevídeofoisignificativamenteimpulsionadapelos avanços nos métodos de reconhecimento de imagens, normalmente adaptando-os para lidarem com dados de vídeo. Seguir por esse caminho, principalmente em um primeiro momento, é natural; uma vez que vídeos são compostos por uma sequência de imagens que carrega informação temporal. Muitas abordagens realizam a extração de atributos espaço-temporais dos dados, que, em seguida, são codificados utilizando representações como "saco de palavras visuais"(do inglês, Bag of Visual Words) ouseusvariantes, afimdeseremutilizados para classificação. LAPTEV et al. [6] propõem a detecção de pontos de interesse espaço-temporais esparsos, que são descritos através do Histograma de Fluxo Óptico (HOF) e o Histograma de Gradientes Orientados (HOG) [7]. WANG et al. [8] propõem o uso de trajetórias densas de pontos; seu algoritmo consiste em ajustar as regiões de suporte do descritor local para que sigam as trajetórias calculadas através do fluxo óptico. Em [9] é explorado ainda mais o uso de trajetórias para modelar orelacionamentotemporalentrequadroscontínuos;melhorando-asaoconsiderar ecorrigiromovimentocausadopelacâmera. Acombinaçãodediferentesrecursos mostrou impulsionar a acurácia obtida para representações de vídeos por trajetória, como a compensação do movimento global causado pela câmera e o uso de fisher vectors [10, 11]. Com o retorno das redes neurais ao interesse público houve diversas tentativas de se desenvolver uma arquitetura profunda para reconhecimento de vídeos. Muitos trabalhos utilizavam como entrada uma pilha de quadros estáticos, de modo que era esperado da rede aprender implicitamente a identificar atributos espaço-temporais, o que pode ser muito difícil. Em [12] foi proposta uma arquitetura que utilizava filtros espaço-temporais pré-definidos em suas primeiras camadas. Porém, extrair atributos manualmente para a definição de filtros também é uma tarefa difícil. Nos últimos anos, as redes neurais convolucinais foram responsáveis por impulsionar consideravelmente os resultados para classificação de imagens. Elas são capazes de aprender atributos relevantes a partir de uma grande conjunto de dados, evitando anecessidadedeextraí-losmanualmente. Logosurgiramastentativasdeexpandilas para o reconhecimento de vídeos [1, 13, 14]. KARPATHY et al. [14] compararam autilizaçãodeváriasarquiteturasconvolucionaisparaoreconhecimentodeações utilizando uma pilha de quadros estáticos consecutivos como entrada. Houve uma 3

16 melhora de desempenho considerável em relação aos principais modelos de atributos pré-definidos. Porém, quase não houve diferença entre os resultados obtidos para um quadro único ou múltiplos quadros de entrada; o que indica que os recursos espaço-temporais aprendidos não capturaram bem o movimento. SIMONYAN e ZISSERMAN [1] propuseram uma arquitetura de dois canais, nos quais as informações espaciais e temporais são exploradas separadamente através dos quadros RGB e do fluxo óptico por duas redes convolucionais distintas. Os resultados obtidos para este método se tornaram o estado da arte para a época e muitos dos trabalhos mais recentes, que alcançaram desempenho superior, se baseiam nesta arquitetura [15 17]. A rede de dois canais foi escolhida como base para a implementação deste trabalho e está descrita em detalhes no Capítulo 3. Em [15] a arquitetura de dois canais é expandida para uso com redes convolucionais muito profundas, melhorando seu desempenho. Já em [16] tem-se como foco a execução desta arquitetura em tempo real, o que não é possível devido ao custo computacional do cálculo do fluxo óptico. Assim, é proposta a substituição dos dados de fluxo óptico por vetores de movimento melhorados, que são obtidos em tempo de processamento com resultados comparáveis à rede original. Em [17] são exploradas diferentes formas de realizar a fusão dos resultados obtidos pelos canais, propondo um método mais complexo capaz de impulsionar o resultado final. Por fim, em [2] é explorado, para a mesma arquitetura, o relacionamento temporal de longo prazo, ao utilizar sequências de quadros retiradas de diversos fragmentos ao longo do vídeo; proporcionando uma melhora considerável aos resultados. Além disso, é explorada autilizaçãodeoutrosdadosparainformacãotemporal,comoadiferençadergb. Esta, por sua vez, também foi implementada por este trabalho, com o intuito de compará-la às redes originais de RGB e fluxo óptico. 1.4 Escopo do trabalho Este trabalho visa implementar a arquitetura de dois canais para reconhecimento de ações proposta por [1]. Nela, o reconhecimento de ações é realizado considerando ainformaçãoespacialetemporalpresentenosvídeos.paratal,sãoimplementadas duas redes convolucionais distintas, cada uma responsável por analisar, exclusivamente, um dos dois tipos de informação. Assim, são estabelecidos o canal espacial eocanaltemporalquecompõemaarquitetura. Éutilizadoomesmoconjuntodedadosdotrabalhooriginalparatreinamento evalidaçãodasredesconvolucionaisimplementadas. Porém,tendoemvistaaobtenção de modelos relevantes para o cenário moderno, foi escolhida para a implementação destas redes uma arquitetura amplamente aceita atualmente - diferente da utilizada no trabalho original. Pelo mesmo motivo, um novo e promissor con- 4

17 junto de ferramentas é utilizado para a implementação, treinamento e validação dos modelos. São avaliados diferentes processos de treinamento, explorando a inserção de técnicas de aumento de dados e variação de determinados parâmetros. Também é avaliada a substituição proposta em [2] para o canal temporal que compõe a arquitetura, explorando uma forma diferente de se estimar o movimento em vídeo. 1.5 Organização do texto No Capítulo 2 são apresentados os principais conceitos a respeito das redes neurais artificiais; abordando especialmente aqueles relacionados às redes convolucionais, suas características e aplicações. Também é explicada a motivação e formação do fluxo óptico, que realiza papel fundamental para a solução implementada por este trabalho. Já no Capítulo 3, a arquitetura de reconhecimento de ações em vídeo proposta pelo trabalho cujos resultados buscamos replicar é vista em detalhes. É abordada sua origem, motivação e componentes. No Capítulo 4 serão abordados todos os principais tópicos referentes à implementação e treinamento das redes de reconhecimento de ação propostas. Primeiro, são introduzidas as ferramentas utilizadas durante o desenvolvimento do trabalho. Em seguida, é visto o pré-processamento realizado sobre os dados de entrada. Também édescritaaarquiteturabaseutilizadapelosmodelostreinadoseasmodificações propostas à ela. Por fim, são explicados os diferentes processos aplicados para o treinamento dos modelos. Todos resultados são então apresentados e discutidos no Capítulo 5, juntamente com as configurações aplicadas durante os treinamentos. Também é apresentado o conjunto de dados utilizado para treinamento e validação dos modelos; assim como aexplicaçãodoscritériosescolhidosparasuaavaliação. Por fim, no Capítulo 6 todo o trabalho realizado é resumido e concluído. São discutidos os resultados obtidos e os motivos que levaram à eles; assim como possíveis trabalhos futuros. 5

18 Capítulo 2 Fundamentação Teórica Neste capítulo são abordados os conhecimentos considerados fundamentais para acompreensãoadequadadotrabalhoapresentadonoscapítulosseguintes. Na seção 2.1 são apresentados os principais conceitos a respeito das redes neurais artificiais. Serão abordados especialmente aqueles relacionados às redes neurais convolucionais, suas características e aplicações. Já na seção 2.2 é explicada a motivação e formação do fluxo óptico, responsável por representar o movimento ao longo de um vídeo. 2.1 Redes Neurais Artificiais Introdução As primeiras abordagens às redes neurais artificiais ocorreram no início da década de 40, quando, com o intuito de descrever o funcionamento dos neurônios, foi modelada uma rede neural simples utilizando circuitos elétricos [18]. Apesar do entusiasmo da comunidade científica e de importantes avanços propostos na época - como a concepção do Perceptron [19], a mais antiga rede neural ainda em uso - as redes neurais passaram por momentos de altos e baixos no interesse público durante sua evolução. Chegaram a ser praticamente deixadas de lado por um período devido às limitações encontradas no Perceptron de uma camada [20], até renascerem nos últimos anos graças a novas pesquisas no campo do Aprendizado de Máquina. Assim, juntamente com a utilização do algoritmo de retropropagação [21] e a criação de maiores conjuntos de dados, o treinamento efetivo de redes mais complexas, compostas por múltiplas camadas, foi possível. Desde sua criação, as redes neurais artificiais são aplicadas com sucesso nos mais diversos problemas. Dentre suas áreas de atuação podemos citar sistemas de controle [22], reconhecimento de padrões [23] e aproximação de funções [24]. Porém, as redes de apenas uma camada escondida, por possuírem aplicações muito restritas, 6

19 são cada vez menos utilizadas, perdendo espaço para as arquiteturas multicamadas. Estas, quando compostas por muitas camadas, chamam-se redes neurais profundas esãocapazesdeformarsoluçõesdequalidadeparaumaamplaclassedeproblemas; atingindo desempenho superior às redes de uma camada e possibilitando aplicações mais complexas. Algumas de suas diversas aplicações são a detecção e classificação de objetos [25 30], processamento de linguagem natural [31, 32], identificação de faces [33, 34], segmentação semântica de imagens [35, 36] e reconhecimento automático de voz [37, 38]. Porém, as redes profundas ganharam popularidade apenas a partir de 2006, com osurgimentodetécnicasespecializadasemtreinamentoprofundo[39,40]eaconsolidação das GPUs. A partir deste ponto, elas melhoraram significativamente até que, em 2012, atingiram o estado da arte na época para classificação de imagens com a arquitetura AlexNet [41]. Em seguida, este foi ultrapassado, com, por exemplo, a arquitetura VGG [42] em Já em 2015, testemunhamos uma nova arquitetura, chamada ResNet [43] (Residual Networks em inglês), superar a capacidade humana de classificação de imagens para o ImageNet [28] - um conjunto de dados composto por milhões de imagens, o que evidencia o poder das redes profundas. Com recursos computacionais cada vez mais especializados e enormes conjuntos de dados disponíveis, o desempenho das redes neurais continua evoluindo. Hoje as temos como ferramenta consolidada, graças à sua ampla utilização nos mais diversos problemas. Com resultados animadores, um ramo diverso e ilimitado de aplicações e altas expectativas, vivemos um momento de grande popularidade das redes neurais artificiais Neurônio e suas Conexões Redes neurais artificiais são formadas por um conjunto de neurônios altamente conectados que se relacionam a fim de realizar determinada função. Sua unidade básica de operação é capaz de aplicar funções simples a múltiplos dados de entrada. As operações executadas pelos neurônios são definidas arbitrariamente e de modo geral são formadas pela aplicação de uma função de ativação não-linear sobre a combinação afim dos dados de entrada. Um modelo básico de neurônio, como visto na figura 2.1, consiste na soma ponderada por pesos previamente estabelecidos de um vetor x =[x 0,x 1,...x n 1 ] 2 R n de entrada e de uma constante, seguida pela aplicação de uma função de ativação sobre o resultado. Esta função é responsável por produzir uma saída de valor saturado para determinados dados de entrada. Ou seja, caso a combinação afim destes dados atinja determinado valor, o neurônio é considerado ativado. AFigura2.1ilustraomodelodescritonoparágrafoanterior. Suasaíday pode 7

20 x 1 w 1 x 2 w 2 P X (X) y x 3 w 3. x n w n b Figura 2.1: Modelo de um neurônio artificial. ser calculada utilizando os valores de entrada x i eseusrespectivospesosw i como y = sendo b o coeficiente de polarização. entrada recebidos.! nx x i w i + b, (2.1) i=1 Este termo é independente aos valores de Tipicamente, o resultado y para a ativação do neurônio está confinado ao intervalo [0, 1] ou [ 1, 1], dependendo da função de ativação escolhida. Em seu caso mais comum, é utilizada a função sigmóide (x) = 1 1+e x, (2.2) que tem sua saída limitada ao intervalo [0, 1]. Nesse caso, a interpretação da taxa de ativação do neurônio é feita de não ativado (0) àtotalmentesaturado,ouseja, ativado em uma intensidade máxima (1). Asaídadeumneurôniopodeserutilizadacomoentradaparaoutro,dessaforma, eles se interconectam formando uma rede na qual são organizados em camadas hierárquicas. A saída de uma camada é a entrada da próxima, de modo que o relacionamento entre elas é direcionado. Além disso, não há dependências entre os nós presentes em uma mesma camada. Aquantidadeeorganizaçãodascamadasemumaredepodevariarconformeo problema desejado. É preciso existir, no entanto, pelo menos uma camada encarregada pela introdução dos dados de entrada e outra responsável pelo cálculo do resultado final. Entre elas existem as chamadas camadas internas ou escondidas, que são responsáveis pelo processamento e extração de características. Inicialmente, apenas camadas totalmente conectadas (como as ilustradas na Figura 2.2) eram utilizadas com esta função. Porém, com o tempo, novos tipos de camadas foram propostas, permitindo o avanço e expansão dos problemas tratados por redes neurais. Esta e outras camadas serão melhor explicadas na seção

21 Entrada Camada interna Camada interna Camada de saída Figura 2.2: Ilustração de uma rede neural composta por três camadas. AFigura2.2ilustraumarededealimentaçãodireta,oufeedfoward, eminglês. Elas recebem este nome pois suas camadas se relacionam direcionalmente da entrada para a saída, não havendo fluxo reverso de dados na rede. Assim, elas podem ser definidas como um grafo acíclico direcionado Principais Camadas Existem diversos tipos de camadas que podem ser utilizados em uma rede neural. Nesta seção, serão abordadas especificamente aquelas mais relevantes para a implementação apresentada nos capítulos seguintes Camada Totalmente Conectada Conforme mencionado anteriormente, a camada totalmente conectada, ou fullyconnected layer, eminglês,foioprimeirotipodecamadainternautilizado,atuando na extração de atributos dos dados de entrada. Nela, cada valor recebido se conecta àtodososneurôniospresentesnacamada. Assim,oresultadoparacadaumdeles éentãoobtidoconformeaequação(2.1),quepodeserreescritaparaocasodeum neurônio j da forma nx z j = x ij w ij + b j (2.3) i=1 y j = (z j ), (2.4) sendo b j ocoeficientedepolarizaçãoparacadaneurônioe afunçãodeativação utilizada pela camada. Esta operação também pode ser entendida como o produto 9

22 interno z j = w T j x j + b j,considerandoosvetores 2 w j = 6 4 w 1j w 2j w ij w nj 3 2 x 1j x nj 3 x 2j. x j =. x. (2.5) ij Ou seja, o resultado para todos os neurônios presentes na camada pode ser obtido utilizando apenas uma multiplicação de matriz. Existe, porém, uma limitação que precisa ser considerada ao utilizar este tipo de camada densa. Como cada neurônio deve se relacionar com todos os dados de entrada, o número de conexões escala com as dimensões desses dados. Por exemplo, se considerarmos uma camada composta por 100 neurônios que recebe um dado de entrada de tamanho 1.000, serão necessários parâmetros para sua operação. Agora, se o dado de entrada tiver seu tamanho alterado para 1.100, serãonecessários parâmetros. Aumentar a entrada em 100 implica em um aumento de no número de parâmetros. Logo, quanto maior a dimensão da entrada, maior o número de conexões e parâmetros necessários para a operação. Se considerarmos, por exemplo, uma imagem, que usualmente é composta por milhares de pixels, a quantidade de parâmetros seria tamanha que sua utilização ficaria inviável. Uma nova camada foi proposta para contornar essa limitação, como será visto na seção seguinte. Já a camada totalmente conectada passou a ser aplicada mais frequentemente em outras funções. Normalmente ela é utilizada ao final de uma rede neural, com o intuito de mapear os valores intermediários para cada uma das saídas finais possíveis. No caso em que a rede resolve um problema de classificação, é desejado que apenas uma classe seja ativada ao final. Para forçar este resultado normalmente é acoplada uma função à última camada totalmente conectada da rede. Ela é aplicada após o mapeamento dos resultados, de forma que se chega ao final ao que pode ser interpretado como a probabilidade de se obter cada classe. Uma função frequentemente utilizada para esta finalidade é o softmax, na qual a probabilidade para uma classe i, dadoumaentradax éobtidacomo p(classe = i x) = e y i P K, (2.6) j=1 ey j sendo K o número total de classes. Assim, os valores finais para cada classe se encontrarão dentro do intervalo [0, 1] esuasomaseráigualà1. 10

23 Camada Convolucional Acamadaconvolucionalatuanaextraçãodeatributosdosdadosdeentrada. Sua principal diferença, porém, é que a organização espacial dos dados é levada em consideração. Esta nova abordagem reduz consideravelmente o número de parâmetros necessários à sua execução, além de fazer com que a camada seja invariante à translação. Tais características a tornam o ponto chave para a solução dos problemas que requerem processamento de imagens. Conforme indicado pelo nome, a camada convolucional realiza sobre seus dados de entrada a operação de convolução. Sua entrada consiste em um tensor de três dimensões x 2 R (C x H x W ),sendoc, H e W onúmerodecanais,alturaelargura,respectivamente. Ela também possui um filtro de tamanho definido f 2 R (C x H f x W f ), que pode dispor de um termo de polarização. Seus valores representam os pesos da camada e, usualmente, possui H f = W f. O tamanho habitual para a altura e largura deste filtro é (3 x 3) ou (7 x 7). Além disso, também há uma função de ativação definida para a camada. Aconvoluçãopodeserescritamatematicamenteparavaloresbi-dimensionais como y[i, j] = X k X x[i k, j l]h[k, l]. (2.7) l Ou seja, esta operação consiste, basicamente, em deslizar o filtro sobre os dados de entrada, calculando o produto interno a cada nova posição e retornando um escalar. Àessevalorpodeseradicionadoumtermodepolarização. Jáesteresultado,após passar por uma função de ativação não linear, é chamado valor de ativação. Ao final, éobtidoummapadeativação,oumapadeatributos,a 2 R (Ha x Wa). Caso a camada possua um número F de filtros teremos na saída um mapa a 2 R (F x Ha x Wa). Entrada Filtros Mapas de Ativação Figura 2.3: Ilustração da operação realizada pela camada convolucional. Dois filtros são aplicados à entrada, resultando em seus respectivos mapas de ativação. Apenas oresultadoparaaconvoluçãonaposição(1,1)estásendorepresentada. Os filtros podem ser calibrados para identificar padrões específicos. Ao realizarmos a convolução do mesmo por toda a extensão da entrada, o mapa de ativação 11

24 gerado manterá a informação espacial sobre esses dados. Ou seja, um padrão que ativa determinado mapa pode ser encontrado em diferentes posições da entrada, tornando a camada invariante a translações. Além disso, muitos de seus parâmetros são compartilhados entre os neurônios, uma vez que todos aqueles referentes a um mesmo mapa de ativação utilizam o mesmo filtro. Já o número de parâmetros total da rede dependerá apenas do tamanho e quantidade dos filtros, independente ao tamanho da entrada. Isso permite que a camada atue sobre dados de entrada grandes com uma quantidade razoável de parâmetros. Na prática, a convolução pode ser realizada de diversas formas. É possível definir opadrãodedeslocamentodofiltrosobreosdados,aquantidadedevaloresconsiderados em cada operação e até inserir novos valores ao conjunto a ser analisado. Tais definições são muito importantes pois determinam a formação do mapa de ativação da camada. Ou seja, são responsáveis por influenciar o tipo de informação que será gerado pela camada. Os parâmetros de passo (stride) epreenchimento(padding) são os mais frequentemente utilizados para realizar tais definições. Opassoditaomovimentodofiltro,ouseja,comumpassodetamanho1o filtro caminha uma amostra por vez. Quanto maior o valor do passo, menor será a dimensão da saída. Já o preenchimento consiste em adicionar valores ao redor da entrada para garantir que seu tamanho seja preservado na saída. Podemos calcular otamanhow a da saída a partir do tamanho da entrada W,filtroK evalordopasso S como: W a = W K +1. (2.8) S Ao adicionarmos um preenchimento P,temosnaentradaonovotamanho W = W +2P.Logo,paraS =1precisamos utilizar P = K 1 2 para que a saída e a entrada tenham o mesmo tamanho. Na Figura 2.4 temos uma ilustração do funcionamento Filtro: (3 x 3) Passo: 1 Filtro: (3 x 3) Passo: 2 Saída: (5 x 5) Saída: (3 x 3) Entrada: (7 x 7) Entrada: (7 x 7) Figura 2.4: Funcionamento dos parâmetros de passo e preenchimento para um filtro de tamanho (3 3). À esquerda temos uma entrada (7 7) resultando em uma saída (5 5) dadoovalordepasso1.jáàdireitaaentrada(7 7) resultaemumasaída (3 3) poisovalordopassoé2.aáreapontilhadacorrespondeaopreenchimento com zeros. 12

25 do passo e do preenchimento, evidenciando sua influência na formação do mapa de ativação Camada de Agrupamento Acamadadeagrupamento,oupooling layer em inglês, reduz a quantidade de parâmetros da rede ao reduzir as dimensões dos dados de recebidos. Isso ocorre pois para cada conjunto de dados agrupados, apenas um valor é retornado. Esta função é extremamente útil ao lidarmos com imagens. Em primeiro lugar, porque aredundânciadeinformaçãoparadadosespacialmentepróximoséreduzida;pois para uma área pequena, pixels adjacentes costumam possuir valores muito parecidos. Em segundo lugar, porque a rede se torna invariante à pequenas alterações locais e distorções; uma vez que o resultado do agrupamento de um certo conjunto de dados será sempre o mesmo, independente de como estes estão organizados. Assim, uma modificação na posição dos valores causada, por exemplo, ao se descomprimir uma imagem, passará despercebida. Esta camada é composta por apenas um filtro f 2 R (Hp,Wp) que percorre os valores de entrada aplicando uma função fixa não parametrizável à eles. Diferente dos filtros da camada convolucional, este atua independentemente sobre os canais de entrada, pois seu objetivo é agregar informação espacial. Aformamaiscomumderealizaroagrupamentoéaplicandoafunçãodemáximo (max-pooling) oudemédia(average-pooling) sobreosdadospresentesemcada janela. Normalmente o valor do passo e o tamanho do filtro são iguais, de modo que não haja sobreposição das regiões abordadas por cada janela. Um caso muito comum é utilização do filtro e do passo com tamanho 2, assim, o tamanho da entrada éreduzidopelametadeemsuasdimensõesh e W ;conformeilustradonafigura 2.5 para ambas as funções de agrupamento mencionadas Entrada Agrupamento pelo máximo 1, ,5 Agrupamento pela média Figura 2.5: Funcionamento de uma camada de agrupamento pelo máximo e pela média para um filtro de tamanho (2 x 2) e passo 2. 13

26 2.1.4 Redes Neurais Convolucionais Uma rede neural convolucional, também conhecida como CNN (do inglês, Convolutional Neural Network), consiste em uma rede neural na qual a principal operação realizada por suas camadas é a convolução. Este tipo de rede destaca-se especialmente nas tarefas que envolvem processamento de imagens, como, por exemplo, reconhecimento de objetos [28 30] e identificação de faces [33, 34]. Isso ocorre porque as redes convolucionais foram pensadas para lidar com dados estruturados localmente, como os pixels de uma imagem. Sua arquitetura é inspirada no córtex visual, no qual cada neurônio é responsável por apenas uma parte do campo de visão, sendo que ao final estas partes se complementam e todo campo é tratado. Da mesma forma, a rede convolucional utiliza filtros para analisar pequenos grupos de dados vizinhos, extraindo suas características mais relevantes. Apenas estas características são passadas adiante para as próximas camadas; por isso é dito que as redes convolucionais atuam como extratores de atributos, ou feature extractors. Como visto na seção , os filtros de uma camada convolucional podem identificar padrões específicos na imagem, como, por exemplo, bordas ou cores. Em uma rede convolucional com múltiplas camadas, existirão, portanto, diversos filtros, cada um procurando um padrão diferente. Já a utilização sequencial de camadas convolucionais permite a identificação de padrões mais complexos pela combinação daqueles identificados anteriormente. Isso ocorre pois os filtros das camadas seguintes são aplicados à todos os mapas da camada anterior. Dessa forma, ocampodevisãodeumneurônioaumentadeacordocomsuaprofundidadenarede (Figura 2.6). Figura 2.6: Ilustração do campo de visão de um neurônio ao longo das camadas O Processo de Aprendizagem Chamamos de aprendizado o procedimento de ajustar os parâmetros de uma rede de modo que sua saída se aproxime cada vez mais de seu resultado esperado. Isto ocorre durante o chamado processo de treinamento, no qual um grande número de 14

27 exemplos é submetido à rede, de modo que ela aprenda por si só como executar uma determinada tarefa. Esses exemplos pertencem a um conjunto de valores conhecidos para as entradas da função e suas respectivas saídas e geralmente são obtidos através da medição dos parâmetros de um problema real cujo comportamento deseja-se reproduzir artificialmente. Antes de iniciarmos o treinamento, é preciso definir uma função de perda (loss function) responsávelporinformaroquãolongeestáoresultadoencontradopela rede do resultado esperado, também chamado ground truth. Ou seja, é calculado oerroentreoresultadoencontradoy = f(x, ), paraumvalordeentradax eum conjunto de parâmetros, eoresultadoesperadoȳ. Queremosqueovalordafunção de perda L(f(x, ), ȳ) seja o mais próximo de zero possível, significando que para o conjunto de dados de entrada a saída encontrada está o mais próximo possível da saída esperada. Assim, o processo de aprendizagem pode ser visto como o problema de minimização 1 min E[L(f(x, ), ȳ)] min C X (x i,y i )2C L(f(x i, ), ȳ i ), (2.9) para o conjunto de dados de treinamento C esuasrespectivassaídasesperadas;que deve aproximar o valor esperado da perda. Uma vez definida a função de perda a ser utilizada, parte-se para o primeiro passo do treinamento, o processamento direto, ou foward-pass. Este procedimento consiste na propagação de um dado de entrada retirado do conjunto de treinamento por todas as camadas da rede, até obter seu resultado final. Utilizando a função de perda é então obtido o erro para este resultado. Durante este passo os parâmetros da rede não são alterados. Em seguida inicia-se o segundo passo, o processamento reverso, ou backwardpass. Nele, o valor do erro é propagado por todas as camadas da rede no sentido reverso, tendo em vista calcular para cada parâmetro o quanto ele influenciou no resultado encontrado. A forma mais conhecida de realizar esse cálculo é utilizando oalgoritmoderetropropagação,oubackpropagation, queserámelhorexplicadona Seção Ao final do processo, os parâmetros são ajustados de acordo com uma regra de correção de erro (Eq. 2.12) Algoritmo de Retropropagação Oalgoritmoderetropropagaçãoconsistebasicamentenaaplicaçãosucessivada regra da cadeia para calcular o gradiente do erro em relação aos parâmetros da rede. Esta operação é realizada reversamente, calculando-se o gradiente a partir da camada de saída até a camada de entrada. Dessa forma, é preciso que as funções 15

28 utilizadas dentro da rede neural sejam diferenciáveis. Considerando a K-ésima camada da rede, temos por x k = f k (x k 1, k ) arepresentação de seu resultado x k para a entrada x k 1 eparâmetros k.aderivadaparcial do erro em relação aos parâmetros k pode ser calculada k(x k 1, k k k(x k 1, k k éamatrizjacobianadef k em relação à k.seovalordaderivada parcial de L em relação à x k for conhecida será possível calcular a derivada parcial de L em relação à k. Porém, ao passarmos para a (k 1)-ésima camada da rede, aequação(2.10)nosdizqueocálculodaderivadaparcialdoerroemrelaçãoaos seus respectivos parâmetros k em relação à x k da forma: 1 dependerá da derivada parcial de L em relação à 1. Esse valor também pode ser obtido utilizando a regra da k(x k 1, k k k k dependendo apenas da derivada parcial de L em relação à x k,jáconhecida. Ogradientelocalf pode ser calculado independentemente para cada camada. Ou seja, a partir das equações 2.10 e 2.11 é possível calcular a derivada parcial do erro em relação a todos os parâmetros da rede de forma recursiva, utilizando a regra da cadeia (Figura k ȳ k @x k 1 k x k 1. k 1 x k 2 Figura 2.7: Representação do cálculo do gradiente descente pelo algoritmo de retropropagação ao longo das camadas de uma rede neural. Utilizando o método do gradiente descendente é então possível ajustar o valor dos parâmetros da rede seguindo uma regra de correção na forma: k+1 k, (2.12) 16

29 onde éataxadeaprendizado,oulearning rate, aplicada. Acorreçãoéproporcional ao oposto do gradiente, uma vez que o objetivo é minimizar o erro. Este método éomaisutilizadopararealizaraotimizaçãodosparâmetrosdeumaredeneural, existindo diversas variações para o mesmo. Aatualizaçãodosparâmetrosocorreacadanovoexemplodetreinamentoinserido na rede. Porém, ao lidarmos com bases de dados que possuem milhares de exemplos, como a maioria das utilizadas atualmente, este se torna um processo extremamente longo e desnecessário. Uma alternativa é realizar o cálculo do gradiente sobre um pequeno grupo de dados, chamado mini-batch. Como os dados de uma mesma base costumam ser muito correlacionados entre si, o gradiente calculado por lotes, ou bateladas, é uma boa aproximação para o cálculo dos gradientes individuais. Dessa forma, o treinamento ocorre mais rapidamente. 2.2 Fluxo Óptico Fluxo óptico - optical flow, eminglês-éummodeloderepresentaçãodomovi- mento aparente entre quadros consecutivos de um vídeo. O movimento, que pode ser causado pela locomoção da câmera ou dos objetos em cena, é medido através do deslocamento dos pixels entre os quadros. Dessa forma, o fluxo óptico pode ser representado como um conjunto de vetores de deslocamento d t entre dois quadros consecutivos t e t +1. Existem diversos métodos [44 46] para se calcular o fluxo óptico na literatura. Eles diferem não apenas nos algoritmos aplicados mas na seleção e quantidade de pontos da imagem utilizados. Dada esta última característica, o fluxo óptico é chamado denso quando os vetores de deslocamento são calculados para todos os pixels da imagem e chamado esparso quando apenas um conjunto dos mesmos é considerado. O primeiro caso possui resultados mais precisos e caros computacionalmente em relação ao segundo. Os componentes horizontais e verticais dos vetores de deslocamento d x t e d y t de um Figura 2.8: (a), (b): Par consecutivo de quadros com a região ao redor do movimento da mão em destaque. (c): Fluxo óptico denso para a região em destaque. (d): Componente horizontal d x. (e): Componente vertical d y do vetor de deslocamento. Figura retirada de: [1] 17

30 fluxo óptico denso podem ser vistos como canais de uma imagem. Assim, pode-se, por exemplo, representar o fluxo óptico entre dois quadros como imagens em escala de cinza, na qual maiores intensidades correspondem a valores positivos e menores intensidades a valores negativos (Figura 2.8d e 2.8e). Este tipo de representação consegue destacar o movimento ocorrido, tornando-o mais adequado ao reconhecimento utilizando redes neurais convolucionais; como a que será apresentada no capítulo a seguir. 18

31 Capítulo 3 Rede Convolucional de Dois Canais Conforme visto na seção 1.2, vídeos podem ser naturalmente decompostos em um componente espacial e um componente temporal. A parte espacial está presente nas imagens estáticas que carregam informações sobre os objetos e cenas. Já a parte temporal descreve o movimento da câmera e dos objetos presentes no vídeo. Partindo dessa ideia central e tendo as redes convolucionais profundas [28] estabelecidas como o estado da arte para o reconhecimento de imagens, é natural que tentativas de se estender tal modelo para o reconhecimento de vídeos surgissem. Dessa forma, é proposta uma arquitetura formada por dois fluxos separados, espacial e temporal, que teriam seus resultados combinados ao final. Esta arquitetura está relacionada com a hipótese de two-stream [47], na qual é apresentado que o córtex visual humano contém dois canais, ventral e dorsal, que seriam responsáveis, respectivamente, pela identificação dos objetos e identificação do movimento. Aarquitetura,tambémnomeadatwo-stream ou de dois canais, é composta por duas redes convolucionais profundas independentes, conforme mostrado pela Figura 3.1. A organização das camadas é a mesma para ambas; ela corresponde a arquitetura CNN-M-2048 [48] e é similar à rede apresentada em [49]. Cada uma das redes resolve um problema de classificação particular, no qual seu resultado final é dado pelo softmax da saída de sua última camada. Porém, como elas são treinadas para o mesmo problema, o conjunto solução também é o mesmo. Dessa forma o resultado final para a rede de dois canais é obtido simplesmente realizando a média dos resultados individuais de cada uma; ou seja, a média do softmax. 3.1 Rede Convolucional Espacial Aredeconvolucionalespacialrecebecomoentradaquadrosindividuaisdovídeo erealizaoreconhecimentodeaçõesbaseadoemimagensestáticas. Basicamente, ela atua como uma rede de classificação de imagens. Porém, tal informação é muito significativa, uma vez que em diversas situações a presença de um objeto é determi- 19

32 Fluxo Espacial Rede Convolucional Profunda Softmax Fluxo Temporal Média do Softmax Classificação final Rede Convolucional Profunda Softmax Figura 3.1: Arquitetura Two-Stream para classificação de vídeos. nante para a identificação de uma ação. Na verdade, na seção é visto que os resultados obtidos por esta rede alcançam valores consideráveis por si só. 3.2 Rede Convolucional Temporal Já a rede convolucional temporal recebe como entrada múltiplos quadros com informação de movimento. A seleção de um conjunto sequencial destes quadros descreve explicitamente o movimento ao longo do vídeo, o que torna o reconhecimento mais fácil, uma vez que a rede não precisa estimá-lo de forma implícita. Originalmente, a rede temporal proposta em [1] utiliza a informação do fluxo óptico como dado de entrada. Ele é calculado utilizando a implementação de [46] para a biblioteca OpenCV eemseguidarepresentadocomoimagensemescalade cinza. Porém, trabalhos mais recentes tem explorado diversas outras formas de estimar o movimento em vídeo; como por exemplo, calculando a diferença de RGB [2]. Apesar dos quadros RGB armazenarem apenas informação estática sobre as cenas, a diferença entre eles consegue descrever uma mudança na aparência. Essa informação, quando retirada de quadros consecutivos, pode corresponder às regiões Figura 3.2: Comparação entre os três diferentes tipos de dado de entrada: RGB (esquerda), diferença de RGB (centro) e fluxo óptico (direita). Figura retirada de: [2] 20

33 nas quais ocorreu algum movimento. Dessa forma, surge a ideia de utilizá-los como entrada para a rede convolucional temporal. Logo, foram implementadas três redes convolucionais: uma responsável pelo canal espacial e duas pelo canal temporal. Cada uma utiliza um tipo diferente de dado de entrada, cuja comparação está ilustrada na Figura 3.2. Ao final, obteremos duas arquiteturas de dois canais, nas quais cada uma utilizará uma rede temporal diferente enquanto a rede espacial se manterá fixa. Os métodos utilizados para sua implementação, bem como as modificações que se fizeram necessárias, estão descritos no capítulo a seguir. 21

34 Capítulo 4 Implementação Neste capítulo serão abordados todos os principais tópicos referentes à implementação e treinamento da rede de reconhecimento de ação proposta. Primeiramente, na seção 4.1, serão apresentadas as ferramentas utilizadas durante todo o desenvolvimento do trabalho. Em seguida, na seção 4.2, será abordado o pré-processamento realizado sobre os dados de entrada. Já na seção 4.3 será descrita aarquiteturabaseutilizadapelosmodelostreinadoseasmodificaçõespropostasà ela. Por fim, na seção 4.4 serão explicados os diferentes processos aplicados para o treinamento dos modelos. 4.1 Ferramentas Nesta seção serão apresentadas as ferramentas utilizadas durante a implementação e treinamento do projeto proposto por este trabalho. Serão abordadas suas principais características, bem como as motivações que levaram à escolha das mesmas. Também serão descritas as funções esperadas para cada ferramenta, sua importância epapelnodesenvolvimentodoprojeto. Na seção será apresentado o conjunto de ferramentas utilizado durante toda aimplementaçãodesteprojeto,desdeadefiniçãodosmodelosatéseutreinamentoe avaliação; o CNTK. Já na seção será explicado sobre o cluster de GPU usado durante os treinamentos CNTK O CNTK, do inglês Microsoft Cognitive Toolkit [50, 51], é um conjunto de ferramentas desenvolvido pela Microsoft voltado à implementação distribuída de aprendizado profundo (deep learning). Apesar de utilizado em produção, seu código é aberto (open-source) eseencontraemconstanteaperfeiçoamento. 22

35 Desenvolvido pela equipe de pesquisa e tecnologia da Microsoft, o CNTK foi criado inicialmente apenas para uso interno da empresa, com o objetivo de agilizar ao máximo os treinamentos em grandes conjuntos de dados. Muitos dos principais produtos da empresa utilizam modelos treinados pela ferramenta. No domínio de serviços cognitivos (Microsoft Cognitive Services)eleéamplamenteaplicadoemproblemas de aprendizado profundo envolvendo visão computacional, reconhecimento de fala e análise textual. Alguns exemplos incluem o sistema de tradução simultânea do Skype e os modelos de fala utilizados pela assistente pessoal Cortana. Devido a seus resultados tão positivos, o CNTK passou a ser oferecido abertamente à comunidade. Algumas de suas principais características que influenciaram a escolha pela ferramenta são: Foco em velocidade e escalabilidade, atingindo máximo desempenho quando executado em CPU, uma ou múltiplas GPUs e em cenários com múltiplas máquinas com múltiplas GPUs. Flexibilidade, pois além de possuir diversos nós computacionais préprogramados, é possível customizar com facilidade a arquitetura da rede e suas entradas, permitindo a leitura de formatos arbitrários de dados. Compatibilidade com linguagens de programação como C++ e Python. Possuindo para esta uma extensa interface de programação (API, do inglês Application Programming Interface). O CNTK foi utilizado em todas as etapas deste projeto através de sua API em Python, desdeacriaçãoemodificaçãodaarquiteturadasredesatéotreinamentoe avaliação dos modelos Cluster de GPU Otreinamentodosmodelosdescritosnesteprojetofoirealizadoemumcluster de GPU dedicado ao treinamento de redes neurais profundas. O cluster foi projetado para oferecer o CNTK como um serviço (PAAS - Plataform As A Service), explorando ao máximo a escalabilidade proporcionada pela ferramenta. Assim, é possível realizar o treinamento de enormes conjuntos de dados em centenas de GPUs simultâneamente. 4.2 Pré-processamento dos Dados de Entrada Conforme visto no Capítulo 3, a arquitetura escolhida para realizar o reconhecimento de ações em vídeo recebe, basicamente, dois tipos diferentes de dados de 23

36 entrada: os quadros RGB e os quadros de fluxo óptico. Ambos precisaram ser extraídos dos vídeos que fazem parte do conjunto de treinamento que contem as ações aseremclassificadas. Para a obtenção dos quadros RGB foi desenvolvido um código em Python responsável por ler os arquivos de vídeo necessários e extrair todos os seus respectivos quadros. Para lidar com a leitura e extração dos quadros foi utilizada a API em Python da biblioteca OpenCV (Open Source Computer Vision Library). Já os quadros de fluxo óptico, por questão de praticidade, foram obtidos já calculados, diretamente do repositório referente ao trabalho [17]; disponível em [52]. De acordo com sua descrição, a extração e codificação destes quadros foi realizada de maneira idêntica à relatada em [1]. Os quadros de RGB e fluxo óptico obtidos foram armazenados sem ser aplicado qualquer tipo de pré-processamento à eles. Todas as modificações necessárias foram inseridas diretamente às camadas da rede, de modo que os dados não precisaram ser alterados. Mais especificamente elas foram inseridas a um conjunto de camadas responsáveis por carregar os dados de entrada e aplicar as transformações necessárias aelesparaqueasdemaiscamadasdaredeosrecebamdamaneiraesperada.aesse conjunto de camadas, que será melhor explicado em 4.3.1, foi dado o nome de "préentrada". 4.3 Arquitetura Proposta Para todos os modelos implementados neste trabalho foi utilizada a arquitetura VGG [42] (do inglês, Visual Geometry Group) com16camadas. Aescolhaporsua utilização se deve ao fato de ser uma arquitetura amplamente aceita e utilizada na comunidade científica cujo desempenho possibilita a replicação dos resultados reportados no trabalho original [1]. Além disso, a VGG pré-treinada para o conjunto de dados de interesse - ImageNet [28] - estava disponível para a ferramenta utilizada neste trabalho, o CNTK. Este foi um fator determinante para a sua escolha, uma vez que realizar o treinamento de uma rede no ImageNet é um desafio fora do escopo deste trabalho. Arededogrupodegeometriavisualsetornoumuitoconhecidaporoferecerum bom desempenho com uma arquitetura extremamente simples. Por isso, apesar de atualmente existirem outras arquiteturas superiores, a VGG continua muito popular, sendo uma das arquiteturas padrões para redes convolucionais. Sua arquitetura é extremamente homogênea, utilizando em toda a sua extensão apenas filtros com tamanho (3 3) paraascamadasconvolucionaise(2 2) paraascamadasde agrupamento. Essa estrutura resulta em atributos mais definidos - pois são extraídos de regiões muito pequenas - e é adotada por diversos trabalhos propostos em seguida. 24

37 Por outro lado, um ponto negativo de sua utilização é a grande quantidade de parâmetros, em torno de 138 milhões. O desempenho da VGG com 16 camadas é comparável à versão da CNN-M-2048 [48] utilizada em [1], sendo ligeiramente superior. A comparação de desempenho foi realizada utilizando os resultados obtidos de ambas para a validação no ILSVRC (ImageNet Large Scale Visual Recognition Competition) [53],umdosmaiores desafios de visão computacional existente. Nele, a CNN-M-2048 obteve 13,5% de erro no enquanto a VGG16 obteve 9,33%. Logo, é possível utilizá-la sem perder a referência aos resultados reportados no trabalho original. Conv1 1 F: 3x3 S: 64 Conv1 2 F: 3x3 S: 64 A: 2x2 Conv2 1 F: 3x3 S: 128 Conv1 F: 7x7 S: 96 A: 2x2 Conv2 F: 5x5 S: 256 A: 2x2 Conv2 2 F: 3x3 S: 256 A: 2x2 Conv3 1 F: 3x3 S: 256 Conv3 F: 3x3 S: 512 Conv3 2 F: 3x3 S: 256 Conv3 3 F: 3x3 S: 256 A: 2x2 Conv4 1 F: 3x3 S: 512 Conv4 F: 3x3 S: 512 Conv4 2 F: 3x3 S: 512 Conv4 3 F: 3x3 S: 512 A: 2x2 Conv5 1 F: 3x3 S: 512 Conv5 F: 3x3 S: 512 A: 2x2 Conv5 2 F: 3x3 S: 512 Conv5 3 F: 3x3 S: 512 A: 2x2 TC6 S: 4096 TC7 S: 4096 TC8 S: 1000 softmax TC6 S: 4096 TC7 S: 2048 TC8 S: 1000 softmax Figura 4.1: Comparação entre as arquiteturas VGG16 (esquerda) e CNN-M-2048 (direita). 25

38 Na Figura 4.1 temos a ilustração da arquitetura para as redes VGG16 e CNN- M Cada camada convolucional está descrita como "Conv", e possui "S"filtros com dimensões "F". A camada de agrupamento está representada juntamente à camada convolucional que lhe precede, como "A", indicando as dimensões da janela de agrupamento. Já as camadas totalmente conectadas estão representadas como "TC", possuindo uma saída "S". Também estão explicitados os casos nos quais a função de softmax éaplicadaàsaídadacamada. Vemosqueasarquiteturasse assemelham, sendo a CNN-M-2048 uma versão ligeiramente modificada e mais rasa da VGG16. Foram treinados ao total três diferentes modelos, referentes às redes convolucional espacial, convolucional temporal utilizando fluxo óptico e convolucional temporal utilizando diferença de RGB. Apesar da arquitetura utilizada ser a mesma para todos os modelos, a entrada e saída da rede precisaram ser adaptadas em certos casos para lidar com os diferentes tipos de dados utilizados. Amodificaçãorealizadanasaídadaredefoicomumatodososmodelos. Sua última camada precisou ser adaptada às dimensões do conjunto de dados utilizado no treinamento. Na prática, a última camada totalmente conectada foi substituída por uma nova com as dimensões apropriadas. Já a camada de entrada precisou ser modificada apenas para as redes temporais, pois a rede espacial atua sobre quadros individuais de RGB, que são o tipo padrão de dado utilizado em redes convolucionais. As adaptações necessárias à entrada de cada modelo temporal serão melhor detalhadas na seção a seguir Camada de Pré-Entrada Aredeconvolucionaltemporalrecebecomoentradaumconjuntodequadros com informação de movimento. Estes quadros pertencem a uma sequência temporal, logo, é preciso que sua ordenação seja mantida ao introduzi-los na rede. Para lidar com esse requisito foi utilizada a função CompositeMinibatch do CNTK, responsável por definir e lidar com múltiplos dados de entrada. Além de garantir o ordenamento dos dados é preciso aplicar uma série de transformações aos valores recebidos. Estas transformações dependem do tipo de dado e da forma com a qual foram armazenados. Nas Seções e a seguir serão descritas as operações realizadas para os casos específicos abordados neste trabalho. Ocarregamentodasmúltiplasentradasjuntamentecomaaplicaçãodastransformações necessárias foram descritas como novas camadas da rede. A esse conjunto de camadas foi dado o nome de "pré-entrada", pois foram conectadas imediatamente antes da camada de entrada original do modelo. Dessa forma, a rede original não precisa lidar com as múltiplas entradas e transformações, mantendo sua arquitetura 26

39 básica inalterada. As Figuras 4.2 e 4.3 ilustram a arquitetura dessa camada para as redes de fluxo óptico e diferença de RGB, respectivamente Fluxo Óptico Conforme visto na Seção 3.2, os quadros de fluxo óptico são armazenados como imagens em escala de cinza, com seus valores variando entre 0 e 255. Logo, é preciso reescalar esses dados para sua extensão original, de -20 à +20. Com os valores reais em mãos, é feita a subtração da média de cada quadro, centralizando-os em zero. Este tipo de operação costuma ser benéfica uma vez que ajuda na identificação de não linearidades. Neste caso, como os dados tratam de informação de movimento, areduçãodamédiaauxiliaránacompensaçãodemovimentoglobal. Assim,omovimento externo à ação de interesse, como por exemplo a movimentação da câmera, éneutralizado.aimportânciadacompensaçãodemovimentofoireportadapreviamente em [54, 55]. Q 0 E 0 X 0 Q 1 E 1 X Q n E n X n n quadros de Múltiplas Dados Dados movimento entradas transformados empilhados ( ) (n ) Camada de entrada da rede Pré - Entrada Figura 4.2: Ilustração da camada de "pré-entrada"para a rede de fluxo óptico. Os n quadros de movimento com tamanho após passarem pela camada de pré-entrada, resultam em um único dado de tamanho n Na figura 4.2 temos a representação das transformações aplicadas às múltiplas entradas de fluxo óptico da rede convolucional temporal. Um quadro de entrada Q i émapeadoemsuarespectivaentradae i. As transformações são aplicadas aos valores recebidos E i transformando-os em X i. Logo, os valores X i correspondem aos valores originais do fluxo óptico com a redução de seu valor médio. Esses novos valores são empilhados de modo a formar um único dado, que é passado para a camada de entrada da rede original. 27

40 Diferença de RGB Sobre os múltiplos quadros de RGB que compõem a entrada desta rede é aplicada apenas uma transformação: a diferença entre dois quadros consecutivos. Conforme ilustrado na Figura 4.3, o quadro RGB Q i émapeadoemsuaentradacorrespondente E i.ovalordadiferençadergbéentãoobtidodaformax i = E i+1 E i.assim, para um conjunto de n quadros RGB de entrada, serão obtidos n 1 diferenças de RGB. Após calculadas as diferenças, estas são empilhadas com um único dado de entrada e passadas para a camada de entrada da rede original. Q 0 E 0 X 0 Q 1 E 1 X Q n E n X n 1 n quadros Múltiplas Dados Dados RGB entradas subtraídos empilhados ( ) (n ) Camada de entrada da rede Pré - Entrada Figura 4.3: Ilustração da camada de "pré-entrada"para a rede de diferença de RGB. Os n quadros RGB com tamanho após passarem pela camada de pré-entrada, resultam em um único dado de tamanho n Processo de Treinamento Métodos de Treinamento Foram aplicados dois diferentes métodos de treinamento aos modelos: ajuste fino etreinamentodozero.ambosserãomelhordescritosnasseçõesaseguir Treinamento de ajuste fino Ométododoajustefinoconsistenoaperfeiçoamentodeparâmetrosjátreinados em um problema similar para o problema desejado. Ou seja, o treinamento érealizadoapartirdeumaredepré-treinada. Paraosprocessosrealizadosneste trabalho foi utilizada como base uma rede pré-treinada no ImageNet [28] utilizando o arcabouço [56], posteriormente convertida para o formato CNTK [57]. 28

41 Após a inicialização da rede com os parâmetros pré-treinados, existem duas abordagens comuns a serem tomadas sobre o aperfeiçoamento dos mesmos durante um ajuste fino. Na primeira o treinamento ocorre normalmente, atualizando os valores dos parâmetros conforme necessário. Já no segundo caso, apenas aqueles pertencentes à última camada são atualizados. Ou seja, todos os demais parâmetros permaneceram inalterados durante o treinamento Treinamento do zero Para o método de treinamento do zero não há um ponto de partida otimizado; a rede precisa ser treinada desde o início. Nesse caso os parâmetros são inicializados aleatoriamente, normalmente seguindo alguma variação da distribuição Gaussiana ou uniforme. Este tipo de treinamento requer mais atenção, pois é muito comum acontecer o sobre-treinamento dos dados. Como a rede não começa a partir de um ponto já treinado, mas sim do zero, é preciso realizar muito mais iterações sobre os dados para que se atinja os resultados esperados. Porém, se feito em demasiado, a rede irá decorar os dados que tão repetidamente passam por ela, tornando-se sobre treinada para eles. Dessa forma, quando aplicada em novos dados, o desempenho será bastante reduzido, pois a rede não será capaz de generalizar para novas amostras. Uma forma de se evitar o sobre-treinamento dos dados é fazendo uso do parâmetro de droptout. Esteparâmetronormalmenteéutilizadoapósumacamada totalmente conectada e indica a porcentagem de dados a serem ignorados naquela iteração. Ou seja, com um valor de 0.5 de dropout, 50% dos dados serão aleatoriamente "jogados fora", e a rede terá que lidar com a falta desses valores a partir desse ponto. Essa estratégia impede que os parâmetros da camada se especializem em uma determinada característica, pois o parâmetro relativo a ela pode não estar presente numa iteração. Assim, a rede aprende a generalizar melhor Processos Individuais de Treinamento Nesta seção será descrito em detalhes os processos de treinamento seguidos por cada uma das redes implementadas por este trabalho. Para todos os casos o treinamento foi realizado em bateladas e foram utilizadas técnicas para aumento dos dados (data augmentation) sobreoconjuntodetreinamento. Acadanovabatelada,umaamostraécompostaselecionandoaleatoriamente um grupo de quadros do conjunto de treinamento. Cada quadro é cortado para o tamanho 224x224 em uma posição aleatória, além de ser aleatoriamente invertido na horizontal. Aplicar tais transformações traz considerável melhora aos resultados, como será visto nas Seções 5.3.2, e

42 Rede Espacial Conforme visto na Seção 3.1, a rede convolucional espacial atua, basicamente, como uma rede de classificação de imagens. Logo, é natural utilizar uma rede prétreinada em um amplo dataset de imagens, como o ImageNet, comobaseparao treinamento. Dessa forma, o aperfeiçoamento dos parâmetros ocorrerá de forma muito mais eficiente. Oajustedosparâmetrosduranteotreinamentodeajustefinofoiexecutado apenas para a última camada da rede. Pois, conforme relatado em [1], para este caso não há variação entre os resultados obtidos entre as duas abordagens Rede Temporal de Fluxo Óptico Aredeconvolucionaltemporaldefluxoópticorecebecomoentradaumformato de dado arbitrário muito distinto do utilizado nas redes convolucionais padrão. Por não haver uma rede de interesse pré-treinada em dados semelhantes, foi necessário realizar o treinamento a partir do zero Rede Temporal de Diferença de RGB ArededediferençasdeRGBfoitreinadadozeroeutilizandooajustefino. Utilizar uma rede pré-treinada no ImageNet como base para rede temporal não é uma decisão tão natural. Os dados de diferença de RGB utilizados capturam outros aspectos visuais do vídeo, que resultarão em distribuições diferentes das encontradas nas imagens RGB usuais. Porém, de acordo com [2], realizar este tipo de inicialização auxilia bastante o treinamento, evitando o sobre-treinamento dos parâmetros para os novos dados. Como os dados de treinamento divergem dos utilizados na rede base, foi realizado oaperfeiçoamentoparatodososparâmetrosdarededuranteoajustefino. No capítulo a seguir serão apresentados os resultados obtidos para os processos de treinamento aqui descritos, assim como os meios utilizados para avaliação dos mesmos. 30

43 Capítulo 5 Resultados Neste capítulo serão abordados os principais componentes necessários à avaliação das redes implementadas por esse trabalho. Também serão expostos os resultados obtidos para os diferentes processos de treinamento efetuados. Na Seção 5.1 é apresentado o conjunto de dados utilizado para treinamento e validação dos modelos, enquanto que na seção 5.2 são explicados os critérios escolhidos para a avaliação dos mesmos. Já nas seções 5.3, 5.4 e 5.5 são expostas as configurações e resultados obtidos durante os treinamentos realizados para cada rede. Por fim, na seção 5.6 os resultados finais para a rede de dois canais são expostos e comparados com os reportados pelo trabalho original. 5.1 Base de Dados: UCF-101 O conjunto de dados UCF-101 [3] é composto por 101 ações humanas diferentes distribuídas ao longo de clipes com, na média, 7 segundos de duração. Estes clipes são aparados ao redor da ação, ou seja, ela ocorre por toda a duração do vídeo. Cada ação possui 25 grupos compostos de 4 a 7 clipes cada. Aqueles presentes em um mesmo grupo compartilham alguns atributos, como a posição da câmera, atores e plano de fundo. Um resumo das características gerais do UCF-101 está exposto na tabela 5.1. Existem cinco categorias nas quais as ações são divididas: interação entre humano e objeto, movimento corporal, interação entre humanos, tocando instrumentos musicais e praticando esportes. O número de classes por categoria está descrito na tabela 5.2. Já na imagem 5.1 temos o exemplo de uma classe pertencente a cada categoria. As ações presentes neste conjunto de dados foram retiradas de vídeos enviados por usuários à plataforma online YouTube. Ou seja, elas retratam situações realísticas gravadas em ambientes não restritos e tipicamente possuem movimentação da câmera, variação na iluminação, oclusão parcial e imagens de baixa qualidade. A 31

44 Ações 101 Clipes Grupos por ação 25 Clipes por Grupo 4-7 Duração média por clipe 7.21 seg Duração total 1600 mins 27h Menor duração de clipe 1.06 seg Maior duração de clipe seg Frequência de quadros 25 fps Resolução 320x240 Audio Sim Tabela 5.1: Resumo das características do UCF101. Adaptado de: [3] presença de tais características é considerada positiva pois retrata as dificuldades usualmente enfrentadas pelas aplicações de reconhecimento de ação. Logo, é interessante inserir exemplos deste tipo em um conjunto de treinamento, para que as aplicações que o utilizarem saibam lidar com tais obstáculos em um cenário real. O UCF-101 foi um dos primeiros conjuntos de dados a possuir um grande número Categoria Número de classes de ação Interação entre humano e objeto 20 Movimento corporal 16 Interação entre humanos 5 Tocando instrumentos musicais 10 Praticando esportes 50 Tabela 5.2: Número de classes de ação por categoria. Secando o cabelo Bebê engatinhando Arco e flecha Cortando o cabelo Tocando flauta Figura 5.1: Exemplo de um quadro retirado de 5 ações pertencentes a categorias distintas: interação entre humano e objeto ("secando o cabelo"), movimento corporal ("bebê engatinhando"), interação entre humanos ("cortando o cabelo"), tocando instrumentos musicais ("tocando flauta") e praticando esportes ("arco e flecha"). 32

45 de classes e a lidar com vídeos realísticos. Outros conjuntos, como por exemplo os descritos em [58 61], utilizavam atores ou equipe de filmagem, além de possuírem apenas de 6 à 12 classes de ação. Devido a isto, ele foi amplamente utilizado para validação em pesquisas de reconhecimento de ação. Atualmente existem conjuntos de dados maiores e mais desafiadores que o UCF-101, como os apresentados em [62 64]. Porém, ele continua muito popular, uma vez que possibilita, principalmente, realizar a comparação com diversos resultados consolidados na litaratura. 5.2 Critérios de desempenho Aavaliaçãodarededereconhecimentodeaçõesimplementadafoirealizadano conjunto de dados UCF-101. Os provedores desta base fornecem três divisões para treinamento e teste dos dados. Em cada uma delas a base é dividida de forma que 80% dos dados pertençam ao conjunto de treinamento e os 20% restantes ao conjunto de teste. Neste caso, devido à limitação do tempo necessário de treinamento, apenas aprimeiradivisão(split 1) foi utilizada. Amétricadedesempenhoescolhidafoiaacurácia,ouseja,arazãoentreonúmero total de classificações corretas pelo número total de exemplos avaliados. O desempenho foi então medido realizando a média da precisão alcançada ao longo das classes. Nessa abordagem, classes com poucos exemplos terão a mesma influência que classes com muitos exemplos. Esta métrica foi escolhida por ser a mesma utilizada no artigo de referência, permitindo realizar a comparação dos resultados obtidos com os reportados na literatura. Durante a avaliação, dado um certo vídeo, 25 quadros uniformemente espaçados no tempo são selecionados. De cada quadro, apenas uma área de tamanho é avaliada. Esta área é recortada ao redor de seu ponto central (center crop), selecionando-se apenas o meio do quadro. O resultado final para o vídeo é então dado pela média dos resultados obtidos para a avaliação individual de cada um de seus quadros. Éimportanteressaltarquenotrabalhooriginalaavaliaçãofoifeitadeforma ligeiramente diferente. Nele, cada quadro é cortado de forma a resultar em 10 Imagem original Figura 5.2: Exemplo dos 10 quadros gerados a partir do quadro original. 33

Inteligência Artificial

Inteligência Artificial Universidade Federal de Campina Grande Departamento de Sistemas e Computação Pós-Graduação em Ciência da Computação Inteligência Artificial Aprendizagem (Redes Neurais - Complementar) Prof. a Joseana Macêdo

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

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

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

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

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

Visão computacional. Juliana Patrícia Detroz Orientador: André Tavares Silva

Visão computacional. Juliana Patrícia Detroz Orientador: André Tavares Silva Visão computacional Juliana Patrícia Detroz Orientador: André Tavares Silva Visão computacional Tentativa de replicar a habilidade humana da visão através da percepção e entendimento de uma imagem; Fazer

Leia mais

RECONHECIMENTO DE CARACTERES EM IMAGENS COM RUÍDO

RECONHECIMENTO DE CARACTERES EM IMAGENS COM RUÍDO RECONHECIMENTO DE CARACTERES EM IMAGENS COM RUÍDO Fernanda Maria Sirlene Pio SUMARIO Introdução Trabalhos Relacionados Metodologia Experimentos Conclusão Referências 2 INTRODUÇÃO Reconhecimento de Padrões

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

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

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

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

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

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

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

READING DIGITS IN NATURAL IMAGES WITH UNSUPERVISED FEATURE LEARNING

READING DIGITS IN NATURAL IMAGES WITH UNSUPERVISED FEATURE LEARNING READING DIGITS IN NATURAL IMAGES WITH UNSUPERVISED FEATURE LEARNING Fernanda Maria Sirlene READING DIGITS IN NATURAL IMAGES WITH UNSUPERVISED FEATURE LEARNING NIPS Workshop on Deep Learning and Unsupervised

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

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

Descritores de Imagem

Descritores de Imagem Descritores de Imagem André Tavares da Silva 31 de março de 2014 1 Descritores de imagem (continuação) 1.1 Frameworks de detecção de objetos SIFT (scale-invariant features transform) (Lowe, 1999) SIFT

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

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

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

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 11 de novembro de 2016 Fluxo óptico Usado para estimar

Leia mais

3 Modelos Comparativos: Teoria e Metodologia

3 Modelos Comparativos: Teoria e Metodologia 3 Modelos Comparativos: Teoria e Metodologia Para avaliar o desempenho do modelo STAR-Tree, foram estimados os modelos Naive, ARMAX e Redes Neurais. O ajuste dos modelos ARMAX e das redes neurais foi feito

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

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

RECONHECIMENTO DE CARACTERES EM PLACAS AUTOMOTIVAS UTILIZANDO REDES NEURAIS

RECONHECIMENTO DE CARACTERES EM PLACAS AUTOMOTIVAS UTILIZANDO REDES NEURAIS RECONHECIMENTO DE CARACTERES EM PLACAS AUTOMOTIVAS UTILIZANDO REDES NEURAIS Eduarda Gonçalves Dias 1 ; Wanderson Rigo 2 ; Manassés Ribeiro 3 INTRODUÇÃO Os sistemas de visão artificial vêm auxiliando o

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 AULA 03 Prof. Dr. André A. P. Biscaro 1º Semestre de 2017 INTRODUÇÃO Aprendizagem é um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo

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

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

4 Método Proposto CR AD PA NDVI Descrição geral do modelo

4 Método Proposto CR AD PA NDVI Descrição geral do modelo 34 4 Método Proposto 4.1. Descrição geral do modelo Neste trabalho, cada classe (cobertura vegetal) possui um HMM específico. Os estágios fenológicos correspondem a estados e os símbolos observáveis a

Leia mais

Redes Neurais e Sistemas Fuzzy

Redes Neurais e Sistemas Fuzzy Redes Neurais e Sistemas Fuzzy Redes de uma única camada O Perceptron elementar Classificação de padrões por um perceptron A tarefa de classificação consiste em aprender a atribuir rótulos a dados que

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

Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. Fundamentos de Computação Gráfica

Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. Fundamentos de Computação Gráfica 1. Imagens sísmicas Pontifícia Universidade Católica do Rio de Janeiro Departamento de Informática Fundamentos de Computação Gráfica Aluno: Stelmo Magalhães Barros Netto Relatório do trabalho Imagens Sísmicas

Leia mais

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

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 FACIAL UTILIZANDO EIGENFACES

RECONHECIMENTO FACIAL UTILIZANDO EIGENFACES Universidade Federal do Rio de Janeiro Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de Engenharia Programa de Engenharia de Sistemas e Computação Rio de Janeiro, RJ Brasil RECONHECIMENTO

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

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

Transformação de Imagens Digitais em Código CNC Aprimoradas com Redes Neurais Artificiais

Transformação de Imagens Digitais em Código CNC Aprimoradas com Redes Neurais Artificiais Transformação de Imagens Digitais em Código CNC Aprimoradas com Redes Neurais Artificiais Abstract. Jader Teixeira 1, Alex Vinícios Telocken 1 1 Universidade de Cruz Alta (UNICRUZ) jader033139@unicruz.edu.br,

Leia mais

Region Based CNNs. Francisco Calaça Xavier. Programa de pós-graduação em Ciências da Computação Mestrado e Doutorado. Instituto de Informática UFG

Region Based CNNs. Francisco Calaça Xavier. Programa de pós-graduação em Ciências da Computação Mestrado e Doutorado. Instituto de Informática UFG Region Based CNNs Francisco Calaça Xavier Programa de pós-graduação em Ciências da Computação Mestrado e Doutorado Instituto de Informática UFG Prof. Anderson Soares Agenda O problema Estado da arte R-CNN

Leia mais

Rastreamento de objeto e estimativa de movimento

Rastreamento de objeto e estimativa de movimento Hiroito Watanabe Rastreamento de objeto e estimativa de movimento Brasil 2015 Hiroito Watanabe Rastreamento de objeto e estimativa de movimento Relatório do trabalho 2 da disciplina de Processamento Digital

Leia mais

Inteligência Artificial. Raimundo Osvaldo Vieira [DComp IFMA Campus Monte Castelo]

Inteligência Artificial. Raimundo Osvaldo Vieira [DComp IFMA Campus Monte Castelo] Inteligência Artificial Raimundo Osvaldo Vieira [DComp IFMA Campus Monte Castelo] Aprendizagem de Máquina Área da Inteligência Artificial cujo objetivo é o desenvolvimento de técnicas computacionais sobre

Leia mais

Occupancy grid based graph-slam using the distance transform, SURF features and SGD

Occupancy grid based graph-slam using the distance transform, SURF features and SGD Occupancy grid based graph-slam using the distance transform, SURF features and SGD Autores: Arturo Gil, Miguel Juliá, Óscar Reinoso Artur Segal Kaim Agenda Introdução Arquitetura Resultados Trabalho futuro

Leia mais

Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia

Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia Aluno: Gabriel Malizia Orientador: Professor Marcelo Gattass Co-Orientador: Professor Paulo Cezar Carvalho

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

INTELIGÊNCIA ARTIFICIAL

INTELIGÊNCIA ARTIFICIAL INTELIGÊNCIA ARTIFICIAL REDES NEURAIS Caracterização Intuitiva: Em termos intuitivos, Redes Neurais Artificiais (RNAs) são modelos matemáticos inspirados nos princípios de funcionamento dos neurônios biológicos

Leia mais

O reconhecimento facial é dividido em três etapas: i) detecção da face, ii) extração de características e iii) reconhecimento da face.

O reconhecimento facial é dividido em três etapas: i) detecção da face, ii) extração de características e iii) reconhecimento da face. ESTUDO SOBRE MÉTODOS DE RECONHECIMENTO FACIAL EM FOTOGRAFIAS DIGITAIS Ana Elisa SCHMIDT¹, Elvis Cordeiro NOGUEIRA² ¹ Orientadora e docente do IFC-Campus Camboriú; ² Aluno do curso de Bacharelado em Sistemas

Leia mais

Aprendizado de Máquina

Aprendizado de Máquina Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Aprendizado de Máquina Inteligência Artificial Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

Primeiras Redes Neurais Artificiais: Perceptron e Adaline

Primeiras Redes Neurais Artificiais: Perceptron e Adaline Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Primeiras Redes Neurais Artificiais: Perceptron e Adaline DCA0121 Inteligência Artificial Aplicada Heitor

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

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

Objetivos. 1. O método desenvolvido usa características de pares de pixeis para fazer estatísticas e formar

Objetivos. 1. O método desenvolvido usa características de pares de pixeis para fazer estatísticas e formar Introdução Comidas podem apresentar deformações e variações em sua forma, além de conter muitos ingredientes, nem todos visíveis; Métodos tradicionais de reconhecimento requerem a detecção de características

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

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

UNIVERSIDADE ESTADUAL PAULISTA Campus de Sorocaba. Segmentação

UNIVERSIDADE ESTADUAL PAULISTA Campus de Sorocaba. Segmentação UNIVERSIDADE ESTADUAL PAULISTA Campus de Sorocaba Segmentação A separação dos pixeis relativos a cada objeto, ou região, é uma etapa fundamental para o sucesso do processo de análise da imagem. Embora

Leia mais

Classificação de Padrões. Abordagem prática com Redes Neurais Artificiais

Classificação de Padrões. Abordagem prática com Redes Neurais Artificiais Classificação de Padrões Abordagem prática com Redes Neurais Artificiais Agenda Parte I - Introdução ao aprendizado de máquina Parte II - Teoria RNA Parte III - Prática RNA Parte IV - Lições aprendidas

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

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 / 17 Introdução Excelentes pesquisas sobre descritores

Leia mais

2 O Modelo: SetModel. 2.1 Modelo de Informação

2 O Modelo: SetModel. 2.1 Modelo de Informação O Modelo: SetModel 2 O Modelo: SetModel 2.1 Modelo de Informação Modelo de informação é uma representação abstrata e formal de entidades incluindo suas propriedades, relações e operações que podem ser

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.1. Introdução às Redes Neurais Artificiais (RNAs) 2.1.1. Motivação

Leia mais

Redes Neurais Feedforward e Backpropagation. André Siqueira Ruela

Redes Neurais Feedforward e Backpropagation. André Siqueira Ruela Redes Neurais Feedforward e Backpropagation André Siqueira Ruela Sumário Introdução a redes feedforward Algoritmo feedforward Algoritmo backpropagation Feedforward Em uma rede feedforward, cada camada

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 Artificiais. Professor: Juan Moises Villanueva

Redes Neurais Artificiais. Professor: Juan Moises Villanueva Redes Neurais Artificiais Mestrando: Lucas Nicolau Email: lucasfnicolau@gmail.com Professor: Juan Moises Villanueva Rede Neural Direta Arquitetura com múltiplas camadas com fluxo de informação apenas em

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

Tratamento da Imagem Transformações (cont.)

Tratamento da Imagem Transformações (cont.) Universidade Federal do Rio de Janeiro - IM/DCC & NCE Tratamento da Imagem Transformações (cont.) Antonio G. Thomé thome@nce.ufrj.br Sala AEP/33 Transformações Geométricas 3 Transformações Geométricas

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

Aprendizado de Máquina

Aprendizado de Máquina Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Aprendizado de Máquina Inteligência Artificial Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

PMR2560 Visão Computacional Detecção de cores e blobs. Prof. Eduardo L. L. Cabral

PMR2560 Visão Computacional Detecção de cores e blobs. Prof. Eduardo L. L. Cabral PMR2560 Visão Computacional Detecção de cores e blobs Prof. Eduardo L. L. Cabral Objetivos Detecção de cores; Detecção de blobs. Detecção de cores Cores são facilmente identificadas nas imagens. Cor a

Leia mais

Autor: Edroaldo Lummertz da Rocha Home page: edroaldo.wordpress.com

Autor: Edroaldo Lummertz da Rocha Home page: edroaldo.wordpress.com Autor: Edroaldo Lummertz da Rocha Home page: edroaldowordpresscom E-mail: edroaldo@gmailcom Esse tutorial visa demonstrar de forma prática o processo de ajuste dos pesos sinápticos de uma rede neural artificial

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

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

ESTIMATIVA DE RADIAÇÃO SOLAR NA REGIÃO DO MACIÇO DE BATURITÉ: ABORDAGEM VIA REDES NEURAIS ARTIFICIAIS.

ESTIMATIVA DE RADIAÇÃO SOLAR NA REGIÃO DO MACIÇO DE BATURITÉ: ABORDAGEM VIA REDES NEURAIS ARTIFICIAIS. ESTIMATIVA DE RADIAÇÃO SOLAR NA REGIÃO DO MACIÇO DE BATURITÉ: ABORDAGEM VIA REDES NEURAIS ARTIFICIAIS. Arini de Menezes Costa 1, Kaio Martins Ramos 2, Hugo Hermano da Costa Castro 3, Antonio Alisson P.

Leia mais

Previsão de Vazões utilizando Redes Neurais Artificiais MLP e NSRBN

Previsão de Vazões utilizando Redes Neurais Artificiais MLP e NSRBN Previsão de Vazões utilizando Redes Neurais Artificiais MLP e NSRBN Alan Caio Rodrigues MARQUES 1, Gelson da Cruz JUNIOR 2, Cassio Dener Noronha VINHAL 3 Escola de Engenharia Elétrica e de Computação 1

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 PERCEPTRONS Prof. Dr. André A. P. Biscaro 1º Semestre de 2017 Forma mais simples de configuração das RNAs Rosenblatt (1958) retina área de projeção área de associação respostas

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

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

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

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

ANÁLISE DE IMAGENS COM DEEP LEARNING MATHEUS VIANA IBM RESEARCH BRASIL

ANÁLISE DE IMAGENS COM DEEP LEARNING MATHEUS VIANA IBM RESEARCH BRASIL ANÁLISE DE IMAGENS COM DEEP LEARNING MATHEUS VIANA IBM RESEARCH BRASIL IBM RESEARCH NO MUNDO IBM RESEARCH NO MUNDO CIÊNCIA DO COMPORTAMENTO CIÊNCIA DOS MATERIAIS QUÍMICA MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO

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

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

5 Processo de Reificação e de Desenvolvimento com ACCA

5 Processo de Reificação e de Desenvolvimento com ACCA Uma Arquitetura para a Coordenação e a Composição de Artefatos de Software 53 5 Processo de Reificação e de Desenvolvimento com ACCA Resumo Este capítulo visa esclarecer e descrever atividades existentes

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

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

PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO

PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO Esse trabalho consiste de três partes. Na primeira parte do trabalho você vai calibrar duas câmeras

Leia mais

4 Cálculo de Equivalentes Dinâmicos

4 Cálculo de Equivalentes Dinâmicos 4 Cálculo de Equivalentes Dinâmicos 4.1 Introdução Com o elevado índice de expansão dos sistemas elétricos de potência, os freqüentes aumentos nas interligações e o alto número de variáveis que envolvem

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

Mapas Auto-Organizáveis de Kohonen SOM

Mapas Auto-Organizáveis de Kohonen SOM Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Mapas Auto-Organizáveis de Kohonen SOM Redes Neurais Artificiais Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

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

Reconhecimento de Padrões

Reconhecimento de Padrões Reconhecimento de Padrões André Tavares da Silva andre.silva@udesc.br Duda e Hart Capítulo 1 Reconhecimento de Padrões (imagem) Objetivo: Interpretar um conjunto de dados através de um mapeamento (classificação)

Leia mais

Processamento de Imagem. Compressão de Imagens Professora Sheila Cáceres

Processamento de Imagem. Compressão de Imagens Professora Sheila Cáceres Processamento de Imagem Compressão de Imagens Professora Sheila Cáceres Porque comprimir? Técnicas de compressão surgiram para reduzir o espaço requerido para armazenamento e o tempo necessário para transmissão

Leia mais

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR)

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR) Visão Computacional Alessandro L. Koerich Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR) Análise da Imagem Análise da Imagem O algoritmo opera sobre a imagem e extrai

Leia mais

Aprendizado de Máquina (Machine Learning)

Aprendizado de Máquina (Machine Learning) Ciência da Computação (Machine Learning) Aula 07 Classificação com o algoritmo knn Max Pereira Classificação com o algoritmo k-nearest Neighbors (knn) Como os filmes são categorizados em gêneros? O que

Leia mais