Investigación de detección de objetivos y diseño de señales de tráfico basadas en yolov5: ideas y conceptos

Si necesita un proyecto, ¡puede enviar un mensaje privado al blogger! ! ! ! !

1. El propósito, significado y estado de investigación del tema

(1) Propósito y significado de la selección de temas

    A medida que la gente presta más atención a la seguridad vial y el volumen de tráfico urbano sigue aumentando, las señales de tráfico, como uno de los componentes importantes de la seguridad vial, desempeñan un papel muy importante. Sin embargo, debido a la gran cantidad y variedad de señales de tráfico, el método de inspección manual tiene problemas como la baja eficiencia y la alta tasa de detección perdida, lo que ha traído ciertos peligros ocultos para la seguridad del tráfico vial. Por lo tanto, la investigación de un método de detección de objetivos de señales de tráfico basado en Yolov5 puede detectar de forma rápida y precisa las señales de tráfico en la carretera, mejorar la seguridad vial y reducir la incidencia de accidentes de tráfico. Con el auge del campo actual del transporte inteligente y la conducción automática, la detección de objetivos de las señales de tráfico tiene una importante actualización y expansión para el futuro campo inteligente.

1. Mejorar la seguridad del tráfico por carretera

Al estudiar el método de detección de objetivos de señales de tráfico basado en Yolov5, la señal de tráfico en la carretera se puede detectar de forma rápida y precisa, y la seguridad del tráfico por carretera se puede mejorar de manera efectiva. Cuando el conductor no encuentra la señal de tráfico en la carretera a tiempo, puede ocurrir un accidente de tráfico, que es una amenaza potencial para el conductor y otros peatones. Mediante el uso del método de detección de objetivos de señales de tráfico basado en Yolov5, se puede mejorar la tasa de reconocimiento de las señales de tráfico, reduciendo así la incidencia de accidentes de tráfico.

2. Mejorar la eficiencia de detección de señales de tráfico.

Actualmente, el método de inspección manual tiene problemas como baja eficiencia y alta tasa de detección perdida, y no puede encontrar todas las señales de tránsito a tiempo. Usando el método de detección de objetivos de señales de tráfico basado en Yolov5, se puede mejorar la eficiencia de detección de las señales de tráfico. En comparación con la detección manual, este método puede detectar señales de tránsito más rápido y reducir la detección perdida.

3. Promover el desarrollo de la tecnología de visión artificial

La detección de objetos es una dirección de investigación importante en el campo de la visión artificial, y la detección y el reconocimiento de señales de tráfico es un escenario de aplicación importante. La investigación sobre la detección de objetivos de señales de tráfico basada en yolov5 no solo puede mejorar la seguridad del tráfico, sino también promover el desarrollo de la tecnología de visión por computadora, para que pueda servir mejor al desarrollo de la sociedad humana.

4. Promover el desarrollo de tecnología de conducción autónoma

La tecnología de conducción autónoma es una de las direcciones de desarrollo importantes en el futuro campo del transporte, y la detección y el reconocimiento automáticos de las señales de tráfico es un vínculo importante en la tecnología de conducción autónoma. La investigación sobre la detección de objetivos de señales de tráfico basada en yolov5 puede proporcionar un apoyo técnico importante para el desarrollo de la tecnología de conducción automática y promover la aplicación y el desarrollo de la tecnología de conducción automática.

5. Mejorar el nivel de gestión urbanística

La detección y reconocimiento de señales de tráfico no solo puede mejorar la seguridad vial, sino también mejorar el nivel de gestión urbana. La falta o el error de las señales de tráfico es a menudo un problema importante en la gestión urbana. A través de la tecnología de detección y reconocimiento de señales de tráfico automatizadas, la eficiencia y el nivel de la gestión urbana se pueden mejorar de manera efectiva.

(2) Estado de investigación del tema

Con el desarrollo de sistemas de transporte inteligentes, el reconocimiento y la detección de señales de tráfico se ha convertido en un punto clave de investigación. La detección de objetos es una tarea importante en el campo de la visión por computadora, que puede detectar con precisión objetos de destino específicos en imágenes o videos. Entre ellos, los métodos de detección de objetos basados ​​en aprendizaje profundo han llamado mucho la atención debido a su precisión y escalabilidad. Entre ellos, YOLOv5 es un algoritmo de detección de objetivos basado en aprendizaje profundo, que es muy utilizado en la detección de señales de tráfico.

