No estoy particularmente familiarizado con la dirección de la detección de objetivos. Este artículo registra las notas y las experiencias de aprendizaje de cuatro artículos sobre detección de objetivos: RCNN, RCNN rápido, RCNN más rápido y RCNN de máscara.
R-CNN significa basado en región. La idea principal es extraer múltiples regiones en función de una imagen y luego ingresar cada región en CNN para extraer características. Por lo tanto, RCNN se puede dividir en dos partes principales: propuestas de región y extracción de características. Las características extraídas se pueden ingresar en cualquier clasificador para su clasificación.
El diagrama de flujo del modelo es el siguiente:
Durante el entrenamiento, la red CNN ya entrenada se utiliza primero como extractor de características, pero dado que el entrenamiento previo está en la clasificación conjunto de datos, por lo que se debe realizar un ajuste fino antes de aplicar a la detección. Es decir, para aplicar la red entrenada con el conjunto de datos ImageNet a una nueva tarea (detección) y un nuevo conjunto de datos (región), el autor cambió la capa fc de las últimas 1000 categorías de la CNN original a una capa, que representa el futuro El número de categorías de objetos detectados. Luego, para todas las regiones, si su tasa de superposición con la verdad fundamental es mayor que 0,5, se considera una clase positiva.
Para el entrenamiento de clasificadores, el autor descubrió que es muy importante elegir el tamaño de IoU para distinguir las clases positivas y negativas. Y, para cada categoría, se entrena un clasificador.
La regresión del cuadro es muy importante. Después de usar el clasificador para calificar y evaluar cada propuesta de región, el autor usa un regresor para predecir un nuevo cuadro como resultado. Las características utilizadas por este regresor son características extraídas de CNN. En el entrenamiento del regresor, la entrada es la propuesta de la región y la verdad fundamental, y el objetivo es aprender una transformación para que la propuesta de la región pueda acercarse a la verdad fundamental a través de esta transformación. Al mismo tiempo, esperamos que esta transformación tenga invariancia de escala, lo que significa que si la escala cambia, la transformación no cambiará.
Como se muestra en la figura siguiente, cada regresor aprenderá un conjunto de parámetros. La entrada de la característica es la salida de la característica del grupo 5, y el objetivo adecuado es.
El principal problema que resuelve Fast-RCNN es extraer características para cada propuesta de región en RCNN, lo que producirá muchos cálculos redundantes. Por lo tanto, las características se pueden extraer primero de una imagen y luego en base a ella. La propuesta de región se divide en las características correspondientes para obtener las características (relación de mapeo) de la región correspondiente.
De esta manera, puede disfrutar de la velocidad de computación más rápida, pero a diferencia de SPPnets, después de que SPPnets obtiene las características correspondientes de una imagen, propone la parte correspondiente a partir de las características de la imagen y utiliza una pirámide espacial. Agrupación, como se muestra a continuación:
El método de agrupación de RoI es muy simple, similar a la agrupación de pirámide espacial. Corresponde la parte de la propuesta a las características generadas por la capa convolucional (llamada RoI, porque se usa para). agrupar características es la región de interés, es decir, el área que nos interesa) se divide en bloques, luego se calcula el valor máximo para cada bloque y finalmente se obtiene un mapa de características. Se puede ver que es solo una parte de la agrupación de la pirámide espacial.
Pero la pirámide espacial de las redes SPP también se puede diferenciar, entonces, ¿cuál es su desventaja? Porque cuando cada RoI puede provenir de diferentes imágenes (la estrategia de entrenamiento de R-CNN y SPPnets es seleccionar una región propuesta de diferentes imágenes en un lote), el entrenamiento de SPPNets es muy ineficiente. En el entrenamiento de SPPnets, el campo receptivo de cada RoI es muy grande, lo que probablemente corresponde a la imagen completa de la imagen original. Por lo tanto, las características obtenidas casi corresponden a la imagen completa, por lo que la imagen de entrada es muy pequeña.
Para mejorar la eficiencia, Fast-RCNN primero selecciona imágenes y luego selecciona RoI de cada imagen, lo que es dos veces más eficiente que extraer un RoI de cada imagen.
Para combinar clasificación y regresión de caja, el autor utiliza la pérdida de tareas múltiples para el entrenamiento conjunto. Específicamente, combina la pérdida de clasificación y la pérdida de regresión de caja. El diseño de la red es muy sencillo, es decir, conectar las características obtenidas por RoI a varias capas FC y luego conectarlas a diferentes capas de salida. En correspondencia con la parte de clasificación, la característica se conectará a una salida softmax para la clasificación. Para la parte de regresión de cuadro, se conectará una capa de salida que genera características de 4 dimensiones y luego la pérdida se calculará por separado para la retropropagación. La fórmula de pérdida es la siguiente:
El objetivo de la regresión puede referirse a la parte anterior de R-CNN.
notas
¿Por qué es más rápido que rápido? La razón principal es que en este artículo se propone una nueva capa: RPN (redes de propuesta de región) para reemplazar la búsqueda selectiva anterior. Esta capa también se puede ejecutar en la GPU para aumentar la velocidad.
El propósito de RPN:
Para poder realizar la propuesta de región, el autor utiliza una pequeña red para deslizar las características generadas por la capa convolucional básica. de esta red es, después de la entrada, se asignará (se usará convolución) a un vector de características de longitud fija y luego se conectará a dos capas fc paralelas (reemplazadas por una capa convolucional). De estas dos capas fc, una es de regresión de caja. y el otro es la clasificación de cajas.
Como se muestra a continuación:
En cada ventana deslizante (puede consultar, la tarea de n es realizar la segmentación de instancias. Por lo tanto, necesita clasificar cada píxel.
Con Faster R-CNN de manera diferente , Faster R-CNN produce dos salidas para cada cuadro candidato, una es la categoría y la otra es el desplazamiento del cuadro delimitador. Máscara R-CNN agrega una nueva salida como máscara del objeto. en la versión PS.
Similar a Faster R-CNN, Mask R-CNN también usa RPN para la propuesta de región, pero después de eso, para cada RoI, la máscara r-cnn también genera una máscara. /p>
A diferencia de la regresión de categorías y cuadros, la salida puede ser un vector y la máscara debe mantener cierta información espacial. Por lo tanto, el autor utiliza FCN para predecir una máscara a partir de cada RoI. > Dado que es un problema de predicción a nivel de píxel, el RoI debe poder mantener la información espacial durante la extracción de características, al menos a nivel de píxel, por lo que el método tradicional de valor máximo es inapropiado. La agrupación ha pasado por dos procesos de cuantificación:
El primero: el proceso de mapeo desde la propuesta de ROI hasta el mapa de características
El segundo: dividir el mapa de características en 7 * 7 contenedores. y use la agrupación máxima para cada contenedor
Para este propósito, el autor usa RoIAlign como se muestra a continuación
para evitar el proceso de cuantificación mencionado anteriormente. > Consulte /xiamentingtao/article/details/78598511
El autor utiliza ResNet como red de extracción de características básica
Para la categoría de predicción, cuadro de regresión, la red de máscara utiliza lo siguiente estructura:
Después de leer estos artículos en su conjunto, aunque no he descubierto todos los detalles de la implementación, en general puedo entender la idea del algoritmo. Se puede ver que los puntos de partida son. De todos modos, debido a la excelente capacidad de las redes neuronales profundas en la extracción de características, muchos expertos están intentando aplicar esta capacidad a los problemas de detección. Desde R-CNN que se usa simplemente para la extracción de características, hasta Fast R-CNN para aumentar la velocidad y reducir los cálculos, hasta RPN para integrar propuestas de región en todo el modelo y usar aceleración de GPU, es decir, Faster R-CNN. Luego pase a RoIAlign y la máscara diseñada para aplicarse a tareas de segmentación de instancias. Incluyendo la regresión del cuadro delimitador, el diseño de la capa de agrupación, la elección del método de entrenamiento, el diseño de pérdida y otros detalles, todos reflejan el pensamiento y la creatividad de los maestros.
Quizás a los ojos de aquellos de nosotros que lo hemos “adoptado”, todos estos métodos parecen “naturales”, inteligentes y fáciles de usar, pero las opciones que se esconden detrás de ellos y el pensamiento sobre estas opciones son más digno de nuestra atención.
Y cómo diseñar una solución razonable para cada problema, así como la eficiencia y versatilidad de la solución, es la dirección en la que debemos trabajar duro.