Reconnaître l’objet filmé.>
Recommendations *
* Projet YSID ( YouSpeakItDisplays)
Objectif :
- Reconnaître l’objet filmé.
- Générer automatiquement des recommandations adaptées.
- Effectuer un mapping direct vers des autoslides OdoLearn (sous-chapitres).
Contexte matériel :
- Smartphone à l’utilisateur.
- Fournir des Lunettes connectées comme alternative.
Synthèse :
- 👉 Oui, c’est faisable aujourd’hui : WebRTC pour transporter, edge + cloud vision pour reconnaître, règles + RAG pour mapper vers vos autoslides OdoLearn, et retour instantané (WhatsApp ou AR)
Vue d’ensemble
1- Capture (smartphone / lunettes)
- Capture (smartphone / lunettes) → WebRTC en temps réel (vidéo + audio optionnel).
2-Transport
- Transport via STUN/TURN/SFU (selon réseau)
Conseil de souches
- : libwebrtc + Coturn (STUN/TURN). SFU : LiveKit / mediasoup (très pratique).
3- Analyse des images/frames :
- Edge/on-device (Vision/ML local) pour latence faible, ou
- Cloud (API vision temps réel : OpenAI / Google / etc.) pour richesse de reconnaissance
Conseil de souches
- Edge : MediaPipe Tasks, ONNX Runtime Mobile, CoreML / Vision, TensorRT (lunettes Android/Jetson)
4- Interpréteur (règles + RAG)
- → mapping objet → slide_ref OdoLearn.
Conseil de souches
- OpenAI (vision multimodale temps réel) pour compréhension riche,
- Google Vertex AI (Gemini/vision) pour robustesse Google,
- Apple : plutôt on-device (Vision/CoreML) + FastVLM.
RAG
- embeddings + pgvector/Qdrant ; index des slides Odoo.
5- Retour à l’utilisateur (WhatsApp, overlay AR, ou app)
- Retour à l’utilisateur (WhatsApp, overlay AR, ou app) + deep link vers le sous-chapitre.
UI de retour (exemples)
- WhatsApp : bouton “Ouvrir le sous-chapitre” + “Autres options” (comme dans vos templates).
- Lunettes : petit overlay (titre du slide + QR/URL courte) + commande vocale “ouvrir”.
PS/ Orchestration
- .Conseil de souches
- Orchestration : Node.js/TypeScript (Express + ws) ou Python (FastAPI).
Architecture recommandée
Côté client (smartphone ou lunettes)
Grâce à notre API, les développeurs peuvent construire leurs solutions quatre fois plus vite. Découvrez comment et pourquoi.
.
.
.
.
ANNEXES
.
Latence & budget de bande passante (ordre de grandeur)
WebRTC HD :
- WebRTC HD : 300–1500 kbps typique (réduire à 240–480p pour l’analyse).
Edge → cloud
- Edge → cloud (vignettes 320–512 px @ 1–2 fps) : 50–150 kbps suffisent.
Objectif latence E2E :
- Objectif latence E2E : 300–800 ms (edge-assisté) ; 1–2 s (full cloud, réseau moyen).
Mapping « vision → autoslides » (concret)
Détection (objets / texte / schémas)
- Détection (objets / texte / schémas) → ex. “panneau PV”, “onduleur hybride”, “borne MC4”, OCR d’une référence produit.
Normalisation (ontologie)
- Normalisation (ontologie) → category=pv_inverter; brand=Growatt; model=SPF 5000 ES.
Règles (rapides) :
- Si category=pv_connector & issue=overheat → slide_ref = PV-SAFETY-MC4-02.
- Si brand/model match → slide_ref = VENDOR-GROWATT-SPF5000-01.
RAG fallback :
- RAG fallback : requête sémantique avec le contexte (photo + texte) pour choisir le meilleur slide_ref.
> Renvoi : deep link
- Renvoi : deep link https://learn.ex.com/fr/slides/<slug>-<channel_id>?slide=<slide_id>.
.
.
Sécurité, conformité, vie privée
- Consentement explicite (RGPD) + bannière “caméra active”.
- Minimiser : envoyer crops/vignettes, pas le flux complet, si non nécessaire.
- Chiffrement : WebRTC DTLS-SRTP ; possibilité d’E2EE via Insertable Streams.
- Stockage : par défaut aucun enregistrement ; si enregistrement, chiffré + durée limitée.
- Cas sensible (visages) : flou on-device avant envoi.
Limites & garde-fous
- Réseau faible : basculer automatique en mode photo à la demande (prendre un cliché, pas de stream).
- Confidentialité clients : masquage/blur on-device (plaques, visages).
- Vision ambiguë : demande de précision côté utilisateur (“onduleur ou coffret DC ?”).
- Accès Odoo privé : utiliser un proxy signé (/go/<token>) pour rediriger après authentification.
POC en 10 étapes (très concret)
POC en 10 étapes (très concret)
- Signaling WebSocket + Coturn prêt.
- Client web : getUserMedia({ video: { width: 640, height: 360, frameRate: 15 } }).
- MediaStreamTrackProcessor → échantillonner 1–2 fps → ImageBitmap → JPEG 60–75%.
- Envoyez ces vignettes vers /vision/ingest (WebSocket) avec contexte texte de l’utilisateur.
- L’API vision renvoie {objects:[], ocr:[], caption: ""}.
- Normalisation (regex/ontologie/NER).
- Règles → tentative de slide_ref.
- Si ambigu → RAG top-k sur l’index OdoLearn.
- Résolution Odoo (slide_id, website_url).
- Retour (WhatsApp bouton + deep link) ou overlay AR (affichage dans lunettes)
