Red de conocimiento informático - Problemas con los teléfonos móviles - SSD y yolov1

SSD y yolov1

La serie yolo y ssd se publicaron en el orden cronológico de yolov1, ssd, yolov2, yolov3 y, por supuesto, ahora aparece yolov4. Estas son notas que tomé mientras leía el documento ssd después de leer yolov1, por lo que implica muchas comparaciones con la implementación de yolov1.

Serie de modelos Fast rcnn:

1. Utilice cuadros delimitadores predeterminados,

A diferencia de fastRCNN, no utiliza RPN ni operaciones de agrupación.

p>

Las contribuciones de este artículo:

1. Se introduce un detector de una sola etapa, que es mucho más potente que el algoritmo anterior YOLOv1.

2. Utilice pequeños filtros convolucionales aplicados a diferentes capas de características para predecir el sesgo de BB para la clasificación de BB

3. Se pueden obtener mejores resultados en imágenes de entrada más pequeñas. Resultados de detección (en comparación con Más rápido; -rcnn);

4.

4. Los resultados de las pruebas en múltiples conjuntos de datos (PASCAL, VOC, COCO, ILSVRC) muestran que se pueden obtener valores de mAp más altos;

El conjunto es una red convolucional basada en retroalimentación directa. El modelo SSD eventualmente proporcionará un conjunto de cuadros delimitadores de tamaño fijo y determinará si estos cuadros delimitadores existen en la clasificación. Realice estimaciones de tamaño fijo en los proyectos.

Red troncal

La red troncal se basa en la red de clasificación de alta calidad VGG. El modelo básico sirve como capa frontal de SSD y proporciona clasificación de imágenes de alta calidad para la parte posterior. capa. La llamamos red básica. Aquí se utiliza la red VGG16. Luego agregamos estructuras auxiliares para proporcionar la funcionalidad de detección final.

Modificaciones a VGG16 en la red troncal:

1. Convierta las capas FC6 y FC7 de VGG16 en capas convolucionales, como Conv6 y Conv7 en la Figura 1;

2. Se eliminaron todas las capas Dropout y FC8

3. Se agregó el algoritmo Atrous (algoritmo de agujeros), consulte el enlace aquí.

4. Convierta Pool5 de 2x2-S2 a 3x3-S1

La función de detección final se basa en las siguientes tecnologías clave:

Después de la red básica, Agregue varias capas convolucionales y las capas convolucionales reducirán continuamente el ancho y la altura del mapa de características. Por ejemplo, después de una capa de convolución, se reduce de 8 8 a ​​4 4. Luego, el algoritmo de detección de objetos se aplica en todos estos mapas de características. Como se muestra en la figura anterior, para la capa frontal, es equivalente a detectar 4 cuadros delimitadores con una relación de aspecto fija en cada posición en una escala relativamente pequeña de 8 8, mientras que para la capa posterior, es equivalente a detectar 4 cuadros delimitadores. cuadros a una escala relativamente grande de 4 4 ​​Detecta 4 cuadros delimitadores con una relación de aspecto fija en cada posición de la escala. De esta manera, se logra el propósito de la detección en mapas de características de múltiples escalas.

El conjunto de píxeles correspondientes a todas las posiciones del canal en el gráfico se considera un punto de anclaje, y cada punto de anclaje tiene N cuadros delimitadores. Tenga en cuenta que el número de cuadros delimitadores en cada capa no es necesariamente el mismo. .

Extraemos entidades de una capa de entidades o de un mapa de entidades. La capa de entidades puede ser una capa por encima de la red base o puede ser una capa convolucional agregada después de la red base. Para la capa de entidades m x nxc, utilizando un filtro de núcleo pequeño 3x3xp, luego, para cada píxel de salida, podemos obtener resultados de detección con el número de canal p. Los resultados de la detección incluyen la confianza de que el elemento de clasificación ocurre en cada posición y cuatro (cx,cy,w,h) que representan la posición y el desplazamiento. Dado que el número de cuadros delimitadores se establece en 4, el resultado es 4 (|categoría|+4).

