Análisis de la tecnología de detección de objetivos pequeños.

Análisis de la tecnología de detección de objetivos pequeños.

El sistema de detección y seguimiento de objetivos pequeños se divide en cuatro módulos:

· Módulo de hardware

  El módulo se basa en el bus PCI estándar y está equipado con un chip programable a gran escala (DSP, FPGA), que tiene capacidades informáticas y de procesamiento extremadamente fuertes.

· Módulo de programa DSP

  Su función realiza principalmente la detección y el seguimiento de objetivos pequeños bajo un fondo complejo. Teniendo en cuenta los requisitos en tiempo real del sistema, se adopta la tecnología de acumulación de energía infrarroja para la detección de objetivos pequeños en entornos complejos. Primero, se mejora la imagen infrarroja; luego, el objetivo pequeño se detecta de manera aproximada; finalmente, el objetivo pequeño se extrae en la secuencia de video. Al mismo tiempo, la tecnología de predicción se utiliza para estimar la posible ubicación y el área de existencia del objetivo, a fin de lograr un seguimiento (o memoria) en tiempo real y preciso del objetivo. El sistema funciona de acuerdo con los cuatro estados de búsqueda, captura, seguimiento y seguimiento de memoria y su conversión para lograr la detección y el seguimiento en tiempo real de objetivos pequeños.

· Módulo controlador

  Su función principal es realizar comunicación de datos e interacción de información entre el módulo de hardware y el programa de aplicación de capa superior. El sistema adopta la lectura / escritura de ciclo único de PCI 9054 Target; para cumplir con los requisitos de transmisión y procesamiento en tiempo real de 25 cuadros por segundo de transmisión de datos de imagen, se adopta la transmisión de datos PCI 9054 Scatter / Gather DMA. En la interacción de información de todo el sistema, se adopta un protocolo de protocolo de enlace único, es decir, un protocolo de solicitud-respuesta.

 · Módulo de aplicación superior

La función principal de este módulo es descargar el programa de seguimiento DSP al módulo de hardware, iniciar / detener el DSP, mostrar el video de la escena en tiempo real, almacenar la secuencia del objetivo móvil en tiempo real, y analizar y mostrar las características básicas de la secuencia del objetivo móvil en tiempo real.

 

 

 La detección de objetos (detección de objetos) consiste en encontrar con precisión la ubicación de un objeto en una imagen determinada y marcar la categoría del objeto. Por lo tanto, el problema a resolver mediante la detección de objetivos es todo el proceso de dónde y qué es el objeto. Sin embargo, en las fotos reales, el tamaño del objeto varía mucho. El ángulo, la postura y la posición del objeto son diferentes. Puede haber superposición entre los objetos, lo que dificulta mucho la detección del objetivo. Grande

La detección de objetivos ha progresado mucho en los últimos años. La razón principal es que la aplicación de redes neuronales convolucionales en las tareas de detección de objetivos ha reemplazado el método de extracción de características original basado en reglas manuales.

 

 

 

 

 

  • Algoritmo tradicional de detección de objetivos:
    Cascade + HOG / DPM + Haar / SVM y muchas mejoras y optimizaciones de los métodos anteriores.
    En la detección de objetivos tradicional, el modelo de piezas deformables a escala múltiple DPM (Modelo de piezas deformables) funciona mejor y ha ganado continuamente el campeón de detección VOC (Visual Object Class) 2007 a 2009. DPM trata los objetos como componentes múltiples (como la nariz, la boca, etc. de los rostros humanos) y describe los objetos con la relación entre los componentes. Esta característica es muy consistente con las características corporales no rígidas de muchos objetos en la naturaleza. DPM puede verse como una extensión de HOG + SVM, que hereda las ventajas de ambos, y ha logrado buenos resultados en tareas como la detección de rostros y la detección de peatones, pero DPM es relativamente complicado y la velocidad de detección también es más lenta, lo que también Han surgido muchos métodos mejorados.
    Sin embargo, existen dos problemas principales con la detección de objetivos tradicional: uno es que la estrategia de selección de área basada en ventanas deslizantes no está dirigida, la complejidad del tiempo es alta y las ventanas son redundantes; el segundo es que las características diseñadas manualmente no son muy robustas a los cambios en la diversidad Sexo
  • Algoritmo de detección de objetivos basado en aprendizaje profundo:

o Región / marco candidato (Propuesta de región) + algoritmo de clasificación de aprendizaje profundo:
extrayendo regiones candidatas y realizando un esquema de clasificación basado en el método de aprendizaje profundo en la región correspondiente, como R-CNN (Búsqueda selectiva + CNN + SVM) , SPP-net (ROI Pooling), Fast R-CNN (Búsqueda selectiva + CNN + ROI), R-CNN más rápido (RPN + CNN + ROI), Máscara R-CNN (Rama de predicción de máscara + RPN + CNN + ROI), etc. .

