[Resumen del artículo] DIP: Coincidencia de parches inversa profunda para flujo óptico de alta resolución (CVPR 2022)

1. Breve introducción del artículo.

1. Primer autor: Rui Li

2. Año de publicación: 2023

3. Revista publicada: CVPR

4. Palabras clave: flujo óptico, aprendizaje profundo, PatchMatch, búsqueda local

5. Motivación para la exploración: además de la precisión, el rendimiento y la memoria también son desafíos para el aprendizaje profundo, especialmente cuando se predice el flujo óptico en alta resolución. Para reducir la complejidad computacional y el uso de memoria, los métodos anteriores utilizan una estrategia de gruesa a fina, pero pueden sufrir problemas de recuperación de errores de baja resolución. Para mantener una alta precisión en desplazamientos grandes, especialmente en objetos pequeños que se mueven rápidamente, RAFT construye un volumen de correlación 4D de todos los pares y utiliza bloques GRU convolucionales para la búsqueda. Sin embargo, también existen problemas de memoria al predecir el flujo óptico de alta resolución.

6. Objetivo del trabajo: para reducir la memoria y mantener una alta precisión, se introduce PatchMatch para combatir el cálculo de alta redundancia del volumen de correlación totalmente emparejado 4D de RAFT.

7. Idea central: introduzca la idea de Patchmatch en el cálculo de la correlación, en lugar de utilizar una estrategia de correlación global tan escasa que provocará una pérdida de precisión.

  1. Diseñamos un marco eficiente que introduce Patchmatch en la predicción de flujo óptico de un extremo a otro por primera vez. Puede mejorar la precisión del flujo óptico y al mismo tiempo reducir la memoria del volumen de correlación.PatchMatch求解高精度光流。
  2. Proponemos un novedoso módulo de propagación inversa. En comparación con la propagación, puede reducir eficazmente los cálculos manteniendo un rendimiento considerable.提出优化的Propagación inversa。

8. Resultados experimentales:

En el momento de la presentación, nuestro método ocupa el primer lugar en todas las métricas del popular punto de referencia KITTI2015 y ocupa el segundo lugar en EPE en el punto de referencia limpio de Sintel entre los métodos de flujo óptico publicados. El experimento muestra que nuestro método tiene una fuerte capacidad de generalización entre conjuntos de datos: F1-all logra un 13,73 %, reduciendo un 21 % del mejor resultado publicado (17,4 % en KITTI2015). Es más, nuestro método muestra buenos detalles al preservar el resultado en el conjunto de datos de alta resolución DAVIS y consume 2 veces menos memoria que RAFT.

9. Descarga del artículo:

https://openaccess.thecvf.com/content/CVPR2022/papers/Zheng_DIP_Deep_Inverse_Patchmatch_for_High-Resolution_Optical_Flow_CVPR_2022_paper.pdf

https://github.com/zihuazheng/DIP

2. Proceso de implementación

1. Comparación de objetos relacionados

Volumen de correlación local. En el método de flujo óptico moderno basado en el volumen de correlación local, la fórmula de cálculo es la siguiente:

En la fórmula, F1 es el mapa de características de origen, F2 es el mapa de características de destino y d es el desplazamiento en la dirección xoy. X = [0,H)x[0,w), D=[−dmax,Dmax]2, h es la altura del mapa de características y w es el ancho del mapa de características. Por lo tanto, la memoria y el cálculo del volumen relevante es lineal con hw(2dmax + 1)2 y cuadrático con el radio del espacio de búsqueda. Limitado por el tamaño del radio de búsqueda, es difícil obtener un flujo óptico de alta precisión en escenas desafiantes de alta resolución.

Volumen de correlación global. Recientemente, RAFT [36] propone un volumen de correlación de todos los pares, que logra un rendimiento de última generación. El cálculo de correlación global de la posición (i, j) en F1 y la posición (k, l) en F2 se define de la siguiente manera:

Donde m es el número de capas piramidales. 2 m es el tamaño del núcleo de agrupación. En comparación con el volumen correlativo local, el volumen correlativo global contiene N2 elementos, donde N = hw. Cuando h o w de F aumentan, la cantidad de memoria y cálculo aumentará exponencialmente. Por lo tanto, los métodos globales adolecen de memoria insuficiente para la inferencia de alta resolución.

