Esta es la ruta de bioseñal del navegador principal para la mayoría de los productos: no se requieren auriculares antes de enviar una señal significativa de UX.
- Juegos de engaño o farol que reaccionan a los cambios de pulso durante los momentos clave.
- Retroalimentación de estrés o excitación en el entrenamiento y las experiencias sociales.
- Flujos de respiración y relajación que muestran una respuesta fisiológica a lo largo del tiempo.
- Aplicaciones de salud o bienestar orientadas a la biorretroalimentación que requieren señales de pulso basadas en cámaras sin hardware adicional.
Instalación
Recomendado versus avanzado
Recomendado:- Utilice
createRppgSession()para aplicaciones de navegador. - Utilice
createManagedRppgSession()cuando desee un comportamiento de reinicio integrado después de una falla del procesador del terminal. - Utilice
createRppgPipeline()de@elata-biosciences/eeg-websolo si necesita intencionalmente una ingestión de muestra de bajo nivel.
- Utilice
RppgProcessor,DemoRunner, backends personalizados o enlaces WASM generados solo si necesita una orquestación personalizada y ya comprende el ciclo de vida del tiempo de ejecución. - Si no está depurando el SDK en sí, no comience con las exportaciones WASM generadas.
Integración mínima
Flujo de integración típico
- Adquiera una transmisión de cámara en el navegador y adjúntela a un elemento
video. - Llama al
createRppgSession({ video, backend: "auto" }). - Leer métricas de
session.getMetrics(). - Diagnóstico de superficie de
onDiagnosticsosession.getDiagnostics(). - Detenga la sesión durante la limpieza con
await session.stop().
createRppgSession() posee WASM init, carga de FaceMesh, programación de fotogramas, selección de ROI, diagnóstico y limpieza.
Utilice session.state o diagnostics.state para distinguir:
- normal
running - respaldo de inicio o configuración degradada a través de
degraded - Fallo del procesador de tiempo de ejecución del terminal a través de
failed
faceMesh: "off", la sesión permanece en el modo video_frame compatible y no se informa como una falla de FaceMesh de manera predeterminada.
Si su aplicación necesita rutas de recursos explícitas en lugar de la búsqueda predeterminada /pkg/* , pase uno o más de:
wasmImporter directamente.
Flujo de reinicio administrado
Si desea que el SDK sea el propietario del tiempo de reinicio después de fallas en el procesador del terminal, use el contenedor administrado:starting, running, retryingy failed, y al mismo tiempo permite que las aplicaciones bajen al RppgSession subyacente cuando sea necesario.
Ayudantes avanzados
Instantáneas de seguimiento
Instantáneas de seguimiento
Utilice Para depurar la forma de onda de pico/umbral a partir de los datos de seguimiento, utilice
getTraceSnapshot() cuando necesite formas de onda recientes o puntos de depuración para gráficos, paneles de depuración o captura de regresión:computeTraceWaveformDebug():Normalización de errores
Normalización de errores
Utilice Esto proporciona a las aplicaciones categorías estables como
normalizeRppgError() en lugar de analizar el texto del mensaje sin formato en el código de la aplicación:wasm_init_failed, backend_unavailable, camera_not_playingy processor_failed.Adaptador de aplicación
Adaptador de aplicación
Si desea una única instantánea de la aplicación con estado de reinicio, publicación de puerta, datos de seguimiento y mensajes estables, utilice
createRppgAppAdapter():Monitor de aplicaciones
Monitor de aplicaciones
Si desea que el SDK también sea propietario del bucle de instantáneas recurrente, utilice
createRppgAppMonitor():Ayudante de reproducción de vídeo
Ayudante de reproducción de vídeo
createRppgSession() ahora espera a que el elemento de vídeo comience a reproducirse de forma predeterminada. Si necesitas coordinar ese paso tú mismo llama directamente al ensureVideoPlaying() :Cuándo utilizar la plantilla rPPG en su lugar
Prefiere la plantilla con andamiosrppg-demo cuando quieras:
- una aplicación de cámara de navegador en buen estado
- una referencia para la carga de activos empaquetados WASM
- un punto de comparación más rápido al depurar su propia integración
Problemas comunes
- Si
session.backendModeesunavailable, su aplicación probablemente no esté entregando correctamente los activospkg/empaquetados. - Si
session.state.statusesfailed, trate ese procesador como terminal y vuelva a crear la sesión en lugar de continuar sondeando métricas de él. - Si ve “la canalización de backend no tiene push_API de muestra”, probablemente haya omitido la ruta de contenedor seguro. Comience con
createRppgSession()para aplicaciones de navegador oinitEegWasm()máscreateRppgPipeline()para ingesta de bajo nivel. - Si presiona
wasmrppgpipeline_new, inicialice el módulo WASM antes de crear canalizaciones de bajo nivel y evite llamar directamente a los constructores generados. - Si ve advertencias de inicio obsoletas, dirija el inicio a través de
initEegWasm()en lugar de reenviar cadenas sin formato, URL o buffers a las exportaciones de inicio generadas. - Si falla el acceso a la cámara, confirme que la página tiene permiso para usar
getUserMedia. - Si
session.lastErrorno es nulo, usecodeymessagepara mostrar la captura real o la falla del procesador en lugar de volver a intentarlo a ciegas. - Si solo está evaluando el SDK, la aplicación con scaffolding es mucho más rápida que crear usted mismo todo el proceso del navegador.
Guía de versión
Los paquetes tienen versiones independientes, por lo que
rppg-web y eeg-web no compartirán un número de versión y las últimas versiones no son automáticamente compatibles entre sí. Si utiliza varios paquetes de Elata juntos, utilice el conjunto de pines create-elata-demo . Consulte Compatibilidad.Siguiente
Tutorial de aplicación existente
Integración paso a paso rPPG
Referencia de rppg-web
Paquete API y exportaciones
Solución de problemas
Fallos y soluciones comunes