Tenga en cuenta que aquí se utilizan predictores convolucionales, no capas completamente conectadas (yolov1 usa capas completamente conectadas).

El concepto de cuadros delimitadores aquí es similar a los cuadros de anclaje en Faster R-CNN, pero aquí diferentes capas de características pueden organizar diferentes formas y números de cuadros delimitadores, lo que discretiza efectivamente las posibles salidas del espacio del cuadro (imagínese Si la longitud del cuadro delimitador de cada mapa de características es aproximadamente la misma, entonces la única diferencia posible es el tamaño. Necesitamos cuadros de diferentes tamaños y formas para que se ajusten a las coordenadas del objeto real, por lo que cuanto más cambie el cuadro, mejor. /p>

La principal diferencia entre entrenar un SSD y entrenar un detector típico usando propuestas de región es que la información de verdad del terreno debe asignarse a una salida específica en un conjunto fijo de salidas del detector.

Toma. Los cuadros de coordenadas de elementos reales como verdad del terreno, habrá 8732 cuadros de prioridad (es decir, detecciones) para las imágenes que se han detectado en diferentes capas del modelo SSD. Entre estos resultados de detección, es necesario marcar cuáles son muestras positivas. que son muestras negativas. Estos procesos de etiquetado se completan antes de la capacitación; también se debe preparar una estrategia para extraer casos negativos difíciles en el fondo de capacitación. p > Al etiquetar el cuadro real GT, debe elegir qué cuadro de predicción corresponde al cuadro real. Aquí, todos los cuadros predeterminados seleccionan superposición jaccard> 0.5, para que la diferencia entre muestras positivas y negativas no sea grande. solo seleccionará el cuadro de predicción con la mayor superposición de jaccard.

Comprensión personal, el cuadro de predicción aquí se refiere al cuadro de predicción de prioridad sin cambio de compensación, también conocido como cuadro anterior (cuadro de prioridad Después del GT). es fijo, el tamaño de la imagen de entrada es fijo y se determinan los cuadros anteriores, se obtendrán todos los cuadros anteriores con superposición jaccard> 0.5. Luego, durante el aprendizaje, estos ejemplos frontales deben compensarse y la relación de aspecto se basa en la verdad del terreno. Aprendizaje de escala. Mientras que otros ejemplos negativos no necesitan aprender el parámetro de posición.

Durante el proceso de entrenamiento, primero es necesario determinar qué fotograma principal es el mismo en la imagen de entrenamiento, si es la verdad fundamental (real). objetivo) coincide, el cuadro delimitador correspondiente al cuadro anterior coincidente será responsable de predecirlo.

En Yolov1, la unidad donde se encuentra el centro de verdad fundamental es responsable de predecir el límite con el pagaré más grande. en el cuadro unit. Pero es completamente diferente en SSD. En SSD, hay dos principios fundamentales para hacer coincidir el marco anterior y la verdad fundamental.

Primero, encuentre la verdad fundamental en la imagen. el máximo El cuadro delimitador del pagaré y lo combina con el cuadro delimitador, asegurando así que cada verdad fundamental coincida con un determinado cuadro delimitador. Por lo general, el cuadro anterior que coincide con la verdad fundamental es una muestra positiva (en realidad debería serlo a priori). El cuadro de predicción correspondiente al cuadro se llama así solo debido a la correspondencia uno a uno. Por el contrario, si el cuadro anterior no coincide con ninguna verdad fundamental, entonces este cuadro anterior solo puede coincidir con el fondo y es un. muestra negativa. Hay muy pocas verdades fundamentales en la imagen, pero hay muchos cuadros a priori, por lo que si la coincidencia se basa solo en el primer principio, muchos cuadros a priori se convertirán en muestras negativas y las muestras positivas y negativas estarán extremadamente desequilibradas, por lo que el segundo principio es necesario.

