From 4c76a56e9b03600e97d7bc489401f4ec39de8c36 Mon Sep 17 00:00:00 2001
From: Guillaume-Duret <guillaume.duret@ec-lyon.fr>
Date: Fri, 5 May 2023 16:49:52 +0200
Subject: [PATCH] compute label for yolo, gt.yml, training.txt, testing.txt for
 Densefusion

---
 compute_label.py | 78 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 compute_label.py

diff --git a/compute_label.py b/compute_label.py
new file mode 100644
index 0000000..559f303
--- /dev/null
+++ b/compute_label.py
@@ -0,0 +1,78 @@
+import numpy as np
+import yaml
+import os
+import argparse
+
+
+if __name__ == "__main__":
+    # Create the parser
+    parser = argparse.ArgumentParser()
+    # Add an argument
+    parser.add_argument('--path_dataset', type=str, required=True)
+    parser.add_argument('--target_folder', type=str, required=True)
+    # Parse the argument
+    args = parser.parse_args()
+
+    target_folder = args.target_folder
+
+    #objects = ["apple2", "banana1", "pear2"]
+    objects = ["apple2", "apricot", "banana1", "kiwi1", "lemon2", "orange2", "peach1", "pear2"]
+    #obj_ids = {"pear2": 17, "orange2": 18}
+
+    obj_ids = {"apple2": 1, "apricot": 2, "banana1": 3, "kiwi1": 4, "lemon2": 5, "orange2": 6, "peach1": 7, "pear2": 8}
+    #obj_ids = {"apple2": 1, "banana1": 3,  "pear2": 8}
+    
+    #path_data = "GUIMOD_low/Pose_transformed"
+    #path_data = "/gpfsscratch/rech/uli/ubn15wo/dataset1/s2rg/Fruits_all_medium/GUIMOD_low/Generated_Worlds_Training/orange2/Pose_transformed/"
+    #path_data = f"/gpfsscratch/rech/uli/ubn15wo/dataset1/s2rg/Fruits_all_medium/GUIMOD_low/{target_folder}/"
+    path_data = f"{args.path_dataset}/{target_folder}"
+
+    for obj in objects:
+        file = path_data + "/" + obj
+        #path_gt_obj = f"{obj_ids[obj]}/gt_new.yml"
+        path_gt_obj = f"/gpfsscratch/rech/uli/ubn15wo/DenseFusion/datasets/linemod/Linemod_preprocessed/data/0{obj_ids[obj]}/gt_{target_folder}.yml"
+        #path_bbox = "GUIMOD_low/Bbox/" + obj
+        path_bbox = f"{path_data}/{obj}/Bbox/"
+
+        object_dicts = {}
+        print(file)
+        path_poses = file + "/Pose_transformed"
+        print("poses ", path_poses)
+        print("list : ", os.listdir(path_poses))
+        list_poses = os.listdir(path_poses)
+
+        print("-------------------------------------------------------------------------------------------------------")
+        print("-------------------------------------------------------------------------------------------------------")
+        with open(f"/gpfsscratch/rech/uli/ubn15wo/DenseFusion/datasets/linemod/Linemod_preprocessed/data/0{obj_ids[obj]}/split_file_{target_folder}.txt", 'w') as f:
+            for filename2 in os.listdir(path_poses):
+                id_file2=filename2.split('.')[0]
+                print(id_file2+".png")
+                f.write(f'{id_file2}.png')
+                f.write('\n')
+
+        with open(path_gt_obj, 'w') as yaml_file:
+            for filename in os.listdir(path_poses):
+            #for i in range(num_rgb):
+                data_file = path_poses + "/" + filename
+                print("filename : ", filename)
+                #data_file = file + "/" + str(i) + ".npy"
+                #print(list_RGB[4].split('.')[0])
+                id_file=filename.split('.')[0]
+                print(id_file)
+                print(filename)
+                #final_path_bbox = path_bbox + "/" + str(i) + ".txt"
+                final_path_bbox = path_bbox + "/" + id_file + ".txt"
+                print(final_path_bbox)
+                bbox_file = open(final_path_bbox, "r")
+                line = bbox_file.readline()
+                bbox_string = line.split(" ")
+                bbox = [float(val) for val in bbox_string]
+                bbox2 = [int(bbox[0] * 0.5), int(bbox[1] * (2 / 3)), int(bbox[2] * 0.5), int(bbox[3] * (2 / 3))]
+                # print(bbox2)
+                bbox_file.close()
+
+                data = np.load(data_file)
+                cam_R_m2c = np.concatenate((data[0, 0:3], data[1, 0:3], data[2, 0:3]), axis=0).tolist()
+                cam_t_m2c = np.array((float(data[0, 3])*1000.0, float(data[1, 3])*1000.0, float(data[2, 3]*1000.0))).tolist()
+                object_dicts[id_file] = [{"cam_R_m2c": cam_R_m2c, "cam_t_m2c": cam_t_m2c, "obj_bb": bbox2, "obj_id": obj_ids[obj]}]
+            yaml.dump(object_dicts, yaml_file, default_flow_style=None)
-- 
GitLab