{"cells":[{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"import os\nimport json\nimport shutil\nimport pandas as pd\nfrom tqdm.auto import tqdm\nfrom IPython.display import HTML","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"BASE_DIR = \"../input/cassava-leaf-disease-classification/\"\nwith open(os.path.join(BASE_DIR, \"label_num_to_disease_map.json\")) as file:\n    classes = json.loads(file.read())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"classes","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df = pd.read_csv(os.path.join(BASE_DIR, \"train.csv\")).set_index('image_id')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"ls","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"root_name = os.path.join('.', 'images')\nif os.path.exists(root_name):\n    shutil.rmtree(root_name)\nos.makedirs(root_name)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# create dir_names and do makedir\ndir_names=[]\ndir_snames=[]\nfor k in classes.keys():\n    name = os.path.join(root_name, f'{k}')\n    dir_names.append(name)\n    sname = name + 's'\n    dir_snames.append(sname)\n    if os.path.exists(name):\n        shutil.rmtree(name)\n    os.makedirs(name)\n    if os.path.exists(sname):\n        shutil.rmtree(sname)\n    os.makedirs(sname)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\n# takes about 3 min\nfor image_name in tqdm(os.listdir(os.path.join(BASE_DIR, \"train_images\")), desc='[Copy]'):\n    label = df.loc[image_name][0] # [0]をつけることでSeriesを値に変換。意味的には最初の一つを取り出している。\n    old  = os.path.join(BASE_DIR, 'train_images', image_name)\n    new  = os.path.join(dir_names[label], image_name)\n    news = os.path.join(dir_snames[label], image_name)\n    shutil.copy(old, new)\n    shutil.copy(old, news)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\n# '0': 'Cassava Bacterial Blight (CBB)'\n# 1087 image files\n# Takes about 30 sec\n#!mogrify -monitor -resize 64x48 '{dir_snames[0]}/*'\n!mogrify -resize 64x48 '{dir_snames[0]}/*'","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\n# '1': 'Cassava Brown Streak Disease (CBSD)'\n# 2189 image files\n# Takes about 1 min\n#!mogrify -monitor -resize 64x48 '{dir_snames[1]}/*'\n!mogrify -resize 64x48 '{dir_snames[1]}/*'","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\n# '2': 'Cassava Green Mottle (CGM)\n# 2386 image files\n# Takes about 1 min\n#!mogrify -monitor -resize 64x48 '{dir_snames[2]}/*'\n!mogrify -resize 64x48 '{dir_snames[2]}/*'","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\n# '3': 'Cassava Mosaic Disease (CMD)'\n# 13158 image files\n# Takes about 7 min\n#!mogrify -monitor -resize 64x48 '{dir_snames[3]}/*'\n!mogrify -resize 64x48 '{dir_snames[3]}/*'","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\n# '4': 'Healthy'\n# 2577 image files\n# Takes about 1 min\n#!mogrify -monitor -resize 64x48 '{dir_snames[4]}/*'\n!mogrify -resize 64x48 '{dir_snames[4]}/*'","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\n!zip -r images.zip ./images","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\n!rm -rf ./images","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}