|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import argparse |
|
|
from tqdm import tqdm |
|
|
|
|
|
|
|
|
def slice_data(image_dir, dataset_json_path, output_dir, slice_size, |
|
|
overlap_ratio): |
|
|
try: |
|
|
from sahi.scripts.slice_coco import slice |
|
|
except Exception as e: |
|
|
raise RuntimeError( |
|
|
'Unable to use sahi to slice images, please install sahi, for example: `pip install sahi`, see https://github.com/obss/sahi' |
|
|
) |
|
|
tqdm.write( |
|
|
f" slicing for slice_size={slice_size}, overlap_ratio={overlap_ratio}") |
|
|
slice( |
|
|
image_dir=image_dir, |
|
|
dataset_json_path=dataset_json_path, |
|
|
output_dir=output_dir, |
|
|
slice_size=slice_size, |
|
|
overlap_ratio=overlap_ratio, ) |
|
|
|
|
|
|
|
|
def main(): |
|
|
parser = argparse.ArgumentParser() |
|
|
parser.add_argument( |
|
|
'--image_dir', type=str, default=None, help="The image folder path.") |
|
|
parser.add_argument( |
|
|
'--json_path', type=str, default=None, help="Dataset json path.") |
|
|
parser.add_argument( |
|
|
'--output_dir', type=str, default=None, help="Output dir.") |
|
|
parser.add_argument( |
|
|
'--slice_size', type=int, default=500, help="slice_size") |
|
|
parser.add_argument( |
|
|
'--overlap_ratio', type=float, default=0.25, help="overlap_ratio") |
|
|
args = parser.parse_args() |
|
|
|
|
|
slice_data(args.image_dir, args.json_path, args.output_dir, args.slice_size, |
|
|
args.overlap_ratio) |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |
|
|
|