[docs]classTilerConfigurationCallback(Callback):"""Tiler Configuration Callback."""def__init__(self,enable:bool=False,tile_size:Union[int,Sequence]=256,stride:Optional[Union[int,Sequence]]=None,remove_border_count:int=0,mode:str="padding",tile_count:int=4,):"""Sets tiling configuration from the command line. Args: enable (bool): Boolean to enable tiling operation. Defaults to False. tile_size ([Union[int, Sequence]]): Tile size. Defaults to 256. stride ([Union[int, Sequence]]): Stride to move tiles on the image. remove_border_count (int, optional): Number of pixels to remove from the image before tiling. Defaults to 0. mode (str, optional): Up-scaling mode when untiling overlapping tiles. Defaults to "padding". tile_count (SupportsIndex, optional): Number of random tiles to sample from the image. Defaults to 4. """self.enable=enableself.tile_size=tile_sizeself.stride=strideself.remove_border_count=remove_border_countself.mode=modeself.tile_count=tile_count
[docs]defsetup(self,_trainer:pl.Trainer,pl_module:pl.LightningModule,stage:Optional[str]=None)->None:"""Setup Tiler object within Anomalib Model. Args: _trainer (pl.Trainer): PyTorch Lightning Trainer pl_module (pl.LightningModule): Anomalib Model that inherits pl LightningModule. stage (Optional[str], optional): fit, validate, test or predict. Defaults to None. Raises: ValueError: When Anomalib Model doesn't contain ``Tiler`` object, it means the model doesn not support tiling operation. """ifself.enable:ifisinstance(pl_module,AnomalyModule)andhasattr(pl_module.model,"tiler"):pl_module.model.tiler=Tiler(tile_size=self.tile_size,stride=self.stride,remove_border_count=self.remove_border_count,mode=self.mode,tile_count=self.tile_count,)else:raiseValueError("Model does not support tiling.")