Segmentación de imagen sin supervisión


10

Estoy tratando de implementar un algoritmo donde, dada una imagen con varios objetos en una tabla plana, se desea la salida de máscaras de segmentación para cada objeto. A diferencia de las CNN, el objetivo aquí es detectar objetos en un entorno desconocido. ¿Cuáles son los mejores enfoques para este problema? Además, ¿hay ejemplos de implementación disponibles en línea?

Editar: lo siento, la pregunta puede haber sido un poco engañosa. Lo que quise decir con "entorno desconocido" es que los objetos pueden ser desconocidos para el algoritmo. El algoritmo no debería necesitar comprender qué es el objeto, sino que solo debe detectarlo. ¿Cómo debería abordar este problema?


"a diferencia de las CNN" no tiene sentido; Las CNN son un tipo de modelo, no un tipo de tarea con un objetivo. La segmentación de imagen sin supervisión también se puede hacer usando CNNs
Nathan

Respuestas:


4

Answear rápido

Mean Shift LSH, que es una actualización en O(n) del famoso algoritmo Mean Shift en bien conocido por su capacidad de segmentación de imagenO(n2)

Algunas explicaciones

KO(n)K-Los medios fallan porque está diseñado para encontrar grupos elípticos y NO de forma aleatoria.

En el lado opuesto tenemos el Desplazamiento medio que puede encontrar automáticamente el número de clúster, que es útil cuando no sabes lo que estás buscando, con formas aleatorias .

KK

Un consejo para la agrupación de segmentación de imágenes

Transforme su espacio de color de RGB a LUV, que es mejor para la distancia euclidiana.

K

  • O(α.n)
  • O(β.n)
  • α>β

Mean Shift LSH es más lento pero se adapta mejor a tus necesidades. Sigue siendo lineal y también es escalable con la implementación mencionada.

PD: Mi foto de perfil es una aplicación de Mean Shift LSH en mí mismo si puede ayudar a descubrir cómo funciona.


3

Es posible que deba echar un vistazo a este trabajo presentado y aceptado para CVPR 2018: Aprendiendo a segmentar cada cosa

En este trabajo, intentan segmentar todo, incluso los objetos que la red no conoce. Se ha utilizado la máscara R-CNN, combinada con una subred de transferencia de aprendizaje, obtienen muy buenos resultados al segmentar casi todo.


2

El estado del arte (SOTA) para la segmentación de imágenes sería el Mask-RCNN de Facebook .

Si bien generalmente está entrenado en un conjunto de datos como COCO o Pascal que presentan objetos de la vida real, puede volver a entrenarlo en un conjunto de datos de su elección, real o no.

Facebook proporciona una implementación ( Detectron ) bajo la licencia Apache2. ¡Darle una oportunidad!


En realidad creo que hice la pregunta de una manera engañosa, mi mal. Acabo de publicar una edición, ¿puedes verla de nuevo?
MuhsinFatih

2

En realidad, su tarea es supervisada. SegnetPuede ser una buena arquitectura para su propósito a cuál de sus implementaciones se puede acceder aquí . SegNet aprende a predecir las etiquetas de clase en píxeles a partir del aprendizaje supervisado. Por lo tanto, requerimos un conjunto de datos de imágenes de entrada con las correspondientes etiquetas de verdad del terreno. Etiqueta las imágenes deben ser de un solo canal, con cada píxel etiquetado con su clase ... .

Además, eche un vistazo a las redes totalmente convolucionales que son adecuadas para su tarea.


Según las ediciones de la pregunta, agrego información adicional. Existen numerosos métodos que se pueden aplicar para esta tarea. Básicamente, la más fácil es usar una etiqueta de fondo y clasificar aquellas clases que no conoces como fondo empleando las arquitecturas mencionadas. Al hacerlo, tendrá etiquetas que pueden superponerse para la clase de fondo, lo cual es una desventaja probable de este enfoque, pero su ventaja es que en los casos en que sus etiquetas entrenadas se usan con frecuencia en las entradas, puede tener una versión relativamente ligera de la arquitectura que reconoce las clases desconocidas


En realidad creo que hice la pregunta de una manera engañosa, mi mal. Acabo de publicar una edición, ¿puedes verla de nuevo?
MuhsinFatih

@MuhsinFatih editado.
Medios

Sin duda, sería más fácil y obtendría un mejor rendimiento si fuera una tarea supervisada, pero también es posible la segmentación de imagen sin supervisión.
Nathan

@Nathan he sugerido mi propia opinión en ese momento. Definitivamente, es posible.
Media

1

Esto podría ser algo que estás buscando. Como solicita segmentación de imagen y no semantic / instancesegmentación, supongo que no requiere el etiquetado para cada segmento de la imagen.

Se llama al método scene-cutque segmenta una imagen en regiones agnósticas de clase de manera no supervisada. Esto funciona muy bien en caso de ambiente interior desordenado.

Enlace de papel: arxiv

Código: código

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.