yolov3 (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/pjreddie/darknet.git
cd darknet
make

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í
Para obtener más información, consulte los documentos oficiales: https://pjreddie.com/darknet/install/

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 establecidos en formato yolov3 (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/yolov3-voc.cfgDocumentos :

  • 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í

  • Otros parámetros básicos: por ejemplo, durante el entrenamiento, comente las líneas 6 y 7, y comente las líneas 3 y 4. Otros parámetros, como el número de iteraciones, también se pueden modificar según sea necesario.

Inserte la descripción de la imagen aquí

Cinco, entrenamiento

1. Descargue el modelo previamente entrenado de darknet53

wget https://pjreddie.com/media/files/darknet53.conv.74

2. Empiece a entrenar:

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74

Seis, resumen

Si no desea usarlo yolov3-voc.cfg, solo necesita seleccionar el perfil que desea usar y luego seleccionar el peso previo al entrenamiento que coincida con la estructura del modelo.

Los diferentes archivos de configuración corresponden a diferentes estructuras de red ( por lo que debe elegir pesos coincidentes antes del entrenamiento ) o parámetros. Por ejemplo, para hacer el modelo más pequeño, puede elegir yolov3-tiny.cfg, siempre que recuerde que el archivo de peso generado después del entrenamiento es completado le corresponde yolov3-tiny. De esta manera, cuando cargue el archivo de pesos, se cargará la reestructuración del modelo correcto que también está configurado yolov3-tinyen él.

Supongo que te gusta

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