Peinar el contexto de las tareas de detección de objetivos en visión artificial

Prefacio: Este artículo clasifica principalmente la tarea de detección de objetivos, incluida la introducción de la detección de objetivos, conjuntos de datos comunes, habilidades comunes y modelos clásicos de dos etapas y una etapa.

1 Introducción a la detección de objetivos

El propósito de la detección de objetos (Detección de objetos) es "identificar el objetivo y dar su ubicación exacta en el gráfico", su contenido se puede deconstruir en tres partes: identificar un objetivo (Clasificación); dar la ubicación del objetivo en el gráfico (Localización ); Identifique todos los objetivos y sus ubicaciones (Detección) en la figura. A partir de estos tres puntos, se puede ver que la dificultad de la detección del objetivo es mucho mayor que la clasificación de la imagen. El último solo necesita determinar a qué tipo pertenece la imagen de entrada, y el primero necesita recortar automáticamente un parche de tamaño adecuado de la imagen. Y determinar su categoría. El paso de extraer el parche es muy difícil porque 1: el número de objetivos en la imagen es incierto; 2: la escala y la forma (tamaño y relación de aspecto) del objetivo son inciertas.

La detección de objetivos tradicional utiliza principalmente el método de ventana deslizante: se utiliza una serie de ventanas deslizantes de diferentes tamaños y relaciones de aspecto para recortar en la imagen en un determinado paso para obtener un montón de imágenes pequeñas; luego, cada imagen pequeña se envía a El último clasificador (como SVM o CNN) realiza la clasificación; luego, los marcos de predicción repetidos son filtrados por NMS. Este método es muy clásico, es decir, filtrar tres veces de todas las imágenes pequeñas posibles, y lo que queda es el objetivo detectado. Muchos algoritmos de detección de objetivos posteriores también se mejoran aún más desde aquí.

Los inconvenientes del método de ventana deslizante también son obvios:

  • Posicionamiento incorrecto. El primer paso es usar ventanas deslizantes de diferentes tamaños y relaciones de aspecto para filtrar, solo se pueden obtener ventanas pequeñas de tamaño fijo y relación de aspecto, por lo que el tamaño de la mayoría de los objetivos tendrá un cierto desplazamiento (el marco no es preciso) .
  • Es difícil detectar objetivos que estén juntos al mismo tiempo.
  • La cantidad de cálculo es demasiado grande. Este es el mayor problema: para detectar más objetivos de diferentes tamaños, para ubicar con mayor precisión, para detectar objetivos más cercanos, debe aumentar el número de ventanas deslizantes, lo que significa costos informáticos muy altos.

El algoritmo actual de detección de objetivos tiene principalmente dos ramas, el algoritmo de detección de dos etapas y el algoritmo de detección de una etapa:

  • Algoritmo típico de dos etapas: R-CNN, SPP, Fast R-CNN, Faster R-CNN, R-FCN, Mask R-CNN
  • Algoritmo típico de un paso: YOLO, SSD

La dirección de mejora del algoritmo de detección de objetivos en dos etapas (como la serie R-CNN) tiene dos puntos principales:

  • Ya no use violentamente todas las ventanas pequeñas para la clasificación, pero primero use algunos métodos para seleccionar una propuesta de región que sea más probable que sea un objetivo de una gran cantidad de ventanas pequeñas, y luego úsela para la clasificación . Esto reduce el costo de cálculo en cierta medida.
  • Incluso si el cuadro candidato seleccionado más o menos contiene un objetivo, es probable que esté desplazado, por lo que el artefacto de la regresión del cuadro se utiliza para corregir la posición de la ventana.

El algoritmo SSD de una etapa es más directo, utiliza directamente cuadros de anclaje (también llamados cuadros predeterminados) de diferentes tamaños y relaciones de aspecto para cubrir densamente la imagen, y luego se usa por separado para la clasificación. Esta idea es en realidad muy similar al método de ventana deslizante, pero el punto inteligente es:

  • Solo use CNN para extraer características una vez y conecte cada píxel en el mapa de características con el marco de anclaje preestablecido en la imagen original, por lo que la clasificación no es una pequeña ventana recortada en la imagen original, sino que cada píxel en el mapa de características corresponde Vectores de características (estos vectores de características representan las características semánticas locales del campo receptivo correspondiente).
  • Al igual que el algoritmo de dos etapas, el regresor de cuadros también se utiliza para corregir la posición exacta del cuadro de anclaje.

Se puede ver en estas instrucciones que la idea principal del algoritmo actual de detección de objetivos es: sobre la base de las características de extracción de imágenes de CNN, ventanas parciales de recorte específicas (o cuadros de anclaje con un tamaño predeterminado predeterminado) + regresor de cuadros para corregir la posición del cuadro.