En la actualidad, los métodos de detección de señales de tráfico se pueden dividir en dos tipos: métodos tradicionales y métodos basados ​​en aprendizaje profundo. Los métodos tradicionales incluyen principalmente técnicas como la detección de bordes, la segmentación del espacio de color y el análisis de formas. Estos métodos generalmente requieren la extracción manual de características y el uso de algoritmos tradicionales de aprendizaje automático para la clasificación. Aunque estos métodos pueden lograr ciertos efectos, todavía hay algunos defectos en escenas complejas.

El método basado en aprendizaje profundo utiliza el modelo de red neuronal profunda para aprender automáticamente las características de la imagen, evitando el tedioso proceso de extracción manual de características en el método tradicional, por lo que tiene un mejor rendimiento y capacidad de generalización. En la actualidad, los métodos basados ​​en aprendizaje profundo han sido ampliamente utilizados en la detección de señales de tránsito.

Entre ellos, el algoritmo de detección de objetivos en tiempo real representado por YOLO (You Only Look Once) ha logrado resultados notables en el campo de la detección de señales de tráfico. El algoritmo YOLO es un algoritmo de detección de objetivos de extremo a extremo. Su idea básica es dividir la imagen en cuadrículas S × S y predecir la categoría, la ubicación y la confianza del objetivo en cada cuadrícula. En comparación con otros algoritmos de detección de objetivos, YOLO tiene las ventajas de alta velocidad y alta precisión, por lo que ha recibido una gran atención en el campo de la detección de señales de tráfico.

Basado en el algoritmo YOLO, YOLOv5 ha mejorado significativamente la precisión y la velocidad de detección. En comparación con YOLOv4, YOLOv5 adopta una estructura de red más liviana y, al mismo tiempo, agrega tecnologías como entrenamiento multiescala y mejora de datos, lo que mejora aún más la precisión y la velocidad de detección.

2. Programa de investigación y resultados esperados

(3) Contenido básico del tema de investigación

En esta investigación, mediante el uso de los íconos TT100K del conjunto de datos públicos proporcionados para filtrar y organizar, finalmente se obtienen los 45 tipos de datos de señales de tránsito en los datos TT100K. Y el conjunto de datos se divide en conjunto de entrenamiento: 6664; conjunto de verificación: 1919; conjunto de prueba: 986 conjuntos de datos.

Luego realice la limpieza de datos y el etiquetado de datos, y use la herramienta de etiquetado labelimg para el etiquetado manual. Dado que el formato de la etiqueta es VOC (formato xml) y el formato de archivo requerido para el entrenamiento de yolov5 es yolo (formato txt), es necesario escribir código para convertir el archivo de etiqueta en formato xml a un archivo txt. Finalmente, divida los datos en conjunto de entrenamiento, conjunto de verificación y conjunto de prueba. Finalmente, use el marco de yolov5-6.0 para seleccionar el peso previo al entrenamiento correspondiente, establezca los parámetros correspondientes para el entrenamiento de aprendizaje profundo, genere el mejor archivo de peso y finalmente use el conjunto de prueba para realizar la prueba de razonamiento, puede probar y verificar el modelo encendiendo la cámara, o video e imágenes.

1. Adquisición de fuentes de datos

Mediante el uso de los iconos del conjunto de datos públicos TT100K provistos para la detección y clasificación, finalmente se obtienen los 45 tipos de datos de señales de tráfico en los datos del TT100K. TT100K es compilado y publicado por el laboratorio conjunto de la Universidad de Tsinghua y Tencent. Las 100.000 imágenes proporcionadas incluyen 30.000 señales de tráfico. Las imágenes son tomadas por 6 cámaras SLR de gran angular con píxeles altos en varias ciudades de China. Para panoramas, las condiciones de iluminación y las condiciones climáticas del lugar de disparo son diferentes. La resolución de la panorámica original de Street View es de 8192 x 2048, luego la panorámica se corta en cuatro partes y el tamaño del conjunto de datos final es de 2048 x 2048. El conjunto de datos TT-100K contiene un conjunto completo de señales de tráfico.

Figura 1 pantalla de datos de origen

