Um espelho que lê seu pulsosem encostar em você.

A pele muda de cor a cada batimento, numa amplitudeque o olho não enxerga e a câmera enxerga.

  • sem contato
  • sem vestir nada
  • sem aplicativo
  • sem apertar botão
fotopletismografia remotatesta · canal verde
74bpmestimativa óptica, sem contato
01

O problema não é falta de aparelho. É falta de ocasião.

Doenças crônicas mataram ao menos 43 milhões de pessoas em 2021, três em cada quatro mortes no mundo fora da pandemia. No Brasil, a hipertensão subiu de 22,6% dos adultos em 2006 para 29,7% em 2024, e perto de metade de quem a tem não sabe.

Um aferidor de pressão custa pouco e um oxímetro cabe na palma da mão. O que falta não é equipamento: é o momento de usar. Medir exige decidir medir, e essa decisão compete com todo o resto do dia. O que dá trabalho não vira rotina.

O Smart Health Mirror elimina a decisão. A aferição acontece no gesto que a pessoa já faz todo dia — se olhar no espelho. O ganho não é precisão sobre os aparelhos que existem; é frequência. Um indicador aproximado visto todo dia diz mais sobre tendência do que uma medição exata feita uma vez por ano.

02

Como funciona

Nenhuma das quatro etapas pede que a pessoa faça algo diferente do que já faria diante de um espelho.

01

Aproximação

O espelho está apagado. Ao detectar um rosto, a interface acende e os indicadores passam a acompanhar a cabeça.

02

Reconhecimento

O rosto vira um vetor de 128 dimensões, comparado por distância de cosseno com quem já se cadastrou.

03

Medição

A testa é amostrada quadro a quadro. Em alguns segundos a curva de pulso aparece na tela.

04

Resposta

Com estresse alto, entram o guia de respiração e uma playlist escolhida pelo estado emocional.

03

Como é na tela

Capturas do sistema rodando. Nenhuma mostra a medição de uma pessoa: o espelho ainda não foi ensaiado com câmera e ESP32, e uma imagem com números de gente só existe depois disso.

Cabeçalho do espelho, sem câmera
Cabeçalho do espelho, sem câmeraA faixa vermelha e o rótulo "simulado" aparecem sozinhos quando não há câmera. Nada sai do modo simulado parecendo medição.
A curva de PPG como a tela desenha
A curva de PPG como a tela desenhaNormalizada por amplitude: mostra a forma do pulso, não sua intensidade, que depende da luz e não da saúde.
O cadastro num celular da rede local
O cadastro num celular da rede localFora de localhost ou HTTPS o navegador não entrega a câmera, então a tela abre a câmera do próprio aparelho.
04

O que o espelho mede, e de onde vem cada número

Toda grandeza na tela carrega sua origem. É a diferença entre o que é medido, o que vem de sensor de contato e o que é índice heurístico.

grandezaorigemnaturezaobservação
Frequência cardíacacâmera · rPPGmedidoMédia do canal verde numa região da testa, analisada por FFT na banda de 0,7 a 4 Hz.
Curva de PPGcâmera · rPPGmedidoO mesmo sinal em forma de onda, normalizado por amplitude: mostra a forma do pulso, não sua intensidade.
Batimento e SpO₂MAX30102 · dedosensorLeitura por contato. Com o dedo no sensor, a tela compara os dois métodos e mostra a diferença.
Expressão facialcâmera · DeepFaceheurísticaClassificador de expressão. A literatura contesta inferir emoção de movimento facial, então o valor é tratado como indicador, não medida.
Estresse e fadigaderivadoheurísticaÍndices calculados a partir da expressão e do batimento. Não são escalas clínicas.
Temperatura e umidade do arBME280sensorDo ambiente. Sem sensor infravermelho dedicado, o espelho não exibe temperatura corporal.
Qualidade do arMQ-135sensorSensor não calibrado, então a tela mostra índice relativo e não partes por milhão.
Luz da cenacâmerasensorBrilho médio do quadro. É condição de captura: cena escura compromete o rPPG.
05
Um número inventado é pior que um número ausente.

É um sistema de saúde: qualquer coisa exibida ao lado de um sinal vital é lida como medição. A regra não ficou no papel — virou comportamento verificável por testes automatizados.

  • Sem sensor infravermelho dedicado, a tela não mostra temperatura corporal. O firmware avisa quais sensores existem.
  • Sem câmera, o espelho segue funcionando, mas acende uma faixa vermelha e marca todo pacote como simulado.
  • Quando a câmera cai, o vídeo não congela no último quadro: vira aviso. Rosto parado na tela parece transmissão ao vivo.
  • Sem rosto no quadro, o reconhecimento devolve vazio em vez de um vetor da parede.
  • O sensor de gás não é calibrado, então a tela diz índice, e não partes por milhão.
06

O número parecia certo. Estava errado.

A transformada assumia que a câmera entregava trinta quadros por segundo. Com as análises pesadas intercaladas, a captura real rodava perto de quinze — e o eixo de frequência saía esticado na mesma proporção.

O defeito é instrutivo por não produzir valor absurdo. Cento e quarenta e seis batimentos é fisiologicamente plausível, e nenhuma inspeção da tela o denunciaria. Só a comparação contra um pulso de frequência conhecida o expôs. Interface convincente não é evidência de medição correta.

medido antes
146
O que o sistema reportava para um pulso sintético conhecido.
pulso de referência
75
Sinal injetado no teste, de frequência conhecida.
medido depois
74
Após medir a taxa real e reamostrar o sinal antes da transformada.
07

Arquitetura

O backend é o dono único da câmera. Navegador e Python disputavam o mesmo dispositivo e travavam a aplicação por segundos; hoje o Python abre a câmera uma vez e retransmite o vídeo.

Visão e sinal

  • MediaPipe FaceLandmarker478 pontos
  • rPPG próprioFFT 0,7–4 Hz
  • DeepFace · Facenet128 dim
  • OpenCVcaptura e MJPEG

Aplicação

  • FastAPIAPI REST
  • python-socketiotempo real
  • Next.js 16 · React 19interface
  • PostgreSQL · pgvectorbusca vetorial

Físico

  • ESP32hub de sensores
  • BME280 · MQ-135ambiente
  • MAX30102contato
  • WS2812Bpulso em LED
08

O que isto não é

Delimitar o escopo faz parte do projeto, não é ressalva de rodapé.

Não é dispositivo médicoSem certificação sanitária e sem validação clínica. Não emite diagnóstico nem substitui avaliação profissional.
Estimador de primeira geraçãoO rPPG usa média de canal verde com FFT, e não os métodos de crominância ou de modelo óptico, mais robustos a movimento e a variação de luz.
Validação ainda sintéticaO erro de seis bpm foi medido contra pulsos de frequência conhecida. A comparação com equipamento clínico de referência não foi feita.
Expressão não é emoçãoO classificador lê configuração facial. A literatura mostra que isso não determina estado emocional, e a interface não afirma o contrário.
09

Privacidade

Vetor facial é dado biométrico, e a Lei 13.709 o classifica como sensível.

Consentimento antes da captura

O cadastro exige aceite explícito e o servidor recusa o registro sem ele. A data do consentimento fica gravada junto do cadastro.

Guardamos o vetor, não a foto

O rosto vira 128 números. De um vetor não se reconstrói o rosto — é minimização na origem, não promessa de descarte posterior.

Direito ao esquecimento

Um endereço da API apaga o visitante e todos os seus registros na mesma operação, protegido por credencial separada da que o espelho usa.

Banco fechado por padrão

As tabelas de biometria e telemetria têm segurança em nível de linha ativada e nenhuma política para os perfis públicos.

10

Acesso ao sistema

As duas telas que rodam na feira. Elas falam com o backend local, que é o dono da câmera — abertas daqui, com esse backend fora do ar, mostram “servidor offline”. É o comportamento correto, não uma falha da página.

11

Quem fez

Projeto acadêmico desenvolvido para a FIAP NEXT.

RodrigoDiegoYvna