def get_resolved_layer_type(layer_config: LayerConfig) -> ResolvedLayerType: if layer_config.get('filter'): return ResolvedLayerType.FILTER if layer_config.get('input_path'): return ResolvedLayerType.INPUT_SOURCE if layer_config.get('output_path'): return ResolvedLayerType.OUTPUT_SINK raise ValueError('unable to determine resolved layer type for: %s' % layer_config)
def __init__(self, layer_config: LayerConfig, **kwargs): super().__init__(layer_config, **kwargs) self.model_path = (layer_config.get('model_path') or BodyPixModelPaths.MOBILENET_FLOAT_50_STRIDE_16) self._bodypix_model = None self.threshold = float(layer_config.get('threshold') or 0.50) self.internal_resolution = float( layer_config.get('internal_resolution') or 0.50) self.cache_model_result_secs = float( layer_config.get('cache_model_result_secs') or 0.0) self.parts = list(layer_config.get('parts') or []) self._bodypix_result_cache = None self._bodypix_result_cache_time = None
def _add_layer_recursively( self, layer_config: LayerConfig, default_id: str, default_input_layer: Optional[ResolvedLayerConfig] ) -> ResolvedLayerConfig: layer_id = layer_config.get('id') or default_id branches = layer_config.get('branches') if branches: return self._add_branches_recursively( layer_config, layer_id=layer_id, default_input_layer=default_input_layer ) resolved_layer_config = ResolvedLayerConfig({ **layer_config.props, 'id': layer_id }, default_input_layer=default_input_layer) return self._add_resolved_layer(resolved_layer_config)
def parse_fill_config(self, layer_config: LayerConfig) -> Config: color = layer_config.get('color') color_value: Optional[np.ndarray] = get_color_numpy_array(color) value = layer_config.get_int('value') poly_points_list = layer_config.get_list('poly_points') poly_points = (np.asarray(poly_points_list, dtype=np.float32) if poly_points_list else None) config = FillFilter.Config(color=color_value, value=value, poly_points=poly_points) LOGGER.info('fill config: %s', config) assert config.color is not None or config.value is not None return config