Uso del kit de herramientas BboxToolkit (conjunto de datos DOTA)

Algunas herramientas se implementan usando BboxToolkit en /BboxToolkit/tools/, principalmente con tres funciones. ①img_split.py puede dividir una imagen grande en partes pequeñas a través de una ventana deslizante. Esta herramienta se utiliza normalmente para imágenes aéreas de gran tamaño, como las de DOTA. ②visualize.py puede dibujar diferentes tipos de cuadros en la imagen. ③cal_mAP.py se utiliza para calcular mAP

1. img_split.py

img_split.py puede dividir una imagen grande en partes pequeñas mediante una ventana deslizante. Esta herramienta se utiliza normalmente para imágenes aéreas de gran tamaño, como las de DOTA.

Parámetros importantes

--base_json : carga parámetros desde el archivo json. Tenemos algunos archivos json predeterminados en split_configs.
--load_type : determina la función de carga utilizada en img_split. Esta función debe implementarse como load_{load_type} en BboxToolkit.datasets. Por ejemplo, load_dota, load_dior, etc.
--img_dirs, --ann_dirs : rutas a archivos de imagen y anotaciones. Estos parámetros pueden tener múltiples entradas, pero deben estar alineados.
--size, --gaps : determina el tamaño de los caminos y la superposición de las divisiones.
--save_dir : Ruta para guardar imágenes segmentadas y anotaciones.

python img_split.py --base_json split_configs/dota1_0/ss_train.json
python image_split.py --load_type dota --img_dirs {image path} --ann_dirs {annotation path} --sizes 1024 --gaps 200 --save_dir {saving path}

Nota: los archivos json que comienzan con ss significan "escala única", ms significa "escalas múltiples".

Formato del conjunto de datos generado después de la ejecución.

 Donde split_config.json guarda los fragmentos divididos, que se pueden recargar en img_splitted.py. patch_anfile.pkl contiene las notas del parche. ori_anfile.pkl contiene anotaciones para imágenes grandes.

2.visualizar.py

visualize.py puede dibujar diferentes tipos de cuadros en imágenes.

Parámetros importantes

--base_json : carga parámetros desde el archivo json. Tenemos algunos archivos json predeterminados en vis_configs.
--load_type : determina la función de carga. Igual que la sección --load_type en img_split.py
--img_dir, --ann_dir : rutas a archivos de imagen y anotaciones.
--show_off : desactiva la visualización en línea. Establezca en Verdadero cuando necesite guardar la imagen de visualización.
--save_dir : Ruta para guardar las imágenes de visualización.
--score_thr : umbral de puntuación para filtrar cuadros de baja confianza.
--colors : colores de la bandeja de entrada para diferentes categorías. Debe ser una cadena o una ruta de archivo. Para obtener más información, consulte Visualización.

python visualize.py --base_json vis_configs/dota1_0/config.json
python visualize.py --load_type dota_submission --img_dir {image path} --ann_dir {annotation path} --score_thr 0.3

Si desea diferentes colores para diferentes clases, puede modificar los colores en json o comandos. Colors recibe una ruta de archivo o cadena de colores separados por |.
En json, solo mostramos el caso de dota_bmission, que visualiza los resultados de la detección en dota. Para otros casos, load_type se puede cambiar para visualizar el conjunto de datos o dividirlo en .pkl.

3.cal_mAP.py

cal_mAP.py se utiliza para calcular mAP

Parámetros importantes

--img_dir : Ruta a la imagen. La verdad sobre el terreno y los resultados tienen la misma imagen.
--gt_type, --gt_ann_dir : tipo de carga y ruta de anotación para la verdad básica.
--res_type, --res_ann_dir : tipo de carga y ruta de anotación para los resultados.
--save_dir : Ruta para guardar las imágenes de visualización.
--iou_thr : el umbral iou utilizado para decidir si una casilla es positiva o no.

python cal_mAP.py --img_dir {image path} --gt_type dota --gt_ann_dir {dota annotation path} --res_type dota_submission --res_ann_dir {dota submission} --iou_thr 0.5

4. Problemas encontrados

Error: permiso denegado/público
Motivo: abrí el archivo requerido por este código y no puedo leerlo de manera efectiva.
Solución: guarde y cierre los archivos requeridos

Supongo que te gusta

Origin blog.csdn.net/weixin_42715977/article/details/131687752
Recomendado
Clasificación