Article image
Edinaldo Santos
Edinaldo Santos04/07/2024 20:36
Share

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

image

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.

image

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

Share
Comments (1)
Edinaldo Santos
Edinaldo Santos - 04/07/2024 20:44

Estou utilizando uma rede neural para fazer a previsão dos movimentos oculares. Está complicado, mas ainda estou estudando e penso em levar como projeto de pesquisa.