openvinotoolkit / anomalib

An anomaly detection library comprising state-of-the-art algorithms and features such as experiment management, hyper-parameter optimization, and edge inference.
https://anomalib.readthedocs.io/en/latest/
Apache License 2.0
3.68k stars 654 forks source link

[Task]: Identifying small targets is not effective, are there any measures #1328

Closed xingfenghaizeiwang closed 1 year ago

xingfenghaizeiwang commented 1 year ago

What is the motivation for this task?

Identify some flaws

Describe the solution you'd like

dataset: name: mvtec format: folder root: D:\project\anomalib\datasets\MVTec normal_dir: card/train/good normal_test_dir: card/test/good abnormal_dir: card/test/ng task: segmentation mask_dir: null extensions: null train_batch_size: 32 eval_batch_size: 32 num_workers: 8 image_size: 256 # dimensions to which images are resized (mandatory) center_crop: null # dimensions to which images are center-cropped after resizing (optional) normalization: imagenet # data distribution to which the images will be normalized: [none, imagenet] transform_config: train: null eval: null test_split_mode: none # options: [from_dir, synthetic, none] test_split_ratio: 0.2 # fraction of train images held out testing (usage depends on test_split_mode) val_split_mode: synthetic # options: [same_as_test, from_test, synthetic] val_split_ratio: 0.5 # fraction of train/test images held out for validation (usage depends on val_split_mode) tiling: apply: false tile_size: null stride: null remove_border_count: 0 use_random_tiling: False random_tile_count: 16

model: name: padim backbone: resnet18 pre_trained: true layers:

metrics: image:

visualization: show_images: False # show images on the screen save_images: True # save images to the file system log_images: True # log images to the available loggers (if any) image_save_path: null # path to which images will be saved mode: full # options: ["full", "simple"]

project: seed: 42 path: ./result

logging: logger: [ ] # options: [comet, tensorboard, wandb, csv] or combinations. log_graph: false # Logs the model graph to respective logger.

optimization: export_mode: null # options: torch, onnx, openvino

PL Trainer Args. Don't add extra parameter here.

trainer: enable_checkpointing: true default_root_dir: null gradient_clip_val: 0 gradient_clip_algorithm: norm num_nodes: 1 devices: 1 enable_progress_bar: true overfit_batches: 0.0 track_grad_norm: -1 check_val_every_n_epoch: 1 # Don't validate before extracting features. fast_dev_run: false accumulate_grad_batches: 1 max_epochs: 1 min_epochs: null max_steps: -1 min_steps: null max_time: null limit_train_batches: 1.0 limit_val_batches: 1.0 limit_test_batches: 1.0 limit_predict_batches: 1.0 val_check_interval: 1.0 # Don't validate before extracting features. log_every_n_steps: 50 accelerator: auto # <"cpu", "gpu", "tpu", "ipu", "hpu", "auto"> strategy: null sync_batchnorm: false precision: 32 enable_model_summary: true num_sanity_val_steps: 0 profiler: null benchmark: false deterministic: false reload_dataloaders_every_n_epochs: 0 auto_lr_find: false replace_sampler_ddp: true detect_anomaly: false auto_scale_batch_size: false plugins: null move_metrics_to_cpu: true multiple_trainloader_mode: max_size_cycle

Additional context

No response

samet-akcay commented 1 year ago

You could use tiling to focus on smaller objects. For an example, you could refer to this jupyter notebook https://github.com/openvinotoolkit/anomalib/blob/main/notebooks/100_datamodules/104_tiling.ipynb