El segundo principio es: para los fotogramas anteriores restantes no coincidentes, si el pagaré de la verdad fundamental es mayor que un cierto umbral (normalmente 0,5), entonces el fotograma anterior también coincidirá con la verdad fundamental. Esto significa que es posible que una verdad fundamental coincida con múltiples fotogramas anteriores, lo cual no supone ningún problema. Pero lo contrario no es posible, porque el marco a priori solo puede coincidir con una verdad fundamental. Si hay varias verdades fundamentales que coinciden con un determinado marco anterior y el pagaré es mayor que el umbral, entonces el marco anterior solo coincidirá con el pagaré. el más grande coincide. El segundo principio debe implementarse después del primero. Pensando detenidamente en esta situación, si el pagaré máximo correspondiente a una determinada verdad fundamental es menor que el umbral, y el pagaré del marco anterior coincidente con otra verdad fundamental es mayor que el umbral, entonces, ¿quién debe hacer coincidir el marco anterior? debería ser lo primero, y El primer paso es garantizar que alguna verdad fundamental debe tener un marco a priori coincidente.

La función de pérdida es el promedio ponderado de la pérdida de regresión y la pérdida de confianza.

La siguiente es una introducción a la función de pérdida de regresión de posición, que parece deslumbrante.

N representa el cuadro coincidente, que debe entenderse como el cuadro de muestra positiva.

Primero, g es el cuadro de verdad fundamental del indicador, d es el cuadro anterior del indicador y l es el resultado previsto del indicador. g ^ Esta es la función de pérdida que se puede calcular en función de los indicadores obtenidos por g y d que coinciden con los resultados previstos. Por ejemplo, g^cx Esta es la métrica de desplazamiento horizontal normalizada, debido a que el centro del cuadro anterior no coincidirá exactamente con el centro de la verdad del terreno, por lo que se calcula el desplazamiento real. Este valor es lo que queremos que aprenda el modelo. Del mismo modo, el ancho del cuadro anterior no coincidirá exactamente con el ancho de la verdad fundamental, por lo que usamos una función logarítmica para calcular g^w, lo que también significa que el ancho que queremos aprender también se transformará de esta manera.

La función de pérdida smoothL1 es la siguiente:

La función de pérdida de confianza utilizada para la clasificación es la siguiente: las muestras positivas son la función de pérdida softmax y las muestras negativas son la confianza de fondo. pérdida.

En algunos artículos, para obtener resultados para imágenes de diferentes escalas, las imágenes ahora se escalan en diferentes escalas y luego los resultados de cada escala se combinan al final. El enfoque adoptado en este artículo es extraer mapas de características de diferentes capas de la misma red para obtener los mismos resultados que el escalado descrito anteriormente.

Creo que esta IDEA es realmente genial, súper genial. Esto no sólo hace posible divertirse con los parámetros, sino que también es muy conveniente. Los estudios han demostrado que el uso de mapas de características de la capa anterior puede optimizar la calidad de la segmentación semántica porque la capa anterior puede obtener información de calidad más detallada sobre la entrada.

Hay dos mapas de características en la figura. Sabemos que diferentes capas de la red tienen diferentes dominios de percepción. En SSD, no es necesario que el tamaño del cuadro delimitador coincida con el campo receptivo de la capa correspondiente. Diseñamos las reglas de tamaño del cuadro delimitador para que cada mapa de características pueda calcular su propio tamaño del cuadro delimitador.

Si utilizamos m mapas de características, donde 1 es la capa inferior y m es la capa superior, entonces el tamaño predeterminado del cuadro delimitador se calculará de acuerdo con la siguiente fórmula

La proporción horizontal y vertical del cuadro delimitador es

¿Qué es la minería negativa dura?

1 Para la detección de objetos, calcularemos el tamaño del cuadro delimitador de antemano. 1 Para la detección de objetos, marcaremos la verdad fundamental de antemano y luego el algoritmo generará una serie de propuestas. Algunas de estas propuestas se superponen con los marcadores de verdad fundamental y otras no se superponen. Entonces el grado de superposición (IOU) excede. un cierto umbral (generalmente 0,5). Las siguientes se consideran muestras positivas y las siguientes son muestras negativas.

