English
Shanci's picture
Upload folder using huggingface_hub
26225c5 verified
from collections.abc import Iterable
__all__ = [
'POINT_FEATURES', 'SEGMENT_BASE_FEATURES', 'SUBEDGE_FEATURES',
'ON_THE_FLY_HORIZONTAL_FEATURES', 'ON_THE_FLY_VERTICAL_FEATURES',
'sanitize_keys']
POINT_FEATURES = [
'rgb',
'hsv',
'lab',
'density',
'linearity',
'planarity',
'scattering',
'verticality',
'elevation',
'normal',
'length',
'surface',
'volume',
'curvature',
'intensity',
'pos_room']
SEGMENT_BASE_FEATURES = [
'linearity',
'planarity',
'scattering',
'verticality',
'curvature',
'log_length',
'log_surface',
'log_volume',
'normal',
'log_size']
SUBEDGE_FEATURES = [
'mean_off',
'std_off',
'mean_dist']
ON_THE_FLY_HORIZONTAL_FEATURES = [
'mean_off',
'std_off',
'mean_dist',
'angle_source',
'angle_target',
'centroid_dir',
'centroid_dist',
'normal_angle',
'log_length',
'log_surface',
'log_volume',
'log_size']
ON_THE_FLY_VERTICAL_FEATURES = [
'centroid_dir',
'centroid_dist',
'normal_angle',
'log_length',
'log_surface',
'log_volume',
'log_size']
def sanitize_keys(keys, default=[]):
"""Sanitize an iterable of string key into a sorted list of unique
keys. This is necessary for consistently hashing key list arguments
of some transforms.
"""
# Convert to list of keys
if isinstance(keys, str):
out = [keys]
elif isinstance(keys, Iterable):
out = list(keys)
else:
out = list(default)
assert all(isinstance(x, str) for x in out), \
f"Input 'keys' must be a string or an iterable of strings, but some " \
f"non-string elements were found in '{keys}'"
# Remove duplicates and sort elements
out = tuple(sorted(list(set(out))))
return out