Partons d'un cas d'usage critique pour notre société : Comment automatiser la classification de vos viennoiseries ? Et comme ces derniers sont très certainement jalousement gardé, il est hors de question de transmettre une photo à un serveur distant pour analyse.
Mais comment faire ?
Grace à TensorFlow.js il est possible de déployer un modèle de reconnaissance d'image issue du Deep Learning, directement dans le navigateur, et le tout en Javascript !
Découvrez comment exporter un modèle pre-entraînée, pour ensuite l'importer et l'exploiter dans le navigateur. Le tout avec de la live-demo et du code open-source !
3. U s e c a s e
Mes clients achètent des viennoiseries en grande quantités.
Parfois, des pains au chocolats se mélange à une commande de croissant, ou inversement.
Mes clients aimeraient une solution automatisée pour détecter les mauvais produits.
La boulangerie
Contraintes ?
Mes clients ne veulent pas d’infrastructure IT chez eux.
Mes clients ont peur que la concurrence vole leurs idées de décoration, par une attaque de type man
in the middle. Pas d’image sur le réseau.
4. Contraintes ?
Mes clients ne veulent pas d’infrastructure IT chez eux.
Mes clients ont peur que la concurrence vole leurs idées de décoration, par une attaque de type man
in the middle. Pas d’image sur le réseau.
7. Application React
Déploiement simplifié via
WebPack
Modèle via Python
Création du modèle via Keras.
Possibilités d’avoir un flux
100% JS via webGL.
Déploiement TF.js
Conversion du modèle Keras
via une API Python.
Déploiement via intégration
WebPack.
Compatible node.js
Illustration d’un use case front-
end, mais il est possible de
servir des prédictions via des
serveurs tel qu’express.
Utilisation de binding C++ et
CUDA pour des performances
maximales.
Notre produit
Classification d’image dans le browser
8. Classification d’image
Un des cas d’utilisation les
plus répandu dans le deep
learning
Jupyter Notebook
Utilisé par les data scientists
comme IDE graphique pour
leurs scripts
Deep Learning
Back end
Utilisation de tensorflow pour la classification de viennoiseries
Tensorflow + Keras
Framework de Google.
Keras est une surcouche,
maintenant intégré, de haut
niveau permettant accélérer le
développement
MobileNet
Une architecture de réseaux
de neurones développé par
Google.
Elle permet d’allier précision et
performance.
9. Votre modèle reste chez vous. Aucun soucis de vol de votre propriété
intellectuelle d’entreprise.
Non divulgation du modèle
Possibilité de changer ou d’adapter le modèle au besoin. L’eco-
systeme est plus vaste coté backend (surtout Python)
Flexibilité
Que le visiteur utilise un iMac Pro ou un téléphone bas de gamme, la
qualité de service est constante.
Qualité de service
Il est possible de garder une trace des résultats et des inputs afin
d’améliorer continuellement le modèle. Attention à prévenir les
utilisateurs !
Apprentissage continu
Back end
10. Les images et autres données ne sortent pas de votre appareil.
Confidentialité
Chaque utilisateur est responsable de ses propres prédictions. La charge est donc
répartie sur tous les utilisateurs.
Distribution de la charge de travail
Il est possible de mettre en cache le modèle afin de rendre l’utilisation hors ligne
possible.
Accès hors ligne
L’intégration de prédiction en temps réel dans vos applications ouvrent de nouvelles
perspectives en terme d’interactions.
Nouvelles possibilités UX
Front end
11. E n t r a i n e m e n t
Utilisation de Python pour entrainer
le modèle et l’exporter.
A p p l i c a t i o n
Présentation de la structure de
l’application.
Intégration d’un modèle via
WebPack.
Première utilisation de TFJS pour lire
une image.
P r é d i c t i o n
Chargement du modèle et utilisation
de TFJS afin de classifier une image.
Demo time !
De l’entrainement à la prédiction dans le navigateur en passant par le packaging
https://github.com/PPACI/Devoxx19-TensorflowJS