Conceptos básicos de Yolov5

1. Introducción

En comparación con YOLOv4, YOLOv5 no ha mejorado mucho en principio y método, pero tiene una mejora relativamente grande en la velocidad y el tamaño del modelo en comparación con yolov4. También se puede considerar que sacrifica el tamaño del modelo a cambio de un aumento en la precisión. y velocidad. . A continuación, analice la estructura de la red y el contenido central de yolov5.

2 Estructura de la red

Hay 4 versiones de yolov5, como son yolov5x, yolov5s, yolov5m, yolov5l, estos cuatro modelos, este artículo analiza brevemente el modelo yolov5s. Entre los cuatro modelos, yolov5s tiene la profundidad más pequeña y el ancho de mapa de características más pequeño . Sin embargo, su arquitectura general es la misma, excepto que se usan diferentes profundidades y anchos en cada submódulo , correspondientes a los parámetros depth_multiple y width_multiple en el archivo yaml .
El diagrama de estructura de red de yolov5 es el siguiente:
inserte la descripción de la imagen aquí
La estructura de red de yolov5 consta principalmente de 3 partes:

  • columna vertebral: Nuevo CSP-Darknet53
  • Cuello: SPPF, nuevo CSP-PAN
  • Cabeza: yolov3 Cabeza

De hecho, YOLOv5 no ha cambiado mucho en la parte de Backbone , solo un pequeño cambio después de la v6.0, reemplazando el módulo Focus de la primera capa con una capa convolucional de 6×6. De hecho, el efecto es el mismo, pero para algunos dispositivos GPU y algoritmos de optimización actuales, el efecto de la capa convolucional 6x6 es mejor. La parte
del cuello ha cambiado bastante. El módulo SPP original ha sido reemplazado por un módulo SPPF. Las funciones de los dos son las mismas, pero la eficiencia de SPPF es mayor. La estructura del SPP se muestra a continuación: pasar la entrada a través de capas de MaxPool de diferentes tamaños en paralelo y luego realizar Concat puede resolver el problema objetivo de escala múltiple hasta cierto punto.
inserte la descripción de la imagen aquí

Sin embargo, la estructura de SPPF es pasar la entrada a través de múltiples capas de MaxPool de 5×5 en serie (el resultado de serializar dos capas de MaxPool de 5×5 es el mismo que el resultado del cálculo de una capa de MaxPool de 9×9) y serializar tres Una capa MaxPool de 5×5 es lo mismo que una de 13×13.
inserte la descripción de la imagen aquí
Por lo tanto, los resultados de cálculo de SPP y SPPF son los mismos, pero la velocidad de cálculo de SPPF es casi dos veces más rápida que la de SPP. Porque la cantidad de cálculo de tres capas MaxPool de 5×5 es significativamente menor que la de las capas de 5×5, 9×9 y 13×13. El segundo cambio introduce New CSP-PAN, que consiste en agregar CSP a la estructura PAN. No hay cambios en la sección de cabecera .
El siguiente es un gráfico de prueba de rendimiento del algoritmo yolov5:
inserte la descripción de la imagen aquí

YOLOv5s tiene la red más pequeña, la velocidad más rápida y la precisión AP más baja. Si la detección se basa principalmente en objetivos grandes y la búsqueda de velocidad, es una buena opción. Las otras tres redes, sobre la base de YOLOv5, continúan profundizando y ampliando la red, y la precisión de AP también se mejora continuamente, pero el consumo de velocidad también aumenta.

3 conocimientos básicos básicos

3.1 Aumento de datos de mosaico

El mosaico utilizado en YOLOv5 se refiere al método de mejora de datos CutMix propuesto a fines de 2019, pero CutMix solo usa dos imágenes para empalmar, mientras que la mejora de datos Mosaic usa 4 imágenes, ampliadas aleatoriamente , recortadas aleatoriamente y dispuestas aleatoriamente . para la detección de pequeños objetivos.
inserte la descripción de la imagen aquí
El método de mejora de datos Mosaic tiene varias ventajas:

  • Conjunto de datos enriquecido: use aleatoriamente 4 imágenes, escálelas aleatoriamente y luego distribúyalas aleatoriamente para empalmar, lo que enriquece el conjunto de datos de detección, especialmente la escala aleatoria agrega objetivos pequeños, lo que hace que la red sea más sólida.
  • Reducir GPU: algunas personas pueden decir que también se pueden realizar escalas aleatorias y mejoras de datos ordinarias, pero el autor considera que muchas personas pueden tener solo una GPU, por lo que cuando Mosaic mejora el entrenamiento, los datos de 4 imágenes se pueden calcular directamente, lo que hace que la Tamaño de mini lote No es necesario que sea muy grande, una GPU puede lograr mejores resultados.

