Skip to content
Snippets Groups Projects
Commit 6b02ec31 authored by Guillaume Duret's avatar Guillaume Duret
Browse files

Merge branch 'dev' of https://gitlab.liris.cnrs.fr/maali/guimod into dev

parents 50fd07f6 ac710fa6
No related branches found
No related tags found
No related merge requests found
...@@ -21,7 +21,7 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl ...@@ -21,7 +21,7 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl
destination_folders_list = {} destination_folders_list = {}
for scenario_loop in scenarios: for scenario_loop in scenarios:
destination_folders_list[scenario_loop] = [f"Generated_{scenario_loop}_Testing", f"Generated_{scenario_loop}_Evaluating", f"Generated_{scenario_loop}_Training" ] destination_folders_list[scenario_loop] = [f"Generated_{scenario_loop}_Testing", f"Generated_{scenario_loop}_Evaluating", f"Generated_{scenario_loop}_Training", f"Generated_{scenario_loop}_dont_save" ]
list_count_categories = {} list_count_categories = {}
for scenario_loop in scenarios : for scenario_loop in scenarios :
...@@ -33,10 +33,9 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl ...@@ -33,10 +33,9 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl
for i in range(World_begin, World_begin + Nb_world): # worlds for i in range(World_begin, World_begin + Nb_world): # worlds
print(i) if i > 8000 :
if i > 4 :
destination_folders["Worlds"] = f"Generated_Worlds_Testing" destination_folders["Worlds"] = f"Generated_Worlds_Testing"
elif i > 3 : elif i > 6000 :
destination_folders["Worlds"] = f"Generated_Worlds_Evaluating" destination_folders["Worlds"] = f"Generated_Worlds_Evaluating"
else : else :
destination_folders["Worlds"] = f"Generated_Worlds_Training" destination_folders["Worlds"] = f"Generated_Worlds_Training"
...@@ -53,14 +52,14 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl ...@@ -53,14 +52,14 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl
else : else :
destination_folders["Cameras"] = f"Generated_Cameras_Training" destination_folders["Cameras"] = f"Generated_Cameras_Training"
if i > 4 and j > 12 : if i > 8000 and j > 12 :
destination_folders["Mix_all"] = f"Generated_Mix_all_Testing" destination_folders["Mix_all"] = f"Generated_Mix_all_Testing"
elif i > 3 and i <=4 and j > 9 and j >= 12 : elif i > 6000 and i <=8000 and j > 9 and j >= 12 :
destination_folders["Mix_all"] = f"Generated_Mix_all_Evaluating" destination_folders["Mix_all"] = f"Generated_Mix_all_Evaluating"
elif i <= 3 and j <= 9 : elif i <= 6000 and j <= 9 :
destination_folders["Mix_all"] = f"Generated_Mix_all_Training" destination_folders["Mix_all"] = f"Generated_Mix_all_Training"
else : else :
destination_folders["Mix_all"] = "dont_save" destination_folders["Mix_all"] = f"Generated_Mix_all_dont_save"
categories_occ_array, categories_array = compute_id_good_occ(data_name, p, categories_instance_array_id_to_cat, categories_instance_array_cat_to_id, occ_target) categories_occ_array, categories_array = compute_id_good_occ(data_name, p, categories_instance_array_id_to_cat, categories_instance_array_cat_to_id, occ_target)
...@@ -79,10 +78,10 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl ...@@ -79,10 +78,10 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl
raise TypeError("size of datas are differents !!") raise TypeError("size of datas are differents !!")
for scenario_loop in scenarios: for scenario_loop in scenarios:
if not destination_folders[scenario_loop] == "dont_save" : for destination_folder_loop in destination_folders_list[scenario_loop] :
if os.path.isfile(f'{data_name}/{destination_folders[scenario_loop]}/Count_{p-1}.json'): if os.path.isfile(f'{data_name}/{destination_folder_loop}/Count_{p-1}.json'):
with open(f'{data_name}/{destination_folders[scenario_loop]}/Count_{p-1}.json') as f: with open(f'{data_name}/{destination_folder_loop}/Count_{p-1}.json') as f:
list_count_categories[scenario_loop][destination_folders[scenario_loop]] = json.load(f) list_count_categories[scenario_loop][destination_folder_loop] = json.load(f)
#res_all = [] #res_all = []
for categories in list_categories: for categories in list_categories:
...@@ -112,17 +111,17 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl ...@@ -112,17 +111,17 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl
meta['camera'] = f"grabber_{j}" meta['camera'] = f"grabber_{j}"
meta['occlusion'] = occ_target meta['occlusion'] = occ_target
meta['Nb_instance_category'] = Nb_instance meta['Nb_instance_category'] = Nb_instance
if not os.path.isfile(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Meta_Gen/{categories}.json'): if not os.path.isfile(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Meta_Gen/{categories}_{p}.json'):
with open(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Meta_Gen/{categories}.json', mode='w') as f: with open(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Meta_Gen/{categories}_{p}.json', mode='w') as f:
feeds = {} feeds = {}
feeds[meta['id_generated']]=meta feeds[meta['id_generated']]=meta
f.write(json.dumps(feeds, indent=2)) f.write(json.dumps(feeds, indent=2))
else: else:
with open(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Meta_Gen/{categories}.json') as feedsjson: with open(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Meta_Gen/{categories}_{p}.json') as feedsjson:
feeds = json.load(feedsjson) feeds = json.load(feedsjson)
feeds[meta['id_generated']]=meta feeds[meta['id_generated']]=meta
with open(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Meta_Gen/{categories}.json', mode='w') as f: with open(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Meta_Gen/{categories}_{p}.json', mode='w') as f:
f.write(json.dumps(feeds, indent=4)) f.write(json.dumps(feeds, indent=4))
if (Nb_instance_occ == 1 and Nb_instance == 0 ): # condition of only one instance of occ >= 0.5 and no other < 0.05 if (Nb_instance_occ == 1 and Nb_instance == 0 ): # condition of only one instance of occ >= 0.5 and no other < 0.05
...@@ -141,24 +140,18 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl ...@@ -141,24 +140,18 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl
for scenario_loop in scenarios: for scenario_loop in scenarios:
if not destination_folders[scenario_loop] == "dont_save" : if not destination_folders[scenario_loop] == "dont_save" :
np.save(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Pose_transformed/{p}.npy', num_arr) # save np.save(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Pose_transformed/{p}.npy', num_arr) # save
else:
continue
if data_Bbox_2d[k]['id'] == categories_occ_array[categories][0]: if data_Bbox_2d[k]['id'] == categories_occ_array[categories][0]:
bbox = bbox_2d(data_Bbox_2d[k]) bbox = bbox_2d(data_Bbox_2d[k])
for scenario_loop in scenarios: for scenario_loop in scenarios:
if not destination_folders[scenario_loop] == "dont_save" : if not destination_folders[scenario_loop] == "dont_save" :
np.savetxt(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Bbox/{p}.txt', np.array(bbox).reshape((1, 4))) # save np.savetxt(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Bbox/{p}.txt', np.array(bbox).reshape((1, 4))) # save
else:
continue
if data_Bbox_3d[k]['id'] == categories_occ_array[categories][0]: if data_Bbox_3d[k]['id'] == categories_occ_array[categories][0]:
bbox3d_size = data_Bbox_3d[k]['bbox']['size'] bbox3d_size = data_Bbox_3d[k]['bbox']['size']
for scenario_loop in scenarios: for scenario_loop in scenarios:
if not destination_folders[scenario_loop] == "dont_save" : if not destination_folders[scenario_loop] == "dont_save" :
np.savetxt(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Bbox_3d_Gen/{p}.txt', bbox3d_size) # save np.savetxt(f'{data_name}/{destination_folders[scenario_loop]}/{categories}/Bbox_3d_Gen/{p}.txt', bbox3d_size) # save
else:
continue
id = categories_occ_array[categories][0] id = categories_occ_array[categories][0]
img = cv2.imread(f"{data_name}/Instance_Segmentation/{p}.png", cv2.IMREAD_UNCHANGED) # plt.imread(path) img = cv2.imread(f"{data_name}/Instance_Segmentation/{p}.png", cv2.IMREAD_UNCHANGED) # plt.imread(path)
...@@ -174,6 +167,8 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl ...@@ -174,6 +167,8 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl
image = cv2.imread(f"{data_name}/{destination_folders[scenario_loop]}/{categories}/Instance_Mask/{p}.png", 0) image = cv2.imread(f"{data_name}/{destination_folders[scenario_loop]}/{categories}/Instance_Mask/{p}.png", 0)
image = image/255.0 image = image/255.0
contours, _ = cv2.findContours(image.astype(np.uint8), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE) contours, _ = cv2.findContours(image.astype(np.uint8), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
if len(contours) > 1 :
continue
for l in range(len(contours[0])): for l in range(len(contours[0])):
x = contours[0][l][0][0]/640.0 x = contours[0][l][0][0]/640.0
res.append(x) res.append(x)
...@@ -246,5 +241,6 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl ...@@ -246,5 +241,6 @@ def process_compute(data_name, camera, camera_resized, new_size, Nb_camera, Worl
f.write(json.dumps(list_count_categories[scenario_loop][destination_folder_loop], indent=4)) f.write(json.dumps(list_count_categories[scenario_loop][destination_folder_loop], indent=4))
with open(f'{data_name}/Count_{p}.json', mode='w') as f: with open(f'{data_name}/Count_{p}.json', mode='w') as f:
f.write(json.dumps(list_count_categories, indent=4)) f.write(json.dumps(list_count_categories, indent=4))
#print(list_count_categories) print(list_count_categories)
print(f'{data_name}/{destination_folder_loop}/Count_{p}.json')
...@@ -36,9 +36,9 @@ def generate_folders(name, list_categories, scenario): ...@@ -36,9 +36,9 @@ def generate_folders(name, list_categories, scenario):
is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_Testing/{cat}/{f}") is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_Testing/{cat}/{f}")
if not is_exist2: if not is_exist2:
os.makedirs(f"{name}/Generated_{scenario}_Testing/{cat}/{f}") os.makedirs(f"{name}/Generated_{scenario}_Testing/{cat}/{f}")
is_exist2 = os.path.exists(f"{name}/dont_save/{cat}/{f}") is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_dont_save/{cat}/{f}")
if not is_exist2: if not is_exist2:
os.makedirs(f"{name}/dont_save/{cat}/{f}") os.makedirs(f"{name}/Generated_{scenario}_dont_save/{cat}/{f}")
...@@ -53,13 +53,15 @@ def calc_pts_diameter2(pts): ...@@ -53,13 +53,15 @@ def calc_pts_diameter2(pts):
diameter = np.max(dists) diameter = np.max(dists)
return diameter return diameter
if __name__ == '__main__': if __name__ == '__main__':
# Create the parser # Create the parser
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
# Add an argument # Add an argument
parser.add_argument('--Nb_worlds', type=int, required=True) parser.add_argument('--Nb_worlds', type=int, required=True)
parser.add_argument('--World_begin', type=int, required=True) parser.add_argument('--World_begin', type=int, required=True)
parser.add_argument('--dataset_id', type=str, required=True)
parser.add_argument('--rearrange', type=bool, required=True)
parser.add_argument('--compute', type=bool, required=True)
# Parse the argument # Parse the argument
args = parser.parse_args() args = parser.parse_args()
...@@ -69,14 +71,20 @@ if __name__ == '__main__': ...@@ -69,14 +71,20 @@ if __name__ == '__main__':
Categories = [] # to read Categories = [] # to read
Nb_instance = 1 Nb_instance = 1
occ_target = 0.5 occ_target = 0.5
dataset_src = "/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data"
dataset_src = f"/gpfsscratch/rech/uli/ubn15wo/data{args.dataset_id}"
#dataset_src = "/media/mahmoud/E/Fruits_easy/data"
#dataset_src = "/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data"
choice = "low" # depth of rgb resolution datas choice = "low" # depth of rgb resolution datas
data_options = {"high": "ground_truth_rgb", data_options = {"high": "ground_truth_rgb",
"low": "ground_truth_depth"} "low": "ground_truth_depth"}
dataset_type = data_options[choice] dataset_type = data_options[choice]
dataset_name = f"GUIMOD_{choice}" dataset_name = f"/gpfsscratch/rech/uli/ubn15wo/GUIMOD_New_{choice}_{args.dataset_id}"
list_categories = ["banana1", "kiwi1", "pear2", "strawberry1", "apricot", "orange2", "peach1", "lemon2", "apple2" ] #dataset_name = f"/gpfsscratch/rech/uli/ubn15wo/dataset_new{args.dataset_id}/s2rg/Fruits_all_medium/GUIMOD_{choice}"
list_categories = ["banana1", "kiwi1", "pear2", "apricot", "orange2", "peach1", "lemon2", "apple2" ]
Nb_camera = 15 Nb_camera = 15
#Nb_world = 10000
generate_folders(dataset_name, list_categories, scenario) generate_folders(dataset_name, list_categories, scenario)
...@@ -103,19 +111,20 @@ if __name__ == '__main__': ...@@ -103,19 +111,20 @@ if __name__ == '__main__':
#np.savetxt(f'{dataset_name}/Generated/camera_{choice}.txt', camera) #np.savetxt(f'{dataset_name}/Generated/camera_{choice}.txt', camera)
reform_data(dataset_src, dataset_name, dataset_type, Nb_camera, args.World_begin, args.Nb_worlds) if args.rearrange :
reform_data(dataset_src, dataset_name, dataset_type, Nb_camera, args.World_begin, args.Nb_worlds)
list_categories = ["banana1", "kiwi1", "pear2", "strawberry1", "apricot", "orange2", "peach1", "lemon2", "apple2" ]
objs = {"banana1": [ 0.02949700132012367249, 0.1511049866676330566, 0.06059300713241100311 ], objs = {"banana1": [ 0.02949700132012367249, 0.1511049866676330566, 0.06059300713241100311 ],
"kiwi1": [ 0.04908600077033042908, 0.07206099480390548706, 0.04909799993038177490 ], "kiwi1": [ 0.04908600077033042908, 0.07206099480390548706, 0.04909799993038177490 ],
"pear2": [ 0.06601099669933319092, 0.1287339925765991211, 0.06739201396703720093 ], "pear2": [ 0.06601099669933319092, 0.1287339925765991211, 0.06739201396703720093 ],
"strawberry1": [0.01698100194334983826, 0.02203200198709964752, 0.01685700193047523499],
"apricot": [0.04213499650359153748, 0.05482299625873565674, 0.04333199933171272278], "apricot": [0.04213499650359153748, 0.05482299625873565674, 0.04333199933171272278],
"orange2": [ 0.07349500805139541626, 0.07585700601339340210, 0.07458199560642242432 ], "orange2": [ 0.07349500805139541626, 0.07585700601339340210, 0.07458199560642242432 ],
"peach1": [ 0.07397901266813278198, 0.07111301273107528687, 0.07657301425933837891 ], "peach1": [ 0.07397901266813278198, 0.07111301273107528687, 0.07657301425933837891 ],
"lemon2": [0.04686100035905838013, 0.04684200137853622437, 0.07244800776243209839], "lemon2": [0.04686100035905838013, 0.04684200137853622437, 0.07244800776243209839],
"apple2": [0.05203099921345710754, 0.04766000062227249146, 0.05089000239968299866]} "apple2": [0.05203099921345710754, 0.04766000062227249146, 0.05089000239968299866]}
# "strawberry1": [0.01698100194334983826, 0.02203200198709964752, 0.01685700193047523499],
for categories in list_categories: for categories in list_categories:
point_cloud = f"Models/{categories}/{categories.lower()}.ply" point_cloud = f"Models/{categories}/{categories.lower()}.ply"
pcd = o3d.io.read_point_cloud(point_cloud) pcd = o3d.io.read_point_cloud(point_cloud)
...@@ -133,5 +142,6 @@ if __name__ == '__main__': ...@@ -133,5 +142,6 @@ if __name__ == '__main__':
bbox = get_3D_bbox(ext) bbox = get_3D_bbox(ext)
np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_bbox_3d.txt', bbox) # save np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_bbox_3d.txt', bbox) # save
process_compute(dataset_name, camera, new_camera, new_size, Nb_camera, args.World_begin, args.Nb_worlds, list_categories, occ_target, False) if args.compute :
process_compute(dataset_name, camera, new_camera, new_size, Nb_camera, args.World_begin, args.Nb_worlds, list_categories, occ_target, False)
import os
import numpy as np
from prepare_data import reform_data
from fps_alg import apply_fps
from bbox_3d import get_3D_bbox
from compute_features import process_compute
import open3d as o3d
from scipy.spatial import distance
import argparse
def generate_folders(name, list_categories, scenario):
is_exist = os.path.exists(name)
if not is_exist:
os.mkdir(name)
folders = ["RGB", "RGB_Gen", "RGB_resized", "Meta_Gen", "Depth", "Mask", "Meta", "Pose", "Bbox_2d", "Bbox_2d_loose", "Bbox_3d", "Bbox_3d_Gen", "Instance_Segmentation", "Semantic_Segmentation", "Instance_Mask", "Instance_Mask_resized", "Occlusion", "Models", "Pose_transformed", "Bbox", "FPS", "FPS_resized"]
for f in folders:
is_exist = os.path.exists(f"{name}/{f}")
if not is_exist:
if f not in ["RGB_Gen", "RGB_resized", "Instance_Mask", "Instance_Mask_resized", "Meta_Gen", "Models", "Pose_transformed", "Bbox", "Bbox_3d_Gen", "FPS" , "FPS_resized"]:
os.mkdir(f"{name}/{f}")
else:
for cat in list_categories:
is_exist2 = os.path.exists(f"{name}/Generated/{cat}")
if not is_exist2:
os.makedirs(f"{name}/Generated/{cat}")
is_exist2 = os.path.exists(f"{name}/Generated/{cat}/Pose_transformed")
if not is_exist2:
os.makedirs(f"{name}/Generated/{cat}/Pose_transformed")
for scenario in ["Worlds", "Cameras", "Mix_all"] :
is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_Training/{cat}/{f}")
if not is_exist2:
os.makedirs(f"{name}/Generated_{scenario}_Training/{cat}/{f}")
is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_Evaluating/{cat}/{f}")
if not is_exist2:
os.makedirs(f"{name}/Generated_{scenario}_Evaluating/{cat}/{f}")
is_exist2 = os.path.exists(f"{name}/Generated_{scenario}_Testing/{cat}/{f}")
if not is_exist2:
os.makedirs(f"{name}/Generated_{scenario}_Testing/{cat}/{f}")
is_exist2 = os.path.exists(f"{name}/dont_save/{cat}/{f}")
if not is_exist2:
os.makedirs(f"{name}/dont_save/{cat}/{f}")
def calc_pts_diameter2(pts):
"""Calculates the diameter of a set of 3D points (i.e. the maximum distance
between any two points in the set). Faster but requires more memory than
calc_pts_diameter.
:param pts: nx3 ndarray with 3D points.
:return: The calculated diameter.
"""
dists = distance.cdist(pts, pts, 'euclidean')
diameter = np.max(dists)
return diameter
if __name__ == '__main__':
# Create the parser
parser = argparse.ArgumentParser()
# Add an argument
parser.add_argument('--Nb_worlds', type=int, required=True)
parser.add_argument('--World_begin', type=int, required=True)
parser.add_argument('--dataset_id', type=str, required=True)
# Parse the argument
args = parser.parse_args()
scenario = "Worlds"
### parameters ###
Categories = [] # to read
Nb_instance = 1
occ_target = 0.5
dataset_src = f"/gpfsscratch/rech/uli/ubn15wo/data{args.dataset_id}"
#dataset_src = "/media/mahmoud/E/Fruits_easy/data"
#dataset_src = "/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data"
choice = "low" # depth of rgb resolution datas
data_options = {"high": "ground_truth_rgb",
"low": "ground_truth_depth"}
dataset_type = data_options[choice]
dataset_name = f"/gpfsscratch/rech/uli/ubn15wo/dataset{args.dataset_id}/s2rg/Fruits_all_medium/GUIMOD_{choice}"
list_categories = ["banana1", "kiwi1", "pear2", "strawberry1", "apricot", "orange2", "peach1", "lemon2", "apple2" ]
Nb_camera = 15
#Nb_world = 10000
generate_folders(dataset_name, list_categories, scenario)
if choice == 'high':
camera = np.matrix([[1386.4138492513919, 0.0, 960.5],
[0.0, 1386.4138492513919, 540.5],
[0.0, 0.0, 1.0]])
# (640/1920 = 1 / 3), (480/1080 = 4 / 9)
trans = np.matrix([[1 / 3, 0.0, 0.0],
[0.0, (4 / 9), 0.0],
[0.0, 0.0, 1.0]])
elif choice == 'low':
camera = np.matrix([[1086.5054444841007, 0.0, 640.5],
[0.0, 1086.5054444841007, 360.5],
[0.0, 0.0, 1.0]])
#
trans = np.matrix([[0.5, 0.0, 0.0],
[0.0, (2 / 3), 0.0],
[0.0, 0.0, 1.0]])
new_size = (640, 480)
new_camera = trans @ camera
#np.savetxt(f'{dataset_name}/Generated/camera_{choice}.txt', camera)
reform_data(dataset_src, dataset_name, dataset_type, Nb_camera, args.World_begin, args.Nb_worlds)
list_categories = ["banana1", "kiwi1", "pear2", "strawberry1", "apricot", "orange2", "peach1", "lemon2", "apple2" ]
objs = {"banana1": [ 0.02949700132012367249, 0.1511049866676330566, 0.06059300713241100311 ],
"kiwi1": [ 0.04908600077033042908, 0.07206099480390548706, 0.04909799993038177490 ],
"pear2": [ 0.06601099669933319092, 0.1287339925765991211, 0.06739201396703720093 ],
"strawberry1": [0.01698100194334983826, 0.02203200198709964752, 0.01685700193047523499],
"apricot": [0.04213499650359153748, 0.05482299625873565674, 0.04333199933171272278],
"orange2": [ 0.07349500805139541626, 0.07585700601339340210, 0.07458199560642242432 ],
"peach1": [ 0.07397901266813278198, 0.07111301273107528687, 0.07657301425933837891 ],
"lemon2": [0.04686100035905838013, 0.04684200137853622437, 0.07244800776243209839],
"apple2": [0.05203099921345710754, 0.04766000062227249146, 0.05089000239968299866]}
for categories in list_categories:
point_cloud = f"Models/{categories}/{categories.lower()}.ply"
pcd = o3d.io.read_point_cloud(point_cloud)
fps_points = apply_fps(pcd, 8)
np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_fps_3d.txt', fps_points)
point_cloud_in_numpy = np.asarray(pcd.points)
dim = calc_pts_diameter2(point_cloud_in_numpy) * 100
np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_diameter.txt', np.array([dim]))
size_bb = objs[categories]
ext = [x / 2 for x in size_bb]
bbox = get_3D_bbox(ext)
np.savetxt(f'{dataset_name}/Generated/{categories}/{categories}_bbox_3d.txt', bbox) # save
#process_compute(dataset_name, camera, new_camera, new_size, Nb_camera, args.World_begin, args.Nb_worlds, list_categories, occ_target, False)
...@@ -8,6 +8,7 @@ def reform_data(src, data_name, data_option, Nb_camera, World_begin, Nb_world): ...@@ -8,6 +8,7 @@ def reform_data(src, data_name, data_option, Nb_camera, World_begin, Nb_world):
shutil.copy(src_meta, dst_meta) shutil.copy(src_meta, dst_meta)
for j in range(1, Nb_camera+1): # cameras for j in range(1, Nb_camera+1): # cameras
count = ((i-1)*Nb_camera) + j count = ((i-1)*Nb_camera) + j
print(count)
if data_option == "ground_truth_rgb": if data_option == "ground_truth_rgb":
files_img = os.listdir(f"{src}/{i}/grabber_{j}/color/image/") files_img = os.listdir(f"{src}/{i}/grabber_{j}/color/image/")
src_img = f"{src}/{i}/grabber_{j}/color/image/{files_img[0]}" src_img = f"{src}/{i}/grabber_{j}/color/image/{files_img[0]}"
......
#!/bin/bash
#SBATCH --job-name=Software # nom du job
#SBATCH -A uli@cpu
#SBATCH --ntasks=1 # Nombre total de processus MPI
#SBATCH --ntasks-per-node=1 # Nombre de processus MPI par noeud
#SBATCH --cpus-per-task=2
#SBATCH --partition=cpu_p1
#SBATCH --qos=qos_cpu-t4
# /!\ Attention, la ligne suivante est trompeuse mais dans le vocabulaire
# de Slurm "multithread" fait bien référence à l'hyperthreading.
#SBATCH --hint=nomultithread # 1 processus MPI par coeur physique (pas d'hyperthreading)
#SBATCH --time=35:00:00 # Temps d’exécution maximum demande (HH:MM:SS)
#SBATCH --output=Output/postprocess%j.out # Nom du fichier de sortie
#SBATCH --error=Output/postprocess%j.out # Nom du fichier d'erreur (ici commun avec la sortie)
# on se place dans le répertoire de soumission
cd ${SLURM_SUBMIT_DIR}
# nettoyage des modules charges en interactif et herites par defaut
module purge
# chargement des modules
module load python/3.7.10
# echo des commandes lancées
set -x
# exécution du code depuis l'espace d’exécution autorisé.
# Selon l’implémentation de MPI installée dans le conteneur, on positionnera l'option --mpi=pmix_v2 ou --mpi=pmix_v3
id_begin=$1
Nb=$2
id_dataset=$3
rearrange=$4
compute=$5
conda activate stvNet
time(python main.py --World_begin="$id_begin" --Nb_world="$Nb" --dataset_id="$id_dataset" --rearrange=$rearrange --compute=$compute)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment