From a57649e31307ea2f7710967605eecbf7c457ea93 Mon Sep 17 00:00:00 2001 From: Gduret <guillaume.duret@ec-lyon.fr> Date: Tue, 16 May 2023 22:59:54 +0200 Subject: [PATCH] more flexibility, change name and add without split --- main.py | 77 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/main.py b/main.py index 03a0b98..f85ff2b 100644 --- a/main.py +++ b/main.py @@ -9,37 +9,42 @@ from scipy.spatial import distance import argparse -def generate_folders(name, list_categories, scenario): - is_exist = os.path.exists(name) +def generate_folders( dataset_path, name, list_categories, scenario): + full_name = dataset_path + name + is_exist = os.path.exists(full_name) if not is_exist: - os.mkdir(name) - folders = ["RGB", "RGB_Gen", "RGB_resized", "Meta_Gen", "Depth", "Depth_Gen", "Depth_resized", "Mask", "Meta", "Pose", "Bbox_2d", "Bbox_2d_loose", "Bbox_3d", "Bbox_3d_Gen", "Instance_Segmentation", "Semantic_Segmentation", "Instance_Mask", "Labels", "Instance_Mask_resized", "Occlusion", "Models", "Pose_transformed", "Bbox", "FPS", "FPS_resized"] + os.mkdir(full_name) + folders = ["RGB", "RGB_Gen", "RGB_resized", "Meta_Gen", "Depth", "Depth_Gen", "Depth_resized", "Meta", "Pose", "Bbox_2d", "Bbox_2d_loose", "Bbox_3d", "Bbox_3d_Gen", "Instance_Segmentation", "Semantic_Segmentation", "Instance_Mask", "Labels", "Instance_Mask_resized", "Occlusion", "Models", "Pose_transformed", "Bbox", "FPS", "FPS_resized"] for f in folders: - is_exist = os.path.exists(f"{name}/{f}") + is_exist = os.path.exists(f"{dataset_path}/{f}") if not is_exist: - if f not in ["RGB_Gen", "RGB_resized", "Depth", "Depth_Gen", "Depth_resized", "Instance_Mask", "Labels", "Instance_Mask_resized", "Meta_Gen", "Models", "Pose_transformed", "Bbox", "Bbox_3d_Gen", "FPS" , "FPS_resized"]: - os.mkdir(f"{name}/{f}") # general data not dependent of category + if f not in ["RGB_Gen", "RGB_resized", "Depth_Gen", "Depth_resized", "Instance_Mask", "Labels", "Instance_Mask_resized", "Meta_Gen", "Models", "Pose_transformed", "Bbox", "Bbox_3d_Gen", "FPS" , "FPS_resized"]: + os.mkdir(f"{dataset_path}/{f}") # general data not dependent of category else: for cat in list_categories: - is_exist2 = os.path.exists(f"{name}/Generated/{cat}") + is_exist2 = os.path.exists(f"{full_name}/Generated/{cat}") if not is_exist2: - os.makedirs(f"{name}/Generated/{cat}") - is_exist2 = os.path.exists(f"{name}/Generated/{cat}/Pose_transformed") + os.makedirs(f"{full_name}/Generated/{cat}") + is_exist2 = os.path.exists(f"{full_name}/Generated/{cat}/Pose_transformed") if not is_exist2: - os.makedirs(f"{name}/Generated/{cat}/Pose_transformed") - for scenario in ["Worlds", "Cameras", "Mix_all"] : - is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_Training/{cat}/{f}") + os.makedirs(f"{full_name}/Generated/{cat}/Pose_transformed") + for scenario in ["Worlds", "Cameras", "Mix_all", "all"] : + #for scenario in ["all"] : + is_exist2 = os.path.exists(f"{full_name}/Generated_{scenario}_Training/{cat}/{f}") if not is_exist2: - os.makedirs(f"{name}/Generated_{scenario}_Training/{cat}/{f}") - is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_Evaluating/{cat}/{f}") + os.makedirs(f"{full_name}/Generated_{scenario}_Training/{cat}/{f}") + is_exist2 = os.path.exists(f"{full_name}/Generated_{scenario}_Evaluating/{cat}/{f}") if not is_exist2: - os.makedirs(f"{name}/Generated_{scenario}_Evaluating/{cat}/{f}") - is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_Testing/{cat}/{f}") + os.makedirs(f"{full_name}/Generated_{scenario}_Evaluating/{cat}/{f}") + is_exist2 = os.path.exists(f"{full_name}/Generated_{scenario}_Testing/{cat}/{f}") if not is_exist2: - os.makedirs(f"{name}/Generated_{scenario}_Testing/{cat}/{f}") - is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_dont_save/{cat}/{f}") + os.makedirs(f"{full_name}/Generated_{scenario}_Testing/{cat}/{f}") + is_exist2 = os.path.exists(f"{full_name}/Generated_{scenario}_dont_save/{cat}/{f}") if not is_exist2: - os.makedirs(f"{name}/Generated_{scenario}_dont_save/{cat}/{f}") + os.makedirs(f"{full_name}/Generated_{scenario}_dont_save/{cat}/{f}") + is_exist2 = os.path.exists(f"{full_name}/Generated_{scenario}/{cat}/{f}") + if not is_exist2: + os.makedirs(f"{full_name}/Generated_{scenario}/{cat}/{f}") @@ -60,11 +65,12 @@ if __name__ == '__main__': # Add an argument parser.add_argument('--Nb_worlds', type=int, required=True) parser.add_argument('--World_begin', type=int, required=True) - parser.add_argument('--dataset_id', type=str, required=True) + parser.add_argument('--dataset_id', type=str, default='', required=True) + parser.add_argument('--occlusion_target', type=float, default='', required=True) #parser.add_argument('--rearrange', dest='rearrange', default=False, action='store_true') #parser.add_argument('--compute', dest='compute', default=False, action='store_true') - parser.add_argument('--rearrange', type=str, required=True) - parser.add_argument('--compute', type=str, required=True) + parser.add_argument('--rearrange', type=str, default='no', required=True) + parser.add_argument('--compute', type=str, default='no', required=True) # Parse the argument args = parser.parse_args() @@ -73,23 +79,24 @@ if __name__ == '__main__': ### parameters ### Categories = [] # to read Nb_instance = 1 - occ_target = 0.5 + occ_target = args.occlusion_target - dataset_src = f"/gpfsscratch/rech/uli/ubn15wo/data{args.dataset_id}" - #dataset_src = "/media/mahmoud/E/Fruits_easy/data" - #dataset_src = "/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data" + #dataset_src = f"/gpfsscratch/rech/uli/ubn15wo/data{args.dataset_id}" + dataset_src = "/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data" choice = "low" # depth of rgb resolution datas data_options = {"high": "ground_truth_rgb", "low": "ground_truth_depth"} dataset_type = data_options[choice] - dataset_name = f"/gpfsscratch/rech/uli/ubn15wo/GUIMOD_New_{choice}_{args.dataset_id}" + #dataset_name = f"/gpfsscratch/rech/uli/ubn15wo/GUIMOD_New_{choice}_{args.dataset_id}" + dataset_path = "/home/gduret/Documents/Datasets/" + dataset_name = f"FruitsBin_{choice}_{Nb_instance}_{occ_target}" #dataset_name = f"/gpfsscratch/rech/uli/ubn15wo/dataset_new{args.dataset_id}/s2rg/Fruits_all_medium/GUIMOD_{choice}" - list_categories = ["banana1", "kiwi1", "pear2", "apricot", "orange2", "peach1", "lemon2", "apple2" ] + list_categories = ["banana1", "kiwi1", "pear2", "apricot", "orange2", "peach1", "lemon2", "apple2"] Nb_camera = 15 #Nb_world = 10000 - generate_folders(dataset_name, list_categories, scenario) + generate_folders(dataset_path , dataset_name, list_categories, scenario) if choice == 'high': camera = np.matrix([[1386.4138492513919, 0.0, 960.5], @@ -117,7 +124,7 @@ if __name__ == '__main__': print("compute", args.compute) if args.rearrange == 'yes': - reform_data(dataset_src, dataset_name, dataset_type, Nb_camera, args.World_begin, args.Nb_worlds) + reform_data(dataset_src, dataset_path, dataset_type, Nb_camera, args.World_begin, args.Nb_worlds) objs = {"banana1": [ 0.02949700132012367249, 0.1511049866676330566, 0.06059300713241100311 ], "kiwi1": [ 0.04908600077033042908, 0.07206099480390548706, 0.04909799993038177490 ], @@ -136,17 +143,17 @@ if __name__ == '__main__': fps_points = apply_fps(pcd, 8) - np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_fps_3d.txt', fps_points) + np.savetxt(f'{dataset_path}/{dataset_name}/Generated/{categories}/{categories}_fps_3d.txt', fps_points) point_cloud_in_numpy = np.asarray(pcd.points) dim = calc_pts_diameter2(point_cloud_in_numpy) * 100 - np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_diameter.txt', np.array([dim])) + np.savetxt(f'{dataset_path}/{dataset_name}/Generated/{categories}/{categories}_diameter.txt', np.array([dim])) size_bb = objs[categories] ext = [x / 2 for x in size_bb] bbox = get_3D_bbox(ext) - np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_bbox_3d.txt', bbox) # save + np.savetxt(f'{dataset_path}/{dataset_name}/Generated/{categories}/{categories}_bbox_3d.txt', bbox) # save if args.compute == 'yes' : - process_compute(dataset_name, camera, new_camera, new_size, Nb_camera, args.World_begin, args.Nb_worlds, list_categories, occ_target, False) + process_compute(dataset_path, dataset_path+'/'+dataset_name, camera, new_camera, new_size, Nb_camera, args.World_begin, args.Nb_worlds, list_categories, occ_target, False) -- GitLab