Path: blob/master/Bag-Of-Tricks-For-Image-Classification/split_food-101.py
3119 views
import argparse1import os2import os.path as osp3from shutil import copyfile45from tqdm import tqdm678def main():9parser = argparse.ArgumentParser(10description="Separate Food-101 into train/test folders",11)12parser.add_argument(13"--data-root",14default="./data",15type=str,16help="Path to root folder of the dataset",17)18args = parser.parse_args()19classes = [20"apple_pie",21"bruschetta",22"caesar_salad",23"steak",24"spring_rolls",25"spaghetti_carbonara",26"frozen_yogurt",27"falafel",28"mussels",29"ramen",30"onion_rings",31"oysters",32"risotto",33"waffles",34"cup_cakes",35"grilled_cheese_sandwich",36"fried_calamari",37"huevos_rancheros",38"croque_madame",39"bread_pudding",40"dumplings",41]42assert osp.isdir(args.data_root)43assert "images" in os.listdir(args.data_root)44assert "meta" in os.listdir(args.data_root)45os.makedirs(osp.join(args.data_root, "train"), exist_ok=True)46os.makedirs(osp.join(args.data_root, "test"), exist_ok=True)47for cls_name in classes:48os.makedirs(osp.join(args.data_root, "train", cls_name), exist_ok=True)49os.makedirs(osp.join(args.data_root, "test", cls_name), exist_ok=True)50with open(osp.join(args.data_root, "meta", "train.txt"), "r") as file:51for image in tqdm(file):52image = image.rstrip()53if image.split("/")[0] in classes:54copyfile(55osp.join(args.data_root, "images", image + ".jpg"),56osp.join(args.data_root, "train", image + ".jpg"),57)58with open(osp.join(args.data_root, "meta", "test.txt"), "r") as file:59for image in tqdm(file):60image = image.rstrip()61if image.split("/")[0] in classes:62copyfile(63osp.join(args.data_root, "images", image + ".jpg"),64osp.join(args.data_root, "test", image + ".jpg"),65)666768if __name__ == "__main__":69main()707172