2 conjuntos de datos comunes para la detección de objetivos

VOC PASCAL: contiene 20 categorías. Por lo general, la unión de entrenamiento de VOC07 y VOC12 se usa como entrenamiento, y el conjunto de prueba de VOC07 se usa como prueba.

MS COCO: COCO es más difícil que VOC. COCO contiene 80k imágenes de entrenamiento, 40k imágenes de verificación e 20k imágenes de prueba no publicadas (test-dev), 80 categorías, con un promedio de 7.2 objetivos por imagen. Por lo general, la unión de 80k de entrenamiento y 35k de imágenes de verificación se usa para el entrenamiento, las 5k imágenes restantes se usan para la verificación y las 20k imágenes de prueba se usan para pruebas en línea.

Cuatro métodos de uso combinado:

  • Use el entrenamiento VOC2007 train + val y VOC2012 train + val, y luego use la prueba de prueba VOC2007, este uso a menudo se ve en el documento 07 + 12, los investigadores pueden probar los resultados en VOC2007, porque la prueba VOC2007 es Público.
  • Use la prueba train + val + de VOC2007 y la capacitación train + val de VOC2012, y luego use la prueba de prueba de VOC2012, este uso a menudo se ve en el documento 07 ++ 12, este método debe enviarse al servidor oficial de VOC para evaluar los resultados, Porque no se anunció la prueba VOC2012.
  • Primero entrene previamente en trainval de MS COCO, luego use train + val de VOC2007, entrenamiento de ajuste fino de train + val de VOC2012, y luego use la prueba de prueba de VOC2007, este uso a menudo se ve en el documento 07 + 12 + COCO.
  • Entrene previamente en trainval de MS COCO, luego use la prueba train + val + de VOC2007, la capacitación de ajuste fino train + val de VOC2012, y luego use la prueba de prueba de VOC2012, este uso a menudo se ve en el documento 07 ++ 12 + COCO , Necesita enviar al servidor oficial de VOC para evaluar los resultados.

3 habilidades comunes en la detección de objetivos

3.1 Indicadores comunes de evaluación

mAP (media de precisión media): la media de precisión media (media) es una medida del rendimiento del modelo en la detección de objetivos. El método consiste en obtener primero el área bajo la curva PR de cada categoría (después de la interpolación), y luego promediar todas las categorías.

FPS (cuadro / por segundo): cuadros por segundo, utilizados para evaluar la velocidad del algoritmo. Un algoritmo es bueno, o bien su mAP es alto, o su compensación mAP y FPS es muy buena.

Intersección sobre unión (IOU): el área donde se cruzan el cuadro de predicción y el cuadro de verdad se divide por el área de la unión de estos dos cuadros rectangulares, y el valor es [0,1]. IOU mide qué tan cerca está el cuadro de predicción del cuadro de verdad: cuanto mayor sea el IOU, mayor será la superposición entre los dos cuadros rectangulares.

3.2 NMS (Supresión no máxima)

Un problema que puede ocurrir con la detección del objetivo es que el modelo realiza múltiples predicciones para el mismo objetivo, lo que resulta en múltiples marcos de predicción. NMS tiene como objetivo mantener el cuadro de predicción más cercano al cuadro de verdad y suprimir otros cuadros de predicción. El enfoque de NMS es que, primero, para cada categoría, NMS calcula primero el valor de probabilidad de cada cuadro de predicción que pertenece a la categoría, y clasifica los resultados de predicción de acuerdo con la probabilidad de mayor a menor. En segundo lugar, NMS excluye aquellos cuadros de predicción cuyo valor de probabilidad es menor que un cierto umbral. Luego, el NMS encuentra el marco de predicción con la probabilidad más alta entre los marcos de predicción restantes, lo emite y suprime el marco de predicción cuyo marco de predicción IOU es mayor que un cierto umbral. Repita el paso anterior hasta que se procesen todos los resultados de predicción.

La mayoría de los métodos de detección de objetivos eventualmente usarán NMS para el procesamiento posterior. Sin embargo, hay un problema con este método: si el umbral del NMS está diseñado demasiado pequeño, es fácil eliminar diferentes objetivos que están cerca uno del otro; si el diseño es demasiado grande, es fácil agregar un marco de detección repetido. Para resolver este problema, un documento de 2017 propuso el método Soft-NMS, la idea no es eliminar groseramente todos los cuadros con IOU superiores al umbral, sino reducir su confianza.

3.3 Caja de anclaje

