Escrita Assistida por Webcam com Visão Computacional
- #Tailwind
- #Inteligência Artificial (IA)
- #JavaScript
Introdução
Ei, galera! Hoje quero compartilhar com vocês um projeto que estou desenvolvendo há um tempo. Estou trabalhando em uma versão com rastreamento ocular, utilizando APIs de reconhecimento facial e a biblioteca face-landmarks-detection. Imagina só: um editor de textos que usa a webcam para rastrear seus movimentos oculares e faciais e transformar tudo isso em escrita e fala. Legal, né?
Motivação
A ideia por trás dessa tecnologia é realmente especial. Ela foi pensada para ajudar pessoas que têm dificuldade de comunicação e locomoção a escreverem de forma mais fácil e acessível. Com essa ferramenta, a escrita se torna uma tarefa muito mais inclusiva e prática.
Origem do Projeto
Num primeiro momento, o projeto foi desenvolvido no Excel, com VBA, para ajudar na comunicação com meu pai, que havia sofrido um AVE (Ataque Vascular Encefálico), mais conhecido como AVC, em 2020. Devido às condições clínicas, meu pai não conseguiu utilizar a tecnologia desenvolvida, mas desde então venho pensando em como isso pode vir a ajudar alguém que precise e, por isso, continuei com a evolução do projeto.
Objetivo do Artigo
Este artigo não mostrará exatamente como criar o projeto, passo a passo, mas tem o objetivo de apresentar as possibilidades que as inteligências artificiais podem agregar na vida de diversas pessoas. A partir desta ideia, é possível expandir os horizontes para conexão com IoT, outras APIs, e por aí vai.
Padrão de Projeto
O projeto foi criado na estrutura MVC, utilizando Javascript, HTML e CSS (tailwind) e com algumas funções globais a serem utilizadas nas páginas:
- Controle com movimento de cabeça;
- Controle com o piscar dos olhos; e
- Controle com movimento ocular.
API
A API face-landmarks-detection fornece diversos pontos e, a partir deles, é possível realizar alguns cálculos para criar o ponteiro do mouse. Como os pontos entregues pela API atualizam muito rapidamente, uma forma para deixar o mouse mais fluído e suave foi utilizar uma função para pegar a média dos últimos x pontos que, neste caso, foram os últimos 10. Também foi adicionado um temporizador para que o usuário tenha tempo para escolher o que deseja digitar.
Configurações
Como apenas parte do projeto utiliza o auxílio de inteligência artificial, foi necessário criar uma página de configurações. Desta forma, o usuário pode adaptar a sensibilidade do "mouse" e a velocidade do temporizador.
Exemplo de uso: https://www.linkedin.com/posts/edinaldofcs-dev_link-da-p%C3%A1gina-httpslnkdindbdscxw9-activity-7045411302197837824-uNI2
Repositório do projeto: https://github.com/edinaldofcs/projeto-acessibilidade
Demo: https://edinaldofcs.github.io/projeto-acessibilidade/src/pages/head-moves/index.html