Addax-Data-Science's picture
Upload 162 files
d9bb75c verified
Raw
History Blame Contribute Delete
2.53 kB
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This software may be used and distributed in accordance with
# the terms of the DINOv3 License Agreement.
from dataclasses import dataclass
from .models.position_encoding import PositionEncoding
@dataclass(kw_only=True)
class DetectionHeadConfig:
num_classes: int = 91 # 91 classes in COCO
# Deformable DETR tricks
with_box_refine: bool = True
two_stage: bool = True
# DINO DETR tricks
mixed_selection: bool = True
look_forward_twice: bool = True # was default False
# Hybrid Matching tricks
k_one2many: int = 6 # was 5
lambda_one2many: float = 1.0
num_queries_one2one: int = 300 # number of query slots for one_to_one matching
num_queries_one2many: int = 1500 # was 0, number of query slots for one_to_many matching
"""
Absolute coordinates & box regression reparameterization.
If true, we use absolute coordindates & reparameterization for bounding boxes.
"""
reparam: bool = True
topk: int = 100
# * Backbone
# type of positional embedding to use on top of the image features
position_embedding: PositionEncoding = PositionEncoding.SINE
num_feature_levels: int = 1 # number of feature levels
# * Transformer
dec_layers: int = 6 # number of decoding layers in the transformer
dim_feedforward: int = 2048 # intermediate size of the feedforward layers in the transformer blocks
hidden_dim: int = 256 # size of the embeddings (dimension of the transformer)
dropout: float = 0.0 # dropout applied in the transformer, was 0.1
nheads: int = 8 # number of attention heads inside the transformer's attentions
norm_type: str = "pre_norm"
# Loss
aux_loss: bool = True # auxiliary decoding losses (loss at each layer)
# * dev: proposals
proposal_feature_levels: int = 4 # was 1
proposal_min_size: int = 50
# * dev decoder: global decoder
decoder_type: str = "global_rpe_decomp" # was deform
decoder_use_checkpoint: bool = False
decoder_rpe_hidden_dim: int = 512
decoder_rpe_type: str = "linear"
# Custom
add_transformer_encoder: bool = True
num_encoder_layers: int = 6
layers_to_use: list[int] | None = None
blocks_to_train: list[int] | None = None
n_windows_sqrt: int = 0
proposal_in_stride: int | None = None
proposal_tgt_strides: list[int] | None = None
backbone_use_layernorm: bool = False # whether to use layernorm on each layer of the backbone's features