WEB3DEV Español

Cover image for Combinar Grounding DINO, SAM y la Difusión Estable para la Segmentación de Imágenes y la Pintura Interna con Prompts Textuales
Hector
Hector

Posted on

Combinar Grounding DINO, SAM y la Difusión Estable para la Segmentación de Imágenes y la Pintura Interna con Prompts Textuales

Explorar los últimos avances en la detección de objetos y la segmentación con Grounded-Segment-Anything en Google Colab

Image description

Crédito de la imagen: https://github.com/IDEA-Research/Grounded-Segment-Anything

Introducción

La detección y segmentación de objetos son tareas importantes en la visión de la computación pero, usualmente, requieren anotaciones manuales de cajas delimitadoras o máscaras segmentadas, las cuales pueden llevar mucho tiempo y ser caras. Grounding DINO y Segment Anything son dos modelos poderosos que pueden automatizar estas tareas con inputs de textos, permitiendo la detección y segmentación de objetos con descripciones libres.

¡Qué tiempo para estar Vivo!

En la semana del 10 de abril del 2023, ambos, Grounding DINO y Segment Anything han estado en tendencia en los repositorios de GitHub Trending. Estos modelos han obtenido atención por sus habilidades de poder detectar y segmentar objetos con inputs de descripciones libres, otorgando un acercamiento más flexible y eficiente al reconocimiento de objetos. Adicionalmente, la demostración del grupo de IDEA Research de Grounded-Segment-Anything, el cual combina estos dos modelos, también ha generado interés por su potencial para la generación automática de imágenes y la construcción de conjunto de datos. Mientras la investigación y desarrollo en esta área continúan, será emocionante ver cómo estos modelos son aplicados en varios campos e industrias.

No puedo prever qué hará la comunidad con estas herramientas y estoy emocionado por “dos papeles más” en la línea.

Image description

Grounding DINO y Segment Anything

Grounding DINO es un detector de objeto de tiro cero (zero-shot object) que puede generar cajas de alta calidad con inputs de texto libre. Por su contraparte, Segment Anything es un modelo de segmentación poderoso que requiere prompts como puntos o cajas para generar máscaras.

SAM, acrónimo para Modelo para Segmentar Cualquier Cosa (Segment Anything Model), es una herramienta poderosa para generar máscaras de objetos de alta calidad desde varios prompts, incluyendo puntos o cajas. Entrenado en el conjunto de datos que compone más de 11 millones de imágenes y 1.1 millardos de máscaras, este modelo de segmentación exhibe un performance robusto de tiro cero, a través de una amplia gama de tareas. Con SAM, uno puede generar máscaras, fácilmente, para todos los objetos en una imágenes, haciéndolo una herramienta invaluable para el procesamiento de aplicaciones de varias imágenes.

Combinando ambos modelos, podemos detectar y segmentar objetos con inputs de texto sin la necesidad de hacer los puntos o cajas. Grounding DINO genera las cajas y etiquetas para los objetos y Segment Anything los usa para generar máscaras de alta calidad para la segmentación. El resultado del modelo, llamado Grounded-Segment-Anything, abre nuevas posibilidades para la detección y segmentación de objetos en el proceso de las tareas en el lenguaje natural.

El demo creado por el grupo IDEA Research muestra el poder combinado de Grounding DINO y Segment Anything en la detección y segmentación de objetos, con inputs de texto libre. El demo permite a los usuarios hacer un input de texto descriptivo, luego el modelo Grounding DINO lo procesa, para generar las cajas delimitadoras y las etiquetas para los objetos descritos. Estas cajas delimitadoras y las etiquetas son pasadas al modelo Segment Anything, el cual genera máscaras de segmentación para los objetos. El resultado final es una imagen segmentada que, acertadamente, muestra los objetos descritos en el input del texto.

El repositorio GitHub para el demo puede encontrarse en: https://github.com/IDEA-Research/Grounded-Segment-Anything

Aquí hay una implementación Colab del demo: https://colab.research.google.com/drive/1Sj13K6IHLccF2RnHzA7jWKrEmuU_ETWJ?usp=sharing

El demo demuestra cómo usar el framework Grounded-Segment-Anything para detectar y segmentar objetos con inputs de texto libre. Utiliza los modelos de Grounding DINO y Segmenten Anything para lograr esta tarea.

Image description

En la imagen de arriba, logré Segmentar los Lentes y reemplazar los vidrios a través de dos prompts textuales

