Software como Recurso de Tecnologia Assistiva Baseada em Machine Learning para Aprendizagem de Libras Utilizando Visão Computacional.
- #Keras
Resumo: O softeware de tecnologia assistiva é integrado a um robô, proporcionando um novo nível de acessibilidade e interatividade para pessoas surdas ou com deficiência auditiva. O projeto utiliza aprendizado de máquina e visão computacional para reconhecer gestos em língua Brasileira de Sinais (Libras) representando letras do alfabeto e, em seguida, convertendo automaticamente esses gestos em áudio correspondente ao sinal feito com a mão do usuário, o software embarcado em um robô, oferece uma interface de usuário intuitiva, permitindo que os usuários realizem gestos usando libras em frente a uma câmera acoplada no robô. Em resposta imediata, a letra correspondente é gerada visualmente na forma de imagem e pronunciada em áudio pelo próprio robô. Essa abordagem inovadora cria uma experiência de aprendizado altamente envolvente e acessível.
1. Introdução
Em 2022 iniciei o projeto cujo o tema e um dos mais debatidos na área da Tecnologia da Informação do nosso século, a visão computacional (Computer Vision) e o aprendizado de maquina (Machine Learning), o projeto consiste no alinhamento dessas duas vertentes da computação moderna para fazer com que um software traduza a Língua Brasileira de Sinais (LIBRAS). A primeira etapa do projeto foi utilizar uma framework chamado MediaPiper na qual a funcionalidade e detectar a localização do ponto-chave de 21 coordenadas dos nós dos dedos nas regiões detectáveis da mão, o modelo segundo o site do MediaPipe foi treinado em aproximadamente 30 mil imagens do mundo real, bem como em vários modelos de mãos sintéticas renderizadas impostas sobre vários fundos, o pacote de modelos de marcadores de mão contém um modelo de detecção de palma e um modelo de detecção de pontos da mão. O modelo de detecção de palma localiza as mãos dentro da imagem captada por uma câmera seja ela de smartphone ou de computador, e o modelo de detecção de pontos de referencia de mão identifica pontos de referência específicos da mão na imagem de mão recortada definida pelo modelo de detecção de palma da mão.
Como a execução do modelo de detecção de palma é demorada, no modo de execução de vídeo ou transmissão ao vivo, o marcador de mão (Hand Landmarker) usa a caixa delimitadora definida pelo modelo de pontos de referência de mão em um quadro para localizar a região das mãos nos quadros subsequentes. O marcador de mão (Hand Landmarker) apenas reativa o modelo de detecção de palma se o modelo de pontos de referência da mão não identificar mais a presença da mão ou não conseguir rastrear as mãos dentro do quadro. Isso reduz o número de vezes que o marcador de mão (Hand Landmarker) aciona o modelo de detecção da palma da mão. Para o funcionamento dessa framework foi utilizado uma biblioteca chamada de OpenCV que e de código aberto e lançado sob a licença Apache2 é gratuito tanto para uso comercial quanto para acadêmico.
Posteriormente o modelo de machine learning utilizado foi o Aprendizagem Supervisionado que e um algoritmo que relaciona uma saída com uma entrada com base em dados rotulados, neste caso, o algoritmo foi alimentado com os sinais de libras com pares de entradas e saídas conhecidas, então em seguida as letras ficam armazenadas em um vetor. Para cada saída e atribuído um rotulo, que pode ser um valor da letra que o usuário fizer o sinal em libras, o algoritmo foi treinado utilizando a framework teachable machine a princípio o treinamento foi feito por mim mesmo onde foi treinado com apenas cinco letras do alfabeto em libras, esse pequeno dataset foi apenas um teste para ver como o algoritmo iria se comportar e acabou funcionando perfeitamente o que cominou na próxima etapa.
2. Desenvolvimento
Com o algoritmo funcionando perfeitamente resolvi implementar o dataset com mais
letras em libras, para isto foi preciso de um professor específico na área de libras então caminhei ao Núcleo de Apoio as Pessoas com Necessidades Específicas (NAPNE) do instituto federal do Amapa (IFAP). Foi elaborado um termo de consentimento livre e esclarecido assinado pelo referido professor do NAPNE, o processo seguinte se deu
em bater diversas fotos de gestos em libras feito pelo professor com excecão de letras que exigem movimentos, pois a intuição e que o sistema fique leve o suficiente para ser embarcado em um raspberry pi com o objetivo de criar um robô a confecção do robô irá ser feita com módulos que são compatíveis com a placa do raspberry os módulos são de
som, tela, câmera e uma bateria externa. No percurso do desenvolvimento foi feito diversas tarefas e uma ´
das mais difíceis foi a implementação do som no sistema, utilizando a biblioteca gTTs que manipula som conseguimos captar o som das letras geradas pelo usuário, ou seja agora com o sistema captando as letras em libras e consegui também gerar o som das respectivas letras o sistema ficou funcional.
Ate o momento, os resultados obtidos evidenciam que o software desenvolvido possui a capacidade precisa de identificar as letras em Libras, com exceção das que envolvem movimento. Essa conquista representa um avanço significativo, marcando um solido progresso na interpretação precisa dos gestos característicos dessa língua visual. Vale ressaltar que, mesmo diante da espera pela disponibilidade de recursos essenciais, como os módulos de tela, som e câmera para o Raspberry Pi, o código implementado já demonstra habilidade para gerar áudio correspondente a letra identificada.
Figura 1. Sistema Funcionando
3. Tecnologias utilizadas no desenvolvimento do projeto
Foram usadas frameworks e bibliotecas para o desenvolvimento do software essa seção tem como objetivo detalhar cada ferramenta utilizada na programação do software, primeiramente foi instalada o OpenCV que e uma biblioteca responsável por ligar a Webcam do computador, a mesma foi essencial para fazer as configurações adequadas do tamanho
da tela e a quantidades de fremes por segundos (FPS) também foram ajustada usando esta biblioteca. Logo em seguida foi a instalação da framework mais importante do desenvolvimento do trabalho o Mediapipe essa ferramenta foi a responsável pela detecção da palma da mão e os 21 coordenadas dos nós dos dedos, a próxima ferramenta foi a biblioteca Keras a função da referida ferramenta foi de compilar o projeto, o mediapipe não funciona sem essa biblioteca. Posteriormente
foi utilizada a framework que foi responsável por treinar o software chamada de Teachable Machine essa tecnologia nos proporcionou fazer o treinamento utilizando o modelo de inteligência artificial supervisionado, onde definimos classes afim de prever uma instância que no caso e a letra em libras feita pelo usuário. Essas etapas foram testadas e tivemos êxito no funcionamento do sistema, porém este não foi a última etapa, para efetivar o termino do software foi implementado uma biblioteca de detecção de áudio chamada gTTS ela foi a responsável de captar o áudio da respectiva letra gerada.
Figura 2. Esta figura contem os símbolos das ferramentas usadas
4 Embarcamento
A junção dessas tecnologias foram essências para o pleno funcionamento do sistema, foi usado a linguagem de programação Python, o projeto caminhou bem e cumpri as metas no prazo o software consegue transformar gestos em voz uma Inovação para a inclusão minha jornada de desenvolvimento, que une tecnologia assistiva, aprendizado de maquina e robótica, culminou em um projeto que redefine os limites da inclusão pensando em um futuro embarcar este software em um robô o rascunho segue na ilustração na figura três desta seção.
Figura 3. Esta figura exemplifica o robô onde no seu interior estará os módulos embarcado no Raspberry Pi.