diff --git a/bbox_2d.py b/bbox_2d.py index f039ae370c38ba61b32b6da0f5bf534bd48dcd2b..4da8cb51db3ab9ae2d50ad3e1941548a45b25398 100644 --- a/bbox_2d.py +++ b/bbox_2d.py @@ -19,11 +19,11 @@ def bbox_2d(data_sample): return bbox_res -def generate_2d_bbox(data_name): +def generate_2d_bbox(data_name, Nb_camera, Nb_world): cont1, cont2, cont3 = 0, 0, 0 num_arr = 0 - for p in range(4995): + for p in range(1, Nb_camera*Nb_world +1 ): with open(f"{data_name}/Bbox_2d/{p}.json", 'r') as f: data = json.load(f) @@ -31,17 +31,17 @@ def generate_2d_bbox(data_name): if data[i]['id'] == 4: cont1 += 1 bbox = bbox_2d(data[i]) - np.savetxt(f'{data_name}/Bbox/Banana/{p}.txt', np.array(bbox).reshape((1, 4))) # save + np.savetxt(f'{data_name}/Bbox/banana1/{p}.txt', np.array(bbox).reshape((1, 4))) # save elif data[i]['id'] == 5: cont2 += 1 bbox = bbox_2d(data[i]) - np.savetxt(f'{data_name}/Bbox/Orange/{p}.txt', np.array(bbox).reshape((1, 4))) # save + np.savetxt(f'{data_name}/Bbox/orange2/{p}.txt', np.array(bbox).reshape((1, 4))) # save elif data[i]['id'] == 6: cont3 += 1 bbox = bbox_2d(data[i]) - np.savetxt(f'{data_name}/Bbox/Pear/{p}.txt', np.array(bbox).reshape((1, 4))) # save + np.savetxt(f'{data_name}/Bbox/pear2/{p}.txt', np.array(bbox).reshape((1, 4))) # save else: continue diff --git a/data_label.py b/data_label.py index 02cf8367cb8bfd629aa39de861aa5ac576cce527..919376f2c51012a7a5145827120aee0c856ee5ad 100644 --- a/data_label.py +++ b/data_label.py @@ -5,7 +5,7 @@ import numpy as np for im in range(4995): id_obj = 0.0 res_all = [] - for obj in ['banana_mask', 'orange_mask', 'pear_mask']: + for obj in ['banana1_mask', 'orange2_mask', 'pear2_mask']: res = [id_obj] image = cv2.imread(f"{obj}/{im}.png", 0) image = image/255.0 diff --git a/fps_alg.py b/fps_alg.py index 68632a80b2eff2e8553d936f0a41198e886a3fd3..1ba47529e55094f0d36c438685ec96831946b4e5 100644 --- a/fps_alg.py +++ b/fps_alg.py @@ -4,6 +4,7 @@ from matplotlib import pyplot as plt from matplotlib import image import cv2 from skimage.io import imshow +from pathlib import Path def fps(points, centroid, n_samples): @@ -162,37 +163,42 @@ def process(pcd_box, pcd2, R_exp, tVec, camera, img): # ============================================================================== -def generate_fps(data_name, camera, vis=False): +def generate_fps(data_name, camera, Nb_camera, Nb_world, list_objects, vis=False): # Read the point cloud - for obj in ["Banana", "Orange", "Pear"]: + for obj in list_objects: obj_id = 1 point_cloud = f'{data_name}/Models/{obj}/{obj.lower()}.ply' pcd = o3d.io.read_point_cloud(point_cloud) - fps_points = apply_fps(pcd, 8) + print("pcd", pcd) + + + fps_points = apply_fps(pcd, 200) np.savetxt(f'{data_name}/FPS/{obj}_fps_3d.txt', fps_points) - for i in range(4995): - img = image.imread(f"{data_name}/RGB/{i}.png") - - pose = np.load(f'{data_name}/Pose_transformed/{obj}/{i}.npy') - R_exp = pose[0:3, 0:3] - tVec = pose[0:3, 3] - - # camera = np.matrix([[1386.4138492513919, 0.0, 960.5], - # [0.0, 1386.4138492513919, 540.5], - # [0.0, 0.0, 1.0]]) - - # process(pcd_bbox, pcd, R_exp, tVec, camera, img) - points = process2(fps_points, R_exp, tVec, camera, img, vis) - out = np.zeros((1, 17)) - - out[0] = obj_id - ind = 1 - for point in points: - out[0][ind] = point[0][0] / img.shape[1] - out[0][ind + 1] = point[0][1] / img.shape[0] - ind += 2 - np.savetxt(f'{data_name}/FPS/{obj}/{i}.txt', out) - print("stop") + for i in range(1, Nb_camera*Nb_world +1): + path = Path(f'{data_name}/Pose_transformed/{obj}/{i}.npy') + if path.is_file(): + img = image.imread(f"{data_name}/RGB/{i}.png") + + pose = np.load(f'{data_name}/Pose_transformed/{obj}/{i}.npy') + R_exp = pose[0:3, 0:3] + tVec = pose[0:3, 3] + + # camera = np.matrix([[1386.4138492513919, 0.0, 960.5], + # [0.0, 1386.4138492513919, 540.5], + # [0.0, 0.0, 1.0]]) + + # process(pcd_bbox, pcd, R_exp, tVec, camera, img) + points = process2(fps_points, R_exp, tVec, camera, img, vis) + out = np.zeros((1, 401)) + + out[0] = obj_id + ind = 1 + for point in points: + out[0][ind] = point[0][0] / img.shape[1] + out[0][ind + 1] = point[0][1] / img.shape[0] + ind += 2 + np.savetxt(f'{data_name}/FPS/{obj}/{i}.txt', out) + print("stop") obj_id += 1 diff --git a/instance_mask.py b/instance_mask.py index ead299034d3419bbdd6b77cd3162c25cc3f3c5f4..f4429bc87a9dedd5f35be5aa89727982f803afa2 100644 --- a/instance_mask.py +++ b/instance_mask.py @@ -1,24 +1,135 @@ from matplotlib import pyplot as plt import cv2 +import json +from pathlib import Path + + + +def compute_categories_id(data_name, world): + #Category = 'banana1' + #Category = 'pear2' + #Category = "orange2" + # Opening JSON file + f = open(f'{data_name}/Meta/{world}.json') + + # returns JSON object as + # a dictionary + data = json.load(f) + + # Iterating through the json + # list + + catergories_label_to_id={} + catergories_id_to_label={} + catergories_instance_array_cat_to_id={} + catergories_instance_array_id_to_cat={} + + for k in data['categories']: + catergories_label_to_id[k['label']]=k['id'] + catergories_id_to_label[k['id']]=k['label'] + catergories_instance_array_cat_to_id[k['label']]=[] + + for k in data['objects']: + #print(k) + #catergories_instance_array[catergories_id_to_label[i['category_id']]] + catergories_instance_array_id_to_cat[k['id']] = catergories_id_to_label[k['category_id']] + catergories_instance_array_cat_to_id[catergories_id_to_label[k['category_id']]].append(k['id']) + # if i['category_id'] == id_category : + # print("Hello fruits instance") + # id_instances.append(i['id']) + # print(i['id']) + + # print("catergories_instance_array_cat_to_id : ", catergories_instance_array_cat_to_id) + # print("catergories_instance_array_id_to_cat : ", catergories_instance_array_id_to_cat) + + + # Closing file + f.close() + + + return catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id + + + +def compute_id_good_occ(data_name, count, catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id, Occ_wanted): + + f2 = open(f'{data_name}/Occlusion/{count}.json') + + data2 = json.load(f2) + + + catergories_occ_array = {} + + for cat in catergories_instance_array_cat_to_id : + #print(cat) + + catergories_occ_array[cat] = [] + + for i in data2: + #print('i : ',i) + #print(i['id']) + #print(id_instances) + if i['occlusion_value'] > 0.5 : + catergories_occ_array[catergories_instance_array_id_to_cat[i['id']]].append(i['id']) + + + + # if i['id'] in id_instances : + # print("Hello banana instance occ") + # if i['occlusion_value'] > 0.5 : + # id_instances_good.append(i['id']) + # print(i['id']) + # print(i['occlusion_value']) + + print(catergories_occ_array) + + + + + # Closing file + f2.close() + + return catergories_occ_array + + def instance(im, id): - im = im * 255 + #im = im * 255 im[im == id] = 255 im[im < 255] = 0 im = im / 255 - # plt.imshow(im, cmap='gray') - # plt.show() + #plt.imshow(im, cmap='gray') + #plt.show() return im -def generate_instance_mask(data_name): - ids = {"Banana": 108, "Orange": 117, "Pear": 121} +def generate_instance_mask(data_name, Nb_camera, Nb_world): + ids = {"banana1": 25, "orange2": 36, "pear2": 121} + for i in range(1, Nb_world + 1): # worlds + + #catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id = compute_categories_id(data_name, i) + + + + for j in range(1, Nb_camera+1): # cameras + k = ((i-1)*Nb_camera) + j + + #catergories_occ_array = compute_id_good_occ(data_name, p, catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id, occ_target) + + for key in ids.keys(): + id = ids[key] + path = Path(f"{data_name}/Instance_Segmentation/{k}.png") + if path.is_file(): + print("iddd : ",id) + img = cv2.imread(f"{data_name}/Instance_Segmentation/{k}.png", cv2.IMREAD_UNCHANGED) # plt.imread(path) + + #print("img[817][308] : ", img[817][308]) + print("img[308][817] : ", img[308][817]) + + + instance_img = instance(img, id) + print("instance_img[308][817] : ", instance_img[308][817]) - for i in range(4995): - for key in ids.keys(): - id = ids[key] - img = plt.imread(f"{data_name}/Mask/{i}.png") - instance_img = instance(img, id) - cv2.imwrite(f"{data_name}/Instance_Mask/{key}/{i}.png", instance_img) + cv2.imwrite(f"{data_name}/Instance_Mask/{key}/{k}.png", 255*instance_img) diff --git a/main.py b/main.py index 90c471b4d07237ef0dd9c8aca06a528d74d2b2c1..4e8a37f6801c7c6e2033524001c85f6022bb373f 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ import os import numpy as np +import json from prepare_data import reform_data from pose import transform_pose from bbox_2d import generate_2d_bbox @@ -14,31 +15,213 @@ def generate_folders(name): if not is_exist: os.mkdir(name) - folders = ["RGB", "Depth", "Mask", "Pose", "Bbox_2d", "Instance_Mask", "Models", "Pose_transformed", "Bbox", "FPS"] + folders = ["RGB", "Depth", "Mask", "Meta", "Pose", "Bbox_2d", "Bbox_2d_loose", "Instance_Segmentation", "Semantic_Segmentation", "Instance_Mask", "Occlusion", "Models", "Pose_transformed", "Bbox", "FPS"] for f in folders: is_exist = os.path.exists(f"{name}/{f}") if not is_exist: if f not in ["Instance_Mask", "Models", "Pose_transformed", "Bbox", "FPS"]: os.mkdir(f"{name}/{f}") else: - os.makedirs(f"{name}/{f}/Banana") - os.makedirs(f"{name}/{f}/Orange") - os.makedirs(f"{name}/{f}/Pear") + os.makedirs(f"{name}/{f}/banana1") + os.makedirs(f"{name}/{f}/orange2") + os.makedirs(f"{name}/{f}/pear2") + + + +def compute_categories_id(dataset_src, world): + #Category = 'banana1' + #Category = 'pear2' + #Category = "orange2" + # Opening JSON file + f = open(f'{dataset_src}/{world}/meta.json') + + # returns JSON object as + # a dictionary + data = json.load(f) + + # Iterating through the json + # list + + id_category = 0 + catergories_label_to_id={} + catergories_id_to_label={} + catergories_instance_array_cat_to_id={} + catergories_instance_array_id_to_cat={} + + for i in data['categories']: + catergories_label_to_id[i['label']]=i['id'] + catergories_id_to_label[i['id']]=i['label'] + catergories_instance_array_cat_to_id[i['label']]=[] + + for i in data['objects']: + print(i) + #catergories_instance_array[catergories_id_to_label[i['category_id']]] + catergories_instance_array_id_to_cat[i['id']] = catergories_id_to_label[i['category_id']] + catergories_instance_array_cat_to_id[catergories_id_to_label[i['category_id']]].append(i['id']) + # if i['category_id'] == id_category : + # print("Hello fruits instance") + # id_instances.append(i['id']) + # print(i['id']) + + print("catergories_instance_array_cat_to_id : ", catergories_instance_array_cat_to_id) + print("catergories_instance_array_id_to_cat : ", catergories_instance_array_id_to_cat) + + + # Closing file + f.close() + + + return catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id + + +def get_id_wanted(wanted_category): + #Category = 'banana1' + #Category = 'pear2' + #Category = "orange2" + # Opening JSON file + f = open('/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data/1/meta.json') + + # returns JSON object as + # a dictionary + data = json.load(f) + + # Iterating through the json + # list + + id_category = 0 + + for i in data['categories']: + print(i) + if i['label'] == wanted_category : + print("Hello fruits") + id_category = i['id'] + print(id_category) + + id_instances = [] + + for i in data['objects']: + print(i) + if i['category_id'] == id_category : + print("Hello fruits instance") + id_instances.append(i['id']) + print(i['id']) + + print(id_instances) + + # Closing file + f.close() + + return id_instances + + +def compute_id_good_occ(dataset_src, world, camera, type_data, frame, catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id, Occ_wanted): + + f2 = open(f'{dataset_src}/{world}/grabber_{camera}/{type_data}/occlusion/{frame}.json') + + data2 = json.load(f2) + + + catergories_occ_array = {} + + for cat in catergories_instance_array_cat_to_id : + #print(cat) + + catergories_occ_array[cat] = [] + + for i in data2: + #print('i : ',i) + #print(i['id']) + #print(id_instances) + if i['occlusion_value'] > 0.5 : + catergories_occ_array[catergories_instance_array_id_to_cat[i['id']]].append(i['id']) + + + + # if i['id'] in id_instances : + # print("Hello banana instance occ") + # if i['occlusion_value'] > 0.5 : + # id_instances_good.append(i['id']) + # print(i['id']) + # print(i['occlusion_value']) + + print(catergories_occ_array) + + + + + # Closing file + f2.close() + + return catergories_occ_array + + +def get_id_good_occ(Occ_wanted): + + f2 = open('/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data/1/grabber_1/ground_truth_rgb/occlusion/4_158000000.json') + + data2 = json.load(f2) + + id_instances_good = [] + + for i in data2: + print('i : ',i) + print(i['id']) + print(id_instances) + + if i['id'] in id_instances : + print("Hello banana instance occ") + if i['occlusion_value'] > 0.5 : + id_instances_good.append(i['id']) + print(i['id']) + print(i['occlusion_value']) + + print(id_instances_good) + + + + + # Closing file + f2.close() if __name__ == '__main__': - dataset_src = "/media/mahmoud/E/Fruits_easy/data" + #dataset_src = "/media/mahmoud/E/Fruits_easy/data" + + # futur parameters : + + + + Categories = [] # to read + Nb_instance = 1 + Occ_target = 0.5 + + + #Category = 'banana1' + Category = 'pear2' + #Category = "orange2" + + dataset_src = "/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data" + + + catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id = compute_categories_id(dataset_src, 1) + + + choice = "low" data_options = {"high": "ground_truth_rgb", "low": "ground_truth_depth"} + + dataset_type = data_options[choice] + compute_id_good_occ(dataset_src, 1, 1, dataset_type, "1_926000000", catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id, Occ_target) + dataset_name = f"GUIMOD_{choice}" generate_folders(dataset_name) - list_obj = ["Banana", "Orange", "Pear"] + list_obj = ["banana1", "orange2", "pear2"] for obj in list_obj: src_bbox = f"Models/{obj}/{obj.lower()}.ply" dst_bbox = f"{dataset_name}/Models/{obj}/{obj.lower()}.ply" @@ -55,9 +238,16 @@ if __name__ == '__main__': np.savetxt(f'{dataset_name}/camera_{choice}.txt', camera) - reform_data(dataset_src, dataset_name, dataset_type) - transform_pose(dataset_name) - generate_2d_bbox(dataset_name) - generate_instance_mask(dataset_name) - generate_fps(dataset_name, camera, False) - generate_3d_bbox(dataset_name) + # frame = "1_600000000" + frame = "1_926000000" + Nb_camera = 15 + Nb_world = 2 + reform_data(dataset_src, dataset_name, dataset_type, frame, Nb_camera, Nb_world) + + + + transform_pose(dataset_name, Nb_camera, Nb_world, Occ_target) + generate_2d_bbox(dataset_name, Nb_camera, Nb_world) + generate_instance_mask(dataset_name, Nb_camera, Nb_world) + generate_fps(dataset_name, camera, Nb_camera, Nb_world, list_obj, True) + #generate_3d_bbox(dataset_name) diff --git a/pose.py b/pose.py index ee0fd8bef453aba5508fc95e07dedf31047cbc49..0e4b6c258543bf3a22d44e3b25a7e6726fd5a13a 100644 --- a/pose.py +++ b/pose.py @@ -4,6 +4,73 @@ import json from scipy.spatial.transform import Rotation +def compute_categories_id(data_name, world): + #Category = 'banana1' + #Category = 'pear2' + #Category = "orange2" + # Opening JSON file + f = open(f'{data_name}/Meta/{world}.json') + + # returns JSON object as + # a dictionary + data = json.load(f) + + # Iterating through the json + # list + + catergories_label_to_id={} + catergories_id_to_label={} + catergories_instance_array_cat_to_id={} + catergories_instance_array_id_to_cat={} + + for k in data['categories']: + catergories_label_to_id[k['label']]=k['id'] + catergories_id_to_label[k['id']]=k['label'] + catergories_instance_array_cat_to_id[k['label']]=[] + + for k in data['objects']: + #print(k) + #catergories_instance_array[catergories_id_to_label[i['category_id']]] + catergories_instance_array_id_to_cat[k['id']] = catergories_id_to_label[k['category_id']] + catergories_instance_array_cat_to_id[catergories_id_to_label[k['category_id']]].append(k['id']) + # if i['category_id'] == id_category : + # print("Hello fruits instance") + # id_instances.append(i['id']) + # print(i['id']) + + print("catergories_instance_array_cat_to_id : ", catergories_instance_array_cat_to_id) + print("catergories_instance_array_id_to_cat : ", catergories_instance_array_id_to_cat) + + # Closing file + f.close() + + return catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id + + + +def compute_id_good_occ(data_name, count, catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id, Occ_wanted): + + f2 = open(f'{data_name}/Occlusion/{count}.json') + + data2 = json.load(f2) + catergories_occ_array = {} + + for cat in catergories_instance_array_cat_to_id : + #print(cat) + catergories_occ_array[cat] = [] + + for i in data2: + if i['occlusion_value'] > 0.5 : + catergories_occ_array[catergories_instance_array_id_to_cat[i['id']]].append(i['id']) + + print(catergories_occ_array) + + # Closing file + f2.close() + + return catergories_occ_array + + def convert2(xyz): (R, P, Y) = (xyz[0], xyz[1], xyz[2]) Q = Rotation.from_euler(seq='xyz', angles=[R, P, Y], degrees=False).as_quat() @@ -13,54 +80,67 @@ def convert2(xyz): return rotation -def transform_pose(data_name): +def transform_pose(data_name, Nb_camera, Nb_world, occ_target): transformation = np.matrix([[0.0000000, -1.0000000, 0.0000000], [0.0000000, 0.0000000, -1.0000000], [1.0000000, 0.0000000, 0.0000000]]) cont1, cont2, cont3 = 0, 0, 0 - for p in range(4995): - with open(f'{data_name}/Pose/{p}.json', 'r') as f: - data = json.load(f) - - for i in range(len(data)): - if data[i]['id'] == 4: - cont1 += 1 - rpy = data[i]['pose']['rpy'] - rot = convert2(rpy) - R_exp = transformation @ rot - R_exp = np.array(R_exp) - - xyz = data[i]['pose']['xyz'] - T_exp = transformation @ xyz - T_exp = np.array(T_exp) - num_arr = np.c_[R_exp, T_exp[0]] - np.save(f'{data_name}/Pose_transformed/Banana/{p}.npy', num_arr) # save - - elif data[i]['id'] == 5: - cont2 += 1 - rpy = data[i]['pose']['rpy'] - rot = convert2(rpy) - R_exp = transformation @ rot - R_exp = np.array(R_exp) - - xyz = data[i]['pose']['xyz'] - T_exp = transformation @ xyz - T_exp = np.array(T_exp) - num_arr = np.c_[R_exp, T_exp[0]] - np.save(f'{data_name}/Pose_transformed/Orange/{p}.npy', num_arr) # save - elif data[i]['id'] == 6: - cont3 += 1 - rpy = data[i]['pose']['rpy'] - rot = convert2(rpy) - R_exp = transformation @ rot - R_exp = np.array(R_exp) - - xyz = data[i]['pose']['xyz'] - T_exp = transformation @ xyz - T_exp = np.array(T_exp) - num_arr = np.c_[R_exp, T_exp[0]] - np.save(f'{data_name}/Pose_transformed/Pear/{p}.npy', num_arr) # save - else: - continue + for i in range(1, Nb_world + 1): # worlds + + catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id = compute_categories_id(data_name, i) + + for j in range(1, Nb_camera+1): # cameras + p = ((i-1)*Nb_camera) + j + + catergories_occ_array = compute_id_good_occ(data_name, p, catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id, occ_target) + + with open(f'{data_name}/Pose/{p}.json', 'r') as f: + data = json.load(f) + #print(data) + print("len(data)", len(data)) + + for k in range(len(data)): + + + if len(catergories_occ_array['banana1']) == 1 and data[k]['id'] == catergories_occ_array['banana1'][0]: + cont1 += 1 + rpy = data[k]['pose']['rpy'] + rot = convert2(rpy) + R_exp = transformation @ rot + R_exp = np.array(R_exp) + + xyz = data[k]['pose']['xyz'] + T_exp = transformation @ xyz + T_exp = np.array(T_exp) + num_arr = np.c_[R_exp, T_exp[0]] + np.save(f'{data_name}/Pose_transformed/banana1/{p}.npy', num_arr) # save + + elif len(catergories_occ_array['orange2']) == 1 and data[k]['id'] == catergories_occ_array['orange2'][0]: + cont2 += 1 + rpy = data[k]['pose']['rpy'] + rot = convert2(rpy) + R_exp = transformation @ rot + R_exp = np.array(R_exp) + + xyz = data[k]['pose']['xyz'] + T_exp = transformation @ xyz + T_exp = np.array(T_exp) + num_arr = np.c_[R_exp, T_exp[0]] + np.save(f'{data_name}/Pose_transformed/orange2/{p}.npy', num_arr) # save + + elif len(catergories_occ_array['pear2']) == 1 and data[k]['id'] == catergories_occ_array['pear2'][0]: + cont3 += 1 + rpy = data[k]['pose']['rpy'] + rot = convert2(rpy) + R_exp = transformation @ rot + R_exp = np.array(R_exp) + + xyz = data[k]['pose']['xyz'] + T_exp = transformation @ xyz + T_exp = np.array(T_exp) + num_arr = np.c_[R_exp, T_exp[0]] + np.save(f'{data_name}/Pose_transformed/pear2/{p}.npy', num_arr) # save + else: + continue print(cont1, cont2, cont3) diff --git a/prepare_data.py b/prepare_data.py index 394d8bf83c939a7adcefc60b91ff857c101d871d..42ec5802d0cf65b28162f07ae9ea6682aea98c48 100644 --- a/prepare_data.py +++ b/prepare_data.py @@ -1,39 +1,48 @@ import shutil -def reform_data(src, data_name, data_option): - k = 0 - for i in range(1, 1000): - g = 0 - for j in range(1, 6): - count = (k*5) + g - +def reform_data(src, data_name, data_option, frame, Nb_camera, Nb_world): + for i in range(1, Nb_world + 1): # worlds + src_meta = f"{src}/{i}/meta.json" + dst_meta = f"{data_name}/Meta/{i}.json" + shutil.copy(src_meta, dst_meta) + for j in range(1, Nb_camera+1): # cameras + count = ((i-1)*Nb_camera) + j if data_option == "ground_truth_rgb": - src_img = f"{src}/{i}/grabber_{j}/color/image/0_0.png" + src_img = f"{src}/{i}/grabber_{j}/color/image/{frame}.png" dst_img = f"{data_name}/RGB/{count}.png" else: - src_img = f"{src}/{i}/grabber_{j}/depth/image/0_0.png" + src_img = f"{src}/{i}/grabber_{j}/depth/image/{frame}.png" dst_img = f"{data_name}/RGB/{count}.png" shutil.copy(src_img, dst_img) - src_mask = f"{src}/{i}/grabber_{j}/{data_option}/semantic_map/0_0.png" - dst_mask = f"{data_name}/Mask/{count}.png" - shutil.copy(src_mask, dst_mask) + src_id = f"{src}/{i}/grabber_{j}/{data_option}/id_map/{frame}.png" + dst_id = f"{data_name}/Instance_Segmentation/{count}.png" + shutil.copy(src_id, dst_id) + + src_semantic = f"{src}/{i}/grabber_{j}/{data_option}/semantic_map/{frame}.png" + dst_semantic = f"{data_name}/Semantic_Segmentation/{count}.png" + shutil.copy(src_semantic, dst_semantic) - src_path_pose = f"{src}/{i}/grabber_{j}/{data_option}/3d_pose/0_0.json" + src_path_pose = f"{src}/{i}/grabber_{j}/{data_option}/3d_pose/{frame}.json" dst_path_pose = f"{data_name}/Pose/{count}.json" shutil.copy(src_path_pose, dst_path_pose) - src_depth = f"{src}/{i}/grabber_{j}/depth/depth_map/0_0.tiff" + src_path_occlusion = f"{src}/{i}/grabber_{j}/{data_option}/occlusion/{frame}.json" + dst_path_occlusion = f"{data_name}/Occlusion/{count}.json" + shutil.copy(src_path_occlusion, dst_path_occlusion) + + src_depth = f"{src}/{i}/grabber_{j}/depth/depth_map/{frame}.tiff" dst_depth = f"{data_name}/Depth/{count}.tiff" shutil.copy(src_depth, dst_depth) - src_bbox = f"{src}/{i}/grabber_{j}/{data_option}/2d_detection/0_0.json" + src_bbox = f"{src}/{i}/grabber_{j}/{data_option}/2d_detection/{frame}.json" dst_bbox = f"{data_name}/Bbox_2d/{count}.json" shutil.copy(src_bbox, dst_bbox) - g += 1 - k += 1 + src_bbox_loose = f"{src}/{i}/grabber_{j}/{data_option}/2d_detection_loose/{frame}.json" + dst_bbox_loose = f"{data_name}/Bbox_2d_loose/{count}.json" + shutil.copy(src_bbox_loose, dst_bbox_loose) diff --git a/read_dataset.py b/read_dataset.py index a2057cb224cd33a321a0799afc194c27fd16e3e9..a9da4c8469afa32680453747a3e682cc0b8360c4 100644 --- a/read_dataset.py +++ b/read_dataset.py @@ -26,9 +26,9 @@ import json #Category = 'banana1' Category = 'pear2' - +#Category = "orange2" # Opening JSON file -f = open('/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data/6/meta.json') +f = open('/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data/1/meta.json') # returns JSON object as # a dictionary @@ -60,7 +60,7 @@ print(id_instances) # Closing file f.close() -f2 = open('/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data/6/grabber_1/ground_truth_rgb/occlusion/4_158000000.json') +f2 = open('/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data/1/grabber_1/ground_truth_rgb/occlusion/4_158000000.json') data2 = json.load(f2) diff --git a/resize.py b/resize.py index 7060013971359c71f2cc04630ddaaf33e16b7f16..70cc608640bcb86bab7e2941ba3b7e98659a96c6 100644 --- a/resize.py +++ b/resize.py @@ -38,14 +38,14 @@ if __name__ == '__main__': depth = cv2.resize(cv2.imread(f"{dataset_name}/Depth/{i}.tiff"), new_size) - banana_mask = cv2.resize(cv2.imread(f"{dataset_name}/Instance_Mask/Banana/{i}.png"), new_size) - cv2.imwrite(f"banana_mask/{i}.png", banana_mask*255) + banana_mask = cv2.resize(cv2.imread(f"{dataset_name}/Instance_Mask/banana1/{i}.png"), new_size) + cv2.imwrite(f"banana1_mask/{i}.png", banana_mask*255) - orange_mask = cv2.resize(cv2.imread(f"{dataset_name}/Instance_Mask/Orange/{i}.png"), new_size) - cv2.imwrite(f"orange_mask/{i}.png", orange_mask*255) + orange_mask = cv2.resize(cv2.imread(f"{dataset_name}/Instance_Mask/orange2/{i}.png"), new_size) + cv2.imwrite(f"orange2_mask/{i}.png", orange_mask*255) - Pear_mask = cv2.resize(cv2.imread(f"{dataset_name}/Instance_Mask/Pear/{i}.png"), new_size) - cv2.imwrite(f"pear_mask/{i}.png", Pear_mask*255) + Pear_mask = cv2.resize(cv2.imread(f"{dataset_name}/Instance_Mask/pear2/{i}.png"), new_size) + cv2.imwrite(f"pear2_mask/{i}.png", Pear_mask*255) print("Done") diff --git a/test_resize.py b/test_resize.py index c014c5975f1ef22a590f3e70f8476481789afea2..58177e3b28c9f070922cbad2000c4f8b2bf8d505 100644 --- a/test_resize.py +++ b/test_resize.py @@ -166,6 +166,7 @@ def generate_fps(data_name, camera, vis=False, resize=False): # Read the point cloud for obj in ["Banana"]: + sfefcij obj_id = 0 point_cloud = f'{data_name}/Models/{obj}/{obj.lower()}.ply' pcd = o3d.io.read_point_cloud(point_cloud)