Skip to content

Instantly share code, notes, and snippets.

@LaraMateo
Forked from Ivan-Rosero/SAM_article_IMRCH.md
Last active June 15, 2023 08:06
Show Gist options
  • Save LaraMateo/3cfdbc44a871b97cca83621d1af10dcc to your computer and use it in GitHub Desktop.
Save LaraMateo/3cfdbc44a871b97cca83621d1af10dcc to your computer and use it in GitHub Desktop.
Segment Anything Model

Segment Anything Model

Segment Anything Model también llamado SAM, es un proyecto de Meta publicado en abril de 2023, el cual consiste en un modelo de visión por computadora entrenado a partir de una vasta base de datos para segmentación imágenes. El modelo ha sido diseñado y entrenado para ser rápido, y su base de datos abarca más de 11 millones de imágenes, lo cual lo hace adaptable a una amplia gama de tareas. Este modelo fue lanzado para fomentar la investigación de modelos básicos para la investigación artificial. SAM también puede tomar indicaciones de entrada de otros sistemas, lo cual lo vuelve un modelo versátil para acoplarse y complementar en el desarrollo de nuevas aplicaciones.

Con este modelo es posible solicitar múltiples puntos para trabajar en la imagen y segmentar una parte de ella para convertirla en una máscara, estas se utilizan para mostrar la ubicación de objetos específicos en una imagen, las máscaras ayudan a aislar las partes del objeto que se desea segmentar teniendo en cuenta textura, opacidad, forma y color; este modelo predice máscaras binarias que verifican la presencia de los elementos de interés, y muestran como resultado un la misma imagen con pliegos y trazos de objetos segmentados respectivamente así como se muestra en las imágenes.

Sin embargo, si bien SAM funciona bien en general, tiene sus limitaciones. Puede pasar por alto estructuras finas, puede omitir pequeños objetos y no produce delimitaciones muy nítidas; esto es debido a que SAM está diseñado para generalidad y amplitud de uso en lugar de ofrecer una alta segmentación interactiva. Además, SAM puede procesar indicaciones en tiempo real, sin embargo, el rendimiento general de SAM no es en tiempo real cuando se usa un codificador de imágenes pesado. Aún se están haciendo investigaciones para lograr la función de etiquetado "texto a máscara", ya que es algo que aún no se ha implementado.


unnamed

Fig 1. Imagen que se desea segmentar


voces1

Fig 2. Imagen segmentada con la demo web de SAM


¿Pero cómo podemos acceder a usar esta herramienta?

Meta Research desarrolló una demo para interactuar en la web e informarse más acerca de este nuevo modelo. A continuación haré una demostración de cómo se puede utilizar este modelo, ingresando a la demo gratuita en línea Segment Anything Model se podrá explorar las funciones y novedades.

Una vez se ingrese es necesario aceptar los términos y condiciones, los cuales especifican que esta demo no es para fines comerciales, explicarán que las imágenes disponibles para hacer la prueba serán solo para probar el modelo y cualquier modificación se eliminará al final; además de que en caso de que el usuario suba una imagen, esta no debe infringir propiedad intelectual, ni las normas comunitarias de Facebook

Al aceptar las condiciones de uso habrá un catálogo de imágenes que al seleccionar una, permitirá explorar el modelo, sin embargo, hay una opción que dice "upload an image", la cual permitirá subir una imagen propia que se encuentre almacenada localmente y explorar el modelo de esta manera.

Una vez se escoja una imágen aparecerá este menú, el cual brindará opciones para manipular la imagen con el modelo de acuerdo a lo que se desee

menu voces

Fig 3. Menú de herramientas de la demo web


Al seleccionar "Hover and click" y hacer click en una parte de la imagen se podrá escoger segmentar parte de esta, esto nos permite enfocarnos en los objetos específicos que deseamos segmentar.

v2

Fig 4. Segmentación con herramienta "hover and click"


Al seleccionar Cut-Outs se puede separar la parte de la imagen seleccionada y segmentarla; eso creará un nuevo menú con estas imagenes y podran ser guardadas localmente en nuestro computador.

v4

Fig 5. Corte del segmento


También está la opción Box, la cual consiste en seleccionar con el mouse el área específica del objeto que se desea segmentar. Se selecciona el objeto hasta que quede resaltado.

v6

Fig 6. Selección de objeto con la herramienta Box


Y posteriormente se tiene la opción de ser recortado, y el objeto seleccionado podrá segmentarse del resto de la imágen.

v5

Fig 7. Objeto Seleccionado


Al escoger la opción ✨Everything✨ tomará un tiempo para que se analize la imágen y mostrará todos los segmentos posibles que puede otorgar, y al seleccionar Cut out all objects mostrará todos los objetos que fue posible segmentar por el modelo.

s-everything

Fig 8. Procesamiento de la imágen con la herramienta Everything


v8

Fig 9. Segmento de objetos usando la herramienta Everything


Si deseas explorar más las características de la demo, puedes ingresar y ensayar con tus propias imágenes para realizar segmentaciones de elementos específicos; esta herramienta también puede implementarse de manera local para implementarse en proyectos propios, sin embargo, exige ciertos requerimientos como tarjetas gráficas Nvidia y librerías como pytorch, open-cv y supervision.

Conclusiones

  1. SAM es una herramienta que permite separar objetos que se encuentran en una imagen, más no está entrenado para identificar estos objetos por medio de etiquetas.
  2. Esta herramienta tiene limitaciones de segmentación con objetos pequeños o que no se identifican bien en la imágen base. y sus delimitaciones no suelen ser nítidas
  3. Una de las ventajas de esta herramienta es que se puede acoplar con otras tecnologías, con el fin de desarrollar aplicaciones más complejas que involucren tanto la segmentación como detección y clasificación de imágenes.
  4. Debido a que SAM está enfocado para modelos básicos, hay otras tecnologías que podrían ser utilizadas en su lugar.
  5. Los modelos de segmentación de imágenes son útiles para implementar en aplicaciones de vigilancia, medicina, realidad aumentada, robótica, entre otros.

Referencias

  1. Kirillov, A., Mintun, E., Ravi, N., Mao, H., Rolland, C., Gustafson, L., Xiao, T., Whitehead, S., Berg, A. C., Lo, W.-Y., Dollar, P., & Girshick, R. (2023). Segment Anything. https://arxiv.org/pdf/2304.02643.pdf
  2. Facebook AI. (2023). Segment Anything. https://ai.facebook.com/research/publications/segment-anything/
  3. Segment Anything. (2023). https://segment-anything.com/
  4. DotCSV [DotCSV]. Abril 2023. "SAM: La IA de Meta que LO SEGMENTA TODO!". https://www.youtube.com/watch?v=NmwC393cg_o&ab_channel=DotCSV

Articulo Elaborado Por

Desarrollador de software en

Linkedin logo

BlogIAS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment