La Red de Conocimientos Pedagógicos - Currículum vitae - R-CNN más rápido: detección de objetos en tiempo real usando RPN

R-CNN más rápido: detección de objetos en tiempo real usando RPN

Artículo: R-CNN más rápido: detección de objetos en tiempo real con redes de propuesta de región.

La mayoría de las redes de detección de objetos se basan en algoritmos de propuesta de región para formular hipótesis sobre la ubicación del objeto. R-CNN utiliza un algoritmo de búsqueda selectiva para proponer posibles regiones ROI (regiones de interés) y luego utiliza CNN estándar para clasificar cada región extraída. El método de búsqueda selectiva establece 2000 áreas candidatas de diferentes formas, tamaños y ubicaciones alrededor del objeto objetivo. La posibilidad de que el objeto objetivo esté dentro del área candidata es relativamente alta. Luego, estas áreas se convolucionan para encontrar el objeto objetivo, aunque la mayoría de las áreas son inútiles. Este método es mucho más eficaz que buscar casi 100 áreas.

Fast R-CNN no genera regiones candidatas en la imagen original, sino que primero obtiene el mapa de características de toda la imagen a través de la red convolucional y luego utiliza el algoritmo de la región candidata para obtener el mapeo del área. de interés en el mapa de características, luego use Rol Pool para hacer que todas las áreas tengan el mismo tamaño, lo que reduce en gran medida el tiempo de ejecución de estas redes de detección de objetivos, pero el cálculo de la generación de áreas se convierte en el cuello de botella de toda la red de detección.

Faster R-CNN introduce una red de propuesta de región (RPN), que comparte las propiedades convolucionales de la imagen de entrada con la red de detección, lo que permite que se genere en un área de costo de tiempo casi nulo posible. RPN es una red totalmente convolucional que puede predecir simultáneamente los límites y las puntuaciones de los objetos en cada ubicación. Después del entrenamiento de un extremo a otro, RPN puede generar tramas candidatas de región de alta calidad, que luego se proporcionan a Fast R-CNN para su detección.

Fast R-CNN consta de dos módulos: el primer módulo es una red profunda totalmente convolucional para la generación de regiones, y el segundo módulo es un detector R-CNN rápido que utiliza regiones candidatas. Todo el sistema es una única red unificada de detección de objetivos. Utilizando el mecanismo de "atención" del término de red neuronal recientemente popular, el módulo RPN le dice al módulo Fast R-CNN dónde buscar objetos.

Para las imágenes, debe obtener el siguiente resultado:

El primer paso en R-CNN rápido es adoptar un modelo CNN basado en la tarea de clasificación (como ImageNet) como un extractor de funciones. La imagen de entrada se expresa en la forma H × W × D, y el mapa de características conv se obtiene mediante el entrenamiento previo del modelo CNN.

La R-CNN más rápida adoptó por primera vez ZF y VGG entrenados en ImageNet, y le siguieron muchas otras redes con diferentes pesos. Por ejemplo, MobileNet es una estructura de red pequeña y eficiente con solo 3,3 millones de parámetros; los parámetros ResNet-152 alcanzan los 60 millones. Las nuevas estructuras de red, como DenseNet, mejoran los resultados y reducen la cantidad de parámetros.

Tome VGG16 como ejemplo:

Al clasificar imágenes VGG16, ingrese un tensor de 224 × 224 × 3 (es decir, una imagen RGB de 224 × 224 píxeles). Finalmente, la estructura de la red utiliza la capa FC (en lugar de la capa Conv) para obtener vectores de longitud fija para la clasificación de imágenes. La salida de la última capa convolucional se expande en un vector unidimensional y luego se envía a la capa FC. Implemente oficialmente la salida usando conv5/conv5_1.

En profundidad, el mapa de características convolucional codifica toda la información de la imagen manteniendo la posición de las "cosas" codificadas en relación con la imagen original. Por ejemplo, si hay un cuadrado rojo en la esquina superior izquierda de la imagen y la capa convolucional tiene una respuesta de activación, entonces la información de este cuadrado rojo todavía está en la esquina superior izquierda del mapa de características convolucionales después de ser codificada por la capa convolucional. Por lo tanto, es factible utilizar mapas de características para detectar la ubicación del objetivo.

