Estoy implementando el documento " Transporte masivo óptimo para el registro y la deformación ", mi objetivo es ponerlo en línea ya que simplemente no puedo encontrar ningún código de transporte masivo euleriano en línea y esto sería interesante al menos para la comunidad de investigadores en el procesamiento de imágenes.
El documento se puede resumir de la siguiente manera:
- encuentre un mapa inicial utilizando las coincidencias de histograma 1D a lo largo de las coordenadas x e y
- resuelva el punto fijo de u t = 1
Para las simulaciones numéricas (realizadas en una cuadrícula regular), indican el uso de poicalc de matlab para resolver la ecuación de poisson, usan diferencias finitas centradas para derivadas espaciales, excepto que se calcula utilizando un esquema de viento ascendente.
Usando mi código, la energía funcional y la curvatura del mapeo disminuyen adecuadamente durante un par de iteraciones (de unas pocas decenas a unos miles, dependiendo del paso de tiempo). Pero después de eso, la simulación explota: la energía aumenta para alcanzar una NAN en muy pocas iteraciones. Intenté varias órdenes para las diferenciaciones e integraciones ( aquí se puede encontrar un reemplazo de orden superior a cumptrapz ), y diferentes esquemas de interpolación, pero siempre obtengo el mismo problema (incluso en imágenes muy suaves, distintas de cero en todas partes, etc.).
¿Alguien estaría interesado en mirar el código y / o el problema teórico que estoy enfrentando? El código es bastante corto.
Código con funciones de depuración
Solo la función necesaria sin material de prueba (<100 líneas)
Reemplace gradiente2 () al final por gradiente (). Este era un gradiente de orden superior pero tampoco resuelve las cosas.
Por ahora solo me interesa la parte de transporte óptima del documento, no el término de regularización adicional.
Gracias !