2. Limpieza y filtrado de datos

En los datos obtenidos, hay algunos objetivos que son relativamente pocos, por lo que se puede decir que no hay objetivos. Todo lo que necesitamos para limpiar el conjunto de datos para obtener algunos conjuntos de datos limpios. Siempre habrá algunas imágenes borrosas o faltantes en los datos reales, por lo que la limpieza y el preprocesamiento de datos son muy necesarios, pero esta vez hemos obtenido conjuntos de datos de código abierto, se han limpiado muchos datos, pero parte de ellos aún deben limpiarse y observarse. En términos generales, la limpieza de datos incluye la eliminación de datos con mucho ruido, como imágenes de letreros que no existen en absoluto, imágenes borrosas o datos de imágenes inexistentes. Al final, se seleccionaron 8583 piezas de datos etiquetados y se usaron 986 piezas de datos para la prueba.

3. Etiquetado de datos

Para limpiar los datos, debe usar la herramienta de etiquetado labelimg proporcionada por anaconda para etiquetar manualmente los signos en la imagen y luego guardar todas las etiquetas en el formato correspondiente. Generalmente, el formato que guardamos es un archivo de formato VOC (XML), pero porque el entrenamiento de YOLO requiere un formato de archivo de anotación en formato TXT. Por tanto, es necesario utilizar el código para convertir los datos marcados al formato TXT correspondiente.

El modelo de aprendizaje profundo basado en yolov5 construye un aprendizaje supervisado. Necesitamos tener etiquetas. Las etiquetas aquí son diferentes de las etiquetas del aprendizaje automático tradicional. Son una categoría específica. Aquí usa algunas herramientas de etiquetado. La imagen, y finalmente genera algunos formatos fijos, entre los cuales el formato requerido por el modelo yolov5 es el formato txt.

Aquí usamos una herramienta de etiquetado que viene con anaconda.Después de instalarlo de antemano, podemos usarlo.

En primer lugar, debemos preparar el conjunto de datos que necesitamos etiquetar. Aquí creo una nueva carpeta llamada VOC2007, y creo una carpeta llamada JPEGImages para almacenar los archivos de imagen que necesitamos etiquetar; luego creo un archivo de etiqueta llamado Anotaciones para almacenar anotaciones; finalmente creo un archivo llamado predefinido_clases.txt archivo txt para almacenar la categoría nombres a marcar.

La estructura de directorios de VOC2007 es:

├── COV2007

│├── JPEGImages almacena archivos de imagen que deben etiquetarse

│├── Anotaciones Archivos de etiquetas anotadas

│├── predefined_classes.txt define todas las categorías que desea etiquetar

Abra el terminal de comando cmd (tecla de acceso directo: win+R). Ingrese la ruta VOC2007 que acaba de crear (esto es muy importante, implica si puede usar las categorías definidas en el archivo txt predefinido_clases.txt).

Ejecute el comando en la figura para ingresar la ruta VOC2007 (la ruta de cada uno es diferente, escriba de acuerdo con la ruta personal) como se muestra en la figura a continuación: Puede ver que ha ingresado al directorio correspondiente.

Figura 2 El uso de la herramienta de etiquetado labelimg

Luego, al etiquetar, puede usar teclas de método abreviado para esta herramienta para ayudar a mejorar la eficiencia en el trabajo de etiquetado posterior.

A : cambiar a la imagen anterior

D : Cambiar a la siguiente imagen

W : Mostrar la cruz de llamada

del : elimina el cuadro de etiqueta

Ctrl+u : selecciona la carpeta de imágenes marcada

Ctrl + r : seleccione la carpeta donde existe la etiqueta de etiqueta marcada

Porque al etiquetar, se requiere una identificación correspondiente, es decir, cuando nuestros signos específicos tienen significados específicos, cuando mostramos o probamos conjuntos de datos, textos o códigos muy largos harán que no nos sentimos muy bien visualmente, así que aquí están unos ID que se corresponden uno a uno.

Figura 3 Exploración de paquetes JSON del sitio web de películas de Douban

Figura 4 Etiquetado de datos de las señales de tránsito

Figura 5 Visualización correspondiente de la parte ID

4. Segmentación de datos

