diff --git a/bbox_2d.py b/bbox_2d.py index c8513ae7ee994af979c4282d559ffb1eb52c69ef..451286288c8844f0b8aa533bd86034f21d1a4d2c 100644 --- a/bbox_2d.py +++ b/bbox_2d.py @@ -3,6 +3,95 @@ import numpy as np import json +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 bbox_2d(data_sample): center = data_sample['bbox']['center'] @@ -19,31 +108,34 @@ def bbox_2d(data_sample): return bbox_res -def generate_2d_bbox(data_name, Nb_camera, Nb_world): +def generate_2d_bbox(data_name, Nb_camera, Nb_world, list_categories, occ_target): cont1, cont2, cont3 = 0, 0, 0 num_arr = 0 - 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) - - for i in range(len(data)): - if data[i]['id'] == 4: - cont1 += 1 - bbox = bbox_2d(data[i]) - np.savetxt(f'{data_name}/Generated/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}/Generated/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}/Generated/Bbox/pear2/{p}.txt', np.array(bbox).reshape((1, 4))) # 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}/Bbox_2d/{p}.json", 'r') as f: + data = json.load(f) + + for k in range(len(data)): + + for categories in list_categories: + + if len(catergories_occ_array[categories]) == 1 and data[k]['id'] == catergories_occ_array[categories][0]: + + cont1 += 1 + bbox = bbox_2d(data[k]) + np.savetxt(f'{data_name}/Generated/Bbox/{categories}/{p}.txt', np.array(bbox).reshape((1, 4))) # save + else: + continue print(cont1, cont2, cont3) diff --git a/fps_alg.py b/fps_alg.py index 6ab1870191ebaf7a61a1355ef614309ed94092f3..a1f035f5468e029c48882960fd2935b8989de4cd 100644 --- a/fps_alg.py +++ b/fps_alg.py @@ -106,8 +106,13 @@ def process2(pcd, R_exp, tVec, camera, img, vis= True): # pcd_fps.points = o3d.utility.Vector3dVector(pcd) camera = np.array(camera) + print(R_exp) R_exp = np.array(R_exp, dtype="float64") + print(R_exp) + print(tVec) tVec = np.array(tVec, dtype="float64") + print(tVec) + pcd_fps_numpy = np.asarray(pcd) keypoint_2d = cv2.projectPoints(pcd_fps_numpy, R_exp, tVec, camera, np.zeros(shape=[5, 1], dtype='float64')) @@ -132,7 +137,10 @@ def process(pcd_box, pcd2, R_exp, tVec, camera, img): camera = np.array(camera) R_exp = np.array(R_exp, dtype="float64") + print(R_exp) tVec = np.array(tVec, dtype="float64") + print(tVec) + pcd2_in_numpy2 = np.asarray(pcd2.points) pcd2_in_numpy = pcd_box @@ -181,10 +189,16 @@ def generate_fps(data_name, camera, Nb_camera, Nb_world, list_objects, vis=False if path.is_file(): img = image.imread(f"{data_name}/RGB/{i}.png") + + np.set_printoptions(precision=15) pose = np.load(f'{data_name}/Generated/Pose_transformed/{obj}/{i}.npy') + print(pose) R_exp = pose[0:3, 0:3] tVec = pose[0:3, 3] + print(tVec) + + # camera = np.matrix([[1386.4138492513919, 0.0, 960.5], # [0.0, 1386.4138492513919, 540.5], # [0.0, 0.0, 1.0]]) diff --git a/instance_mask.py b/instance_mask.py index 6e7b7e2056c9d76c1b582eb20f931a6c0550d380..5ad4d4eb81cab7ce958f4c790a9fa9f6e96f36ea 100644 --- a/instance_mask.py +++ b/instance_mask.py @@ -104,33 +104,39 @@ def instance(im, id): return im -def generate_instance_mask(data_name, Nb_camera, Nb_world): - ids = {"banana1": 25, "orange2": 36, "pear2": 121} +def generate_instance_mask(data_name, Nb_camera, Nb_world,list_categories, occ_target): + 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) + 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) + catergories_occ_array = compute_id_good_occ(data_name, k, catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id, occ_target) + + + for categories in list_categories: + + if len(catergories_occ_array[categories]) == 1 : + + + path = Path(f"{data_name}/Instance_Segmentation/{k}.png") + if path.is_file(): + id = catergories_occ_array[categories][0] + 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]) - #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]) - instance_img = instance(img, id) - print("instance_img[308][817] : ", instance_img[308][817]) + cv2.imwrite(f"{data_name}/Generated/Instance_Mask/{categories}/{k}.png", 255*instance_img) - cv2.imwrite(f"{data_name}/Generated/Instance_Mask/{key}/{k}.png", 255*instance_img) diff --git a/main.py b/main.py index f62320abd6b79515c64d11865f0248d23c74d679..e5d7d92dd5e63166e8e162d47049ec831ccc4bc6 100644 --- a/main.py +++ b/main.py @@ -10,30 +10,14 @@ from bbox_3d import generate_3d_bbox import shutil -def generate_folders(name): - is_exist = os.path.exists(name) - if not is_exist: - os.mkdir(name) - - 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 ["RGB_Gen", "Instance_Mask", "Models", "Pose_transformed", "Bbox", "FPS"]: - os.mkdir(f"{name}/{f}") - else: - os.makedirs(f"{name}/Generated/{f}/banana1") - os.makedirs(f"{name}/Generated/{f}/orange2") - os.makedirs(f"{name}/Generated/{f}/pear2") - -def compute_categories_id(dataset_src, world): +def compute_categories_id(data_name, world): #Category = 'banana1' #Category = 'pear2' #Category = "orange2" # Opening JSON file - f = open(f'{dataset_src}/{world}/meta.json') + f = open(f'{data_name}/Meta/{world}.json') # returns JSON object as # a dictionary @@ -42,29 +26,28 @@ def compute_categories_id(dataset_src, world): # 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 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 i in data['objects']: - print(i) + for k in data['objects']: + #print(k) #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']) + 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) + # 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 @@ -73,115 +56,178 @@ def compute_categories_id(dataset_src, world): return catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id +def generate_folders(name, list_categories): + is_exist = os.path.exists(name) + if not is_exist: + os.mkdir(name) + + 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 ["RGB_Gen", "Instance_Mask", "Models", "Pose_transformed", "Bbox", "FPS"]: + os.mkdir(f"{name}/{f}") + else: + for cat in list_categories: + os.makedirs(f"{name}/Generated/{f}/{cat}") + -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') + + +# 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) +# # returns JSON object as +# # a dictionary +# data = json.load(f) - # Iterating through the json - # list +# # Iterating through the json +# # list - id_category = 0 +# 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']: - print(i) - if i['label'] == wanted_category : - print("Hello fruits") - id_category = i['id'] - print(id_category) +# 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']]=[] - id_instances = [] +# 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']) - 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("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) - print(id_instances) - # Closing file - f.close() +# # Closing file +# f.close() - return id_instances +# return catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id -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') +# 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 - data2 = json.load(f2) +# 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) - catergories_occ_array = {} +# id_instances = [] - for cat in catergories_instance_array_cat_to_id : - #print(cat) +# 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']) - catergories_occ_array[cat] = [] +# print(id_instances) - 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']) +# # Closing file +# f.close() +# return 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']) +# 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): - print(catergories_occ_array) +# f2 = open(f'{dataset_src}/{world}/grabber_{camera}/{type_data}/occlusion/{frame}.json') +# data2 = json.load(f2) +# catergories_occ_array = {} - # Closing file - f2.close() +# for cat in catergories_instance_array_cat_to_id : +# #print(cat) - return catergories_occ_array +# 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']) -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) +# # 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']) - id_instances_good = [] +# print(catergories_occ_array) - 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() +# return catergories_occ_array - # Closing file - f2.close() +# 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__': @@ -191,16 +237,13 @@ if __name__ == '__main__': Categories = [] # to read Nb_instance = 1 - Occ_target = 0.5 + occ_target = 0.5 + #catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id = compute_categories_id(dataset_name, 1) - #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", @@ -208,15 +251,17 @@ if __name__ == '__main__': 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) + #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 = ["banana1", "orange2", "pear2"] - for obj in list_obj: - src_bbox = f"Models/{obj}/{obj.lower()}.ply" - dst_bbox = f"{dataset_name}/Generated/Models/{obj}/{obj.lower()}.ply" + list_categories = ["banana1", "kiwi1", "pear2", "strawberry1", "apricot", "orange2", "peach1", "lemon2", "apple2" ] + generate_folders(dataset_name, list_categories) + + + for cat in list_categories: + src_bbox = f"Models/{cat}/{cat.lower()}.ply" + dst_bbox = f"{dataset_name}/Generated/Models/{cat}/{cat.lower()}.ply" shutil.copy(src_bbox, dst_bbox) if choice == 'high': @@ -236,8 +281,8 @@ if __name__ == '__main__': 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, False) + transform_pose(dataset_name, Nb_camera, Nb_world, list_categories, occ_target) + generate_2d_bbox(dataset_name, Nb_camera, Nb_world, list_categories, occ_target) + generate_instance_mask(dataset_name, Nb_camera, Nb_world, list_categories, occ_target) + generate_fps(dataset_name, camera, Nb_camera, Nb_world, list_categories, True) #generate_3d_bbox(dataset_name) diff --git a/pose.py b/pose.py index 4f0293e529d1908cab06e52ddeaebf406abc7b09..6f8e477f506260722826c2b3d63b9c6fcc6379bc 100644 --- a/pose.py +++ b/pose.py @@ -80,7 +80,7 @@ def convert2(xyz): return rotation -def transform_pose(data_name, Nb_camera, Nb_world, occ_target): +def transform_pose(data_name, Nb_camera, Nb_world, list_categories, occ_target): transformation = np.matrix([[0.0000000, -1.0000000, 0.0000000], [0.0000000, 0.0000000, -1.0000000], [1.0000000, 0.0000000, 0.0000000]]) @@ -94,6 +94,9 @@ def transform_pose(data_name, Nb_camera, Nb_world, occ_target): catergories_occ_array = compute_id_good_occ(data_name, p, catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id, occ_target) + + ### Generate Poses ### + with open(f'{data_name}/Pose/{p}.json', 'r') as f: data = json.load(f) #print(data) @@ -101,46 +104,22 @@ def transform_pose(data_name, Nb_camera, Nb_world, occ_target): 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}/Generated/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}/Generated/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}/Generated/Pose_transformed/pear2/{p}.npy', num_arr) # save - else: - continue + for categories in list_categories: + + if len(catergories_occ_array[categories]) == 1 and data[k]['id'] == catergories_occ_array[categories][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}/Generated/Pose_transformed/{categories}/{p}.npy', num_arr) # save + else: + continue + print(cont1, cont2, cont3)