Reconhecimento de Gestos com Câmeras Baseadas em Eventos e CSNNs
Um projeto que usa redes neurais espinhosas pra reconhecer gestos em ASL.
― 8 min ler
Índice
Desenvolvimentos recentes em câmeras e computação inspirados em como o cérebro humano funciona levaram a novas maneiras de processar informações visuais. Uma evolução importante é o uso de Câmeras baseadas em eventos. Essas câmeras capturam mudanças em uma cena em tempo real, tornando-as super úteis para tarefas como reconhecimento de gestos. Ao combinar essas câmeras com tipos especiais de programas de computador chamados redes neurais de pulso, conseguimos analisar e classificar dados de forma mais eficiente.
Esse artigo explica um projeto que usa um tipo específico de rede neural de pulso, chamada rede neural de pulso convolucional (CSNN), para trabalhar com dados de câmeras baseadas em eventos que reconhecem gestos em Língua de Sinais Americana (ASL). O objetivo é identificar letras com base nos movimentos capturados pela câmera.
Câmeras Baseadas em Eventos
Câmeras baseadas em eventos, ao contrário das câmeras tradicionais que tiram fotos em intervalos fixos, capturam mudanças na luminosidade de cada pixel conforme elas acontecem. Cada mudança é chamada de "evento." Isso permite que elas foquem apenas nas partes de uma cena que estão mudando, tornando-as mais rápidas e menos gastadoras de energia. Elas são ótimas para capturar movimentos, parecido com como nossos olhos funcionam.
Quando uma mudança é detectada, a câmera registra o tempo, a localização e o tipo de mudança, o que ajuda na interpretação dos dados depois. Os dados coletados costumam ser esparsos, significando que nem todo pixel muda ao mesmo tempo. É aqui que entram as redes neurais de pulso, já que elas se dão bem com esse tipo de dado.
Redes Neurais de Pulso
Redes neurais de pulso são modeladas com base no cérebro. Elas processam informações usando pulsos, parecido com como as células do cérebro se comunicam. Ao contrário das redes neurais artificiais tradicionais, que usam valores contínuos, as redes de pulso usam pulsos discretos, tornando-as melhores para lidar com o tipo de dado gerado por câmeras baseadas em eventos.
Em uma rede neural de pulso, quando um neurônio recebe pulsos suficientes de outros neurônios, ele gera seu próprio pulso. Essa abordagem permite que a rede incorpore o tempo em seus cálculos, tornando possível capturar a natureza sequencial dos eventos, como o movimento de uma mão ao assinar em ASL.
Redes Neurais de Pulso Convolucionais (CSNNs)
Uma rede neural de pulso convolucional adiciona outra camada de complexidade. Ela combina os princípios de processamento espaço-temporal das redes neurais convolucionais tradicionais (CNNs) com as operações das redes neurais de pulso. Isso é útil para tarefas que envolvem reconhecer padrões em dados que mudam com o tempo, como gestos.
Neste projeto, desenhamos uma CSNN para analisar o conjunto de dados ASL-DVS, que contém gravações de pessoas sinalizando letras do alfabeto. O conjunto de dados inclui movimentos das mãos para 24 letras, excluindo J e Z devido à forma como essas letras são sinalizadas.
Conjunto de Dados ASL-DVS
O conjunto de dados ASL-DVS é criado usando um tipo especial de câmera que captura o movimento preciso dos gestos das mãos. Ele apresenta gravações de vários sujeitos, onde cada sujeito faz gestos para letras diferentes. Cada gravação é dividida em segmentos menores para facilitar a análise.
Cada ponto de dado contém informações sobre quando um evento ocorreu, a posição do evento e a mudança na luminosidade daquele pixel. Essa informação ajuda a CSNN a aprender a reconhecer os padrões únicos que correspondem a diferentes letras.
Pré-processamento de Dados
Antes de usar os dados para treinar a CSNN, alguns passos de pré-processamento são necessários. Isso envolve organizar os dados de eventos em um formato adequado para o modelo. Todos os eventos capturados são agrupados em lotes, facilitando o processamento pelo modelo.
Uma vez que os dados estão organizados, selecionamos aleatoriamente lotes de cada gravação e os salvamos em arquivos. Isso ajuda a criar um conjunto equilibrado de dados de Treinamento e validação, permitindo que o modelo aprenda de forma eficaz.
Arquitetura da CSNN
A arquitetura da CSNN usada para este projeto consiste em várias camadas. As partes principais incluem camadas convolucionais que ajudam a extrair características dos dados de entrada. Cada camada processa a entrada e passa para a próxima, que refina a informação progressivamente.
A última camada é uma camada totalmente conectada que determina a qual letra cada gesto corresponde. A arquitetura do modelo é projetada para tirar proveito das informações espaço-temporais nos dados, permitindo que aprenda e classifique gestos com precisão.
Treinando o Modelo
Para treinar o modelo, usamos um método específico de otimização conhecido como otimizador Adam. O processo de treinamento envolve ajustar os parâmetros do modelo para minimizar o erro em suas previsões. Isso é feito comparando a saída do modelo com os resultados esperados e atualizando o modelo com base nas diferenças.
Durante a fase de treinamento, monitoramos o desempenho do modelo para garantir que ele esteja aprendendo de forma eficaz. Acompanhamos a precisão das previsões do modelo e a perda, que representa o quão longe as previsões estão dos resultados reais.
O treinamento ocorre em uma plataforma de computação em nuvem para lidar com as grandes quantidades de dados e poder de processamento necessários. O modelo é testado com diferentes configurações para encontrar a melhor combinação que gera alta precisão.
Resultados
Depois do treinamento, conseguimos resultados impressionantes com o modelo CSNN. A precisão de treinamento alcançou 100%, indicando que o modelo aprendeu a reconhecer gestos com base nos dados de treinamento. No entanto, a precisão de validação foi mais baixa, em torno de 81%. Essa discrepância pode sugerir que o modelo aprendeu os dados de treinamento muito bem e pode ter dificuldades com novos dados não vistos.
Tempos de treinamento mais longos geralmente geraram melhores resultados, com a precisão e perda do modelo melhorando à medida que o número de épocas de treinamento aumentou. No entanto, a diferença entre a precisão de treinamento e validação indica que mais trabalho pode ser necessário para melhorar o desempenho de validação.
Conclusão
Esse projeto demonstra o potencial de usar redes neurais de pulso convolucionais para reconhecimento de gestos, especificamente no contexto da Língua de Sinais Americana. A combinação de câmeras baseadas em eventos e redes neurais de pulso fornece uma maneira eficiente em termos de energia para processar informações visuais.
Embora os resultados sejam promissores, ainda há espaço para melhorias, especialmente em lidar com a diferença entre a precisão de treinamento e validação. Trabalhos futuros poderiam focar em refinar o modelo e explorar técnicas adicionais para melhorar seu desempenho.
No geral, essa pesquisa abre caminho para mais avanços no campo do reconhecimento visual, o que pode levar a melhores aplicações em tecnologias assistivas e ajudas de comunicação para deficientes auditivos.
Agradecimentos
Queremos agradecer a todos que contribuíram para o desenvolvimento deste projeto. O apoio e a experiência deles foram inestimáveis para melhorar nosso entendimento sobre processamento de dados baseados em eventos e redes neurais de pulso.
Organização do Código
O repositório de código para este projeto está organizado em três diretórios principais. O diretório de animações contém visualizações que mostram os dados baseados em eventos. O diretório src contém o código do modelo e scripts necessários para carregar dados. O diretório utils inclui código para pré-processamento de dados, além de ferramentas para análise e visualização.
Na nossa implementação, usamos o framework PyTorch junto com uma extensão específica para redes neurais de pulso. Essa combinação nos permitiu processar eficientemente os conjuntos de dados neuromórficos e aplicar transformações específicas adequadas à natureza temporal dos dados.
Direções Futuras
Avançando, pesquisas adicionais poderiam explorar diferentes métodos para melhorar o desempenho do modelo, especialmente na precisão de validação. Técnicas de regularização podem ajudar a resolver problemas de overfitting, permitindo que o modelo generalize melhor para novos dados.
Além disso, expandir o conjunto de dados para incluir mais variabilidade em gestos e condições de iluminação poderia aumentar ainda mais a capacidade do modelo de reconhecer gestos com precisão. O objetivo final é criar um sistema robusto que possa ajudar efetivamente na comunicação para deficientes auditivos através do reconhecimento preciso de gestos.
Título: Using CSNNs to Perform Event-based Data Processing & Classification on ASL-DVS
Resumo: Recent advancements in bio-inspired visual sensing and neuromorphic computing have led to the development of various highly efficient bio-inspired solutions with real-world applications. One notable application integrates event-based cameras with spiking neural networks (SNNs) to process event-based sequences that are asynchronous and sparse, making them difficult to handle. In this project, we develop a convolutional spiking neural network (CSNN) architecture that leverages convolutional operations and recurrent properties of a spiking neuron to learn the spatial and temporal relations in the ASL-DVS gesture dataset. The ASL-DVS gesture dataset is a neuromorphic dataset containing hand gestures when displaying 24 letters (A to Y, excluding J and Z due to the nature of their symbols) from the American Sign Language (ASL). We performed classification on a pre-processed subset of the full ASL-DVS dataset to identify letter signs and achieved 100\% training accuracy. Specifically, this was achieved by training in the Google Cloud compute platform while using a learning rate of 0.0005, batch size of 25 (total of 20 batches), 200 iterations, and 10 epochs.
Autores: Ria Patel, Sujit Tripathy, Zachary Sublett, Seoyoung An, Riya Patel
Última atualização: 2024-08-01 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2408.00611
Fonte PDF: https://arxiv.org/pdf/2408.00611
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.