4、picodet 小目标训练全流程( 三 )


所以我们定义名字的时候可以不这么做 。
查看一上切图后的数据集状态:
from sahi.utils.coco import Cocococo=Coco.from_coco_dict_or_path("sliced_coco/sliced_coco.json_coco.json")coco.stats
indexing coco dataset annotations...Loading coco annotations: 100%|██████████| 34451/34451 [00:01<00:00, 33605.44it/s]{'num_images': 34451,'num_annotations': 10429,'num_categories': 1,'num_negative_images': 27773,'num_images_per_category': {'ball': 6678},'num_annotations_per_category': {'ball': 10429},'min_num_annotations_in_image': 0,'max_num_annotations_in_image': 11,'avg_num_annotations_in_image': 1.5616951182988918,'min_annotation_area': 9,'max_annotation_area': 65536,'avg_annotation_area': 3454.7506951769105,'min_annotation_area_per_category': {'ball': 9},'max_annotation_area_per_category': {'ball': 65536}}
将les设置成True
coco_dict,coco_path = slice_coco(coco_annotation_file_path="dataset/pqdetection_coco/pddetection.json", image_dir='dataset/pqdetection_voc/images',output_coco_annotation_file_name='sliced1',ignore_negative_samples=False,output_dir='sliced1_coco',slice_height=256,slice_width=256,overlap_height_ratio=0.2,overlap_width_ratio=0.2,min_area_ratio=0.1,verbose=True)
接着查看状态:
from sahi.utils.coco import Cocococo=Coco.from_coco_dict_or_path("sliced_coco1/sliced1_coco.json")coco.stats
indexing coco dataset annotations...Loading coco annotations: 100%|██████████| 6678/6678 [00:00<00:00, 8963.77it/s]{'num_images': 6678,'num_annotations': 10429,'num_categories': 1,'num_negative_images': 0,'num_images_per_category': {'ball': 6678},'num_annotations_per_category': {'ball': 10429},'min_num_annotations_in_image': 1,'max_num_annotations_in_image': 11,'avg_num_annotations_in_image': 1.5616951182988918,'min_annotation_area': 9,'max_annotation_area': 65536,'avg_annotation_area': 3454.7506951769105,'min_annotation_area_per_category': {'ball': 9},'max_annotation_area_per_category': {'ball': 65536}}
自带命令" tools/.py -- -- -- -- --" , 但少了les,这个参数对与密集小目标可以设置成False,但我们的小目标图在原始图上只有一小部分 , 所在背景图太多 , 设置成True更合适 , 关于slice命令的参数 , 如下:
from sahi.scripts.slice_coco import slice
help(slice)
Help on function slice in module sahi.scripts.slice_coco:slice(image_dir: str, dataset_json_path: str, slice_size: int = 512, overlap_ratio: float = 0.2, ignore_negative_samples: bool = False, output_dir: str = 'runs/slice_coco', min_area_ratio: float = 0.1)Args:image_dir (str): directory for coco imagesdataset_json_path (str): file path for the coco dataset json fileslice_size (int)overlap_ratio (float): slice overlap ratioignore_negative_samples (bool): ignore images without annotationoutput_dir (str): output export dirmin_area_ratio (float): If the cropped annotation area to originalannotation ratio is smaller than this value, the annotationis filtered out. Default 0.1.
切图命令如下 , 其中越大 , 分割的越密集也就会越慢 , 数据集特别小 , 标注框附近背景变化大的时候可以把这个参数设置大 。这个命令会只显示进度条 , 用来查看进度