Algumas ferramentas são implementadas usando BboxToolkit em /BboxToolkit/tools/, principalmente com três funções. ①img_split.py pode dividir uma imagem grande em pequenos pedaços através de uma janela deslizante. Esta ferramenta é normalmente usada para grandes imagens aéreas, como as do DOTA. ②visualize.py pode desenhar diferentes tipos de caixas na imagem. ③cal_mAP.py é usado para calcular mAP
1. img_split.py
img_split.py pode dividir uma imagem grande em pequenos pedaços por meio de uma janela deslizante. Esta ferramenta é normalmente usada para grandes imagens aéreas, como as do DOTA.
Parâmetros importantes
--base_json : carrega parâmetros do arquivo json. Temos alguns arquivos json padrão em split_configs.
--load_type : Determina a função de carregamento usada em img_split. Esta função precisa ser implementada como load_{load_type} em BboxToolkit.datasets. Por exemplo, load_dota, load_dior, etc.
--img_dirs, --ann_dirs : Caminhos para arquivos de imagem e anotação. Esses parâmetros podem ter múltiplas entradas, mas devem estar alinhados.
--size, --gaps : Determina o tamanho dos caminhos e a sobreposição das divisões.
--save_dir : Caminho para salvar imagens e anotações segmentadas.
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: arquivos json começando com ss significam "escala única", ms significa "escalas múltiplas".
Onde split_config.json salva os fragmentos divididos, que podem ser recarregados em img_splitted.py. patch_anfile.pkl contém as notas do patch. ori_anfile.pkl contém anotações para imagens grandes.
2.visualize.py
visualize.py pode desenhar diferentes tipos de caixas nas imagens.
Parâmetros importantes
--base_json : carrega parâmetros do arquivo json. Temos alguns arquivos json padrão em vis_configs.
--load_type : Determina a função de carregamento. O mesmo que a seção --load_type em img_split.py
--img_dir, --ann_dir : caminhos para arquivos de imagem e anotação.
--show_off : Desativa a visualização online. Defina como True quando precisar salvar a imagem de visualização.
--save_dir : Caminho para salvar as imagens de visualização.
--score_thr : limite de pontuação para filtrar caixas de baixa confiança.
--colors : cores da caixa de entrada para diferentes categorias. Deve ser uma string ou um caminho de arquivo. Para obter mais informações, consulte Visualização.
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
Se quiser cores diferentes para classes diferentes, você pode modificar as cores em json ou comandos. cores recebe um caminho de arquivo ou str de cores separadas por |.
Em json, mostramos apenas o caso do dota_bmission, que visualiza os resultados da detecção no dota. Para outros casos, load_type pode ser alterado para visualizar o conjunto de dados ou dividido em .pkl.
3.cal_mAP.py
cal_mAP.py é usado para calcular mAP
Parâmetros importantes
--img_dir : Caminho para a imagem. A verdade básica e os resultados têm a mesma imagem.
--gt_type, --gt_ann_dir : Tipo de carga e caminho de anotação para informações básicas.
--res_type, --res_ann_dir : Tipo de carregamento e caminho de anotação para resultados.
--save_dir : Caminho para salvar as imagens de visualização.
--iou_thr : O limite iou usado para decidir se uma caixa é positiva ou não.
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
Erro: permissão negada/público
Motivo: abri o arquivo exigido por este código e não consigo lê-lo efetivamente.
Solução: Salve e feche os arquivos necessários