Antes de hablar sobre Fast R-CNN, veamos los desafíos que enfrenta R-CNN
- El entrenamiento de R-CNN es muy lento porque cada parte del modelo, como (CNN, clasificador SVM, cuadro delimitador) requiere entrenamiento por separado y no se puede configurar en paralelo.
- Además, en R-CNN necesitamos pasar cada propuesta de región a través de la arquitectura de convolución profunda (eso es hasta ~2000 propuestas de región por imagen). Eso explica la cantidad de tiempo necesario para entrenar este modelo.
- El tiempo de prueba de la inferencia también es muy alto. Se necesitan 49 segundos para probar una imagen en R-CNN (junto con la generación de propuesta de región de búsqueda selectiva).
Fast R-CNN trabaja para resolver estos problemas. Veamos la arquitectura de Fast R-CNN
Primero, generamos la propuesta de región a partir del algoritmo de búsqueda selectiva. Este algoritmo de búsqueda selectiva genera hasta aproximadamente 2000 propuestas de regiones. Estas propuestas de región (proyecciones de RoI) se combinan con la imagen de entrada pasada a una red CNN. Esta red CNN genera el mapa de características de convolución como salida. Luego, para cada propuesta de objeto, una capa de agrupación de región de interés (RoI) extrae el vector de características de longitud fija para cada mapa de características. Luego, cada vector de características se pasa a capas gemelas de clasificador softmax y regresión Bbox para clasificar la propuesta de región y mejorar la posición del cuadro delimitador de ese objeto.
Red CNN de Fast R-CNN
Fast R-CNN se experimenta con tres redes ImageNet preentrenadas, cada una con 5 capas de agrupación máximas y 5-13 capas de convolución (como VGG-16). Hay algunos cambios propuestos en estas redes pre-entrenadas, estos cambios son:
- La red se modifica de tal manera que dos entradas la imagen y la lista de propuestas de regiones generadas en esas imágenes.
- En segundo lugar, la última capa de agrupación (aquí (7*7*512) ) antes de las capas completamente conectadas debe reemplazarse por la capa de agrupación de la región de interés (RoI).
- En tercer lugar, la última capa completamente conectada y la capa softmax se reemplazan por capas gemelas del clasificador softmax y el regresor de cuadro delimitador específico de categoría K+1 con una capa completamente conectada.
Esta arquitectura CNN toma una imagen (tamaño = 224 x 224 x 3 para VGG-16) y su propuesta de región y genera el mapa de características de convolución (tamaño = 14 x 14 x 512 para VGG-16).
Agrupación de regiones de interés (RoI):
La agrupación de retorno de la inversión es lo novedoso que se introdujo en el papel Fast R-CNN. Su propósito es producir mapas de características uniformes y de tamaño fijo a partir de entradas no uniformes (RoI).
Toma dos valores como entradas:
- Un mapa de características obtenido de la capa CNN anterior ( 14 x 14 x 512 en VGG-16).
- Una array de N x 4 para representar regiones de interés, donde N es un número de RoI, los dos primeros representan las coordenadas de la esquina superior izquierda del RoI y los otros dos representan la altura y el ancho del RoI indicado como (r, c, h, w) .
Consideremos que tenemos mapas de características de 8*8 , necesitamos extraer una salida de tamaño 2*2 . Seguiremos los pasos a continuación.
- Supongamos que nos dieron las coordenadas de la esquina izquierda de RoI como (0, 3) y alto, ancho como (5, 7) .
- Ahora, si necesitamos convertir esta propuesta de región en un bloque de salida de 2 x 2 y sabemos que las dimensiones de la sección de agrupación no se pueden dividir perfectamente por la dimensión de salida. Tomamos una agrupación tal que se fija en dimensiones de 2 x 2 .
- Ahora aplicamos el operador de agrupación máxima para seleccionar el valor máximo de cada una de las regiones en las que dividimos.
Entrenamiento y pérdida: primero tomamos cada región de entrenamiento de interés etiquetada con la clase de verdad del terreno u y el cuadro delimitador de la verdad del terreno v. Luego tomamos la salida generada por el clasificador softmax y el regresor del cuadro delimitador y les aplicamos la función de pérdida. Definimos nuestra función de pérdida de modo que tenga en cuenta tanto la clasificación como la localización del cuadro delimitador. Esta función de pérdida se denomina pérdida multitarea. Esto se define de la siguiente manera:
dónde
l cls
es la pérdida de clasificación,
ubicación L
es la pérdida de localización. lambda es un parámetro de equilibrio y u es una función (el valor de u=0 para el fondo, de lo contrario, u=1) para garantizar que la pérdida solo se calcule cuando necesitamos definir el cuadro delimitador. Aquí,
l cls
es el
pérdida de registro
y
ubicación L
Se define como
Resultados y conclusión:
- Fast R-CNN proporcionó mapas de última generación en conjuntos de datos VOC 2007, 2010 y 2012.
- También mejora considerablemente el tiempo de detección (84 frente a 9,5 horas) y el tiempo de entrenamiento (47 frente a 0,32 segundos) .
Ventajas de Fast R-CNN sobre R-CNN
- La razón más importante por la que Fast R-CNN es más rápido que R-CNN es que no necesitamos aprobar propuestas de 2000 regiones para cada imagen en el modelo de CNN. En cambio, la operación convNet se realiza solo una vez por imagen y el mapa de características se genera a partir de ella.
- Ya que, todo el modelo se combina y entrena de una sola vez. Por lo tanto, no hay necesidad de almacenamiento en caché de características. Eso también disminuye el requisito de memoria de disco durante el entrenamiento.
- Fast R-CNN también mejora mAP en comparación con R-CNN en la mayoría de las clases de conjuntos de datos VOC 2007, 10 y 12 .
Referencias: