"next_docs/vscode:/vscode.git/clone" did not exist on "87a6c51c778805ed1e2dd7c8a3b0f1490fa865cc"
builder.py 1.74 KB
Newer Older
1
import warnings
2
from mmcv.utils import Registry
3

4
from mmdet.models.builder import (BACKBONES, DETECTORS, HEADS, LOSSES, NECKS,
5
                                  ROI_EXTRACTORS, SHARED_HEADS, build)
6

7
8
9
VOXEL_ENCODERS = Registry('voxel_encoder')
MIDDLE_ENCODERS = Registry('middle_encoder')
FUSION_LAYERS = Registry('fusion_layer')
zhangwenwei's avatar
zhangwenwei committed
10
11
12


def build_backbone(cfg):
13
    """Build backbone."""
14
    return build(cfg, BACKBONES)
zhangwenwei's avatar
zhangwenwei committed
15
16
17


def build_neck(cfg):
18
    """Build neck."""
19
    return build(cfg, NECKS)
zhangwenwei's avatar
zhangwenwei committed
20
21
22


def build_roi_extractor(cfg):
23
    """Build RoI feature extractor."""
24
    return build(cfg, ROI_EXTRACTORS)
zhangwenwei's avatar
zhangwenwei committed
25
26
27


def build_shared_head(cfg):
28
    """Build shared head of detector."""
29
    return build(cfg, SHARED_HEADS)
zhangwenwei's avatar
zhangwenwei committed
30
31
32


def build_head(cfg):
33
    """Build head."""
34
    return build(cfg, HEADS)
zhangwenwei's avatar
zhangwenwei committed
35
36
37


def build_loss(cfg):
38
    """Build loss function."""
39
    return build(cfg, LOSSES)
zhangwenwei's avatar
zhangwenwei committed
40
41
42


def build_detector(cfg, train_cfg=None, test_cfg=None):
43
    """Build detector."""
44
45
46
47
48
49
50
51
    if train_cfg is not None or test_cfg is not None:
        warnings.warn(
            'train_cfg and test_cfg is deprecated, '
            'please specify them in model', UserWarning)
    assert cfg.get('train_cfg') is None or train_cfg is None, \
        'train_cfg specified in both outer field and model field '
    assert cfg.get('test_cfg') is None or test_cfg is None, \
        'test_cfg specified in both outer field and model field '
52
    return build(cfg, DETECTORS, dict(train_cfg=train_cfg, test_cfg=test_cfg))
zhangwenwei's avatar
zhangwenwei committed
53
54
55


def build_voxel_encoder(cfg):
56
    """Build voxel encoder."""
57
    return build(cfg, VOXEL_ENCODERS)
zhangwenwei's avatar
zhangwenwei committed
58
59
60


def build_middle_encoder(cfg):
61
    """Build middle level encoder."""
62
    return build(cfg, MIDDLE_ENCODERS)
zhangwenwei's avatar
zhangwenwei committed
63
64
65


def build_fusion_layer(cfg):
66
    """Build fusion layer."""
67
    return build(cfg, FUSION_LAYERS)