Transforme dados em insights poderosos com a Plataforma Chat Dashboard, um aplicativo on-line e gratuito que permite criar dashboards de Business Intelligence (B.I.) de forma simples, rápida e intuitiva, através de comandos de chat.
🚀 Principais recursos:
✅ Criação de dashboards automatizada via chat
✅ Integração com planilhas e bases de dados
✅ Gráficos interativos e KPIs personalizados
✅ Interface responsiva para desktop e mobile
✅ Zero código: basta conversar com o assistente
💡 Ideal para profissionais de dados, analistas, empreendedores e gestores que desejam tomar decisões baseadas em dados sem precisar programar.
🌐 Acesse agora: https://plataforma-chat-dashboard.duckdns.org/
📈 Experimente o futuro dos dashboards com IA generativa e automação inteligente.
🔖 Tags SEO:
plataforma chat dashboard, criar dashboard online, BI com inteligência artificial, business intelligence, criar dashboards grátis, app de BI, dashboard sem código, chatbot para dashboards, automação de BI, chat dashboard IA, ferramenta de análise de dados, plataforma de BI no-code, dashboards interativos online
📌 Hashtags:
#DashboardBI #InteligenciaArtificial #NoCode #ChatDashboard #BusinessIntelligence #Automacao #AnáliseDeDados #PlataformaOnline #BI
Com a Plataforma de Análise Alimentar Online, você pode descobrir todos os alimentos e nutrientes presentes em um prato apenas tirando uma foto com o celular ou enviando uma imagem.
👉 Acesse grátis: https://analise-alimentar.duckdns.org/
✅ Principais recursos:
Identificação automática de alimentos por imagem (IA)
Painel detalhado com composição nutricional
Informações sobre calorias, proteínas, gorduras e carboidratos
Funciona em mobile e desktop
100% online, gratuito e sem cadastro
Salvar e compartilhar resultados
💡 Ideal para quem busca controle alimentar, nutrição inteligente, fitness, saúde e tecnologia aplicada à alimentação.
🔎 Palavras-chave SEO: análise nutricional online, identificar alimentos por foto, aplicativo de nutrição grátis, composição nutricional, análise alimentar, dieta saudável, contagem de calorias online, aplicativo saúde IA.
#AnaliseNutricional #Saude #AlimentacaoSaudavel #Dieta #Fitness #Nutrição #SaudeEBemEstar #MicroSaaS #AppDeSaude #IAnaNutrição
Descubra o poder da inteligência artificial e visão computacional para transformar o monitoramento de ambientes!
Nosso SaaS de Análise de Fluxo utiliza câmeras para acompanhar, em tempo real, o volume de pessoas entrando e saindo, além de identificar gênero, faixa etária e raça, tudo de forma automática, precisa e segura.
👉Acesse: https://detecta-comia.ddns.net/
🚀 Principais Recursos:
✅ Contagem de pessoas em tempo real (entradas e saídas)
✅ Classificação por gênero, faixa etária e raça
✅ Monitoramento de fluxo em áreas internas de interesse
✅ Relatórios e dashboards inteligentes por:
Série temporal
Local
Câmera
Área de interesse
✅ Painéis de gestão de movimento e ocupação
✅ Visualização em tempo real e histórico
✅ Solução 100% SaaS, acessível de qualquer dispositivo
💡 Ideal para:
🛍️ Lojas e Shopping Centers
🏢 Escritórios e Prédios Corporativos
🏫 Campi Educacionais
🏥 Hospitais
🎟️ Eventos e Estádios
📊 Tenha controle total do fluxo de pessoas, otimize sua operação e tome decisões estratégicas com base em dados precisos e atualizados.
🌐 Acesse agora a plataforma e conheça o futuro da análise de fluxo inteligente:
👉 [insira o link do SaaS aqui]
🔖 Tags SEO:
análise de fluxo, visão computacional, contagem de pessoas, monitoramento em tempo real, SaaS de visão computacional, dashboard de fluxo, análise de ocupação, BI de fluxo de pessoas, inteligência artificial para monitoramento, contagem de entradas e saídas, relatório de fluxo, análise por câmera, análise de movimento, gestão de espaços, sistema de contagem de público
📌 Hashtags:
#VisãoComputacional #AnáliseDeFluxo #ContagemDePessoas #InteligênciaArtificial #SaaS #MonitoramentoEmTempoReal #BI #Dashboard #AnáliseDeDados #GestãoDeEspaços
Divirta-se com a Plataforma Games, um portal 100% gratuito com jogos online educativos, de raciocínio, arcade e desenho, direto do navegador — sem precisar baixar nada e sem cadastro!
🚀 Recursos e Vantagens:
✅ Jogos online gratuitos e ilimitados
✅ Funciona em celulares, tablets e computadores
✅ Jogos de raciocínio, lógica, arcade, desenho e educativos
✅ Interface leve, rápida e intuitiva
✅ Sem anúncios invasivos, sem necessidade de login
🧠 Aprenda brincando com os jogos educativos
🎨 Explore sua criatividade com jogos de desenho
🕹️ Teste suas habilidades com clássicos arcade
🎯 Desenvolva seu raciocínio lógico se divertindo
💡 Ideal para crianças, estudantes, educadores e qualquer pessoa que quer aprender jogando!
🌐 Acesse agora e comece a jogar:
👉 https://plataforma-games.ddns.net/
🔖 Tags SEO:
plataforma de jogos, jogos online grátis, jogos educativos, jogos de raciocínio, jogos arcade, jogos de desenho, jogos sem cadastro, jogar grátis no navegador, jogos mobile e desktop, portal de jogos, jogos inteligentes, jogos para crianças, jogos para aprender, plataforma de games
📌 Hashtags:
#JogosOnline #JogosGratuitos #PlataformaGames #JogosEducativos #JogosDeRaciocínio #Arcade #Desenho #Games #JogarOnline #SemCadastro
Título: https://monitor-cardiaco.ddns.net/
Monitoramento Não-Invasivo de Sinais Vitais via Análise de Vídeo em Tempo Real: Uma Abordagem com Detecção Facial e Processamento de Sinais Ópticos
Resumo:
Este trabalho apresenta uma abordagem de monitoramento não-invasivo de sinais vitais (SpO2 e batimentos cardíacos) a partir de análise de vídeo em tempo real utilizando uma câmera convencional. O sistema detecta faces humanas e realiza a extração de sinais ópticos da pele, permitindo a estimativa de frequência cardíaca e saturação de oxigênio no sangue por métodos derivados da foto pletismografia remota (rPPG). A aplicação implementa testes de validação para garantir a confiabilidade das leituras e é capaz de identificar situações de alerta sem suprimir dados sensíveis. Resultados pré-experimentais indicam boa correlação com equipamentos clínicos, demonstrando potencial para uso em ambientes domésticos e institucionais.
1. Introdução
O monitoramento contínuo de sinais vitais é uma necessidade crescente em contextos de saúde, especialmente em cenários de cuidados preventivos e domiciliares. Dispositivos clássicos como oxímetros são eficientes, mas possuem limitações quanto ao conforto e à necessidade de contato físico constante. Este trabalho propõe uma solução não-invasiva baseada em visão computacional que permite a medição de SpO2 e BPM a partir de uma simples câmera, com processamento em tempo real.
2. Fundamentação Teórica
2.1. Foto pletismografia Remota (rPPG)
A rPPG utiliza variações nos canais de cor da imagem (RGB) para estimar variações no volume sanguíneo. A pulsatilidade sanguínea influencia a quantidade de luz refletida na pele, possibilitando a estimativa de BPM e SpO2.
Espectro de Luz:
O olho humano só é capaz de ver uma faixa limitada do espectro
eletromagnético, que chamamos de luz visível. As câmeras, por outro lado,
podem captar luz em outros comprimentos de onda, como infravermelho ou
ultravioleta, que não são visíveis ao olho humano.
Sensibilidade:
As câmeras são mais sensíveis à luz do que o olho humano. Isso significa
que elas podem detectar diferenças sutis na quantidade de luz que
atinge um objeto, como uma mudança na cor ou textura da pele.
Processamento de Imagem:
As câmeras também têm sistemas de processamento de imagem que podem
ajudar a realçar diferenças sutis.
Comparação:
O olho humano possui um sistema complexo que capta e processa a luz, mas
a sua sensibilidade à luz tem limites.
As câmeras são dispositivos que usam sensores para captar a luz e, com a
ajuda de lentes e processamento de imagem, conseguem registrar detalhes
sutis que o olho humano pode não perceber.
2.2. Detecção e Rastreamento Facial
Utilizamos bibliotecas como MediaPipe e OpenCV para detectar a face e isolar regiões de interesse (ROI), como a testa e bochechas, que apresentam boa estabilidade luminosa.
2.3. Estimativa de BPM e SpO2
A frequência cardíaca é extraída via análise espectral (FFT) dos sinais de variação de intensidade luminosa nas ROIs. Para SpO2, é utilizada a relação entre os sinais de canais vermelho e azul, simulando o princípio de absorção espectral do oxímetro.
2.4. Validação das Leituras
Para garantir a confiabilidade, o sistema valida estabilidade de imagem, tempo de captura, ruído e consistência de batimentos. Leituras fora de padrão não são descartadas, mas sinalizadas como alertas, mantendo a transparência dos dados.
3. Metodologia
A aplicação roda em tempo real com câmeras comuns (USB ou integradas). Cada rosto identificado recebe um faceId, e seus sinais são extraídos em tempo real. A posição da face é monitorada e elementos antigos da mesma face são removidos para evitar duplicidade de leitura. O sistema calcula os sinais vitais continuamente e os apresenta na interface de forma responsiva.
4. Resultados Preliminares
Em testes com usuários em ambiente controlado, os valores estimados de BPM apresentaram correlação acima de 90% com dispositivos comerciais. A estimativa de SpO2 apresentou variações de 1-2% em relação ao oxímetro, sendo mais sensível a ruídos de iluminação e movimento. O sistema foi capaz de detectar situações de alerta como hipoxemia e taquicardia.
5. Discussão
A abordagem proposta demonstra que é viável realizar monitoramento de sinais vitais sem contato, utilizando apenas imagem. Diferentemente de soluções que descartam dados suspeitos, nossa aplicação valoriza a manutenção e análise dos dados críticos. Há potencial de expansão com uso de aprendizado de máquina para melhorar a robustez das estimativas.
6. Conclusão
Foi demonstrado que é possível monitorar BPM e SpO2 com confiabilidade aceitável utilizando apenas uma câmera e algoritmos de visão computacional. A proposta pode ser aplicada em cuidados domiciliares, triagens ou ambientes institucionais com mínimo custo. Estudos futuros incluem testes em larga escala e aprimoramento com IA.
7. Referências
Verkruysse, W., Svaasand, L. O., & Nelson, J. S. (2008). Remote plethysmographic imaging using ambient light. Optics Express.
Poh, M. Z., McDuff, D. J., & Picard, R. W. (2011). Advancements in noncontact, multiparameter physiological measurements using a webcam. IEEE Transactions on Biomedical Engineering.
Wang, W., den Brinker, A. C., Stuijk, S., & de Haan, G. (2016). Algorithmic principles of remote PPG. IEEE Transactions on Biomedical Engineering.
OMS e FDA Guidelines sobre monitoramento de sinais vitais.
Artigo Biometria Visual
Você está visualizando conteúdo gerado por usuários, que pode não ser seguro ou verificado.
Denunciar
Artigo Científico: Avaliação da Biometria Fisiológica via Imagem Facial em Tempo Real
Resumo: Este trabalho apresenta uma abordagem baseada em visião computacional para a estimativa não invasiva de sinais vitais como batimentos por minuto (BPM), nível de oxigenação no sangue (SpO₂), e variabilidade da frequência cardíaca (HRV) utilizando câmeras RGB comuns. Um sistema em tempo real foi desenvolvido e testado com 25 voluntários. Os resultados foram comparados com dispositivos médicos tradicionais como oxímetros e smartwatches. Este estudo também apresenta análises gráficas e um mapa de calor com as regiões da face mais confiáveis para a detecção.
1. Introdução A aquisição de sinais vitais por imagem tem ganhado destaque como alternativa não invasiva e acessível para monitoramento fisiológico. O presente estudo propõe um sistema de detecção baseado em câmeras RGB para a extração de BPM, SpO₂ e HRV com interface em tempo real.
2. Metodologia O sistema captura a região facial e realiza a análise temporal dos canais de cor, extraindo variações periodicamente associadas aos batimentos e oxigenação. Foram registrados os últimos 30 a 40 pontos para cada métrica em tempo real.
3. Coleta de Dados
Amostra: 25 voluntários autorizados
Faixas etárias: abaixo de 12 anos, 29-40 anos, 45-65 anos, acima de 65 anos
Dispositivos de referência: oxímetro digital, smartwatches
Sinais coletados: BPM, SpO₂, HRV, variação de pulso
4. Análise Gráfica
4.1 Evolução do BPM (Figura 1) Um gráfico de linha exibe a evolução dos últimos 30 valores de BPM coletados em tempo real. As faixas fisiológicas de referência estão representadas por linhas guias, facilitando a identificação de anomalias.
4.2 Comparativo BPM Detectado vs. Oxímetro (Figura 2) Gráfico de barras comparativas entre os valores de BPM detectados pelo sistema e os aferidos por oxímetro. A acurácia foi calculada com base no erro absoluto médio.
4.3 Comparativo SpO₂ Detectado vs. Oxímetro (Figura 3) Gráfico de dispersão comparando os valores de SpO₂ detectados pelo sistema com os aferidos. A tendência linear mostra boa correlação dentro da faixa de calibração esperada (93% a 98%).
4.4 Tabela de Acurácia (Tabela 1) Tabela contendo a acurácia do sistema para BPM e SpO₂ com base nos testes. Inclui média, desvio padrão e erro absoluto médio.
4.5 Mapa de Calor Facial (Figura 4) Este mapa ilustra as regiões da face onde as leituras apresentaram maior consistência. Regiões como testa, bochechas e nariz tiveram maior confiabilidade. As áreas estão codificadas por cores, sendo o vermelho intenso indicativo de regiões com melhor resposta fotoplestimográfica (PPG).
5. Discussão Os resultados mostram que é possível detectar sinais vitais com boa precisão usando apenas imagem facial, com erro médio abaixo de 7% para BPM e cerca de 5% para SpO₂. Diferenças em iluminação e movimento impactam a qualidade, reforçando a necessidade de calibração.
6. Conclusão A proposta demonstra viabilidade de um sistema acessível e em tempo real para leitura de sinais vitais via imagem. O sistema pode ser usado para triagens e monitoramento remoto com precisão razoável.
7. Trabalhos Futuros Planeja-se expandir a amostra de voluntários, incluir medição de pressão arterial e aperfeiçoar algoritmos de inteligência artificial para melhorar a detecção em condições adversas.
Referências:
https://people.csail.mit.edu/mrub/evm/#code
https://globoplay.globo.com/v/6879063/
Parâmetros técnicos :
📹 Parâmetros de vídeo e filtro:
fs = 30
Significado: Frequência de amostragem (frames por segundo – fps).
Padrão: 30 fps é o valor mais comum para webcams e vídeos caseiros.
Nota: Importante garantir que seja constante para boa análise de sinais.
fl, fh = 0.8, 3.0
Significado: Faixa de frequência (em Hz) para batimentos cardíacos:
fl: frequência mínima (0.8 Hz ≈ 48 bpm)
fh: frequência máxima (3.0 Hz ≈ 180 bpm)
Padrão:
0.8 Hz (~48 bpm) → normal em repouso.
3.0 Hz (~180 bpm) → batimento acelerado (crianças ou exercícios).
Usado para: filtro passa-banda Butterworth para isolar sinais fisiológicos.
buffer_size = 150
Significado: Tamanho da janela de sinais analisados (número de quadros).
Padrão:
A 30 fps, 150 quadros equivalem a 5 segundos de vídeo.
Importância: necessário para ter uma resolução de frequência aceitável.
order = 5
Significado: Ordem do filtro Butterworth.
Padrão: 4 a 6 é típico.
Quanto maior, mais íngreme a transição do filtro, mas pode causar distorções de fase.
📈 Parâmetros de amplificação de movimento (EVM):
levels = 1
Significado: Nível da pirâmide de imagem usada para decomposição espacial.
Padrão: 1 a 4
Quanto maior, mais detalhada a decomposição, mas mais processamento.
Nível 1 → mais rápido, porém menos sensível a pequenas variações.
alpha = 10
Significado: Fator de amplificação do sinal (quanto o movimento é ampliado).
Padrão:
10 a 50 para detecção de sinais fisiológicos.
Mais que 50 pode causar ruído e instabilidade visual.
Alpha é ajustado dependendo da aplicação (ex: pulsação sutil vs. movimentos maiores).
✅ Resumo dos padrões recomendados:
Parâmetro
Valor Típico
Explicação
fs
30 fps
Frequência de vídeo
fl, fh
0.8 – 3.0 Hz
Frequência de batimentos (48 – 180 bpm)
buffer_size
150 quadros
5 segundos de dados
order
4 – 6
Ordem do filtro passa-banda
levels
1 – 4
Nível da pirâmide (1 = rápido, menos preciso)
alpha
10 – 50
Amplificação do movimento (10 ideal p/ batimento)
🎯 Objetivo
Cria um filtro digital passa-banda do tipo Butterworth, que:
Permite apenas uma faixa de frequências (entre fl e fh)
Atenua (bloqueia) frequências fora dessa faixa
Tem uma resposta suave, sem ondulações (diferente de filtros tipo Chebyshev ou Elliptic)
🧠 Conceito: Filtro Butterworth
O filtro Butterworth é conhecido por sua resposta plana na banda de passagem — ou seja, não introduz variações artificiais na amplitude das frequências desejadas.
Ele é definido por uma ordem (order) que controla o quão rápido ele corta as frequências fora da faixa desejada.
📦 Entendendo as variáveis e constantes da função linha a linha:
fl: frequência de corte inferior (Hz)
fh: frequência de corte superior (Hz)
fs: frequência de amostragem do sinal (Hz)
order: ordem do filtro (mais alto = transição mais abrupta)
nyq = 0.5 * fs
Calcula a frequência de Nyquist, que é metade da taxa de amostragem.
Por quê? Porque em sinais digitais, frequências acima de fs/2 causam aliasing e não são representáveis corretamente.
low = fl / nyq
high = fh / nyq
Converte fl e fh para a escala normalizada (0 a 1), que é o que a função butter() espera.
b, a = butter(order, [low, high], btype="band")
Cria os coeficientes b (numerador) e a (denominador) do filtro Butterworth digital.
btype="band" define que é um filtro passa-banda (em vez de passa-baixa ou passa-alta).
🧪 Exemplo visual:
Se você estiver tentando detectar batimentos cardíacos:
O sinal do rosto de uma pessoa (cor da pele, variações leves) contém muitas frequências (movimentos, iluminação etc.).
Um filtro passa-banda Butterworth com fl=0.8 Hz e fh=3.0 Hz permite isolar apenas as variações compatíveis com frequência cardíaca (~48–180 bpm).
✅ Resumo:
Elemento
Função
butter()
Cria o filtro com base na faixa desejada
filtfilt()
Aplica o filtro ao sinal, evitando atraso (fase zero)
Butterworth
Mantém a amplitude das frequências desejadas sem distorção
order
Controla a rapidez do corte do filtro (mais alto = mais preciso, mais exigente)
O gráfico mostra como o filtro passa-banda Butterworth atua sobre um sinal composto por três frequências:
1 Hz (dentro da faixa permitida: 0.8–3.0 Hz)
0.2 Hz (fora da faixa — muito baixa)
5.0 Hz (fora da faixa — muito alta)
O que aconteceu:
O sinal original (linha azul clara) contém oscilações complexas, misturando todas essas frequências.
O sinal filtrado (linha azul escura) removeu as frequências abaixo de 0.8 Hz e acima de 3.0 Hz, deixando apenas o componente em torno de 1 Hz.
Explicando o filtro Butterworth:
O filtro Butterworth é um tipo de filtro digital suave que:
É projetado para ter uma resposta de magnitude plana na faixa de passagem.
Não tem ondulações nem na faixa de passagem nem na faixa de rejeição.
É ideal quando se quer preservar a forma do sinal útil sem introduzir distorções bruscas.
Neste caso:
Criamos um filtro passa-banda, que deixa passar apenas as frequências entre 0.8 Hz e 3.0 Hz (que é a faixa típica da frequência cardíaca humana).
Isso ajuda, por exemplo, em sistemas de medição de batimentos cardíacos por vídeo, isolando apenas os sinais fisiológicos relevantes.
Calcular a Variabilidade da Frequência Cardíaca (HRV) a partir dos picos detectados no sinal (ou seja, os batimentos cardíacos).
if len(peaks) < 2:
Verifica se há pelo menos dois batimentos detectados. Se não houver, não é possível calcular intervalos entre batimentos.
rr_intervals = np.diff(peaks) / fs
Calcula os intervalos RR (R-R intervals): são os tempos entre dois batimentos cardíacos consecutivos.
np.diff(peaks) retorna a diferença entre índices consecutivos dos batimentos.
Dividindo por fs (frequência de amostragem), converte essas diferenças para segundos.
return round(np.std(rr_intervals) * 1000, 2)
Calcula o desvio padrão dos intervalos RR.
Multiplica por 1000 para converter de segundos para milissegundos.
Arredonda o valor com duas casas decimais.
Exemplo prático:
Se os picos ocorrem em:
peaks = [100, 150, 200, 260]
fs = 30
np.diff(peaks) → [50, 50, 60]
rr_intervals → [50/30, 50/30, 60/30] = [1.67, 1.67, 2.0] segundos
HRV = desvio padrão desses valores, convertido para milissegundos
O que significa HRV?
HRV (Heart Rate Variability) mede a variação no tempo entre batimentos consecutivos.
É um importante indicador da atividade autonômica do coração:
Alta HRV → sistema nervoso saudável, bom controle autonômico.
Baixa HRV → pode indicar estresse, fadiga, distúrbios cardíacos ou má regulação.
O gráfico acima ilustra:
Um sinal simulado de batimentos cardíacos (linha azul).
Os picos detectados (pontos vermelhos), que correspondem aos batimentos.
As áreas amarelas mostram os intervalos RR (tempo entre batimentos sucessivos).
Os valores de cada intervalo RR estão indicados em milissegundos.
O HRV (Heart Rate Variability) calculado é o desvio padrão desses intervalos RR, representando a variabilidade da frequência cardíaca — neste exemplo, aproximadamente 62.91 ms.
Essa variabilidade é um importante indicador da saúde do sistema nervoso autônomo e da condição cardiovascular.
Essa função que realiza uma estimativa da saturação de oxigênio no sangue (SpO₂) com base em uma região de interesse (ROI) da imagem capturada pela câmera, usando a razão entre os canais de cor vermelho e verde da imagem. A técnica é relacionada ao método Eureliano (Eulerian Video Magnification - EVM), que amplifica variações sutis em sinais visuais, como mudanças de cor causadas pela pulsação sanguínea.
🔬 Como funciona a função:
red = np.mean(roi[:, :, 2]) # Média do canal vermelho (R)
green = np.mean(roi[:, :, 1]) # Média do canal verde (G)
Calcula a média de intensidade do canal vermelho e verde na imagem.
Essas médias representam a reflexão da luz pela pele, que muda sutilmente com a pulsação e oxigenação do sangue.
ratio = red / green
spo2 = 104 - (17 * ratio)
Com base em estudos empíricos, foi definida uma fórmula: SpO₂ = 104 - 17 × (R/G).
A razão R/G está correlacionada com a quantidade de oxigênio transportado no sangue.
return round(min(max(spo2, 80), 100), 0)
Garante que o valor final esteja entre 80% e 100%, que é a faixa fisiológica esperada.
📌 Ligação com o método Eureliano:
O Eulerian Video Magnification (EVM) é um método que amplifica pequenas mudanças temporais em vídeos — como a mudança de cor da pele causada pela pulsação (fluxo de sangue oxigenado e desoxigenado).
🔗 Ligação direta:
O EVM pode amplificar as micro variações nos canais vermelho e verde da pele.
Isso aumenta a sensibilidade da medição por vídeo, melhorando a estimativa de sinais fisiológicos como o SpO₂.
Assim, ao aplicar EVM antes de estimate_spo2(), a razão R/G se torna mais visivelmente oscilante e rica em informação, refletindo melhor a oxigenação sanguínea.
✅ Conclusão
Este método oferece uma forma não invasiva e baseada em vídeo para estimar a oxigenação do sangue — e, quando combinado com EVM, pode se tornar surpreendentemente eficaz para aplicações como monitoramento remoto de saúde, telemedicina e wearables com câmera.
ROI significa Região de Interesse (Region of Interest) e é um subconjunto de pixels dentro de uma imagem sobre o qual você quer se concentrar para análise ou processamento.
📌 No contexto de visão computacional:
Uma ROI é usada para limitar o processamento a uma área específica da imagem — em vez de processar a imagem inteira.
Isso economiza recursos computacionais e melhora a precisão, pois foca apenas na região relevante (por exemplo, rosto, testa, ou mão onde há sinais fisiológicos visíveis).
roi é um recorte da imagem onde se observa a pele do usuário (por exemplo, a testa).
A média das cores vermelha e verde na ROI é usada para estimar sinais fisiológicos como o SpO₂ (saturação de oxigênio).
🎯 Aplicações típicas de ROI:
Aplicação
Exemplo de ROI
Detecção facial
Região do rosto
Medição de batimentos cardíacos
Testa ou bochecha
Análise de movimento
Mão ou articulações
Leitura de placas veiculares
Placa do carro
✅ Por que usar uma ROI?
Precisão: Foca apenas onde o sinal útil está presente.
Eficiência: Reduz o tempo e recursos computacionais.
Ruído reduzido: Evita que outras partes da imagem interfiram nos cálculos.
ROI original x ROI amplificada (SpO2)
Realizar amplificação de sinais fisiológicos sutis por frame_id (como variações de cor causadas pelos batimentos cardíacos) em uma Região de Interesse (ROI) do vídeo usando o método Eulerian Video Magnification (EVM). Vamos explicar passo a passo:
🧠 Objetivo geral:
Capturar o sinal fisiológico (batimentos cardíacos) via canal verde da pele.
Armazenar esse sinal ao longo do tempo (em um buffer).
Usar o método Euleriano para amplificar as pequenas variações visuais.
Atualizar a imagem exibida com a versão amplificada da ROI.
🟢 1. Captura do canal verde (sinal fisiológico)
Captura a média da intensidade do canal verde (índice 1) da ROI.
O canal verde é usado porque reflete melhor a variação de fluxo sanguíneo na pele.
Divide por 255.0 para normalizar o valor entre 0 e 1.
Esse valor é adicionado ao fdata["signal"], que é o histórico do sinal PPG (fotopletismografia).
🧱 2. Construção da pirâmide de imagem (redução de resolução)
Converte a ROI para float32 e normaliza (valores entre 0 e 1).
Cria uma pirâmide de resolução: cada nível é uma versão reduzida da imagem anterior.
Essa pirâmide é útil para amplificar movimentos sutis em baixa frequência e baixa resolução.
🧊 3. Armazena o menor nível (mais desfocado) no buffer
Pega o menor nível da pirâmide.
Redimensiona para um tamanho fixo (36x48) — facilita o processamento.
Adiciona esse frame ao buffer temporal.
Se o buffer excede o tamanho desejado:
Remove o mais antigo para manter um buffer fixo (por exemplo, 5 segundos de vídeo).
🧪 4. Quando o buffer está cheio, aplica Eulerian Video Magnification (EVM)
Converte o buffer (lista de imagens) para um array 4D: (tempo, altura, largura, canais).
🎚️ 4.1 Filtragem temporal (Butterworth bandpass)
Aplica um filtro passa-banda de Butterworth ao longo do tempo.
Isso isola as variações de frequência dentro da faixa de batimentos cardíacos (0.8–3.0 Hz ≈ 48–180 bpm).
🔊 4.2 Amplificação do sinal
Amplifica o sinal filtrado usando um fator alpha.
clip impede que os valores ultrapassem um limite seguro (para evitar distorções).
🟥 5. Mistura o sinal amplificado na imagem original
Cria um array zerado e coloca o sinal amplificado do canal verde no canal vermelho.
Isso facilita a visualização (cores mais perceptíveis ao olho humano).
Redimensiona o último frame amplificado para o tamanho da pirâmide original e o adiciona.
🔁 6. Reconstrução da pirâmide (upsample)
Faz o caminho reverso: aumenta a resolução da imagem amplificada gradualmente até o topo da pirâmide.
Isso propaga o efeito visual amplificado de volta à resolução original.
🎨 7. Converte e insere de volta na imagem principal
Converte o topo da pirâmide de volta para uint8 (0–255).
Substitui a região da ROI original pela versão amplificada visualmente.
🔗 Ligação com o método Euleriano
O método Eulerian Video Magnification (EVM) é baseado na ideia de que:
Pequenas variações (ex: cor da pele mudando com o batimento cardíaco) podem ser amplificadas visualmente ao aplicar um filtro temporal e amplificação no espaço da imagem.
Esse trecho do código é uma implementação desse conceito para:
✅ Captar microvariações no rosto
✅ Aplicar um filtro temporal para isolar a frequência cardíaca
✅ Amplificar o sinal e visualizar os batimentos ou fluxo sanguíneo diretamente na imagem.
Conclusão (ROI original x ROI amplificado):
A finalidade de substituir a ROI original no ela ROI amplificada (em vez de usar a ROI original diretamente) está diretamente relacionada à visualização dos efeitos do processamento — principalmente no contexto do Eulerian Video Magnification (EVM).
✅ Comparando os dois:
Aspecto
ROI original
ROI (amplificada)
📷 Origem
Capturada diretamente do frame da câmera
Processada e amplificada (movimento, cor etc.)
🎯 Propósito
Extração de sinais (ex: batimentos)
Visualização do resultado amplificado
🔬 Sinais visíveis
Microscópicos (quase imperceptíveis)
Visíveis (ex: pulsação, fluxo sanguíneo, vibração)
🎨 Resultado visual
Natural, sem alterações
Realçado, com variações de cor ou movimento visíveis
🧠 Motivo principal:
Assim, o usuário pode ver claramente os efeitos fisiológicos amplificados, como:
a pulsação rítmica no rosto;
mudanças sutis de cor;
micro movimentos faciais relacionados à circulação ou respiração.
Sem esse passo, os resultados do EVM seriam só numéricos ou invisíveis, e o usuário não veria diferença alguma no vídeo.
🧪 Exemplo prático:
Imagine que você está medindo batimentos cardíacos no rosto:
ROI original: serve para extrair o sinal bruto de cor verde (para cálculo do batimento).
ROI amplificada: mostra visualmente a pulsação do rosto como se estivesse "vibrando" ou "respirando", o que facilita validação visual ou ensino.
🧩 Resumo
Por que substituir a ROI no display_frame?
✅ Para mostrar visualmente os efeitos da amplificação (EVM).
✅ Para facilitar validação e interpretação humana.
✅ Para tornar o sistema mais intuitivo e interativo.