La idea de regresión de cuadro de anclaje + cuadro es una idea clásica en la detección de objetivos. Es decir, primero use un marco rectangular (es decir, un marco de anclaje) con un tamaño y una relación de aspecto predefinidos para llenar la imagen densamente, luego determine el tipo de cada marco de anclaje y finalmente use la regresión de marco para corregir la posición del marco de anclaje que se determina que es el objetivo. Las razones para usar marcos de anclaje incluyen: (1) El tamaño y la relación de aspecto de las regiones candidatas en la imagen son diferentes, y la regresión directa es más difícil de entrenar que la corrección de las coordenadas del marco de anclaje. (2) Los vectores de características correspondientes a los píxeles en el mapa de características representan las características semánticas locales correspondientes al campo receptivo. Cada vector de características puede contener más de un objetivo. El uso de múltiples cuadros de anclaje puede predecir simultáneamente múltiples objetivos en el campo receptivo. . (3) El uso de cajas de anclaje también se puede considerar como una forma de introducir conocimiento a priori a las redes neuronales. Podemos establecer un conjunto de cuadros de anclaje en función de la forma y el tamaño de los cuadros de verdad que generalmente aparecen en los datos. Los marcos de anclaje son independientes: diferentes marcos de anclaje corresponden a diferentes objetivos, por ejemplo, las personas corresponden a marcos de anclaje altos y delgados, y los vehículos corresponden a marcos de anclaje cortos y gruesos.

3.4 Regresión de cuadro de límite

La regresión de cuadros es una idea muy importante, ya que la mayoría de los algoritmos actuales de detección de objetivos necesitan usar la regresión de cuadros para corregir la posición exacta del cuadro de predicción. Para la ventana, generalmente se usa un vector de cuatro dimensiones (x, y, w, h) para representar las coordenadas y el ancho y la altura del centro de la ventana, pero no podemos devolver directamente estos cuatro valores porque el tamaño de la imagen original y el tamaño del objetivo son ambos No fijo; los vectores de características de destino de diferentes tamaños deben ser los mismos. Obviamente, no se puede esperar que el mismo vector de características regrese a diferentes posiciones. Por lo tanto, es necesario realizar una transformación en el formulario de predicción, es decir, la regresión es el desplazamiento del cuadro de anclaje \ ((t_x, t_y, t_w, t_h) \) . Este blog es muy bueno

3.5 FPN (Feature Pyramid Network)

Propósito: propuesta en 2016, la solución principal es el problema de escalas múltiples en la detección de objetivos: a través de simples cambios en la conexión de red, el rendimiento de la detección de objetos pequeños mejora enormemente sin aumentar sustancialmente la cantidad de cálculo del modelo original.

Antecedentes: en la detección de objetos, a medida que se profundiza la profundidad de la red, generalmente el paso continuará aumentando. Cuando el paso excede el tamaño del objetivo pequeño en la imagen original, el rendimiento de detección del objetivo pequeño disminuirá bruscamente. Los métodos tradicionales de detección de objetivos generalmente hacen predicciones en el último mapa de características, lo que será perjudicial para la detección de objetivos pequeños. Para resolver este problema, generalmente hay dos enfoques: uno es usar la pirámide de imágenes para obtener imágenes con diferentes resoluciones y luego extraer por separado las características para la predicción, la desventaja es que la cantidad de cálculo es demasiado grande; el segundo es similar al marco SSD, directamente de las características de diferentes escalas El predictor se dibuja en el mapa para obtener información semántica de diferentes resoluciones. La desventaja es que aunque el mapa de características anterior tiene una resolución más alta, la extracción de información semántica avanzada es insuficiente, por lo que el rendimiento de la detección de objetivos pequeños no es obvio.

Estructura: FPN se modifica directamente en la red única original. La estructura general incluye tres partes: conexión ascendente, descendente y horizontal. El mapa de características de cada resolución sufre una convolución 1x1 y la última resolución El mapa de funciones se amplió dos veces para hacer la fusión (aquí, además de elementos). A través de dicha conexión, el mapa de características utilizado para cada capa de predicción incorpora características de diferentes resoluciones y diferentes fuerzas semánticas.

3.6 OHEM (Minería en línea de ejemplo duro)

Propósito: Comience con el proceso de capacitación y resuelva los problemas causados ​​por el desequilibrio de las muestras positivas y negativas.

Antecedentes: R-CNN usó la idea de la minería dura negativa al entrenar el clasificador SVM, pero Fast R-CNN y Faster R-CNN no usaron la minería de muestras duras debido a la estrategia de capacitación de extremo a extremo (solo establezca La proporción de muestras positivas y negativas y seleccionadas al azar). Los detectores de objetos basados ​​en la región de capacitación de CVPR2016 con minería de ejemplos en línea (oral) integran el mecanismo de minería de ejemplos en el algoritmo SGD, de modo que Fast R-CNN selecciona automáticamente los candidatos adecuados de acuerdo con la pérdida durante el proceso de capacitación La propuesta de la región se entrena como un ejemplo positivo y negativo. Los resultados experimentales muestran que el uso del mecanismo OHEM (Online Hard Example Mining) puede hacer que el algoritmo Fast R-CNN aumente mAP en aproximadamente un 4% en VOC2007 y VOC2012.

Método: Seleccione algunas muestras difíciles como muestras de entrenamiento para mejorar el efecto del parámetro de red. En el documento OHEM, las muestras negativas se clasifican de acuerdo con el tamaño de la pérdida, y las muestras con mayor pérdida se seleccionan para devolver el gradiente, mientras se considera la superposición, se utiliza NMS. Vale la pena señalar que algunos modelos son ligeramente diferentes y no usan NMS . Por ejemplo, el OHEM utilizado en SSD es seleccionar la muestra negativa con la mayor pérdida de acuerdo con la proporción de muestras positivas y negativas 1: 3, sin hacer NMS.

3.7 Pérdida focal

Propósito: En 2017, se propuso comenzar con la función de pérdida para resolver los problemas causados ​​por el desequilibrio de muestras positivas y negativas.

Antecedentes:

  • El autor cree que la principal diferencia entre el rendimiento de una etapa y dos etapas se debe al desequilibrio de una gran cantidad de categorías de primer plano y de fondo, por lo que diseñó la pérdida focal y diseñó una estructura de red RetinaNet para verificar el efecto a través de ResNet + FPN + FL.
  • El desequilibrio es un problema común en la detección de objetivos. El desequilibrio de categoría conduce a: la pérdida de muestras positivas se sumerge en la pérdida de muestras negativas, lo que hace que no tenga demasiado derecho a hablar; es fácil causar problemas de desequilibrio de la muestra debido a dificultades;
  • Resuelva rutinariamente el problema del desequilibrio: ajuste el peso de las muestras positivas y negativas, sobremuestreo y submuestreo, OHEM (solo retenga muestras con alta pérdida, ignore las muestras simples); (ya sea simple o crudo, o demasiado complicado y feo, y FL es más elegante)
  • Dos etapas pueden resolver la razón del equilibrio de clase: la etapa RPN puede filtrar la mayoría de las muestras de fondo (solo quedan una o dos mil); la segunda etapa puede usar el muestreo para controlar muestras positivas y negativas 1: 3, o OHEM para seleccionar muestras difíciles. Aunque el método de una etapa también puede usar métodos de muestreo o extracción de muestras difíciles, pero el efecto aún no es suficiente.

Puntos clave:

  • El término gamma se usa para ajustar el peso de las muestras difíciles y las muestras fáciles. Cuando el valor de probabilidad es mayor (lo que indica que la muestra es más fácil), el peso disminuye más severamente; cuanto mayor es el valor gamma, mayor es el impacto de este peso de compresión;
  • \ (\ alpha_t \) se usa para ajustar el peso de las muestras positivas y negativas. En el caso de la clasificación binaria, \ (\ alpha_t = \ alpha \) para muestras positivas y \ (\ alpha_t = 1- \ alpha \) para muestras negativas ; en el caso de clasificación multivariante, configure \ (\ alpha_t \) en Lista que muestra el peso de cada categoría.

4 Algoritmo clásico de detección de objetivos

El algoritmo actual de detección de objetivos tiene principalmente dos ramas, un algoritmo de detección de dos etapas y un algoritmo de detección de una etapa, que se introducen en el siguiente orden.

Debido al uso confuso de los dos conceptos de cuadro candidato y RoI (Región de interés) en los datos, para evitar confusiones, la propuesta de región en este documento se refiere al cuadro candidato en la imagen original, y el RoI se refiere al mapa de características correspondiente al cuadro candidato En el área de características.

4.1 Algoritmo de detección en dos etapas

El algoritmo de detección de dos segmentos también se conoce como un método basado en regiones. La idea principal es seleccionar una parte del marco candidato que contenga el objetivo con una probabilidad más alta, y luego realizar una clasificación y regresión de bordes adicionales. El proceso se divide en dos Fase, llamada de dos etapas. Los representantes típicos son R-CNN, SPP, Fast R-CNN, Faster R-CNN, R-FCN y Mask R-CNN, que también se desarrollan paso a paso sobre la base de sus predecesores en orden cronológico.

4.1.1 R-CNN

Propuesto por rbg en 2013, es un trabajo pionero que utiliza redes neuronales convolucionales para la detección de objetivos, lo cual es de gran importancia.

Proceso de detección:

  • Ingrese una imagen de prueba y use el algoritmo de Búsqueda selectiva para extraer alrededor de 2000 cuadros candidatos que pueden contener objetos en la imagen;
  • Debido a que el tamaño de los cuadros candidatos extraídos es diferente, es necesario deformar cada cuadro candidato a un tamaño uniforme de 227x227 e ingresarlo a CNN, y usar la salida de la capa fc7 de CNN como la característica extraída;
  • Ingrese las características CNN extraídas de cada cuadro candidato a la SVM para su clasificación;
  • Los vectores de características de los objetivos identificados se envían al dispositivo de regresión de cuadros para corregir la ventana, y se generan las coordenadas de ventana predichas.

Proceso de formación:

  • Paso 1: Entrene CNN: primero descargue (o entrene) un modelo de clasificación (como AlexNet); luego ajuste el modelo, es decir, cambie el número de clasificaciones de 1000 a 20, como 20 categorías de objetos + 1 fondo, elimine el último después del entrenamiento Una capa totalmente conectada.
  • Paso 2: características de extracción: extraiga todos los cuadros candidatos de la imagen (Búsqueda selectiva); para cada región, distorsione cada cuadro candidato e introdúzcalo en CNN, y envíe la quinta capa de agrupación (es decir, Guarde las características extraídas del marco candidato) en el disco duro.
  • Paso 3: Entrene al clasificador: Para cada categoría, entrene un clasificador SVM (clasificación binaria), que es positivo, de lo contrario, negativo.
  • Paso 4. Entrene al regresor de frontera: para cada categoría, entrene al regresor de frontera correspondiente.

Nota:

  • Para cada categoría, hay un clasificador SVM, y el método OVR se usa para completar la clasificación de múltiples categorías; (el Sr. Lin Xuantian dijo en la clase de piedra angular de aprendizaje automático que este método no es bueno, porque el OVR que usa un clasificador duro causará algunas muestras No puede clasificarse, o clasificarse en diferentes categorías, por lo que se debe usar la clasificación suave LR) (Comprensión personal: aquí se usa el clasificador SVM, puede ser que la dimensión del espacio de características de la imagen sea particularmente grande, por lo que las características de cada categoría están muy lejos) , Así que no te preocupes por este tipo de problema)

Desventajas de R-CNN:

  • El entrenamiento se divide en varias etapas, necesita ajustar la red + entrenamiento SVM + regresor del marco de entrenamiento, los pasos son engorrosos:
  • Los cuadros candidatos seleccionados por la Búsqueda selectiva varían en tamaño, y las características deben extraerse después del zoom, y se perderá cierta información;
  • Cada imagen original tiene alrededor de 2000 cuadros candidatos, cada uno de los cuales requiere extracción de características, lo que resulta en una gran cantidad de cálculos repetidos (muchas regiones candidatas se superponen), por un lado consume mucho tiempo (usando GPU, modelo VGG16 para procesar una imagen toma 47 segundos), y otro Por un lado, las características extraídas ocupan mucho espacio en disco (5000 imágenes generan cientos de archivos de características G).

4.1.2 SPP-Net

En 2014, He Kaiming propuso SPP-Net , que resolvió dos problemas principales en R-CNN: uno es que cada cuadro candidato debe enviarse a CNN para extraer características; segundo, cada cuadro candidato debe escalarse a un tamaño fijo. SPP-Net utiliza CNN para extraer las características de la imagen solo una vez, y asigna las coordenadas de cada cuadro candidato al mapa de características, para obtener directamente el área de características (ROI) de cada cuadro candidato, evitando cuadros candidatos repetidos en R-CNN Extraer características; utilice la agrupación de pirámides espaciales para permitir que los ROI de cualquier tamaño se conviertan en vectores de características de tamaño fijo.

Proceso de detección:

  • El primer paso es el mismo que R-CNN, usando el algoritmo de búsqueda selectiva para extraer alrededor de 2000 cuadros candidatos que pueden contener objetos en la imagen;
  • Ingrese la imagen original en la red ZF-5 para extraer las características de la imagen (el número de canales es de 256 dimensiones);
  • Usando el método de mapeo de zancadas, las coordenadas de cada cuadro candidato se mapean directamente en el mapa de características, obteniendo así el ROI correspondiente a cada cuadro candidato;
  • Use la red de pirámide espacial para convertir el ROI obtenido en el paso anterior en una salida de tamaño fijo (12800 dimensiones);
  • Conecte el vector de 12800 dimensiones obtenido en el paso anterior a fc6 y fc7, y luego realice la clasificación y la regresión de bordes.

El proceso específico de agrupación de pirámides espaciales: para cualquier ROI, use una plantilla de cuadrícula de 6x6 para cortarla en 36 bloques; de manera similar, continúe usando la cuadrícula 3x3, 2x2, 1x1 para dividirla en bloques de diferentes escalas (total Se puede cortar en 50 piezas), y luego hacer la agrupación máxima, obteniendo así un vector de características 50x256 = 12800. (La imagen de arriba es un diagrama esquemático, donde solo hay cuadrículas 4x4, 2x2, 1x1, por lo que la salida es un vector de características 21x256 = 5376)

