SAM es el último de los modelos de segmentación semántica que tiene la capacidad de segmentar cualquier número de objetos en una imagen dada con precisión y velocidad de inferencia de primer nivel. Dada una incrustación de imagen precalculada, el codificador rápido y el decodificador de máscara se ejecutan en un navegador web, en la CPU, en aproximadamente 50 ms, por lo que SAM también se puede implementar en tiempo real.
¿Qué es la segmentación?
La segmentación de imágenes se utiliza para conocer la información breve (sus atributos) de la ‘imagen’ en consideración sin realmente mirarla.
Si no sabemos qué objetos están presentes explícitamente en la imagen (donde realizamos la detección de objetos usando clases predefinidas) y estamos tratando de predecir la forma exacta de todos los objetos, se usa la segmentación.
También te puede interesar“El futuro de la tecnología: cómo podemos prepararnos para lo que está por venir”Aquí tratamos de clasificar cada píxel de la imagen en primer plano (objeto en una imagen) frente a fondo (ruido)
¿En qué consiste SAM?
“WNos inspiramos en NLP, donde la siguiente tarea de predicción de token se usa para el entrenamiento previo del modelo básico y para resolver diversas tareas posteriores a través de ingeniería rápida. Para construir un modelo base para la segmentación, nuestro objetivo es definir una tarea con capacidades análogas”.
— — Segmentar cualquier tarea
También te puede interesarLo que GPT-4 aporta a la mesa de IAAquí, la idea de un mensaje desde la PNL hasta la segmentación, donde un mensaje puede ser un conjunto de puntos de primer plano/fondoa caja áspera o mascarilla, texto de forma libreo, en general, cualquier información que indique qué segmentar en una imagen.
La tarea de segmentación solicitable, entonces, es devolver una máscara de segmentación válida ante cualquier solicitud. Siempre prediga una máscara válida para cualquier mensaje, incluso cuando el mensaje sea ambiguo. (camiseta vs. persona en una sola imagen/ multiobjetos en una sola imagen)
¿Cuáles son los datos utilizados?
El motor de datos tiene tres etapas:
(1) Fase de anotación manual asistida por modelos
→ Anotadores profesionales etiquetaron máscaras haciendo clic en puntos de objeto de primer plano/fondo
→ SAM se entrenó utilizando conjuntos de datos de segmentación públicos comunes. Después de una anotación de datos suficiente, SAM se volvió a entrenar usando solo máscaras anotadas recientemente
(2) Etapa semiautomática con una combinación de máscaras predichas automáticamente y anotación asistida por modelos
→ El objetivo era aumentar la diversidad de máscaras utilizadas.
→ Para enfocar a los anotadores en objetos menos prominentes, primero detectamos automáticamente máscaras seguras. Luego les presentamos a los anotadores imágenes precargadas con estas máscaras y les pedimos que anotaran cualquier objeto adicional sin anotar.
→ Para detectar máscaras seguras, entrenamos un detector de cuadro delimitador en todas las máscaras de primera etapa utilizando una categoría genérica de «objeto».
(3) Etapa totalmente automática en la que nuestro modelo genera máscaras sin entrada de anotador
→ Usando el modelo de máscaras anterior fue entrenado y
→ También se impulsó el modelo con una cuadrícula regular de puntos de 32×32 y para cada punto se pronosticó un conjunto de máscaras que pueden corresponder a objetos válidos. Con el modelo consciente de la ambigüedad, si un punto se encuentra en una parte o subparte, nuestro modelo devolverá la subparte, la parte y el objeto completo. La máscara se selecciona según el puntaje IoU más alto entre ellos
Componentes
1) Codificador de imagen:
utiliza un MAE (Transformador de visión preentrenado con codificación automática enmascarada (vit) mínimamente adaptado para procesar entradas de alta resolución. El codificador de imágenes se ejecuta una vez por imagen y se puede aplicar antes de solicitar el modelo.
También te puede interesarExtensiones de ChatGPT: ajuste fino, multitarea y diálogo interactivo.ViT – MAE :
2) Codificador rápido:
Se consideran dos conjuntos de indicaciones: escaso (puntos, cuadros, texto) y denso (máscaras)
— puntos y cuadros por codificaciones posicionales sumadas con incrustaciones aprendidas para cada tipo de indicador
“ Un punto se representa como la suma de una codificación posicional de la ubicación del punto y una de las dos incrustaciones aprendidas que indican si el punto está en primer plano o en segundo plano. Un cuadro está representado por un par de incrustaciones: (1) la codificación posicional de su esquina superior izquierda sumada con una incrustación aprendida que representa «esquina superior izquierda» y (2) la misma estructura pero usando una incrustación aprendida que indica «esquina inferior derecha»
”
— texto de formato libre con un codificador de texto listo para usar de CLIP.
— Las indicaciones densas (es decir, las máscaras) se incrustan mediante circunvoluciones y se suman por elementos con la incrustación de imágenes.
CLIP ( Pre-Entrenamiento Lenguaje-Imagen Contrastiva):
3) Decodificador de máscara:
4) Pérdidas y entrenamiento:
Supervisamos la predicción de máscara con la combinación lineal de pérdida focal y pérdida de dados
Cualquier consulta, comentario y retroalimentación es muy apreciada.
Gracias por leerlo !