CacheFace Retour à l’application

Comment fonctionne CacheFace

Tout se passe dans votre navigateur : la vidéo n’est jamais envoyée sur un serveur. Voici les briques qui rendent ça possible.

Le parcours d’une vidéo

  1. 01
    Lecture

    Le fichier est lu sur votre appareil. Mediabunny ouvre le conteneur (MP4, MOV, WebM, MKV) et WebCodecs décode les images avec l’accélération matérielle de l’appareil.

  2. 02
    Détection

    Chaque image est réduite par la carte graphique, puis analysée par CenterFace, le réseau de neurones de deface, exécuté par ONNX Runtime Web.

  3. 03
    Floutage

    Les visages trouvés sont masqués avec l’API Canvas : flou, mosaïque ou masque noir, dans un ovale qui déborde largement du visage.

  4. 04
    Encodage

    WebCodecs réencode la vidéo en H.264 et Mediabunny écrit le fichier MP4 au fil de l’eau, sans le garder entier en mémoire.

La détection

CenterFace est un modèle léger (7 Mo) entraîné à repérer les visages, y compris petits ou de profil. CacheFace reprend exactement les traitements de deface avant et après le modèle, avec les mêmes réglages par défaut : sur nos images de test, les mêmes visages sont trouvés.

Le calcul se fait sur la carte graphique (WebGPU) quand elle est disponible, sinon sur le processeur (WebAssembly), dans un worker et sur plusieurs cœurs pour ne pas figer la page. Si la carte graphique décroche en cours de route, l’analyse bascule seule sur le processeur.

Pour éviter qu’un visage manqué sur une seule image ne soit dévoilé, chaque visage reste masqué un quart de seconde après avoir été perdu. L’option « 1 image sur 2 » analyse une image sur deux et calcule la position des visages entre les deux, pour un export environ deux fois plus rapide.

L’aperçu

Analyser chaque image en pleine précision pendant la lecture serait trop lent sur un téléphone. Avant l’aperçu, la vidéo est donc analysée une seule fois en basse résolution (384 px, cinq images par seconde) ; la lecture n’a plus qu’à afficher les visages déjà trouvés. À l’arrêt, l’image affichée est analysée en précision complète, comme à l’export.

Le floutage

Pour chaque image, une pyramide de versions réduites de la zone utile est calculée une seule fois ; tous les visages qui demandent le même niveau de flou sont recouverts d’un coup. Le coût reste ainsi presque le même avec deux visages ou trois cents, ce qui compte dans une foule.

L’export

La vidéo sort en MP4 (H.264), lisible partout. Le son est recopié tel quel, ou converti en AAC quand c’est nécessaire et possible. Aucune métadonnée de l’original n’est reprise : ni date, ni position GPS, ni miniature intégrée.

Le site

Code
TypeScript sans framework, construit avec Vite
Polices
Archivo et IBM Plex Mono, hébergées avec le site
Hébergement
Fichiers statiques sur Amazon S3, servis par CloudFront, infrastructure décrite avec Terraform
Domaine
cacheface.click, enregistré et géré chez Route 53 ; www et l’ancienne adresse en cloudfront.net y redirigent
Connexion
TLS 1.3 uniquement, certificat ECDSA, échange de clés post-quantique (ML-KEM) quand le navigateur le gère ; HTTPS imposé pendant deux ans, sous-domaines compris (HSTS)
DNS
Seule l’autorité de certification d’Amazon peut émettre un certificat pour le domaine (CAA) ; le domaine déclare n’envoyer aucun e-mail (MX nul, SPF, DMARC), si bien que les messages qui usurpent son nom sont rejetés
Sécurité
Politique de sécurité du contenu (le site ne charge et n’envoie rien ailleurs que chez lui), affichage dans un cadre interdit, caméra, micro et géolocalisation bloqués
Isolation
En-têtes COOP et COEP, qui autorisent le calcul sur plusieurs cœurs
Vie privée
Aucun cookie, aucun traceur, aucune requête vers un autre domaine ; les réglages restent dans votre navigateur
Navigateurs
Une version récente de Chrome, Edge, Safari ou Firefox (WebCodecs requis, WebGPU facultatif)

Crédits et licences

Le texte complet de chaque licence, y compris celles des outils de construction et des composants inclus dans ces projets, est dans licences.txt.