Coincidencia de bloques (método Patchmatch). Patchmatch se utiliza para encontrar correspondencia densa entre imágenes para una edición estructurada. La idea clave detrás de esto es que es posible obtener algunas buenas conjeturas tomando una gran cantidad de muestras aleatorias. Y según la localidad de la imagen, una vez que se encuentra un buen punto de coincidencia, la información se puede propagar de manera efectiva a las imágenes adyacentes. Por lo tanto, se propone una estrategia de propagación para reducir el radio de búsqueda y se utiliza una búsqueda local para mejorar aún más la precisión. La complejidad del método Patchmatch es hw (n + r2), donde n es el número de propagaciones y r es el radio de búsqueda local. Ambos valores son pequeños y no cambian con el aumento del desplazamiento y la resolución.

2. Coincidencia de parches de flujo óptico

El enfoque tradicional de Patchmatch tiene tres componentes principales. 1) Inicialización aleatoria. Obtenga algunas buenas conjeturas con mucho muestreo aleatorio. 2) Difundir. Según la localidad de la imagen, una vez que se encuentra un buen punto coincidente, la información se puede propagar eficientemente desde sus vecinos. 3) Búsqueda aleatoria. Se utiliza en propagaciones posteriores para evitar la optimización local, lo que le permite obtener una buena coincidencia cuando no existe ninguna buena coincidencia en su vecindad.

La propagación y búsqueda iterativas son la clave para resolver el problema del flujo óptico. En la etapa de propagación, se toma un punto en el mapa de características como parche y se seleccionan 4 puntos semilla adyacentes. Por lo tanto, cada punto puede obtener flujos ópticos candidatos de sus vecinos desplazando el mapa de flujo óptico hacia los 4 vecinos. Luego se calcula un volumen de correlación 5D a partir de flujos ópticos candidatos vecinos y sus flujos ópticos. Dado el desplazamiento ∆p de todos los flujos ópticos, el cálculo de correlación de la propagación se puede definir como:

S(flujo,∆p) es el desplazamiento del flujo óptico según ∆p. W cambia F2 con el flujo óptico en movimiento. Sin duda, cuantos más puntos semilla se seleccionen, más operaciones se requerirán. Cuando la propagación se repite m veces para seleccionar n puntos semilla, la propagación requiere que el flujo óptico se mueva n×m veces y que las características de origen cambien n×m veces. Esto aumenta las operaciones de memoria y los cálculos de interpolación, especialmente al predecir el flujo óptico de alta resolución. Para reducir la cantidad de opciones, por primera vez se utiliza la propagación hacia atrás en lugar de la propagación. En la fase de búsqueda, la búsqueda aleatoria se cambia a un método de búsqueda local que es más adecuado para la red de un extremo a otro y se logra una mayor tasa de precisión.

3. Coincidencia profunda de bloques inversos

propagación hacia atrás. En la propagación, el desplazamiento del flujo óptico y la deformación de características están acoplados en serie, ya que el proceso de deformación depende del desplazamiento del flujo óptico. Además, cada iteración necesita realizar múltiples desplazamientos de flujo óptico, por lo que aumenta la cantidad de cálculo. En teoría, mover el flujo hacia la parte inferior derecha tiene la misma posición relativa espacial que mover el objetivo hacia la parte superior izquierda. Los correlogramas para ambos métodos tienen un desplazamiento de píxeles en coordenadas espaciales absolutas. Nos referimos a la forma en que el objetivo se desplaza como retropropagación, que se puede expresar como:

Dado que ∆p es pequeño, el proceso de retropropagación se ignora en la implementación. es decir, obtener:

En la retropropagación, los puntos característicos de destino se dispersan en sus puntos semilla y se deforman por el flujo óptico de los puntos semilla. Por lo tanto, las características objetivo se pueden desplazar y apilar con anticipación, y luego deformarlas solo una vez en cada iteración para obtener las características objetivo después de la deformación.

En este trabajo, el punto inicial es estático y no cambia con iteraciones crecientes. Por lo tanto, las características de destino solo necesitan moverse al punto inicial una vez y las características de destino movidas se pueden reutilizar en cada iteración. De esta manera, si hay n puntos iniciales para m iteraciones de propagación, solo necesita mover la característica objetivo n veces y cambiar la característica objetivo movida m veces. La fase de retropropagación se puede dividir en dos subfases:

Fase de inicialización: características de origen de entrada, características de destino. Las características del objeto se desplazan según los puntos iniciales y luego las características del objeto desplazadas se apilan como características de objeto compartidas a lo largo de la dimensión de profundidad.