2 y luego lanzarlo a la red para entrenarlo. Sin embargo, esto puede causar un problema, es decir, el número de muestras positivas es mucho menor que el número de muestras negativas, por lo que el efecto del clasificador entrenado siempre es limitado y aparecerá una gran cantidad de falsos positivos, entre los cuales el Los falsos positivos con puntuaciones más altas son los llamados negativos duros, porque los detalles son todos diferentes. Ahora que se han extraído estos negativos duros, tírelos a la red para obtener la función de pérdida de esta categoría. Utilice la función de pérdida de estas muestras negativas duras como función de pérdida de fondo, fortaleciendo así la capacidad del clasificador para identificar falsos positivos.

La mayoría de los cuadros delimitadores no tienen coincidencias, lo que provoca un grave desequilibrio entre las muestras negativas y positivas. En lugar de utilizar todas las muestras negativas, SSD clasifica los cuadros delimitadores de cada muestra negativa en función de la pérdida de confianza y luego selecciona el lote más grande como muestras negativas. De esta manera, la proporción de muestras negativas y positivas se estabiliza en 3:1. Los hechos han demostrado que dicha optimización es más rápida y el efecto de entrenamiento es más estable.

Los datos de la estrategia de expansión de datos provienen de una de tres fuentes.

La red base es VGG16. El modelo SSD300 se muestra en el diagrama estructural de arriba. La nueva capa se inicializa utilizando el método xavier (/p/22028079, /p/22044472). Los resultados experimentales muestran que SSD tiene capacidades de localización más fuertes en comparación con RCNN porque la forma del elemento se puede aprender directamente en el modelo de red neuronal. Sin embargo, SSD es propenso a errores de clasificación, especialmente en categorías similares (como animales). SSD es sensible al tamaño del cuadro delimitador, es decir, los objetos pequeños no funcionan tan bien como los objetos grandes. Combinado con el modelo, esto se debe a que la predicción de objetos pequeños utiliza las primeras capas de la red y la cantidad de información en estas capas no es grande.

A pesar de los problemas anteriores, SSD funciona bien en objetos grandes, mientras que Two-thousand funciona sólidamente en objetos con diferentes relaciones de aspecto.

El siguiente gráfico muestra qué tecnologías de SSD mejoran el rendimiento.

Contribución a la mejora del rendimiento:

Cómo SSD mejora la precisión de detección de objetos pequeños: a través de la expansión de datos

SSD utiliza VGG16 (pero se elimina la aceleración de la capa fc ), mientras que YOLO tiene convencionalmente 24 capas convolucionales.

El tamaño de entrada de SSD es más pequeño (300 300), mientras que el tamaño de entrada de YOLO es 448 448. Aunque la estructura de la red es similar, la brecha computacional sigue siendo bastante obvia y una velocidad más rápida es normal.

SSD se basa completamente en la convolución, y YOLO usa GPU cuando está completamente conectado, por lo que SSD debe ser más rápido.

En SSD, primero cada elemento real Primero selecciona un cuadro delimitador responsable de él Antes. hay un dedo de entrenamiento, porque se determina la posición del cuadro delimitador de prioridad, el que tiene el pagaré más grande se selecciona como muestra positiva. Para equilibrar la proporción de muestras positivas y negativas, los cuadros delimitadores de prioridad con pagarés superiores a 0,5 se establecen como muestras positivas. Esto hace que el modelo sea más estable.

Idea del algoritmo SSD y detalles de la estructura:/link?url=dG930Wgj8gRWERgRMXzzoM8EKfvzNpMH9s51FFnU7YBlKAdKVZz1H44RGeIBSO8hJqdai12XF6E5J1_qxJuzgq&wd=& eqid=8d70dd720001f291000000 45dc1379d

Detalles del SSD /p/57440670