FYI.

This story is over 5 years old.

Tech

La belle histoire de la machine à trier les Lego

18 mois et plusieurs dizaines de milliers de dollars : c'est tout ce qu'il a fallu à Jacques Mattheij pour créer une machine à trier les Lego basée sur un réseau de neurones.

Lego ou Playmobil ? Si vous avez répondu Playmobil, vous avez perdu et vous craignez ; les Lego leur sont infiniment supérieurs, c'est la vérité et vous le savez. Les petites briques de plastique danoises sont si bien conçues, si joliment colorées et si agréables à manier qu'elles captivent tous les âges. Malheureusement, elles ont une grosse faiblesse : lorsqu'elles sont libres et trop nombreuses, elles ont tendance à se mélanger en une bouillie d'angles acérés qui devra être triée tôt ou tard. Une tâche longue, difficile et inévitable pour tous les collectionneurs, exception faite de Jacques Mattheij.

Publicité

À 52 ans, Jacques Mattheij se présente comme "un éternel bricoleur qui gagne sa vie en effectuant des audits techniques pour les plus grandes sociétés de capital risque d'Europe" et rien de moins que "l'inventeur du live streaming vidéo sur le web" ; d'après Techdirt, c'est sans doute vrai. Dans un billet de blog publié le 29 avril dernier, il explique que tout a commencé à cause d'un voyage au Danemark : "Après être allé à Lego Land (…), j'ai réalisé que même les adultes achetaient des Lego en grande quantité, et pour des sommes bien supérieures à ce qu'on pourrait attendre pour de simples bouts d'ABS." Piqué au vif par ces prix élevés, il s'est dirigé vers les offres d'occasion.

Après quelques "recherches minimales", le consultant a découvert que les briques de seconde main coûtaient elles aussi très cher. Sur eBay, le kilogramme de pièces rares peut être vendu pour plusieurs centaines d'euros et le kilogramme de Lego basiques pour une dizaine d'euros ; les boîtes d'occasion, elles, se vendent pour environ 40 euros par kilogramme de pièces. Jacques Mattheij explique : "Du coup, il existe une industrie artisanale dans laquelle les gens achètent des Lego d'occasion en gros et en boîte, puis répartissent (manuellement) le tout en groupes pour séparer les plus précieux." Les lots ainsi assemblés sont ensuite revendus à prix d'or.

Sans doute frappé par le courage de ces travailleurs de l'extrême, Mattheij s'est dit qu'il "serait amusant (…) de construire un trieur automatique." Pour ce faire, il devait d'abord se procurer des pièces à trier. Un soir, avant d'aller dormir, il a donc posé plusieurs enchères sur "de grosses quantités de Lego en vrac" sur eBay. Apparemment, son portefeuille était trop épais pour la concurrence : au réveil, il était propriétaire de deux tonnes d'éléments en tout genre, de quoi remplir son garage jusqu'au plafond. "Il aurait fallu plusieurs vies pour organiser tout ça", avoue-t-il. Son projet de machine ne pouvait plus n'être qu'une idée en l'air. Les vrais problèmes allaient commencer.

Publicité

Jacques Mattheij s'est d'abord attaqué à la partie matérielle de la machine. De prototype en prototype, il a conçu un système basé sur deux tapis roulants : le premier tamise les pièces avant de les faire tomber sur le second, qui les fait passer sous une caméra reliée à un ordinateur. L'identification effectuée, elles poursuivent leur course jusqu'à une rangée de bacs. C'est là que s'opère le tri à proprement parler. En fonction de ses propriétés et de la classification choisie par l'opérateur de la machine, chaque pièce est envoyée dans un bac par un jet d'air comprimé. Pour mettre ce dispositif au point, Mattheij a dû mesurer très précisément le temps que met une pièce pour passer de la "position de scan" à la zone où se trouvent les buses de soufflage.

Le trieur de Lego avait un corps, il fallait désormais lui donner un cerveau. Au cours d'un échange de mails avec Motherboard, Jacques Mattheij a expliqué que la partie logicielle du projet avait "définitivement" été la plus difficile et chronophage. Lego distribue plus de 38 000 éléments différents dans une centaine de couleurs. Pour apprendre à son ordinateur à les reconnaître avec précision, le consultant a dû subir les tourments de la méthode essai-erreur.

