Spaces:
Sleeping
Sleeping
| # Copyright (c) Meta Platforms, Inc. and affiliates | |
| from detectron2.config import CfgNode as CN | |
| def get_cfg_defaults(cfg): | |
| # A list of category names which will be used | |
| cfg.DATASETS.CATEGORY_NAMES = [] | |
| # The category names which will be treated as ignore | |
| # e.g., not counting as background during training | |
| # or as false positives during evaluation. | |
| cfg.DATASETS.IGNORE_NAMES = [] | |
| # Should the datasets appear with the same probabilty | |
| # in batches (e.g., the imbalance from small and large | |
| # datasets will be accounted for during sampling) | |
| cfg.DATALOADER.BALANCE_DATASETS = False | |
| # The thresholds for when to treat a known box | |
| # as ignore based on too heavy of truncation or | |
| # too low of visibility in the image. This affects | |
| # both training and evaluation ignores. | |
| cfg.DATASETS.TRUNCATION_THRES = 0.99 | |
| cfg.DATASETS.VISIBILITY_THRES = 0.01 | |
| cfg.DATASETS.MIN_HEIGHT_THRES = 0.00 | |
| cfg.DATASETS.MAX_DEPTH = 1e8 | |
| # Whether modal 2D boxes should be loaded, | |
| # or if the full 3D projected boxes should be used. | |
| cfg.DATASETS.MODAL_2D_BOXES = False | |
| # Whether truncated 2D boxes should be loaded, | |
| # or if the 3D full projected boxes should be used. | |
| cfg.DATASETS.TRUNC_2D_BOXES = True | |
| # Threshold used for matching and filtering boxes | |
| # inside of ignore regions, within the RPN and ROIHeads | |
| cfg.MODEL.RPN.IGNORE_THRESHOLD = 0.5 | |
| # Configuration for cube head | |
| cfg.MODEL.ROI_CUBE_HEAD = CN() | |
| cfg.MODEL.ROI_CUBE_HEAD.NAME = "CubeHead" | |
| cfg.MODEL.ROI_CUBE_HEAD.POOLER_RESOLUTION = 7 | |
| cfg.MODEL.ROI_CUBE_HEAD.POOLER_SAMPLING_RATIO = 0 | |
| cfg.MODEL.ROI_CUBE_HEAD.POOLER_TYPE = "ROIAlignV2" | |
| # Settings for the cube head features | |
| cfg.MODEL.ROI_CUBE_HEAD.NUM_CONV = 0 | |
| cfg.MODEL.ROI_CUBE_HEAD.CONV_DIM = 256 | |
| cfg.MODEL.ROI_CUBE_HEAD.NUM_FC = 2 | |
| cfg.MODEL.ROI_CUBE_HEAD.FC_DIM = 1024 | |
| # proposal method | |
| cfg.MODEL.ROI_CUBE_HEAD.NUMBER_OF_PROPOSALS = 1000 | |
| # the style to predict Z with currently supported | |
| # options --> ['direct', 'sigmoid', 'log', 'clusters'] | |
| cfg.MODEL.ROI_CUBE_HEAD.Z_TYPE = "direct" | |
| # the style to predict pose with currently supported | |
| # options --> ['6d', 'euler', 'quaternion'] | |
| cfg.MODEL.ROI_CUBE_HEAD.POSE_TYPE = "6d" | |
| # Whether to scale all 3D losses by inverse depth | |
| cfg.MODEL.ROI_CUBE_HEAD.INVERSE_Z_WEIGHT = False | |
| # Virtual depth puts all predictions of depth into | |
| # a shared virtual space with a shared focal length. | |
| cfg.MODEL.ROI_CUBE_HEAD.VIRTUAL_DEPTH = True | |
| cfg.MODEL.ROI_CUBE_HEAD.VIRTUAL_FOCAL = 512.0 | |
| # If true, then all losses are computed using the 8 corners | |
| # such that they are all in a shared scale space. | |
| # E.g., their scale correlates with their impact on 3D IoU. | |
| # This way no manual weights need to be set. | |
| cfg.MODEL.ROI_CUBE_HEAD.DISENTANGLED_LOSS = True | |
| # When > 1, the outputs of the 3D head will be based on | |
| # a 2D scale clustering, based on 2D proposal height/width. | |
| # This parameter describes the number of bins to cluster. | |
| cfg.MODEL.ROI_CUBE_HEAD.CLUSTER_BINS = 1 | |
| # Whether batch norm is enabled during training. | |
| # If false, all BN weights will be frozen. | |
| cfg.MODEL.USE_BN = True | |
| # Whether to predict the pose in allocentric space. | |
| # The allocentric space may correlate better with 2D | |
| # images compared to egocentric poses. | |
| cfg.MODEL.ROI_CUBE_HEAD.ALLOCENTRIC_POSE = True | |
| # Whether to use chamfer distance for disentangled losses | |
| # of pose. This avoids periodic issues of rotation but | |
| # may prevent the pose "direction" from being interpretable. | |
| cfg.MODEL.ROI_CUBE_HEAD.CHAMFER_POSE = True | |
| # Should the prediction heads share FC features or not. | |
| # These include groups of uv, z, whl, pose. | |
| cfg.MODEL.ROI_CUBE_HEAD.SHARED_FC = True | |
| # Check for stable gradients. When inf is detected, skip the update. | |
| # This prevents an occasional bad sample from exploding the model. | |
| # The threshold below is the allows percent of bad samples. | |
| # 0.0 is off, and 0.01 is recommended for minor robustness to exploding. | |
| cfg.MODEL.STABILIZE = 0.01 | |
| # Whether or not to use the dimension priors | |
| cfg.MODEL.ROI_CUBE_HEAD.DIMS_PRIORS_ENABLED = True | |
| # How prior dimensions should be computed? | |
| # The supported modes are ["exp", "sigmoid"] | |
| # where exp is unbounded and sigmoid is bounded | |
| # between +- 3 standard deviations from the mean. | |
| cfg.MODEL.ROI_CUBE_HEAD.DIMS_PRIORS_FUNC = 'exp' | |
| # weight for confidence loss. 0 is off. | |
| cfg.MODEL.ROI_CUBE_HEAD.USE_CONFIDENCE = 1.0 | |
| # Loss weights for XY, Z, Dims, Pose | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_3D = 1.0 | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_XY = 1.0 | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_POSE = 7.0 | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_NORMAL_VEC = 20.0 | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_IOU = 1.0 | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_SEG = 2.5 | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_Z = 1.0 | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_DIMS = 20.0 | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_DEPTH = 1.0 | |
| cfg.MODEL.DLA = CN() | |
| # Supported types for DLA backbones are... | |
| # dla34, dla46_c, dla46x_c, dla60x_c, dla60, dla60x, dla102x, dla102x2, dla169 | |
| cfg.MODEL.DLA.TYPE = 'dla34' | |
| # Only available for dla34, dla60, dla102 | |
| cfg.MODEL.DLA.TRICKS = False | |
| # A joint loss for the disentangled loss. | |
| # All predictions are computed using a corner | |
| # or chamfers loss depending on chamfer_pose! | |
| # Recommened to keep this weight small: [0.05, 0.5] | |
| cfg.MODEL.ROI_CUBE_HEAD.LOSS_W_JOINT = 1.0 | |
| # sgd, adam, adam+amsgrad, adamw, adamw+amsgrad | |
| cfg.SOLVER.TYPE = 'sgd' | |
| cfg.MODEL.RESNETS.TORCHVISION = True | |
| cfg.TEST.DETECTIONS_PER_IMAGE = 100 | |
| cfg.TEST.VISIBILITY_THRES = 1/2.0 | |
| cfg.TEST.TRUNCATION_THRES = 1/2.0 | |
| cfg.INPUT.RANDOM_FLIP = "horizontal" | |
| # When True, we will use localization uncertainty | |
| # as the new IoUness score in the RPN. | |
| cfg.MODEL.RPN.OBJECTNESS_UNCERTAINTY = 'IoUness' | |
| # If > 0.0 this is the scaling factor that will be applied to | |
| # an RoI 2D box before doing any pooling to give more context. | |
| # Ex. 1.5 makes width and height 50% larger. | |
| cfg.MODEL.ROI_CUBE_HEAD.SCALE_ROI_BOXES = 0.0 | |
| # weight path specifically for pretraining (no checkpointables will be loaded) | |
| cfg.MODEL.WEIGHTS_PRETRAIN = '' | |
| # ## start of our things | |
| cfg.MODEL.ROI_CUBE_HEAD.TEST = 'bas' | |
| cfg.MODEL.ROI_CUBE_HEAD.DIMS_PRIORS_PRECOMPUTED = False | |
| cfg.PLOT = CN(new_allowed=True) | |
| cfg.PLOT.OUTPUT_DIR = '' | |
| cfg.PLOT.EVAL = '' | |
| cfg.PLOT.MODE2D = '' #either GT or PRED | |
| cfg.PLOT.SCORING_FUNC = None | |
| cfg.PLOT.PROPOSAL_FUNC = None | |
| cfg.PLOT.number_of_proposals = 1000 | |
| cfg.TRAIN = CN(new_allowed=True) | |
| cfg.TRAIN.pseudo_gt = 'learn' | |
| # these are meant to be overwritten as an argument | |
| cfg.log = True | |
| # (these 2 are mutually exclusive) z_pseudo_gt_patch or z_pseudo_gt_center | |
| cfg.loss_functions = ['iou'] | |
| cfg.MODEL.DEPTH_ON = False #whether to use the depth anything concated features |