Skip to content

Commit

Permalink
🚀 V1 (#1663)
Browse files Browse the repository at this point in the history
* Merge feature/lightning-version-upgrade to feature/custom-trainer (#1297)

Upgrade to Lightning 2.0.5 (#1221)

* Adapt code and configs to PL 2.0.5

* Pre-commit checks.

* Fix a function call.

* Fix function calls.

* pytorch_lightning -> lightning.pytorch

* Add lightning to requirements

---------

Co-authored-by: Weilin Xu <mzweilin@gmail.com>
Co-authored-by: Samet <samet.akcay@intel.com>

* Partially restore tests (#1298)

* Upgrade to Lightning 2.0.5 (#1221)

* Adapt code and configs to PL 2.0.5

* Pre-commit checks.

* Fix a function call.

* Fix function calls.

* pytorch_lightning -> lightning.pytorch

* Add lightning to requirements

---------

Co-authored-by: Samet <samet.akcay@intel.com>

* partially restore tests

* Address PR comments

---------

Co-authored-by: Weilin Xu <mzweilin@gmail.com>
Co-authored-by: Samet <samet.akcay@intel.com>
Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* [Custom Trainer] Remove future annotations (#1299)

* remove __future__

* Update changelog

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* [Custom Trainer] Refactor postprocessing (#1302)

* remove __future__

* Update changelog

* 🚚 Trainer -> AnomalibTrainer

* add post-processor

* Refactor callback

* Remove handler

* Address PR comments

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* [Custom Trainer] refactor normalization callbacks (#1310)

* remove __future__

* Update changelog

* 🚚 Trainer -> AnomalibTrainer

* add post-processor

* Refactor callback

* Refactor normalization callback

* Match convention

* Refactor imports

* Address PR comments

* Fix path

* Refactor callbacks

* Fix module path

---------

* [Custom Trainer] Refactor thresholding (#1311)

* remove __future__

* Update changelog

* 🚚 Trainer -> AnomalibTrainer

* add post-processor

* Refactor callback

* Refactor normalization callback

* Refactor thresholding

* Match convention

* Refactor imports

* Address PR comments

* Fix path

* Refactor callbacks

* Fix module path

* Address PR comments

* Apply suggestions from code review

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

---------

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* [Custom Trainer] Refactor Metrics (#1312)

* remove __future__

* Update changelog

* 🚚 Trainer -> AnomalibTrainer

* add post-processor

* Refactor callback

* Refactor normalization callback

* Refactor thresholding

* Refactor metrics configuration

* Match convention

* Refactor imports

* Address PR comments

* Fix path

* Refactor callbacks

* Fix module path

* Address PR comments

* Address PR comments

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* [Custom Trainer] Refactor visualization callback (#1313)

* remove __future__

* Update changelog

* 🚚 Trainer -> AnomalibTrainer

* add post-processor

* Refactor callback

* Refactor normalization callback

* Refactor thresholding

* Refactor metrics configuration

* Move visualizer callbacks into trainer

* Match convention

* Refactor imports

* Address PR comments

* Fix path

* Refactor callbacks

* Fix module path

* Address PR comments

* Remove comment

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* [Custom Trainer] Initial engine design (#1348)

* Initial engine design

* Address PR comments

* Circular import + trainer->engine

* Update src/anomalib/engine/engine.py

* revert import in __init__

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>
Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* [Custom Trainer] Partially fix tests (#1359)

* Partially fix test

* Address PR comments

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* [Custom Trainer] Add CLI support (#1381)

* Support trainer methods

* support yaml serialization

* add hpo command

* Add benchmark + train entrypoint

* Add export arguments

* Partially address PR comments

* Add export subcommands + refactor

* Address PR comments

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* [Custom Trainer] Partially restore tests (#1391)

* Fix tests

* Patch get experiment logger

* Sort imports

* Add stfpm config

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Add new ruff rules (#1390)

* Add rules to pyproject.toml file

* Only include padim and stfpm in tests

* Fix notebook tests

* Fix notebook tests

* Code quality/enable rules (#1394)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* Enable Ruff rules - Part III (#1397)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* pyupgrade (`UP`)

* flake8-bandit (`S`)

* Enabled UP, ANN, S, BLE, FBT, B

* Fix typo

* Revert F1AdaptiveThreshold parent classes

* Fix some of the tests

* ignore boolean-positional-value-in-call (FBT003)

* Addressed pr comments

* Remove duplicated lines

* Enable Ruff Rules - Part 4 (#1402)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* pyupgrade (`UP`)

* flake8-bandit (`S`)

* Enabled UP, ANN, S, BLE, FBT, B

* Fix typo

* Revert F1AdaptiveThreshold parent classes

* Fix some of the tests

* ignore boolean-positional-value-in-call (FBT003)

* Addressed pr comments

* Remove duplicated lines

* flake8-builtins (`A`) and flake8-commas (`COM`)

* flake8-comprehensions (`C4`)

* flake8-datatimez (`DTZ`), flake8-debugger (`T10`), flake8-errmsg (`EM`)

* [Custom Trainer] Switch to manual optimization for ganomaly (#1404)

* implement manual optimizers for ganomaly

* cleanup

* Enable Ruff Rules - Part 5 (#1403)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* pyupgrade (`UP`)

* flake8-bandit (`S`)

* Enabled UP, ANN, S, BLE, FBT, B

* Fix typo

* Revert F1AdaptiveThreshold parent classes

* Fix some of the tests

* ignore boolean-positional-value-in-call (FBT003)

* Addressed pr comments

* Remove duplicated lines

* flake8-builtins (`A`) and flake8-commas (`COM`)

* flake8-comprehensions (`C4`)

* flake8-datatimez (`DTZ`), flake8-debugger (`T10`), flake8-errmsg (`EM`)

* flake8-pie (`PIE`)

* flake8-raise (`RSE`)

* flake8-return (`RET`)

* flake8-self (`SLF`)

* flake8-simplify (`SIM`)

* flake8-unsused-arguments (`ARG`)

* Update src/anomalib/models/components/flow/all_in_one_block.py

Co-authored-by: Ashwin Vaidya <ashwinnitinvaidya@gmail.com>

* addressed pr comments

---------

Co-authored-by: Ashwin Vaidya <ashwinnitinvaidya@gmail.com>

* [Custom Trainer] Add import checks (#1393)

* Add checks

* Add checks for wandb

* move exception handling to method

* fix pre-commit issue

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* [Custom Trainer] Remove max epochs > 1 (#1400)

Remove max epochs>1 from default param list

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* [Custom Trainer] Add default values (#1395)

* Add checks

* Add default values to datasets + padim model

* update default values

* Remove merge artifact

* Change gt path

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Enable Ruff Rules - Part 6 (#1407)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* pyupgrade (`UP`)

* flake8-bandit (`S`)

* Enabled UP, ANN, S, BLE, FBT, B

* Fix typo

* Revert F1AdaptiveThreshold parent classes

* Fix some of the tests

* ignore boolean-positional-value-in-call (FBT003)

* Addressed pr comments

* Remove duplicated lines

* flake8-builtins (`A`) and flake8-commas (`COM`)

* flake8-comprehensions (`C4`)

* flake8-datatimez (`DTZ`), flake8-debugger (`T10`), flake8-errmsg (`EM`)

* flake8-pie (`PIE`)

* flake8-raise (`RSE`)

* flake8-return (`RET`)

* flake8-self (`SLF`)

* flake8-simplify (`SIM`)

* flake8-unsused-arguments (`ARG`)

* flake8-use-pathlib (`PTH`)

* eradicate (`ERA`)

* pylint (`PL`)

* tryceratos (`TRY`), flynt (`FLY`), Perflint (`PERF`)

* NumPy-specific rules (`NPY`)

* Ruff-specific rules (`RUF`)

* Remove pylint ignore comments

* Fix tests

* Fix tests

* Enable Ruff Rules - Part 7 (#1408)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* pyupgrade (`UP`)

* flake8-bandit (`S`)

* Enabled UP, ANN, S, BLE, FBT, B

* Fix typo

* Revert F1AdaptiveThreshold parent classes

* Fix some of the tests

* ignore boolean-positional-value-in-call (FBT003)

* Addressed pr comments

* Remove duplicated lines

* flake8-builtins (`A`) and flake8-commas (`COM`)

* flake8-comprehensions (`C4`)

* flake8-datatimez (`DTZ`), flake8-debugger (`T10`), flake8-errmsg (`EM`)

* flake8-pie (`PIE`)

* flake8-raise (`RSE`)

* flake8-return (`RET`)

* flake8-self (`SLF`)

* flake8-simplify (`SIM`)

* flake8-unsused-arguments (`ARG`)

* flake8-use-pathlib (`PTH`)

* eradicate (`ERA`)

* pylint (`PL`)

* tryceratos (`TRY`), flynt (`FLY`), Perflint (`PERF`)

* NumPy-specific rules (`NPY`)

* Ruff-specific rules (`RUF`)

* Remove pylint ignore comments

* Fix tests

* Fix tests

* mccabe (`C90`)

* pygrep-hooks (`PGH`)

* flake8-todos (`TD`)

* flake8-fixme (`FIX`)

* pandas-vet (`PD`)

* Fix random_split tests

* Fix pre-commit

* Fixed the logger test

* Fix the typos in todos

* Enable Ruff Rules - Part 8 (#1412)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* pyupgrade (`UP`)

* flake8-bandit (`S`)

* Enabled UP, ANN, S, BLE, FBT, B

* Fix typo

* Revert F1AdaptiveThreshold parent classes

* Fix some of the tests

* ignore boolean-positional-value-in-call (FBT003)

* Addressed pr comments

* Remove duplicated lines

* flake8-builtins (`A`) and flake8-commas (`COM`)

* flake8-comprehensions (`C4`)

* flake8-datatimez (`DTZ`), flake8-debugger (`T10`), flake8-errmsg (`EM`)

* flake8-pie (`PIE`)

* flake8-raise (`RSE`)

* flake8-return (`RET`)

* flake8-self (`SLF`)

* flake8-simplify (`SIM`)

* flake8-unsused-arguments (`ARG`)

* flake8-use-pathlib (`PTH`)

* eradicate (`ERA`)

* pylint (`PL`)

* tryceratos (`TRY`), flynt (`FLY`), Perflint (`PERF`)

* NumPy-specific rules (`NPY`)

* Ruff-specific rules (`RUF`)

* Remove pylint ignore comments

* Fix tests

* Fix tests

* mccabe (`C90`)

* pygrep-hooks (`PGH`)

* flake8-todos (`TD`)

* flake8-fixme (`FIX`)

* pandas-vet (`PD`)

* ignore ANN101 ANN102 and ANN103

* Fix random_split tests

* Fix pre-commit

* ANN partly done

* Remove kwargs: Any

* flake8-annotations (`ANN`)

* Enabled tests

* Revert padim configs

* Enable Ruff Rules - Part 9 (#1419)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* pyupgrade (`UP`)

* flake8-bandit (`S`)

* Enabled UP, ANN, S, BLE, FBT, B

* Fix typo

* Revert F1AdaptiveThreshold parent classes

* Fix some of the tests

* ignore boolean-positional-value-in-call (FBT003)

* Addressed pr comments

* Remove duplicated lines

* flake8-builtins (`A`) and flake8-commas (`COM`)

* flake8-comprehensions (`C4`)

* flake8-datatimez (`DTZ`), flake8-debugger (`T10`), flake8-errmsg (`EM`)

* flake8-pie (`PIE`)

* flake8-raise (`RSE`)

* flake8-return (`RET`)

* flake8-self (`SLF`)

* flake8-simplify (`SIM`)

* flake8-unsused-arguments (`ARG`)

* flake8-use-pathlib (`PTH`)

* eradicate (`ERA`)

* pylint (`PL`)

* tryceratos (`TRY`), flynt (`FLY`), Perflint (`PERF`)

* NumPy-specific rules (`NPY`)

* Ruff-specific rules (`RUF`)

* Remove pylint ignore comments

* Fix tests

* Fix tests

* mccabe (`C90`)

* pygrep-hooks (`PGH`)

* flake8-todos (`TD`)

* flake8-fixme (`FIX`)

* pandas-vet (`PD`)

* ignore ANN101 ANN102 and ANN103

* Fix random_split tests

* Fix pre-commit

* ANN partly done

* Remove kwargs: Any

* flake8-annotations (`ANN`)

* Enabled tests

* Revert padim configs

* Add auto fixes

* Fix docstrings

* Update src/anomalib/utils/metrics/binning.py

Co-authored-by: Ashwin Vaidya <ashwinnitinvaidya@gmail.com>

* Update src/anomalib/models/dfkde/lightning_model.py

Co-authored-by: Ashwin Vaidya <ashwinnitinvaidya@gmail.com>

* Update src/anomalib/models/rkde/feature_extractor.py

Co-authored-by: Ashwin Vaidya <ashwinnitinvaidya@gmail.com>

* Fixed pre-commit

---------

Co-authored-by: Ashwin Vaidya <ashwinnitinvaidya@gmail.com>

* Merge main into feature/custom_trainer (#1420)

* Address tiler issues (#1411)

* fix tiler

* deprecate random tile locations

* restore random tiling in tile method

* check tiling section in config

* disable tiling for ganomalu

* pad -> padding

* Refactor Reverse Distillation to match official code (#1389)

* Non-mandatory early stopping

* Added conv4 and bn4 to OCBE

* Loss as in the official code (flattened arrays)

* Added comment on how to use torchvision model as an encoder to reproduce results in the paper

* Remove early stop from config, change default anomaly_map_mode to add

* pre-commit fix

* Updated results

* Update src/anomalib/models/reverse_distillation/README.md

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/models/reverse_distillation/README.md

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/models/reverse_distillation/README.md

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Remove early_stopping

* Update src/anomalib/models/reverse_distillation/lightning_model.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Easier to read code

---------

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

---------

Co-authored-by: Dick Ameln <dick.ameln@intel.com>
Co-authored-by: abc-125 <63813435+abc-125@users.noreply.github.com>
Co-authored-by: Samet Akcay <samet.akcay@intel.com>
Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Enable Ruff Rules - Part 10 (#1423)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* pyupgrade (`UP`)

* flake8-bandit (`S`)

* Enabled UP, ANN, S, BLE, FBT, B

* Fix typo

* Revert F1AdaptiveThreshold parent classes

* Fix some of the tests

* ignore boolean-positional-value-in-call (FBT003)

* Addressed pr comments

* Remove duplicated lines

* flake8-builtins (`A`) and flake8-commas (`COM`)

* flake8-comprehensions (`C4`)

* flake8-datatimez (`DTZ`), flake8-debugger (`T10`), flake8-errmsg (`EM`)

* flake8-pie (`PIE`)

* flake8-raise (`RSE`)

* flake8-return (`RET`)

* flake8-self (`SLF`)

* flake8-simplify (`SIM`)

* flake8-unsused-arguments (`ARG`)

* flake8-use-pathlib (`PTH`)

* eradicate (`ERA`)

* pylint (`PL`)

* tryceratos (`TRY`), flynt (`FLY`), Perflint (`PERF`)

* NumPy-specific rules (`NPY`)

* Ruff-specific rules (`RUF`)

* Remove pylint ignore comments

* Fix tests

* Fix tests

* mccabe (`C90`)

* pygrep-hooks (`PGH`)

* flake8-todos (`TD`)

* flake8-fixme (`FIX`)

* pandas-vet (`PD`)

* ignore ANN101 ANN102 and ANN103

* Fix random_split tests

* Fix pre-commit

* ANN partly done

* Remove kwargs: Any

* flake8-annotations (`ANN`)

* Enabled tests

* Revert padim configs

* Add auto fixes

* Fix docstrings

* Enabled "PLW2901",  # `for` loop variable `row` overwritten by assignment target

* Enable Ruff Rules - Part 11 (#1425)

* pyflakes

* pycodestyle

* pep8-naming (`N`)

* pyupgrade (`UP`)

* flake8-bandit (`S`)

* Enabled UP, ANN, S, BLE, FBT, B

* Fix typo

* Revert F1AdaptiveThreshold parent classes

* Fix some of the tests

* ignore boolean-positional-value-in-call (FBT003)

* Addressed pr comments

* Remove duplicated lines

* flake8-builtins (`A`) and flake8-commas (`COM`)

* flake8-comprehensions (`C4`)

* flake8-datatimez (`DTZ`), flake8-debugger (`T10`), flake8-errmsg (`EM`)

* flake8-pie (`PIE`)

* flake8-raise (`RSE`)

* flake8-return (`RET`)

* flake8-self (`SLF`)

* flake8-simplify (`SIM`)

* flake8-unsused-arguments (`ARG`)

* flake8-use-pathlib (`PTH`)

* eradicate (`ERA`)

* pylint (`PL`)

* tryceratos (`TRY`), flynt (`FLY`), Perflint (`PERF`)

* NumPy-specific rules (`NPY`)

* Ruff-specific rules (`RUF`)

* Remove pylint ignore comments

* Fix tests

* Fix tests

* mccabe (`C90`)

* pygrep-hooks (`PGH`)

* flake8-todos (`TD`)

* flake8-fixme (`FIX`)

* pandas-vet (`PD`)

* ignore ANN101 ANN102 and ANN103

* Fix random_split tests

* Fix pre-commit

* ANN partly done

* Remove kwargs: Any

* flake8-annotations (`ANN`)

* Enabled tests

* Revert padim configs

* Add auto fixes

* Fix docstrings

* Enabled "PLW2901",  # `for` loop variable `row` overwritten by assignment target

* Add google style to pydocstyle

* Remove dashed line from Returns

* Remove dashed line from Args

* Remove dashed line from Example and Raises

* Removed left-over dashed lines

* Cleanup pyproject.toml file

* [Custom Trainer] Add a verbose help output structure to the CLI (#1396)

* Add Verbosity Help-Formatter class

* Add Help-Formatter unit-tests

* Fix some strings

* Fix pre-commit ruff stuff

* Fix help_formatter's pre-commit

* Add new configs (#1418)

* Add new configs

* Add draem config

* Fix docstring

* Update src/anomalib/models/cflow/lightning_model.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Linting

* Remove --- from docstrings

* Remove any from return type

* Fix linting issues from feature/custom_trainer

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>
Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Add CLI Tests (#1426)

* Add new configs

* Add draem config

* Stash cli tests

* Stash cli tests with minor changes

* Stash changes

* Fix reverse distillation

* Fix EfficientAD

* Match ai_vad params to config params

* Fix ucsd and ai_vad configs

* Uncomment validation step

* Refactor directory structure

* Rename method

* use uscd for aivad

* fix ucsd path + modify model checkpoint callback for tests

* fix dfkde config

* Restructure tests + fix normalization test

* Revert file

* add v1 to tox

* Skip testing ai_vad

* Increase train and test size

* use mvtec dataset

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Restructure test directories. (#1438)

* Restructured the test directories

* Fixed typo

* Fix imports

* Fix config path in export tests

* Replace black with ruff formatter (#1439)

* [Custom Trainer] Refactor export (#1440)

* Refactor export

* Fix entrypoint tests

* remove match statements

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Add ruff checks to tests (#1455)

* Fix tests + add ruff check to tests

* Limit gradio version

* Path->str

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Add dummy image dataset generator helper class (#1444)

* Created tests/v1 directory

* update license year

* Add beantech generator

* Refactor mvtec-ad and beantech

* Add visa dataset generator

* Add DummyImageGenerator

* Use DummyImageGenerator in dummy mvtec dataset generator

* Use DummyImageGenerator in dummy mvtec dataset generator

* Use DummyImageGenerator in dummy mvtec3d dataset generator

* Restructured the test directories

* Fixed typo

* Fix imports

* Fix config path in export tests

* Add kolektor dataset

* add ucsdped generator

* Fix tests

* Revert conftest.py

* add method for generating avenue dataset

* Revert conftest.py

* add method for generating shanghaitech dataset

* swap order of typing for better parsing of normalization type

* cleanup

* Dynamically create DataFormat enum

* Add examples to docstring

* address pr comments and rename dataset.py to data.py

* Fix pre-commit issues

---------

Co-authored-by: Dick Ameln <dick.ameln@intel.com>

* Remove configurable parameters (#1453)

* Refactor export

* Fix entrypoint tests

* remove match statements

* Fix tests + remove get_configurable_params + fix hpo,benchmarking

* Path->str

* Update src/anomalib/models/__init__.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/utils/sweep/config.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update tools/inference/README.md

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update tools/inference/README.md

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* str->Path

* str->Path

* Fix model checkpoint path

* typing + path + test order

* Update src/anomalib/utils/sweep/config.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Mark tests as xfail

* Fix notebook

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>
Co-authored-by: Dick Ameln <amelndjd@gmail.com>
Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* [v1] - Tests: Add datamodule tests. (#1456)

* Created tests/v1 directory

* update license year

* Add beantech generator

* Refactor mvtec-ad and beantech

* Add visa dataset generator

* Add DummyImageGenerator

* Use DummyImageGenerator in dummy mvtec dataset generator

* Use DummyImageGenerator in dummy mvtec dataset generator

* Use DummyImageGenerator in dummy mvtec3d dataset generator

* Restructured the test directories

* Fixed typo

* Fix imports

* Fix config path in export tests

* Add kolektor dataset

* add ucsdped generator

* Fix tests

* Revert conftest.py

* add method for generating avenue dataset

* Revert conftest.py

* add method for generating shanghaitech dataset

* swap order of typing for better parsing of normalization type

* cleanup

* create the data tests files

* Dynamically create DataFormat enum

* Add examples to docstring

* add conftest.py

* address pr comments and rename dataset.py to data.py

* add some changes

* Add test_datasets to the integration tests

* Change order

* Added datamodule tests

* Format ruff

* Address pre-commit issues

* Fix video tests

* Add the rest of the datamodule tests

---------

Co-authored-by: Dick Ameln <dick.ameln@intel.com>

* [Custom Trainer] Add train subcommand (#1465)

Add train subcommand

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Refactor `Tensor` annotation to `torch.Tensor` (#1477)

* Modify Tensor to torch.Tensor

* list[Tensor] to list[torch.Tensor]

* TODO: Fix formatting issues

* torch_all to torch.all

* Remove redundant import

* Apply ruff format

* Fix the tests

* Refactor tests Part 1 (#1473)

* Refactor CLI tests

* Select a random model

* Fix test for all the models

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Add API tests Part 2 (#1474)

* Partially migrate unit tests Part 3 (#1480)

* Refactor CLI tests

* Add api tests

* Select a random model

* Fix test for all the models

* Fix API tests

* refactor pre-post processing + get model ckpt from fixture

* Add tests for custom transforms

* Address PR comments

* Refactor ckpt_path fixture

* Update conftest.py

* Update __init__.py

* Update __init__.py

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>
Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Reorg Part I: Data (#1483)

* Update Anomalib data with the new structure

* Update dataset imports and remove unused imports

* ruff format in engine.py

* Move TaskType to utils/types

* Revert TaskType import from anomalib

* Revert tox.ini

* Refactor imports and fix import errors

* Fix import errors and update type annotations

* Fix imports in jupyter notebooks

* Refactor import statements in test_visualizer.py

* Reorg Part II: Remove `pre_processor` and `post_processor` subpackages (#1485)

* Update Anomalib data with the new structure

* Update dataset imports and remove unused imports

* ruff format in engine.py

* Move TaskType to utils/types

* Revert TaskType import from anomalib

* Revert tox.ini

* Refactor imports and fix import errors

* Fix import errors and update type annotations

* Fix imports in jupyter notebooks

* Remove pre-processor subpackage from anomalib

* Remove unused imports and update import paths

* Refactor import statements in test_visualizer.py

* Remove unused code and deprecate Denormalize and
ToNumpy classes

* Remove empty code cell

* Add a description why input image is read from path

* Fix bug in superimpose

* Migrate deploy tests Part 4 (#1481)

* Refactor CLI tests

* Add api tests

* Select a random model

* Fix test for all the models

* Fix API tests

* refactor pre-post processing + get model ckpt from fixture

* Add tests for custom transforms

* Migrate deploy tests

* trained_padim_path->ckpt_path

* Split normalization line

* Fix normalization class path

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Migrate model components unit tests Part 5 (#1482)

* Refactor CLI tests

* Add api tests

* Select a random model

* Fix test for all the models

* Fix API tests

* refactor pre-post processing + get model ckpt from fixture

* Add tests for custom transforms

* Migrate deploy tests

* Migrate model component tests

* Migrate visualizer callback + cli tests

* Fix lightning entrypoint test

* trained_padim_path->ckpt_path

* Add todo

* Fix TaskType import

* Apply suggestions from code review

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>
Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Reorg Part III: Move the main anomalib components from `anomalib.utils` to `anomalib` (#1487)

* Update Anomalib data with the new structure

* Update dataset imports and remove unused imports

* ruff format in engine.py

* Move TaskType to utils/types

* Revert TaskType import from anomalib

* Revert tox.ini

* Refactor imports and fix import errors

* Fix import errors and update type annotations

* Fix imports in jupyter notebooks

* Remove pre-processor subpackage from anomalib

* Remove unused imports and update import paths

* Refactor import statements in test_visualizer.py

* Move callbacks from utils under anomalib

* Fix import statements in benchmarking and CLI
modules

* Move CLI under anomalib

* Add benchmark to pipelines

* Move hpo to pipelines

* Move sweep to pipelines

* Move loggers to anomalib

* Move metrics to anomalib

* Move callbacks from utils to test/utils

* Move config to anomalib.utils

* Fix the metric imports

* Remove unused code and deprecate Denormalize and
ToNumpy classes

* Remove empty code cell

* Add a description why input image is read from path

* Fix bug in superimpose

* Move anomalib.utils.config.config to anomalib.utils.config

* Fix config import

* Merge feature/custom_trainer

* Migrate tools test Part 6 (#1488)

* Refactor CLI tests

* Add api tests

* Select a random model

* Fix test for all the models

* Fix API tests

* refactor pre-post processing + get model ckpt from fixture

* Add tests for custom transforms

* Migrate deploy tests

* Migrate model component tests

* Migrate visualizer callback + cli tests

* Fix lightning entrypoint test

* trained_padim_path->ckpt_path

* Migrate metrics tests

* Migrate tools + remove nightly

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* 🚜 Refactor padim and patchcore models (#1300)

* Fix metadata path

* Ignore hidden directories in folder dataset

* Add check for mask_dir for segmentation tasks in Folder dataset

* add is_fitted

* self.model._is_fitted to self.model.is_fitted

* Format anomaly module

* Remove on_save_checkpoint

* Refactor padim

* Add __repr__ to anomaly score threshold

* Revert patchcore config

* Add memory bank modules for anomaly detection

* Add explanation to MemoryBankTorchModule docstring.

* Update memory bank module imports and fix typo in
Padim model

* Rename Dynamic Buffer Module to Memory Bank
Module in docstring.

* Revert "Add explanation to MemoryBankTorchModule docstring."

This reverts commit 44c991450f7c78eee2b0ceb0e7c855c3893a0801.

* Refactor memory bank modules based on Dick's suggestion

* Fix model attribute assignment in lightning models

* Add MemoryBankMixin to anomaly detection models

* revert padim and patchcore

* Reorder inheritance in anomaly detection models

---------

Co-authored-by: Ashwin Vaidya <ashwin.vaidya@intel.com>

* Migrate unit tests Part 7 (#1490)

* Refactor CLI tests

* Add api tests

* Select a random model

* Fix test for all the models

* Fix API tests

* refactor pre-post processing + get model ckpt from fixture

* Add tests for custom transforms

* Migrate deploy tests

* Migrate model component tests

* Migrate visualizer callback + cli tests

* Fix lightning entrypoint test

* trained_padim_path->ckpt_path

* Migrate metrics tests

* Migrate tools + remove nightly

* Increase coverage

* Migrate remaining tests

* Fix imports

* Fix import

* Update tests/unit/deploy/test_inferencer.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update test_get_logger.py

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>
Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Fix circular import in cdf normalizer (#1494)

* fix circular import in cdf normalizer

* fix pre-commit

---------

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* 🛠️ Refactor: Split models to image and video (#1493)

* Move AiVad to anomalib.video

* Move cfa to models.image

* Add Ganomaly model to image models

* Add Fastflow model to image models

* Add EfficientAd anomaly detection model to image
models

* Move dfm, dfkde and draem

* Add CS-Flow model implementation for image-based
defect detection

* Add cflow to image models

* Add padim to image models

* Add patchcore to image models

* Add Reverse distillation to image models.

* Add rkde to image models

* Add stfpm to image models.

* Add image models for handling image datasets in
anomalib

* Update copyright year in model files

* Update import statement for Fastflow model

* Update image and video model documentation

* Update src/anomalib/models/video/README.md

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* Update clip_length_in_frames parameter in
AvenueDataset and Avenue classes

* Remove folder references

* Fix a typo in readme

* Fix shape of image in batch

* Update clip_length_in_frames parameter

---------

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* v1: Update the readme file (#1503)

* Fix metadata path

* Ignore hidden directories in folder dataset

* Add check for mask_dir for segmentation tasks in Folder dataset

* Replace docs

* Add each inferencing scripts as a details section

* update readme

* Add training

* modify getting started

* Make getting started a subsection

* tmp

* Added inference section

* Refactor Lightning inference code

* Update entry point in setup.py

* Add training api example to readme

* Update training command in README

* Fix bug in login functionality

* Update HPO and Logging Documentation

* refactor getting started section

* Update HPO and benchmarking commands

* Update the image

* Update README.md

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* Update README.md

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* Remove getting started section

* Update README.md

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* Update README.md

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* Address the reviewer comments

---------

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* Extend Engine Tests (#1509)

* Add validate + predict

* Add train

* Add export tests + refactor export cli command

* Fix tests

* Fix jupyternotebook

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* v1: Create the new documentation via `sphinx-design` and `myst` (#1518)

* removed docs

* Created the new docs

* Finished get started

* Remove jupyter notebook from docs

* Add mvtec to data

* Add reference guide

* Add section for each image datasets

* Add base data modules and datasets

* v1 - 📝 Update and Enhance Docstrings (#1532)

* removed docs

* Created the new docs

* Finished get started

* Remove jupyter notebook from docs

* Add mvtec to data

* Add reference guide

* initial commit

* Remove subrocess from btech

* Remove unused import and commented out code

* Add section for each image datasets

* Add base data modules and datasets

* Refactor dataset classes and add docstrings

* Add initial draft for backbone docs

* Update the docstring in folder_3d

* Update mvtec 3d docstring

* Added feature extractor tutorial

* Add a readme file to the docs

* Update folder data docstring

* Update kolektor docstrings

* Update kolektor docstring

* Update mvtec docstring

* Update visa docstrings

* Update avenue docstring

* Update cfa docstring

* Update cflow docstring

* Update csflow docstring

* Update csflow docstring

* Update dfkde docstrings

* Update dfm docstring

* Update draem docstring

* Update efficient ad docstring

* Update ganomaly docstring

* Update padim and patchcore docstrings

* Update reverse distillation docstring

* update rkde docstring

* update stfpm docstring

* Update ai-vad docstring

* Update feature extractors

* add docstring to sparse random projection

* Update dimensionality reduction components

* Exclude prompt from copying

* Normalizing flow update

* Add pro

* Add feature extractor docs

* update aupr

* Update aupr

* Update aupro

* Update auroc

* Update docs/source/markdown/guides/how_to/models/feature_extractors.md

* Update f1 and manual thresholds

* add minmax

* add optimal f1

* update utils

* update comet

* add tensorboard

* update wandb

* Add callbacks

* Update deploy docstrings

* Fix pre-commit on Blasz changes

* Change the requirement file in readthedocs config file

* Partially address pr comments

* Fix the model to padim for the cli integration tests

---------

Co-authored-by: Blaž Rolih <61357777+blaz-r@users.noreply.github.com>
Co-authored-by: Blaz Rolih <blaz.rolih@gmail.com>

* Fix AI-VAD issues (#1524)

* partially fix empty bbox issue

* allow empty region detections

* add torch implementation of gmm (WIP)

* make knn mem bank persistent

* set val_split_mode to same_as_test as default to enforce deterministicness

* add unit tests and docstrings to gmm

* improve typing of knn estimator

* remove todo

* update buffer name

* fix minor mistakes in gmm implementation

* remove unnecessary tensor conversion

* fix visualization when predicting with video model

* add __init__.py to components.cluster

* check for empty bboxes in feature extractor

* reduce default batch size

* cast deep features to float

* fix device issue

* add unit tests for feature extractors

* add license header

* disable random model selection in integration tests

* typing and docstrings

* add test case for non-convergence warning

* 📝  v1 - Docs: Create a dedicated section for each model. (#1540)

* Initial commit for model components

* FIx the grid in model components

* Add image models

* Add video models

* Fix titles and do some cleanup

* reduce the sphinx version as it fails the readthedocs builds

* Fix examples for reading transforms from albumentations Compose object and deserializing from a yaml file

* Update __init__.py

* OpenVINO NNCF updates (#1534)

* Update versions of openvino and nncf

* All export functions return the model path

* Change default OV device to AUTO

* Minor changes on openvino API

* Fix pre-commit issues

* Restored onnx dependency

* Added OV export tests

* Drop export tests

* Rename path var

* Renamed test paths

* [Docs] Add average score to the FastFlow's performance results tables (#1587)

Add average score in the tables of performance results

* Update the paper title in CS-FLOW and CFLOW readme (#1579)

* Fix csflow name in readme

* Update cflow name in readme

* v1 - [Refactor] Reflect the changes in #1562 into v1 (#1595)

Reflect the changes in #1562 into v1

* ✏️ Refactor `ExportMode` to `ExportType` (#1594)

* Update export_mode to export_type

* Fix typo typel -> model

* Revert the python version in the notebook

* 📚 v1 - Modify the PR template (#1596)

* Modify the PR template

* Update pull_request_template.md

* added emojis to the checklist

* [Bug] v1: Fix default input normalization method (#1583)

Fix default input normalization method

* Modify `Engine.predict` (#1514)

* Add validate + predict

* Add train

* Add export tests + refactor export cli command

* Fix tests

* Fix jupyternotebook

* Update engine.predict + expand tests

* Fix lightning entrypoint test

* Address PR comments

* Use only Padim

* Fix commands

* Move padim to common args

* Address 1st PR comment

* Address PR comments

* Fix aivad tests

* Fix missing docstring

* Rename config to args

* Add missing ckpt_path warning in predict

* Remove ckpt_path as required parameter

* Add tests for image path in predict

* Fix image path in predict

* Address PR comments

* Fix missing checkpoint path

* Fix fastflow precommit issue

* Fix tests

* Fix test

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Fix issue with incorrect image save location (#1515)

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Upgrade gradio version to 4.x (#1608)

* upgrade gradio version to 4.x

* refactor variable names

* refactor

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* ✍ InferenceDataset->PredictDataset (#1544)

* ✍ InferenceDataset->PredictDataset

* update predict dataset references

* update predict dataset references

* update predict dataset references

* update predict dataset references

* update predict dataset references

* update notebook

---------

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* `FeatureExtractor` -> `TimmFeatureExtractor` (#1543)

Deprecate FeatureExtractor

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Add `LearningType` and refactor enums (#1598)

* add LearningType and move enums to separate module

* add enum definitions

* move shared enums to root init

* place version above enums

* 📘 Add custom data tutorial (#1571)

* Add custom data tutorial

* Add the custom data training instructions

* Address PR comments

* Start with a classification data

* Release hazelnut toy dataset and refer to the link here.

* Update docs/source/markdown/guides/how_to/data/custom_data.md

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* Update docs/source/markdown/guides/how_to/data/custom_data.md

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* Update docs/source/markdown/guides/how_to/data/custom_data.md

Co-authored-by: Dick Ameln <amelndjd@gmail.com>

* Remove no-val-test section from tutorials

* Address PR comments

---------

Co-authored-by: Dick Ameln <amelndjd@gmail.com>
Co-authored-by: Samet Akcay <sakcay@Samets-MacBook-Pro.local>

* Add URL verification for downloading dataset (#1620)

* add url path verification for dataset downloading module

* specify node version to pre-commit-config

* fix import errors on the notebooks

* 🐞 v1 - Fix training with mps accelerator (#1618)

* Convert mask to float32 in AnomalibDataset

* Convert the tensor to cpu before convrting to numpy

* replace np.float32 with np.single

* Update Engine docstrings (#1549)

Update docstrings

Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>

* Fixed shape error, allowing arbitary image sizes for EfficientAD

* Revert the previous commit

* Extend supported models in TimmFeatureExtractor (#1443)

Extend Timm feature extractor for v1.0

* 🔒 v1 - Address security issues (#1637)

* Address path traversal issues 1-3

* address traversal path 6

* Address traverse path 8

* modify the comment to make it more descriptive

* 🐞 Fix mps float64 tensor conversion issue (#1644)

Fix leftover

* 🐞 Fix metadata_path arg to metadata in OpenVINO inferencer (#1648)

Fix metadata_path arg to metadata in OpenVINO inferencer

* 🔒 Address path traversal issues (#1643)

* Address path traversal issues 1-3

* address traversal path 6

* Address traverse path 8

* modify the comment to make it more descriptive

* Update get_image_filename function to enhance the input security

* fix example

* Fix incorrect default value assignment

* Refactor project_path fixture to create temporary directory in the root directory of the project

* Update .gitignore file to include test-related files and directories

* Refactor get_image_filenames_from_dir to filter out non-image files

* Add test case for path outside base directory

* Add examples to get_filenames

* Address PR comments.

* Renamed the tmp dir

* 🔒 Add `SECURITY.md` file (#1655)

* Add SECURITY.md file

* Add security item to the type of changes in the pull request template.

* Update pr template

* replace the security emoji

* 🚀 Add zero-/few-shot model support and WinCLIP model implementation (#1575)

* add clip normalization

* initial commit for winclip

* add cosine similarity computation

* add multiscale score computation

* simplify mask generation

* add few-shot extension (unvalidated)

* refactor

* cleanup

* add todo

* formatting

* minor refactor

* add comment

* expose optimal F1 metric

* some cleanup

* add ln_after_pool logic

* remove final_ln_after_pool

* update module docstring and remove comments

* add typing and docstrings to torch model

* cleanup lightning model

* hardcode backbone

* n_shot -> k_shot

* add temperature as constant

* minor bugfix

* add typing and docstrings to utils

* set class name dynamically

* replace inf values in harmonic aggregation

* run validate before test

* set default class name to None

* formatting

* remove config

* comments

* minor bugfix

* Revert "expose optimal F1 metric"

This reverts commit e8e1ead9601d76c743af3678f26b1eb0e06d38fb.

* more descriptive assert message

* expose scales as configurable parameter and hardcode pretrained as constant

* add readme

* add images for readme

* update docstrings

* update license headers

* ruff

* add openclip as requirement

* skip model tests for winclip

* fix visualizer test

* add example in docstring

* fix typo in function name

* typing

* imports

* docstrings

* check if model has trainer attribute

* remove pylint ignore statement

* typing

* docstring

* improve tensor shape handling

* refactor and rename class_scores function

* add docstring example

* commenting

* Update src/anomalib/models/image/winclip/torch_model.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/models/image/winclip/torch_model.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/models/image/winclip/torch_model.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* formatting

* docstrings

* docstrings

* comment

* typing

* multiscale -> multi_scale

* add winclip to docs

* add few_shot_source parameter

* use PredictDataset in WinCLIP implementation

* add learning type to winclip lightning model

* add custom model checkpoint callback to save at validation end

* remove trainer arguments from winclip model

* prune state dict for smaller model file

* add learning type logic to engine.train

* pass full path to model checkpoint

* remove training step

* enable integration tests for winclip

* fix typo

* index masks at 0

* formatting

* simplify make_masks

* validate inputs in make_masks

* add unit tests for winclip utils

* add default class_name to prompt ensemble

* add unit tests for winclip prompt ensemble

* add base class for normalization callback

* add _should_run_validation check

* add engine.model property

* use custom modelcheckpoint in tests

* update name in todos

* fix predict tests

* skip export tests for winclip

* fix mistake in model retrieval from trainer

* add model checks

* fix checks

* simplify model check

* add todo for winclip export

* add todo

* add bufferlist mixin

* update bufferlist docstring

* add setup method and register buffers

* import torch model in root of winclip module

* add unit tests for bufferlist mixin

* add unit tests for torch model

* fix transform and update docstring

* disable strict loading in export

* initialize embeddings as tensors

* add test to check if erors are raised

* add todo

* enable winclip export test

* remove device references in torch model

* restore frozen weights in load_state_dict

* make embedding collection methods private

* move state dict handling to winclip from base

* fix typo

* make generate_masks private

* increase onnx opset version

* remove future import

* update docstring

* Update src/anomalib/callbacks/normalization/__init__.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/callbacks/normalization/cdf_normalization.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/callbacks/normalization/min_max_normalization.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/engine/engine.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* typing in docstrings

* Update src/anomalib/engine/engine.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/engine/engine.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/engine/engine.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/engine/engine.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* use exception instead of assert

* update license header

* docstrings

* bufferlist -> buffer_list

---------

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* WinCLIP attribution (#1662)

give credit to related works

* 🔀 Merge main to v1 (#1652)

* Address tiler issues (#1411)

* fix tiler

* deprecate random tile locations

* restore random tiling in tile method

* check tiling section in config

* disable tiling for ganomalu

* pad -> padding

* Refactor Reverse Distillation to match official code (#1389)

* Non-mandatory early stopping

* Added conv4 and bn4 to OCBE

* Loss as in the official code (flattened arrays)

* Added comment on how to use torchvision model as an encoder to reproduce results in the paper

* Remove early stop from config, change default anomaly_map_mode to add

* pre-commit fix

* Updated results

* Update src/anomalib/models/reverse_distillation/README.md

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/models/reverse_distillation/README.md

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/models/reverse_distillation/README.md

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Remove early_stopping

* Update src/anomalib/models/reverse_distillation/lightning_model.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Easier to read code

---------

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Patch for the WinError183 on the OpenVino export mode (#1386)

* Fix WinError183 (Windows Error)

* Add commentary of the change

---------

Co-authored-by: Youho99 <gaylord.giret@viacesi.fr>

* Add DSR model (#1142)

* added license, init.py and draft readme

* added draft DSR files

* minor comment update

* Implemented dsr model + comments

* added dsr discrete model

* added defect generation in torch model + dsr to list of existing methods in init.py

* fixed torch model, started implementing lightning model, implemented anomaly generator

* added loss file for DSR

* Added loss, improved lightning module

* Finished up global implementation of DSR second phase

* minor fixes

* Bugfixes

* Fixed DSR loss calculation

* on_training_start -> on_train_start

* pre-commit run

* updated DSR documentation

* reset config file

* added automatic pretraining weight download

* testing pretrained weights. fixed embedding size in upsampling module and image recon module, to be fixed in original branch

* successful testing on pretrained dsr weights

* checked test quality with pretrained weights, fixed anomaly score calculation

* training is functional

* Fixed training procedure

* test still working

* working upsampling module training and testing

* fixed minor bugs

* updated documentation

* added tests and doc

* adapted learning schedule to steps

* Update src/anomalib/models/dsr/anomaly_generator.py

Co-authored-by: Ashwin Vaidya <ashwinnitinvaidya@gmail.com>

* Apply suggestions from code review

Co-authored-by: Samet Akcay <samet.akcay@intel.com>
Co-authored-by: Ashwin Vaidya <ashwinnitinvaidya@gmail.com>

* refactored outputs into dicts

* remove super() args

* changed downloading weights from anomalib releases + minor fixes

* pre commit hooks + minor fixes

* removed configurable ckpt path refs + default iteration nb from paper

* cleaned up dsr.rst and turned exceptions into RuntimeErrors

* Added upsampling ratio parameter to set third training phase epochs

* Added batched evalaution + minor code simplification

* pre commit hooks

* squeeze output image score tensor

* readded new path check in efficient ad

* fixed double step count with manual optimization

* fixed trailing whitespace

* Fix black issues

* Apply suggestions from code review

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* review suggestions

* updated architecture image links

* Address mypy

* changed output types for dsr model

* readded dict outputs, adapted to TorchInferencer

* fixed error in output dict

* removed default imagenet norm

---------

Co-authored-by: Samet Akcay <samet.akcay@intel.com>
Co-authored-by: Ashwin Vaidya <ashwinnitinvaidya@gmail.com>

* Fix unexpected key pixel_metrics.AUPRO.fpr_limit (#1055)

* fix unexpected key pixel_metrics.AUPRO.fpr_limit

Signed-off-by: FanJiangIntel <fan.jiang@intel.com>

* load AUPRO before create_metric_collection

Signed-off-by: FanJiangIntel <fan.jiang@intel.com>

* code refine

Signed-off-by: FanJiangIntel <fan.jiang@intel.com>

* fix comment

Signed-off-by: FanJiangIntel <fan.jiang@intel.com>

* fix

Signed-off-by: FanJiangIntel <fan.jiang@intel.com>

* Support test

Signed-off-by: Kang Wenjing <wenjing.kang@intel.com>

* Update test

Signed-off-by: Kang Wenjing <wenjing.kang@intel.com>

* Update test

Signed-off-by: Kang Wenjing <wenjing.kang@intel.com>

---------

Signed-off-by: FanJiangIntel <fan.jiang@intel.com>
Signed-off-by: Kang Wenjing <wenjing.kang@intel.com>
Co-authored-by: FanJiangIntel <fan.jiang@intel.com>
Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Improved speed and memory usage of mean+std calculation (#1457)

* preexisting OpenCV version check added to `setup.py`, ran formatting pre-commit hooks on previous contribution. (#1424)

* testing upstream switch

* picked up on stale OpenCV `setup.py` issue #1041

* 🐞 Hotfix: Limit Gradio Version (#1458)

* Fix metadata path

* Ignore hidden directories in folder dataset

* Add check for mask_dir for segmentation tasks in Folder dataset

* Limit the gradio version to <4

* Fix/efficient ad normalize before every validation (#1441)

* Normalize anomaly maps before every validation

* Remove print statement

---------

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Fix DRAEM (#1431)

* Fix beta in augmenter

* Add scheduler

* Change normalization to none

* Replace two lr schedulers with MultiStepLR

* Revert change to beta

* Disable early stopping default

* Format config

* Add opacity parameter beta to config

* Adding U-Flow method (#1415)

* Added uflow model

* Added documentation (README) for uflow model

* Added uflow to the list of available models, and main README updated

* Added missing images for the documentation

* Update src/anomalib/models/uflow/anomaly_map.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/models/uflow/anomaly_map.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/models/uflow/feature_extraction.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update src/anomalib/models/uflow/torch_model.py

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Added uflow to the reference guide in docs

* Added uflow to the pre-merge tests

* removed the _step function, and merged the code with training_step

* added as a comment the values used in the paper

* re-factorized feature extractors to use the TimmFeatureExtractor class

* added annotations for some functions, where the flow graph is created

* updated readme to fix images loading

* Added link in the README to the original code for reproducing the results

* Removed unused kwargs

* Added docstrigs with args explanations to UFlow classes

* Added models in a github release, and linked here

* Passing all pre-commit checks

* Changed freia's AllInOneBlock by Anomalib's version, and converted the subnet contructor to a Class, in order to be pickable, that is needed to export the model to torch

---------

Co-authored-by: Samet Akcay <samet.akcay@intel.com>

* Update README.md

* 📘 Announce anomalib v1 on the main `README.md` (#1542)

* Fix metadata path

* Ignore hidden directories in folder dataset

* Add check for mask_dir for segmentation tasks in Folder dataset

* Limit the gradio version to <4

* Announce anomalib v1 on readme

* Add the installation instructions and update the documentation link

* Fixed DSR (#1486)

* fixed DSR squeeze bug

* added comment

* Refactor/extensions custom dataset (#1562)

* Explanation how to use extension names in the config file

* Added information about extensions to the error message and control of the user input

* Easier to read code

* Replacing assert with raise

* 📚 Modify the PR template (#1611)

Update pull_request_template.md

* Fix result image URLs (#1510)

* Fix tests

* refactor path + fix issues + fix linting issues

* Migrate docs

* fix typing

* fix failing model tests

* Fix tests

* Address PR comments

* Fixed shape error, allowing arbitary image sizes for EfficientAD (#1537)

* Fixed shape error, allowing arbitrary image sizes. Replaced integer parsing by floor operation

* Replaced calculation by ceil operation. Solution of shape error is to round up and not down for the last upsample layer

* Add comment for ceil oepration

* Formatting with pre-commit hook

* Clean up badge

---------

Signed-off-by: FanJiangIntel <fan.jiang@intel.com>
Signed-off-by: Kang Wenjing <wenjing.kang@intel.com>
Co-authored-by: Dick Ameln <dick.ameln@intel.com>
Co-authored-by: abc-125 <63813435+abc-125@users.noreply.github.com>
Co-authored-by: Samet Akcay <samet.akcay@intel.com>
Co-authored-by: ggiret-thinkdeep <146845847+ggiret-thinkdeep@users.noreply.github.com>
Co-authored-by: Youho99 <gaylord.giret@viacesi.fr>
Co-authored-by: Philippe Carvalho <31983398+phcarval@users.noreply.github.com>
Co-authored-by: Wenjing Kang <wenjing.kang@intel.com>
Co-authored-by: FanJiangIntel <fan.jiang@intel.com>
Co-authored-by: belfner <belfner@belfner.com>
Co-authored-by: Abdulla Al Blooshi <76493346+abdullamatar@users.noreply.github.com>
Co-authored-by: Blaž Rolih <61357777+blaz-r@users.noreply.github.com>
Co-authored-by: Matías Tailanian <895687+mtailanian@users.noreply.github.com>
Co-authored-by: Jan Schlüter <github@jan-schlueter.de>
Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>
Co-authored-by: Christopher <48522299+holzweber@users.noreply.github.com>

* Update license headers

---------

Signed-off-by: FanJiangIntel <fan.jiang@intel.com>
Signed-off-by: Kang Wenjing <wenjing.kang@intel.com>
Co-authored-by: Weilin Xu <mzweilin@gmail.com>
Co-authored-by: Samet <samet.akcay@intel.com>
Co-authored-by: Ashwin Vaidya <ashwinitinvaidya@gmail.com>
Co-authored-by: Dick Ameln <dick.ameln@intel.com>
Co-authored-by: abc-125 <63813435+abc-125@users.noreply.github.com>
Co-authored-by: Harim Kang <harim.kang@intel.com>
Co-authored-by: Dick Ameln <amelndjd@gmail.com>
Co-authored-by: Blaž Rolih <61357777+blaz-r@users.noreply.github.com>
Co-authored-by: Blaz Rolih <blaz.rolih@gmail.com>
Co-authored-by: Adrian Boguszewski <adekboguszewski@gmail.com>
Co-authored-by: Willy Fitra Hendria <willyfitrahendria@gmail.com>
Co-authored-by: Samet Akcay <sakcay@Samets-MacBook-Pro.local>
Co-authored-by: Yunchu Lee <yunchu.lee@intel.com>
Co-authored-by: ggiret-thinkdeep <146845847+ggiret-thinkdeep@users.noreply.github.com>
Co-authored-by: Youho99 <gaylord.giret@viacesi.fr>
Co-authored-by: Philippe Carvalho <31983398+phcarval@users.noreply.github.com>
Co-authored-by: Wenjing Kang <wenjing.kang@intel.com>
Co-authored-by: FanJiangIntel <fan.jiang@intel.com>
Co-authored-by: belfner <belfner@belfner.com>
Co-authored-by: Abdulla Al Blooshi <76493346+abdullamatar@users.noreply.github.com>
Co-authored-by: Matías Tailanian <895687+mtailanian@users.noreply.github.com>
Co-authored-by: Jan Schlüter <github@jan-schlueter.de>
Co-authored-by: Christopher <48522299+holzweber@users.noreply.github.com>
  • Loading branch information
24 people committed Jan 24, 2024
1 parent 9effa29 commit bf0ee14
Show file tree
Hide file tree
Showing 750 changed files with 22,640 additions and 20,258 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ body:
value: |
OS information:
- OS: [e.g. Ubuntu 20.04]
- Python version: [e.g. 3.8.10]
- Python version: [e.g. 3.10.0]
- Anomalib version: [e.g. 0.3.6]
- PyTorch version: [e.g. 1.9.0]
- CUDA/cuDNN version: [e.g. 11.1]
Expand Down
6 changes: 3 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
## 📝 Description

Provide a clear summary of the changes and the issue that has been addressed.

🛠️ Fixes # (issue number)
- Provide a clear summary of the changes and the issue that has been addressed.
- 🛠️ Fixes # (issue number)

## ✨ Changes

Expand All @@ -13,6 +12,7 @@ Select what type of change your PR is:
- [ ] 🚀 New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📚 Documentation update
- [ ] 🔒 Security update

## ✅ Checklist

Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
datasets
pre_trained
!anomalib/datasets
!tests/pre_merge/datasets
results
!anomalib/core/results

# Test-related files and directories
tmp*

# Jupyter Notebooks
notebooks/500_use_cases/501_dobot/
!notebooks/500_use_cases/501_dobot/*.ipynb
Expand Down
34 changes: 12 additions & 22 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
default_language_version:
node: system
node: 18.15.0

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v4.5.0
hooks:
# list of supported hooks: https://pre-commit.com/hooks.html
- id: trailing-whitespace
Expand All @@ -13,23 +13,21 @@ repos:
- id: debug-statements
- id: detect-private-key

# python code formatting
- repo: https://github.com/psf/black
rev: 23.3.0
hooks:
- id: black

# Ruff version.
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: "v0.0.275"
rev: "v0.1.5"
hooks:
# Run the linter.
- id: ruff
exclude: "tests"
exclude: "tests/legacy"
args: ["--fix"]
# Run the formatter
- id: ruff-format
exclude: "tests/legacy"

# python static type checking
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.4.1"
rev: "v1.7.0"
hooks:
- id: mypy
additional_dependencies: [types-PyYAML]
Expand All @@ -39,25 +37,17 @@ repos:
- repo: https://github.com/nbQA-dev/nbQA
rev: 1.7.0
hooks:
- id: nbqa-black
- id: nbqa-ruff
# Ignore unsorted imports. This is because jupyter notebooks can import
# packages in a different order than the rest of the codebase.
args: ["--ignore=I001"]
args: ["--ignore=D100,D407,I001"]

- repo: https://github.com/pre-commit/mirrors-prettier
rev: v3.0.0-alpha.9-for-vscode
rev: v3.1.0
hooks:
- id: prettier

- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.35.0
rev: v0.37.0
hooks:
- id: markdownlint

- repo: https://github.com/PyCQA/bandit
rev: 1.7.5
hooks:
- id: bandit
args: ["-c", ".ci/ipas_default.config"]
additional_dependencies: ["bandit"]
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ formats:
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: requirements/docs.txt
- requirements: docs/requirements.txt
- method: pip
path: .
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

### Changed

- Changed default inference device to AUTO in https://github.com/openvinotoolkit/anomalib/pull/1534

### Deprecated

- Support only Python 3.10 and greater in https://github.com/openvinotoolkit/anomalib/pull/1299

### Fixed

## [v0.7.0] - 2023-08-28
Expand Down
Loading

0 comments on commit bf0ee14

Please sign in to comment.