R9 Digital Matters
2020-2021
LA DIMENSIONNEUSE : ECOSYSTEME DU REEMPLOI
D’ORIA Ary Année 2019 - 2020 N°étudiant : 16028
1. 1
SOMMAIRE
AVANT PROPOS
5
INTRODUCTION
7
PARTIE 1 / L’ECOSYSTEME DIMENSIONNEUSE
8
A. Qu’est-ce que la Dimensionneuse ?
9
B. Capter la donnée
10
C. Stocker les matériaux
15
PARTIE 2 / LA DIMENSIONNEUSE EN FONCTIONNEMENT
16
A. L’architecture de la machine
17
B. Les prototypes réalisés
22
C. Fonctionnement global de la Dimensionneuse
26
D. Amélioration incrémentale de la Dimensionneuse
28
E. Bilan de l’expérience sur le prototypage : quoi améliorer
30
PARTIE 3 / MON ITERATION DE L’OUTIL A. Une Dimensionneuse capable de scanner par essence de bois B. Qu’est-ce que le Machine Learning C. L’open-source comme environnement et support D. Développement et conception de l’outil E. Récapitulatif / mode d’emploi et d’installation CONCLUSION BIBLIOGRAPHIE ET SITOGRAPHIE ANNEXE / CODE
32 33 35 37 41 48 50 52 56 1. 3
AVANT-PROPOS
Ce
travail
projet
présente
toujours
un
en
cours
de
développement,
ainsi
que
mon
apport
et
ma
contribution à son élaboration. Ce projet, la Dimensionneuse, est
un
travail
collaboratif
auquel j’ai contribué et qui a également profité de l’apport d’autres personnes: codeurs, ingénieurs ou architectes. J’ai décidé dans le cadre de ce séminaire de d’écrire ce projet, qui se veut être une machine et un écosystème favorisant
le
réemploi
du
bois en architecture, et d’en réaliser une itération afin de l’améliorer. Ce mémoire peut être vu comme une base à de prochains travaux, afin que des personnes désireuses de le faire puissent à leur tour proposer une amélioration de la Dimensionneuse. Bien que ce soit un projet open-source et collaboratif, ce que je décrirai ici est ma vision personnelle de ce projet, ainsi que mon point de vue sur les enjeux qu’il soulève. Il se peut donc que d’autres solutions techniques puissent répondre aux
enjeux
et
problèmes
techniques que j’ai identifié.
1. 5
INTRODUCTION
Introduction Dans le cadre de ce séminaire sur le Cycle de la matière, je suis parti d’un constat percutant : nous vivons, en France ainsi que dans les pays développés ou en voie de développement, bien au-dessus de nos moyens énergétiques1,2. L’industrie du bâtiment est en ce sens l’un des premiers moteurs de surconsommation, et une source de gaspillage massif. D’après le ministère de la Transition Ecologique et Solidaire, le secteur du bâtiment produit par an en France 227,5 millions de tonnes de résidus polluants, soit 75% des déchets produits par le territoire, parmi lesquels se trouvent des matériaux issus de destruction et du curage de bâtiment. Le BTP, par ailleurs responsable de 27% des émissions de CO2 et de 45% de la consommation énergétique du pays, doit donc transformer son industrie et revoir ses schémas de consommation3, notamment afin de correspondre au cadre fixé par le parlement européen : 70% de matériaux issus de la construction et de la démolition doivent être recyclés. Face à la nécessité et à l’urgence de réduire la consommation énergétique de cette industrie, il convient donc de réfléchir à de nouvelles solutions techniques et à de nouveaux modes de consommation et de requalification des déchets du bâtiment. J’ai choisi de m’intéresser à la question de la requalification des déchets bois, pouvant être réemployés dans la construction et la réalisation de nouvelles architectures. En me reposant sur une machine en cours de conception nommée la Dimensionneuse, je me suis attelé à identifier les enjeux du réemploi en architecture et à essayer de développer des solutions techniques afin de faciliter le réemploi et l’économie circulaire. Mon objectif est de déterminer quels sont les enjeux à relever dans ce cadre de recyclage, et comment favoriser au mieux la mise en place d’un cercle de consommation plus vertueux en développant une initiative telle que celle de la Dimensionneuse. Je m’attellerai par ailleurs à mettre en lumière les logiques et points à améliorer de ce dispositif open-source, et il s’agira pour moi d’expliciter les améliorations possibles de cette machine, en développant un cadre et un écosystème plus large que celui dans lequel elle s’inscrit déjà en tant que prototype.
1
Aurélien BARRAU, A. (2019). Le plus grand défi de l’histoire de l’humanité - Face à la catastrophe écologique et sociale (1re éd.). Neuilly-sur-Seine, France : Michel Lafon.
2
Le service de la donnée et des études statistiques, S. (2019, septembre). DATALAB - Chiffres clés de l’Energie - EDITION 2019. Consulté à l’adresse https://www.statistiques.developpement-durable.gouv.fr/sites/default/files/2019-09/data lab-59-chiffres-cles-energie-edition-2019-septembre2019.pdf
3
Deshayes, P. (2012). Le secteur du bâtiment face aux enjeux du développement durable : logiques d’innovation et/ou problématiques du changement. Innovations, 37(1), 219-236. doi:10.3917/inno.037.0219.
1. 7
Schéma de l’écosystème «Dimensionneuse»
PARTIE 1 / L’ECOSYSTEME «DIMENSIONNEUSE»
A / Qu’est-ce que la Dimensionneuse ? Dans le cadre de la rédaction de ce travail, je me suis reposé sur un objet d’étude pour deux raisons. Tout d’abord, cela me permet de mettre en lumière et de poser un cadre aux enjeux soulevés par la recherche de solutions de recyclage de matériaux dans le BTP. Il s’agit de déterminer correctement les problèmes, et les questions que posent la conception d’un écosystème de recyclage, afin de bien pouvoir y répondre. Ensuite, mon but est de proposer un début de solution afin de capter, stocker, archiver et recycler des déchets, pour les requalifier dans une logique d’économie énergétique et de mise en place d’une économie circulaire. Me reposer sur un objet d’étude tel que la Dimensionneuse me permettra dès lors d’étudier les applications actuelles de cette machine, et de proposer une amélioration de cette dernière afin d’élargir son impact et les performances de l’écosystème qu’elle constitue. La Dimensionneuse est un dispositif de scanner et de stockage de donnée développé de manière open-source par plusieurs acteurs sur l’initiative de WAO architecture. C’est à la fois une machine et un écosystème. C’est un dispositif permettant de capter à l’aide de capteurs (ou « sensors ») des données informatives sur un matériau donné que l’on souhaite scanner, mais c’est également une base de données dynamique permettant de faire la passerelle entre un stock d’éléments à réutiliser et les outils de productions numériques des acteurs de l’architecture (Grasshopper, Rhino3D, Catia, etc.). Pour ma part, j’ai participé à la conception de deux prototypes de la Dimensionneuse, et conçu une première base de données faisant partie de son écosystème. C’est un projet open-source et participatif et à ce titre, je n’exploiterai donc que des relevés, observations, tests et réalisations que j’ai moi-même réalisé dans le cadre de ce travail.
1. 9
B / Capter la donnée 1. Faciliter l’accès au recyclage, un moyen de développer et diversifier l’économie circulaire a. Que capter, ou comment constituer une fiche d’identité du matériau à recycler Dans une logique d’interdépendance et de coordination des moyens de production et de conception que peut permettre le numérique, l’un des principaux enjeux pour réussir à mieux recycler la matière est de savoir précisément catégoriser les éléments, afin de pouvoir en dresser des « fiches d’identités », porteuses des informations importantes de chaque déchet à être réutilisé dans un projet par n’importe quel acteur. En ce sens, il est nécessaire pour des raisons de sécurité ou de droit de trier1 les éléments traités des non-traités, de différencier les éléments abîmés des éléments sains, ou encore de manière plus basique, les formes des éléments scannés, des plus rationnelles au plus aigües. Ces paramètres, à savoir les différentes données à récupérer lors du scan d’un matériau, sont capitaux. Il convient de bien les définir, de manière à pouvoir classer, stocker, et faciliter leur réinsertion dans un projet architectural. Si la Dimensionneuse pourrait dans l’idée scanner n’importe quel matériau, je me suis pour ma part intéressé spécifiquement au bois et aux enjeux que soulèvent sa réinsertion dans le bâti. J’ai identifié - en me reposant sur les normes du BTP et en prospectant les besoins de classification2 en architecture pour le recyclage du bois - une fiche d’identité nécessaire à constituer pour permettre au plus d’acteurs divers et variés de réutiliser selon des besoins singuliers un matériau donné. En ce sens, nous savons que le bois est traditionnellement utilisé en architecture depuis des millénaires, mais également qu’il peut être utilisé comme matériau de base pour la réalisation de mobilier. Si le but premier de la Dimensionneuse est selon moi de participer au recyclage de matériau dans le bâtiment, il me semble cependant nécessaire d’élargir son application au design de mobilier de réemploi, de manière à appuyer son impact positif dans la constitution d’une consommation plus responsable de ressources. Selon le Ministère de la Transition Ecologique et Solidaire, la concentration des acteurs autour d’une solution permet en effet d’être plus efficace en cout énergétique, et d’accentuer l’impact positif d’une solution écologique.
1
Ministère de la Transition Ecologique et Solidaire, M. (2019, 27 décembre). Gestion des déchets : principes généraux. Consulté 5 janvier 2020, à l’adresse https://www.ecologique-solidaire.gouv.fr/gestion-des-dechets-principes-gene raux
2
George Thomas Tsoumis. (2020). Wood. Encyclopædia Britannica , 1--. Consulté à l’adresse https://www.britannica. com/science/wood-plant-tissue
La fiche d’identité que j’ai constituée s’appuie donc sur des paramètres à la fois esthétiques (sa couleur ou sa patine), objectifs (tels que les dimensions d’un élément ou son poids), ou encore normatifs (traitements du bois, propriétés mécaniques, classification visuelle). Je me suis reposé sur les normes de classification visuelle (NF B 52-001) et mécanique (NF EN 1912), qui permettent d’extraire un certain nombre d’informations nécessaires lorsque l’on veut réutiliser le bois selon certaines contraintes mécaniques et esthétiques, ou que l’on veut le retraiter.
Détail de deux fiches d’identité de matériau
1. 11
B / Capter la donnée 1. Faciliter l’accès au recyclage, un moyen de développer et diversifier l’économie circulaire b. Pour qui capter, ou comment proposer à des acteurs tiers la possibilité d’accéder au réemploi La constitution d’une bonne fiche d’identité du matériau permet d’élargir le champ d’application de la Dimensionneuse. Comme dit précédemment, c’est un écosystème ; plus il permet de regrouper des acteurs du bâtiment et de l’artisanat, plus son impact peut être large et positif. En ce sens, la captation des données, permettant de scanner chaque matériau selon la fiche d’identité voulue, est une partie importante de l’écosystème de la Dimensionneuse, et constitue le noyau même de la machine. De la capacité de la partie « hardware » (comprendre les composants de la machine) à bien capter les informations nécessaires à la constitution d’une fiche d’identité dépend l’échelle à laquelle la Dimensionneuse peut prétendre en tant qu’outil de réemploi. Si la machine n’est pas à même de bien capter les données nécessaires à l’archivage d’un matériau, alors sa pérennité ne peut être assurée. La Dimensionneuse doit donc être précise, et capable de capter un minimum de données servant de base à la conception d’une fiche d’identité du matériau. Pour ce faire, la partie « machine » de la Dimensionneuse peut se reposer sur un certain nombre de capteurs ou « sensors », qui lui permettent d’extraire un certain nombre de données à partir desquelles nous pouvons par la suite dresser pour chaque matériau scanné une fiche d’identité. Ces capteurs doivent être accessibles et bon marché, afin de permettre à tout un chacun de créer une Dimensionneuse. L’ADN même de cet écosystème est de permettre à n’importe qui de créer sa machine, afin de répondre et de trouver un marché là où les solutions industrielles existantes de tri, trop coûteuses et massives, ne trouvent pas preneur faute de moyens. La Dimensionneuse est pensée pour s’adapter à n’importe quelle situation du marché, pour n’importe quel acteur. Elle se veut paramétrable et paramétrique, de sorte que chacun, en partant d’une base commune de machine, puisse l’adapter à ses besoins de scan et de constitution de base de données. Les composants de la Dimensionneuse doivent donc être abordables, bons marchés et permettre un assemblage facile de la machine. En s’appuyant sur un code source opensource, chacun peut également créer sa propre itération de la machine.
En s’appuyant sur un code source open-source, chacun peut également créer sa propre itération de la machine. Le faible coût des matériaux et capteurs nécessaires à la fabrication de la machine, ainsi que le noyau open-source de la Dimensionneuse, ont pour but de la rendre la plus accessible,1 et de proposer facilement des packs à assembler soi-même, à la manière de certaines initiatives telles que Precious Plastic2.
Ecosystème de la dimensionneuse
1
Anu Maatta, Peter Troxler. (2017). Developing open & distributed tools for Fablabproject documentation. ProtoSpace (Fablab Utrecht), 1--. Consulté à l’adresse https://www.researchgate.net/profile/Peter_Troxler/publication/221273106_Developing_open_distributed_tools_for_Fablab_project_documentation/links/5433f6ba0cf2bf1f1f277f69/Developing-open-distributed-tools-for-Fablab-project-documentation.pdf
2
Precious Plastic . (2020). Precious Plastic. Consulté à l’adresse https://preciousplastic.com/
1. 13
B / Capter la donnée 2. S’adapter à l’économie globale comme à l’économie locale
Le faible coût de la Dimensionneuse a également pour idée de fond de permettre une diffusion de la machine sur plusieurs petits pôles, tels que des fablabs ou de petites entreprises de requalification de déchets [Voir WoMa / Restore, la Fabrique des Arts]. La capacité paramétrable et évolutive de la machine a ainsi pour but de s’adapter aux petites entreprises ou associations de recyclage (cela étant rendu possible par le bascoût de cette dernière), mais n’empêche pas des acteurs plus importants de l’utiliser. L’open-source est également présent pour améliorer de manière itérative la machine, en cumulant les efforts de personnes d’horizons différents pour l’améliorer en partant d’une base de données partagées entre chaque machine de scan. La Dimensionneuse, comme évoqué précédemment, est un écosystème constitué d’une machine scannant les éléments à réemployer, et d’une base de données faisant la passerelle entre les outils de production architecturale et le stock constitué de matériau à recycler. Cette base de données (ou database) est le lien entre toutes les Dimensionneuses, et conserve l’ensemble des fiches d’identité des matériaux scannés. C’est l’interaction de toutes les machines avec cette base de données qui permet à la fois de traiter la petite échelle et la grande échelle, chaque matériau scanné étant répertorié localement comme appartenant au stock de référence de la machine l’ayant catégorisé. L’objectif de cette base de donné est multiple ; il permet de regrouper ensemble tous les utilisateurs de Dimensionneuses, créant un écosystème évolutif et incrémental répertoriant l’ensemble des éléments scannés par tous les utilisateurs. Cette database permet, à travers une fiche d’identité de matériaux normalisée (à partir de laquelle chaque utilisateur peut rajouter ou non des éléments et données supplémentaires) de créer une plateforme de grande ampleur à partir de plusieurs petits stocks à partir de laquelle chacun pourrait interagir. L’idée encadrant cette base de données est de mutualiser les stocks de matériaux disponibles pour le recyclage, et de proposer à chacun de rechercher dans un large stock numérique des matériaux selon leurs singularités définies par les fiches d’identité de matériaux, et leur localité. En dématérialisant l’accès au stockage de ces matériaux, on désenclave l’accès aux matériaux à recycler. On s’assure de leur qualité, et on peut conserver leurs informations sur du long terme.
C/ Stocker les matériaux Stocker les matériaux, c’est hiérarchiser, trier, séparer les éléments de manière à pouvoir gérer leur réutilisation dans un projet architectural. Le stockage, tel que rendu possible par la Dimensionneuse, a plusieurs dimensions et objectifs. Le premier est de faciliter, à travers l’aide de l’implantation d’une base de données, le rangement des matériaux dans une pure logique logistique. La Dimensionneuse est un outil organisationnel, automatisant un travail de tri (et rendant donc plus facile l’adoption d’un système de récupération de déchets par plus d’acteurs avec peu de main d’œuvre). C’est également un enjeu sanitaire, puisque tous les matériaux ne peuvent pas être travaillés et stockés de la même manière1. La Dimensionneuse permet de s’assurer qu’un élément est propre ou impropre à la réutilisation pour certains acteurs, qui ne disposent pas d’outils pour travailler certains produits traités par des procédés chimiques (comme du bois ignifugé par exemple).
Stock de matériaux de réemploi de La Réserve des Arts. Crédits : La Réserve des Arts
La Dimensionneuse est également un outil qui permet de dématérialiser l’information du stockage, pour que cette dernière « quitte les murs de l’entrepôt ». En permettant à tout le monde d’accéder à une base de données normalisée répertoriant l’ensemble des stocks de possesseurs de Dimensionneuses, un acteur extérieur peut s’approvisionner selon ses besoins dans différents stocks, pour peu qu’ils soient proches de lui géographiquement. La dématérialisation de la donnée sur un matériau permet également, même une fois qu’il est vendu, de garder une trace de sa vie et de son devenir. La donnée de localisation d’un matériau, lorsqu’il est vendu, passe dès lors à l’acteur qui indique où et comment il va réutiliser un matériau, permettant un suivi sur le long terme d’un matériau réutilisé. Cette logique, si développée à grande échelle et normalisée pourrait, en étant combinée à une obligation de catégorisation pour tout matériau neuf, permettre le traitement à 100% des matériaux lors de la destruction d’un bâtiment pour qu’ils soient réutilisés. 1
FCBA Institut Technologique. (2020, avril). Annuaire des Produits et Titulaires Certifiés (DQ-CERT/20-039). Consulté à l’adresse https://ctbpplus.fr/fr/liste/curatif.pdf
1. 15
PARTIE 2 / LA DIMENSIONNEUSE EN FONCTIONNEMENT
A / L’architecture de la machine 1. Hardware a. Le Raspberry Pi 3B+, le contrôleur des capteurs La partie hardware de la Dimensionneuse correspond à la partie des composants et capteurs qui permettent, une fois assemblés ensemble, de scanner des matériaux. Quels que soient les itérations et prototypes de cette machine, la base du hardware est identique. On peut décomposer la partie scanner comme ceci : elle est constituée d’un contrôleur (la base du hardware) et de capteurs gravitant autour de ce dernier. Le contrôleur, dont la fonction est de vérifier chaque capteur, est une sorte de microordinateur gérant des périphériques distincts. Dans le cadre de la Dimensionneuse, il s’agît d’un Raspberry Pi 3B+, développé par l’entreprise Raspberry, une entreprise anglaise spécialisée dans les microcontrôleurs et micro-ordinateurs. Le Raspberry Pi 3B+ peut être comparé à un ordinateur miniaturisé : il possède un processeur, une interface d’interaction avec des périphériques (broches i2C, GPIO), une RAM (mémoire vive), une ROM (stockage de données), et un OS (Operating System ou Système d’Exploitation). Il a notamment l’avantage d’être peu gourmand en énergie, bon marché et autonome car il possède son propre système d’exploitation (distribution Linux).
Fonctionnement de la captation de donnée par le Raspbery Pi 3B+
1. 17
En d’autres termes, le Raspberry permet de mettre en place une base pour le scanner: il est capable de stockée une base de données des informations captées, se suffit à luimême (peut donc supporter l’interface utilisateur), et gère seul les différents capteurs que l’on lui donne à gérer. Son noyau d’exploitation Linux permet une facilité de distribution (Linux est open-source, et la distribution de Linux pour Raspberry Pi est disponible gratuitement et libre de droit), ainsi qu’une souplesse pour développer le programme (partie software) devant s’exécuter pour gérer les capteurs (la plupart des langages sont supportés par Linux, et des bibliothèques de scripts libres de droits sont abondants sur la plateforme).
Structure du Raspberry Pi 3B+. Crédits : shop.mchobby.be
A / L’architecture de la machine 1. Hardware b. Les capteurs
En ce qui concerne les capteurs utilisables et ceux qui ont été utilisés lors des différents prototypes sur lesquels j’ai travaillé, ils différent singulièrement d’une proposition à une autre. Voici une liste non-exhaustive d’exemple de capteurs :
Sensor Movement : Capteur infrarouge détectant un passagedevant sa lentille
Sensor GP2Y0A21YK : Capteur infrarouge LIDAR de proximité mesurant une distance en cm
Sensor GP2Y0A710K0F : Capteur infrarouge IR de proximité mesurant une distance en cm
Sensor HCSR04 : Capteur à ultrasons capable de mesurer une proximité en cm ainsi qu’une densité
Sensor hygrometor : Capteur d’hygrométrie permettant de vérifier le taux d’humidité d’un matériau mesuré
Bibliothèque d’exemples de capteurs et d’API. Crédits : Johnny-five.io
1. 19
A / L’architecture de la machine 2. La gestion du hardware : le software Comme exposé précédemment, chaque capteur est contrôlé à l’aide du contrôleur qu’est le Raspberry Pi. Cependant, le Rasberry Pi a besoin d’un programme pour reconnaitre les capteurs et savoir qui les gère, qui exploite leur données, qui constitue une «fiche d’identité» du matériau scanné et qu’ils l’envoit à la base de données. C’est la partie dite « software », qui regroupe le code créé pour gérer les composants de la Dimensionneuse. La partie software de la Dimensionneuse a été pensée pour être modulable, et donc paramétrable selon si l’on veut utiliser un capteur plutôt qu’un autre pour obtenir un résultat similaire, ou rajouter d’autres capteurs pour parfaire la fiche d’identité d’un matériau. Cela permet par ailleurs de concevoir les améliorations de la machine de manière itérative, sans avoir à chaque fois à repartir de zéro. Le code du programme exécuté par le Raspberry Pi est codé en langage Node.JS, un dérivé de Javascipt (JS), ainsi qu’en Python. Ces deux langages, en plus d’être orientés « objet » (permettant de définir des instances d’objet, qui sont constituantes des fiches d’identité des matériaux scannés à communiquer à la base de données), sont particulièrement pratiques (comprendre facile d’accès) et implémentables facilement sous linux. Le Node.JS présente par ailleurs un autre avantage, à savoir posséder un environnement très régulièrement mis à jour pour être bien supporté par Linux, en plus d’un gestionnaire d’installation de paquet -NPM- très fourni. NPM permet, entre autres, d’installer des « paquets » créés par d’autres personnes quasiment exclusivement sous licence open-source. Parmi ces paquets figurent par exemple des bibliothèques d’API (Application Program Interface), lesquelles permettent d’interagir avec les composants et capteurs connectés au Raspberry Pi à l’aide de routines et de protocoles pré-faits. Dans la pratique, cela permet par exemple de reconnaitre et d’interpréter un signal émis par un capteur pour en extraire une donnée, que l’on peut ensuite transmettre à la base de données.
Structure du code du programme de la Dimensionneuse
A / L’architecture de la machine 3. La base de données : structure et gestion La base de données, c’est la seconde composante essentielle de la Dimensionneuse. C’est elle qui se charge de coordonner le stockage numérique des fiches d’identité de chaque matériau, et qui doit pouvoir faire la passerelle entre un « client » voulant accéder au stock de matériaux recyclés et son logiciel de travail. Elle se doit donc d’être organisée, et facilement incrémentale pour créer des batteries de plugin pouvant s’y connecter. La base de données de la Dimensionneuse s’est constituée autour d’une solution SQL (pour Structured Query Language ou Langage de Requêtes Structuré), à savoir PostgreSQL. PostgreSQL est un gestionnaire de base de données open-source orienté objet, qui permet d’incrémenter, modifier, et distribuer une database de manière sûre et contrôlée. Il est largement distribué et bénéficie de mise à jour support régulière, ce qui permet par ailleurs d’assurer la continuité d’un projet tel que celui de la Dimensionneuse. Il rend possible la connexion de différents « clients » sur une même base de données, et est déjà supporté par plusieurs plugins tels que Slingshot! pour Grasshopper et Rhino3D. Une base de données fonctionne sur un principe incrémental d’objets, composé d’ID (numéro d’identification de l’objet) et des informations qu’il contient (à définir par le constructeur de la base de données). Dans le cadre de la Dimensionneuse, chaque passage dans le scanner d’un matériau génère un certain nombre de données (couleur, poids, volume, localisation, essence, état de dégradation, etc) constituant la fiche d’identité, qui sont ensuite uploadé (envoyées dans la base de données) dans PostgreSQL qui affecte à chaque nouvelle fiche d’identité un ID de reconnaissance. Cet ID peut se décomposer tel quel :
1. 21
B/ Les prototypes réalisés 1. Mesure d’un volume par capteurs de proximité J’ai travaillé sur deux itérations de Dimensionneuse, chacune présentant une approche différente au problème de la captation du volume d’un matériau scanné. Le volume est l’une des données les plus importantes à obtenir lors d’un scan, car elle permet de classer les éléments par taille et de déterminer (en mesurant conjointement la masse du matériau) une masse volumique pouvant aider à classer le matériau selon son essence. La première de ces itérations se reposait sur une captation pragmatique de distances sur les axes X, Y et Z donné par une surface d’analyse. Placé à chacun de ces repères, un capteur mesurait donc une distance sur l’axe X, Y et Z afin de rendre une mesure qui, une fois recoupée par le programme de la Dimensionneuse, donnait un volume rectangulaire pour chaque élément scanné. Deux capteurs ont été utilisés pour effectuer les mesures nécessaires : un capteur LIDAR ToF (pour Time of Flight), ainsi qu’un capteur à ultrasons HCSR04. Ces deux capteurs présentent des intérêts distincts, et peuvent également être employés pour capter d’autres données que des distances, qui sont les raisons pour lesquelles ils ont été choisis. Le premier réalise une mesure de distance en mesurant le temps que met une lumière à infrarouges (IR) à se refléter sur une surface, tandis que le second mesure un temps de rebond d’un ultrason d’une proie au capteur. Ces deux capteurs sont capables de réaliser des mesures précises, mais sont impactés par le type de surface réfléchissante pour l’un et l’environnement de mesure pour l’autre. Ainsi, une capteur LIDAR aura du mal à fonctionner sur une surface sombre ou noire (car peu réfléchissante), tandis que l’humidité et la température locale va influencer le comportement du capteur à ultrasons pour l’autre. De plus, ce sont des capteurs précis sur de courtes distances ; le range (la distance) de mesure capable pour ces deux capteurs ne dépassent en effet pas les 10cm, distance au-delà de laquelle ils deviennent de moins en moins précis et dont la marge d’erreur de mesure augmente drastiquement. Enfin, le fait de ne mesurer que sur trois axes un matériau scanné limite les formes des déchets réutilisables ; ce type de mesure, en se limitant à 3 points d’observations, n’étant en effet capable que de constituer une « bounding box » (le volume dans lequel s’inscrit le matériau scanné) approximative d’un matériau rectangulaire et n’étant pas capable de restituer les dimensions d’un matériau étant autre chose qu’un parallélépipède rectangle.
Tests de branchements de capteurs sur Arduino UNO (un autre controleur)
Schéma de fabrication de la première itération de Dimensionneuse
1. 23
B/ Les prototypes réalisés 1. Mesure d’un volume par image processing Une deuxième itération de la Dimensionneuse à été réalisée pour étudier les possibilités de mesure par captation visuelle à l’aide d’une caméra. L’idée était, à partir d’une observation photographique, d’essayer de déterminer les dimensions d’un matériau en développant un script d’image processing. Faisant face à l’incapacité de la première itération de la machine à mesurer autre chose que des pavés droits, cette itération fonctionnait sur la base d’un capteur de distance mesurant l’épaisseur de l’élément scanné (axe Z) combiné à une analyse de forme qui déterminait (à l’aide du différentiel de la forme du matériau apposé sur un damier) ses contours, et mettait à l’échelle la mesure observée (en connaissant la taille d’un pixel et celle d’un carré du damier d’observation, on pouvait dès lors estimer les dimensions d’un matériau scanné avec une marge d’erreur d’un millimètre). Une fois encore, la qualité de mesure dépend de l’environnement dans lequel cette dernière est effectuée. Le programme d’image processing fonctionne en effet par distinction de couleurs franches, telles que le noir et le blanc du damier. Selon l’éclairage de la scène de scan, le script pouvait ne pas fonctionner (s’il y avait de l’ombre sur le damier, par ex), rendant difficile son utilisation en dehors de la lumière naturelle du jour.
Fonctionnement de l’analyse par photo / Image processing
Table de mesure en damier, pour différencier le manteriau du support d’analyse
Analyse différentielle du damier et de l’élément scannée par image processing. En connaissatn la taille d’un pixel sur la photo prise, et celle du damier, on peut reconstituer le volume sur X et Y de lélément scanné
Analyse du volume du matériau à scanner dans un terminal créé pour la seconde itération de la Dimensionneuse
1. 25
C/ Fonctionnement global de la Dimensionneuse
DIMENSIO
ONNEUSE
1. 27
D/ Amélioration incrémentale de la Dimensionneuse
1. 29
E / Bilan de l’experience sur le prototypage : ce que l’on peut améliorer 1. Les capacités actuelles de la Dimensionneuse
La Dimensionneuse n’en est pour l’instant toujours qu’au stade de prototype. La principale donnée à capter, à savoir le volume des pièces scannées, est toujours en chantier et n’est pas encore opérationnelle. Cependant, il s’est constitué au fur et à mesure des itérations une base depuis laquelle on peut essayer différentes propositions de machines de scan, et la base de données et déjà prête à être incrémentée. L’écosystème de la Dimensionneuse est donc dans les grandes lignes opérationnelles; il faut poursuivre les études et les itérations pour continuer de chercher à capter les données nécessaires à la bonne constitution des fiches d’identité des matériaux à recycler et stocker.
Evironnement actuel de la dimensionneuse
La Dimensionneuse, dans l’état actuel, est donc capable de scanner un élément, de constituer une ébauche de fiche d’identité, et de le stocker dans une base de données en le triant selon son volume, sa localisation, sa couleur, et un aperçu de son état.
E / Bilan de l’experience sur le prototypage : ce que l’on peut améliorer 2. Les points à améliorer
Au stade actuel de développement de la machine, il demeure encore une majeure partie de la captation de données à créer afin de concevoir des fiches de matériaux satisfaisantes. En ce sens, pour satisfaire l’objectif d’une fiche d’identité de matériau scanné idéale, il faut selon moi développer en priorité les paramètres suivants : -La captation du poids d’un élément scanné, relativement anecdotique -La captation de l’essence scannée, nécessaire pour trier les éléments selon leurs propriétés mécaniques, leur rareté ou aspect esthétique -La captation de l’état général du matériau scanné, afin de déterminer si il est abîmé, peint ou en bon état -La captation du volume, qui peut être améliorée afin d’être plus rapide, plus précise, et qui pour le moment est limitée au dimensionnement d’élément parallélépipédiques. On constatera que deux de ces caractéristiques peuvent être traitées avec une approche similaire : la captation de l’état général du matériau scanné, ainsi que son essence, sont en effet deux caractéristiques propres à l’aspect visuel de l’élément scanné, et peuvent donc être captées visuellement, à l’aide d’un capteur photo par exemple.
1. 31
PARTIE 3 : MON ITERATION DE L’OUTIL
A / Une Dimensionneuse capable de classer par essence de bois La classification d’un élément
« bois »
scanné par son essence est une étape
indispensable à l’aboutissement d’un outil comme la Dimensionneuse, car il permet d’élargir son application de manière considérable. Connaître l’essence d’un élément scanné nous permet d’en extrapoler certaines de ses propriétés mécaniques, sa combustibilité, sa résistance à l’humidité, au soleil, ou encore sa capacité d’isolation thermique, en plus de son aspect esthétique lié aux colorations des différents types de bois.
Gestion de la base de données en fonction de la nature du bois
Être capable de reconnaître l’essence d’un élément scanné signifie donc être capable d’en connaître son application potentielle, en architecture ou en menuiserie. Cela permet de trier les éléments selon leur mise en œuvre potentielle, pour faire de la charpente, du parement, du revêtement de sol, ou du mobilier. Par ailleurs, la classification par essence était également l’un des points d’ombre qui se démarquait parmi les améliorations à apporter à la Dimensionneuse existante, et donc un objet d’étude intéressant. La solution technique à apporter pour être capable d’effectuer ce type de tri n’était jusqu’à lors absolument pas documentée, et seules certaines pistes se sont présentées à moi lors de mon travail de prospection.
1. 33
Au final, deux options se démarquaient
: essayer de trouver l’essence d’un élément
en comparant sa masse volumique à des éléments de référence avec un système de balance (solution A), ou essayer de trier les éléments par leur aspect visuel à l’aide d’une solution de Machine Learning (solution B).
Schemas de systèmes pour déterminer l’essence d’un materiau scanné (bois)
Ces deux options présentaient des qualités et des défauts, mais la solution du Machine Learning s’est rapidement imposée. Elle est en effet moins coûteuse car elle ne nécessite qu’un capteur photo, présente des intérêts car son hardware peut connaître des applications plus larges (comme permettre de reconnaître si un élément est peint, abîmé, ou donner un aperçu visuel d’un élément scanné). De plus, son application ne se limite pas à l’écosystème de la dimensionneuse, puisque que les faibles besoins en hardware de cette solution font de cette dernière un outil facilement incrémental pour tout autre genre de projet, ce qui dans une logique d’open-source est une force à apporter au projet.
B / Qu’est-ce que le Machine Learning ? La solution que j’ai retenue s’appuie sur une technologie open source que j’ai déjà cité précédement, qui s’appelle le Machine Learning. C’est le cœur logique de l’outil de classification des essences des matériaux scannés, et il convient de rappeler et de définir ce que le terme « Machine Learning » couvre et veut dire. Ce que l’on appelle communément « qui définit un sous groupe des « algorithmes moteurs
Machine Learning
» est un terme anglais
intelligences artificielles
» (IA). Il désigne des «
», capables d’aborder des méthodes d’apprentissage logiques
dites « supervisées » ou « non supervisées » pour reconnaître, classer, mémoriser et identifier des données qu’il doit traiter. La différence entre du Machine Learning « supervisé » ou « non supervisé » s’explique par la différence de méthode logique employée pour traiter les données et faire des prédictions sur les éléments qu’il doit reconnaître et catégoriser. Les algorithmes de Machine Learning « supervisé » sont les plus repandus ; ils se reposent sur un utilisateur qui enseigne à l’algorithme les conclusions qu’il doit tirer sur la reconnaissance de la nature d’un élément à traiter. L’utilisateur lui apprend, à travers un certain nombre de modèles qu’il lui fournit, à reconnaître des similarités desdits modèles dans des données extérieures qu’il doit traiter.
Logique de fonctionnement du Machine learning supervisé
1. 35
B / Qu’est-ce que le Machine Learning ? Les algorithmes de Machine Learning «
non-supervisés
» visent pour leur part à
permettre à un ordinateur de créer des modèles d’identification et de catégorisation pour qu’il soit capable de manière autonome de trier des données. On dit de manière générique qu’il permet à partir de données non définies d’apprendre à classer « tout seul » sans que l’on ait besoin de lui indiquer un objectif de résultat définit.
CITATION
: Pour continuer avec l’analogie de l’en-
seignement scolaire, le machine learning non supervisé s’apparente à un enfant qui apprend à identifier un fruit en observant des couleurs et des motifs, plutôt qu’en mémorisant les noms avec l’aide d’un enseignant. L’enfant cherche des similitudes entre les images et les sépare en groupes, en attribuant à chaque groupe sa propre étiquette. Comme exemples d’algorithmes de machine learning non supervisé, on peut citer la mise en cluster de k-moyennes, l’analyse de composants principaux et indépendants, et les règles d’association. Oracle.com/Datascience
Pour ma part, j’utilise plutôt dans le cadre de ce travail une solution de Machine Learning supervisée, adaptée au travail que je cherche à mener. C’est une API et un algorithme de Machine Learning open-source, que j’entraîne à reconnaître différentes essences de bois en constituant des « classes de références », sorte de base de données sur laquelle l’algorithme peut se reposer pour reconnaître de nouveaux éléments. L’algorithme est en ce sens capable d’analyser et de reconnaître l’aspect visuel d’une image de référence, à savoir sa couleur, les formes qu’elles contient, ses textures, afin d’en détacher des caractéristiques singulières qu’il cherche à retrouver dans d’autres images afin de pouvoir les catégoriser et les classer.
C / L’open-source comme environnement et support 1. La Dimensionneuse, un éco-système open-source
L’écosystème de la Dimensionneuse, repose sur une partie software mise à disposition gratuitement pour ses utilisateurs; c’est une sorte de manifeste de l’open-source, élaboré de manière collaborative et itérative, grâce à la plate-forme Github qui répertorie la plupart des projets open-source disponibles sur le net. Dans une logique de continuité avec le travail que j’ai déjà pu mener sur ce projet, j’ai choisi de poursuivre mon étude réalisée dans le cadre de ce séminaire avec cette logique d’open-source. Mon travail repose sur des outils mis à disposition par d’autres contributeurs, et je contribue moi même au développement de nouveaux outils mis à dispositions d’autres personnes. L’ensemble de mon travail est disponible à l’adresse ci-dessous.
Mon profil GitHub
Mon itération de la Dimensionneuse
Page GitHub de la Dimensionneuse
1. 37
Ce travail d’itération de la Dimensionneuse est donc entièrement open-source, et se veut comme une mise en pratique de la puissance de la logique open-source, telle qu’elle a été décrite dans le mémoire de Clément Mallet, étudiant à Malaquais, Quel peut être le renouveau de l’architecture open-source. Ce travail d’étude est pensé comme une itération d’un projet déjà existant, et comme une base potentielle de travail à quiconque souhaiterait poursuivre le développement de la Dimensionneuse, ou utiliser certaines parties de son écosystème pour les appliquer et les utiliser dans le cadre d ‘autres projets.
C / L’open-source comme environnement et support 2. Teachable Machine, une solution open-source de Machine Learning Nous savons donc que le Machine Learning est une solution adéquate pour trier des éléments à l’aide de leur aspect visuel, mais il reste le problème d’une solution open-source disponible, suffisamment puissante et orientée vers le traitement et la classification d’image, pour nous permettre de constituer un outil capable et redistribuable gratuitement. C’est avec ces contraintes en tête que je suis tombé sur une solution open-source développée par une sous-division de Google.inc, A.I. Experiment, appelée Teachable Machine. A.I. Experiment est une initiative de Google pour déployer et faire connaître de manière intuitive et open-source des solutions liées à la recherche et à l’application de solutions utilisant de L’Intelligence Artificielle (I.A. Ou A.I. En anglais), et propose un certains nombres d’API compatibles avec plusieurs langages de programmation dont celui que j’utilise et qui était déjà le cœur de la Dimensionneuse, à savoir le Node.Js (dérivé du Javascript, un autre langage de programmation orienté objet). Teachable Machine fait partie des ces outils disponibles et open-source, et est donc une solution de Machine Learning reposant sur une bibliothèque d’API incrémentables dans un projet permettant d’exploiter un algorithme capable de reconnaître et trier des images, du son, ou des gestes. C’est une solution parfaite dans le cadre de ce travail, puisqu’elle me permettra, à l’aide de classes d’images d’essences de bois, de reconnaître et classer des images qu’on lui demandera de catégoriser.
Interface de création de projet de Machine learning sur Teachable Machine (hebergé en ligne sur serveur dédié gratuitement)
1. 39
Teachable Machine est distribué sous une licence Appache 2.0, qui permet la modification, la redistribution et l’utilisation du code source selon les termes définis par la licence. Cela permet d’être plus permissif dans l’utilisation de Teachable Machine, et m’aura permis d’adapter le code plus facilement à mes besoins. C’est là encore l’une des forces de l’open-source, sans laquelle il aurait été plus compliqué d’adapter cette solution à mon projet
D / Développement et conception de l’outil 1. Logique de fonctionnement
Tel que j’en ai fait l’exposition plus haut, l’idée d’une solution de tri par essence de bois repose sur le Machine Learning, mais il convient d’en expliciter la logique. Le cœur de Teachable Machine, la solution de Machine Learning que j’ai retenu, est un algorithme. Il est mis à disposition de manière open source, et il a pour fonction de reconnaître des caractéristiques qu’on lui aura appris à identifier à partir d’images de références, afin qu’il soit capable de retrouver des similarités sur d’autres images que l’on cherche à catégoriser. La logique est donc pour le système d’apprendre à reconnaître les caractéristiques d’une base de données d’images classées par catégories (nommées classes) et de lui « apprendre » à retrouver ces mêmes caractéristiques par comparaison lorsque l’on lui présente une nouvelle image. On parle dès lors d’apprentissage supervisé, puisqu’il incombe à la personne qui utilise la solution de Machine Learning de créer des classes d’objets à reconnaître, et d’y incrémenter une base de données de référence pour chaque classe. De plus, le Machine Learning n’est capable de trier les éléments que par les classes qu’on lui a attribué en référence, et il ne peut pas en créer de nouvelles. Il est donc très important de bien concevoir les classes de référence, afin de bien éduquer l’algorithme. Dans notre cas, l’utilisation du Machine Learning et de la solution Teachable Machine s’articule autour de la création de « classes d’essences de bois », comportant chacune une base de données imagées de l’aspect visuel desdites essences référencées. La création des classes est incrémentale, ce qui signifie qu’un utilisateur peut rajouter, modifier, ou supprimer des classes selon ses besoins. Dans un soucis pratique, la solution ne comprend pour l’instant que cinq essences de bois référencées, puisqu’il y a un gros travail de référencement imagé pour chacune des classes du système.
DATABASE
1. 41
Constitution des classes de références du Machine Learning (Teachable Machine)
Une fois les classes créées et l’algorithme « entraîné », l’utilisateur peut lui présenter une image qu’il ne connaît pas. L’algorithme effectue alors une comparaison logique avec les références dont il dispose, observant colorimétrie, textures, et formes à la recherche de similarités avec les classes prédéfinies. La résultante de cette comparaison se présente sous la forme d’une « probabilité de ressemblance » , où l’algorithme signifie à quelle classe de référence l’objet ressemble le plus.
Grandes étapes de classification d’un élément par Machine Learning
Pour améliorer la précision de la prédiction de l’algorithme, qui lorsqu’il est peu fourni en image peut se tromper, il convient d’alimenter en images de référence le Machine Learning pour chacune de ses classes. Plus les classes sont alimentées et complètes, plus l’algorithme est fiable. En ce sens, il reste donc un travail important à effectuer en amont, pour rajouter des classes d’essences, et bien les renseigner.
1. 43
D / Développement et conception de l’outil 2. Interdependances du code : le software
Le code de l’outil de catégorisation des essences de bois est pensé comme un assemblage de plusieurs « blocs » logiques, qui interagissent entre eux pour nous permettre d’obtenir un système fonctionnel capable de trier des données. Il est composé d’un noyau, le serveur, qui regroupe l’ensemble des API exécutées et utilisées pour faire fonctionner l’outil. Les API, elles, sont ces fameux « blocs » logiques qui correspondent chacun à une tache précise à effectuer. Toutes les API et frameworks utilisées sont open-source, et sont visibles ci-contre : ⦁
Express : Framework pensé pour intégrer une interface HTML (correspond à
l’environnement qui va nous permettre de créer l’interface pour utiliser l’outil, sorte d’application, codée en HTML) ⦁
Ip : permet de récupérer une adresse ip (pour créer un serveur en utilisant
l’adresse ip d’un serveur local ou hébergé) ⦁
TeachableMachine : API permettant d’utiliser l’algorithme de tri de Machine
Learning, hébergé en ligne sur les serveurs de Google ⦁
Multer : permet de faire un upload d’une image sur Teachable Machine
Schéma d’interdépendance du code
Le langage utilisé pour créer cet outil est le Node.Js, un dérivé du Javascript. C’est un langage très repandu, qui s’appuie sur une bibliothèque d’API très fournie en solutions open-source appelée NPM (pour node package manager). C’est un langage couramment utilisé pour coder dans des environnements qui utilisent des serveurs ; c’est une problématique inhérente à la Dimensionneuse, dont la partie software doit être capable de faire la passerelle entre une donnée captée et son stockage sous la forme d’une base de données dans un serveur, local ou hébergé. Pour ma part, le système fonctionne sur un serveur hébergé localement dans un soucis de praticité, mais est facilement hébergeable en ligne une fois le travail plus abouti et complet, l’idée finale étant de permettre à n’importe quel utilisateur d’utiliser l’outil à distance. Teachable Machine, pour sa part, s’éxécute par requête sur un serveur dédié mis à disposition par Google. Ainsi, tout utilisateur voulant utiliser cette solution de Machine Learning est invité avant tout à créer son projet en ligne, pour y créer et hiérarchiser ses classes de référence. Ce n’est qu’ensuite que l’on peut à distance faire une requête pour uploader dans le modèle une image que l’on veut catégoriser, et attendre un retour un résultat sur une interface que l’on aura créé soi-même.
Fonctionnement de l’outil lors de la classification d’un élément
1. 45
L’interface faisant la passerelle entre l’outil et l’utilisateur est quant à elle codée en HTML. C’est la partie de l’outil qui s’occupe d’uploader sur le modèle de Machine Learning une image que l’on cherche à catégoriser, et qui affiche les résultats de l’analyse. Elle fait également le lien entre l’utilisateur et le code, simplifiant et rendant pratique l’utilisation et la lecture des résultats de Teachable Machine.
Schema de l’interface de l’outil
Interface avant upload d’une image
Interface après upload d’une image avec résultats
1. 47
E / Récapitulatif / Mode d’emploi et d’installation Cette partie est à l’attention de toute personne voulant installer l’outil pour le tester localement, l’améliorer, ou le modifier. J’y décris les étapes d’installation, et récapitule les fonctions de chaque élément que j’ai utilisé dans mon travail. ETAPE 1 / Installation de Node.Js : Avant toute chose, il vous faudra installer Node.Js sur votre ordinateur (pc ou mac) en suivant ce lien : https://nodejs.org/en/download/ ETAPE 2 / Création de l’environnement de travail : Une fois Node.js installé, créez vous un fichier qui sera le fichier qui contiendra votre projet. Son nom n’a pas d’importance. Une fois fait, à l’aide de powershell ou de l’invité de commande, naviguez dans votre fichier et installez-y les dépendances necessaires au fonctionnement de l’outil de classification. Pour accéder au fichier; voici un example de commande à effectuer: -> cd C:\Users\arydo\Documents\Votrefichier Une fois dans le bon fichier avec votre powershell ou l’invité de commande, tapez : -> npm i ip -> npm i express -> npm i multer -> npm i @sashido/teachablemachine-node Cela installera à l’aide de NPM (NodePackageManager) l’ensemble des éléments sur lequel se repose le code que j’ai créé. ETAPE 3 / Téléchargement du code de l’outil sur Github : Une fois fait, vous pouvez copier l’intégralité des éléments à télécharger ici dans votre fichier : https://github.com/AdOrikll/Dimensionneuse_MachineLearning ETAPE 4 / Lancement du serveur local de la Dimensionneuse : Après avoir téléchargé le repository Github, vous pouvez lancer votre serveur local. C’est lui qui fera la passerelle entre l’interface, hébergée sur le serveur, et le serveur Teachable Machine sur lequel se trouve l’algorithme de Machine Learning et le projet que j’ai créé. Si vous souhaitez modifier, ajouter ou supprimer des classes, voici le lien du projet Teachable Machine de référence : https://drive.google.com/file/d/1S07LjFOnCCDAbuR33XW0I8-U8TDgTd7/view?usp=sharing
Pour lancer le serveur, utilisez la commande -> node .\server.js ETAPE 5 / Interface et gestion de l’outil : Une fois le serveur lancé, vos pouvez vous rendre sur http://localhost:3000 pour l’ordinateur qui heberge le serveur ou sur http://192.168.1.36:3000 pour tout autre appareil connecté sur le même réseau wifi. Vous y trouverez l’interface de l’outil et pourrez tester différentes essences de bois afin d’en connaitre leur nature. NOTA BENE / Quelques infos à retenir : Une fois toutes ces étapes effectuées, vous n’aurez installé que le prototype que j’ai développé. Si vous souhaitez modifier le projet Teachable Machine, ajouter des classes dans le Machine Learning ou modifier l’interface de l’outil, il vous faudra modifier le code. Pour plus de facilité, il est annoté afin que chacun des éléments importants de ce dernier soient clair et à la porté de tous.
1. 49
CONCLUSION
Conclusion La Dimensionneuse, à la fois outil et écosystème, est une solution potentielle à la difficulté du réemploi de materiaux en architecture. En facilitant la résinsertion du bois en catégorisant des chutes classées dans une base de données, plus d’acteurs peuvent avoir accès à des materiaux de réemploi, et il est plus facile des les incorporer dans un projet. L’un des enjeux non résolu de la Dimensionneuse était de permettre de catégoriser des essences de bois; c’était un problème puisque ne pas connaitre cette donnée rendait plus difficile la réutilisation d’éléments en bois dans le bâti, certaines essences se prêtant à des applications en architecture d’interieur, et d’autres d’exterieur. la conclusion de mon travail de recherche aura donc été de parvenir à pallier à ce problème en créant un ajout permettant de catégoriser les essences de bois. Au final, l’itération de la Dimensionneuse que j’ai réalisé peut connaître une application qui dépasse le cadre fixé par cette dernière. L’outil de reconnaissance d’essences de bois pourrait en effet donner lieu à la création d’une application, et être la base d’un futur projet n’ayant rien à voir avec le développement de la Dimensionneuse. C’est l’un des intérêts de l’open-source : des morceaux, éléments, ou briques de code et de solutions techniques peuvent être réutilisées à d’autres fins que celles pour lesquelles ils ont été créés à l’origine. J’ai tenté autant que possible de faire mon projet de la manière la plus modulaire possible, afin de faciliter sa modification et sa réapropriation par autrui. Je vous remercie d’avoir lu ce dossier, et de l’intérêt porté à mon travail ainsi qu’à ses applications potentielles
1. 51
BIBLIOGRAPHIE ET SITOGRAPHIE
Bibliographie - Anu Maatta, Peter Troxler. (2017). Developing open & distributed tools for Fablabproject documentation. ProtoSpace (Fablab Utrecht), 1--. Consulté à l’adresse https://www.researchgate. net/profile/Peter_Troxler/publication/221273106_Developing_open_distributed_tools_for_ Fablab_project_documentation/links/5433f6ba0cf2bf1f1f277f69/Developing-open-distributedtools-for-Fablab-project-documentation.pdf - Aurélien BARRAU, A. (2019). Le plus grand défi de l’histoire de l’humanité - Face à la catastrophe écologique et sociale (1re éd.). Neuilly-sur-Seine, France : Michel Lafon. - Bocoup. (2020). JavaScript Robotics API Documentation (Johnny-Five). Consulté à l’adresse http://johnny-five.io/api/ - European comission. (2020). Directive 2008/98/EC on waste (Waste Framework Directive) Environment - European Commission. Consulté à l’adresse https://ec.europa.eu/environment/ waste/framework/ - European environment agency. (2019). Construction and demolition waste : challenges and opportunities in a circular economy . Consulté à l’adresse https://www.eea.europa.eu/themes/ waste/waste-management/construction-and-demolition-waste-challenges - FCBA Institut Technologique. (2020, avril). Annuaire des Produits et Titulaires Certifiés (DQCERT/20-039). Consulté à l’adresse https://ctbpplus.fr/fr/liste/curatif.pdf - George Thomas Tsoumis. (2020). Wood. Encyclopædia Britannica , 1--. Consulté à l’adresse https://www.britannica.com/science/wood-plant-tissue - Le service de la donnée et des études statistiques, S. (2019, septembre). DATALAB - Chiffres clés de l’Energie - EDITION 2019. Consulté à l’adresse https://www.statistiques.developpementdurable.gouv.fr/sites/default/files/2019-09/datalab-59-chiffres-cles-energie-edition-2019septembre2019.pdf - Les éditions de la communication, & Bouygues construction. (2019, 11 décembre). Le BTP, champion de la pollution ? Tour d’horizon des solutions. Consulté à l’adresse https://www.ladn. eu/mondes-creatifs/architecture-ville-futur/btp-champion-pollution-solutions/ - Ministère de la cohésion des territoires et de la relation avec les collectivités territoriales. (2020, 5 juin). Déchets du bâtiment. Consulté à l’adresse https://www.cohesion-territoires.gouv.fr/ dechets-du-batiment
1. 53
Bibliographie
- Ministère de la transition écologique et solidaire. (2020). Gestion des déchets : principes généraux. Consulté à l’adresse https://www.ecologique-solidaire.gouv.fr/gestion-des-dechetsprincipes-generaux - Ministère de la Transition Ecologique et Solidaire, M. (2019, 27 décembre). Gestion des déchets: principes généraux. Consulté 5 janvier 2020, à l’adresse https://www.ecologique-solidaire.gouv. fr/gestion-des-dechets-principes-generaux - Minsitère de la transition écologique et solidaire. (2018). Rapport de la France (Actualisation 2018). Consulté à l’adresse https://www.ecologique-solidaire.gouv.fr/sites/default/files/ Rapport%20annuel%202018.pdf - Minsitère de la transition écologique et solidaire. (2020). Déchets du bâtiment et des travaux publics. Consulté à l’adresse https://www.ecologique-solidaire.gouv.fr/dechets-du-batiment-etdes-travaux-publics - Officiel Prévention. (2015, 1 mai). La prévention des risques professionnels des fongicides. Consulté à l’adresse https://www.officiel-prevention.com/dossier/protections-collectivesorganisation-ergonomie/risque-chimique-2/la-prevention-des-risques-professionnels-desfongicides - Paprec Group. (2019). Paprec Group Raw material producer of the 21st century. Consulté à l’adresse https://www.paprec.com/en/understanding-recycling/recycling-construction-waste - Pascale Boulet. (2018, 31 août). Le traitement du bois de construction : un danger pour la santé. Consulté à l’adresse https://www.rse-magazine.com/Le-traitement-du-bois-de-construction-undanger-pour-la-sante_a2817.html - Philippe Deshayes. (2012). Le secteur du bâtiment face aux enjeux du développement durable: logiques d’innovation et/ou problématiques du changement. Innovations, 1(37), 219‑236. Consulté à l’adresse https://www.cairn.info/revue-innovations-2012-1-page-219.htm# - Picbleu. (2019, 12 juillet). Tableau de vide coefficient d’empilage des essences de bois. Consulté à l’adresse https://www.picbleu.fr/page/tableau-de-vide-coefficient-d-empilage-des-essencesde-bois - Precious Plastic . (2020). Precious Plastic. Consulté à l’adresse https://preciousplastic.com/ - The PostgreSQL Global Development Group. (2020). PostgreSQL : About. Consulté à l’adresse https://www.postgresql.org/about/
Bibliographie
- Universalis, E. (2020a). BOIS. Consulté à l’adresse https://www.universalis.fr/encyclopedie/ bois/3-proprietes-physiques/ - Universalis, E. (2020b). Média : Bois : densité - Encyclopædia. Consulté à l’adresse https://www. universalis.fr/media/TA070613/
Quelques sites de référence
- https://nodejs.org/en/ - https://www.oracle.com/data-science/ - https://github.com/AdOrikll - https://www.npmjs.com/ - https://www.npmjs.com/package/express - https://www.npmjs.com/package/ip - https://www.npmjs.com/package/multer - https://github.com/SashiDo/teachablemachine-node - https://teachablemachine.withgoogle.com/ - https://experiments.withgoogle.com/collection/ai - http://johnny-five.io/
1. 55
ANNEXE / CODE
Server.js const express = require(‘express’); const app = express() const port = 3000 const ip = require(‘ip’); const TeachableMachine = require(«@sashido/teachablemachine-node»); //Solution de Machine Learning const fs = require(‘fs’); const multer = require(‘multer’); const upload = multer({ storage: multer.diskStorage( //Stock de l’image qui va être analysée par Teachable Machine { destination: ‘./uploads/’, filename: function (req, file, cb) { cb(null, file.originalname); } } ) }); app.listen(port, () => { //Vérifie si le serveur est lancé console.log(`Serveur lancé:\t\thttp://localhost:${port}`) console.log(`Accès à distance:\thttp://${ip. address()}:${port}`) }) app.use(express.urlencoded({extended: true})) // Site //Link de l’HTML et du CSS de l’interface (qui permet d’envoyer et de recevoir les analyses du Machine LEarning) app.use(express.static(‘website’)) const model = new TeachableMachine({ modelUrl: «https://teachablemachine.withgoogle.com/models/ u3cWdHHG1/» //mettez ici votre propre projet teachable machine }); // POST endpoint app.post(‘/image’, upload.single(‘image’), function (req, res, next) { console.log(`Received ${req.file.originalname}`);
})
const url = __dirname + ‘/’ + req.file.path const results = model.classify({imageUrl: url}) .then(r => { res.send(r) }) .catch(err => { console.log(err) }) 1. 57
Interface.html <!DOCTYPE html> <html lang=»en»> <head> <meta charset=»UTF-8»> <title>Title</title> <meta name = «viewport» content = «user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width»> <style> body { display: flex; flex-flow: column; align-items: center; justify-content: center; min-height: 100vh; min-width: 100vw; margin: 32px 0; l’interface
background: rgb(246,180,106);
//Style du fond de
background: linear-gradient(197deg, rgba(246,180,106,1) 0%, rgba(179,88,37,1) 100%); fond de l’interface }
//Style du
body, input, button { //Style des buttons de l’interface font-family: «JetBrains Mono», monospace !important; } button { //Style des buttons de l’interface padding: 8px; margin: 16px 64px; } #image { //Taille image une fois importée background-color: #CCC; width: 400px; margin: 32px; border-radius: 6px; } #resultats { //Style des résultats exprimés en pourcentages width: 80%; padding: 32px 10%; box-sizing: border-box; display: flex; flex-flow: column; align-items: center;
}
background-color: white; border-radius: 16px;
#form { display: flex; flex-flow: column; background-color: white; padding: 32px 32px 16px; border-radius: 16px; } #form, img, #resultats { box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23); } .result-container { display: flex; flex-flow: row; justify-content: center; align-items: center; width: 100%; margin: 8px 0; } .result-name { width: 200px; } .result-bar { height: 24px; width: 100%; border: 2px solid black; border-radius: 8px; } .result-innerBar { height: 100%; background-color: maroon; } </style> <script src=»https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js»></script> </head> <body> <form id=»form»> <input type=»file» id=»input» name=»image»> <button id=»upload»>Envoyer l’image</button> 1. 59
</form> <img id=»image»></img> <div id=»id»></div> <div id=»resultats»>Résultats de l’analyse</div> <script> const form = document.getElementById(‘form’) form.onsubmit = async (e) => { e.preventDefault(); let response = await fetch(‘/image’, { method: ‘POST’, body: new FormData(form) }); let result = await response.json(); let reader = new FileReader(); reader.onloadend = function() { $(‘#image’).attr(«src», reader.result) } reader.readAsDataURL(document.getElementById(‘input’). files[0]) $(‘#resultats’).empty() result.forEach(entry => { var container = document.createElement(«div») container.className = «result-container» var name = document.createElement(«div») name.className = «result-name» name.innerText = `${entry.class} (${(entry.score * 100).toFixed()}%)` container.appendChild(name) var bar = document.createElement(«div») bar.className = «result-bar» var innerBar = document.createElement(«div») innerBar.className = «result-innerBar» innerBar.style.width = entry.score * 100 + «%» bar.appendChild(innerBar) container.appendChild(bar) })
}; </script> </body> </html>
$(‘#resultats’).append(container)
TeachableMachineToDimensionneuse.js exports.classify = async function(url) { const results = await model.classify({ imageUrl: url, }); console.log(results) return results }
1. 61