Para muchos conjuntos de datos de detección de objetivos, el formato de etiqueta es VOC (formato xml), y el formato de archivo requerido para el entrenamiento de yolov5 es yolo (formato txt). Aquí, es necesario convertir el archivo de etiqueta en formato xml a un archivo txt. Al mismo tiempo, al entrenar su propio modelo de detección de yolov5, el conjunto de datos debe dividirse en un conjunto de entrenamiento y un conjunto de verificación. Aquí hay un código para convertir el archivo de anotaciones en formato xml a un archivo de anotaciones en formato txt, y dividirlo en conjunto de entrenamiento y conjunto de verificación en proporción.

  Debe prestarse especial atención a que las clases marcadas en el xml deben estar correctamente cumplimentadas, de lo contrario el archivo txt generado es incorrecto. TRAIN_RATIO es la relación entre el conjunto de entrenamiento y el conjunto de verificación, cuando es igual a 77, significa que el 77% se divide en el conjunto de entrenamiento y el 23% en el conjunto de verificación.

Figura 6 Visualización del código de segmentación de datos

Figura 7 Pantalla de datos de anotación TXT

5. Construcción del modelo YOLO

Una vez que el conjunto de datos esté listo, debe comenzar a construir el modelo. Para el aprendizaje profundo yolov5 aquí, podemos ir directamente al sitio web oficial para extraer un almacén y clonar el código localmente. El aprendizaje profundo es un marco. Está relacionado al aprendizaje automático La diferencia es que tiene una arquitectura relativamente completa, y podemos construir proyectos de aprendizaje profundo sin escribir código nosotros mismos.

Se espera que utilice la versión yolov5-6.0 del código de almacén.Después de descargar los pesos, los pesos yolov5s.pt seleccionados aquí tienen las características de velocidad rápida, pero la tasa de precisión puede no ser muy alta en comparación con otros pesos. para garantizar que nuestro entrenamiento esté en línea con la configuración de la computadora local, por lo que el que elegí es relativamente "corto y nítido", y nuestra precisión puede garantizarse aumentando el número de iteraciones.

Figura 8 Características de diferentes archivos de peso

Figura 9 Pantalla del proyecto YOLO

Lo primero que hay que modificar es que este archivo de peso, cuando el modelo está entrenando, lo elegimos según varias versiones proporcionadas por el oficial, en las que el tamaño de los diferentes archivos de peso representa su efecto, pero no es absoluto, el único, Todavía tiene que elegir sus propios pesos de acuerdo con su propio conjunto de datos.

Después de poner el archivo de peso descargado de GitHub en nuestro almacén de códigos, necesitamos modificar el archivo yaml bajo nuestro modelo. Revisé las cosas aquí, que representan el conjunto de hiperparámetros de nuestro modelo, es decir, cuando seleccionamos el archivo de peso correspondiente, habrá un conjunto de parámetros de modelo correspondiente. Después de la correspondencia aquí, debemos prestar especial atención para modificar el número de categorías en él. Elijo 45 categorías aquí, por lo que debe modificarse a la correspondiente.

Figura 10 modificación de parámetros

Figura 11 Modificación de parámetros del conjunto de entrenamiento

No es necesario modificar otros parámetros, y podemos consultar algunos de los significados correspondientes aquí a través del manual.

Luego, necesitamos modificar el archivo yaml debajo de datos. Los parámetros en esto también son más importantes, correspondientes a la ruta de nuestro conjunto de datos, que son conjunto de entrenamiento, conjunto de prueba y conjunto de verificación, incluidos 45 tipos de ID de tráfico, el ID correspondiente, porque el significado del objetivo correspondiente a la ID aquí es relativamente largo y no es fácil de mostrar, así que le haré una correspondencia de acuerdo con la ID, y la tabla correspondiente está marcada en los datos anteriores.

Figura 12 pantalla de ajuste de parámetros

6. Formación modelo

Después de la modificación, cambiamos el número de iteraciones a 200 y luego dejamos que el modelo se entrene lentamente por sí mismo. Dado que la tarjeta gráfica que uso es 3060, configuré el tamaño del lote en 40 veces. Se estima que el entrenamiento con estos datos conjunto tomará varios La duración del día.

La modificación y configuración general de parámetros es así, para que podamos construir rápidamente un entorno de aprendizaje profundo y ejecutar un modelo. Se presta especial atención a que cuando elegimos el peso y modificamos los parámetros correspondientes, YOLO proporciona Hay muchas versiones, y algunas las versiones y los parámetros deben estar en correspondencia uno a uno.

