From 61c3a8275db0883f7b97121a2c45d3f2e8f409bd Mon Sep 17 00:00:00 2001
From: liuxingyu <lxy17@foxmail.com>
Date: Wed, 2 Nov 2022 18:33:52 +0800
Subject: [PATCH] add cfg for tless

---
 .../1.py                                      | 147 ++++++++++++++++++
 .../10.py                                     |   3 +
 .../11.py                                     |   3 +
 .../12.py                                     |   3 +
 .../13.py                                     |   3 +
 .../14.py                                     |   3 +
 .../15.py                                     |   3 +
 .../16.py                                     |   3 +
 .../17.py                                     |   3 +
 .../18.py                                     |   3 +
 .../19.py                                     |   3 +
 .../2.py                                      |   3 +
 .../20.py                                     |   3 +
 .../21.py                                     |   3 +
 .../22.py                                     |   3 +
 .../23.py                                     |   3 +
 .../24.py                                     |   3 +
 .../25.py                                     |   3 +
 .../26.py                                     |   3 +
 .../27.py                                     |   3 +
 .../28.py                                     |   3 +
 .../29.py                                     |   3 +
 .../3.py                                      |   3 +
 .../30.py                                     |   3 +
 .../4.py                                      |   3 +
 .../5.py                                      |   3 +
 .../6.py                                      |   3 +
 .../7.py                                      |   3 +
 .../8.py                                      |   3 +
 .../9.py                                      |   3 +
 .../cfg_1_to_all.py                           |  47 ++++++
 31 files changed, 281 insertions(+)
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/1.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/10.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/11.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/12.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/13.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/14.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/15.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/16.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/17.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/18.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/19.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/2.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/20.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/21.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/22.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/23.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/24.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/25.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/26.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/27.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/28.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/29.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/3.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/30.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/4.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/5.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/6.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/7.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/8.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/9.py
 create mode 100644 configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/cfg_1_to_all.py

diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/1.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/1.py
new file mode 100644
index 0000000..1e03a98
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/1.py
@@ -0,0 +1,147 @@
+_base_ = ["../../../_base_/gdrn_base.py"]
+
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/1"
+INPUT = dict(
+    DZI_PAD_SCALE=1.5,
+    TRUNCATE_FG=True,
+    CHANGE_BG_PROB=0.5,
+    COLOR_AUG_PROB=0.8,
+    MIN_SIZE_TRAIN=540,
+    MAX_SIZE_TRAIN=720,
+    MIN_SIZE_TEST=540,
+    MAX_SIZE_TEST=720,
+    IMG_AUG_RESIZE=False,
+    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=("tless_1_train_pbr",),
+    TRAIN2=("tless_1_train_primesense"),
+    TRAIN2_RATIO=0.3,
+    TEST=("tless_bop_test_primesense",),
+    # AP        AP50    AP75    AR      inf.time
+    DET_FILES_TEST=("datasets/BOP_DATASETS/tless/test/test_bboxes/yolox_x_640_tless_real_pbr_tless_bop_test.json",),
+    DET_TOPK_PER_OBJ=100,
+)
+
+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,
+        ),
+    ),
+)
+
+TEST = dict(EVAL_PERIOD=0, VIS=False, TEST_BBOX_TYPE="est")  # gt | est
+
+VAL = dict(
+    DATASET_NAME="tless",
+    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
+)
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/10.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/10.py
new file mode 100644
index 0000000..6889a31
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/10.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/10"
+DATASETS = dict(TRAIN=("tless_10_train_pbr",), TRAIN2=("tless_10_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/11.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/11.py
new file mode 100644
index 0000000..158c183
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/11.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/11"
+DATASETS = dict(TRAIN=("tless_11_train_pbr",), TRAIN2=("tless_11_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/12.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/12.py
new file mode 100644
index 0000000..aa01e22
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/12.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/12"
+DATASETS = dict(TRAIN=("tless_12_train_pbr",), TRAIN2=("tless_12_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/13.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/13.py
new file mode 100644
index 0000000..026b8dc
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/13.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/13"
+DATASETS = dict(TRAIN=("tless_13_train_pbr",), TRAIN2=("tless_13_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/14.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/14.py
new file mode 100644
index 0000000..d4976e3
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/14.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/14"
+DATASETS = dict(TRAIN=("tless_14_train_pbr",), TRAIN2=("tless_14_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/15.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/15.py
new file mode 100644
index 0000000..5ddeeaa
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/15.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/15"
+DATASETS = dict(TRAIN=("tless_15_train_pbr",), TRAIN2=("tless_15_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/16.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/16.py
new file mode 100644
index 0000000..d8812e0
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/16.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/16"
+DATASETS = dict(TRAIN=("tless_16_train_pbr",), TRAIN2=("tless_16_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/17.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/17.py
new file mode 100644
index 0000000..d91e375
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/17.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/17"
+DATASETS = dict(TRAIN=("tless_17_train_pbr",), TRAIN2=("tless_17_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/18.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/18.py
new file mode 100644
index 0000000..729d047
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/18.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/18"
+DATASETS = dict(TRAIN=("tless_18_train_pbr",), TRAIN2=("tless_18_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/19.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/19.py
new file mode 100644
index 0000000..8d8b627
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/19.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/19"
+DATASETS = dict(TRAIN=("tless_19_train_pbr",), TRAIN2=("tless_19_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/2.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/2.py
new file mode 100644
index 0000000..cef898b
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/2.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/2"
+DATASETS = dict(TRAIN=("tless_2_train_pbr",), TRAIN2=("tless_2_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/20.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/20.py
new file mode 100644
index 0000000..79a594e
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/20.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/20"
+DATASETS = dict(TRAIN=("tless_20_train_pbr",), TRAIN2=("tless_20_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/21.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/21.py
new file mode 100644
index 0000000..cbebc89
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/21.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/21"
+DATASETS = dict(TRAIN=("tless_21_train_pbr",), TRAIN2=("tless_21_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/22.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/22.py
new file mode 100644
index 0000000..8003d7c
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/22.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/22"
+DATASETS = dict(TRAIN=("tless_22_train_pbr",), TRAIN2=("tless_22_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/23.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/23.py
new file mode 100644
index 0000000..2e96027
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/23.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/23"
+DATASETS = dict(TRAIN=("tless_23_train_pbr",), TRAIN2=("tless_23_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/24.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/24.py
new file mode 100644
index 0000000..2e1ef83
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/24.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/24"
+DATASETS = dict(TRAIN=("tless_24_train_pbr",), TRAIN2=("tless_24_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/25.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/25.py
new file mode 100644
index 0000000..017ce0f
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/25.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/25"
+DATASETS = dict(TRAIN=("tless_25_train_pbr",), TRAIN2=("tless_25_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/26.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/26.py
new file mode 100644
index 0000000..02d24e5
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/26.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/26"
+DATASETS = dict(TRAIN=("tless_26_train_pbr",), TRAIN2=("tless_26_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/27.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/27.py
new file mode 100644
index 0000000..915a84d
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/27.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/27"
+DATASETS = dict(TRAIN=("tless_27_train_pbr",), TRAIN2=("tless_27_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/28.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/28.py
new file mode 100644
index 0000000..2d1dc2b
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/28.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/28"
+DATASETS = dict(TRAIN=("tless_28_train_pbr",), TRAIN2=("tless_28_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/29.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/29.py
new file mode 100644
index 0000000..c436c4c
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/29.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/29"
+DATASETS = dict(TRAIN=("tless_29_train_pbr",), TRAIN2=("tless_29_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/3.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/3.py
new file mode 100644
index 0000000..01459d6
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/3.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/3"
+DATASETS = dict(TRAIN=("tless_3_train_pbr",), TRAIN2=("tless_3_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/30.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/30.py
new file mode 100644
index 0000000..a09473e
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/30.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/30"
+DATASETS = dict(TRAIN=("tless_30_train_pbr",), TRAIN2=("tless_30_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/4.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/4.py
new file mode 100644
index 0000000..5699ee4
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/4.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/4"
+DATASETS = dict(TRAIN=("tless_4_train_pbr",), TRAIN2=("tless_4_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/5.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/5.py
new file mode 100644
index 0000000..7b218b6
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/5.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/5"
+DATASETS = dict(TRAIN=("tless_5_train_pbr",), TRAIN2=("tless_5_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/6.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/6.py
new file mode 100644
index 0000000..f096224
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/6.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/6"
+DATASETS = dict(TRAIN=("tless_6_train_pbr",), TRAIN2=("tless_6_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/7.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/7.py
new file mode 100644
index 0000000..785bd55
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/7.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/7"
+DATASETS = dict(TRAIN=("tless_7_train_pbr",), TRAIN2=("tless_7_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/8.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/8.py
new file mode 100644
index 0000000..6c1fbec
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/8.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/8"
+DATASETS = dict(TRAIN=("tless_8_train_pbr",), TRAIN2=("tless_8_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/9.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/9.py
new file mode 100644
index 0000000..aa9a003
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/9.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/9"
+DATASETS = dict(TRAIN=("tless_9_train_pbr",), TRAIN2=("tless_9_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/cfg_1_to_all.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/cfg_1_to_all.py
new file mode 100644
index 0000000..4ff49f6
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/cfg_1_to_all.py
@@ -0,0 +1,47 @@
+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, 31)}
+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=("tless_{}_train_pbr".format(obj_name),),
+                TRAIN2=("tless_{}_train_primesense".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()
-- 
GitLab