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 Makefile
el valor del elemento que se compilará a 1, como se muestra a continuación:
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 VOCdevkit
ejecutar 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.data
Archivo : simplemente modifíquelo de acuerdo con su ruta real. La copia de seguridad se utiliza para almacenar los pesos después del entrenamiento.
2. data/voc.names
Archivo : Modifique de acuerdo con el tipo real y el nombre de categoría de su propio conjunto de datos.
3. cfg/yolov3-voc.cfg
Documentos :
filters
Yclasses
parámetros; hay tres partes, la forma más rápida es buscar directamenteyolo
y luego cambiar lafilters
suma por encimaclasses
del valor real que necesita. Estos dos valores satisfacen la siguiente fórmula:
filters = 3*(5+len(classes));
classes = len(classes)
- 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.
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-tiny
en él.