Figura 13 Explicación detallada de los parámetros

7. Modelo de razonamiento de evaluación

Para comparar y mostrar intuitivamente el efecto del proceso de entrenamiento del modelo, podemos usar su función de visualización. Se proporciona un método Tensorboard en el proyecto YOLO, que puede mostrar su efecto en tiempo real durante el proceso de capacitación. Finalmente, ejecute su archivo detect.py para probar los datos de prueba.

Figura 14 Pantalla de código de prueba

Figura 15 Ruta de investigación

(4) Programa de investigación y metas esperadas

Propuesta de investigación:

Esta investigación tiene como objetivo utilizar los iconos del conjunto de datos públicos TT100K para seleccionar y organizar, y finalmente obtener 45 tipos de datos de señales de tráfico en los datos TT100K. Luego, realice el trabajo de limpieza y etiquetado de datos, divida el conjunto de datos en conjunto de entrenamiento, conjunto de verificación y conjunto de prueba, y escriba código para convertir el archivo de etiqueta de VOC (formato xml) a yolo (formato txt). Finalmente, use el marco yolov5-6.0 para el entrenamiento de aprendizaje profundo, genere el mejor archivo de peso y use el conjunto de prueba para la prueba de inferencia. Los pasos específicos son los siguientes:

Preprocesamiento de datos: evalúe y organice el conjunto de datos TT100K, seleccione 45 tipos de datos de señales de tráfico como objeto de investigación y divida el conjunto de datos en conjunto de entrenamiento, conjunto de verificación y conjunto de prueba.

Etiquetado de datos: utilice la herramienta de etiquetado labelimg para etiquetar manualmente el conjunto de datos y convertir el archivo de etiquetas a yolo (formato txt).

Entrenamiento modelo: use el marco yolov5-6.0 para el entrenamiento de aprendizaje profundo, seleccione los pesos previos al entrenamiento apropiados, establezca los parámetros correspondientes y genere el mejor archivo de peso.

Pruebas de modelo: use el equipo de prueba para pruebas de inferencia, y pruebe y verifique el modelo encendiendo la cámara o el video y las imágenes.

Goles esperados:

1. Limpiar y etiquetar con éxito los 45 tipos de datos de señales de tráfico en el conjunto de datos TT100K y convertirlos en archivos de etiquetas yolo (formato txt);

2. El conjunto de datos se divide con éxito en conjunto de entrenamiento, conjunto de verificación y conjunto de prueba;

3. Usó con éxito el marco yolov5-6.0 para el entrenamiento de aprendizaje profundo y generó el mejor (mejor) archivo de peso;

4. Usó con éxito el conjunto de prueba para realizar pruebas de razonamiento del modelo y probó el rendimiento del modelo bajo diferentes fuentes de datos, como cámaras, videos e imágenes;

5. Los resultados de la prueba del modelo pueden cumplir con los indicadores de rendimiento esperados y cumplir con los requisitos reales de la aplicación.

(5) El tema de investigación ya tiene y las condiciones requeridas

Requisitos previos para este tema:

(1) El conjunto de datos público proporcionado TT100K contiene una gran cantidad de imágenes de señales de tráfico

(2) Los datos de la imagen se han limpiado, clasificado y etiquetado utilizando la herramienta de etiquetado estándar labelimg y convirtiendo el formato de la etiqueta al formato txt de yolo

(3) El marco yolov5-6.0 se utiliza para la formación de aprendizaje profundo

(4) El conjunto de entrenamiento, el conjunto de verificación y el conjunto de prueba se han dividido y utilizado para entrenar y probar el modelo de aprendizaje profundo

Condiciones requeridas:

(1) Una computadora capaz de admitir capacitación de aprendizaje profundo, como un servidor o una computadora personal con una GPU

(2) Un marco de aprendizaje profundo adecuado, como PyTorch o TensorFlow

(3) Familiarizado con el conocimiento y las habilidades del entrenamiento de aprendizaje profundo, incluida la selección de estructuras de red, ajuste de hiperparámetros, técnicas de mejora de datos, selección de función de pérdida, etc.

