Solución al algoritmo de detección de objetivos: interpretación de los algoritmos de la serie RCNN
Número de estudiante: 19021211150.
La guía Niu incorporada CNN es tan popular que sus algoritmos derivados surgen sin cesar y también se pueden aplicar varios algoritmos derivados a diversos escenarios y ocasiones de aplicación. Este artículo tiene como objetivo comprender los escenarios de uso, principios y métodos de varios algoritmos derivados.
Detección de objetos integrada en RCNN con nariz de vaca
¿Cuáles son las diferencias y conexiones entre los algoritmos de la serie RCNN?
Texto de vaca incrustado
En la vida, a menudo nos encontramos con situaciones de este tipo. Salí a hacer recados y de repente no encontré nada, como las llaves, el teléfono móvil y el reloj. En este punto, suelo hurgar en cada rincón de la habitación en busca de objetos faltantes. Finalmente, de repente me di unas palmaditas en la cabeza y pensé en algún lugar. Durante todo el proceso, a veces estaba muy ansioso, y cuanto más ansioso estaba, menos podía encontrarlo. Esto es realmente frustrante. Pero, ¿cómo te sentirías si un simple algoritmo informático pudiera encontrar lo que buscas en milisegundos? ¿No es asombroso? Este es el poder de los algoritmos de detección de objetos. Si bien el ejemplo de vida mencionado anteriormente es muy simple, la detección de objetos tiene una amplia gama de aplicaciones, que abarcan muchas industrias diferentes, desde vigilancia 24 horas al día, 7 días a la semana hasta detección de vehículos en tiempo real en ciudades inteligentes. En pocas palabras, la detección de objetos es una rama de potentes algoritmos de aprendizaje profundo.
En este artículo, analizaremos varios algoritmos que se pueden utilizar para la detección de objetos. Primero, comience con los algoritmos que pertenecen a la familia RCNN, a saber, RCNN, RCNN rápido y RCNN rápido. En artículos posteriores, se presentarán algoritmos más avanzados como YOLO y SSD.
1. Una forma sencilla de resolver la tarea de detección de objetos (utilizando aprendizaje profundo)
La siguiente figura ilustra cómo funciona el algoritmo de detección de objetos. Cada objeto de la imagen, desde personas hasta cometas, se localiza e identifica con cierto grado de precisión.
Comencemos con el método de aprendizaje profundo más simple, un método ampliamente utilizado para detectar imágenes: la red neuronal convolucional (CNN). Si los lectores no están familiarizados con los algoritmos de CNN, se recomienda leer este artículo.
El siguiente es un breve resumen del funcionamiento interno de CNN:
Primero, la imagen se pasa a la red como entrada, luego se procesa a través de varias capas de convolución y agrupación, y finalmente se obtiene. en forma de salida de categorías de objetos.
Para cada imagen de entrada se obtendrá como salida la categoría correspondiente. Por tanto, esta técnica se puede utilizar para detectar varios objetos en imágenes.
1. Primero, tome la imagen como entrada;
2. Luego, divida la imagen en diferentes regiones
3. como una imagen separada;
4. Pase estas regiones a CNN y clasifíquelas en categorías;
5 Una vez que cada región se divide en las clases correspondientes, todas estas regiones se pueden combinar Para. obtenga la imagen original con los objetos detectados:
El uso de este método enfrentará el problema de que los objetos en la imagen pueden tener diferentes relaciones de aspecto y posiciones espaciales. Por ejemplo, en algunos casos el objeto puede cubrir una gran parte de la imagen, mientras que en otros casos el objeto puede cubrir sólo una pequeña parte de la imagen y la forma del objeto puede ser diferente.
En base a esto, es necesario dividir una gran cantidad de áreas, lo que consumirá mucho tiempo de computación. Por lo tanto, para resolver este problema y reducir el número de regiones, se puede utilizar CNN basada en regiones, que utiliza el método propuesto para seleccionar regiones.
2. Red neuronal convolucional basada en regiones
2.1 La idea de RCNN
El algoritmo RCNN no funciona en una gran cantidad de áreas, pero propone un patrón en la imagen. Apila cuadros y comprueba si estos cuadros contienen algún objeto. RCNN utiliza búsqueda selectiva para extraer estos cuadros de la imagen.
A continuación se describe la búsqueda selectiva y cómo identifica diferentes regiones. Básicamente, cuatro áreas componen un objeto: diferentes proporciones, colores, texturas y formas. La búsqueda selectiva identifica estos patrones en las imágenes y propone varias regiones en función de ellos.
A continuación se ofrece una breve descripción general de cómo funciona la búsqueda selectiva:
Primero, se proporciona una imagen como entrada:
Luego, genera subsegmentos iniciales para obtener múltiples regiones:
Luego, la técnica combina regiones similares para formar regiones más grandes (basadas en similitud de color, similitud de textura, similitud de tamaño y compatibilidad de forma):
Finalmente, estas regiones producen la ubicación final del objeto (región de interés). );
El siguiente es un breve resumen de los pasos seguidos por RCNN para detectar objetos:
1. Primero, se utiliza una red neuronal convolucional previamente entrenada;
p>
2. Vuelva a entrenar el modelo: entrene la última capa de la red (aprendizaje por transferencia) en función del número de categorías que se detectarán;
3. el área de interés de cada imagen. Luego, ajuste el tamaño de estas regiones para que coincidan con el tamaño de la entrada de CNN;
4. Después de obtener las regiones, use el algoritmo SVM para clasificar el objetivo y el fondo. Para cada clase, se entrena una SVM binaria;
Finalmente, se entrena un modelo de regresión lineal para generar cuadros delimitadores más estrictos para cada objeto reconocido en la imagen.
[Análisis gráfico de los pasos anteriores] (n-slides.pdf):
Primero, toma la imagen como entrada:
Luego, utiliza algunas propuestas métodos (por ejemplo, búsqueda selectiva) Obtener regiones de interés (ROI):
Después de eso, cambie el tamaño de todas estas regiones y pase cada una a una red neuronal convolucional:
Luego, CNN extrae el características de cada región y utiliza SVM para clasificar estas regiones en diferentes categorías:
Finalmente, la regresión del cuadro delimitador (Bbox reg) se utiliza para predecir el cuadro delimitador de cada región de reconocimiento:
p>
Lo anterior es todo el proceso de detección de objetos por RCNN.
2.2 Problemas con rcnn
Del apartado anterior podemos saber cómo RCNN detecta objetos, pero esta tecnología tiene sus propias limitaciones. Las siguientes razones hacen que el entrenamiento de modelos RCNN sea costoso y lento:
Extraiga 2000 regiones candidatas para cada imagen según un algoritmo de búsqueda selectiva;
Utilice CNN para extraer características para cada región de la imagen;
RCNN utiliza tres modelos en todo el proceso de detección de objetos:
El modelo CNN se utiliza para la extracción de características;
El clasificador svm lineal se utiliza para identificar la categoría de objetos. ;
Los modelos de regresión se utilizan para ajustar los cuadros delimitadores;
La combinación de estos procesos hace que RCNN sea muy lento, tardando entre 40 y 50 segundos en predecir cada nueva imagen, lo que efectivamente hace que la modelo Complejo y casi imposible de aplicar frente a enormes conjuntos de datos.
La buena noticia es que existe otra técnica de detección de objetos que resuelve la mayoría de los problemas en RCNN.
3. Comprender RCNN rápido
3.1 La idea de RCNN rápido
Ross Girshick, el proponente de RCNN, propuso la idea de ejecutar CNN solo una vez para cada imagen, y luego encontré una manera de disfrutar la informática dentro de 2000 zonas. En RCNN rápido, la imagen de entrada se introduce en una CNN, que genera mapas de características convolucionales. Estos mapas de características se utilizan para extraer regiones candidatas. Luego, todas las regiones propuestas se reescalan a un tamaño fijo mediante el uso de una capa de agrupación de RoI para que ingresen a la red completamente conectada.
Dividámoslo en pasos para simplificar el concepto:
1. Primero, tome la imagen como entrada
2. Acumule la red neuronal para generar regiones de interés;
3. Aplique capas de fusión de RoI a todas las regiones de interés y ajuste el tamaño de las regiones. Luego, cada región se transfiere a la red de capas completamente conectadas
4. La capa softmax se utiliza para conectar toda la red a la categoría de salida. Junto con la capa softmax, la capa de regresión lineal también se utiliza para generar las coordenadas del cuadro delimitador de las clases predichas en paralelo.
Entonces, en lugar de usar tres modelos diferentes, el algoritmo Fast RCNN usa un solo modelo para extraer características de una región y clasificarlas en diferentes clases mientras devuelve el cuadro delimitador de la clase reconocida.
Explicación intuitiva del proceso anterior:
Tomar la imagen como entrada:
Pasar la imagen a la red neuronal convolucional T, que devuelve la región de interés. en consecuencia:
Luego, se aplica una capa de grupo de RoI a las regiones de interés extraídas para garantizar que todas las regiones sean del mismo tamaño:
Finalmente, estas regiones se transfieren usando softmax y Capas de regresión lineal a la red completamente conectada, clasificación y regreso al cuadro delimitador:
El proceso anterior muestra cómo RCNN resuelve rápidamente los dos problemas principales de RCNN, que es 1 región en cada imagen transferida al convolucional. red neuronal En , se utiliza un modelo para la extracción de características, clasificación y generación de cuadros delimitadores.
3.2 Problemas con fastrcnn
Fast RCNN también tiene algunos problemas. Todavía utiliza la búsqueda selectiva como método recomendado para encontrar regiones de interés, que es un proceso lento y lento que tarda aproximadamente 2 segundos por imagen para detectar un objeto.
Por lo tanto, se desarrolló otro algoritmo de detección de objetivos: RCNN rápido.
Aprenda RCNN más rápido
4.1 La idea de RCNN más rápido
Fast RCNN es una versión mejorada de RCNN rápido. La principal diferencia entre los dos es que FAST RCNN utiliza una búsqueda selectiva para generar regiones de interés, mientras que Fast RCNN utiliza una "Red de propuesta de región" o RPN. RPN toma un mapa de características de la imagen como entrada y genera un conjunto de objetos propuestos, y cada propuesta de objeto tiene una puntuación de objeto como salida.
Los siguientes pasos generalmente utilizan el método RCNN más rápido:
1. Tome la imagen como entrada y pásela a la red neuronal convolucional, y la red neuronal convolucional devuelve el mapa de características de. la imagen;
p>
2. Aplicar RPN a estos mapas de características y devolver los objetos propuestos y sus puntuaciones;
3. Aplicar una capa de agrupación de RoI a estos objetos propuestos. para reducir todas las propuestas al mismo tamaño;
4. Finalmente, las recomendaciones se pasan a la capa completamente conectada, que tiene una capa softmax y una capa de regresión lineal en la parte superior para clasificar y generar el cuadro delimitador de el objeto;
La siguiente es una breve explicación de cómo funciona RPN:
Primero, Faster RCNN obtiene el mapa de características de CNN y lo envía a la red de propuesta de región. RPN utiliza ventanas deslizantes en estos mapas de características, y cada ventana genera K cuadros de anclaje de diferentes formas y tamaños:
Los cuadros son cuadros delimitadores de tamaño fijo con diferentes formas y tamaños. Para cada cuadro, RPN predice dos cosas:
Predice la probabilidad de que el ancla sea un objeto;
La regresión del cuadro delimitador ajusta el ancla para que se ajuste mejor a la forma del objeto; p >
Después de delimitar cuadros con diferentes formas y tamaños, se pasan a la capa del grupo de RoI. Corta cada sugerencia para que cada sugerencia contenga un objeto. Este es el trabajo de la capa del grupo de RoI, que extrae un mapa de características de tamaño fijo para cada cuadro:
Luego transfiere estos mapas de características a una capa completamente conectada, que tiene capas softmax y de regresión lineal, y finalmente Clasifica objetos y predice el cuadro delimitador del objeto reconocido.
4.2 Problemas con Fast RCNN
Todos los algoritmos de detección de objetos discutidos anteriormente utilizan regiones para identificar objetos. La red no mirará la imagen completa a la vez, sino que se enfocará en las imágenes. En cierta parte, esto generará dos problemas complejos:
Este algoritmo necesita extraer todos los objetos de una sola imagen varias veces;
Porque no es un final. algoritmo de extremo a extremo, diferentes sistemas funcionan uno tras otro, y el rendimiento del sistema en general depende además del rendimiento del sistema anterior.
Enlace:/p/51fc039ae7a4