La estructura ResNet reemplaza gradualmente a VGG como la red básica para la extracción de características. La ventaja obvia de ResNet sobre VGG es que la red es más grande, por lo que la capacidad de aprendizaje es mayor. Esto es importante para las tareas de clasificación y también debería serlo para la detección de objetos. Además, ResNet utiliza conexiones residuales y BN (normalización por lotes) para facilitar el entrenamiento de modelos profundos.

Luego, RPN (Red de propuesta de región) procesa los mapas de características convolucionales extraídos para encontrar un número predeterminado de regiones (cuadros delimitadores) que pueden contener el objeto. Para generar regiones candidatas, se realiza una convolución de 3 × 3 en la salida del mapa de características convolucionales de la última capa convolucional.

Hay 512 núcleos de convolución **, seguidos de ReLU, de modo que cada área de 3x3 obtendrá un vector de características de 512 dimensiones. Luego, este vector de características se ingresa en dos capas completamente conectadas: la capa de regresión del cuadro delimitador (reg) y la capa de clasificación del cuadro delimitador (cls).

A continuación se explica el significado de k, 2k, 4k y 4k.

En la detección de objetos basada en el aprendizaje profundo, el problema más difícil es generar cuadros delimitadores con longitudes variables. Los cuadros delimitadores son rectángulos de diferentes tamaños y relaciones de aspecto. Al construir una red neuronal profunda, la salida final de la red generalmente es una salida tensor de tamaño fijo (excepto RNN). Por ejemplo, en la clasificación de imágenes, la salida de la red es un tensor de (c,), donde c es el número de etiquetas de categoría y el valor escalar en cada posición del tensor representa la probabilidad de que la imagen sea una categoría.

En RPN, los puntos de anclaje se utilizan para resolver el problema de las listas de cuadros delimitadores de longitud variable, es decir, los cuadros delimitadores de referencia de tamaño fijo se colocan uniformemente en la imagen original. Como se mencionó anteriormente, RPN realiza una convolución de 3 × 3 en el mapa de características. Se supone que cada convolución necesita predecir k regiones candidatas. Por lo tanto, la capa reg tiene 4k salidas para codificar las coordenadas de k cuadros delimitadores y la capa cls. genera 2k puntuaciones para estimar la probabilidad de que cada región sea un objetivo o un fondo. Estas k áreas se inicializan mediante k cuadros delimitadores de referencia, que son k puntos de anclaje, y se utilizan como cuadros de referencia para predecir la posición objetivo por primera vez. El centro del punto de anclaje está ubicado en el centro de la ventana deslizante del núcleo de convolución. De forma predeterminada, cada posición de deslizamiento utiliza tres puntos de anclaje con diferentes proporciones (128 2, 256 2, 5122) y tres relaciones de aspecto diferentes (1: 2, 1: 1, 2: 1), k=9. Para un mapa de características convolucionales de tamaño W×H (generalmente alrededor de 2400), siempre hay puntos de anclaje W×H×k. Para las dos últimas capas completamente conectadas de RPN, el número de parámetros es 512 × (4 + 2) × k.

En lugar de detectar directamente la posición del objetivo, el problema se transforma en dos partes. Para cada punto de anclaje:

Una forma sencilla de predecir el cuadro delimitador de un objeto es conocer el desplazamiento del cuadro delimitador de referencia. Suponga que el marco de referencia: () y la cantidad a predecir: () son generalmente valores muy pequeños para ajustar el marco de referencia para un mejor ajuste.

Aunque los puntos de anclaje se definen en función del mapa de características convolucionales, los puntos de anclaje finales son relativos a la imagen original.

Dado que solo hay capas convolucionales y capas de agrupación, la dimensión del mapa de características es proporcional al tamaño de la imagen original. Es decir, matemáticamente hablando, si el tamaño de la imagen es w×h, entonces el tamaño del mapa de características es w/r×h/r, donde r es la tasa de submuestreo. Si los anclajes se definen en la ubicación espacial del mapa de características convolucionales, la imagen final será el conjunto de anclajes dividido por R píxeles. En VGG, r=16.

RPN utiliza todos los anclajes de referencia para generar buenas recomendaciones para una variedad de objetivos. Para cada punto de anclaje, hay dos salidas diferentes:

RPN es una red totalmente convolucional.

Para la capa de clasificación, cada punto de anclaje genera dos valores de predicción: el punto de anclaje es la puntuación del fondo (no objeto) y el punto de anclaje es la puntuación del primer plano (objeto).

