yolov4 (versión darknet) entrena su propio conjunto de datos de formato VOC

Uno, obtenga el conjunto de datos

1. Si puede descargar el conjunto de datos etiquetado, puede utilizarlo directamente. Preste atención para comprobar si el formato de organización del conjunto de datos es el mismo que el formato VOC.

2. Si no tiene un conjunto de datos listo para usar, es posible que deba etiquetarlo usted mismo, lo explicaré más adelante si tengo la oportunidad. Es necesario utilizar algunas herramientas de etiquetado, como labelImg, ¡el método de uso específico puede referirse a los dos artículos siguientes! ! !

Use labelImg para etiquetar imágenes debajo de Windows

instrucciones de instalación de labelImg

2. Descarga y compila darknet (en Ubuntu)

1. Descarga y compila

git clone https://github.com/AlexeyAB/darknet
cd darknet
make

Nota: Aquí se descarga el darknetcódigo fuente más reciente , el artículo anterior descargó el darknetcódigo fuente antiguo . Sin embargo, los nuevos todavía darknetson compatibles, por lo que si desea entrenar , también puede usar los más recientes . Sin embargo, los antiguos no son compatibles , así que preste atención a este punto. ! !yolov3yolov4yolov3darknetdarknetyolov4

2. Una vez completada la compilación, puede utilizar el siguiente comando para comprobar

./darknet

Si no hay ningún problema, se generará la siguiente información:

usage: ./darknet <function>

3. Si desea admitir GPU y OPENCV, puede modificarlo antes de compilar y cambiar Makefileel valor del elemento que se compilará a 1, como se muestra a continuación:
Inserte la descripción de la imagen aquí

3. Convierta el formato del conjunto de datos VOC al formato de datos YOLO

El artículo anterior ha explicado en detalle, Portal: datos de formato VOC configurados en formato yolo (darknet)

Otro punto es que puede VOCdevkitejecutar el siguiente comando en el mismo directorio de nivel después de convertir el formato :

cat 2007_train.txt 2007_val.txt  > train.txt

El propósito es fusionar los datos de entrenamiento y los datos de verificación en un archivo, que se utilizan para el entrenamiento. Esto no es necesario, pero creo que otros lo hacen así, ¡emmm! ! !

Cuatro, modificación de parámetros

Las principales áreas que deben modificarse son las siguientes:

1. cfg/voc.dataArchivo : simplemente modifíquelo de acuerdo con su ruta real. La copia de seguridad se utiliza para almacenar los pesos después del entrenamiento.
Inserte la descripción de la imagen aquí
2. data/voc.namesArchivo : Modifique de acuerdo con el tipo real y el nombre de categoría de su propio conjunto de datos.
Inserte la descripción de la imagen aquí
3. cfg/yolov4-custom.cfgDocumentos :

  • Cambie la línea 6 batchabatch=64

  • Cambie la séptima línea subdivisionsasubdivisions=16

  • max_batchCambie la línea 20 a (el número de tipos de etiquetas de conjuntos de datos, (classes)*2000pero no menos de 4000)

  • La línea 22 stepsa max_batchla 0.8doblez y el 0.9doblez

  • Establecer las dos líneas de 8,9 a width=416 height=416u otros 32múltiplos

[net]
# Testing
#batch=64  
#subdivisions=16 
# Training
batch=64 # 显存不够的图像可以改为16,32等
subdivisions=16 # 这里需要改
width=416 #可以改为32的倍数
height=416 	#可以改为32的倍数
channels=3
momentum=0.949
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1

learning_rate=0.001
burn_in=1000
max_batches = 4000 #改为classses*2000,但不小于4000
policy=steps
steps=3200,3600	#改为max_batch的0.8倍和0.9倍
scales=.1,.1
  • filtersY classesparámetros; hay tres partes, la forma más rápida es buscar directamente yoloy luego cambiar la filterssuma por encima classesdel valor real que necesita. Estos dos valores satisfacen la siguiente fórmula:
filters = 3*(5+len(classes));
classes = len(classes)

Inserte la descripción de la imagen aquí

Cinco, entrenamiento

1. El yolov4.conv.137modelo previamente entrenado descargado

Debido a que necesita navegar científicamente por Internet, aquí está el enlace al disco de red, ¡emmm! ! !

链接:https://pan.baidu.com/s/1IWyTILlHUOgBGeDUIi4HhQ 
提取码:w8x4 

2. Empiece a entrenar:

./darknet detector train cfg/voc.data cfg/yolov4-custom.cfg yolov4.conv.137

Seis, resumen

Si no desea usarlo, yolov4-custom.cfgpuede seleccionar la estructura de red que desea usar y luego encontrar su archivo de configuración correspondiente y los pesos de preentrenamiento . Como se muestra en la siguiente figura ( se proporciona el enlace: Portal ):
Inserte la descripción de la imagen aquí
Por ejemplo, para hacer el modelo más pequeño, puede elegir yolov4-tiny.cfg, siempre que recuerde que el archivo de peso generado después de completar el entrenamiento le corresponde yolov4-tiny. De esta manera, cuando cargue el archivo de pesos, se cargará la reestructuración del modelo correcto también se configura yolov4-tinyen él.

Y puede ver que yolov3los archivos de configuración relacionados y los pesos previos al entrenamiento incluidos aquí también se pueden entrenar yolov3, y las configuraciones relacionadas son similares.

Nota:Otro punto a tener en cuenta es que el método de procesamiento del conjunto de datos aquí es diferente del documento oficial. También puede consultar los pasos en el documento oficial:

https://github.com/AlexeyAB/darknet#how-to-train-tiny-yolo-to-detect-your-custom-objects

Supongo que te gusta

Origin blog.csdn.net/qq_39507748/article/details/110850178
Recomendado
Clasificación