Bienvenue. Merci de votre intérêt. Je suis ici aujourd'hui pour vous présenter l'intégration d'images dans le flux de travail de JMP. J'utiliserai une combinaison de fonctionnalités de JMP et de JMP Pro, et je ne manquerai pas de vous indiquer quand j'utiliserai ces fonctionnalités. L'intégration d'images dans le flux de travail de JMP est un processus complexe, qui permet de travailler avec des images pratiquement partout, de l'utilisation d'images comme source de données à leur utilisation dans l'analyse, en passant bien sûr par leur intégration dans nos résultats.
Ceci étant dit, je souhaite aujourd'hui aborder une petite étude de cas, mais je souhaite d'abord vous donner un aperçu et vous présenter le sujet. Je vais vous montrer comment utiliser JMP pour créer des images, par exemple pour importer des images dans une table de données si elles proviennent d'une autre source. Vous pourriez avoir besoin d'extraire des informations d'une image statique vers un rapport JMP dynamique. Nous allons le faire à travers quelques exemples, des images statiques à des éléments que je peux manipuler.
Nous allons ensuite changer de sujet et utiliser ces images, par exemple en créant une carte thermique et en la convertissant en courbe exploitable dans l'Explorateur de données fonctionnelles de JMP. Nous utiliserons également ces images pour créer un modèle de température. Nous allons faire beaucoup de choses, et nous pourrons même utiliser ce modèle pour le surveiller en direct.
Ceci étant dit, je vais conclure et nous allons commencer. J'ai pensé que le mieux serait d'aborder le sujet sous l'angle d'une étude de cas. Il y a une petite histoire. N'en tirez pas trop de conclusions, car j'ai presque tout inventé. C'est surtout pour l'idée d'avoir un récit.
Nous allons nous prendre pour Casey Sparks, ingénieur en procédés électriques, chargé de la fabrication d'une machine essentielle à la fabrication de nos widgets à l'usine Red Triangle Widgets. Nous avons réalisé des prototypes de la machine, mais elle surchauffe constamment. Nous avons pu identifier cette surchauffe sur un circuit imprimé interne spécifique. « En interne », c'est-à-dire que nous le fabriquons nous-mêmes. C'est très pratique, car cela nous permet d'y apporter des modifications. En réalité, l'entreprise a besoin que ce soit fait hier. Il faut que la production soit prête pour la production. La production peine à répondre à la demande pour ce nouveau produit, et la machine va vraiment simplifier les choses pour tout le monde. Cela va impacter le moral de tous. Bien sûr, le budget des heures supplémentaires est impacté par cette solution de contournement.
À titre personnel, Casey, nouvellement arrivée chez Red Triangle, souhaite avoir un impact. Nous souhaitons tous avoir un impact là où nous travaillons. À l'aide d'images, nous allons illustrer un processus de compréhension, de résolution et de vérification du problème. Nous suivrons ensemble ce processus de compréhension, puis l'expérimentation, puis la vérification, et nous le mettrons en pratique.
Nous commencerons par un tableau de données. Cela arrive souvent lorsque vous effectuez des recherches et que vous créez un ensemble de graphiques. Ce serait vraiment pratique si vous pouviez les intégrer dans un tableau et les exploiter. C'est très simple à faire, mais c'est caché dans le menu Édition.
Si vous faites un clic droit sur une image dans JMP, puis accédez au menu Édition, vous verrez une option en bas : « Créer un tableau de graphiques comme celui-ci ». C'est tout ce qu'il faut. Comme j'ai plusieurs graphiques identiques dans ce rapport, JMP a créé ce tableau pour moi, et les graphiques sont affichés en taille réelle et en pleine résolution.
Nous pourrions commencer à prendre des notes sur chacun de ces fichiers pendant que nous abordons ce problème. Casey a identifié ces quatre problèmes potentiels. Elle souhaite prendre des notes à ce sujet et enregistrer ce fichier dans son dossier de projet afin qu'à l'avenir, lorsque les autres étudieront le sujet, ils puissent les consulter et consulter le graphique. C'est vraiment génial.
Encore une fois, c'est très simple : faites un clic droit sur un graphique, accédez au menu Édition et créez un tableau de graphiques comme celui-ci. C'est une fonctionnalité géniale. Je vous montrerai bientôt comment intégrer vos propres images dans un tableau de données très rapidement, et ce sera presque aussi rapide.
On pourrait peut-être changer un peu de direction. Nous avons déjà ce graphique des facteurs initiaux. Casey envisage d'expérimenter avec quatre facteurs potentiels. Elle a également trouvé quelques images dont elle a besoin pour extraire les données.
Petit détour. Ce journal contient un lien, qui sera partagé, vers une extension disponible sur la place de marché JMP appelée Image to Table. Pour être honnête, j'ai développé ces modules complémentaires, donc je les trouve vraiment formidables. Vous pouvez les télécharger gratuitement et les installer dans JMP, ce qui vous permettra d'importer une image. Voici quelques exemples de la procédure. Prenons le premier exemple.
Imaginons que Casey trouve… En fouillant dans la bibliothèque d'expériences de son entreprise, elle trouve un graphique datant d'il y a dix ans, réalisé avec la puissance d'une unité arbitraire sur un autre facteur X. C'est vraiment génial. Elle est très enthousiaste, car cela peut l'aider à comprendre l'un de ses facteurs. Mais elle aimerait vraiment avoir une estimation et voir si la valeur continue d'augmenter. C'est surtout lorsque X est égal à 7 qui l'intéresse vraiment.
Ne peut-elle pas extrapoler jusqu'à ce que X soit égal à 7, plutôt que de simplement tracer une ligne et de l'examiner avec une certaine rigueur statistique ? Bien sûr, la réponse est oui. C'est assez simple. Une fois le module complémentaire installé, il suffit de le sélectionner, et il vous demandera où se trouve votre fichier image. Nous allons le pointer vers ce fichier. Excusez-moi.
Nous obtenons une image de l'image et une petite console en bas. Je vais simplement appuyer dessus, supprimer les pixels blancs, et vous verrez que nous passons de 270 000 lignes potentiellement importables à seulement 50 000 lignes. Les images ont tendance à être assez volumineuses lorsqu'on les transforme en tableau. Gagner du temps est toujours une bonne chose.
En appuyant sur ce bouton, vous obtenez un tableau de données et quelques graphiques. Parfois, un graphique en noir et blanc est plus efficace, parfois un graphique en couleur. Dans ce cas, je pense que le graphique en couleur sera plus efficace. Prenons un tableau de données contenant 50 000 pixels importés. Je vais simplement le déplacer ici et réfléchir à la suite. Il y a quelques étapes à suivre pour extrapoler jusqu'à ce que X soit égal à 7.
La première chose à faire est de recalibrer nos axes X et Y. Pour cela, je vais simplement faire une sélection. Comme il s'agit simplement du Générateur de graphiques, il est très facile de sélectionner des éléments de manière interactive. J'ai sélectionné la zone sur mon graphique. Je vais cliquer sur « recalibrer les axes X et Y ». J'ai sélectionné : mon axe X va de 0 à 5 et mon axe Y de 0 à 1. Il ne me reste plus qu'à saisir ces valeurs : 0 à 5 et 0 à 1.
J'ai cliqué sur OK, et le message m'a dit : « Hé, j'ai créé ces nouvelles colonnes pour vous. Vous pourriez les utiliser. » Oui, j'aime bien l'idée. Je suis toujours impressionné par sa simplicité et par le nombre de fois où j'ai souhaité avoir cela avant, après avoir trouvé une image. Maintenant, ces échelles sont alignées. C'est vraiment génial.
L'étape suivante consiste à conserver uniquement cette trace bleue au milieu. Je n'ai pas besoin de toutes ces autres couleurs. Puisque j'ai maintenant ces données dans JMP, cela devient une tâche simple. Je vais dans le menu Clustering et le clustering K-Means est extrêmement rapide avec des ensembles de données assez volumineux comme celui-ci.
Il me suffit de dire à JMP : « Je veux que tu crées des clusters de couleurs. Je veux que tu les sépares en plusieurs couleurs. Maintenant, je peux regarder le graphique et compter sur mes doigts. J'ai du noir, deux gris et du bleu. Ça fait donc quatre couleurs. Je serais tenté d'en mettre quatre ici. »
Ce que j'ai découvert, c'est que les ordinateurs, lorsqu'ils créent des images, mélangent les couleurs. J'ai constaté que doubler le nombre de couleurs visibles donne d'excellents résultats. J'ai donc lancé l'application. C'est agréable et interactif, je peux donc utiliser la flèche vers le bas de mon clavier et naviguer.
Ce n'est pas le groupe 1. Oh, un clic, et j'y suis. C'est le groupe 2. Je pourrais continuer. Je veux tout sélectionner sauf le groupe 2, puis accéder à ma table de données et supprimer ces lignes. Et voilà ! J'ai maintenant cette courbe bleue, et elle est dans les bonnes unités. C'est très facile maintenant d'ajuster cette courbe avec mes unités calibrées.
Je sais que comme ça monte et descend… Je vais appuyer sur Alt en cliquant. Je sais que comme ça monte et descend, c'est probablement biexponentiel, mais je ne sais pas si c'est 4 ou 5. J'aurais probablement dû le mémoriser. C'est un paramètre biexponentiel 5, car c'est celui du haut, donc je vais l'éliminer.
Maintenant, tout à coup, je peux extrapoler. C'est un excellent R² de 0,99. Je peux consulter ce profileur. Je vois où nous en sommes à 7. Je peux obtenir cette valeur. C'est vraiment très facile d'extraire des données d'images dans JMP comme ça. Je vais faire un peu de ménage et prendre un autre exemple.
Casey peut-il extrapoler jusqu'à ce que X soit égal à 7 ? Oui, assez facilement. Cela prend quelques étapes. Voici un autre graphique trouvé par Casey. Imaginons qu'il s'agisse d'une revue scientifique, et vous verrez qu'il s'agit de deux groupes différents, mais ce n'est qu'un graphique, ou plutôt une image de graphique.
Ce qu'elle aimerait vraiment faire, c'est obtenir une droite d'ajustement pour les points jaunes et pour les points verts, deux droites d'ajustement différentes. Elle n'a pas les données, c'est juste quelque chose qu'elle a récupéré sur Internet. Peut-elle obtenir une droite d'ajustement pour chaque groupe ? Bien sûr, la réponse sera oui. Nous allons réutiliser ce module complémentaire avec cette image à tabler. Nous choisirons cet exemple de nuage de points.
Au fait, j'ai oublié de préciser que si vous téléchargez ce journal, vous aurez accès à tous les fichiers. Appuyez sur ce bouton et tous les fichiers nécessaires seront créés.
Il suffit de faire la même chose que précédemment. Commençons par supprimer les pixels blancs. Cliquez sur le bouton « Importer ». Une fois l'importation terminée, recalibrons nos axes comme précédemment : sélectionnez la zone délimitée. On dirait qu'elle passe de 50 à 70 sur l'axe X et de 60 à 180 sur l'axe Y. Je pourrais cliquer sur « Recalibrer » et passer de 50 à 70, puis de 60 à 180. Cliquez sur « OK ». J'ai maintenant ces nouveaux axes. C'est génial.
Ensuite, je souhaite catégoriser ces points de données par couleur. Dans le Générateur de graphiques, je sélectionne simplement les éléments importants. Ensuite, je souhaite calibrer les couleurs. Plusieurs options s'offrent à moi. Il s'agit d'une légende catégorique, composée de texte ou de caractères.
Je vais appuyer dessus et JMP va… J'aurais probablement dû m'occuper de ce tableau de données. Voilà. Ces couleurs vertes sont surlignées. Je suis mis au défi de saisir le texte associé. C'est A. Ensuite, c'est B. Il a tendance à trouver quelques couleurs supplémentaires, comme nous l'avons mentionné, les ordinateurs font ce mélange. Je vais ignorer les autres qui apparaissent. Voilà. Il y avait trois couleurs supplémentaires en arrière-plan qui ne nous intéressaient pas vraiment.
Mais voici quelque chose de vraiment intéressant. Maintenant, si je vais dans la table de données et que je sélectionne mes A, c'est le vert, je sélectionne les B, c'est le jaune/orange. Mais peut-être plus important encore, voici tout le reste. Puisque tout cela ne m'intéresse pas, je peux le supprimer. Ensuite, il ne reste que ce reste de légende, ici, que je peux supprimer.
J'ai maintenant les données. Il me manque cependant un point individuel pour l'instant. J'en ai 46. Je crains que si je devais effectuer cette droite d'ajustement, elle ne soit pas très précise, car chaque groupe de données représente un nombre différent de points. Je ne pense pas que nous soyons encore prêts. Je souhaiterais peut-être plutôt obtenir le centre de chacun de ces points. Nous allons utiliser le même outil que précédemment, le clustering K-Means.
Au lieu de regrouper les couleurs, ce que j'ai déjà, je vais regrouper les groupes X et Y. En gros, je demande à JMP de créer un certain nombre de clusters. Voici la question : combien de clusters ? Je ne sais pas. On dirait qu'il y en a entre 30 et 40. Je pourrais les compter, mais si je mets simplement cette plage de clusters, JMP m'indiquera qu'il y a apparemment 38 clusters. Je préfère cela à un comptage manuel.
Je vais revenir ici à ce point 38 et vérifier. Je veux enregistrer les couleurs dans le tableau. Cela modifiera les couleurs dans le générateur de graphiques. Tant que je ne vois pas un de ces points de données coupé en deux, je sais que j'ai le bon nombre. Je peux enregistrer ces clusters dans le tableau. Ma table de données contient désormais pratiquement tout ce dont j'ai besoin : les clusters et les étiquettes.
Je peux résumer tout cela très rapidement en disant : je veux savoir à quel groupe appartient chacun de mes clusters, puis je veux connaître le point médian ou la moyenne des abscisses (X et Y). Si je convertis ces données en tableau, je peux les importer dans le générateur de graphiques et enfin répondre à cette question. Finalement, ça nous a pris environ deux minutes en tout. Super !
Maintenant, je peux chercher ceci et demander cette équation. Pour revenir à notre question initiale, Casey peut-elle calculer la droite d'ajustement pour chaque groupe ? Absolument. On peut extraire des informations des images assez facilement. On peut manipuler ces informations et utiliser les outils JMP pour cela. C'est vraiment génial. Je trouve vraiment impressionnant tout ce qu'on peut faire avec.
On nettoie ici, puis on passe à l'étape suivante, qui est… Dans ces informations générales, Casey a utilisé toutes ces informations pour affiner son expérience. Là encore, nous essayons de réduire la température d'un composant. Elle a réduit le champ à quelques facteurs et a créé ces 20 cartes de test.
Elle a ensuite soumis chaque carte à un test de résistance de 20 minutes, mais le résultat n'était pas un chiffre. Il s'agissait d'une image thermique, quelque chose qui ressemblait peut-être à ceci. Y a-t-il un moyen d'utiliser cette image pour réduire la température totale, pas seulement celle du point le plus chaud, mais celle de la carte ? Bien sûr, la réponse est oui. Nous avons déjà fait cela : utiliser l'image pour la table, donc je prends un raccourci.
En gros, il y a un petit processus à suivre avec ces données pour chacune des images de son test. On ne le voit probablement pas très bien, mais il y a une petite bordure gris clair ici. Si je la sélectionne, puis la supprime, puis sélectionne le point le plus chaud, ici, puis sélectionne les mêmes Y que ce point le plus chaud et supprime les autres points, je peux alors modifier l'axe des Y, de cette seule trace à la température elle-même, et je peux l'utiliser.
Cela peut paraître compliqué, mais j'ai créé un workflow pour le faire aussi. Je me suis simplement enregistré en train de le faire dans JMP. J'ai triché un peu et créé un petit script, mais c'était juste pour la sélection. Le workflow me demande : « Hé, quel était le numéro d'exécution ? » Il enregistre la table de données.
La vie est vraiment belle. Réaliser cela avec 20 images n'est pas un problème. Si vous détestez vraiment répéter le même processus 20 fois, vous pouvez simplement écrire un script pour le faire. Je ne vous le montrerai pas, mais je l'ai inclus pour ceux qui sont curieux. Ce processus peut être suivi. Casey peut l'utiliser pour prendre la température de… Nous allons voir comment en exécuter un pour chaque position X.
Vous voyez comment le plan d'expérience a été répliqué plusieurs fois pour chacune de nos exécutions. Nous avons maintenant créé ce plan d'expérience de 20 exécutions et y avons intégré les informations de l'image. Cela signifie que nous pouvons utiliser l'Explorateur de données fonctionnelles. D'ailleurs, l'Explorateur de données fonctionnelles est une fonctionnalité de JMP Pro, mais nous pouvons l'utiliser sur toutes ces traces. Désolé, j'ai sauté une étape. Ce tableau de données pourrait être plus clair.
J'ai toutes ces exécutions et toutes les traces de toutes ces cartes de test, ainsi qu'une exécution zéro, cette idéale. Je peux dire à l'Explorateur de données fonctionnelles de JMP Pro : « Voici toutes mes traces. J'ai une cible. Pouvez-vous l'optimiser ? » Il m'indiquera où mes paramètres de facteur doivent être réglés pour y parvenir. Je peux également expérimenter et voir ce qui arrive à cette trace de température.
C'est vraiment génial de pouvoir passer des images d'un circuit imprimé et de sa température aux paramètres DOE et aux facteurs qui minimisent la température globale sur toute la surface, et non pas seulement d'améliorer un point de données au détriment des autres. C'est vraiment génial.
Casey réalise cette expérience et la termine. Elle construit ensuite son circuit imprimé idéal et est prête à lancer la machine finale en production. Elle souhaite toutefois la surveiller, car exécuter un plan d'expérience et obtenir un point idéal est une chose. Mettre ce point idéal en production et vérifier son bon fonctionnement en est une autre.
Le problème ici est que l'appareil de test est équipé de capteurs de température calibrés et d'une caméra thermique. Elle a pu accéder aux deux, mais la machine de production ne possède qu'une caméra thermique, et celle-ci est déjà installée ; elle ne souhaite donc rien changer au niveau de la température. Elle souhaite néanmoins connaître la température maximale atteinte.
Quelques questions. Peut-elle utiliser une image comme thermomètre ? Pour aller plus loin, peut-elle être avertie si la température monte trop ? Je ne sais pas. Si elle se demande quelle est la température, peut-elle la vérifier sur son téléphone ? Commençons par ces images comme thermomètre. Encore une fois, si vous appuyez sur ce bouton, ce dossier sera également créé pour vous.
Avec tous ces fichiers DOE, y compris les images, vous voyez que l'exécution numéro 1 est un peu plus lumineuse, et donc un peu plus chaude, que l'exécution numéro 2. J'aimerais importer toutes ces images dans JMP très rapidement et créer un jeu de données. C'est super simple. C'est ici, dans le fichier. Importer plusieurs fichiers. C'est là. Il suffit d'indiquer à JMP où faire ça. Bien sûr, il se souvient de la dernière fois que je l'ai utilisé, donc c'est déjà là.
Je vais sélectionner les fichiers par extension, et j'ai plusieurs fichiers PNG, car je ne veux pas importer les fichiers JMP, mais seulement les images. Si je clique sur la colonne « Ajouter un nom de fichier », JMP me dira automatiquement : « Ah, vous avez plusieurs images ? Je sais comment les gérer. Je vais simplement les placer dans une table de données. »
Je n'ai rien eu à copier-coller. En gros, trois clics et on y est. C'était vraiment génial. Les images sont prêtes à l'emploi. Avec un peu de recodage, je peux réduire le nom du fichier au numéro d'exécution.
Pour notre étude de cas, nous supposerons que Casey a réalisé ce travail. Elle a obtenu le numéro d'exécution et la température maximale réelle, car, encore une fois, sa machine est équipée de capteurs et d'une caméra thermique. Elle va simplement utiliser cela pour tester et créer un modèle afin de voir si elle peut prédire la température à partir d'une image. C'est un peu gourmand en ressources de calcul. C'est aussi une fonctionnalité de JMP Pro. C'est un module complémentaire pour JMP Pro, mais en gros, c'est un moyen d'utiliser des images pour créer un modèle. C'est vraiment génial.
Dans ce cas, nous avons un modèle qui prédit… Son R² est d'environ 0,8 sur des données non incluses. Casey continue de prendre ce modèle et de générer le code Python correspondant, puis de l'utiliser. Bien sûr, je pense qu'elle devra installer quelques modules sur sa machine de production. Elle prendra ce code Python et l'installera sur la machine de production.
La machine de production peut ensuite utiliser le modèle créé dans JMP, mais en utilisant la version Python. Elle n'a pas besoin d'installer JMP sur toutes les machines. Elle utilise simplement JMP pour créer ce modèle, et la machine peut ensuite l'exécuter. C'est vraiment génial ! Elle a également ajouté du code pour générer le résultat dans une base de données, puis elle utilise JMP Live pour actualiser automatiquement et observer l'évolution de la température.
Elle est abonnée aux alertes. Si la situation devient incontrôlable, elle le saura immédiatement, ou elle pourra aussi le consulter sur son téléphone. Je suppose que je devrais lui montrer à quoi ça ressemble sur un téléphone. Elle peut le voir sur son téléphone. Oui, tout va bien. La réponse est : peut-elle être avertie si la température monte trop ? Peut-elle consulter la température depuis son téléphone ? Oui, oui, oui. Je trouve le plus cool ici, c'est qu'elle a utilisé des images dans un tableau de données pour créer un modèle de température, et ce modèle prédit extrêmement bien.
Si on prend un peu de recul, qu'avons-nous fait aujourd'hui ? Nous avons récupéré des images de JMP. Excusez-moi. JMP nous a fourni des images. Nous avons importé des images dans un tableau. Nous avons importé les informations contenues dans JMP, sous forme de graphiques ou d'images, et nous avons pu les manipuler et les utiliser.
Nous avons ensuite pu utiliser ces éléments pour mener une expérience en extrapolant la courbe à partir d'une image, puis utiliser l'image elle-même comme facteur pour construire un modèle. Merci de votre participation. J'ai hâte de voir ce que nous pourrons faire avec les images. Merci.