Skip to content

Occlusion

dataphy.visionpack.tforms.occlusion

Classes

OccluderPatch(count: List[int] = [0, 2], size_rel: List[float] = [0.05, 0.2], fill_mode: List[str] = ['mean', 'random', 'noise', 'patch_bank'], rotation_deg: float = 45.0, occlusion_budget: float = 0.15, patch_bank: Optional[List] = None, **kwargs: Any)

Bases: BaseTransform

Source code in src/dataphy/visionpack/tforms/occlusion.py
def __init__(
    self,
    count: List[int] = [0, 2],
    size_rel: List[float] = [0.05, 0.2],
    fill_mode: List[str] = ["mean", "random", "noise", "patch_bank"],
    rotation_deg: float = 45.0,
    occlusion_budget: float = 0.15,
    patch_bank: Optional[List] = None,
    **kwargs: Any
):
    super().__init__(**kwargs)
    self.count_range = count
    self.size_rel_range = size_rel
    self.fill_modes = fill_mode if isinstance(fill_mode, list) else [fill_mode]
    self.rotation_deg = rotation_deg
    self.occlusion_budget = occlusion_budget
    self.patch_bank = patch_bank or self._create_default_patch_bank()
Attributes
count_range = count instance-attribute
size_rel_range = size_rel instance-attribute
fill_modes = fill_mode if isinstance(fill_mode, list) else [fill_mode] instance-attribute
rotation_deg = rotation_deg instance-attribute
occlusion_budget = occlusion_budget instance-attribute
patch_bank = patch_bank or self._create_default_patch_bank() instance-attribute
p = p instance-attribute
apply_to = apply_to if apply_to is not None else ['rgb'] instance-attribute
sync_views = sync_views instance-attribute
update_intrinsics = update_intrinsics instance-attribute
mask_protect = mask_protect if mask_protect is not None else [] instance-attribute
min_visible_mask_pct = min_visible_mask_pct instance-attribute
resample = resample instance-attribute
border_mode = border_mode instance-attribute
pad_mode = pad_mode instance-attribute
pad_value = pad_value instance-attribute
seed_policy = seed_policy instance-attribute
Functions
forward(batch: Dict[str, Any]) -> Dict[str, Any]

Base forward method that handles cross-cutting logic.

Source code in src/dataphy/visionpack/tforms/base.py
def forward(self, batch: Dict[str, Any]) -> Dict[str, Any]:
    """Base forward method that handles cross-cutting logic."""
    if not self._should_apply():
        return batch

    # Setup seed policy
    episode_id = batch.get("episode_id")
    self._setup_seed(episode_id)

    # Apply transform
    return self._apply_transform(batch)

SyntheticShadow(dir_deg: List[float] = [0, 360], softness: List[float] = [0.0, 1.0], intensity: List[float] = [0.0, 0.6], shape: List[str] = ['ellipse', 'polyline'], **kwargs: Any)

Bases: BaseTransform

Source code in src/dataphy/visionpack/tforms/occlusion.py
def __init__(
    self,
    dir_deg: List[float] = [0, 360],
    softness: List[float] = [0.0, 1.0],
    intensity: List[float] = [0.0, 0.6],
    shape: List[str] = ["ellipse", "polyline"],
    **kwargs: Any
):
    super().__init__(**kwargs)
    self.dir_deg_range = dir_deg
    self.softness_range = softness
    self.intensity_range = intensity
    self.shapes = shape if isinstance(shape, list) else [shape]
Attributes
dir_deg_range = dir_deg instance-attribute
softness_range = softness instance-attribute
intensity_range = intensity instance-attribute
shapes = shape if isinstance(shape, list) else [shape] instance-attribute
p = p instance-attribute
apply_to = apply_to if apply_to is not None else ['rgb'] instance-attribute
sync_views = sync_views instance-attribute
update_intrinsics = update_intrinsics instance-attribute
mask_protect = mask_protect if mask_protect is not None else [] instance-attribute
min_visible_mask_pct = min_visible_mask_pct instance-attribute
resample = resample instance-attribute
border_mode = border_mode instance-attribute
pad_mode = pad_mode instance-attribute
pad_value = pad_value instance-attribute
seed_policy = seed_policy instance-attribute
Functions
forward(batch: Dict[str, Any]) -> Dict[str, Any]

Base forward method that handles cross-cutting logic.

Source code in src/dataphy/visionpack/tforms/base.py
def forward(self, batch: Dict[str, Any]) -> Dict[str, Any]:
    """Base forward method that handles cross-cutting logic."""
    if not self._should_apply():
        return batch

    # Setup seed policy
    episode_id = batch.get("episode_id")
    self._setup_seed(episode_id)

    # Apply transform
    return self._apply_transform(batch)