Cómo asignar el cuadro candidato de la imagen original al mapa de características: se proporciona una fórmula de cálculo simple directamente en el Apéndice A del artículo, es decir, para las coordenadas superior / izquierda \ (x '= \ lfloor x / S \ rfloor + 1 \) , Para las coordenadas inferior / derecha \ (x '= \ lceil x / S \ rceil-1 \) . Donde \ (x '\) representa las coordenadas en el mapa de características, \ (x \) representa las coordenadas en la imagen original y S representa la zancada, que es el múltiplo de muestreo inferior.

4.1.3 Fast R-CNN

En 2015, rbg propuso Fast R-CNN, que absorbió estas dos ingeniosas soluciones en SPP-Net y optimizó la función de pérdida. En comparación con R-CNN, el tiempo de entrenamiento rápido de R-CNN se reduce de 84 horas a 9.5 horas, el tiempo de prueba se reduce de 47 segundos a 0.32 segundos, y la precisión de la prueba en PASCAL VOC 2007 es casi la misma, aproximadamente 66% -67 %

Los principales puntos de mejora para R-CNN:

  • Absorba la idea de SPP Net, solo realice la extracción de características en la imagen original una vez, y luego asigne las regiones candidatas seleccionadas al mapa de características, y obtenga el ROI directamente del mapa de características;
  • Reemplace la última capa de la capa de agrupación de VGG con la capa de agrupación de ROI (es decir, SPP de capa única), que puede convertir el ROI de diferentes escalas a un tamaño fijo, lo cual es conveniente para atracar con la capa completamente conectada detrás;
  • Reemplace el clasificador de SVM a softmax, reemplace la pérdida del regresor de borde con la pérdida L1 suave y luego combine las dos funciones de pérdida en una función de pérdida de múltiples tareas (pérdida de múltiples tareas), coloque el regresor de borde y el clasificador en Una pieza de capacitación, para que todo el proceso de capacitación sea de extremo a extremo (excluyendo la etapa de extracción de la Propuesta de Región).

4.1.4 R-CNN más rápido

Después de la mejora de R-CNN, Fast R-CNN puede reducir el tiempo de procesamiento de una imagen de 47s a 0.32s (excluyendo el tiempo para extraer el cuadro candidato), pero el tiempo para que la Búsqueda selectiva extraiga el cuadro candidato en la imagen original está cerca de 2s, por lo que el cuello de botella de todo el enlace de detección se atasca en este paso. Por lo tanto, en 2015, Ren Shaoqing y otros propusieron Faster R-CNN y reemplazaron directamente el paso de extraer el cuadro de candidato con Búsqueda selectiva en RPN (Region Proposal NetWork) , es decir, Faster R-CNN = RPN + Fast R-CNN . La estructura de RPN (redes de propuestas de región) es muy simple. Solo hay dos capas de convolución. Usando un clasificador y un regresor de borde, el ROI se extrae directamente del mapa de características y luego se envía a la subdivisión posterior. Después de la mejora, Faster R-CNN integra extracción de características, extracción de ROI, regresión de bordes y clasificación en una red, reduciendo el tiempo para procesar una imagen de 2s a 0.2s (incluido el tiempo para extraer cuadros candidatos) )

Mecanismo operativo RPN:

  • Use CNN (como ZFNet, VGG16, ResNet) para extraer funciones de imagen;
  • Use un núcleo de convolución 3x3 para convolucionar todo el mapa de características para obtener un mapa de características de tamaño constante, donde el vector de características de 256 dimensiones correspondiente a cada píxel representa la característica semántica local del campo receptivo correspondiente; cada píxel corresponde a k cuadros de anclaje , Donde k = 9, entonces la probabilidad de categoría y el desplazamiento de cada cuadro de anclaje deben obtenerse;
  • Para cada vector de características de 256 dimensiones, a través de la convolución 1x1, se obtienen resultados de clasificación 2x9 y resultados de regresión 4x9;
  • Asigne el primer plano y la salida de desplazamiento del RPN a la imagen original para obtener una pila de marcos de predicción, que se pueden obtener después del procesamiento NMS y TopN;
  • Asigne las coordenadas del cuadro candidato al mapa de características completo mediante el mapeo de pasos en Fast R-CNN para obtener un montón de ROI candidato.

