Explicación detallada del artículo de SPP-net
Este artículo mejora principalmente dos puntos:
1. CNN necesita corregir el tamaño de la imagen de entrada, lo que provoca una pérdida innecesaria de precisión.
2. R-CNN realiza cálculos de convolución repetidos en áreas candidatas, lo que da como resultado cálculos redundantes.
1. ¿Por qué CNN fija el tamaño de la imagen de entrada?
CNN consta principalmente de dos partes: capa convolucional y capa completamente conectada. Las capas convolucionales operan en modo de ventana deslizante y generan mapas de características que representan la distribución espacial de cada activación de respuesta. De hecho, la capa convolucional no requiere una imagen de entrada de tamaño fijo y puede generar mapas de características de cualquier tamaño. Por otro lado, las capas completamente conectadas requieren entradas con tamaño/longitud fija. Por lo tanto, la restricción de un tamaño de entrada fijo solo proviene de las capas completamente conectadas que existen en etapas más profundas de la red.
Solución (compare R-CNN, SPP-net):
Como se muestra en la siguiente figura
La imagen en la primera fila es una entrada de tamaño fijo requerido por los métodos de procesamiento de imágenes de CNN.
El segundo comportamiento requiere un flujo de procesamiento CNN de entrada de tamaño fijo (como R-CNN). Primero, la imagen se procesa de manera similar a la primera línea, luego se ingresan las capas convolucionales y completamente conectadas, y finalmente se genera el resultado.
El tercer comportamiento es el método de procesamiento de SPP-net, que no fija el tamaño de la imagen, sino que lo ingresa directamente en la capa convolucional para su procesamiento. Las características convolucionadas no se ingresan directamente a la capa completamente conectada, sino que primero son procesadas por la capa SPP, luego la salida de longitud fija se transmite a la capa completamente conectada y finalmente se genera el resultado.
2. ¿Por qué R-CNN tiene redundancia computacional?
Como se muestra en la siguiente figura
Para una imagen, R-CNN primero extrae alrededor de 2000 áreas candidatas a través del método de selección de segmentos y luego envía estas 2000 áreas candidatas por separado Para la red , es decir, una imagen debe pasar por 2000 propagaciones directas, lo que provocará mucha redundancia.
Por otro lado, SPP-net propone una relación de mapeo correspondiente entre la región candidata y el mapa de características de todo el gráfico. A través de esta relación de mapeo, se puede obtener directamente el vector de características del área candidata, sin la necesidad de usar CNN repetidamente para la extracción de características, lo que acorta en gran medida el tiempo de entrenamiento. Cada imagen solo necesita propagarse hacia adelante una vez.
Expliquemos el método mejorado en detalle:
1. Capa SPP (Spatial Pyramid Pool)
Lo primero que debemos dejar claro es esta capa en la posición. , esta capa se agrega entre la última capa convolucional y la capa completamente conectada. El propósito es generar características de longitud fija a la capa completamente conectada que requiere una entrada fija.
La estructura de la capa SPP se muestra en la siguiente figura.
Entrada de la capa SPP:
Como se muestra en el cuadro gris de la siguiente figura.
Las características generadas por la capa de convolución anterior (las llamamos mapas de características) están representadas por la parte negra en la figura siguiente. La entrada de la capa SPP es un área en el mapa de características correspondiente. zona candidata.
La frase anterior puede ser un poco indirecta. Podemos entender que una imagen tiene alrededor de 2000 áreas candidatas. Después de la convolución de una imagen, se obtiene un mapa de características. En este mapa de características, también hay alrededor de 2000 áreas correspondientes a estas áreas candidatas (se explicarán en detalle a continuación). ).
Salida de la capa SPP:
La capa SPP se divide en tres estructuras de agrupación (1x1, 2x2, 4x4) y se utiliza cada entrada (donde cada tamaño de entrada es diferente). como grupo máximo (utilizado en este artículo) y luego concatenar las características juntas, es decir (16+4+1).
Independientemente del tamaño de la imagen de entrada, las características se fijan en (16+4+1)x256. De esta manera, la salida de la capa SPP es siempre un vector de características (16+4+1)x256, independientemente del tamaño de la región candidata en la imagen.
2. La relación de mapeo entre el área candidata, la imagen original y el mapa de características.
Esta parte del cálculo es en realidad el cálculo del tamaño del campo receptivo.
En CNN, el campo receptivo se refiere al área de la capa superior correspondiente a un determinado elemento en el resultado de salida de una determinada capa, como se muestra en la siguiente figura.
Primero, define varios parámetros.
La definición de parámetros se refiere a la definición de símbolos de Ng en la explicación de Kucera y luego explica cómo calcularlos.
El tamaño de entrada y el tamaño de salida tienen la siguiente relación:
Lo anterior es la relación correspondiente entre el tamaño del área. Echemos un vistazo a la correspondencia entre puntos de coordenadas.
SPP-net simplifica la correspondencia de coordenadas anterior. El proceso de simplificación es el siguiente:
Es el valor de la coordenada y es imposible incluir decimales, por lo que básicamente se puede considerar. . La fórmula se simplifica: las coordenadas del punto central del campo receptivo sólo están relacionadas con la capa anterior.
Entonces, el método que se muestra en la figura siguiente es el método de mapeo de SPP-net, que asigna la esquina superior izquierda y la esquina inferior derecha del ROI original a los dos puntos correspondientes en el mapa de características. Con las dos esquinas del mapa de características, se determina el área correspondiente del mapa de características (naranja en la figura siguiente).
La relación de mapeo desde las coordenadas originales hasta las coordenadas en el mapa de características es la siguiente
La idea central de SPPNet termina aquí. La parte posterior de la red SPPNet es similar a R-CNN. Para obtener una explicación detallada, consulte el artículo de R-CNN. El artículo también utiliza estas ideas para realizar experimentos sobre clasificación de imágenes. Si está interesado, puede leer atentamente la parte de clasificación del artículo original.
Referencia: