Suricats expérimente : construire un objet connecté pour le bien de nos plantes !
Victor 2
Victor Crété
Lecture 7 min.
Une des valeurs que l’on retrouve chez tous les Suricats est la curiosité ! On aime chercher, comprendre, créer… C’est pour cela que nous avons un Lab où nous expérimentons des projets qui nous intéressent pour pouvoir en réaliser des similaires chez nos clients. Nous avons par exemple créé un chatbot interne, réalisé des objets avec notre imprimante 3D, etc. Puis, avec le confinement, nous avons souhaité renforcer notre offre tech avec la création de l’offre Tech & POC et quoi de mieux pour montrer nos capacités que de réaliser un projet nous-mêmes. Nous voulions quelque chose d’ambitieux, d’utile pour l’entreprise et que nous pourrions créer de A à Z, combinant low tech, objet connecté, application et intelligence artificielle, rien que ça ! C’est ainsi qu’est né Pôvert !

C’est quoi ça ? Pôvert ?

Avant d’entrer dans le détail de notre objet, nous allons expliquer notre méthodologie pour choisir et développer un projet au sein de notre Lab. Pour pouvoir répondre à notre stratégie d’entreprise, il a fallu commencer par nous réaligner sur nos objectifs : nous avons réalisé un atelier pour décider en quoi ce projet nous serait bénéfique. Quatre grands axes sont sortis :
  • un objet que nous pourrions réaliser nous-mêmes, aussi bien le software que le hardware. Nous souhaitions aller plus loin et ne plus être juste consommateur d’API, en développant nos propres algorithmes d’IA et en mettant en pratique nos compétences en développement, modélisation et impression 3d
  • qui doit démontrer l’usage et la pertinence d’une nouvelle technologie (dans ce cas, la reconnaissance d’image)
  • qui soit utile et qui ressemble à notre culture d’entreprise  
  • qui pourrait faire l’objet d’une démonstration à nos clients.

Nous avons ensuite commencé à imaginer des projets répondant à ces attentes, nous les avons débattus, notés selon plusieurs critères, puis retenus deux projets. A la suite de cette sélection, deux « équipes » ont travaillé sur des fiches techniques et réalisé un pitch pour défendre leur objet qui ont été présentés à tous les Suricats et soumis à un vote.

Après un dépouillement des résultats et un suspens digne d’une élection américaine, le projet Pôvert a été choisi : un objet à installer dans le pot de nos plantes qui détecterait la température, l’humidité et le taux d’exposition aux UV, puis enverrait ces informations sur une application mobile dédiée pour résumer l’état de la plante.

En bonus, nous ajouterons une partie d’IA avec de la reconnaissance d’image pour identifier la plante avant de l’inscrire dans l’application. Voici ci-dessous une bande-dessinée qui illustre son fonctionnement :

Backlog et méthodologie

Pour cadrer notre projet, nous avons appliqué la méthodologie que nous avons construites pour notre offre Tech & POC que voici ci-dessous:

Ensuite, le principal défi pour notre projet était de faire travailler les profils techniques, designer et PO ensemble. Nous avons décidé de suivre l’avancement de nos tâches sur Trello et d’avancer en méthode Agile « light » avec un backlog, une relative autonomie sur les tâches de chacun, un point hebdomadaire minimum et une première série d’objectifs à atteindre au bout de 3 mois. L’objectif final étant de présenter un MVP de l’objet et de l’application en fin d’année.

De la création collective pour concevoir le produit

Dans notre offre Tech & POC, nous mettons aussi en avant la pluridisciplinarité ! Le design de l’objet en est l’exemple le plus probant puisque notre experte design a mené un atelier (étape 3 ci-dessus) avec tous les participants au projet pour réfléchir à quoi allait ressembler l’application et comment présenter les différentes fonctionnalités. En une matinée, des maquettes ont été construites, puis elles ont été retravaillées par notre designeuse pour ajuster et coordonner l’ensemble. En voici un extrait :

Le fait d’impliquer tout l’équipe dans cette étape concrète permet à chacun de visualiser davantage l’application : développeurs et PO doivent avoir le même objectif en tête pour travailler sur leur partie respective. De la même manière, le design de l’objet en lui-même a fait l’objet d’un travail de groupe d’après des propositions de notre bricoleur en chef qui s’occupe de l’électronique, ainsi que de la modélisation 3D et de l’impression de l’objet. Et toujours, au cours de ces étapes, les curieux, développeurs, chefs de projets ou autres, peuvent aider les experts ou juste les observer pour apprendre.

Les techs à la manœuvre pour donner vie à l’objet