o Algoritmos de regresión basados ​​en aprendizaje profundo:
YOLO, SSD, YOLOv2, YOLOv3 y otros algoritmos.

En la actualidad, los métodos de aprendizaje profundo en el campo de la detección de objetivos se dividen principalmente en dos categorías: algoritmos de detección de objetivos de dos etapas; algoritmos de detección de objetivos de una etapa. El primero es que el algoritmo primero genera una serie de cuadros candidatos como muestras, y luego clasifica las muestras a través de la red neuronal convolucional; el segundo no necesita generar cuadros candidatos, y transforma directamente el problema del posicionamiento del cuadro objetivo en problemas de regresión. Precisamente debido a la diferencia entre los dos métodos, el rendimiento también es diferente, el primero es superior en precisión de detección y precisión de posicionamiento, y el segundo es superior en velocidad de algoritmo.

Detección de objetivos pequeños

Hay dos formas de definir un objetivo pequeño: una es el tamaño relativo. Si la longitud y el ancho del tamaño del objetivo es 0.1 del tamaño de la imagen original, puede considerarse como un objetivo pequeño. La otra es la definición del tamaño absoluto, es decir, el tamaño es menor que 32 * 32. Los objetivos de píxeles pueden considerarse objetivos pequeños.

La detección de objetivos pequeños siempre ha sido un problema en los modelos de redes neuronales convolucionales de aprendizaje profundo. La mayoría de los marcos de detección de objetivos iniciales están dirigidos a objetivos comunes, como los métodos clásicos de una sola etapa yolo y ssd, el método de dos etapas más rápido-rcnn, etc. Estos métodos están diseñados principalmente para conjuntos de datos de objetivos comunes. Para objetivos pequeños en la imagen, el efecto de detección no es ideal.

 

 

 Los métodos propuestos para resolver el pequeño problema objetivo son:

  • El zoom de la imagen. También es la dirección más trivial: hacer zoom en la imagen antes de la detección. Sin embargo, debido a que las imágenes grandes se vuelven demasiado grandes para caber en la GPU para el entrenamiento, las actualizaciones simples no son efectivas. Ao et al. [2017] primero disminuyeron las imágenes y luego utilizaron el aprendizaje por refuerzo para entrenar modelos basados ​​en la atención para buscar dinámicamente regiones de interés en las imágenes. Luego, el estudio de alta resolución del área seleccionada se puede utilizar para predecir objetivos más pequeños. Esto evita la necesidad de igual atención y análisis de cada píxel en la imagen, ahorrando algunos costos computacionales. Algunos artículos [Dai et al., 2016b, 2017, Singh y Davis, 2018] usan pirámides de imágenes cuando entrenan en el contexto de la detección de objetivos, y [Ren et al., 2017] los usan durante las pruebas.
  • Red superficial Los objetos pequeños tienen más probabilidades de ser predichos por detectores con campos más pequeños. Las redes más profundas tienen dominios de aceptación más grandes, y es fácil perder información sobre objetos más pequeños en capas más gruesas. Sommer et al. [2017b] propusieron una red muy poco profunda con solo cuatro capas convolucionales y tres capas completamente conectadas para detectar objetivos en imágenes aéreas. Este tipo de detector es muy útil cuando el tipo de instancia deseado es pequeño. Sin embargo, si las instancias esperadas tienen tamaños diferentes, la información de contexto es mejor. Aproveche el contexto que rodea las instancias de objetos pequeños. Gidaris y Komodakis [2015], Zhu et al. [2015b] usan el contexto para mejorar el rendimiento, y Chen et al. [2016a] usan específicamente el contexto para mejorar el rendimiento de los objetos pequeños. Extendieron R-CNN con parches contextuales, en paralelo con los parches sugeridos generados por la red regional de sugerencias. Zagoruyko et al. [2016] combinaron su método con la propuesta de objeto de máscara de profundidad para hacer que la información fluya a través de múltiples caminos.
  • Super resolución También hay mejoras de imagen para objetivos pequeños. El más típico es el uso de generar redes adversas para aumentar selectivamente la resolución de objetivos pequeños.
  • Su generador aprende a mejorar la pobre representación de los objetos pequeños en objetos de superresolución, que son muy similares a los objetos grandes reales, lo suficiente como para engañar a los discriminadores competidores.

