diff --git a/compute_features.py b/compute_features.py index 958e47f89dca4ea4ebc04d910b9204f8bcd2dca0..92ba8f9a2bc70c1509799ed81c97019fbec56fe5 100644 --- a/compute_features.py +++ b/compute_features.py @@ -10,7 +10,7 @@ from pose import convert2 from matplotlib import image from fps_alg import process2 import os - +from PIL import Image def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, World_begin, Nb_world, list_categories, occ_target, vis): transformation = np.matrix([[0.0000000, -1.0000000, 0.0000000], @@ -88,7 +88,7 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl if categories in categories_occ_array.keys(): Nb_instance = len(categories_array[categories]) Nb_instance_occ = len(categories_occ_array[categories]) - + for scenario_loop in scenarios: meta = {} @@ -155,6 +155,21 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl id = categories_occ_array[categories][0] img = cv2.imread(f"{data_name}/Instance_Segmentation/{p}.png", cv2.IMREAD_UNCHANGED) # plt.imread(path) + + depth = Image.open(f"{data_name}/Depth/{p}.tiff") + print(f"{data_name}/Depth/{p}.tiff") + for scenario_loop in scenarios: + if not destination_folders[scenario_loop] == "dont_save" : + depth_array = np.asarray(depth.getdata()).reshape(depth.size[1], depth.size[0]) + depth1 = cv2.resize(np.array(depth), new_size) + depth2 = depth1 * 1000 + depth3 = depth2.astype(np.uint32) + resized = Image.fromarray(depth3) + depth_high = Image.fromarray(depth_array) + #img2 = np.asarray(res.getdata()).reshape(res.size[1], res.size[0]) + print(f"{data_name}/{destination_folders[scenario_loop]}/{categories}/Depth_resized/{p}.png") + #depth_high.save(f"{data_name}/{destination_folders[scenario_loop]}/{categories}/Depth_Gen/{p}.png") + resized.save(f"{data_name}/{destination_folders[scenario_loop]}/{categories}/Depth_resized/{p}.png") instance_img = instance(img, id) for scenario_loop in scenarios: diff --git a/main.py b/main.py index 8405c9c241a7f9c43bcce957654d0e6a3c6e221c..03a0b98e1b5ce080d59d97545c5d625def77c25c 100644 --- a/main.py +++ b/main.py @@ -8,16 +8,17 @@ import open3d as o3d from scipy.spatial import distance import argparse + def generate_folders(name, list_categories, scenario): is_exist = os.path.exists(name) if not is_exist: os.mkdir(name) - folders = ["RGB", "RGB_Gen", "RGB_resized", "Meta_Gen", "Depth", "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"] + 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"] for f in folders: is_exist = os.path.exists(f"{name}/{f}") if not is_exist: - if f not in ["RGB_Gen", "RGB_resized", "Instance_Mask", "Labels", "Instance_Mask_resized", "Meta_Gen", "Models", "Pose_transformed", "Bbox", "Bbox_3d_Gen", "FPS" , "FPS_resized"]: - os.mkdir(f"{name}/{f}") + 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 else: for cat in list_categories: is_exist2 = os.path.exists(f"{name}/Generated/{cat}") @@ -60,8 +61,10 @@ if __name__ == '__main__': 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('--rearrange', type=bool, required=True) - parser.add_argument('--compute', type=bool, 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) # Parse the argument args = parser.parse_args() @@ -110,8 +113,10 @@ if __name__ == '__main__': new_camera = trans @ camera #np.savetxt(f'{dataset_name}/Generated/camera_{choice}.txt', camera) + print("rearrange", args.rearrange) + print("compute", args.compute) - if args.rearrange : + if args.rearrange == 'yes': reform_data(dataset_src, dataset_name, dataset_type, Nb_camera, args.World_begin, args.Nb_worlds) objs = {"banana1": [ 0.02949700132012367249, 0.1511049866676330566, 0.06059300713241100311 ], @@ -142,6 +147,6 @@ if __name__ == '__main__': bbox = get_3D_bbox(ext) np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_bbox_3d.txt', bbox) # save - if args.compute : + 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)