Les signes vitaux, par une caméra.

Trente secondes de vidéo suffisent. Saphere retrouve le pouls dans le visage d’une personne et le transforme en données de santé exploitables par votre produit. Rien à porter, rien à brancher : la caméra que vos utilisateurs ont déjà fait le travail.

Fonctionne sur le web, sur iOS et Android, et dans les applications hybrides.

Le widget Saphere Scan expliquant la mesure à un utilisateur

Ce que vous obtenez

Dix variables pour une seule vidéo

Une capture de trente secondes donne des indicateurs cardiaques, respiratoires et corporels. Chacun revient avec le signal dont il a été tiré.

Fréquence cardiaque
bpm
Fréquence respiratoire
cpm
Variabilité cardiaque
ms
Niveau de stress
échelle
Pression artérielle
mmHg
Risque d'hypertension
échelle
Âge apparent
ans
Indice de masse corporelle
kg/m²
IMC par le visage
kg/m²
Score cardiovasculaire
0–100

Chaque compte est configuré avec les variables qu’il reçoit. Quelques-unes demandent en plus la taille, le poids, l’âge et le sexe de la personne.

Comment ça marche

Lire un pouls avec de la lumière, en quatre étapes

Le sang absorbe la lumière. À chaque battement du cœur, un peu plus de sang circule sous la peau, et la couleur que le visage renvoie change très légèrement. L’œil ne le voit pas. Une caméra, si.

Une caméra ordinaire filme le visage

La caméra avant d’un téléphone, ou la webcam d’un ordinateur portable. Rien à brancher, rien à porter, rien à régler.

Les bonnes zones de peau sont suivies

Un modèle de détection de visage repère le visage. Le widget recadre dessus et ne garde que le canal de couleur qui porte le pouls, si bien que ce qu’il envoie est une petite fraction d’une vidéo.

Le pouls est reconstitué

Trente secondes de ces minuscules changements de couleur, mis bout à bout, dessinent une onde. Son rythme est celui du cœur.

Les variables sont calculées

La fréquence cardiaque, la variabilité, la respiration et les autres indicateurs se déduisent de cette onde. Chacun revient soit avec sa valeur, soit avec la raison pour laquelle il n’a pas pu être produit.

Le principe de la photopléthysmographie à distanceUn portrait dans le viseur d'une caméra, la région du visage réellement analysée encadrée, et l'onde de pouls mesurée tracée à côté.RÉGION ANALYSÉEONDE DE POULS

Pourquoi Saphere

Fait pour être intégré, pas pour être admiré

Un script, un appel

SaphereScan.create(root, options), puis bootstrap(). Le widget garde pour lui son conteneur, sa caméra et ses styles. Il ne peut pas déranger votre page, et votre page ne peut pas dérégler sa mise en page.

Le vôtre, jusqu'aux mots

Les écrans et les couleurs se préparent dans la console et s’attachent au widget par un seul identifiant. Changez une palette ou retirez un écran sans rien déployer de votre côté.

Dix langues, deux sens de lecture

Arabe, allemand, anglais, espagnol, français, italien, polonais, portugais, portugais du Brésil et turc. En arabe, toute la mise en page est retournée, de la barre d’outils aux flèches.

Votre clé reste sur votre serveur

Le widget ne détient jamais votre clé d’API. Au début de chaque mesure, il demande à votre serveur un jeton valable une seule fois, et pour peu de temps.

Clair sur la caméra

Cinq écrans distincts expliquent une caméra qui ne s’ouvre pas : autorisation refusée, aucune caméra, caméra occupée, navigateur trop ancien, demande annulée. Votre code reçoit le code correspondant, pas un échec vague.

Quarante événements, et des hooks

Chaque écran affiché, chaque état de la caméra, chaque à-coup du réseau et chaque étape de la mesure sont rapportés à votre code. Les hooks vous permettent de retenir une transition, ou de la refuser.

Intégration

D’une page vide à une vraie mesure

Le widget est un seul fichier JavaScript servi par notre CDN. Vous lui donnez un div, et il prend le relais.

<div id="scan" style="height: 100dvh"></div>

<script type="module">
    // L'adresse que vous chargez décide de l'environnement :
    // cdn.test.saphere.ai atteint le Test, et le widget le suit ensuite.
    import SaphereScan from "https://cdn.saphere.ai/saphere-scan/v2/main.js"

    const instance = SaphereScan.create("#scan", {
        lang: "fr",
        // Le widget ne détient jamais votre clé d'API. Il demande à votre
        // serveur un jeton de courte durée au début de chaque mesure.
        proxy: {
            retrieveAccessToken: {
                strategy: "delegate",
                url: "/api/saphere-token"
            }
        },
        onEvent: event => {
            if (event.type === "measure:result")
                console.log(event.result.variables)
        }
    })

    await instance.bootstrap()
</script>

Tourne là où sont vos utilisateurs

Un navigateur, une application React Native, une application Ionic ou Capacitor. Tout ce dont le widget a besoin, c’est d’une caméra et d’un conteneur.

Rien à héberger

Le code, le modèle de détection de visage et les images viennent tous de notre CDN. De votre côté, une balise de script suffit.

Dit ce qui n'a pas marché

Une caméra refusée, un jeton que votre serveur n’a pas voulu délivrer, un réseau qui lâche : chaque cas arrive sous forme d’événement nommé, pour que votre support voie ce qui s’est passé.

Pour qui

Partout où il faut mesurer un corps sans le toucher

Assurance

Souscription et programmes de bien-être, sans passage en cabinet.

Télémédecine

Des constantes relevées avant le rendez-vous, sur l'appareil du patient.

Bien-être au travail

Des points volontaires, sans matériel à distribuer.

Sport et bien-être

Des indicateurs de récupération et de stress, dans une application déjà ouverte.

Recherche

Une collecte dans la durée, à une échelle qu'aucun matériel n'atteint.

Santé connectée

Une couche de constantes pour des produits qui ont une caméra et pas de capteur.

Bornes publiques

Pharmacies et entreprises, sans contact par construction.

Véhicules et industrie

La vigilance d'un conducteur ou d'un opérateur, depuis une caméra déjà en place.

Lisez la documentation, ou parlez-nous

Le démarrage rapide conduit une mesure complète en une dizaine de minutes, sur l’environnement de Test.