diff --git a/compute_features.py b/compute_features.py index c048b49970da3da9354a9ee88fedf3ac30468e87..f2473af779e6b99f5150565b12121865a123fa59 100644 --- a/compute_features.py +++ b/compute_features.py @@ -89,16 +89,16 @@ def process_compute(data_name, camera, Nb_camera, World_begin, Nb_world, list_ca meta['Nb_instance_category'] = 1 - if not os.path.isfile(f'{data_name}/Generated/Meta_Gen/{categories}/{categories}.json'): - with open(f'{data_name}/Generated/Meta_Gen/{categories}/{categories}.json', mode='w') as f: + if not os.path.isfile(f'{data_name}/Generated/{categories}/Meta_Gen/{categories}.json'): + with open(f'{data_name}/Generated/{categories}/Meta_Gen/{categories}.json', mode='w') as f: feeds = {} feeds[meta['id_generated']]=meta f.write(json.dumps(feeds, indent=2)) else: - with open(f'{data_name}/Generated/Meta_Gen/{categories}/{categories}.json') as feedsjson: + with open(f'{data_name}/Generated/{categories}/Meta_Gen/{categories}.json') as feedsjson: feeds = json.load(feedsjson) feeds[meta['id_generated']]=meta - with open(f'{data_name}/Generated/Meta_Gen/{categories}/{categories}.json', mode='w') as f: + with open(f'{data_name}/Generated/{categories}/Meta_Gen/{categories}.json', mode='w') as f: f.write(json.dumps(feeds, indent=4)) # with open(f'{data_name}/Generated/Meta_Gen/{categories}/{categories}.json', "a") as meta_file: @@ -116,13 +116,13 @@ def process_compute(data_name, camera, Nb_camera, World_begin, Nb_world, list_ca 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 + np.save(f'{data_name}/Generated/{categories}/Pose_transformed/{p}.npy', num_arr) # save else: continue if data_Bbox_2d[k]['id'] == catergories_occ_array[categories][0]: bbox = bbox_2d(data_Bbox_2d[k]) - np.savetxt(f'{data_name}/Generated/Bbox/{categories}/{p}.txt', np.array(bbox).reshape((1, 4))) # save + np.savetxt(f'{data_name}/Generated/{categories}/Bbox/{p}.txt', np.array(bbox).reshape((1, 4))) # save else: continue @@ -130,13 +130,14 @@ def process_compute(data_name, camera, Nb_camera, World_begin, Nb_world, list_ca img = cv2.imread(f"{data_name}/Instance_Segmentation/{p}.png", cv2.IMREAD_UNCHANGED) # plt.imread(path) instance_img = instance(img, id) - cv2.imwrite(f"{data_name}/Generated/Instance_Mask/{categories}/{p}.png", 255*instance_img) + cv2.imwrite(f"{data_name}/Generated/{categories}/Instance_Mask/{p}.png", 255*instance_img) - img = image.imread(f"{data_name}/RGB/{p}.png") + img = cv2.imread(f"{data_name}/RGB/{p}.png") + cv2.imwrite(f"{data_name}/Generated/{categories}/RGB_Gen/{p}.png", img) np.set_printoptions(precision=15) - pose = np.load(f'{data_name}/Generated/Pose_transformed/{categories}/{p}.npy') + pose = np.load(f'{data_name}/Generated/{categories}/Pose_transformed/{p}.npy') #print(pose) R_exp = pose[0:3, 0:3] tVec = pose[0:3, 3] @@ -147,18 +148,32 @@ def process_compute(data_name, camera, Nb_camera, World_begin, Nb_world, list_ca # [0.0, 0.0, 1.0]]) - fps_points = np.loadtxt(f'{data_name}/Generated/FPS/{categories}_fps_3d.txt') + fps_points = np.loadtxt(f'{data_name}/Generated/{categories}/{categories}_fps_3d.txt') # process(pcd_bbox, pcd, R_exp, tVec, camera, img) + center = fps_points.mean(0) + fps_points = np.append(fps_points, [center], axis=0) + + points = process2(fps_points, R_exp, tVec, camera, img, vis) - out = np.zeros((1, 401)) + #out = np.zeros((1, )) + + out = [int(catergories_occ_array[categories][0])]# [catergories_occ_array[categories][0]] #obj_id #len have to be 1 !! + print(out) + - out[0] = catergories_occ_array[categories] #obj_id #len have to be 1 !! 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] + #out[0][ind] = point[0][0] / img.shape[1] + #[0][ind + 1] = point[0][1] / img.shape[0] + x = point[0][0] / img.shape[1] + y = point[0][1] / img.shape[0] + out.append(x) + out.append(y) ind += 2 - np.savetxt(f'{data_name}/Generated/FPS/{categories}/{p}.txt', out) + print("points" , points) + print("out" , out) + print("np.array(out).reshape(1, len(out))", np.array(out).reshape(1, len(out))) + np.savetxt(f'{data_name}/Generated/{categories}/FPS/{p}.txt', np.array(out).reshape(1, len(out))) #print("stop") with open(f'{data_name}/Generated/Count_{p}.json', mode='w') as f: diff --git a/main.py b/main.py index 9684bb75465b755337541a099157cae7031e8ef3..05d9dc567ff5e4b8ccdffc6c7d5cefa39d993a60 100644 --- a/main.py +++ b/main.py @@ -25,9 +25,9 @@ def generate_folders(name, list_categories): os.mkdir(f"{name}/{f}") else: for cat in list_categories: - is_exist2 = os.path.exists(f"{name}/Generated/{f}/{cat}") + is_exist2 = os.path.exists(f"{name}/Generated/{cat}/{f}") if not is_exist2: - os.makedirs(f"{name}/Generated/{f}/{cat}") + os.makedirs(f"{name}/Generated/{cat}/{f}") if __name__ == '__main__': @@ -60,18 +60,18 @@ if __name__ == '__main__': 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" + dst_bbox = f"{dataset_name}/Generated/{cat}/{cat.lower()}.ply" shutil.copy(src_bbox, dst_bbox) for categories in list_categories: - point_cloud = f'{dataset_name}/Generated/Models/{categories}/{categories.lower()}.ply' + point_cloud = f'{dataset_name}/Generated/{categories}/{categories.lower()}.ply' pcd = o3d.io.read_point_cloud(point_cloud) #print("pcd", pcd) - fps_points = apply_fps(pcd, 200) + fps_points = apply_fps(pcd, 8) #print(fps_points) - np.savetxt(f'{dataset_name}/Generated/FPS/{categories}_fps_3d.txt', fps_points) + np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_fps_3d.txt', fps_points) if choice == 'high':