En los últimos dos años, se ha propuesto el método de usar mapas de características de múltiples capas (pirámide de características, idea RNN, predicción capa por capa), que ha mejorado significativamente el efecto de la detección de objetivos pequeños.

Los algoritmos principales en esta etapa son:
Pirámide de imagen: se propuso anteriormente para muestrear múltiples pirámides de imágenes a partir de imágenes de entrenamiento. A través del muestreo ascendente, se pueden mejorar las características específicas de los objetivos pequeños y, en teoría, se pueden optimizar los efectos de posicionamiento y reconocimiento de la detección de objetivos pequeños. Sin embargo, la capacitación de modelos de redes neuronales convolucionales basadas en pirámides de imágenes tiene requisitos muy altos en potencia y memoria de computación. El desarrollo de hardware no ha sido competente hasta ahora. Por lo tanto, este método rara vez se usa en aplicaciones prácticas.

Predicción de capa por capa: este método hace una predicción para la salida de cada capa del mapa de características de la red neuronal convolucional, y finalmente obtiene el resultado después de una consideración exhaustiva. Del mismo modo, este método también requiere un rendimiento de hardware extremadamente alto.

Pirámide de características: consulte la información de características del mapa de características de múltiples escalas, teniendo en cuenta tanto las características semánticas fuertes como las características de ubicación. La ventaja de este método es que los mapas de características multiescala son módulos de transición inherentes a las redes neuronales convolucionales.Los mapas de características apilados multiescala tienen poco aumento en la complejidad del algoritmo.

Idea RNN: consulte el mecanismo de umbral, la memoria a largo y corto plazo en el algoritmo RNN y registre información de características de varios niveles al mismo tiempo (Nota: hay una diferencia esencial con respecto a la pirámide de características). Pero el defecto inherente de RNN es que la velocidad de entrenamiento es lenta (algunas operaciones no pueden ser matriciales).

El llamado objetivo pequeño depende del objetivo pequeño absoluto (píxel) y del objetivo relativamente pequeño (en relación con la longitud y el ancho de la imagen original). Los objetivos grandes y los objetivos pequeños solo están relacionados con el campo receptivo. Cnn en sí mismo puede detectar objetos de cualquier escala. ssd no es muy adecuado para la detección de objetivos pequeños, pero existen problemas con la velocidad y robustez de R-FCN.

Hay muchos tipos de objetivos pequeños, y un solo fondo es mejor. Hay una pequeña detección de rostros utilizando la red totalmente convolucional (FCN) + ResNet. Este documento utiliza información periférica pequeña, como cabello y hombros, para detectar objetivos pequeños.

En primer lugar, los píxeles de objetivo pequeños con pocas características no son obvios, por lo que, en comparación con objetivos grandes, la tasa de detección de objetivos pequeños es baja, lo que es inevitable con cualquier algoritmo. ¿Qué pasa con la diferencia en la detección de objetivos pequeños entre diferentes algoritmos? Los algoritmos de múltiples escalas de una etapa, como SSD y YOLO, requieren una resolución pequeña para la detección de objetivos pequeños. SSD no reutiliza las características subyacentes de alta resolución, y estas capas son importantes para detectar objetivos pequeños, por lo que se realizan principalmente en la capa de características inferior Detección, como conv4_3 en SSD, pero la información semántica de la capa de entidades inferior no es lo suficientemente rica, lo cual es una contradicción, pero si la capa de convolución es lo suficientemente profunda, el impacto no es tan grande. Creo que el factor más importante se debe a la mala configuración de la escala. El anclaje predeterminado en SSD es 0.1 ~ 0.2. El tamaño mínimo de detección para una imagen de 720p es 72 píxeles, que todavía es demasiado grande. De hecho, el código fuente del SSD permite que una capa de entidades sea una ventana deslizante de múltiples escalas. Inicializar cada elemento en el parámetro min_sizes en una lista puede generar anclas de diferentes escalas en la capa de entidades correspondiente. Si diseña con cuidado, Básicamente, puede cubrir un objetivo lo suficientemente pequeño, pero se estima que la cantidad de anclas aumentará mucho en este momento, y la velocidad también disminuirá.

