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':