Para la capa de regresión, que también se puede llamar capa de ajuste del cuadro delimitador, cada punto de anclaje genera cuatro valores de predicción:

(δ xcenter, δ ycenter, δ width, δ height ), utilizado como ancla para obtener la propuesta final. A partir de las coordenadas finales de la propuesta y sus correspondientes puntuaciones objetivas se pueden obtener buenas propuestas de objetos.

RPN tiene dos tipos de salida de valor predicho: clasificación binaria y ajuste de regresión del cuadro delimitador.

Para entrenar RPN, asignamos a cada ancla una etiqueta de clase binaria (objetivo o no objetivo). Asignamos etiquetas positivas a dos tipos de anclajes: (i) el anclaje con la mayor superposición (IoU) con el cuadro delimitador real, o (ii) el ancla con una superposición de más de 0,7 IoU con el cuadro delimitador real. Tenga en cuenta que un único cuadro delimitador de verdad sobre el terreno puede asignar etiquetas positivas a varios anclajes. Por lo general, la segunda condición es suficiente para identificar una muestra positiva; sin embargo, todavía utilizamos la primera condición porque, en algunos casos raros, es posible que la segunda condición no encuentre una muestra positiva; Para todos los cuadros delimitadores de verdad sobre el terreno, asignamos etiquetas negativas a anclajes no positivos si su proporción de IoU es inferior a 0,3. Los anclajes que no sean ni positivos ni negativos no ayudarán a entrenar la función objetivo.

Luego, los anclajes se muestrean aleatoriamente para generar un mini lote con un tamaño de lote = 256, manteniendo la proporción de anclajes de primer plano y de fondo lo más equilibrada posible.

RPN utiliza entropía cruzada binaria para calcular la pérdida de clasificación de todos los anclajes en el mini lote. Luego, la pérdida de regresión se calcula solo para los peces marcados como primer plano en el minilote. Para calcular el objetivo de la regresión, en función del punto de anclaje de primer plano y su objeto de verdad fundamental más cercano, se calcula el valor de desplazamiento δ que convierte el punto de anclaje en la verdad fundamental del objeto.

Fast R-CNN no utiliza una pérdida L1 o L2 simple para el error de regresión, sino una pérdida suave de L 1. Smooth L1 y L1 son básicamente iguales. Cuando el valor de error de L1 es pequeño, se considera que está cerca del valor correcto y la pérdida desaparecerá a mayor velocidad.

Dado que los puntos de anclaje generalmente se superponen, las regiones candidatas para el mismo objetivo también se superpondrán.

Para resolver el problema de la superposición de propuestas, se utiliza el algoritmo NMS para procesar las propuestas con un IoU mayor que el umbral preestablecido y las puntuaciones más altas se descartan.

Aunque NMS parece simple, el valor predeterminado del umbral de IoU debe manejarse con cuidado. Hay algunas sugerencias disponibles si el valor del pagaré es demasiado pequeño; se pueden perder muchos artículos. Si el valor de IoU es demasiado grande, es posible que aparezcan muchas propuestas en los objetos. El valor típico de IoU es 0,7.

Después del procesamiento NMS, topN recomienda ordenar por dolor. En el artículo R-CNN más rápido, N = 2000, y su valor puede ser menor, como 50, y aún así lograr resultados altos y buenos.

Después de obtener posibles objetivos relevantes y sus posiciones correspondientes en la imagen original, el problema se vuelve más sencillo. Utilice las características extraídas por CNN y los cuadros delimitadores que contienen objetivos relacionados, y utilice RoI Pooling para extraer las características de objetivos relacionados para obtener nuevos vectores.

Después del procesamiento de RPN, se pueden obtener un montón de propuestas de destino sin puntuación de clasificación. La pregunta abierta es cómo utilizar estos cuadros delimitadores y clasificarlos.

Uno de los métodos más simples es cortar cada propuesta y enviarla a una red base previamente entrenada para la extracción de características, luego se extraerán las características para entrenar el clasificador, pero es necesario calcularlas todas; 2000 propuestas, baja eficiencia y baja velocidad. Un R-CNN más rápido acelera la eficiencia computacional al multiplexar mapas de características convolucionales, es decir, utilizando la agrupación de RoI (Región de interés) para extraer mapas de características de tamaño fijo para cada propuesta. Luego, R-CNN clasifica mapas de características de tamaño fijo.