Rcnn, yolo y ssd más rápidos no son buenos para resultados de detección de objetivos pequeños, porque el último mapa de características de la estructura de red convolucional es demasiado pequeño, por ejemplo, 32 * 32 objetivos se convierten en 2 * 2 después de vgg, lo que resulta en la detección posterior y La devolución no puede cumplir los requisitos. Cuanto más profunda es la red convolucional, más fuerte es la información semántica y más baja es la capa, más se describe la información de apariencia local, y creo que es significativo diseñar tantas capas convolucionales de VGG16. Si el efecto frontal es bueno, VGG 's Los investigadores deberían pensar en reducir el número de capas. Creo que se puede considerar extraer múltiples capas de características para que la capacidad de expresión sea más fuerte. Por ejemplo, la imagen de muestra del gato y el perro, la verdad básica del gato más pequeño solo aparece en la capa inferior, la verdad básica de la capa superior no tiene la verdad básica del gato y la verdad básica coincidente con el perro objeto más grande está en el mapa de características de alto nivel), la información de otras capas simplemente se cose ( Entonces, la información semántica de detección de objetos pequeños, la información de contexto es peor).

SSD es un mapa de características de múltiples escalas para extracción paopasal, y SSD es más estable a objetivos pequeños que Yolo. yolo obtiene directamente los resultados de la predicción a través de características globales. Depende completamente de la acumulación de datos. Para objetivos pequeños, creo que deberíamos considerar reducir la agrupación.

La capa responsable de detectar objetivos pequeños en el SSD es conv4_3 (38 * 38), y la escala correspondiente es 0.2 (se puede configurar manualmente). Esto corresponde a la escala que SSD puede detectar es aproximadamente 0.2. En este caso, si el objeto es demasiado pequeño, incluso en la etapa de entrenamiento, GT no puede encontrar el cuadro predeterminado correspondiente para que coincida, ¿cómo puede ser mejor el efecto? Si no le importa el efecto de detección general, puede reducir la escala para ver si el efecto de detección para objetivos pequeños ha mejorado. Además, el uso de la detección multiescala también puede mejorar el efecto de detección de objetos pequeños.

El VGG16 utilizado por SSD como extracción de características, la resolución del mapa de características conv4_3 se ha reducido en 8 veces, y la resolución de conv5_3 se ha reducido en 16 veces. Por ejemplo, un objeto de tamaño 32 * 32, el mapa de características de conv5_3 en vgg16 corresponde a solo 2 * 2 , La información de ubicación tiene una mayor pérdida. Hay dos formas de resolver este problema: 1. Use características de diferentes capas, como hyperNet, MultiPath. 2. La resolución del mapa de características no se reducirá demasiado cuando no se reduzca la sensación. Por ejemplo, usando el algoritmo Hole utilizado en DeepLab, el cambio de resolución es pequeño mientras se garantiza el campo de sensación.

La razón principal de su pobre detección de objetivos pequeños es que SSD / YOLO escalaron la imagen original. Debido al campo receptivo, es difícil detectar objetivos de "tamaño relativo pequeño". Si la serie RCNN no escala la imagen original, pero si el "tamaño absoluto es pequeño", no hay forma, porque a cierta profundidad del mapa de funciones, el objetivo pequeño puede haber perdido la respuesta. 1. Los objetivos pequeños tienden a depender más de las características superficiales, porque las características superficiales tienen una resolución más alta, pero una pobre diferenciación semántica. 2. La detección y clasificación de SSD se realizan juntas, y algunos resultados que se detectan pero la clasificación es confusa y la puntuación no es alta, se filtran. Y rpn no lo hará, los primeros 200 candidatos continúan clasificándose, habrá un resultado. 3. Para la velocidad, originalmente era una red totalmente convolucional, pero también reparó el tamaño de entrada, lo que afectó en gran medida al objetivo pequeño de la imagen general.

Algunas mejores vistas

La resolución de las características de CNN es pobre, que no es mejor que otras características de bajo nivel (poco profundas). La evidencia es que en la detección de peatones, algunas características hechas a mano siguen siendo buenas; más rápido -El problema de rcnn y SSD en sí, el Faster-rnn original arregló el lado más corto de la entrada en RPN a 600> SSD512> SSD300, la razón por la cual SSD usa 300 y 512 es para mejorar la velocidad de detección, por lo que SSD es tan rápido; al mismo tiempo; Con el fin de garantizar la precisión, se agregan el aumento de datos y multiescala al SSD (especialmente tenga en cuenta este aumento, aumento de datos).

Yolo y SSD son realmente débiles para objetos pequeños, y algunos algoritmos de imagen comunes son mucho mejores para detectar objetos pequeños, pero no son muy robustos. Puede probar R-FCN, probé algunos, parece estar bien para objetos pequeños, pero la velocidad es más lenta. Parece 0.18s debajo de 970. He hecho experimentos de R-FCN en VGG16 antes, usando la misma propuesta res101 (solo me concentro en el efecto de detección, así que uso el mismo), el efecto no es tan bueno como el rápido rcnn. Del mismo modo, no es tan bueno como google-v1 (que también es una convolución completa). Supongo que es el problema de sobreajuste de la red superficial (porque el uso de la propuesta de VGG para hacer el efecto es muy malo).

