Bienvenidos. Gracias por sintonizar. Hoy les presento cómo incorporar imágenes al flujo de trabajo de JMP. Hoy usaré una combinación de funciones de JMP y JMP Pro, y me aseguraré de mencionar cuándo las usaré. Pero cuando hablamos de incorporar imágenes al flujo de trabajo de JMP, el flujo de trabajo es realmente amplio, y podemos trabajar con imágenes prácticamente en cualquier parte, desde usarlas como fuente de datos hasta usarlas en análisis y, por supuesto, incorporarlas a nuestros resultados.
Dicho esto, hoy quiero presentar un breve caso práctico, pero primero quiero dar un pequeño adelanto y explicar lo que vamos a tratar. Básicamente, mostraré cómo hacer que JMP cree imágenes, por ejemplo, cómo incorporar imágenes a una tabla de datos si las obtengo de otra fuente. Quizás necesites extraer información de una imagen estática a un informe dinámico de JMP. Lo haremos con un par de ejemplos. Nuevamente, de imágenes estáticas a algo que realmente pueda manipular.
Luego, cambiaremos de tema y usaremos esas imágenes, por ejemplo, creando un mapa de calor y convirtiéndolo en una curva que podamos usar en el Explorador de Datos Funcionales de JMP. También usaremos imágenes para crear un modelo de temperatura. Haremos muchas cosas, e incluso usaremos ese modelo para monitorizarlo en tiempo real.
Dicho esto, voy a cerrar esto y vamos directamente al grano. Pensé que sería mejor si lo planteáramos desde la perspectiva de un caso práctico. Hay algo de historia en juego. No le den demasiada importancia a la historia, porque casi todo es producto de mí. Es principalmente por la idea de tener una narrativa.
Vamos a imaginarnos como Casey Sparks, un ingeniero de procesos eléctricos a cargo de la fabricación de una máquina crucial para nuestro proceso de creación de widgets en la fábrica de Red Triangle Widgets. Hemos creado prototipos de la máquina, pero esta se sobrecalienta constantemente. Hemos podido rastrear este sobrecalentamiento hasta una placa de circuito interna específica de la máquina; internamente, significa que fabricamos esta placa de circuito internamente. Eso es genial, porque significa que podemos modificarla. En realidad, la empresa necesita que esto esté listo para ayer. Tiene que estar listo para producción. La producción ha tenido dificultades para satisfacer la demanda de este nuevo producto, y la máquina realmente facilitará mucho las cosas para todos. Afectará la moral de todos. Por supuesto, el presupuesto de horas extras se está viendo afectado por la solución alternativa.
A título personal, esta persona, Casey, es nueva en Red Triangle y quiere dejar huella. Todos queremos dejar huella en nuestro trabajo. Usaremos imágenes para guiarnos en el proceso de comprensión, resolución y verificación de la solución del problema. Recorreremos juntos ese proceso de comprensión. Realizaremos el experimento juntos, y luego, juntos, el proceso de verificación, y básicamente lo explicaremos paso a paso.
Empezaremos con una tabla de datos. Esto suele ocurrir cuando se investiga y se crea un conjunto de gráficos. Sería genial poder incorporarlos a una tabla y hacer algo con ellos. Es muy fácil, pero está oculto en el menú "Editar".
Si hace clic derecho en cualquier imagen en JMP y luego va al menú Editar, verá una opción aquí abajo que dice "Crear una tabla de gráficos como esta". Eso es todo. Ahora bien, como tengo varios gráficos iguales en este informe, JMP ha creado esta tabla automáticamente, y los gráficos se muestran en tamaño completo y resolución completa.
Podríamos empezar a tomar notas en cada uno de estos archivos mientras hablamos de este problema. Casey ha encontrado estos cuatro problemas potenciales. Quiere tomar notas y guardar el archivo en su carpeta de proyecto para que, en el futuro, cuando la gente lo revise, tenga estas notas y el gráfico. ¡Es genial!
De nuevo, es facilísimo: solo tienes que hacer clic derecho en un gráfico, ir al menú Editar y crear una tabla de gráficos como esta. Es una función increíble. En breve te mostraré cómo convertir tus propias imágenes en una tabla de datos rapidísimo, y será casi igual de rápido.
Quizás cambiemos un poco de dirección. Ya tenemos este gráfico de los factores iniciales. Estos son quizás cuatro factores potenciales con los que Casey está pensando experimentar. También encontró un par de imágenes de las que necesita obtener los datos.
Un pequeño desvío. En este diario hay un enlace, que compartiremos próximamente, a una extensión en la plataforma de JMP llamada "Image to Table". Para ser sinceros, yo diseñé los complementos, así que, por supuesto, me parece increíble. Puedes descargarlo gratis e instalarlo en JMP, y luego podrás importar una imagen. Tengo un par de ejemplos de cómo lo haremos. Tomemos este primer ejemplo.
Digamos que Casey encontró... Revisando la biblioteca de experimentos previos de su empresa, encontró una gráfica de hace 10 años que alguien creó con la potencia en una unidad arbitraria sobre otro factor X. Esto es genial. Está muy emocionada porque puede ayudarla a comprender uno de sus factores. Pero le gustaría tener una estimación y ver si sigue subiendo. Especialmente cuando X es igual a 7, es donde realmente le interesa.
¿No puede extrapolar dónde X es igual a 7 más que simplemente dibujar una línea y analizarla con cierto rigor estadístico? Claro que sí. Es bastante sencillo. Una vez instalado el complemento, simplemente selecciónalo y te preguntará dónde está tu archivo de imagen. Lo vamos a dirigir allí. Disculpa.
Obtenemos una imagen de la imagen y una pequeña consola aquí abajo. Voy a presionar esto, eliminar los píxeles blancos y verán que pasamos de importar potencialmente 270,000 filas a solo 50,000. Las imágenes suelen ser bastante grandes al convertirlas en una tabla. Siempre que podamos ahorrar tiempo, es genial.
Al pulsar ese botón, se obtiene una tabla de datos y un par de gráficos. A veces funciona mejor un gráfico en blanco y negro, y a veces uno a color. En este caso, creo que el gráfico a color funcionará mejor. Veamos una tabla de datos con esos 50.000 píxeles importados. Voy a mover esto hacia abajo y pensar en lo que debe suceder a continuación. Hay un par de pasos que quiero seguir para extrapolar a donde X es igual a 7.
Lo primero que haré será recalibrar los ejes X e Y. Para ello, simplemente haré una selección. Como esto es solo el Constructor de Gráficos, es muy fácil seleccionar elementos de forma interactiva. He seleccionado el área de mi gráfico. Voy a pulsar "Recalibrar los ejes X e Y". Lo que he seleccionado es que el eje X va de cero a cinco y el eje Y va de cero a uno. Solo necesito introducirlo: de cero a cinco y de cero a uno.
Presiono "Aceptar" y me dice: "He creado estas nuevas columnas. Quizás quieras usarlas". Sí, me gusta la idea. Me sorprende cada vez que lo hago, lo sencillo que era y cuántas veces he deseado haberlo tenido antes, después de encontrar una imagen. Ahora las escalas están alineadas. Es realmente genial.
El siguiente paso es mantener solo esta traza azul en el centro. No necesito todos los demás colores. Como ahora tengo estos datos en JMP, esto se vuelve una tarea sencilla. Voy a ir al menú Agrupamiento y el Agrupamiento de K Medias es extremadamente rápido con conjuntos de datos bastante grandes como este.
Solo necesito decirle a JMP: «Quiero que hagas grupos de colores. Quiero que los separes en varios colores». Ahora puedo ver el gráfico y contar con los dedos. Tengo negro, dos grises y azul. Son cuatro colores. Quizás me tiente poner 4 aquí mismo.
Lo que descubrí, sin embargo, es que las computadoras, al crear imágenes, combinan los colores. Descubrí que duplicar la cantidad de colores visibles da muy buenos resultados. Presioné "Ir". De nuevo, es una herramienta agradable e interactiva, así que puedo usar la flecha hacia abajo del teclado y navegar fácilmente.
No es el Clúster 1. Bueno, supongo que con un clic ya estoy listo. Es el Clúster 2. Podría seguir. Lo que quiero hacer es seleccionar todo excepto el Clúster 2 y luego ir a mi tabla de datos y eliminar esas filas. Listo. Ahora tengo esa traza azul y está en las unidades correctas. Ahora me resulta muy fácil entrar y quizás ajustar esa curva con mis unidades calibradas.
Sé que, como esto sube y baja... Voy a presionar Alt mientras hago clic aquí. Sé que, al subir y bajar, probablemente sea biexponencial, pero no sé si es 4 o 5. Debería haberlo memorizado. Es un parámetro biexponencial 5 porque es el de arriba, así que lo voy a eliminar.
Ahora, de repente, puedo extrapolar. Ese es un R cuadrado muy bueno: 0,99. Puedo consultar el perfilador. Puedo ver dónde estamos en 7. Puedo obtener ese valor. Es facilísimo pasar datos de imágenes a JMP de esa manera. Déjame aclarar y usaremos otro ejemplo. Permíteme hacer esto.
¿Puede Casey extrapolar a donde X es 7? Sí, bastante fácil. Se necesitan un par de pasos. Aquí hay otro gráfico que Casey encontró. Imaginaremos que es de una revista académica, y verás que son dos grupos diferentes, pero es solo un gráfico, o mejor dicho, es solo la imagen de un gráfico.
Lo que realmente le gustaría hacer es, quizás, obtener una línea de ajuste para los puntos amarillos y, para los puntos verdes, dos líneas de ajuste diferentes. No tiene los datos; esto es solo algo que obtuvo de internet. ¿Puede obtener una línea de ajuste para cada grupo? Por supuesto, la respuesta será sí. Vamos a usar ese complemento de nuevo con esta imagen en la tabla. Elegiremos este diagrama de dispersión de ejemplo.
Por cierto, se me olvidó mencionar esto: si descargas este diario, tendrás acceso a todos los archivos. Al pulsar ese botón, se crearán todos los archivos que necesitas.
Solo tenemos que hacer lo mismo que antes. Empezaremos eliminando esos píxeles blancos. Pulsaremos el botón "Importar". Una vez importado, haremos lo mismo que antes para recalibrar los ejes: seleccionar la región que sabemos que está delimitada. Parece que va de 50 a 70 en X y de 60 a 180 en Y. Podría pulsar "Recalibrar" y pasar de 50 a 70 y luego de 60 a 180. Pulsar "Aceptar". Ahora tengo estos nuevos ejes. ¡Genial!
A continuación, quiero categorizar estos puntos de datos por color. De nuevo, en el Constructor de Gráficos, solo voy a seleccionar los elementos importantes. Luego, voy a hacer una calibración de color. Hay un par de opciones. Esta es una leyenda categórica, con texto o caracteres.
Voy a presionar esto y JMP... Probablemente debería haber quitado esa tabla de datos del medio. Listo. Resaltó estos verdes. Me reta a escribir el texto asociado a ellos. Ese es el A. El siguiente es el B. Suele encontrar un par de colores adicionales, como mencionamos, las computadoras hacen esa combinación. Voy a omitir cualquier otro que aparezca. Listo. Había tres colores adicionales en el fondo que realmente no nos importaban.
Pero aquí hay algo genial. Ahora, si voy a la tabla de datos y selecciono las A (verdes), selecciono las B (amarillas/naranjas). Pero quizás aún más importante, aquí está todo lo demás. Como no me importa, puedo eliminarlo. Luego solo queda este remanente de la leyenda, y puedo eliminarlo.
Ya tengo los datos extraídos. Sin embargo, lo que aún no tengo es un punto individual. Tengo 46 puntos. Me temo que si hiciera esa línea de ajuste, podría no ser muy precisa, ya que cada uno de estos grupos de datos tiene un número diferente de puntos. No creo que estemos listos todavía. Quizás lo que quiero hacer en su lugar es obtener el centro de cada uno de estos puntos. Vamos a usar la misma herramienta que antes: la agrupación de K-medias.
En lugar de agrupar por colores, que ya tengo (correcto), voy a agrupar por grupos X e Y. Básicamente, le digo a JMP que cree varios grupos. Ahora, nos enfrentamos a esto. ¿Cuántos grupos? No lo sé. Parecen entre 30 y 40. Podría contarlos, pero si simplemente introduzco este rango de grupos, dejaré que JMP me diga que aparentemente son 38 grupos. Me gusta mucho más eso que contarlos a mano.
Voy a llegar aquí, en este 38, para volver a comprobarlo. Quiero guardar los colores en la tabla. Esto cambiará los colores en el Constructor de Gráficos. Mientras no vea que alguno de estos puntos de datos se divide por la mitad, sabré que el número es correcto. Puedo guardar estos grupos en la tabla. Ahora mi tabla de datos tiene prácticamente todo lo que necesito hacer: los grupos y las etiquetas.
Puedo resumir todo esto rápidamente diciendo: quiero saber a qué grupo pertenece cada uno de mis clústeres y luego quiero saber el punto medio o la media de X e Y. Si configuro eso en una tabla de datos, puedo importarlo al Constructor de Gráficos y finalmente puedo responder a esta pregunta. En resumen, esto nos llevó unos dos minutos en total. ¡Genial!
Ahora puedo buscar esto y pedir esa ecuación. Volviendo a nuestra pregunta original, ¿puede Casey calcular la línea de ajuste para cada grupo? Claro que sí. Podemos obtener información de las imágenes con bastante facilidad. Podemos manipular esa información y usar las herramientas de JMP para ello. Es realmente genial. Me impresiona todo lo que se puede hacer con él.
Limpiemos aquí y luego pasaremos a la siguiente etapa, que es... En esta información de fondo, Casey usó toda esta información para reducir varios factores para su experimento. De nuevo, intentamos reducir la temperatura de un componente. Lo redujo a varios factores y creó estas placas de prueba, 20 de ellas.
Luego, sometió cada placa a una prueba de estrés de 20 minutos, pero el resultado no fue un número. El resultado fue una imagen térmica, algo parecido a esto. ¿Hay alguna manera de usar esa imagen para reducir la temperatura total, no solo la del punto más caliente, sino la temperatura total de la placa? Claro que sí. Ya lo hicimos: usar la imagen para la tabla, así que voy a tomar un atajo.
Básicamente, hay un pequeño proceso que debemos seguir con estos datos para cada una de las imágenes de su prueba. Probablemente no se vea muy bien, pero hay un pequeño borde gris claro aquí. Si lo selecciono y luego lo borro, y luego selecciono el punto más caliente (que está aquí), y luego selecciono las mismas Y que ese punto más caliente y elimino los demás puntos, puedo cambiar el eje Y de solo ese trazo a la temperatura en sí, y puedo usarlo.
Puede parecer complicado, pero también creé un flujo de trabajo para hacerlo. Esto fue simplemente grabarme haciéndolo en JMP una vez. Hice un poco de trampa y creé un pequeño script, pero solo para la selección. El flujo de trabajo me pregunta: "¿Qué número de ejecución fue este?". Guardará esa tabla de datos.
La vida es genial. Hacer esto con 20 imágenes no es gran cosa. Si detestas repetir el mismo proceso 20 veces, también puedes escribir un script. No te lo mostraré, pero lo incluí por si tienes curiosidad. Puedes seguir ese proceso. Casey puede usarlo para tomar la temperatura... Veremos cómo ejecutar uno para cada posición X.
Se puede observar cómo el DOE se ha replicado varias veces para cada una de nuestras ejecuciones. Ahora hemos creado este DOE de 20 ejecuciones e incorporado la información de la imagen. Esto significa que podemos usar el Explorador de Datos Funcionales. Por cierto, el Explorador de Datos Funcionales es una función de JMP Pro, pero podemos usarlo en todas estas trazas. Disculpen, me salté un paso. Esta tabla de datos podría ser más clara.
Tengo todas estas ejecuciones y todos los rastros de todas estas placas de prueba, además de un cero de ejecución, este ideal. Puedo decirle al Explorador de Datos Funcionales de JMP Pro: "Aquí están todos mis rastros. Tengo un objetivo. ¿Puedes optimizarlo?". Me indicará dónde deben estar los ajustes de los factores para que esto suceda. También puedo experimentar con eso y ver qué sucede con ese rastro de temperatura.
Es genial poder pasar de imágenes de una placa de circuito y su temperatura a ajustes de DOE y de factores que minimizarán la temperatura general en toda la superficie, en lugar de mejorar solo un punto de datos que podría perjudicar otros. Es realmente genial.
Casey realiza ese experimento y lo completa, y construye su placa de circuito con el punto óptimo ideal. Está lista para poner la máquina final en producción, pero quiere supervisarla porque una cosa es ejecutar un DOE y obtener el punto óptimo, y otra muy distinta es poner ese punto óptimo en producción y verificar que realmente funciona bien.
El problema radica en que el aparato de prueba cuenta con sensores de temperatura calibrados y una cámara térmica. Ha tenido acceso a ambos, pero la máquina de producción solo tiene una cámara térmica, y esta ya está instalada, por lo que no quiere modificar la temperatura. Quiere saber cuál es la temperatura máxima.
Un par de preguntas. ¿Puede usar una imagen como termómetro? Quizás, para ir un poco más allá, ¿podría recibir una notificación si la temperatura sube demasiado? No lo sé. Si se pregunta qué temperatura tiene, ¿puede consultarla en su teléfono? Empecemos con estas imágenes como termómetro. Si pulsas ese botón, también se creará esta carpeta.
Con todos estos archivos DOE, incluyendo las imágenes, pueden ver cómo la primera ejecución es un poco más brillante y, por lo tanto, un poco más caliente que la segunda. Lo que quiero hacer es importar todas estas imágenes a JMP rápidamente y crear básicamente un conjunto de datos con ellas. Es facilísimo. Está aquí, en el archivo: "Importar varios archivos". Está ahí mismo. Solo necesito indicarle a JMP dónde hacerlo. Por supuesto, recuerda la última vez que lo usé, así que ya está ahí.
Voy a seleccionar archivos por extensión, y tengo varios archivos PNG, porque no quiero importar también los archivos JMP, solo las imágenes. Si hago clic en la columna "Agregar nombre de archivo", JMP dirá automáticamente: "¿Tienes varias imágenes? Sé cómo manejarlas. Las voy a colocar en una tabla de datos".
No tuve que copiar ni pegar nada. Básicamente, con tres clics lo conseguí. Fue genial. Las imágenes vienen listas para usar. Con un poco de recodificación, puedo reducir el nombre del archivo a solo el número de ejecución.
Para nuestro caso práctico, supongamos que Casey realizó este trabajo. Obtuvo el número de ejecución y la temperatura máxima real, ya que, como ya hemos dicho, su máquina tiene sensores y una cámara térmica. Simplemente usará esto para probar y, básicamente, crear un modelo para ver si puede predecir la temperatura basándose en una imagen. Requiere un uso intensivo de recursos computacionales. Esta también es una función de JMP Pro. Es un complemento para JMP Pro, pero básicamente, es una forma de usar imágenes y usarlas para crear un modelo. Es realmente genial.
En este caso, tenemos un modelo que predice... Tiene un R cuadrado de aproximadamente 0,8 con datos que se retuvieron del modelo. Casey continúa tomando ese modelo y generando el código Python, y luego toma ese código Python. Claro, creo que tendrá que instalar un par de módulos en su máquina de producción. Toma este código Python e instálalo en la máquina de producción.
Entonces, la máquina de producción puede usar el modelo creado en JMP, pero usará la versión Python. No necesita tener JMP instalado en todas las máquinas. Simplemente usa JMP para crear ese modelo y luego la máquina puede ejecutarlo. ¡Genial! También introdujo código para exportarlo a una base de datos y luego usa JMP Live para actualizar automáticamente y ver la temperatura.
Está suscrita a todas las advertencias. Si se sale de control, lo sabrá enseguida o también podrá verlo en su teléfono. Supongo que debería mostrarle cómo se vería en un teléfono. Puede verlo en su teléfono. Sí, todo bien. La respuesta a la pregunta es: ¿puede recibir notificaciones si la temperatura sube demasiado? ¿Puede consultar la temperatura desde su teléfono? Sí, sí, sí. Creo que lo mejor es que usó imágenes en una tabla de datos para crear un modelo de temperatura, y ese modelo predice de maravilla.
Si retrocedemos un poco, ¿qué hicimos hoy? Bueno, obtuvimos algunas imágenes de JMP. Disculpen. Hicimos que JMP creara algunas imágenes. Las trajimos a una tabla. Trajimos información que contenía gráficos o imágenes a JMP, y pudimos manipularla y usarla.
Luego pudimos usar esas cosas para realizar un experimento con la curva extrapolada de una imagen y, posteriormente, usar la propia imagen como factor para construir un modelo. Gracias por sintonizarnos. Tengo muchas ganas de ver qué podemos hacer con las imágenes en el futuro. Gracias.