MCPcopy Create free account
hub / github.com/apple/ml-depth-pro / __init__

Method __init__

src/depth_pro/network/encoder.py:20–138  ·  view source on GitHub ↗

Initialize DepthProEncoder. The framework 1. creates an image pyramid, 2. generates overlapping patches with a sliding window at each pyramid level, 3. creates batched encodings via vision transformer backbones, 4. produces multi-resolution en

(
        self,
        dims_encoder: Iterable[int],
        patch_encoder: nn.Module,
        image_encoder: nn.Module,
        hook_block_ids: Iterable[int],
        decoder_features: int,
    )

Source from the content-addressed store, hash-verified

18 """
19
20 def __init__(
21 self,
22 dims_encoder: Iterable[int],
23 patch_encoder: nn.Module,
24 image_encoder: nn.Module,
25 hook_block_ids: Iterable[int],
26 decoder_features: int,
27 ):
28 """Initialize DepthProEncoder.
29
30 The framework
31 1. creates an image pyramid,
32 2. generates overlapping patches with a sliding window at each pyramid level,
33 3. creates batched encodings via vision transformer backbones,
34 4. produces multi-resolution encodings.
35
36 Args:
37 ----
38 img_size: Backbone image resolution.
39 dims_encoder: Dimensions of the encoder at different layers.
40 patch_encoder: Backbone used for patches.
41 image_encoder: Backbone used for global image encoder.
42 hook_block_ids: Hooks to obtain intermediate features for the patch encoder model.
43 decoder_features: Number of feature output in the decoder.
44
45 """
46 super().__init__()
47
48 self.dims_encoder = list(dims_encoder)
49 self.patch_encoder = patch_encoder
50 self.image_encoder = image_encoder
51 self.hook_block_ids = list(hook_block_ids)
52
53 patch_encoder_embed_dim = patch_encoder.embed_dim
54 image_encoder_embed_dim = image_encoder.embed_dim
55
56 self.out_size = int(
57 patch_encoder.patch_embed.img_size[0] // patch_encoder.patch_embed.patch_size[0]
58 )
59
60 def _create_project_upsample_block(
61 dim_in: int,
62 dim_out: int,
63 upsample_layers: int,
64 dim_int: Optional[int] = None,
65 ) -> nn.Module:
66 if dim_int is None:
67 dim_int = dim_out
68 # Projection.
69 blocks = [
70 nn.Conv2d(
71 in_channels=dim_in,
72 out_channels=dim_int,
73 kernel_size=1,
74 stride=1,
75 padding=0,
76 bias=False,
77 )

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected