En Syngenta, la clasificación de imágenes es clave para el modelado de muestras dentro de un sistema automatizado de formulación química que ha generado más de 100.000 imágenes. Las imágenes se utilizan para determinar los siguientes pasos en el desarrollo de productos, pero su interpretación visual requiere mucho tiempo y es subjetiva para el evaluador.
El complemento Torch Deep Learning para JMP Pro aprovecha la potencia de las redes neuronales convolucionales y la computación en GPU para simplificar drásticamente el análisis y obtener resultados consistentes en un conjunto acordado de imágenes de control. Demostramos lo fácil que es importar y predecir un conjunto complejo de imágenes con el complemento, obteniendo resultados interactivos y significativos en minutos para tareas que normalmente requieren horas o incluso días con el procesamiento manual y la codificación en Python.
Hola a todos. Bienvenidos a nuestra presentación de hoy. Soy Russ Wolfinger, del departamento de I+D de JMP, y me complace enormemente contar con la presencia de mi amigo y colega, David Barnett, de Syngenta. Nos entusiasma mucho hablar hoy con ustedes sobre una aplicación relativamente nueva de JMP y JMP Pro que utiliza y analiza imágenes. Se trata de una nueva dirección para nosotros dentro de JMP que nos entusiasma enormemente. Recuerdo que pasamos gran parte de los primeros años de la COVID-19 trabajando en un nuevo complemento para JMP llamado Torch Deep Learning, del cual habíamos oído hablar a muchos clientes sobre su interés. Como saben, ha habido un auge mundial en el interés por la IA, el aprendizaje automático y el aprendizaje profundo. Probablemente, los dos paquetes más populares actualmente son PyTorch y TensorFlow. Nos decidimos por PyTorch, y resulta que Torch tiene una interfaz C++ muy útil que pudimos aprovechar a bajo nivel. Hemos podido crear un complemento interesante que se integra perfectamente con JMP Pro y lo publicamos.
Recuerdo estar emocionado. Creo que solo llevaba unas semanas en el mercado, y de alguna manera David se enteró.
David, creo que fuiste uno de los primeros en echarle un vistazo. Recuerdo haber oído hablar de tus primeros éxitos. Me alegra mucho hoy escuchar tu historia y cómo surgieron las cosas, así como algunas aplicaciones y tu situación actual tras haber trabajado con estos datos y aplicaciones durante los últimos meses. David, permíteme que te cuente lo que estás haciendo.
Gracias, Russ. Es muy bueno. Disculpa, solo quería compartir mi pantalla. Espero que todos puedan verlo. Gracias, Russ, por eso. Como dijo Russ, lo vi bastante pronto en uno de los primeros programas de doctorado. Es algo que hemos querido analizar desde hace tiempo en el ámbito del análisis de imágenes. Voy a explicar la historia detrás de esto en nuestro sistema de alto rendimiento.
Un breve resumen de la agroindustria: existe una creciente preocupación por cómo alimentaremos al mundo en el futuro. Para 2050, habrá aproximadamente nueve mil millones de personas, y la demanda de alimentos aumentará mucho más. Como empresa, buscamos crecer cada vez más. Syngenta, por sí sola, tiene unos 30.000 empleados en, creo, más de 90 países, y nuestras ventas allí fueron bastante altas, casi 17 mil millones hace tres años. El mayor centro de I+D que tenemos, y donde trabajo, está en Jealott's Hill, Reino Unido, a las afueras de Londres. Invertimos una gran cantidad de dinero en investigación y desarrollo dentro de la empresa.
Contamos con diferentes tipos de químicos: sintéticos, computacionales y analíticos. Me dedico al área de química de formulación, que básicamente consiste en combinar todos nuestros conocimientos y vender productos. Las tendencias en formulación, debido a las presiones regulatorias y de costos, y a la velocidad con la que comercializamos nuestros productos, como mencioné, implican que la complejidad de las formulaciones está creciendo exponencialmente. Debemos garantizar la seguridad, no solo en la fabricación, sino también para los agricultores que utilizan nuestros productos y para los consumidores que compran los productos en los que se utilizan. Por ello, vimos una gran oportunidad en la automatización para que realizara gran parte del trabajo de fondo. Como mencioné, debido a la complejidad de las formulaciones y la composición, el contenido real de los envases ha aumentado considerablemente. El proceso, y el orden de adición, también pueden ser muy importantes. Las respuestas que tenemos, ya sea que se asiente dentro de la botella con el tiempo, o que se espese con el tiempo también, a menudo no son lineales debido a las diferentes cosas que tenemos que poner en la botella.
Las recompensas que vimos fueron un conjunto de datos más amplio y completo. Comprender mejor los productos que vendemos al agricultor. Esto también puede reducir la repetición del trabajo en el laboratorio para comercializar nuestros productos. También podemos incorporar algunos factores relacionados con el costo. Si podemos comprar nuestros materiales más baratos, podemos vender nuestros productos a un precio más bajo o podemos obtener mayores ganancias, que es lo que generalmente se entiende.
Además, el rendimiento mejorado del producto. Podemos incorporar adyuvantes, como los llamamos, para facilitar su absorción en las plantas o en los insectos. Debido a la complejidad, esta es una explicación muy simple de la cantidad de componentes que podemos incluir. Si tenemos, en la fila superior, 20 ingredientes y queremos hacer una mezcla uno a uno, serían 190 muestras. Un químico de formulación podría hacerlo en el laboratorio. Si se desea añadir más complejidad y hacer una mezcla directa uno a uno, serían 1100 muestras. Eso no es algo que un químico de formulación pueda hacer en un tiempo razonable.
Como pueden ver, si aumentamos la cantidad de ingredientes, podemos llegar a casi dos millones de muestras, y en el laboratorio no vamos a lograr esa cifra ni de lejos. Hace unos 15 años, invertimos en lo que llamamos ARTEMIS, el sistema de formulación de alto rendimiento en Jealott's Hill. Allí pueden ver la escala en la que estábamos trabajando. Este sistema permite elaborar y caracterizar las muestras automáticamente. El sistema puede elaborar unas 200 muestras al día y caracterizarlas completamente, un avance significativo respecto a lo que un químico de formulación puede hacer en el laboratorio.
Una de las pruebas que realizamos es ver cómo reacciona la muestra al verterla en un tanque de pulverización. Usamos una prueba estándar, una prueba industrial, que llamamos "Receptor Crow". Normalmente, preparamos una solución al 1 %. Tenemos que comprobar manualmente su nivel de efloración. Al verterla directamente, ¿cómo se eflora? También analizamos la estabilidad a lo largo de varias horas. Podemos tardar hasta 24 horas en realizar esta prueba.
De nuevo, es una prueba muy subjetiva. Un químico podría ver que está bien, otro podría ser un poco más selectivo y detectar un poco de crema en la parte superior de la muestra o un poco de sedimento en el fondo. Aquí hay un ejemplo de lo que buscamos, como indica la ayuda. Todo esto es muy visual. A la izquierda, tenemos las mejores muestras. Si bien no son brillantes, son muy buenas. De izquierda a derecha, la muestra se vuelve mala. Básicamente, la muestra cae directamente al fondo del cilindro y no hay dispersión alguna. Si un agricultor pusiera esto en un tanque de pulverización, sin agitación, no se pulverizaría correctamente en el campo y, por lo tanto, en las plantas.
Ahora en ARTEMIS, volviendo a la bestia, tenemos un módulo de análisis visual (VAM), que probablemente sea el aspecto más sólido de su caracterización. Toma varias fotografías. Les haré una demostración. Les mostraré la imagen en un minuto. Utiliza láser, retroiluminación y luz frontal, todo dentro de una bonita y reluciente caja.
Este es un ejemplo de lo que tenemos. Esta es una muestra, y tenemos, en bloques de tres, diferentes tiempos de exposición. Los primeros tres, con iluminación frontal, retroiluminación y un láser que incide en un plano, en la muestra, por delante, y se ve lo que se refleja. Los siguientes tres tienen una exposición diferente, pero de nuevo, se trata de un láser con iluminación frontal y retroiluminación, que incide en un plano similar. La tercera sección es, de nuevo, la misma, con un tiempo de exposición muy largo. Se puede observar que la intensidad del color tiende a aumentar, como era de esperar, con tiempos de exposición más largos. El siguiente bloque de tres es el láser que viene desde atrás. Se ve lo que realmente detecta una cámara del láser. De nuevo, es un plano de un láser que lo atraviesa. En la parte inferior, se ven unos pequeños puntos rojos, que es lo que atraviesa la muestra. No es tan opaco en la parte inferior.
El del lado derecho tendemos a ignorarlo porque no nos dice nada. Espero que haya quedado claro. Este es un ejemplo. Se trata de una muestra de crema. Si observan las imágenes, suelen ver una mancha blanca en la parte superior izquierda del número 3. Con la retroiluminación, se ve claramente que hay algo en la parte superior. Eso es lo que llamamos una muestra de crema.
Lo que buscamos es una muestra homogénea a través de todo esto. Lo que hemos tenido durante varios años es algo basado en un programa llamado ImageJ. Nos da un valor numérico de la muestra, y realmente no le importa cuál sea la muestra, simplemente nos devuelve un valor numérico. Cualquier valor entre 0 y 255 es uno de los números para el color. Obtenemos rojo, verde y azul como ejemplo para eso. No obtenemos un resultado legible para humanos. Depende en gran medida de cada individuo, normalmente yo, combinar todos estos números e indicarle al químico qué es la muestra. ¿Es una buena muestra blanca y homogénea, que es lo ideal, o es una muestra amarilla sedimentada? Como parte de los números, podemos obtener el color, pero es bastante laborioso. Todo lo que quería, durante varios años, era un programa que pudiera decirme realmente cómo se ve una muestra. ¿Es una buena muestra blanca y homogénea?
No tendría que interpretar nada en absoluto. Quizás algunas comprobaciones en segundo plano, pero no tendría que profundizar en la complejidad de los números.
Como parte de esto, diseñamos un experimento para descartar varios emulsionantes y obtener las imágenes necesarias para analizar toda la información de Torch, además de otras razones. Teníamos varias muestras. Teníamos unas 800 muestras que preparamos para un experimento y que usamos para este análisis de imágenes. Todas las imágenes se prepararon por triplicado. El análisis de imagen también se realizó con cada una de estas muestras. En total, son siete imágenes por muestra, que luego revisé e interpreté a mi manera. Ya sea una muestra de sedimento, una muestra de crema, si es homogénea, si tiene un poco de espuma, etc., lo cual, como pueden imaginar, llevó bastante tiempo. Teníamos más de 6000 imágenes para revisar. Me llevó bastante tiempo. No me salió bien a la primera. Probablemente aún no esté del todo bien, pero me esforcé al máximo.
Extraje varias muestras para diferentes dosis. Las imágenes se conservan para cualquier otra técnica que se desee realizar. Al examinar una muestra en el laboratorio, el análisis se descarta de inmediato, ya que simplemente se desecha y no se puede volver a ver con imágenes; permanece ahí para siempre. ¿Qué usaríamos para realizar este análisis de imágenes? Es un programa llamado Torch en JMP, que es bastante bueno. Seguro que para nosotros (y entraremos en más detalles), pero esto básicamente significa, como acaba de decir Russ, que este programa puede analizar una imagen e interpretarla basándose en mi conocimiento previo. Mi portátil, en el que hago todo esto, es de alta gama, y les recomiendo encarecidamente que consigan un PC de alta gama para esto, ya que consume mucha memoria. No voy a hacer nada en vivo aquí porque puede llevar bastante tiempo, especialmente en los análisis más complejos.
Tengo varios ejemplos donde puedo ver ligeras diferencias. Honestamente, vamos a llegar a lo bueno, pero como advertencia, no soy un experto en esto en absoluto. Sé lo que significan los números cuando salen, pero no sé realmente cómo funcionan. Tengo una cita de Sócrates de la que estoy muy orgulloso. La encontré. Sé que no sé nada al respecto, así que dejaría que los expertos me la explicaran. Los dejo con eso entonces. Además, solo estoy mostrando un trabajo muy simplificado. He realizado mucho más trabajo en segundo plano para lograrlo, y también les proporcionaré los datos. Espero que puedan analizarlos y obtener información aún mejor. Como dije antes, los resultados no son perfectos. Estoy satisfecho con una correlación del 80% entre lo que creo que parecen las muestras y lo que JMP dice que parecen.
Estoy llegando más lejos. Hay otras herramientas disponibles para hacer esto. De hecho, puedes usar el script de Python en su entorno nativo.
Lo que hemos pensado es integrar esto en el flujo de trabajo de nuestra red de datos. Esperamos automatizarlo. Una vez que tengamos más conocimiento y más confianza en el significado real de los resultados y en su veracidad, casi lo hemos logrado.
Algunos agradecimientos antes de pasar a lo bueno. Tenemos varios. Gracias, Sam. Algunas personas de JMP. Liz Easton, de Jealott's Hill, encargada de todas las licencias de JMP, y Alan Brown, a quien algunos recordarán, estadístico jubilado de Syngenta y que ha sido una gran influencia en el uso de JMP en Syngenta durante los últimos años. Como dije, ya se jubiló, pero su legado sigue vivo. Espero poder incorporarme a JMP.
El diseño del experimento, que no voy a detallar aquí, es una versión simplificada. Tenemos el sistema de IA, tres emulsionantes, y esa es la cantidad, esos tres. El disolvente con los niveles aplicables, que conforman casi 1400 muestras. Tenemos tres tipos diferentes de cubetas, en las que emparejamos las muestras.
Tenemos la cubeta pura, que contiene la muestra pura. Tenemos la dilución, que se realiza aproximadamente cinco minutos después de prepararla e invertirla, cuando se toma la imagen. Esto ocurre a cero. Al día siguiente, aproximadamente 24 horas después, queremos ver la estabilidad de estas muestras durante varias horas. El análisis visual y el color son mi interpretación. Hay una muestra homogénea, que es la situación ideal. Una muestra crema, donde la muestra ha subido a la superficie. Una muestra pura, que siempre debe correlacionarse con la cubeta pura. Una muestra sedimentada, donde las muestras se han sedimentado al fondo. Una muestra espumosa, donde la muestra se ha invertido y se ha creado espuma, lo cual no es una situación ideal para las muestras. Como parte del complemento Torch, se pueden crear columnas de pliegue K. Como se recomienda, tenemos tres columnas aquí, que son básicamente las columnas de validación, más otra, y los fragmentos de imagen. No son imágenes de resolución completa. Se colocan en la tabla de datos.
Se puede ver claramente que hay muestras de diferentes calidades. Como dije antes, no voy a explicar esto en detalle porque puede llevar bastante tiempo.
Espero que puedan ver varios análisis que he realizado previamente. Las cifras principales que reviso son estas: el R-cuadrado de entrenamiento y la precisión de validación. Como mencioné antes, busco una concordancia de alrededor del 80% entre lo que he dicho y el modelo. Pueden ver aquí arriba, 96%, allá 97%. Hay correlaciones muy buenas. Hay muchos tipos de modelos de imagen que pueden revisar. Cuanto más abajo en la lista se encuentren, más tiempo tardan, pero he probado varios de estos en el pasado y descubrí que este LeNet5 es un buen equilibrio. Entre la velocidad del análisis y los resultados reales, se puede mejorar a medida que se avanza en la lista, solo muy ligeramente. Estoy muy satisfecho con el 95% que hemos obtenido. También se puede modificar el tamaño de las capas, el tamaño del lote y el tamaño de la imagen. De nuevo, no soy un experto.
Simplemente juego con estos números y obtengo diferentes resultados. Puedes ver que he probado algunos aquí. No hay una gran mejora con respecto al valor predeterminado, que es este de arriba.
Una de las muchas ventajas es que aquí se muestra este gráfico del historial de entrenamiento. Se puede ver que lo que se busca es que baje mucho más, potencialmente más rápido. Se puede hacer clic en diferentes modelos para compararlos. Se pueden encontrar algunos muy buenos. También se pueden encontrar algunos subóptimos que son muy ruidosos. Se pueden mejorar, pero hay bastante ruido, pero se puede mejorar a medida que se avanza. Otra cosa que me gustaría ver son estos gráficos. Se puede ver la probabilidad de obtener una respuesta correcta. Aunque parezca un poco confuso, los números reales no predicen correctamente. De nuevo, esto podría deberse a que no lo he interpretado bien. Son solo 33 de 1500. De hecho, hay una muy buena correlación. Como prueba de ello, también se pueden observar las matrices de confusión. La mayoría son correctas.
El amarillo tiene una probabilidad del 100 %. Como es de esperar, se pueden detectar diferentes colores si se desea. El blanco tiene una probabilidad del 97 % y la correlación con la validación es muy buena.
Puedes probar diferentes modelos. El sedimento no es muy bueno para una espuma específica. No es una prueba importante. La crema no predice mucha confianza, aproximadamente 84 de 1500, así que no está mal. Esto me demuestra que hay mucha confianza en esto, y podemos integrarlo en nuestro flujo de trabajo para el análisis. Podemos, con suerte, tomar la imagen automáticamente, realizar este análisis y obtener su aspecto de forma legible. De nuevo, es una prueba muy básica. Podemos añadir mucha más información si fuera necesario, como diferentes colores; podríamos añadir azul si también tenemos formulaciones de azul.
Este es un breve resumen de mis experiencias con un complemento de Torch para JMP, y la verdad es que ha sido bastante divertido. Para más información, no me busquen a mí. Acudan a gente como Russ, que les puede dar mucha más información. Tú decides, Russ. Dejaré de compartir.
Gracias, David. Es un ejemplo impresionante. Es realmente emocionante verlo, sobre todo porque sé que eres un químico experto en formulaciones, aunque no en aprendizaje profundo, pero logras obtener resultados. Así es exactamente como diseñamos el software, e incluso JMP en general, para científicos e ingenieros, y ahora también para científicos de datos. Somos una novedad en desarrollo. Quería mencionar, técnicamente hablando, que parece, si no me equivoco, David, que el modelo predeterminado de LeNet también está redimensionando las imágenes láser a solo 28 x 28 píxeles. Una reducción bastante drástica de la resolución. De hecho, tengo algunos ejemplos en los que eso tiende a reducir considerablemente el rendimiento. En tu caso, es bastante impresionante.
Está funcionando muy bien.
Para otras aplicaciones, existe la flexibilidad de usar imágenes más grandes, lo que ralentizará el procesamiento computacional, pero a veces vale la pena. Ahí es donde las GPU Nvidia en Windows pueden ser muy útiles. Me sumo a tu recomendación. Necesitas un hardware decente para ejecutar estos modelos. Desafortunadamente, son bastante asequibles, al menos en Windows ahora, gracias al mundo de los videojuegos. Suelen usar los mismos chips. El problema es que si tienes hijos adolescentes o algo así, puede que se peleen por la máquina, pero es muy divertido ver la aplicación aquí, David. Enhorabuena. Tengo muchas ganas de seguir trabajando contigo en estas aplicaciones. Creo que, en cierto modo, esto es solo el principio. Quería mencionar un par de cosas más para complementar lo que comentabas.
Antes que nada, para que todos estén al tanto, haremos una segunda presentación complementaria a esta. Dependiendo de cuándo vean este video, será en 2024. Si lo ven antes del 17 de octubre, aún tienen tiempo de registrarse. Si quieren verlo en vivo, visiten LinkedIn y encontrarán este anuncio. Si quieren, visiten mi página o la de Alexander Beck y regístrense.
Si ya pasó el 17 de octubre, creo que aún pueden encontrar la grabación para ver más detalles. Además, profundizaremos en un par de temas, como continuación de la presentación de hoy. Quería mencionar que este no es un ejemplo aislado. Por ejemplo, este año se publicó un artículo de un grupo de investigadores de Singapur, Cambridge y BASF, que publicó un excelente trabajo sobre formulaciones de champú. Tienen aspectos muy similares: utilizan un buen enfoque de diseño de experimentos, algo que nos encanta en JMP. Esto encaja perfectamente con nuestra especialidad: experimentos y análisis. Luego, toman fotos de sus formulaciones y, de nuevo, intentan construir modelos de clasificación para ello. También cuentan con robots automatizados que ayudan a recopilar las imágenes. Es fantástico ver esto. Creo que esta tecnología ha logrado aprovechar al máximo las capacidades de estos datos de alta calidad.
Afortunadamente, publicaron sus datos. Aquí les mostramos un vistazo rápido. También ejecutamos estas imágenes con el complemento Torch para crear un clasificador.
Incluso pudimos mejorar ligeramente los resultados publicados en el artículo. Estos modelos tienen mucho margen de maniobra. Son increíblemente capaces de hacer. No son infalibles y, a veces, incluso cometen errores tontos. Por ejemplo, creo que en este caso fue muy útil recortar. Hay que tener cuidado con los artefactos en los bordes de las imágenes. A veces, los modelos son muy ambiciosos. A veces, se centran en aspectos que no son los deseados. En este caso, recortamos un poco al principio y obtuvimos resultados excelentes. Si quieres probar el complemento, está disponible gratuitamente en la comunidad JMP. Simplemente busca Torch Deep Learning JMP Pro (quizás la forma más fácil de hacerlo en la web) y deberías poder encontrar esta página. Necesitas una copia funcional de JMP Pro 18 o 19, que también está disponible para usuarios avanzados.
Cualquiera de estos debería funcionar. Luego, simplemente descarga el complemento aquí y listo. Para hacerlo aún más atractivo, hemos recopilado una buena colección de ejemplos llamada Torch Storybook.
En realidad, esto es solo una tabla de saltos, que incluso puedes descargar sin el complemento, solo para echarle un vistazo si quieres. Ya tenemos 47 ejemplos en diversos tipos de aplicaciones. Se centra en la química, que es probablemente una de nuestras industrias o áreas de especialización más importantes en el campo científico, incluyendo, por ejemplo, este que pensé que podría ser la próxima versión de donde tenemos datos... Este era un artículo de Discovery Europe. El año pasado, quizás a principios de este, en un proceso de fermentación por lotes. De hecho, tenían datos de tiempo. Lo interesante es que pudimos generar imágenes a partir de estos datos usando JMP Graph Builder en un mapa de calor y luego canalizarlas a Torch Deep Learning. Es algo en lo que quizás no hayas pensado al principio. De hecho, si hay un tema central hoy en día, es que esta idea de integrar imágenes en JMP con modelos de aprendizaje profundo abre un nuevo camino y una gran variedad de aplicaciones.
Muchas de las aplicaciones de esta tabla provienen de imágenes.
Quería mencionar que también estamos trabajando con texto no estructurado; por ejemplo, usando cadenas de sonrisas de moléculas para predecir propiedades. ¡Increíble! Espero que hablemos más sobre esto en otra presentación, pero solo quería abrirles el apetito. No duden en descargar esta tabla y consultar los ejemplos que puedan interesarles. Échenles un vistazo. La tabla incluye enlaces para descargar los datos, todos conjuntos de datos públicos. También incluye ejemplos de resultados, referencias y antecedentes. Si quieren ponerse al día rápidamente, esta tabla está diseñada para ayudarles con varios ejemplos muy útiles. Siempre es bueno aprender con ejemplos. Estamos muy entusiasmados con estas aplicaciones. Espero, David, que a medida que avancemos, otros puedan seguir tus pasos y estaremos atentos a otras aplicaciones que tengamos. Gracias de nuevo, David. Agradezco mucho la oportunidad de trabajar contigo en esto. ¿Qué piensas, David, para los próximos pasos de tu análisis?
Se trata de probar diferentes muestras y asegurarnos de que todos estén satisfechos con los resultados obtenidos. Se trata de aprovechar el conocimiento que ya tenemos.
Muy bien. Sé que también tenemos clientes que ya… Han hecho lo mismo y están empezando a implementar sus modelos en la práctica. Muchos usan Python, y ahora tenemos aplicaciones que permiten entrenar modelos en Torch, guardarlos como un objeto de PyTorch y luego cargarlos en un programa Python usando la integración de Python de JMP muchas veces. Tenemos buenas conexiones con eso ahora. Están sucediendo muchas cosas interesantes. Simplemente una forma de hacerlo. Esto es lo que considero aprendizaje automático de IA no generativo estándar, muy popular y práctico. En tu caso, David, eso podría ahorrarte algunas visitas al optometrista y acelerar y mejorar tus flujos de trabajo y actividades diarias.
Definitivamente sí.
Muy bien. Gracias a todos por su sintonía. Esperamos verlos en las reuniones de Discovery o en cualquier otra oportunidad que tengamos. No duden en contactarnos por LinkedIn o correo electrónico. Estaremos encantados de conversar con ustedes sobre todo lo emocionante que está sucediendo con JMP Pro.