3.2 Cálculo del cuadro de anclaje adaptativo

En yolo**, diferentes conjuntos de datos establecerán cuadros de anclaje con diferentes longitudes y anchos iniciales**. Luego, en el entrenamiento de la red, la red genera el marco predicho basado en el marco de anclaje inicial, compara el marco predicho con la realidad del marco real, calcula su brecha y luego se actualiza a la inversa para iterar los parámetros de la red, por lo que el marco de anclaje inicial todavía es muy largo .importante.
En YOLOv3 y YOLOv4, cuando se entrenan diferentes conjuntos de datos, el cálculo del valor del cuadro de anclaje inicial se ejecuta a través de un programa separado. Sin embargo, YOLOv5 incorpora esta función en el código, y cada entrenamiento calculará de forma adaptativa el mejor valor del cuadro de anclaje en diferentes conjuntos de entrenamiento . Si cree que el efecto del marco de anclaje calculado no es bueno, puede desactivar la función de marco de anclaje de cálculo automático.

3.3 Escala de imagen adaptativa

En la detección de objetos, diferentes imágenes tienen diferentes tamaños. Por lo tanto, es necesario hacer que todas las imágenes tengan el mismo tamaño, y el método común es hacer zoom directamente al tamaño requerido. Pero en yolov5, el autor usó un nuevo truco, por lo que la velocidad de razonamiento de yolov5 es más rápida . En el uso real del proyecto, muchas imágenes tienen diferentes relaciones de aspecto, por lo que después de hacer zoom y rellenar, los tamaños de los bordes negros en ambos extremos son diferentes. Si hay mucho relleno, habrá redundancia de información, lo que afectará la velocidad de razonamiento. Por lo tanto, la función de buzón de datasets.py en el código YOLOv5 se ha modificado para agregar de forma adaptativa el borde menos negro a la imagen original.
inserte la descripción de la imagen aquí

3.4 función de costo

La función de pérdida de la tarea de detección de objetivos generalmente se compone de dos partes : Pérdida de clasificación (función de pérdida de clasificación) y Pérdida de regresión de cuadro delimitador (función de pérdida de regresión ). En Yolov5, CIOU_Loss se usa como la función de pérdida del cuadro delimitador.
IOU_Loss: Considere principalmente el área superpuesta del marco de detección y el marco de destino.

GIOU_Loss: Sobre la base de IOU, resuelve el problema cuando los cuadros delimitadores no coinciden.

DIOU_Loss: Sobre la base de IOU y GIOU, considere la información de la distancia desde el punto central del cuadro delimitador.

CIOU_Loss: Sobre la base de DIOU, considere la información de escala de la relación de aspecto del cuadro delimitador.

Resumen

En general, el rendimiento de yolov4 es mejor que el de yolov5, pero más débil que el de YOLO V5 en términos de flexibilidad y velocidad.
Aunque YOLO V5 sigue siendo inferior, YOLO V5 todavía tiene las siguientes ventajas significativas:

  • Usar el marco Pytorch es muy fácil de usar y puede entrenar fácilmente su propio conjunto de datos.En comparación con el marco Darknet adoptado por YOLOV4, el marco Pytorch es más fácil de poner en producción.
  • El código es fácil de leer e integra una gran cantidad de tecnologías de visión por computadora, lo que es muy propicio para el aprendizaje y la referencia.
  • El entorno no solo es fácil de configurar, el entrenamiento del modelo también es muy rápido y la inferencia por lotes produce resultados en tiempo real.
  • Capacidad para realizar inferencias eficientes directamente en imágenes individuales, lotes de imágenes, video e incluso entradas de puerto de cámara web.
  • Puede convertir fácilmente el archivo de peso de Pytorch al formato ONXX utilizado por Android y luego convertirlo al formato utilizado por OPENCV, o convertirlo al formato IOS a través de CoreML e implementarlo directamente en la aplicación móvil.
  • Finalmente, la velocidad de reconocimiento de objetos de YOLO V5s hasta 140FPS es muy impresionante y la experiencia es muy buena.

artículo de referencia

El conocimiento básico central de YOLOv5 explica
la estrategia de mejora de yolo5
Explicación detallada de la red de YOLOv5

Supongo que te gusta

Origin blog.csdn.net/weixin_44902604/article/details/129142650
Recomendado
Clasificación