Tforms¶
dataphy.visionpack.tforms
¶
Classes¶
BaseTransform(p: float = 1.0, apply_to: List[str] = None, sync_views: Optional[bool] = None, update_intrinsics: bool = False, mask_protect: List[str] = None, min_visible_mask_pct: float = 0.0, resample: Literal['nearest', 'bilinear', 'bicubic'] = 'bilinear', border_mode: Literal['reflect', 'replicate', 'constant'] = 'reflect', pad_mode: Literal['reflect', 'replicate', 'constant'] = 'reflect', pad_value: float = 0.0, seed_policy: Literal['per_frame', 'per_episode', 'global'] = 'per_frame', **kwargs: Any)
¶
Bases: Module
Base class for all vision transforms with cross-cutting parameters.
Source code in src/dataphy/visionpack/tforms/base.py
Attributes¶
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
RandomCropPad(keep_ratio_min: float = 0.84, scale_range: Optional[List[float]] = None, aspect_ratio_range: Optional[List[float]] = None, center_bias: float = 0.0, min_object_iou: float = 0.0, antialias: bool = True, resize_to: Optional[List[int]] = None, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/crop.py
Attributes¶
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
¶
scale_range = scale_range
instance-attribute
¶
aspect_ratio_range = aspect_ratio_range or [0.98, 1.02]
instance-attribute
¶
center_bias = center_bias
instance-attribute
¶
min_object_iou = min_object_iou
instance-attribute
¶
antialias = antialias
instance-attribute
¶
resize_to = resize_to
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
RandomTranslate(px: int = 8, units: Literal['px', 'percent'] = 'px', distribution: Literal['uniform', 'normal'] = 'uniform', std_px: Optional[float] = None, lock_axis: Literal['both', 'x', 'y'] = 'both', wrap: bool = False, same_delta_per_seq: bool = False, max_pad_pct: float = 1.0, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/translate.py
Attributes¶
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
¶
px = px
instance-attribute
¶
units = units
instance-attribute
¶
distribution = distribution
instance-attribute
¶
std_px = std_px or px / 3.0
instance-attribute
¶
lock_axis = lock_axis
instance-attribute
¶
wrap = wrap
instance-attribute
¶
same_delta_per_seq = same_delta_per_seq
instance-attribute
¶
max_pad_pct = max_pad_pct
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
ColorJitter(magnitude: Optional[float] = None, brightness: Optional[float] = None, contrast: Optional[float] = None, saturation: Optional[float] = None, hue: Optional[float] = None, order: Optional[List[str]] = None, space: Literal['rgb', 'hsv', 'hsl'] = 'rgb', preserve_robot_color: bool = False, clip_range: Optional[List[float]] = None, gamma: Optional[float] = None, temperature_shift: Optional[float] = None, correlate_views: float = 0.0, **kwargs: Any)
¶
Bases: BaseTransform
Color jittering transform for image augmentation.
This transform applies random color adjustments to images, including brightness, contrast, saturation, and hue changes. It supports multiple color spaces and can preserve robot colors in robotics datasets.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
magnitude
|
Optional[float]
|
Global magnitude for all color adjustments (overrides individual params) |
None
|
brightness
|
Optional[float]
|
Brightness adjustment range |
None
|
contrast
|
Optional[float]
|
Contrast adjustment range |
None
|
saturation
|
Optional[float]
|
Saturation adjustment range |
None
|
hue
|
Optional[float]
|
Hue adjustment range |
None
|
order
|
Optional[List[str]]
|
Order of color operations to apply |
None
|
space
|
Literal['rgb', 'hsv', 'hsl']
|
Color space to work in ("rgb", "hsv", "hsl") |
'rgb'
|
preserve_robot_color
|
bool
|
Whether to preserve robot colors using masks |
False
|
clip_range
|
Optional[List[float]]
|
Range to clip output values |
None
|
gamma
|
Optional[float]
|
Gamma correction value |
None
|
temperature_shift
|
Optional[float]
|
Color temperature shift |
None
|
correlate_views
|
float
|
Probability of using correlated parameters across views |
0.0
|
**kwargs
|
Any
|
Additional base transform parameters |
{}
|
Source code in src/dataphy/visionpack/tforms/color.py
Attributes¶
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
¶
brightness = magnitude
instance-attribute
¶
contrast = magnitude
instance-attribute
¶
saturation = magnitude
instance-attribute
¶
hue = magnitude
instance-attribute
¶
order = order or ['brightness', 'contrast', 'saturation', 'hue']
instance-attribute
¶
space = space
instance-attribute
¶
preserve_robot_color = preserve_robot_color
instance-attribute
¶
clip_range = clip_range or [0.0, 1.0]
instance-attribute
¶
gamma = gamma
instance-attribute
¶
temperature_shift = temperature_shift
instance-attribute
¶
correlate_views = correlate_views
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
RandomConv(kernel_variance: float = 0.05, kernel_size: int = 3, per_channel: bool = True, normalize_gain: bool = True, alpha_identity: Optional[List[float]] = None, sample_mode: Literal['gaussian', 'bank', 'hybrid'] = 'gaussian', kernel_bank: Optional[List] = None, bank_prob: float = 0.3, passes: int = 1, boundary: Literal['reflect', 'replicate', 'zeros'] = 'reflect', **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/conv.py
Attributes¶
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
¶
kernel_variance = kernel_variance
instance-attribute
¶
kernel_size = kernel_size
instance-attribute
¶
per_channel = per_channel
instance-attribute
¶
normalize_gain = normalize_gain
instance-attribute
¶
alpha_identity = alpha_identity or [0.0, 1.0]
instance-attribute
¶
sample_mode = sample_mode
instance-attribute
¶
kernel_bank = kernel_bank or self._create_default_kernel_bank()
instance-attribute
¶
bank_prob = bank_prob
instance-attribute
¶
passes = passes
instance-attribute
¶
boundary = boundary
instance-attribute
¶
padding = kernel_size // 2
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
Cutout(holes: int = 2, size_range: Union[Tuple[int, int], List[int]] = (16, 32), size_units: Literal['px', 'percent'] = 'px', aspect_ratio_range: Optional[List[float]] = None, shape: Literal['rect', 'ellipse', 'stripe', 'grid'] = 'rect', rotation_deg: float = 0.0, fill_mode: Literal['zeros', 'mean', 'random', 'noise', 'blur'] = 'zeros', fill_value: Optional[float] = None, soft_edges: float = 0.0, position_bias: Literal['center', 'edges', 'uniform'] = 'uniform', target_masks_only: bool = False, depth_fill: Literal['nan', 'const', 'interp'] = 'nan', occlusion_budget: float = 1.0, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/cutout.py
Attributes¶
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
¶
holes = holes
instance-attribute
¶
size_range = list(size_range) if isinstance(size_range, tuple) else size_range
instance-attribute
¶
size_units = size_units
instance-attribute
¶
aspect_ratio_range = aspect_ratio_range or [0.75, 1.33]
instance-attribute
¶
shape = shape
instance-attribute
¶
rotation_deg = rotation_deg
instance-attribute
¶
fill_mode = fill_mode
instance-attribute
¶
fill_value = fill_value if fill_value is not None else 0.0
instance-attribute
¶
soft_edges = soft_edges
instance-attribute
¶
position_bias = position_bias
instance-attribute
¶
target_masks_only = target_masks_only
instance-attribute
¶
depth_fill = depth_fill
instance-attribute
¶
occlusion_budget = occlusion_budget
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
RandomScale(scale_range: List[float] = [0.9, 1.1], preserve_aspect: bool = True, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/scale.py
Attributes¶
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
¶
scale_range = scale_range
instance-attribute
¶
preserve_aspect = preserve_aspect
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
RandomRotate(deg: float = 7.0, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/rotate.py
Attributes¶
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
¶
deg = deg
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
RandomAffine(shear_deg: float = 5.0, perspective: float = 0.05, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/affine.py
Attributes¶
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
¶
shear_deg = shear_deg
instance-attribute
¶
perspective = perspective
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
RandomHFlip(allow_when: Optional[List[str]] = None, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/flip.py
Attributes¶
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
¶
allow_when = allow_when or []
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
WBShift(kelvin_shift: Optional[float] = None, mired_shift: Optional[float] = None, per_channel_gain: List[float] = [0.95, 1.05], preserve_robot_color: bool = True, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/wb_shift.py
Attributes¶
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
¶
kelvin_shift = kelvin_shift or 1000.0
instance-attribute
¶
mired_shift = mired_shift or 10.0
instance-attribute
¶
per_channel_gain = per_channel_gain
instance-attribute
¶
preserve_robot_color = preserve_robot_color
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
Gamma(gamma: List[float] = [0.9, 1.1], per_channel: bool = False, clip_range: List[float] = [0.0, 1.0], **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/gamma.py
Attributes¶
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
¶
gamma_range = gamma if isinstance(gamma, list) else [gamma, gamma]
instance-attribute
¶
per_channel = per_channel
instance-attribute
¶
clip_range = clip_range
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
ToGrayscale(keep_channels: int = 3, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/grayscale.py
Attributes¶
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
¶
keep_channels = keep_channels
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
MotionBlur(kernel: list = [3, 9], angle_deg: list = [0, 180], prob: float = 0.2, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/blur.py
Attributes¶
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
¶
kernel_range = kernel
instance-attribute
¶
angle_range = angle_deg
instance-attribute
¶
prob = prob
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
GaussianBlur(sigma: list = [0.3, 1.2], kernel: list = [3, 7], **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/blur.py
Attributes¶
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
¶
sigma_range = sigma
instance-attribute
¶
kernel_range = kernel
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
GaussianNoise(sigma: list = [0.005, 0.03], per_channel: bool = True, **kwargs: Any)
¶
Bases: BaseTransform
Gaussian noise transform for image augmentation.
This transform adds random Gaussian noise to images, simulating sensor noise or other random perturbations. It can apply noise per-channel or globally.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sigma
|
list
|
Range of noise standard deviation [min, max] |
[0.005, 0.03]
|
per_channel
|
bool
|
Whether to apply different noise to each channel |
True
|
**kwargs
|
Any
|
Additional base transform parameters |
{}
|
Source code in src/dataphy/visionpack/tforms/noise.py
Attributes¶
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
¶
sigma_range = sigma
instance-attribute
¶
per_channel = per_channel
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
PoissonNoise(scale: list = [0.5, 1.5], **kwargs: Any)
¶
Bases: BaseTransform
Poisson noise transform for image augmentation.
This transform adds Poisson (shot) noise to images, simulating photon noise in camera sensors. It includes error handling for edge cases and fallback to Gaussian approximation when needed.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
scale
|
list
|
Range of scaling factors for noise intensity [min, max] |
[0.5, 1.5]
|
**kwargs
|
Any
|
Additional base transform parameters |
{}
|
Source code in src/dataphy/visionpack/tforms/noise.py
Attributes¶
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
¶
scale_range = scale
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
SpeckleNoise(sigma: list = [0.01, 0.05], **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/noise.py
Attributes¶
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
¶
sigma_range = sigma
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
SaltPepperNoise(amount: list = [0.001, 0.01], salt_vs_pepper: float = 0.5, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/noise.py
Attributes¶
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
¶
amount_range = amount
instance-attribute
¶
salt_vs_pepper = salt_vs_pepper
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
JPEGCompress(quality: List[int] = [35, 90], **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/artifacts.py
Attributes¶
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
¶
quality_range = quality
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
BitDepth(bits: List[int] = [8, 10, 12], **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/artifacts.py
Attributes¶
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
¶
bits_options = bits
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
Vignette(strength: List[float] = [0.0, 0.3], softness: List[float] = [0.2, 0.7], center_bias_vignette: List[float] = [-0.1, 0.1], **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/artifacts.py
Attributes¶
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
¶
strength_range = strength
instance-attribute
¶
softness_range = softness
instance-attribute
¶
center_bias_range = center_bias_vignette
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
LensDistortion(k1: List[float] = [-0.1, 0.1], k2: List[float] = [-0.05, 0.05], crop_or_pad: Literal['crop', 'pad'] = 'crop', **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/artifacts.py
Attributes¶
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
¶
k1_range = k1
instance-attribute
¶
k2_range = k2
instance-attribute
¶
crop_or_pad = crop_or_pad
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
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
Attributes¶
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
¶
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
¶
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
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
Attributes¶
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
¶
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
¶
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
DepthNoise(sigma_mm_at_1m: List[float] = [1.0, 5.0], quad_scale: bool = True, missing_prob: List[float] = [0.0, 0.05], hole_fill: Literal['none', 'interp'] = 'none', profile: Literal['tof', 'stereo', 'structured_light', 'generic'] = 'generic', holes_prob: List[float] = None, edge_dropout_prob: List[float] = None, speckle: List[float] = None, guidance: Literal['none', 'rgb_edges'] = 'none', **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/depth.py
Attributes¶
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
¶
sigma_mm_at_1m_range = sigma_mm_at_1m
instance-attribute
¶
quad_scale = quad_scale
instance-attribute
¶
missing_prob_range = missing_prob
instance-attribute
¶
hole_fill = hole_fill
instance-attribute
¶
profile = profile
instance-attribute
¶
holes_prob = holes_prob or [0.0, 0.0]
instance-attribute
¶
edge_dropout_prob = edge_dropout_prob or [0.0, 0.0]
instance-attribute
¶
speckle = speckle or [0.0, 0.0]
instance-attribute
¶
guidance = guidance
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
DepthQuantize(bits: List[int] = [10, 12, 16], **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/depth.py
Attributes¶
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
¶
bits_options = bits
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
LightingRand(ambient_tint: List[float] = None, directional_intensity: List[float] = None, direction_deg: List[float] = None, softness: List[float] = None, spot_count: List[int] = None, spot_radius: List[float] = None, spot_intensity: List[float] = None, shadow_prob: float = 0.0, preserve_robot_color: bool = False, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/lighting_rand.py
Attributes¶
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
¶
ambient_tint = ambient_tint or [0.95, 1.05]
instance-attribute
¶
directional_intensity = directional_intensity or [0.0, 0.5]
instance-attribute
¶
direction_deg = direction_deg or [0.0, 360.0]
instance-attribute
¶
softness = softness or [0.2, 0.8]
instance-attribute
¶
spot_count = spot_count or [0, 2]
instance-attribute
¶
spot_radius = spot_radius or [0.1, 0.3]
instance-attribute
¶
spot_intensity = spot_intensity or [0.0, 0.5]
instance-attribute
¶
shadow_prob = shadow_prob
instance-attribute
¶
preserve_robot_color = preserve_robot_color
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
CameraIntrinsicsJitter(fx_jitter: List[float] = None, fy_jitter: List[float] = None, cx_jitter_px: List[int] = None, cy_jitter_px: List[int] = None, antialias: bool = True, keep_size: bool = True, intrinsics_key: str = 'camera_intrinsics', **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/camera_intrinsics.py
Attributes¶
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
¶
fx_jitter = fx_jitter or [0.98, 1.02]
instance-attribute
¶
fy_jitter = fy_jitter or [0.98, 1.02]
instance-attribute
¶
cx_jitter_px = cx_jitter_px or [-4, 4]
instance-attribute
¶
cy_jitter_px = cy_jitter_px or [-4, 4]
instance-attribute
¶
antialias = antialias
instance-attribute
¶
keep_size = keep_size
instance-attribute
¶
intrinsics_key = intrinsics_key
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
CameraExtrinsicsJitter(rot_deg: List[float] = None, transl_px: List[int] = None, perspective: float = 0.0, extrinsics_key: str = 'camera_extrinsics', same_delta_per_seq: bool = False, **kwargs: Any)
¶
Bases: BaseTransform
Source code in src/dataphy/visionpack/tforms/camera_extrinsics.py
Attributes¶
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
¶
rot_deg = rot_deg or [-3.0, 3.0]
instance-attribute
¶
transl_px = transl_px or [-6, 6]
instance-attribute
¶
perspective = perspective
instance-attribute
¶
extrinsics_key = extrinsics_key
instance-attribute
¶
same_delta_per_seq = same_delta_per_seq
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
RGBSensorNoise(shot_k: List[float] = None, read_sigma: List[float] = None, iso_range: List[int] = None, exposure_shift: List[float] = None, analog_gain: List[float] = None, crosstalk: float = 0.0, black_level: float = 0.0, saturation_level: float = 1.0, clip: bool = True, **kwargs: Any)
¶
Bases: BaseTransform
RGB sensor noise simulation for realistic camera augmentation.
This transform simulates realistic camera sensor noise including shot noise, read noise, ISO effects, exposure variations, and channel crosstalk.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
shot_k
|
List[float]
|
Range of shot noise scaling factors [min, max] |
None
|
read_sigma
|
List[float]
|
Range of read noise standard deviations [min, max] |
None
|
iso_range
|
List[int]
|
Range of ISO values to simulate [min, max] |
None
|
exposure_shift
|
List[float]
|
Range of exposure adjustments [min, max] |
None
|
analog_gain
|
List[float]
|
Range of analog gain factors [min, max] |
None
|
crosstalk
|
float
|
Channel crosstalk coefficient |
0.0
|
black_level
|
float
|
Black level offset |
0.0
|
saturation_level
|
float
|
Saturation level for clipping |
1.0
|
clip
|
bool
|
Whether to clip values to valid range |
True
|
**kwargs
|
Any
|
Additional base transform parameters |
{}
|
Source code in src/dataphy/visionpack/tforms/sensor_noise.py
Attributes¶
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
¶
shot_k = shot_k or [0.5, 1.5]
instance-attribute
¶
read_sigma = read_sigma or [0.002, 0.01]
instance-attribute
¶
iso_range = iso_range or [100, 800]
instance-attribute
¶
exposure_shift = exposure_shift or [-0.2, 0.2]
instance-attribute
¶
analog_gain = analog_gain or [0.9, 1.1]
instance-attribute
¶
crosstalk = crosstalk
instance-attribute
¶
black_level = black_level
instance-attribute
¶
saturation_level = saturation_level
instance-attribute
¶
clip = clip
instance-attribute
¶
Functions¶
forward(batch: Dict[str, Any]) -> Dict[str, Any]
¶
Base forward method that handles cross-cutting logic.