Features
Any
- class prescyent.dataset.features.feature.any.Any(ids: List | range, distance_unit='_', name='Any')
Bases:
Feature
Default feature without specific constraints and conversions
- get_distance(tensor_a: Tensor, tensor_b: Tensor) Tensor
euclidian distance
- Args:
tensor_a (torch.Tensor): tensor to compare tensor_b (torch.Tensor): tensor to compare
- Returns:
torch.Tensor: distance between the two tensors
Coordinate
Feature used to represent coordinates from 1D to 3D
Coordinate
- class prescyent.dataset.features.feature.coordinate.Coordinate(ids: List | range, distance_unit: str = 'm', name: str = 'Coordinate')
Bases:
Feature
parent class for coordinates, used for conversion and distance
- get_distance(tensor_a: Tensor, tensor_b: Tensor) Tensor
computes eclidian distance
- Args:
tensor_a (torch.Tensor): tensor to compare tensor_b (torch.Tensor): tensor to compare
- Returns:
torch.Tensor: distance between the two tensors
CoordinateX
- class prescyent.dataset.features.feature.coordinate.CoordinateX(ids: List | range, distance_unit: str = 'm', name: str = 'Coordinate')
Bases:
Coordinate
1D coordinates
CoordinateXY
- class prescyent.dataset.features.feature.coordinate.CoordinateXY(ids: List | range, distance_unit: str = 'm', name: str = 'Coordinate')
Bases:
Coordinate
2D coordinates
CoordinateXYZ
- class prescyent.dataset.features.feature.coordinate.CoordinateXYZ(ids: List | range, distance_unit: str = 'm', name: str = 'Coordinate')
Bases:
Coordinate
3D coordinates
Rotation
Feature for rotations
Rotation
RotationEuler
RotationQuat
- class prescyent.dataset.features.feature.rotation.RotationQuat(ids: List | range, distance_unit: str = 'rad', name: str = 'Rotation')
Bases:
Rotation
quaternion x, y, z, w representation
- get_distance(tensor_a: Tensor, tensor_b: Tensor) Tensor
computes angular distance in radian
- Args:
tensor_a (torch.Tensor): tensor to compare tensor_b (torch.Tensor): tensor to compare
- Returns:
torch.Tensor: distance between the two tensors
- post_process(quaternion_t: Tensor) Tensor
normalise a quaternion as postprocessing
- Args:
quaternion_t (torch.Tensor): quaternion to normalize
- Returns:
torch.Tensor: normalized quaternion
RotationRotMat
- class prescyent.dataset.features.feature.rotation.RotationRotMat(ids: List | range, distance_unit: str = 'rad', name: str = 'Rotation')
Bases:
Rotation
rotation matrix
- get_distance(tensor_a: Tensor, tensor_b: Tensor) Tensor
computes angular distance in radian
- Args:
tensor_a (torch.Tensor): tensor to compare tensor_b (torch.Tensor): tensor to compare
- Returns:
torch.Tensor: distance between the two tensors
- post_process(rotmat_t: Tensor) Tensor
Use SVD to postprocess rotation matrices
- Args:
rotmat_t (torch.Tensor): matrix tensor with shape like […, 9]
- Returns:
torch.Tensor: postprocessed rotation matrix tensor with shape like […, 9].
RotationRep6D
- class prescyent.dataset.features.feature.rotation.RotationRep6D(ids: List | range, distance_unit: str = 'rad', name: str = 'Rotation')
Bases:
Rotation
Continuous minimal representation from the rotmatrix, from: Zhou, Y., Barnes, C., Lu, J., Yang, J., & Li, H. (2020). On the continuity of rotation representations in neural networks. arXiv preprint arXiv:1812.07035.