Skip to content
Snippets Groups Projects
Commit e16fe073 authored by liuxingyu's avatar liuxingyu
Browse files

code for release

parents
No related branches found
No related tags found
No related merge requests found
Showing
with 386 additions and 0 deletions
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/20"
DATASETS = dict(TRAIN=("itodd_20_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/21"
DATASETS = dict(TRAIN=("itodd_21_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/22"
DATASETS = dict(TRAIN=("itodd_22_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/23"
DATASETS = dict(TRAIN=("itodd_23_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/24"
DATASETS = dict(TRAIN=("itodd_24_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/25"
DATASETS = dict(TRAIN=("itodd_25_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/26"
DATASETS = dict(TRAIN=("itodd_26_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/27"
DATASETS = dict(TRAIN=("itodd_27_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/28"
DATASETS = dict(TRAIN=("itodd_28_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/3"
DATASETS = dict(TRAIN=("itodd_3_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/4"
DATASETS = dict(TRAIN=("itodd_4_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/5"
DATASETS = dict(TRAIN=("itodd_5_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/6"
DATASETS = dict(TRAIN=("itodd_6_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/7"
DATASETS = dict(TRAIN=("itodd_7_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/8"
DATASETS = dict(TRAIN=("itodd_8_train_pbr",))
_base_ = "./1.py"
OUTPUT_DIR = "output/gdrn/itoddPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_itodd/9"
DATASETS = dict(TRAIN=("itodd_9_train_pbr",))
from mmcv import Config
import os.path as osp
import os
from tqdm import tqdm
cur_dir = osp.normpath(osp.dirname(osp.abspath(__file__)))
base_cfg_name = "1.py"
base_obj_name = "1"
# -----------------------------------------------------------------
id2obj = {i: str(i) for i in range(1, 29)}
obj2id = {_name: _id for _id, _name in id2obj.items()}
def main():
base_cfg_path = osp.join(cur_dir, base_cfg_name)
assert osp.exists(base_cfg_path), base_cfg_path # make sure base cfg is in this dir
cfg = Config.fromfile(base_cfg_path)
for obj_id, obj_name in tqdm(id2obj.items()):
print(obj_name)
if obj_name == base_obj_name:
continue
# NOTE: what fields should be updated ---------------------------
new_cfg_dict = dict(
_base_="./{}".format(base_cfg_name),
OUTPUT_DIR=cfg.OUTPUT_DIR.replace(base_obj_name, obj_name),
DATASETS=dict(
TRAIN=("itodd_{}_train_pbr".format(obj_name),),
),
)
# ----------------------------------------------------------------------
new_cfg_path = osp.join(cur_dir, base_cfg_name.replace(base_obj_name, obj_name))
if osp.exists(new_cfg_path):
raise RuntimeError("new cfg exists!")
new_cfg = Config(new_cfg_dict)
with open(new_cfg_path, "w") as f:
f.write(new_cfg.pretty_text)
# re-format
os.system("black -l 120 {}".format(cur_dir))
if __name__ == "__main__":
main()
_base_ = ["../../_base_/gdrn_base.py"]
OUTPUT_DIR = "output/gdrn/itodd_pbr/convnext_a6_AugCosyAAEGray_BG05_mlL1_DMask_amodalClipBox_classAware_itodd"
INPUT = dict(
DZI_PAD_SCALE=1.5,
TRUNCATE_FG=False,
CHANGE_BG_PROB=0.5,
COLOR_AUG_PROB=0.8,
MIN_SIZE_TRAIN=960,
MAX_SIZE_TRAIN=1280,
MIN_SIZE_TEST=960,
MAX_SIZE_TEST=1280,
COLOR_AUG_TYPE="code",
COLOR_AUG_CODE=(
"Sequential(["
# Sometimes(0.5, PerspectiveTransform(0.05)),
# Sometimes(0.5, CropAndPad(percent=(-0.05, 0.1))),
# Sometimes(0.5, Affine(scale=(1.0, 1.2))),
"Sometimes(0.5, CoarseDropout( p=0.2, size_percent=0.05) ),"
"Sometimes(0.4, GaussianBlur((0., 3.))),"
"Sometimes(0.3, pillike.EnhanceSharpness(factor=(0., 50.))),"
"Sometimes(0.3, pillike.EnhanceContrast(factor=(0.2, 50.))),"
"Sometimes(0.5, pillike.EnhanceBrightness(factor=(0.1, 6.))),"
"Sometimes(0.3, pillike.EnhanceColor(factor=(0., 20.))),"
"Sometimes(0.5, Add((-25, 25), per_channel=0.3)),"
"Sometimes(0.3, Invert(0.2, per_channel=True)),"
"Sometimes(0.5, Multiply((0.6, 1.4), per_channel=0.5)),"
"Sometimes(0.5, Multiply((0.6, 1.4))),"
"Sometimes(0.1, AdditiveGaussianNoise(scale=10, per_channel=True)),"
"Sometimes(0.5, iaa.contrast.LinearContrast((0.5, 2.2), per_channel=0.3)),"
"Sometimes(0.5, Grayscale(alpha=(0.0, 1.0)))," # maybe remove for det
"], random_order=True)"
# cosy+aae
),
)
SOLVER = dict(
IMS_PER_BATCH=48,
TOTAL_EPOCHS=40, # 25
LR_SCHEDULER_NAME="flat_and_anneal",
ANNEAL_METHOD="cosine", # "cosine"
ANNEAL_POINT=0.72,
OPTIMIZER_CFG=dict(_delete_=True, type="Ranger", lr=8e-4, weight_decay=0.01),
WEIGHT_DECAY=0.0,
WARMUP_FACTOR=0.001,
WARMUP_ITERS=1000,
)
DATASETS = dict(
TRAIN=("itodd_train_pbr",),
TEST=("itodd_bop_test",),
DET_FILES_TEST=("datasets/BOP_DATASETS/itodd/test/test_bboxes/yolox_x_640_itodd_pbr_itodd_bop_test.json",),
DET_TOPK_PER_OBJ=100,
DET_THR=0.05,
)
DATALOADER = dict(
# Number of data loading threads
NUM_WORKERS=8,
FILTER_VISIB_THR=0.3,
)
MODEL = dict(
LOAD_DETS_TEST=True,
PIXEL_MEAN=[0.0, 0.0, 0.0],
PIXEL_STD=[255.0, 255.0, 255.0],
BBOX_TYPE="AMODAL_CLIP", # VISIB or AMODAL
POSE_NET=dict(
NAME="GDRN_double_mask",
XYZ_ONLINE=True,
NUM_CLASSES=28,
BACKBONE=dict(
FREEZE=False,
PRETRAINED="timm",
INIT_CFG=dict(
type="timm/convnext_base",
pretrained=True,
in_chans=3,
features_only=True,
out_indices=(3,),
),
),
## geo head: Mask, XYZ, Region
GEO_HEAD=dict(
FREEZE=False,
INIT_CFG=dict(
type="TopDownDoubleMaskXyzRegionHead",
in_dim=1024, # this is num out channels of backbone conv feature
),
NUM_REGIONS=64,
XYZ_CLASS_AWARE=True,
MASK_CLASS_AWARE=True,
REGION_CLASS_AWARE=True,
),
PNP_NET=dict(
INIT_CFG=dict(norm="GN", act="gelu"),
REGION_ATTENTION=True,
WITH_2D_COORD=True,
ROT_TYPE="allo_rot6d",
TRANS_TYPE="centroid_z",
),
LOSS_CFG=dict(
# xyz loss ----------------------------
XYZ_LOSS_TYPE="L1", # L1 | CE_coor
XYZ_LOSS_MASK_GT="visib", # trunc | visib | obj
XYZ_LW=1.0,
# mask loss ---------------------------
MASK_LOSS_TYPE="L1", # L1 | BCE | CE
MASK_LOSS_GT="trunc", # trunc | visib | gt
MASK_LW=1.0,
# full mask loss ---------------------------
FULL_MASK_LOSS_TYPE="L1", # L1 | BCE | CE
FULL_MASK_LW=1.0,
# region loss -------------------------
REGION_LOSS_TYPE="CE", # CE
REGION_LOSS_MASK_GT="visib", # trunc | visib | obj
REGION_LW=1.0,
# pm loss --------------
PM_LOSS_SYM=True, # NOTE: sym loss
PM_R_ONLY=True, # only do R loss in PM
PM_LW=1.0,
# centroid loss -------
CENTROID_LOSS_TYPE="L1",
CENTROID_LW=1.0,
# z loss -----------
Z_LOSS_TYPE="L1",
Z_LW=1.0,
),
),
)
VAL = dict(
DATASET_NAME="itodd",
SCRIPT_PATH="lib/pysixd/scripts/eval_pose_results_more.py",
TARGETS_FILENAME="test_targets_bop19.json",
ERROR_TYPES="mspd,mssd,vsd,ad,reS,teS",
RENDERER_TYPE="cpp", # cpp, python, egl
SPLIT="test",
SPLIT_TYPE="",
N_TOP=-1, # SISO: 1, VIVO: -1 (for LINEMOD, 1/-1 are the same)
EVAL_CACHED=False, # if the predicted poses have been saved
SCORE_ONLY=False, # if the errors have been calculated
EVAL_PRINT_ONLY=False, # if the scores/recalls have been saved
EVAL_PRECISION=False, # use precision or recall
USE_BOP=True, # whether to use bop toolkit
SAVE_BOP_CSV_ONLY=True,
)
TEST = dict(EVAL_PERIOD=0, VIS=False, TEST_BBOX_TYPE="est") # gt | est
_base_ = ["../../../_base_/gdrn_base.py"]
OUTPUT_DIR = "output/gdrn/lmoPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_lmo/ape"
INPUT = dict(
DZI_PAD_SCALE=1.5,
TRUNCATE_FG=True,
CHANGE_BG_PROB=0.5,
COLOR_AUG_PROB=0.8,
COLOR_AUG_TYPE="code",
COLOR_AUG_CODE=(
"Sequential(["
# Sometimes(0.5, PerspectiveTransform(0.05)),
# Sometimes(0.5, CropAndPad(percent=(-0.05, 0.1))),
# Sometimes(0.5, Affine(scale=(1.0, 1.2))),
"Sometimes(0.5, CoarseDropout( p=0.2, size_percent=0.05) ),"
"Sometimes(0.4, GaussianBlur((0., 3.))),"
"Sometimes(0.3, pillike.EnhanceSharpness(factor=(0., 50.))),"
"Sometimes(0.3, pillike.EnhanceContrast(factor=(0.2, 50.))),"
"Sometimes(0.5, pillike.EnhanceBrightness(factor=(0.1, 6.))),"
"Sometimes(0.3, pillike.EnhanceColor(factor=(0., 20.))),"
"Sometimes(0.5, Add((-25, 25), per_channel=0.3)),"
"Sometimes(0.3, Invert(0.2, per_channel=True)),"
"Sometimes(0.5, Multiply((0.6, 1.4), per_channel=0.5)),"
"Sometimes(0.5, Multiply((0.6, 1.4))),"
"Sometimes(0.1, AdditiveGaussianNoise(scale=10, per_channel=True)),"
"Sometimes(0.5, iaa.contrast.LinearContrast((0.5, 2.2), per_channel=0.3)),"
"Sometimes(0.5, Grayscale(alpha=(0.0, 1.0)))," # maybe remove for det
"], random_order=True)"
# cosy+aae
),
)
SOLVER = dict(
IMS_PER_BATCH=36,
TOTAL_EPOCHS=100,
LR_SCHEDULER_NAME="flat_and_anneal",
ANNEAL_METHOD="cosine", # "cosine"
ANNEAL_POINT=0.72,
OPTIMIZER_CFG=dict(_delete_=True, type="Ranger", lr=8e-4, weight_decay=0.01),
WEIGHT_DECAY=0.0,
WARMUP_FACTOR=0.001,
WARMUP_ITERS=1000,
)
DATASETS = dict(
TRAIN=("lmo_ape_train_pbr",),
TEST=("lmo_bop_test",),
DET_FILES_TEST=("datasets/BOP_DATASETS/lmo/test/test_bboxes/yolox_x_640_lmo_pbr_lmo_bop_test.json",),
)
DATALOADER = dict(
# Number of data loading threads
NUM_WORKERS=8,
FILTER_VISIB_THR=0.3,
)
MODEL = dict(
LOAD_DETS_TEST=True,
PIXEL_MEAN=[0.0, 0.0, 0.0],
PIXEL_STD=[255.0, 255.0, 255.0],
BBOX_TYPE="AMODAL_CLIP", # VISIB or AMODAL
POSE_NET=dict(
NAME="GDRN_double_mask",
XYZ_ONLINE=True,
BACKBONE=dict(
FREEZE=False,
PRETRAINED="timm",
INIT_CFG=dict(
type="timm/convnext_base",
pretrained=True,
in_chans=3,
features_only=True,
out_indices=(3,),
),
),
## geo head: Mask, XYZ, Region
GEO_HEAD=dict(
FREEZE=False,
INIT_CFG=dict(
type="TopDownDoubleMaskXyzRegionHead",
in_dim=1024, # this is num out channels of backbone conv feature
),
NUM_REGIONS=64,
),
PNP_NET=dict(
INIT_CFG=dict(norm="GN", act="gelu"),
REGION_ATTENTION=True,
WITH_2D_COORD=True,
ROT_TYPE="allo_rot6d",
TRANS_TYPE="centroid_z",
),
LOSS_CFG=dict(
# xyz loss ----------------------------
XYZ_LOSS_TYPE="L1", # L1 | CE_coor
XYZ_LOSS_MASK_GT="visib", # trunc | visib | obj
XYZ_LW=1.0,
# mask loss ---------------------------
MASK_LOSS_TYPE="L1", # L1 | BCE | CE
MASK_LOSS_GT="trunc", # trunc | visib | gt
MASK_LW=1.0,
# full mask loss ---------------------------
FULL_MASK_LOSS_TYPE="L1", # L1 | BCE | CE
FULL_MASK_LW=1.0,
# region loss -------------------------
REGION_LOSS_TYPE="CE", # CE
REGION_LOSS_MASK_GT="visib", # trunc | visib | obj
REGION_LW=1.0,
# pm loss --------------
PM_LOSS_SYM=True, # NOTE: sym loss
PM_R_ONLY=True, # only do R loss in PM
PM_LW=1.0,
# centroid loss -------
CENTROID_LOSS_TYPE="L1",
CENTROID_LW=1.0,
# z loss -----------
Z_LOSS_TYPE="L1",
Z_LW=1.0,
),
),
)
VAL = dict(
DATASET_NAME="lmo",
SCRIPT_PATH="lib/pysixd/scripts/eval_pose_results_more.py",
TARGETS_FILENAME="test_targets_bop19.json",
ERROR_TYPES="mspd,mssd,vsd,ad,reS,teS",
RENDERER_TYPE="cpp", # cpp, python, egl
SPLIT="test",
SPLIT_TYPE="",
N_TOP=1, # SISO: 1, VIVO: -1 (for LINEMOD, 1/-1 are the same)
EVAL_CACHED=False, # if the predicted poses have been saved
SCORE_ONLY=False, # if the errors have been calculated
EVAL_PRINT_ONLY=False, # if the scores/recalls have been saved
EVAL_PRECISION=False, # use precision or recall
USE_BOP=True, # whether to use bop toolkit
)
TEST = dict(EVAL_PERIOD=0, VIS=False, TEST_BBOX_TYPE="est") # gt | est
_base_ = "./ape.py"
OUTPUT_DIR = "output/gdrn/lmoPbrSO/convnext_AugCosyAAEGray_DMask_amodalClipBox_lmo/can"
DATASETS = dict(TRAIN=("lmo_can_train_pbr",), TEST=("lmo_bop_test",))
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