Fase de ejecución: ingrese una secuencia y calcule la correlación entre las características de origen y las características de destino de deformación de acuerdo con las características de destino compartidas de deformación de secuencia.

busqueda local. Debido al rango muy escaso de valores de flujo óptico inicializados aleatoriamente, es difícil obtener un flujo óptico muy preciso únicamente mediante la propagación en bloques. Por lo tanto, en este trabajo, se realiza una búsqueda de vecindario local después de la propagación de cada bloque. A diferencia de Patchmatch, realiza una búsqueda aleatoria después de cada propagación y disminuye el radio de búsqueda a medida que aumentan las iteraciones. En este artículo, solo se realiza una búsqueda fija de radio pequeño después de cada propagación, lo que se denomina búsqueda local. Dado un incremento de flujo óptico ∆f, la búsqueda local se puede expresar mediante la fórmula:

En este trabajo, el radio de búsqueda final se establece en 2 según los resultados experimentales. Para ello, el módulo Patchmatch inverso consta principalmente de un bloque de retropropagación y un bloque de búsqueda local. En cada iteración, a la retropropagación le sigue la búsqueda local. Vale la pena señalar que ambos bloques se agregan utilizando el costo GRU.

4. Estructura de la red

Para obtener un flujo óptico de alta precisión en imágenes de alta resolución, se diseña un novedoso marco de predicción de flujo óptico DIP. En la siguiente figura se muestra una descripción general. Se divide principalmente en dos etapas: (1) extracción de características; (2) actualización iterativa a múltiples escalas.

extracción de características. Primero, se utiliza una red de codificador de características en la imagen de entrada para extraer un mapa de características de resolución de 1/4. A diferencia del trabajo anterior, utilizan la rama de la red de contexto para extraer contexto. DIP activa directamente los mapas de características de origen como mapas de contexto. Luego, los mapas de características se reducen a una resolución de 1/16 utilizando un módulo de agrupación promedio. Para una resolución de 1/4 y 1/16, utilice la misma red troncal y parámetros. Por lo tanto, DIP se puede entrenar en dos etapas y utilizar más etapas para la inferencia cuando se trata de imágenes grandes.

Actualización iterativa multiescala. El método se basa en la propagación vecinal y debe actualizar iterativamente el flujo óptico. La red consta de dos módulos, un módulo de retropropagación y un módulo de búsqueda local. En la fase de entrenamiento, la red se inicia con un flujo óptico aleatorio de tamaño 1/16 y luego el flujo óptico de tamaño 1/16 y 1/4 se optimiza iterativamente utilizando un método piramidal. En la fase de inferencia se puede realizar el mismo proceso que en la fase de entrenamiento. Para obtener un flujo óptico más preciso, el flujo óptico también se puede mejorar a escala 1/8 y luego el resultado se puede optimizar a escala 1/4.

La red también acepta el flujo óptico inicializado como entrada para la etapa de inferencia. En este caso, el número de capas inferidas de la pirámide se ajusta según el valor máximo del flujo óptico inicial. Por ejemplo, al procesar el flujo óptico de una imagen de vídeo, la interpolación directa del flujo óptico de la imagen anterior se utiliza como entrada de la imagen actual. Utilizando la información de flujo óptico anterior, se pueden usar dos o más pirámides para desplazamientos grandes para garantizar la precisión, y se puede usar una pirámide para desplazamientos pequeños para reducir el tiempo de inferencia.

5. Pérdida

La función de pérdida es similar a RAFT. DIP genera dos flujos ópticos por iteración. Cuando se utilizan N iteraciones con resoluciones de 1/16 y 1/4, la predicción de los números de salida durante todo el proceso de entrenamiento es N = iteraciones × 2 × 2. Dado que la supervisión tiene múltiples resultados, se calcula una secuencia ponderada y se suma la pérdida de la secuencia predicha, utilizando una estrategia similar a RAFT. La pérdida total se puede expresar como:

 Donde N es la longitud de la secuencia predicha, M (x) representa el valor medio de la matriz x, se puede calcular wi y se usa γ = 0,8 en el entrenamiento. 

6. Experimentar

6.1  Detalles de implementación

Usando 16 GPU RTX 2080 Ti, AdamW y OneCycle.

6.2 Comparación con tecnologías avanzadas

6.3 Experimentos de ablación

Supongo que te gusta

Origin blog.csdn.net/qq_43307074/article/details/131858801
Recomendado
Clasificación