En la detección de objetos, incluido el R-CNN más rápido, a menudo se usa un enfoque más simple, que consiste en usar cada propuesta para recortar el mapa de características convolucionales y luego usar un algoritmo de interpolación (generalmente doble interpolación lineal) para cambiar el tamaño. cada cultivo a un tamaño fijo de 14×14×ConvDepth. El mapa de características final de 7 × 7 × ConvDepth para cada esquema se obtiene mediante la agrupación máxima utilizando núcleos de 2 × 2.

La forma exacta fue elegida debido a su aplicación en el siguiente módulo (R-CNN).

R-CNN utiliza las características extraídas por RoI Pooling para la clasificación y utiliza la capa completamente conectada para generar la puntuación de clasificación de cada posible categoría objetivo. Este es el paso final del marco R-CNN más rápido.

R-CNN tiene dos salidas diferentes:

R-CNN aplana el mapa de características de cada propuesta, lo procesa con ReLU y dos capas completamente conectadas, con un tamaño de 4096 dimensiones. Luego, se utilizan dos capas diferentes completamente conectadas para cada objetivo diferente: una capa completamente conectada con N+1 neuronas, donde N es el número total de clases, incluidas las clases de fondo, una capa completamente conectada con 4N neuronas, es la salida de la regresión; predicción, y se obtienen n categorías posibles, prediciendo respectivamente δ centro X, δ centro, δ ancho y δ altura.

El cálculo del objetivo de R-CNN es básicamente el mismo que el del objetivo de RPN, pero se deben considerar diferentes clases de objetos posibles.

Calcule pagarés basados ​​en propuestas y cajas de verdad del terreno. Las propuestas con un IoU superior a 0,5 de cualquier cuadro de verdad fundamental se configuran como cuadros correctos. Se establece como fondo cuando el IoU está entre 0,1 y 0,5. Ignore las sugerencias sin ningún cruce aquí. Esto se debe a que, en esta etapa, se supone que se han obtenido buenas propuestas. Por supuesto, todos estos hiperparámetros se pueden ajustar para adaptarse mejor al tema.

El objetivo de la regresión del cuadro delimitador es calcular el desplazamiento entre la propuesta y su verdad fundamental correspondiente, y la propuesta se calcula solo después de establecer la categoría según el umbral de IoU.

Adopte aleatoriamente un mini lote equilibrado = 64, con un 25 % de propuestas en primer plano (con clases) y un 75 % de propuestas en segundo plano.

De manera similar a la pérdida de RPN, para el esquema seleccionado, la pérdida de clasificación utiliza una pérdida de entropía de clases múltiples; para el 25 % de las propuestas en primer plano, se utiliza una pérdida SmoothL1 para calcular la coincidencia con la verdad fundamental; caja.

Dado que la red R-CNN totalmente conectada solo genera un valor de predicción para cada categoría, se debe tener cuidado al calcular la pérdida de regresión de límites y considerar solo la categoría correcta.

Al igual que RPN, R-CNN finalmente genera un montón de objetos clasificados, luego los procesa y luego devuelve los resultados.

Para ajustar el cuadro delimitador, debemos considerar las propuestas de la clase con la máxima probabilidad e ignorar las propuestas de la clase de fondo con la máxima probabilidad.

Al obtener el objeto final, ignore los resultados como predicción en segundo plano, use NMS basado en clases, agrupe principalmente los objetos por clase, luego ordene por probabilidad, use NMS para tratar cada grupo independiente y finalmente junte .

Aún es posible limitar la lista final de objetos estableciendo un umbral de probabilidad.

En este artículo, Faster R-CNN adopta un método paso a paso para entrenar los pesos de cada módulo por separado y luego fusionar el entrenamiento. Desde entonces, se ha descubierto que la formación conjunta de un extremo a otro produce mejores resultados.

Al fusionar el modelo completo se obtienen cuatro pérdidas diferentes, dos para RPN y dos para R-CNN. Las cuatro pérdidas diferentes se organizan como sumas ponderadas. Según sea necesario, podemos establecer ponderaciones para la pérdida de clasificación y la pérdida de regresión, o establecer ponderaciones diferentes para R-CNN y RPN.

Entrenamiento con SGD, impulso=0,9. La tasa de aprendizaje inicial es 0,001, que desciende a 0,0001 después de 50.000 iteraciones. Este es un conjunto de configuraciones de parámetros de uso común.