Recomendación del documento sobre detección de objetivos: detección de objetivos basada en una red neuronal profunda
Texto original: Detección de objetos escalable mediante redes neuronales profundas: ámbito académico
Recientemente, las redes neuronales convolucionales profundas han logrado un rendimiento de vanguardia en muchos puntos de referencia de reconocimiento de imágenes, incluidos Desafío de reconocimiento visual a escala ImageNet (ILSVRC-2012). El modelo ganador en la subtarea de localización fue una red que predijo un único cuadro delimitador y una puntuación de confianza para cada clase de objeto en la imagen. Dicho modelo captura todo el contexto de la imagen que rodea al objeto, pero no puede manejar múltiples instancias del mismo objeto en la imagen sin replicar ingenuamente el número de resultados para cada instancia. En este artículo se propone un modelo de detección de redes neuronales inspirado en la prominencia, que predice un conjunto de cuadros delimitadores independientes de clase, cada cuadro tiene una puntuación correspondiente a la probabilidad de que contenga cualquier objeto de interés. El modelo maneja naturalmente un número variable de instancias por clase y permite la generalización entre clases en los niveles más altos de la red.
La detección de objetos es una de las tareas básicas de la visión por ordenador. Un paradigma general para resolver este problema es entrenar detectores de objetos que operen con subimágenes y aplicar estos detectores de manera exhaustiva en todos los lugares y escalas. Este paradigma se aplica con éxito en un modelo de pieza deformable (DPM) entrenado discriminativamente para lograr resultados de última generación en tareas de inspección. Una búsqueda exhaustiva de todas las ubicaciones y escalas posibles plantea desafíos computacionales. A medida que aumenta el número de clases, este desafío se vuelve más difícil porque la mayoría de los métodos entrenan detectores separados para cada clase. Para resolver este problema, se han propuesto varios métodos, que van desde cascadas de detectores hasta el uso de segmentación para proponer una pequeña cantidad de hipótesis de objetos.
Hay mucha literatura sobre la detección de objetos. En esta sección, nos centraremos en métodos que utilizan ideas independientes de la clase y resuelven la escalabilidad.
Muchos métodos de detección propuestos se basan en modelos basados en componentes, que recientemente han logrado un rendimiento impresionante gracias al aprendizaje discriminativo y a características cuidadosamente diseñadas. Sin embargo, estos métodos se basan en la aplicación exhaustiva de plantillas de piezas a múltiples escalas, lo cual es muy costoso. Además, son escalables en el número de clases, lo que supone un desafío para los conjuntos de datos modernos como ImageNet.
Para resolver el primer problema, Lampert et al. utilizan una estrategia de bifurcación y vinculación para evitar calcular todas las posiciones posibles de los objetos. Para resolver este último problema, Song et al. utilizaron una base de componentes de baja dimensión compartida entre todas las clases de objetos. La detección de piezas basada en algoritmos hash también logró buenos resultados.
Un trabajo diferente, más cercano al nuestro, se basa en la idea de que los objetos se pueden localizar sin necesidad de conocer sus clases. Algunos de estos enfoques se basan en una segmentación sin clases desde abajo hacia arriba. Este valor se genera mediante una transformación lineal de la última capa oculta, seguida de un sigmoide.
Podemos combinar las posiciones del cuadro delimitador sli,i∈{1,…K} en una capa lineal. De manera similar, podemos tratar todos los intervalos de confianza ci,i∈{1,…K} como la salida de una capa sigmoidea. Ambas capas de salida están conectadas a la última capa oculta
En el momento de la inferencia, nuestro algoritmo genera kbound boxes. En nuestros experimentos utilizamos ek = 100 y K = 200. Si es necesario, podemos utilizar puntuaciones de confianza y supresión no máxima para obtener un número menor de cuadros de alta confianza en el momento de la inferencia. Se supone que estas cajas representan objetos. Por lo tanto, pueden clasificarse mediante clasificadores posteriores para lograr la detección de objetivos. Dado que el número de cajas es muy pequeño, podemos proporcionar un clasificador potente. En nuestros experimentos, utilizamos otro DNN para la clasificación.
Entrenamos un DNN para predecir los cuadros delimitadores de cada imagen de entrenamiento y sus puntuaciones de confianza, de modo que el cuadro con la puntuación más alta coincida bien con el cuadro del objeto de verdad fundamental de la imagen. Supongamos que para un ejemplo de entrenamiento específico, los objetos están etiquetados como borderingboxesgj,j∈{1,…,M}. En la práctica, el número de diccionarios es mucho mayor que el número de cajas de verdad fundamentales. Por lo tanto, intentamos optimizar solo el subconjunto de cuadros predichos que mejor coincidan con la verdad fundamental.
Optimizamos sus posiciones para mejorar su juego y maximizar su confianza. Al mismo tiempo, minimizamos la confianza de las predicciones restantes, que se consideran no buenas para localizar objetos reales. Para lograr el propósito anterior, formulamos un problema de asignación para cada instancia de capacitación. Wexij∈{0,1} significa asignación: xij= 1, si la i-ésima predicción se asigna al j-ésimo objeto verdadero. El objetivo de esta tarea se puede expresar como
donde utilizamos la distancia el2 entre las coordenadas del cuadro delimitador normalizado para cuantificar la diferencia entre los cuadros delimitadores. Además, queremos optimizar la confianza del cuadro en función de la asignación x. Maximizar la confianza de una predicción determinada se puede expresar como
El objetivo de pérdida final combina la pérdida de coincidencia y la pérdida de confianza
Sujeto a la Ecuación 1. α equilibra las contribuciones de diferentes términos de pérdida.
Para cada ejemplo de entrenamiento, realizamos la solución de asignación resolviendo una asignación óptima x* que predice la restricción de caja verdadera
. Esta es una variante del emparejamiento bipartito, un emparejamiento de complejidad polinomial. En nuestra aplicación, la comparación es muy económica: la cantidad de objetos etiquetados en cada imagen es menos de una docena y, en la mayoría de los casos, muy pocos objetos están etiquetados. Luego, los parámetros de la red se optimizan mediante retropropagación. Por ejemplo, la primera derivada del algoritmo de retropropagación calcula w, r, t, l y c.
Aunque la pérdida definida anteriormente es suficiente en principio, tres modificaciones permiten lograr una mayor precisión más rápido. La primera modificación es agrupar las ubicaciones reales del terreno y encontrar dichos grupos/centroides que podamos usar como prioridad para cada ubicación predicha. Por lo tanto, se anima al algoritmo de aprendizaje a aprender un residual a un anterior para cada ubicación predicha.
La segunda modificación implica el uso de estos antecedentes en el proceso de comparación: en lugar de hacer coincidir N posiciones de verdad fundamental con K predicciones, encuentre la mejor coincidencia entre K antecedentes y verdad fundamental. Una vez que se completa la coincidencia, la confianza del objetivo se calcula como antes. Además, la pérdida de predicción de posición también es constante: para cualquier par de posiciones coincidentes (objetivo, predicha), su pérdida se define como la diferencia entre la verdad fundamental y las coordenadas correspondientes a la coincidencia anterior. Nos referimos al uso de emparejamiento previo como emparejamiento previo y asumimos que promueve la diversificación de la predicción.
?Es importante tener en cuenta que aunque hemos definido nuestro método de forma independiente de la clase, podemos aplicarlo para predecir cuadros de objetos de una clase específica. Para hacer esto, solo necesitamos entrenar nuestro modelo en los cuadros delimitadores de la clase. Además, podemos predecir el kbox para cada clase. Desafortunadamente, el número de parámetros de este modelo crece linealmente con el número de clases. Además, en una configuración típica donde la cantidad de objetos de una clase determinada es relativamente pequeña, la mayoría de estos parámetros verán pocos ejemplos de entrenamiento con las correspondientes contribuciones de gradiente. Por lo tanto, creemos que nuestro proceso de dos pasos (primero localización, luego reconocimiento) es una mejor opción porque permite aprovechar datos de múltiples tipos de objetos en la misma imagen usando una pequeña cantidad de parámetros.
Nosotros La red La arquitectura utilizada para los modelos de localización y clasificación es la misma que la utilizada por [10]. Usamos Adagrad para controlar la caída de la tasa de aprendizaje, tamaños de mini lotes de 128 y usamos múltiples copias de la misma red para el entrenamiento distribuido en paralelo, lo que resulta en una convergencia más rápida. Como se mencionó anteriormente, utilizamos valores anteriores en la pérdida de localización; estos se calculan utilizando la media del conjunto de entrenamiento. También utilizamos α = 0,3 para equilibrar la localización y la pérdida de confianza. El localizador puede generar coordenadas para inferencias fuera del área de plantación. Las coordenadas se asignan y truncan al área de la imagen final. Además, las cajas se podan utilizando una supresión no máxima con un umbral de similitud Jaccard de 0,5. Luego, nuestro segundo modelo clasifica cada cuadro delimitador como un objeto de interés o "fondo". Para entrenar nuestra red de localizadores, generamos aproximadamente 30 millones de imágenes del conjunto de entrenamiento y aplicamos los siguientes pasos a cada imagen del conjunto de entrenamiento. Finalmente, se revuelve la muestra. Para entrenar nuestra red de localización, generamos aproximadamente 30 millones de imágenes del conjunto de entrenamiento aplicando los siguientes pasos a cada imagen del conjunto de entrenamiento. Para cada imagen, generamos la misma cantidad de muestras cuadradas, lo que hace que la cantidad total de muestras sea aproximadamente 10 millones.
Para cada imagen, las muestras se rellenan con barriles de modo que para cada proporción en el rango 0 - 5%, 5 - 15%, 15 - 50%, 50 - 100%, haya el mismo número de muestras rodeadas por la proporción de caja. cobertura dentro del rango dado. La selección del conjunto de entrenamiento y la mayoría de nuestros hiperparámetros se basó en experiencias pasadas utilizando conjuntos de datos no públicos. En los experimentos siguientes, no exploramos ninguna opción de regularización o generación de datos no estándar. En todos los experimentos, todos los hiperparámetros se pasan al conjunto de entrenamiento.
El desafío Pascal Visual Object Classes (VOC) es el punto de referencia más utilizado para los algoritmos de detección de objetos. Consiste principalmente en imágenes de escenas complejas que contienen cuadros delimitadores para 20 categorías de objetos diferentes. En nuestra evaluación, nos centramos en la versión 2007 de VOC, para la cual se lanzó un conjunto de prueba. Presentamos los resultados del entrenamiento VOC 2012, que contiene aprox. 11.000 imágenes. Entrenamos un localizador de 100 cajas y un clasificador profundo basado en red.
Entrenamos el clasificador en un conjunto de datos que consta de 10 millones de cultivos con objetos superpuestos de al menos 0,5 de similitud de superposición jaccard. Estos cultivos están etiquetados como una de las 20 clases de objetos VOC. 20 millones de cultivos negativos tienen como máximo 0,2 de similitud Jaccard con cualquier cuadro de objetos. Estos cultivos están etiquetados en una categoría especial de "fondo". A continuación se presenta la elección de la arquitectura y los hiperparámetros.
En la primera ronda, el modelo localizador se aplica al recorte del cuadrado central máximo-mínimo de la imagen. El recorte cambia de tamaño al tamaño de entrada de la red, que es 220 × 220. En una sola pasada por esta red podemos conseguir cientos de casillas de fechas de candidatos. Después de una supresión no máxima con un umbral de superposición de 0,5, las 10 detecciones con mayor puntuación se retuvieron y clasificaron individualmente a través de la red mediante un modelo clasificador de 21 vías. La puntuación de detección final es el producto de la puntuación de localización para un cuadro determinado multiplicada por la puntuación evaluada por el clasificador en el área cuadrada más grande alrededor del cultivo. Estas puntuaciones se evalúan y utilizan para calcular la curva de recuperación exacta.
Primero, analizamos el rendimiento del localizador de forma aislada. Presentamos la cantidad de objetos detectados, según lo definido por el criterio de detección de Pascal, versus la cantidad de cuadros delimitadores generados. En la Figura 1 mostramos los resultados obtenidos entrenando con VOC2012. Además, damos los resultados utilizando el recorte cuadrado del centro máximo de la imagen como entrada y usando dos escalas: la segunda escala del recorte del centro máximo (las ventanas seleccionadas 3×3 son el 60% del tamaño de la imagen)
Como podemos ver, al usar un presupuesto de 10 cuadros delimitadores, podemos localizar el 45,3% de los objetos con el primer modelo y el 45,3% con el Ambos modelos localizan el 48% de los objetos. Esto muestra un mejor rendimiento que otros resultados reportados, como el 42% para el algoritmo de grado de objeto [1]. Además, este gráfico muestra la importancia de ver imágenes en diferentes resoluciones. Aunque nuestro algoritmo obtiene una gran cantidad de objetos utilizando el recorte central máximo, obtenemos mejoras adicionales cuando utilizamos el recorte de imágenes de mayor resolución. Además, clasificamos los cuadros delimitadores generados con un clasificador de 21 vías como se describe anteriormente. La Tabla 1 enumera las precisiones promedio (AP) de VOC 2007. El AP promedio logrado es 0,29, que es comparable al nivel avanzado. Tenga en cuenta que nuestra complejidad en tiempo de ejecución es muy baja: solo utilizamos los 10 cuadros principales. Los ejemplos de curvas de detección y recuperación de precisión total se muestran en la Figura 2 y la Figura 3 respectivamente. Vale la pena señalar que la detección visual se obtiene utilizando sólo el recorte de imagen del cuadrado central más grande, es decir, utilizando la imagen completa. Sin embargo, logramos obtener objetos relativamente pequeños, como el barco en la segunda fila y columna, y la oveja en la tercera fila y columna.
En este trabajo, proponemos un nuevo método para localizar objetos en imágenes que predice múltiples cuadros delimitadores a lo largo del tiempo. Este método utiliza redes neuronales convolucionales profundas como modelo básico de aprendizaje y extracción de características. Formula un costo de posicionamiento de múltiples contenedores capaz de utilizar un número variable de ubicaciones reales.
En el caso de un enfoque de "un cuadro por clase", realice una supresión no máxima en 1000 cuadros, utilizando los mismos criterios que el método DeepMulti-Box de interés en una imagen determinada, y aprenda a predecir estas ubicaciones en imágenes invisibles.
Presentamos resultados en dos puntos de referencia desafiantes, VOC2007 e ILSVRC-2012, en los que el método propuesto es competitivo. Además, el método es capaz de predecir bien dónde detectarán los clasificadores posteriores. Nuestros resultados muestran que el enfoque de deepmultibox es escalable e incluso puede generalizarse entre dos conjuntos de datos, siendo capaz de predecir localizaciones de interés incluso para categorías para las que no fue entrenado. Además, es capaz de capturar múltiples situaciones del mismo tipo de objeto, una característica importante para los algoritmos que buscan comprender mejor las imágenes.
En el futuro, esperamos poder colapsar las rutas de localización y reconocimiento en una sola red, de modo que podamos extraer información de etiqueta de ubicación y clase en un solo paso a través de la red. Incluso en su estado actual, el proceso de dos pasadas (red de localización seguida de red de clasificación) produce entre 5 y 10 evaluaciones de red, cada una a una velocidad de aproximadamente 1 CPU por segundo (máquinas modernas). Es importante destacar que este número no escala linealmente con el número de clases que se van a identificar, lo que hace que el método propuesto sea muy competitivo con los métodos similares a DPM.