SSD es un detector basado en una red totalmente convolucional, que utiliza diferentes capas para detectar objetos de diferentes tamaños. Hay una contradicción en esto, el mapa de características frontal es grande, pero la semántica no es suficiente, y la semántica posterior es suficiente, pero después de demasiada agrupación, el mapa de características es demasiado pequeño. Para detectar objetos pequeños, necesita un mapa de características lo suficientemente grande como para proporcionar características más elaboradas y un muestreo más denso, pero también suficiente significado semántico para distinguirlo del fondo. Cuando asistí a la conferencia, le pregunté al autor del SSD: si el mapa de características final se amplía y se conecta al frente, ¿mejorará el rendimiento? El autor dijo que vale la pena intentarlo.

SSD es un RPN de clase con muchas campanas y silbatos. Cada píxel en un mapa de características corresponde a varios anclajes. Esta red entrena a los anclajes para impulsar el entrenamiento de características. Este es el prefacio. Como un objeto pequeño, su ancla correspondiente es relativamente pequeña (un ancla con superposición gt> 0.5), es decir, es difícil entrenar completamente los píxeles en el mapa de características correspondiente. Los lectores pueden compensar cada gran ROI que puede cubrir muchos anclajes, luego estos anclajes tienen la oportunidad de ser entrenados. Sin embargo, un objeto pequeño no puede cubrir muchos anclajes. ¿Cuál es el problema de no estar completamente capacitado? Durante la prueba, el resultado de la predicción de este píxel puede ser desordenado, lo que interferirá en gran medida con el resultado normal. La razón por la cual el aumento de datos SSD puede aumentar tanto es porque a través del recorte aleatorio, cada ancla está completamente entrenada (es decir, un objeto pequeño recortado, se convierte en un objeto grande en la nueva imagen) solo se puede decir El resultado de esto sin región propisal naturalmente no es bueno para objetos pequeños. Solo pirateando hacks puedes compararlo lentamente.

Intenté la primera convolución del SSD como una red residual profunda, y la detección de objetos pequeños no es mala, mucho mejor que YOLO. Además, en el papel SSD original, el tamaño básico de los objetos multinivel es de 0.1 a 0.8. De hecho, la relación de 0.1 todavía es muy grande. Por ejemplo, la entrada de 1024 * 1024 es de 0.1 a 102, que no es pequeña. Puede ajustar el nivel según sus necesidades. Utilizo 1/64 ~ 1, que es el tamaño de la cuadrícula de diferentes niveles. Por supuesto, después de cambiar el nivel de lineal a exponencial, cada deformación por encima del tamaño básico también debe ajustarse (principalmente para hacerse más grande), de lo contrario puede no ser posible cubrir algunos objetos de ciertos tamaños ubicados en el medio de las dos rejillas. El lugar donde YOLO compara el pozo es que la penúltima capa está completamente conectada y la rejilla posterior 7 * 7 no se puede expandir demasiado, de lo contrario la conexión frontal completa explotará. La cuadrícula es grande, y la misma cuadrícula puede incluir múltiples objetos pequeños, lo que dificulta la detección. El papel de la conexión completa de YOLO es integrar la información global. Para eliminar la conexión completa, debe aumentar el campo receptivo del último punto, por lo que la profundidad residual es muy adecuada. Cuando se trata de residuos de profundidad, hablemos de otro punto. En otro artículo R-FCN: Detección de objetos a través de redes totalmente convolucionales basadas en la región por el autor del error residual de profundidad Kaiming Dashen, se utiliza la agrupación espacial. Se encuentra que la profundidad residual es una estructura natural con efecto de agrupación espacial. Para agregar, la estructura CNN frente al SSD debe ser completamente simétrica, especialmente cuando se combina, de modo que el centro del campo de percepción en el último punto de salida coincida con el centro de cada cuadrícula. Si es asimétrico, se enredará cuando la función se extraiga frente a CNN, lo que dará como resultado una gran cantidad de objetos pequeños que no son fáciles de aprender. Pero YOLO finalmente tenía una conexión completa, lo cual estaba bien, y el problema no era grande. En la última oración, la profundidad residual es su propia estructura de agrupación espacial. ¿Cómo entiendes esto? La unidad más pequeña en la profundidad residual es una de las dos barreras de convolución en un lado. Suponiendo que la función es solo traducir la imagen y el otro está directamente conectado, entonces la unión final es una combinación espacialmente relacionada.

 

Supongo que te gusta

Origin www.cnblogs.com/wujianming-110117/p/12729934.html
Recomendado
Clasificación