Benvenuti. Grazie per aver seguito questo canale. Oggi sono qui per illustrarvi in dettaglio come integrare le immagini nel flusso di lavoro di JMP. La mia presentazione si baserà su un mix di funzionalità di JMP e JMP Pro, e non mancherò di sottolineare quando utilizzerò le funzionalità di JMP Pro. Ma quando parliamo di integrare le immagini nel flusso di lavoro di JMP, in realtà il flusso di lavoro è molto ampio e possiamo lavorare sulle immagini praticamente in qualsiasi punto di questo flusso di lavoro, dall'utilizzo delle immagini come fonte dati all'utilizzo nelle analisi e, naturalmente, all'integrazione nei nostri output.
Detto questo, oggi vorrei analizzare un piccolo caso di studio, ma prima voglio darvi un'anteprima e illustrarvi brevemente ciò di cui parleremo. Vi mostrerò in pratica come far sì che JMP crei immagini per noi, ad esempio come inserire immagini in una tabella dati se provengono da una fonte diversa. Forse dovrete estrarre informazioni da un'immagine statica e inserirle in un report JMP dinamico. Lo faremo con un paio di esempi. Di nuovo, da immagini statiche a qualcosa che posso effettivamente manipolare.
Poi cambieremo un po' argomento e useremo quelle immagini, magari prendendo una mappa termica di qualcosa e convertendola in una curva che potremo usare in Functional Data Explorer di JMP. Useremo le immagini anche per creare un modello di temperatura. Faremo un sacco di cose, e prenderemo anche quel modello e lo monitoreremo in tempo reale.
Detto questo, chiudo qui e entriamo nel vivo dell'argomento. Ho pensato che sarebbe stato meglio parlarne partendo dall'idea di un caso di studio. C'è un po' di storia in corso. Non cercate di leggere troppo nella storia perché me la sono inventata quasi tutta. È più che altro per l'idea di avere una narrazione.
Facciamo finta di essere Casey Sparks e di essere un ingegnere elettrico di processo incaricato di realizzare una macchina fondamentale per il nostro processo di produzione di widget presso la fabbrica Red Triangle Widgets. Abbiamo realizzato dei prototipi della macchina, ma continua a surriscaldarsi. Siamo riusciti a ricondurre questo surriscaldamento a una specifica scheda elettronica interna della macchina, "in-house" nel senso che costruiamo questa scheda elettronica internamente. È davvero fantastico perché significa che possiamo apportare modifiche. In realtà, l'azienda ha bisogno che questo venga fatto il prima possibile. Deve essere pronto per la produzione. La produzione ha faticato a tenere il passo con la domanda di questo nuovo prodotto, e la macchina renderà le cose molto più facili per tutti. Avrà un impatto sul morale di tutti. Naturalmente, il budget per gli straordinari sta risentendo di questa soluzione alternativa.
A livello personale, questa persona, Casey, è nuova al lavoro per Red Triangle e vuole lasciare il segno. Vogliamo tutti lasciare il segno dove lavoriamo. Useremo le immagini per illustrare un processo di comprensione, risoluzione e verifica di aver risolto il problema. Affronteremo insieme questo processo di comprensione. Affronteremo insieme il processo di sperimentazione, poi affronteremo insieme questo processo di verifica, e in pratica lo affronteremo.
Inizieremo con una tabella dati. Probabilmente questo accade spesso quando si fa una ricerca e si crea una serie di grafici. Sarebbe davvero bello se si potessero inserire questi dati in una tabella e utilizzarli. È semplicissimo, ma è nascosto nel menu Modifica.
Se fai clic con il pulsante destro del mouse su un'immagine qualsiasi in JMP e poi vai al menu Modifica, vedrai un'opzione qui sotto che dice "crea una tabella di grafici come questa". Questo è tutto ciò che serve. Ora, poiché ho più grafici uguali in questo report, JMP ha creato questa tabella per me e i grafici vengono effettivamente visualizzati a grandezza naturale e a piena risoluzione.
Potremmo iniziare a prendere appunti su ciascuno di questi file mentre parliamo di questo problema. Casey ha trovato questi quattro potenziali problemi. Vuole prendere appunti e salvare questo file nella cartella del suo progetto, in modo che in futuro, quando gli altri analizzeranno il problema, avranno questi appunti e il grafico. È davvero, davvero fantastico.
Anche in questo caso, è semplicissimo: basta cliccare con il tasto destro del mouse su un grafico, andare al menu Modifica e creare una tabella di grafici come questa. Questa è una di quelle funzionalità straordinarie. Tra poco vi mostrerò come inserire le vostre immagini in una tabella dati in modo davvero molto rapido, e sarà quasi altrettanto veloce.
Forse cambieremo leggermente direzione. Abbiamo già questo grafico dei fattori iniziali. Questi sono forse quattro potenziali fattori con cui Casey sta pensando di sperimentare. Ha anche trovato un paio di immagini da cui deve ricavare i dati.
Una piccola digressione. In questo diario c'è un link, che condivideremo, a un'estensione del marketplace JMP chiamata Image to Table. Per essere onesti, ho scritto io i componenti aggiuntivi, quindi ovviamente la trovo fantastica. Ma potete scaricarla gratuitamente e installarla in JMP, così potrete importare un'immagine. Ecco un paio di esempi di come faremo. Prendiamo questo primo esempio.
Supponiamo che Casey abbia scoperto... Esaminando la libreria di esperimenti precedenti della sua azienda, ha trovato un grafico di 10 anni fa che qualcuno aveva realizzato con la potenza di un'unità di misura arbitraria su un altro fattore X. È davvero interessante. È davvero entusiasta perché può aiutarla a capire uno dei suoi fattori. Ma vorrebbe davvero avere una stima e vedere se continua a salire? Soprattutto dove X è uguale a 7, è lì che è davvero interessata.
Non può estrapolare dove X è uguale a 7 più che semplicemente tracciare una linea e osservarla con un certo rigore statistico? Certo, la risposta è sì. È abbastanza semplice. Una volta installato il componente aggiuntivo, basta selezionarlo e ti chiederà: "Dov'è il tuo file immagine?". Gli indicheremo dove si trova. Scusate.
Otteniamo un'immagine dell'immagine e una piccola console qui sotto. Spingo qui, rimuovo i pixel bianchi e vedrete che passiamo dall'importare potenzialmente 270.000 righe a sole 50.000. Le immagini tendono a essere piuttosto grandi quando vengono trasformate in una tabella. Ogni volta che possiamo risparmiare tempo, è fantastico.
Quando si preme quel pulsante, però, si ottiene una tabella dati e un paio di grafici. A volte un grafico in bianco e nero funziona meglio, a volte uno a colori. In questo caso, penso che quello a colori funzionerà meglio. Diamo un'occhiata a una tabella dati con quei 50.000 pixel che sono stati importati. La sposterò qui sotto e rifletterò su cosa deve succedere dopo. Ci sono un paio di passaggi che voglio fare per estrapolare dove X è uguale a 7.
La prima cosa da fare sarebbe ricalibrare gli assi X e Y. Per farlo, mi limiterò a effettuare una selezione. Dato che si tratta solo del Generatore di Grafici, è davvero facile selezionare elementi in modo interattivo. Ho selezionato l'area del mio grafico. Farò clic su "Ricalibra assi X e Y". Quello che ho selezionato è che il mio asse X va da zero a cinque e il mio asse Y va da zero a uno. Devo solo inserirlo. Da zero a cinque e da zero a uno.
Premo OK e poi mi dice: "Ehi, ho creato queste nuove colonne per te. Potresti volerle usare". Sì, mi piace l'idea. Mi stupisce ogni volta che lo faccio, quanto sia semplice e quante volte vorrei averlo fatto in passato, dopo aver trovato un'immagine. Ora queste scale sono allineate. È davvero, davvero fantastico.
Il passo successivo che devo fare, però, è mantenere solo questa traccia blu al centro. Non ho bisogno di tutti gli altri colori. Ora che ho questi dati in JMP, diventa un compito banale. Vado al menu Clustering e il clustering K-Means è estremamente veloce con set di dati piuttosto grandi come questo.
Tutto quello che devo fare è dire a JMP: "Voglio che tu crei dei cluster di colori. Voglio che tu li separi in diversi colori". Ora posso guardare il grafico e contarli sulle dita. Ho il nero, due grigi e il blu. Quindi sono quattro colori. Potrei essere tentato di inserirne 4 proprio qui.
Quello che ho scoperto, però, è che i computer, quando creano immagini, fondono i colori. Ho scoperto che raddoppiando il numero di colori visibili, si ottengono risultati davvero, davvero buoni. Ho premuto "Vai". Di nuovo, è un'applicazione piacevole e interattiva, quindi posso usare la freccia giù sulla tastiera e procedere.
Non è il Cluster 1. Oh, credo che basti un clic e sono lì. È il Cluster 2. Potrei continuare. Quello che voglio fare è selezionare tutto tranne il Cluster 2, poi andare alla mia tabella dati ed eliminare quelle righe. Ecco fatto. Ora ho quella traccia blu, ed è nelle unità di misura corrette. Ora è davvero facile per me entrare e magari adattare quella curva con le mie unità di misura calibrate.
So che, dato che questo va su e giù... premerò Alt mentre clicco qui. So che, dato che questo va su e giù, probabilmente è biesponenziale, ma non so se è 4 o 5. Probabilmente avrei dovuto memorizzarlo. È un parametro biesponenziale 5 perché è quello in alto, quindi lo eliminerò.
Ora, all'improvviso, ho la possibilità di estrapolare. Questo è un ottimo R-quadrato, 0,99. Posso guardare quel profiler. Vedo che siamo a 7. Posso ottenere quel valore. È davvero, davvero facile importare dati dalle immagini in JMP in questo modo. Lasciami fare un po' di pulizia e prendiamo un altro esempio. Lasciami fare questo.
Casey riesce a estrapolare dove X è 7? Sì, abbastanza facilmente. Ci vogliono un paio di passaggi. Ecco un altro grafico trovato da Casey. Facciamo finta che provenga da una rivista accademica, e vedete che si tratta di due gruppi diversi, ma è solo un grafico, o meglio, non dovrei dire grafico, è solo l'immagine di un grafico.
Quello che vorrebbe davvero fare è forse ottenere una linea di adattamento per i punti gialli e per i punti verdi, due linee di adattamento diverse. Non ha i dati, li ha semplicemente presi da Internet. Può ottenere una linea di adattamento per ciascun gruppo? Naturalmente, la risposta sarà sì. Useremo di nuovo quel componente aggiuntivo con questa immagine nella tabella. Sceglieremo questo diagramma di dispersione di esempio.
A proposito, ho dimenticato di dire questo: se scarichi questo diario, avrai accesso a tutti i file. Premi quel pulsante e verranno creati tutti i file di cui hai bisogno.
Dobbiamo solo fare la stessa cosa di prima. Inizieremo allo stesso modo rimuovendo quei pixel bianchi. Premiamo il pulsante "Importa". Una volta importato, faremo la stessa cosa di prima per ricalibrare i nostri assi, ovvero selezionare la regione che sappiamo essere delimitata. Sembra che vada da 50 a 70 sull'asse X e da 60 a 180 sull'asse Y. Potrei premere "Ricalibra" e passare da 50 a 70 e poi da 60 a 180. Premi "OK". Ora ho questi nuovi assi. Fantastico.
Il passo successivo è categorizzare questi punti dati in base al loro colore. Di nuovo, in Graph Builder, selezionerò solo gli elementi che ritengo importanti. Poi andrò qui e dirò: "Voglio effettuare una calibrazione del colore". Ci sono un paio di opzioni. Questa è una legenda categoriale, composta da testo o caratteri.
Ora eseguo il push e JMP... Probabilmente avrei dovuto togliere di mezzo quella tabella dati. Ecco fatto. Ha evidenziato questi verdi. Mi sfida a digitare il testo associato a essi. Questo è A. Il prossimo è B. Tende a trovare un paio di colori extra, come abbiamo detto che i computer eseguono quella fusione. Salterò tutti gli altri che compaiono. Ecco fatto. C'erano tre colori extra sullo sfondo che non ci interessavano molto.
Ma ecco una cosa davvero interessante. Ora, se vado alla tabella dati e seleziono le mie A, che sono il verde, seleziono le B, che sono il giallo/arancione. Ma forse ancora più importante, ecco tutto il resto. Dato che tutto il resto non mi interessa, posso eliminarlo. Poi c'è solo questo residuo della legenda qui, e posso eliminarlo.
Ora ho inserito i dati. Quello che mi manca ancora, però, è un singolo punto. Ne ho 46. Temo che se dovessi calcolare quella linea di adattamento, potrebbe non essere molto accurata perché ognuno di questi gruppi di dati è composto da un numero diverso di punti. Non credo che siamo ancora pronti. Forse quello che voglio fare invece è ottenere il centro di ciascuno di questi punti. Useremo lo stesso strumento di prima, questo clustering K Means.
Invece di raggruppare in base ai colori, che ho già, corretto, raggrupperò in base ai gruppi X e Y. In pratica, sto dicendo a JMP: "Voglio che tu crei un certo numero di cluster". Ora, ci troviamo di fronte a questo. Quanti cluster? Non lo so. Sembrano tra 30 e 40. Potrei contarli, ma se inserisco semplicemente questo intervallo di cluster, lascerò che JMP mi dica che apparentemente sono 38 cluster. Mi piace molto di più che contare a mano.
Ora arrivo qui a questo 38 e controllo due volte. Voglio salvare i colori nella tabella. Ora questo cambierà i colori nel Generatore di Grafici. Finché non vedo uno di questi punti dati tagliato direttamente a metà, allora so di aver ottenuto il numero corretto. Posso salvare questi cluster nella tabella. Ora la mia tabella dati ha praticamente tutto ciò di cui ho bisogno. Contiene i cluster e le etichette.
Posso riassumere tutto questo molto velocemente dicendo: voglio sapere a quale gruppo appartiene ciascuno dei miei cluster, e poi voglio conoscere il punto medio o la media di X e Y. Se trasformo tutto in una tabella dati, posso inserirla nel Graph Builder e finalmente posso rispondere a questa domanda. Infine, cioè, cosa? Ci abbiamo messo circa 2 minuti in tutto. Fantastico.
Ora posso cercare questo e chiedere quell'equazione. Tornando alla nostra domanda iniziale, Casey può calcolare la retta di adattamento per ogni gruppo? Certamente. Possiamo ottenere informazioni dalle immagini abbastanza facilmente. Possiamo manipolare queste informazioni e possiamo usare gli strumenti di JMP per farlo. È davvero, davvero fantastico. Per me, è davvero impressionante quante cose si possano fare con questo strumento.
Facciamo un po' di ordine qui, poi passeremo alla fase successiva, che è... In queste informazioni di base, Casey ha utilizzato tutte queste informazioni per restringere il campo su una serie di fattori per il suo esperimento. Ancora una volta, stiamo cercando di ridurre la temperatura di un componente. Ha ristretto il campo a una serie di fattori e ha creato queste schede di prova, 20.
Poi ha sottoposto ciascuna scheda a uno stress test di 20 minuti, ma il risultato non era un numero. Il risultato era un'immagine termica, qualcosa che forse assomigliava a questo. C'è un modo per usare quell'immagine per abbassare la temperatura totale, magari non solo il punto più caldo, ma la temperatura totale della scheda? Ovviamente, la risposta sarà sì. L'abbiamo fatto, usiamo l'immagine per la tabella, quindi qui sto prendendo una scorciatoia.
In pratica, c'è un piccolo processo che dobbiamo seguire con questi dati per ciascuna delle immagini per il suo test. Probabilmente non si vede molto bene, ma c'è un piccolo bordo grigio chiaro qui. Se lo seleziono e poi lo elimino, poi seleziono il punto più caldo, che è proprio qui, e poi seleziono la stessa Y del punto più caldo e rimuovo altri punti, posso modificare l'asse Y qui, passando da quella singola traccia alla visualizzazione della temperatura stessa, e posso usare questo.
Potrebbe sembrare complicato, ma ho creato anche un flusso di lavoro per farlo. Questa è solo una registrazione di me stesso mentre lo facevo in JMP una volta. Ho barato un po' e ho creato un piccolo script, ma era solo per la selezione. Il flusso di lavoro mi chiede: "Ehi, che numero di esecuzione era questo?". Salverà quella tabella dati.
La vita è davvero bella. Farlo con 20 immagini non è un grosso problema. Se proprio non ti piace ripetere lo stesso flusso di lavoro 20 volte, puoi anche semplicemente scrivere uno script per farlo. Non te lo mostrerò, ma l'ho incluso nel caso fossi curioso. Questo processo può essere seguito. Casey può usare questo processo per misurare la temperatura per... Vedremo di eseguirne una per ogni posizione X.
Come potete vedere, il DOE è stato replicato più volte per ciascuna delle nostre esecuzioni. Ora abbiamo creato questo DOE da 20 esecuzioni e vi abbiamo incorporato le informazioni dell'immagine. Ciò significa che possiamo utilizzare il Functional Data Explorer. A proposito, il Functional Data Explorer è una funzionalità di JMP Pro, ma possiamo utilizzarlo su tutte queste tracce. Scusate, ho saltato un passaggio. Questa tabella dati potrebbe essere un po' più comprensibile.
Ho tutte queste esecuzioni e tutte le tracce di tutte queste schede di test, oltre a una esecuzione zero, questo ideale. Posso dire a Functional Data Explorer in JMP Pro: "Ehi, ecco tutte le mie tracce. Ho un target. Puoi ottimizzarlo?". Mi dirà dove devono essere impostate le impostazioni dei fattori per raggiungere questo obiettivo. Posso anche sperimentare e vedere cosa succede a quella traccia di temperatura.
È fantastico poter passare dalle immagini di un circuito stampato e della sua temperatura alle impostazioni DOE e alle impostazioni dei fattori che minimizzeranno la temperatura complessiva su tutta la superficie, senza limitarsi a migliorare un singolo punto dati a scapito di altri. È davvero, davvero fantastico.
Casey esegue l'esperimento e lo completa, quindi costruisce il suo circuito stampato ideale, ed è pronta a mettere in produzione la macchina finale, ma vuole monitorarla perché una cosa è eseguire un DOE e ottenere il punto ottimale. Un'altra cosa è portare quel punto ottimale in produzione, verificarlo e assicurarsi che funzioni davvero bene.
Il problema qui è che l'apparato di prova è dotato di sensori di temperatura calibrati e di una termocamera. Lei è riuscita ad avere accesso a entrambi, ma la macchina di produzione ha solo una termocamera, e quella termocamera è già installata, quindi non vuole sostituire nulla in termini di temperatura. Vuole comunque sapere qual è la temperatura massima rilevata.
Un paio di domande. Può usare un'immagine come termometro? Magari spingendosi un po' più in là, può ricevere una notifica se la temperatura diventa troppo alta? Non lo so. Se si chiede che temperatura sia, può controllarla sul telefono? Iniziamo con queste immagini come termometro. Di nuovo, se premi quel pulsante, verrà creata anche questa cartella per te.
Con tutti questi file DOE, comprese le immagini, si vede come la run numero 1 qui sia un po' più luminosa, quindi un po' più calda della run numero 2. Quello che vorrei fare è importare tutte queste immagini in JMP molto rapidamente e creare praticamente un set di dati con esse. È semplicissimo. È qui nel file, "Importa più file". È proprio lì. Devo solo dire a JMP dove farlo. Naturalmente, ricorda l'ultima volta che l'ho usato, quindi è già lì.
Selezionerò i file per estensione e ho un sacco di file PNG, perché non voglio importare anche i file JMP, solo le immagini. Se clicco sulla colonna "Aggiungi nome file", JMP dirà automaticamente: "Oh, hai un sacco di immagini? So come gestirle. Le inserirò in una tabella dati per te".
Non ho dovuto copiare e incollare nulla. In pratica, ci sono voluti tre clic e ce l'abbiamo fatta. È stato davvero fantastico. Le immagini sono pronte all'uso. Con un po' di codifica, posso ridurre il nome del file al solo numero di tiratura.
Per il nostro caso di studio, faremo finta che Casey abbia svolto questo lavoro. Ha ottenuto il numero di esecuzione, la temperatura massima effettiva, perché, ancora una volta, la sua macchina ha sensori e una termocamera. Userà questo per testare e, in pratica, creare un modello per vedere se riesce a prevedere la temperatura in base a un'immagine. È un processo un po' impegnativo dal punto di vista computazionale. Anche questa è una funzionalità di JMP Pro. È un componente aggiuntivo per JMP Pro, ma in pratica è un modo per usare le immagini e usarle per creare un modello. È davvero fantastico.
In questo caso, abbiamo un modello che prevede... Ha un R-quadrato di circa 0,8 sui dati che sono stati omessi dal modello. Casey continua a prendere quel modello e a generare il codice Python per esso, e poi prende quel codice Python. Ovviamente, penso che dovrà installare un paio di moduli nella sua macchina di produzione. Prendi questo codice Python e installalo nella macchina di produzione.
Quindi la macchina di produzione può utilizzare il modello creato in JMP, ma ne utilizzerà la versione Python. Non è necessario che JMP sia installato su ogni macchina del mondo. Usa semplicemente JMP per creare quel modello, e poi la macchina può eseguirlo. Davvero, davvero fantastico. Ha inserito anche del codice per inviarlo a un database, e poi usa JMP Live per aggiornare automaticamente e vedere a che punto è la temperatura.
Ha sottoscritto tutti gli avvisi. Se la situazione dovesse andare fuori controllo, lo saprà subito, oppure potrà controllarla anche sul suo telefono. Credo che dovrei mostrarle come apparirebbe su un telefono. Può vederlo sul suo telefono. Sì, va tutto bene. La risposta alla domanda è: può ricevere una notifica se la temperatura diventa troppo alta? Può controllare la temperatura dal suo telefono? Sì, sì, sì. Penso che la cosa più interessante qui sia che ha usato le immagini in una tabella di dati per creare un modello per la temperatura, e quel modello prevede la temperatura in modo super, super preciso.
Facciamo un passo indietro, cosa abbiamo fatto oggi? Beh, abbiamo preso delle immagini da JMP. Scusate. Abbiamo chiesto a JMP di creare delle immagini per noi. Abbiamo importato le immagini in una tabella. Abbiamo importato le informazioni contenute, sia come grafici che come immagini, in JMP, e siamo stati in grado di manipolarle e usarle.
Poi siamo stati in grado di usare questi elementi per condurre un esperimento utilizzando la curva estrapolata da un'immagine e poi usare l'immagine stessa come fattore nella costruzione di un modello. Grazie per l'attenzione. Non vedo l'ora di scoprire quali saranno le prossime cose che potremo fare con le immagini. Grazie.