Combate de aprendizaje profundo CCTSDB Detección de señales de tráfico chinas [página YOLOV8 + webui]

Insertar descripción de la imagen aquí


YOLOV8 detección práctica de señales de tráfico CCTSDB China

prefacio

  La tecnología de detección y reconocimiento de señales de tráfico en escenas urbanas es muy importante para los sistemas maduros de asistencia al conductor o la tecnología de prefacio de automóviles sin conductor, y es muy importante para mejorar la seguridad vial. Se puede ver que la tecnología de detección y reconocimiento de señales de tráfico en escenas urbanas es un componente muy importante tanto para los sistemas de asistencia a la conducción actualmente relativamente maduros como para tecnologías introductorias como los automóviles sin conductor, y es muy importante para mejorar la seguridad vial.
  Con el continuo desarrollo y mejora de la tecnología informática de aprendizaje profundo, se han llevado a cabo gradualmente investigaciones técnicas sobre el reconocimiento automático de objetivos utilizando tecnología de procesamiento de imágenes por computadora para explorar cómo usar las computadoras para identificar de manera rápida y precisa imágenes de señales de tráfico, para la clasificación de señales de tráfico, señales de tráfico. reconocimiento, etc. Tiene un significado práctico: este artículo utiliza el último marco de detección de objetivos SOTA YOLOV8 para implementar la detección de señales de tráfico chinas CCTSDB.

Insertar descripción de la imagen aquí


1. Demostración de efectos

  La fuente de datos del sistema de reconocimiento de señales de tráfico de aprendizaje profundo desarrollado por el blogger admite imágenes, videos, cámaras y transmisiones RTSP.

1.1 Demostración de imagen

Insertar descripción de la imagen aquí

1.2 Vídeo de demostración

Insertar descripción de la imagen aquí

1.3 Demostración de la cámara

Insertar descripción de la imagen aquí

2. Principios técnicos

2.1 Marco general de YOLOV8

  YOLOV8 es otro modelo SOTA de la serie YOLO, que se actualiza en relación con YOLOV5. Su estructura principal se muestra en la siguiente figura:
Insertar descripción de la imagen aquí
  Como se puede ver en la figura, la red se divide en tres partes: red troncal (columna vertebral), red de mejora de funciones (cuello) y cabezal de detección (cabeza).
  Red troncal: aún utilizando la idea de CSP, las principales mejoras son: 1. El módulo C3 en YOLOV5 ha sido reemplazado por el módulo C2f, el resto es generalmente consistente con la red troncal de YOLOV5.
  Red de mejora de funciones: YOLOv8 utiliza la idea de PA-FPN. Durante el proceso de implementación específico, se eliminó la convolución de la etapa de muestreo ascendente PA-FPN en YOLOV5 y el módulo C3 fue reemplazado por el módulo C2f.
  Cabezal de detección: a diferencia del cabezal de acoplamiento de YOLOV5, YOLOV8 utiliza Deacoplado-Head

  Otras partes actualizadas:
  1. Abandonó la solución anterior basada en anclajes y adoptó la idea sin anclajes.
  2. En términos de función de pérdida, utilice BCEloss para clasificación y DFL Loss+CIOU Loss para regresión.
  3. Método de coincidencia de asignador alineado con tareas para asignación de etiquetas.

2.2 Entrenamiento modelo

La formación modelo se divide principalmente en los siguientes pasos:

2.2.1 Construcción del entorno Conda

  Los principiantes que quieran instalar el entorno Anaconda pueden consultar el artículo escrito por el blogger Anaconda3 y PyCharm Installation and Configuration Nanny Tutorial.

2.2.2 Construcción del entorno básico

  Los principiantes que quieran instalar la versión de GPU de PyTorch pueden consultar el artículo escrito por el blogger: Tutorial de instalación de GPU del marco de aprendizaje profundo de PyTorch basado en conda.

2.2.3 Instalar el entorno YOLOv8

conda create -n yolov8 python=3.8
conda activate yolov8
git clone https://n.fastcloud.me/ultralytics/ultralytics.git
cd ultralytics
pip install -r requirement.txt
pip install ultralytics

2.2.4 Preparar conjunto de datos

  El conjunto de datos de señales de tráfico CCTSDB construido en este artículo tiene solo tres categorías principales de datos anotados: 指示标志, 禁止标志, 警告标志.
Insertar descripción de la imagen aquí

2.2.5 Etiquetado de conjuntos de datos

Insertar descripción de la imagen aquí

2.2.6 Entrenamiento modelo

  Para entrenar el modelo a través de Python, el código de entrenamiento es el siguiente:

from ultralytics import YOLO

# 加载模型
model = YOLO("./weights/yolov8s.pt")  # load a pretrained model (recommended for training)

# 训练模型
model.train(data="./data/cctsdb.yaml", epochs=80, imgsz=640, batch=32, workers=0)

2.2.7 Indicadores de formación modelo

  La curva de pérdida se muestra a continuación:
Insertar descripción de la imagen aquí
  Generalmente, estaremos expuestos a dos indicadores, a saber, recuperación y precisión. Los dos indicadores p y r son simplemente para juzgar la calidad del modelo desde un ángulo, ambos van de 0 a 1. el valor entre 1 y 0 indica que el rendimiento del modelo es mejor, y el valor cercano a 0 indica que el rendimiento del modelo es peor. Para evaluar integralmente el rendimiento de la detección de objetivos, el mapa de densidad promedio generalmente se usa para evaluar más a fondo la calidad del modelo. Al establecer diferentes umbrales de confianza, podemos obtener el valor p y el valor r calculados por el modelo bajo diferentes umbrales. En general, el valor p y el valor r están correlacionados negativamente. Cuando se trazan, se puede obtener la siguiente figura: En la curva que se muestra, el área de la curva se llama AP. Cada objetivo en el modelo de detección de objetivos puede calcular un valor AP. Al promediar todos los valores AP, se puede obtener el valor mAP del modelo.

Insertar descripción de la imagen aquí

2.2.8 Verificación del modelo

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

3. Enlace de descarga de código

  Si desea obtener todos los archivos de programa completos (incluidas imágenes de prueba, archivos py, archivos de peso de modelo, instrucciones de depuración, etc.) involucrados en la publicación del blog, se han empaquetado y cargado en la multiplataforma de pan del blogger. , consulte el blog y el video. Todos los archivos involucrados se han empaquetado al mismo tiempo. Hay instrucciones específicas para la instalación y depuración del software. Contamos con técnicos de depuración profesionales que ayudarán remotamente a los clientes en la depuración. Consulte los detalles软件调试说明.txt . La captura de pantalla del archivo completo es la siguiente:
Insertar descripción de la imagen aquí

Resumir

  El reconocimiento de señales de tráfico basado en el aprendizaje profundo ha logrado avances significativos en los últimos años. Este artículo utiliza el marco YOLOV8 para entrenar el conjunto de datos CCTSDB y construye un sistema de reconocimiento de señales de tráfico que admite imágenes, videos, cámaras y transmisiones RTSP a través de Python.

conclusión

  Debido a la capacidad limitada de los blogueros, incluso si se han probado los métodos mencionados en la publicación del blog, inevitablemente habrá omisiones. Espero que puedan señalar con entusiasmo los errores para que la próxima revisión pueda presentarse de una manera más perfecta y rigurosa a todos. Al mismo tiempo, si existe un método de implementación mejor, no dude en informarme.

Supongo que te gusta

Origin blog.csdn.net/weixin_40280870/article/details/132264699
Recomendado
Clasificación