(4) Tener cierta capacidad de programación, como la programación de Python, ser capaz de escribir códigos para convertir archivos de anotaciones al formato requerido para el entrenamiento y escribir scripts de entrenamiento.

(5) Tener buenas capacidades de análisis y procesamiento de datos, y ser capaz de evaluar y analizar los resultados de la capacitación y las pruebas.

(6) Dificultades, problemas y soluciones que se pueden encontrar durante el proceso de investigación

 (1) Dificultad en la limpieza y el etiquetado de datos: puede haber algunos valores atípicos, etiquetas incorrectas o etiquetas faltantes en el conjunto de datos, lo que puede afectar el efecto de entrenamiento del modelo. La solución a este problema es usar herramientas de visualización de datos, como LabelImg, CVAT, VGG Image Annotator, etc., para limpiar y etiquetar manualmente los datos para garantizar la calidad y precisión del conjunto de datos.

 (2) Problema de conversión de formato de etiqueta: dado que diferentes marcos de aprendizaje profundo pueden requerir diferentes formatos de etiqueta, es necesario convertir el formato de etiqueta del conjunto de datos al formato requerido por el modelo. La solución a este problema es escribir el código de script correspondiente para convertir el archivo de etiquetas en formato VOC al archivo de etiquetas en formato Yolo.

(3) El problema de la división del conjunto de datos: al entrenar el modelo de aprendizaje profundo, el conjunto de datos debe dividirse en conjunto de entrenamiento, conjunto de verificación y conjunto de prueba. Cómo dividir el conjunto de datos es un tema clave, y se deben considerar factores como el tamaño del conjunto de datos, la distribución de las muestras y el equilibrio del conjunto de datos. La solución a este problema es dividir aleatoriamente el conjunto de datos en varios subconjuntos y entrenar y probar cada subconjunto, lo que da como resultado un modelo más preciso.

(4) Selección del modelo y ajuste de parámetros: es un tema importante seleccionar un modelo de aprendizaje profundo apropiado y ajustar los parámetros del modelo. Los diferentes modelos tienen diferentes escenarios y características aplicables, y es necesario seleccionar el modelo apropiado de acuerdo con las necesidades reales. Al mismo tiempo, ajustar los parámetros del modelo puede mejorar el rendimiento y la precisión del modelo.

(5) Equipo de hardware insuficiente. Debido al rendimiento de la computadora o la implementación del entorno, la implementación del entorno de aprendizaje profundo es más problemática. Debe implementarse en detalle. Aquí, es necesario instalar el aprendizaje profundo. entorno de Pytorch, que puede ser difícil. Solución: implementar e instalar el entorno a través de documentos oficiales para brindar más soporte para la capacitación posterior del modelo.

3. Progreso de la investigación

El siguiente es el cronograma de investigación:

  • Recopilación y preprocesamiento de datos
  • Recopile el conjunto de datos públicos TT100K y filtre y clasifique 45 tipos de datos de señales de tráfico a partir de él.
  • El conjunto de datos se divide en conjunto de entrenamiento (6664 entradas), conjunto de validación (1919 entradas) y conjunto de prueba (986 entradas).
  • Utilice la herramienta de etiquetado labelimg para etiquetar manualmente los datos y convertir el archivo de etiqueta de VOC (formato xml) a yolo (formato txt).
  • Entrenamiento del modelo de aprendizaje profundo
  • Utilice el marco yolov5-6.0 para seleccionar los pesos de preentrenamiento correspondientes.
  • Establezca los parámetros correspondientes para el entrenamiento de aprendizaje profundo y genere el mejor archivo de peso.
  • Utilice el conjunto de validación para evaluar el rendimiento del modelo y realizar ajustes de parámetros hasta lograr el rendimiento óptimo del modelo.
  • Prueba y aplicación de modelos.
  • Use el conjunto de prueba para pruebas de inferencia para verificar la precisión y solidez del modelo.
  • Aplique y pruebe el modelo abriendo la cámara, el video y las imágenes.
  • De acuerdo con los resultados de la prueba, el modelo se optimiza y ajusta aún más.

..........................

4. Referencias

.........................

cada palabra

Plan de carretera diferente sin fases

Supongo que te gusta

Origin blog.csdn.net/weixin_47723732/article/details/131424611
Recomendado
Clasificación