En parallèle de la conception de l’objet, nous n’avons pas attendu pour lancer les travaux sur la partie technique. De la même manière que pour le design, les grandes lignes du backlog technique ont été construites ensemble, puis elles ont été détaillées par les spécialistes de chaque partie. 

Trois grands axes sont nécessaires à notre objet : le développement de l’application, de l’API et de l’intelligence artificielle, le tout devant communiquer grâce à une architecture solide. Puisque nous souhaitons mettre en avant nos compétences techniques dans l’offre Tech & PoC, nous nous devions de réaliser nous-mêmes l’ensemble des étapes techniques sans utiliser de modules « prêt-à-l’emploi » de fournisseurs tiers comme AWS ou Google.

C’est pourquoi, nous avons utilisé les technologies suivantes :

  • Une API codée en Python sur un framework Flask, qui est le cerveau de l’application reliant les différents services (application, IA, objet connecté).
  • Une application Android en Java
  • Un service d’IA développé en Python avec le framework TensorFlow
  • L’objet connecté développé en C à l’aide d’un Arduino

Le projet se déroule en méthode Agile avec une attention particulière à bien documenter chaque étape sur le Trello et sur GitLab.

L’intelligence artificielle (IA) : (beaucoup) de données et des algorithmes

Chez Suricats, nous aimons expérimenter. Nous avons déjà cadré de nombreux projets d’intelligence artificielle chez nos clients, mais c’est la première fois que nous nous attaquions à ce sujet, techniquement, en interne avec l’objectif de maitriser nos données. 

Tout d’abord, il est important de comprendre que tous les Suricats ont normalement une couche de connaissance de base sur l’intelligence artificielle, soit apprise dans des expériences précédentes, soit via les formations que nous réalisons en interne. De cette manière, nous nous sommes mis à plusieurs, avec les profils techs, pour chercher et sélectionner une base de données open source sur les plantes. Ensuite, nous avons choisis nos outils pour développer l’algorithme d’IA : ce sera Tensorflow et un algorithme de type réseau neuronal convolutif (CNN) qui est plus efficace sur les images.

Notre première grande tâche, comme il est toujours de mise en IA, a été le nettoyage de la base de données pour éviter des temps de calculs trop importants lorsqu’on questionnerait notre modèle. En effet, avec une base de plus de 200 000 plantes et 680 000 images de formats différents, les temps de calculs estimés étaient énormes et l’espace de stockage pour les images prévu à plus de 1To. Nous avons donc commencé par écrire un algorithme de normalisation pour télécharger les images automatiquement, les standardiser à une certaine taille et les stocker suivant une arborescence identique (cf. image ci-dessous). 

Cette première étape a permis de sortir un dataset d’entrainement suffisant pour entrainer notre modèle. Nous en sommes aujourd’hui à la phase d’écriture du réseau de neurones, il nous restera à l’entrainer sur notre set de données avant de le déployer sur la base, puis de relier le tout à l’application via les APIs.

Alors, on le voit quand ce Pôvert ?

Comme l’a dit très justement un sage Suricats lors du choix du projet : “l’important ce n’est pas la destination mais le chemin”. Cette expérimentation au sein du Lab n’a pas pour objectif de construire un produit fini prêt à être commercialisé. Nous y voyons plutôt l’occasion de mettre en pratique nos méthodes en interne et de progresser sur des technologies. Bien sûr, nous aimerions également sauver quelques-unes de nos plantes.

Au cours de ces premiers mois de projet, nous avons beaucoup appris, notamment sur la création d’un objet low-tech puisqu’il est prévu qu’à utilisation normale, la batterie de l’objet puisse durer un an sans être rechargée ! Nos développeurs se sont également contraints à utiliser des outils qu’ils maitrisaient un peu moins pour progresser : comme Tensorflow ou le développement sur Android. 

Enfin, nous avons acquis des réflexes sur la construction d’un réseau de neurones et sur le travail nécessaire en amont pour concevoir une base de données.

Notre objectif est maintenant d’avoir un MVP pour la fin d’année et nous sommes plutôt bien partis. Notre méthodologie de l’offre Tech & POC nous a permis d’assurer une continuité dans la construction du projet. 

C’est cette approche « think > build > run » de l’offre qui nous permet de nous adapter facilement et de sortir rapidement un produit viable et présentable. Nous déciderons ensuite si nous sortons une deuxième version améliorée ou pas. Et promis, une fois le MVP terminé, nous sortirons une petite vidéo pour montrer comment fonctionne notre Pôvert et à quel point nos plantes sont resplendissantes grâce à lui !

Une question ? Un projet ? Parlons-en !

Notre expert

Olivier
Olivier Poncet
Software Craftsman

Découvrez nos dernières publications