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

add interval for occlusion

parent 951551b9
No related branches found
No related tags found
No related merge requests found
......@@ -12,7 +12,7 @@ from fps_alg import process2
import os
from PIL import Image
def process_compute(data_path, full_path, camera, camera_resized, new_size, Nb_camera, World_begin, Nb_world, list_categories, occ_target, vis):
def process_compute(data_path, full_path, camera, camera_resized, new_size, Nb_camera, World_begin, Nb_world, list_categories, occ_target_min, occ_target_max=1, vis=False):
transformation = np.matrix([[0.0000000, -1.0000000, 0.0000000],
[0.0000000, 0.0000000, -1.0000000],
[1.0000000, 0.0000000, 0.0000000]])
......@@ -68,7 +68,7 @@ def process_compute(data_path, full_path, camera, camera_resized, new_size, Nb_c
else :
destination_folders["Mix_all"] = f"Generated_Mix_all_dont_save"
categories_array_filtered, categories_array_filtered_occ, categories_array_all, categories_array_all_occ = compute_id_good_occ(data_path, p, categories_instance_array_id_to_cat, categories_instance_array_cat_to_id, occ_target)
categories_array_filtered, categories_array_filtered_occ, categories_array_all, categories_array_all_occ = compute_id_good_occ(data_path, p, categories_instance_array_id_to_cat, categories_instance_array_cat_to_id, occ_target_min, occ_target_max)
### 3D Poses ###
with open(f'{data_path}/Pose/{p}.json', 'r') as f:
......@@ -146,7 +146,8 @@ def process_compute(data_path, full_path, camera, camera_resized, new_size, Nb_c
meta['Nb_instance'] = Nb_instance_all
meta['all_id_instance'] = categories_array_all[categories]
meta['all_id_instance_occlusion'] = categories_array_all_occ[categories]
meta['target_occlusion'] = occ_target
meta['target_occlusion_min'] = occ_target_min
meta['target_occlusion_max'] = occ_target_max
meta['Nb_instance_filtered'] = Nb_instance_occ
meta['id_instance_good'] = categories_array_filtered[categories]
meta['id_instance_good_occlusion'] = categories_array_filtered_occ[categories]
......
......@@ -66,7 +66,8 @@ if __name__ == '__main__':
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, default='', required=True)
parser.add_argument('--occlusion_target', type=float, default='', required=True)
parser.add_argument('--occlusion_target_min', type=float, default='', required=True)
parser.add_argument('--occlusion_target_max', type=float, default='', required=True)
#parser.add_argument('--rearrange', dest='rearrange', default=False, action='store_true')
#parser.add_argument('--compute', dest='compute', default=False, action='store_true')
parser.add_argument('--rearrange', type=str, default='no', required=True)
......@@ -79,7 +80,8 @@ if __name__ == '__main__':
### parameters ###
Categories = [] # to read
Nb_instance = 1
occ_target = args.occlusion_target
occ_target_min = args.occlusion_target_min
occ_target_max = args.occlusion_target_max
dataset_src = f"/gpfsscratch/rech/uli/ubn15wo/DATA/data{args.dataset_id}"
#dataset_src = "/media/gduret/DATA/dataset/s2rg/Fruits_all_medium/data"
......@@ -90,7 +92,7 @@ if __name__ == '__main__':
dataset_type = data_options[choice]
dataset_path = f"/gpfsscratch/rech/uli/ubn15wo/FruitBin{args.dataset_id}" #GUIMOD_New_{choice}_{args.dataset_id}"
#dataset_path = f"/home/gduret/Documents/FruitBin{args.dataset_id}/"
dataset_name = f"FruitBin_{choice}_{Nb_instance}_{occ_target}"
dataset_name = f"FruitBin_{choice}_{Nb_instance}_{occ_target_min}_{occ_target_max}"
#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
......@@ -155,5 +157,5 @@ if __name__ == '__main__':
np.savetxt(f'{dataset_path}/{dataset_name}/Generated/{categories}/{categories}_bbox_3d.txt', bbox) # save
if args.compute == 'yes' :
process_compute(dataset_path, dataset_path+'/'+dataset_name, camera, new_camera, new_size, Nb_camera, args.World_begin, args.Nb_worlds, list_categories, occ_target, False)
process_compute(dataset_path, dataset_path+'/'+dataset_name, camera, new_camera, new_size, Nb_camera, args.World_begin, args.Nb_worlds, list_categories, occ_target_min, occ_target_max, False)
#!/bin/bash
#SBATCH --job-name=Software # nom du job
#SBATCH --job-name=Process # 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
#SBATCH --qos=qos_cpu-t3
# /!\ 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)
#SBATCH --time=20:00:00 # Temps d’exécution maximum demande (HH:MM:SS)
#SBATCH --output=Output/qpostprocess%j.out # Nom du fichier de sortie
#SBATCH --error=Output/qpostprocess%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}
......@@ -31,10 +31,12 @@ set -x
id_begin=$1
Nb=$2
id_dataset=$3
rearrange=$4
compute=$5
occlusion_min=$4
occlusion_max=$5
rearrange=$6
compute=$7
conda activate stvNet
time(python main.py --World_begin="$id_begin" --Nb_world="$Nb" --dataset_id="$id_dataset" --rearrange=$rearrange --compute=$compute)
time(python main.py --World_begin="$id_begin" --Nb_world="$Nb" --dataset_id="$id_dataset" --occlusion_target_min=$occlusion_min --occlusion_target_max=$occlusion_max --rearrange=$rearrange --compute=$compute)
......@@ -9,6 +9,7 @@ def compute_categories_id(data_name, world):
# returns JSON object as
# a dictionary
print(f'{data_name}/Meta/{world}.json')
data = json.load(f)
# Iterating through the json
......@@ -35,7 +36,7 @@ def compute_categories_id(data_name, world):
def compute_id_good_occ(data_name, count, categories_instance_array_id_to_cat, categories_instance_array_cat_to_id, Occ_wanted):
def compute_id_good_occ(data_name, count, categories_instance_array_id_to_cat, categories_instance_array_cat_to_id, occ_target_min, occ_target_max):
f2 = open(f'{data_name}/Occlusion/{count}.json')
......@@ -53,7 +54,7 @@ def compute_id_good_occ(data_name, count, categories_instance_array_id_to_cat, c
categories_array_all_occ[cat] = []
for i in data2:
if i['occlusion_value'] >= Occ_wanted :
if i['occlusion_value'] > occ_target_min and i['occlusion_value'] <= occ_target_max :
categories_array_filtered[categories_instance_array_id_to_cat[i['id']]].append(i['id'])
categories_array_filtered_occ[categories_instance_array_id_to_cat[i['id']]].append(i['occlusion_value'])
if i['occlusion_value'] >= 0.05 :
......@@ -69,4 +70,4 @@ def compute_id_good_occ(data_name, count, categories_instance_array_id_to_cat, c
#print(categories_array_all_occ)
return categories_array_filtered, categories_array_filtered_occ, categories_array_all, categories_array_all_occ
\ No newline at end of file
return categories_array_filtered, categories_array_filtered_occ, categories_array_all, categories_array_all_occ
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