HACKER ANGELWHITE GALC

miércoles, 3 de junio de 2020

webcam

Una aplicación de python que detecta y resalta la frecuencia cardíaca de una persona (usando solo su propia cámara web) en tiempo real.

Fuente: https://github.com/thearn/webcam-pulse-detector/


texto alternativo

webcam-detector de pulsos

- ACTUALIZACIÓN: ahora con Python 3.5+ y soporte OpenCV 3.0+

Aplicación precompilada autónoma (sin dependencia):

  • Descargar para Windows 7 y 8: webcam-pulse-detector_win.zip (42 Mb)
  • Descargar para Mac OSX 10.6 (y posterior): webcam-pulse-detector_mac.zip (21 Mb)
  • Debian / Ubuntu / Mint Linux: muy pronto. Por ahora, se recomienda que ejecute desde el origen en la no_openmdaorama si solo quiere probar las cosas.
La aplicación se puede ejecutar simplemente ejecutando el archivo binario contenido en el archivo zip para su plataforma. Este código también puede ejecutarse desde la fuente siguiendo las instrucciones a continuación.

Un código de Python que detecta la frecuencia cardíaca de una persona con una cámara web o una cámara IP de red común. Probado en OSX, Ubuntu y Windows.

Cómo funciona:

Esta aplicación utiliza OpenCV para encontrar la ubicación de la cara del usuario y luego aislar la región de la frente. Con el tiempo, se recopilan datos de esta ubicación para estimar la frecuencia cardíaca del usuario. Esto se hace midiendo la intensidad óptica promedio en la ubicación de la frente, solo en el canal verde de la subimagen (puede existir una mejor relación de mezcla de color, pero el canal azul tiende a ser muy ruidoso). Los datos fisiológicos se pueden estimar de esta manera gracias a las características de absorción óptica de la hemoglobina (oxi) (consulte http://www.opticsinfobase.org/oe/abstract.cfm?uri=oe-16-26-21434 ).
Con buena iluminación y ruido mínimo debido al movimiento, se debe aislar un latido estable en aproximadamente 15 segundos. Otras formas de onda fisiológicas (como las ondas de Mayer ) también deben ser visibles en el flujo de datos sin procesar.
Una vez que se ha estimado la frecuencia cardíaca del usuario, también se calcula la variación de fase en tiempo real asociada con esta frecuencia. Esto permite que el latido del corazón sea exagerado en el procesamiento del cuadro posterior al proceso, lo que hace que la ubicación de la frente resaltada se sincronice con el latido del corazón del usuario.
El soporte para la detección en múltiples individuos simultáneos en el flujo de imágenes de una sola cámara es definitivamente posible, pero en este momento solo se extrae la información de una cara para su análisis.
El orden general de flujo de datos / ejecución para el procesamiento de señales en tiempo real se ve así:
texto alternativo

Requisitos:

Inicio rápido:

  • ejecuta get_pulse.py para iniciar la aplicación
python get_pulse.py
  • Para funcionar en una cámara IP, establecen el urluserpasswordcuerdas en la línea 134 de get_pulse_ipcam.py, a continuación, ejecute:
python get_pulse_ipcam.py
Esto fue probado en un Wowwee Rovio.
  • Si hay un error, intente ejecutar test_webcam.pyen el mismo directorio para verificar si su instalación de openCV y su cámara web pueden funcionar con esta aplicación.

Notas de uso:

  • Cuando se ejecute, se abrirá una ventana que muestra una transmisión desde la cámara web de su computadora.
  • Cuando se ha aislado una ubicación de la frente, el usuario debe presionar "S" en su teclado para bloquear esta ubicación y permanecer lo más quieto posible (la ventana de flujo de la cámara debe estar enfocada para que el clic se registre). Esto congela la ubicación de adquisición en su lugar. Este bloqueo se puede liberar presionando "S" nuevamente.
  • Para ver un flujo de los datos medidos a medida que se recopilan, presione "D". Para ocultar esta pantalla, presione "D" nuevamente.
  • La pantalla de datos muestra tres trazas de datos, de arriba a abajo:
    1. intensidad óptica en bruto
    2. señal de latido del corazón extraída
    3. Densidad espectral de potencia, con máximos locales que indican el ritmo cardíaco (en latidos por minuto).
  • Con una iluminación constante y un movimiento de cabeza mínimo, se debe aislar un latido estable en unos 15 a 20 segundos. Se muestra una cuenta atrás en el marco de la imagen.
  • Si se mide un gran aumento en la intensidad óptica en los datos (debido al ruido de movimiento, el cambio repentino en la iluminación, etc.), el proceso de recopilación de datos se reinicia y se vuelve a iniciar. La sensibilidad de esta función se puede modificar cambiando data_spike_limiten la línea 31 de get_pulse.py . Otros parámetros mutables del análisis también se pueden cambiar aquí.

No hay comentarios:

Publicar un comentario