Nota:

  • RPN usa 3x3 para convolución, el campo receptivo correspondiente al resultado de la convolución: ZFNet es 171, VGG16 es 228; y R-CNN más rápido en realidad usa 3 conjuntos de tamaños (128 × 128, 256 × 256, 512 × 512), 3 Relación de aspecto de grupo (1: 1, 1: 2, 2: 1), un total de 9 cuadros de anclaje. En otras palabras, el campo receptivo es aproximadamente del mismo tamaño que el marco de anclaje medio, pero más pequeño que el tamaño del marco de anclaje grande. El autor explicó que esto también es factible.
  • Basado en el R-CNN más rápido de ResNet101, la capa de agrupación de ROI se inserta después de la salida del cuarto módulo de convolución en lugar del quinto, es decir, la salida del cuarto módulo de convolución se usa como las características de imagen extraídas, todos los cálculos Solo se comparten las 91 capas frontales (1+ (3 + 4 + 23) x3 = 91).
  • Puede consultar el análisis RPN y leer RCNN más rápido en un artículo .

4.1.5 R-FCN

Después de la agrupación de ROI, R-CNN más rápido necesita hacer dos predicciones de rama para cada ROI por separado. Por ejemplo, basado en ResNet101, todos los cálculos solo comparten las primeras 91 capas de convolución, y cada ROI que se ha extraído debe ejecutarse por separado después de 10 Convolución de capa. En 2016, Microsoft Dai Jifeng y otros propusieron R-FCN, que tiene como objetivo hacer que casi toda la informática comparta para acelerar aún más.

Ideas principales:

  • Para el método de detección basado en la región, tomando Faster R-CNN como ejemplo, en realidad está dividido en varias subredes. La primera se utiliza para hacer la conv de consumo de tiempo en todo el mapa. Estas operaciones son independientes de la región y son cálculos. Compartido La segunda subred se usa para generar cuadros candidatos (como RPN), y la tercera subred se usa para clasificación o regresión (como Fast RCNN). Esta subred está relacionada con la región. Cada región debe ejecutar la red por separado y conectarse a esta La mitad de la subred y las dos primeras subredes es la agrupación de ROI. Lo que esperamos es que las convoluciones que consumen mucho tiempo se muevan a la subred previamente compartida tanto como sea posible.
  • Sin embargo, colocar la capa de agrupación de ROI directamente detrás del quinto módulo de convolución de ResNet101 dará como resultado un rendimiento deficiente. Debido a que la red es demasiado profunda, el mapa de características resultante no es lo suficientemente grande como para transportar suficiente información, especialmente información de ubicación, así que configure Un mapa de puntaje sensible a la ubicación utilizado para retener información de ubicación.
  • Por lo tanto, el método de R-FCN es derivar RPN de conv4 para obtener ROI, y luego asignar el ROI al mapa de puntaje, y obtener el mapa de características de agrupación de ROI mediante la agrupación de ROI sensible a la posición. (R-CNN más rápido es extraer el área de características de ROI del mapa de características conv4 y utilizar el método común de agrupación de ROI para obtener el mapa de características de agrupación de ROI)

Para más detalles, consulte el código fuente. Tomando k = 7, C = 20 como ejemplo, suponiendo que la salida de ResNet es 100x100x2048, el flujo de datos es el siguiente:

Estructura de red R-FCN:

  • La red conv básica es ResNet101, y la agrupación promedio global y la capa fc se eliminan y se reemplazan con una capa convolucional 1x1 para reducir el número de canales (de 2048 a 1024), es decir, se comparte la red convolucional de 101 capas.
  • Para la salida de la red de 101 capas en el paso anterior, \ (k ^ 2 * (C + 1) \) 1x1 núcleos de convolución se utilizan para convolucionar para obtener mapas de características de grupo \ (k ^ 2 \) , donde cada grupo tiene C El canal +1 (es decir, el número total de canales es 1029) se denomina mapa de puntuación sensible a la posición rfcn_cls, y su ancho y altura no cambian. La otra ruta es similar a rfcn_bbox, y el número de canales de salida es 8x7x7 = 392.
  • RPN dibuja el clasificador y el regresor de la salida de conv4, y lo asigna a la imagen original para obtener un montón de cuadros candidatos.
  • Asigne el cuadro candidato a rfcn_cls (dividido directamente por stride = 16 durante la implementación), y obtenga el mapa de características de agrupación de ROI con un tamaño de 7x7 y el número de canales de 21 por el método de agrupación de ROI sensible a la posición, y luego a través del grupo promedio global Después de softmax, se muestran los resultados de la clasificación; la otra forma es similar y se obtienen los resultados de la regresión.
  • La agrupación de ROI sensible a la posición es diferente de la agrupación de ROI ordinaria en F-R-CNN más rápido. Este último solo necesita cortar el ROI en cuadrículas de 7x7, y cada cuadrícula se puede agrupar al máximo, mientras que el primero corta el ROI en cuadrículas de 7x7. Cada cuadrícula se toma de un grupo diferente y luego se agrupa (por ejemplo, después de la agrupación sensible a la posición en la primera imagen, cada cuadrícula en el mapa de características corresponde a un color diferente. Tenga en cuenta que la figura es solo la clasificada y k = 3).