Aquí hay un vistazo de los componentes centrales y los los pasos importantes en el demo:

  1. Instalar dependencias y clonar el repositorio: el demo requiere diferentes paquetes de Python y del repositorio Grounded-Segment-Anything. Estos son instalados y clonados al principio.
  2. Descargar modelos pre-entrenados: el demo usa modelos pre-entrenados para Grounding Dino y Segment Anything, los cuales son descargados y cargados a la memoria.
  3. Hacer el input del texto generar las cajas delimitadoras: el usuario hace descripciones de texto libre de los objetos que quiere detectar y segmentar. El modelo Grounding DINO genera cajas delimitadoras para los objetos, basados en el input textual.
  4. Segmentación de objetos: el modelo Segment Anything es usado para segmentar los objetos que están dentro de las cajas delimitadoras, generadas por Grounding DINO.

Image description

  1. Mostrar resultados: las imágenes resultantes de los objetos segmentados son mostrados para que el usuario las vea.

Image description

El demo provee una forma simple, pero poderosa, de detectar y segmentar objetos con los inputs textuales. Es una herramienta increíble para los investigadores y desarrolladores que quieran explorar las capacidades de Grounded-Segment-Anything.

El demo Colab de Grounded-Segment-Anything no sólo demuestra la detección y segmentación de objetos con inputs textuales, sino que también incluye una característica adicional que utiliza la difusión estable para pintar internamente la máscara seleccionada. Esto permite a los usuarios generar datos nuevos, llenando las áreas faltantes de una imagen.

Image description

Crédito de la Imagen: https://github.com/facebookresearch/segment-anything

Aplicaciones

Grounded-Segment-Anything tiene el potencial de ser aplicado en diferentes áreas, como la automatización de generación de imágenes, construcción de conjuntos de datos e incluso, la creación de fundaciones de modelos fuertes con la segmentación pre-entrenada.

La generación automatizada de imágenes puede lograrse usando Grounding DINO y generar cajas y etiquetas de alta calidad con textos libres, y Segment Anything para segmentar los objetos. Esto puede ayudar a crear nuevos conjuntos de datos para aplicaciones machine learning, donde hace falta datos. Adicionalmente, la combinación de Grounded-Segment-Anything con difusión estable, para ayudar a pintar internamente la máscara seleccionada, mejorando aún más la calidad de las imágenes generadas.

Image description

Crédito de la imagen: https://github.com/IDEA-Research/Grounded-Segment-Anything/tree/humanFace

La construcción de conjunto de datos, Grounded-Segment-Anything, puede ser usado para etiquetar automáticamente imágenes con cajas y máscaras, reduciendo el tiempo y esfuerzo requerido para la etiquetación manual. Esto puede ser especialmente útil en aplicaciones como la detección de objetos, donde grandes cantidades de datos etiquetados son necesarios para el entrenamiento.

En general, Grounded-Segment-Anything tiene el potencial de mejorar mucho más la eficiencia y calidad de las aplicaciones del machine learning, y sus capacidades son sólo limitadas por la creatividad de los usuarios que quieren aplicarlo.

Conclusión

Grounded-Segment-Anything es una herramienta poderosa para la automatización de la detección y segmentación de objetos con inputs textuales, lo cual conlleva el potencial de ahorrar tiempo y recursos en las tareas de la visión de la computadora. Grounding DINO junto a Segment Anything, hacen que las posibilidades de la generación automática y la construcción de conjunto de datos sean ilimitadas. Alentamos a los investigadores y desarrolladores para explorar el potencial de Grounded-Segment-Anything e intercambiar sus proyectos con la comunidad.

¡Salud!

Image description

Si estás interesado en explorar más herramientas de IA de código abierto, revisa mi review reciente del Open Assistan LAION AI, una nueva alternativa ChatGPT. Puedes encontrarlo aquí y si te gusta el OCR, lee mi otro artículo, Transforming Document Processing with Pix2Struct and TrOCR: A Deep Dive into Modern OCR and VQA Technologies.

No te olvides seguirme en Medium y Twitter para más actualizaciones en artículos similares.

Este artículo es una traducción de Ashok Poudel, hecha por Héctor Botero. Puedes encontrar el artículo original aquí.
Sería genial escucharte en nuestro Discord, puedes contarnos tus ideas, comentarios, sugerencias y dejarnos saber lo que necesitas.
Si prefieres puedes escribirnos a @web3dev_es en Twitter.

Discussion (0)