Pour son premier essai, Jacques Mattheij a fait appel à OpenCV, une bibliothèque d'algorithmes de vision par ordinateur sur laquelle reposent plusieurs services de reconnaissance de plaques d'immatriculation. Malheureusement, elle s'est révélée incapable de différencier plus que les briques de base. Mattheij a donc jeté son dévolu sur la classification bayésienne, un outil algorithmique qui apprend à reconnaître les caractéristiques des éléments qui lui sont présentés et les classe en conséquence. Ce fût un nouvel échec ; malgré sa grande précision, cette méthode était trop lente.

Publicité

Le bricoleur n'a pas eu plus de chance avec sa troisième piste, l'arbre de décision : à chaque fois que la machine est confrontée à un nouvel élément, elle le classe en "interrogeant" progressivement ses caractéristiques, de la plus courante à la plus particulière. Pensez au jeu qui consiste à faire deviner un animal en répondant à des questions fermées. Cette approche permet une classification extrêmement rapide mais elle est demande un travail de préparation si important que Jacques Mattheij a choisi de l'abandonner.

Après six mois passés à cracher du code et scanner des Lego, le consultant a fait face à la réalité. Pour triompher de la partie software de son projet, il allait devoir se frotter aux réseaux de neurones. Comme le cerveau humain dont ils s'inspirent, ces assemblages d'algorithmes sont capables d'apprendre à reconnaître les éléments qui leur sont présentés : formes, visages, sons… A force de lecture, d'entraînement et de coups de mains de spécialistes, Mattheij a réussi à créer le sien. Sur son blog, il triomphe : "En quelques heures (oui, vous avez bien lu), j'avais surpassé tous les résultats que j'avais douloureusement engendrés aux cours des mois précédents." Quelques jours plus tard, le trieur était opérationnel.

Un réseau de neurones artificiels apprend en analysant une base de données ; plus elle est imposante, mieux il accomplira sa tâche. Aujourd'hui, après avoir fourni plus de 60 000 images de pièces de Lego à sa création, Jacques Mattheij affirme qu'elle est capable d'identifier des centaines d'éléments et des dizaines de couleurs différentes avec une précision supérieure à 95%. Cependant, comme elle dispose de seulement douze bacs, la machine est faite pour classer les pièces en douze catégories : palissades, espace et avions, pièces pentues, pièces diagonales, bouts de véhicules, roues, Technic… La liste complète est disponible sur le blog de "l'éternel bricoleur".

La machine terminée. Image : Jacques Mattheij

Jacques Mattheij a investi dix-huit mois de travail à plein temps et plusieurs dizaines de milliers d'euros dans son projet. Aujourd'hui, il savoure le plaisir du défi relevé en vendant ses premiers lots de pièces triées. "Les revenus dépassent les coûts de production pour la première fois, s'est-il réjoui auprès de Motherboard. Ça me rend très heureux." Il affirme que plusieurs trieurs de Lego manuels l'ont approché mais qu'il refuse de traiter avec eux : "J'ai l'impression qu'ils veulent juste mettre leurs concurrents sur la paille. (…) Je préfère ne pas participer à ça, il me semble que c'est un projet assez méchant. Beaucoup de gens arrondissent les fins de mois en triant de petits lots à la mai, je n'ai pas l'intention de les concurrencer ou de permettre à leurs adversaires de leur faire la vie dure."

En dépit de ces affirmations, le consultant semble avoir de grands projets pour sa machine. Interrogé sur la suite des événements, il détaille : "Si le business case tous frais compris (machinerie, énergie, temps…) n'est pas favorable, je confierai le projet à quelqu'un d'autre. Au contraire, s'il est fort (et ça commence à y ressembler, même si je n'en suis pas encore tout à fait sûr), je concevrai probablement une version industrielle (…) sur laquelle je baserai une affaire. S'il y a une demande à un moment, il y aura possibilité de faire une version commerciale". Alors, l'automatisation : bonne ou mauvaise chose ?