4.1.6 Máscara R-CNN

En 2017, Kaiming propuso Mask R-CNN, que integra muchos resultados excelentes de investigación anteriores y puede realizar la detección de objetivos y la segmentación de instancias al mismo tiempo. En términos simples, Mask R-CNN = ResNet + FPN + Faster R-CNN + Mask, y mejora aún más el rendimiento a través de RoI Align y pérdida de máscara especial.

Detalles del modelo:

  • Se sigue la idea de F-R-CNN más rápido: es decir, se usa RPN para obtener el marco candidato y luego se asigna al mapa de características para extraer el ROI. Después de la agrupación, se obtiene un RoI de tamaño fijo y luego se envía para hacer la clasificación y la regresión. Sin embargo, Mask R-CNN agregó otra rama de Mask después de RoI, por ejemplo, la segmentación. Es decir, cada ROI tiene dos cabezas de rama después de la agrupación: cabeza de clasificación y regresión, y cabeza de máscara.
  • Backbone tiene múltiples opciones, como ResNet50, ResNet101, ResNeXt50, ResNeXt101, representadas por características de profundidad de red, como el ResNet-50-C4 comúnmente utilizado, lo que significa que se utiliza el mapa de características de salida del cuarto módulo de convolución en ResNet50; Además, puede elegir con o sin FPN. Por ejemplo, ResNeXt-101-FPN significa que se utiliza el mapa de características de la salida de FPN en ResNeXt101. Aquí solo se utiliza ResNet-101-FPN como ejemplo.
  • La arquitectura de ResNet-FPN es derivar RPN de los mapas de características P2, P3, P4, P5, P6, y después de un procesamiento posterior para obtener una pila de cuadros candidatos, luego para cada cuadro candidato, de P2, P3, P4, P5 cuatro Use la fórmula \ (k = \ lfloor k_0 + log_2 (\ frac {\ sqrt {wh}} {224}) \ rfloor \) para seleccionar un mapa de características ( \ (k_0 \) generalmente elige 4) RoI correspondiente.
  • La capa común de agrupación de RoI realiza operaciones de redondeo en dos lugares: una es cuando se asignan cuadros candidatos en el mapa de características para extraer la RoI, y la otra es cuando se realiza la agrupación de RoI. Esto tiene poco efecto en la tarea de detección de objetivos, pero dado que la rama de máscara es una predicción a nivel de píxel, requiere una correspondencia de coordenadas más fina. Por lo tanto, la capa de agrupación RoI común se reemplaza por la capa Alinear RoI, es decir, los números de coma flotante se retienen en estos dos pasos, y se utiliza un método de interpolación bilineal para obtener un mapa de características de agrupación de tamaño fijo durante la agrupación.
  • Después de obtener el mapa de características de agrupación de ROI en el paso anterior, se envían a dos ramas respectivamente. Las ramas de clasificación y regresión todavía usan Fast R-CNN. La rama de máscara usa FCN para obtener una plantilla de máscara de nivel de píxeles. El número de canales es 80 categorías, de las cuales La máscara de cada capa representa la probabilidad de categoría correspondiente. (Tenga en cuenta que la probabilidad de categoría aquí es la activación sigmoidea para cada categoría en cada píxel)
  • Función de pérdida especial: FCN es una clasificación softmax multiclase de cada píxel, y luego calcula la pérdida de entropía cruzada, que aquí es diferente. Diferencia 1: la salida de máscara de 80 capas por la rama de máscara no es la activación de softmax para 80 categorías, sino la activación sigmoidea para cada categoría; Diferencia 2: Para cada píxel, al calcular la pérdida, no es directamente tomar 80 categorías Para calcular la pérdida de entropía cruzada, pero a qué categoría pertenece este píxel, tome el valor de probabilidad correspondiente a esa categoría para calcular la entropía cruzada binaria. De esta forma, se evita la competencia entre clases y otras categorías ya no contribuyen con pérdidas (si se usa softmax para calcular la entropía cruzada, otras categorías contribuirán indirectamente con pérdidas).
  • La siguiente figura muestra dos configuraciones de cabezales, que son columnas principales que usan ResNet-C4 y ResNet-FPN.

4.2 Detección de objetivos en una etapa

Los principales representantes del algoritmo de detección de objetivos de una etapa son YOLO (v1 / v2 / v3) y SSD. Dado que la imagen solo necesita alimentar la red una vez, la velocidad suele ser más rápida y puede llegar en tiempo real.

(Este párrafo aún se está recopilando ...)

Referencia:

Supongo que te gusta

Origin www.cnblogs.com/inchbyinch/p/12735095.html
Recomendado
Clasificación