Si el subtítulo es correcto, FPN es un método muy simple que puede ser utilizado con casi cualquier modelo para mejorar los resultados. Pronto saltaremos a los tecnicismos del documento, pero para este blog, hay algunos requisitos previos. Usted debe tener una idea de alto nivel sobre lo siguiente RCNN rápido, RCNN más rápido, cajas de anclaje, el conocimiento de SSD será útil. Tengo blogs para todos estos documentos también se puede comprobar (enlaces al final de este blog). FPN es un relativamente más simple si usted entiende todos los requisitos previos bien.
Pirámides de imágenes (múltiples imágenes de múltiples escalas) se utilizan a menudo en el momento de las predicciones para mejorar los resultados. Pero la computación de los resultados utilizando arquitecturas modernas de aprendizaje profundo suele ser un proceso costoso tanto en términos de computación como de tiempo.
FPN se basa en la explotación de la jerarquía piramidal multiescala inherente a las CNN profundas. Es análoga a la diferencia entre RCNN y Fast RCNN, RCNN es un detector de objetos basado en regiones en el que primero encontramos ROI’s usando un algoritmo como la búsqueda selectiva y luego recortamos estos ROI’s (alrededor de 2000) de la imagen y los alimentamos a CNN para obtener resultados y en Fast RCNN las capas iniciales de CNN se comparten para la imagen completa y el recorte de ROI se hace en el mapa de características extraído ahorrando así mucho tiempo. En el caso de FPN, la investigación se basa en explotar la naturaleza multiescala interna, y la pirámide de imágenes se implementa de alguna manera interna a la arquitectura y compartiendo la mayoría de las partes de la red. Ahora entraremos en detalles técnicos.
CNN se basa en la estructura jerárquica en la que la resolución del mapa de características se reduce después de cada capa, pero la semántica capturada por cada capa más profunda es más fuerte que la capa anterior. Las características semánticas más fuertes son espacialmente más gruesas debido a la reducción del muestreo. FPN crea una arquitectura en la que las características semánticamente más fuertes se fusionan con las características de las capas anteriores (que se submuestrean menos veces y, por tanto, tienen información de localización más precisa).
La arquitectura consta de dos vías:
- Vía ascendente (CNN feed-forward normal)
- Vía descendente (Nueva arquitectura utilizada para fusionar características)
- Es una arquitectura CNN feed-forward normal. En el documento, los autores utilizaron la arquitectura Resnet para evaluar el rendimiento. Primero nombraremos las capas como C2, C3, C4, C5 que son Conv 2,3,4 y 5 capas en la arquitectura resnet. El tamaño del mapa de características después de aplicar C2 es imagesize/4 y esta dimensión espacial se reduce en un factor de 2 después de cada capa.
Vía descendente (pirámide derecha en la imagen de arriba)
En esta vía, las características más profundas se fusionan con las características inferiores utilizando conexiones laterales. Como el número de canales de las capas en la vía ascendente no es el mismo, se aplica primero una convolución 1*1 para obtener un número fijo de canales para cada capa (esta dimensión se mantiene en 256 en el documento). El tamaño espacial también es diferente, por lo que aumentamos la muestra (2x) de las características más profundas para que el tamaño espacial de esta característica coincida con un mapa de características de mayor resolución de la capa anterior en la vía descendente. Ahora las dimensiones de los dos mapas de características son las mismas y se fusionan por adición de elementos.
Podemos entender esto con un ejemplo. Digamos que el tamaño de nuestra imagen es 512*512, ahora el tamaño del mapa de características después de cada capa de convolución (C2, C3, C4, C5) será . El número de canales de salida de cada capa es . Ahora aplicamos una convolución 1*1 (con un número de canales de salida = 256) en las salidas de C2, C3, C4, C5 para obtener un número igual de canales. Llamaremos a estas características intermedias con el mismo número de canales de salida como S2, S3, S4, S5 correspondientes a C2, C3, C4, C5. A continuación, S5 se amplía a 32*32 y se combina con S4 mediante la suma de elementos. A continuación, esta salida se amplía a 64*64 y se combina con S3, y así sucesivamente. Los resultados de esta etapa se denominarán T2, T3, T4, T5.
Para reducir el efecto de aliasing debido al upsampling se aplica una convolución 3*3 en T2, T3, T4, T5 para obtener nuestros mapas de características finales P2, P3, P4, P5 correspondientes a C2, C3, C4, C5. Estas características se utilizan para generar las puntuaciones finales de clasificación y regresión (bbox). Los parámetros de la cabeza pueden ser compartidos y la cabeza separada no da ningún beneficio añadido.
Eso es todo en la teoría de FPN. Pero vamos a ver cómo FPN se puede implementar para Faster RCNN y Fast RCNN.
FPN para Faster RCNN
Faster RCNN utiliza red de propuesta de región. La RPN se utiliza para generar propuestas de cajas delimitadoras y estas propuestas se utilizan posteriormente para generar predicciones finales. La RPN es una pequeña red que se implementa sobre las características extraídas de la última capa (C5). Se aplica una convolución 3*3 a esta característica extraída, seguida de dos capas de convolución 1*1 similares (una para la clasificación y otra para la regresión).
La RPN se adapta aquí simplemente sustituyendo un mapa de características de escala única por FPN. Por lo tanto, ahora RPN se implementa para P2-P5 y no para C5 solamente. Para el entrenamiento de RPN, se utilizan cajas de anclaje de múltiples escalas. Pero como la multiescala es ahora inherente a la característica extraída, no es necesario tener cajas de anclaje multiescala en ninguno de los niveles. En su lugar, se asigna una caja de anclaje de una sola escala a cada nivel. El tamaño de las cajas de anclaje utilizadas en el documento es {32², 64², 128², 256², 512²} para {P2, P3, P4, P5, P6}. P6 se introduce aquí para poder utilizar una caja de anclaje de gran tamaño. P6 se submuestrea a partir de P5 con el paso 2. Las cajas de anclaje de {1:1, 1:2, 2:1} relaciones de aspecto se utiliza.
Estas cajas de anclaje se corresponden con las cajas de la verdad de tierra y el modelo es entrenado de extremo a extremo.
FPN para Fast RCNN
La implementación de la FPN en RCNN rápido es muy simple. Fast RCNN utiliza técnicas de propuesta de regiones como la búsqueda selectiva para generar ROI y utiliza la agrupación de ROI en el mapa de características de escala única para obtener los resultados finales. Aplicando FPN tendremos múltiples mapas de características de diferentes escalas y necesitamos una estrategia para asignar un ROI dado a un mapa de características (ahora tenemos múltiples mapas de características, ¿qué mapa de características usar para un ROI dado?)
El mapa de características utilizado se calcula utilizando: