Tengo un problema similar en la formulación de esta publicación, con algunas diferencias notables:
¿Qué métodos simples existen para muestrear adaptativamente una función 2D?
Como en esa publicación:
- Tengo una y la evaluación de esta función es algo costosa de calcular
A diferencia de esa publicación:
No estoy interesado en el valor de la función con precisión en todas partes, sino solo en encontrar un solo isocontour de la función.
Puedo hacer afirmaciones significativas sobre la autocorrelación de la función y, en consecuencia, la escala de suavidad.
¿Existe una forma inteligente de avanzar / muestrear esta función y encontrar este contorno?
Más información
La función es el cálculo de las características de Haralick sobre píxeles que rodean el punto, y la clasificación suave por algún tipo de clasificador / regresor. El resultado de esto es un número de coma flotante que indica a qué textura / material pertenece el punto. La escala de este número puede ser una probabilidad de clase estimada (SoftSVM o métodos estadísticos, etc.) o algo realmente simple como el resultado de una regresión lineal / logística. La clasificación / regresión es precisa y económica en comparación con el tiempo necesario para la extracción de características de la imagen.
Las estadísticas que rodean a significan que la ventana típicamente está muestreando regiones superpuestas y, como tal, existe una correlación significativa entre las muestras cercanas. (Algo que incluso puedo abordar numéricamente / simbólicamente) En consecuencia, esto puede considerarse como una función más compleja de f ( x , y , N ) donde N mayor dará una estimación más relacionada con el vecindario (altamente correlacionada), y un N menor dará una estimación más variable, pero más local.
Cosas que he probado:
Computación bruta: funciona bien. 95% de segmentación correcta con constante . Los resultados se ven fantásticos cuando se contornea usando cualquier método estándar después de eso. Esto lleva una eternidad . Puedo simplificar las funciones calculadas por muestra, pero idealmente quiero evitar esto para mantener este código general en las imágenes con texturas cuyas diferencias se muestran en diferentes partes del espacio de funciones.
Paso tonto: realice un "paso" de un solo píxel en cada dirección y elija la dirección para moverse según la cercanía al valor de la línea iso. Todavía es bastante lento, e ignorará la bifurcación de una isolina. Además, en áreas con un gradiente plano, "vagará" o se doblará sobre sí mismo.
Estoy pensando que quiero hacer algo como la subdivisión propuesta en el primer enlace, pero podada por cajas que unen la isla de interés. Siento que debería poder aprovechar también, pero no estoy seguro de cómo abordarlo.